From e80be564a5bd5f025ba51894df1c0fd37ceda63b Mon Sep 17 00:00:00 2001 From: Lan Date: Wed, 7 Jan 2026 19:50:02 +0800 Subject: [PATCH 1/4] fix: https://github.com/vastsa/FileCodeBox/issues/362 --- apps/base/migrations/migrations_004.py | 14 + apps/base/models.py | 6 +- apps/base/views.py | 349 +++++++++++++++---------- core/tasks.py | 32 +-- 4 files changed, 246 insertions(+), 155 deletions(-) create mode 100644 apps/base/migrations/migrations_004.py diff --git a/apps/base/migrations/migrations_004.py b/apps/base/migrations/migrations_004.py new file mode 100644 index 0000000..69f06fd --- /dev/null +++ b/apps/base/migrations/migrations_004.py @@ -0,0 +1,14 @@ +from tortoise import connections + + +async def add_save_path_to_uploadchunk(): + conn = connections.get("default") + await conn.execute_script( + """ + ALTER TABLE uploadchunk ADD COLUMN save_path VARCHAR(512) NULL; + """ + ) + + +async def migrate(): + await add_save_path_to_uploadchunk() diff --git a/apps/base/models.py b/apps/base/models.py index b38ce4c..428a057 100644 --- a/apps/base/models.py +++ b/apps/base/models.py @@ -49,6 +49,7 @@ class UploadChunk(models.Model): file_size = fields.BigIntField() chunk_size = fields.IntField() file_name = fields.CharField(max_length=255) + save_path = fields.CharField(max_length=512, null=True) created_at = fields.DatetimeField(auto_now_add=True) completed = fields.BooleanField(default=False) @@ -66,6 +67,7 @@ class KeyValue(Model): class PresignUploadSession(models.Model): """预签名上传会话模型""" + id = fields.IntField(pk=True) upload_id = fields.CharField(max_length=36, unique=True, index=True) file_name = fields.CharField(max_length=255) @@ -85,4 +87,6 @@ class PresignUploadSession(models.Model): file_codes_pydantic = pydantic_model_creator(FileCodes, name="FileCodes") upload_chunk_pydantic = pydantic_model_creator(UploadChunk, name="UploadChunk") key_value_pydantic = pydantic_model_creator(KeyValue, name="KeyValue") -presign_upload_session_pydantic = pydantic_model_creator(PresignUploadSession, name="PresignUploadSession") +presign_upload_session_pydantic = pydantic_model_creator( + PresignUploadSession, name="PresignUploadSession" +) diff --git a/apps/base/views.py b/apps/base/views.py index 7804222..453d520 100644 --- a/apps/base/views.py +++ b/apps/base/views.py @@ -5,13 +5,25 @@ import uuid from datetime import timedelta from urllib.parse import unquote +from typing import Optional, Tuple, Union + from fastapi import APIRouter, Form, UploadFile, File, Depends, HTTPException from starlette import status from apps.admin.dependencies import share_required_login from apps.base.models import FileCodes, UploadChunk, PresignUploadSession -from apps.base.schemas import SelectFileModel, InitChunkUploadModel, CompleteUploadModel, PresignUploadInitRequest -from apps.base.utils import get_expire_info, get_file_path_name, ip_limit, get_chunk_file_path_name +from apps.base.schemas import ( + SelectFileModel, + InitChunkUploadModel, + CompleteUploadModel, + PresignUploadInitRequest, +) +from apps.base.utils import ( + get_expire_info, + get_file_path_name, + ip_limit, + get_chunk_file_path_name, +) from core.response import APIResponse from core.settings import settings from core.storage import storages, FileStorageInterface @@ -25,7 +37,9 @@ class FileUploadService: """统一的文件上传服务""" @staticmethod - async def generate_file_path(file_name: str, upload_id: str = None) -> tuple[str, str, str, str, str]: + async def generate_file_path( + file_name: str, upload_id: Optional[str] = None + ) -> tuple[str, str, str, str, str]: """统一的路径生成""" today = datetime.datetime.now() storage_path = settings.storage_path.strip("/") @@ -44,10 +58,12 @@ class FileUploadService: file_path: str, expire_value: int, expire_style: str, - **extra_fields + **extra_fields, ) -> str: """统一创建FileCodes记录,返回code""" - expired_at, expired_count, used_count, code = await get_expire_info(expire_value, expire_style) + expired_at, expired_count, used_count, code = await get_expire_info( + expire_value, expire_style + ) prefix, suffix = os.path.splitext(file_name) await FileCodes.create( @@ -60,7 +76,7 @@ class FileUploadService: expired_at=expired_at, expired_count=expired_count, used_count=used_count, - **extra_fields + **extra_fields, ) return code @@ -68,8 +84,7 @@ class FileUploadService: async def validate_file_size(file: UploadFile, max_size: int) -> int: size = file.size if size is None: - # 读取流计算大小,保持指针复位 - await file.seek(0, 2) + await file.seek(0, 2) # type: ignore[arg-type] size = file.file.tell() await file.seek(0) if size > max_size: @@ -86,10 +101,10 @@ async def create_file_code(code, **kwargs): @share_api.post("/text/", dependencies=[Depends(share_required_login)]) async def share_text( - text: str = Form(...), - expire_value: int = Form(default=1, gt=0), - expire_style: str = Form(default="day"), - ip: str = Depends(ip_limit["upload"]), + text: str = Form(...), + expire_value: int = Form(default=1, gt=0), + expire_style: str = Form(default="day"), + ip: str = Depends(ip_limit["upload"]), ): text_size = len(text.encode("utf-8")) max_txt_size = 222 * 1024 @@ -114,15 +129,17 @@ async def share_text( @share_api.post("/file/", dependencies=[Depends(share_required_login)]) async def share_file( - expire_value: int = Form(default=1, gt=0), - expire_style: str = Form(default="day"), - file: UploadFile = File(...), - ip: str = Depends(ip_limit["upload"]), + expire_value: int = Form(default=1, gt=0), + expire_style: str = Form(default="day"), + file: UploadFile = File(...), + ip: str = Depends(ip_limit["upload"]), ): file_size = await validate_file_size(file, settings.uploadSize) if expire_style not in settings.expireStyle: raise HTTPException(status_code=400, detail="过期时间类型错误") - expired_at, expired_count, used_count, code = await get_expire_info(expire_value, expire_style) + expired_at, expired_count, used_count, code = await get_expire_info( + expire_value, expire_style + ) path, suffix, prefix, uuid_file_name, save_path = await get_file_path_name(file) file_storage: FileStorageInterface = storages[settings.file_storage]() await file_storage.save_file(file, save_path) @@ -141,7 +158,9 @@ async def share_file( return APIResponse(detail={"code": code, "name": file.filename}) -async def get_code_file_by_code(code, check=True): +async def get_code_file_by_code( + code: str, check: bool = True +) -> Tuple[bool, Union[FileCodes, str]]: file_code = await FileCodes.filter(code=code).first() if not file_code: return False, "文件不存在" @@ -150,7 +169,7 @@ async def get_code_file_by_code(code, check=True): return True, file_code -async def update_file_usage(file_code): +async def update_file_usage(file_code: FileCodes) -> None: file_code.used_count += 1 if file_code.expired_count > 0: file_code.expired_count -= 1 @@ -165,6 +184,7 @@ async def get_code_file(code: str, ip: str = Depends(ip_limit["error"])): ip_limit["error"].add_ip(ip) return APIResponse(code=404, detail=file_code) + assert isinstance(file_code, FileCodes) await update_file_usage(file_code) return await file_storage.get_file_response(file_code) @@ -177,6 +197,7 @@ async def select_file(data: SelectFileModel, ip: str = Depends(ip_limit["error"] ip_limit["error"].add_ip(ip) return APIResponse(code=404, detail=file_code) + assert isinstance(file_code, FileCodes) await update_file_usage(file_code) return APIResponse( detail={ @@ -201,6 +222,7 @@ async def download_file(key: str, code: str, ip: str = Depends(ip_limit["error"] has, file_code = await get_code_file_by_code(code, False) if not has: return APIResponse(code=404, detail="文件不存在") + assert isinstance(file_code, FileCodes) return ( APIResponse(detail=file_code.text) if file_code.text @@ -219,8 +241,7 @@ async def init_chunk_upload(data: InitChunkUploadModel): if max_possible_size > settings.uploadSize: max_size_mb = settings.uploadSize / (1024 * 1024) raise HTTPException( - status_code=403, - detail=f"文件大小超过限制,最大为 {max_size_mb:.2f} MB" + status_code=403, detail=f"文件大小超过限制,最大为 {max_size_mb:.2f} MB" ) # # 秒传检查 @@ -247,21 +268,25 @@ async def init_chunk_upload(data: InitChunkUploadModel): ).first() if existing_session: - # 复用已有会话,获取已上传的分片列表 - uploaded_chunks = await UploadChunk.filter( - upload_id=existing_session.upload_id, - completed=True - ).values_list('chunk_index', flat=True) - return APIResponse(detail={ - "existed": False, - "upload_id": existing_session.upload_id, - "chunk_size": existing_session.chunk_size, - "total_chunks": existing_session.total_chunks, - "uploaded_chunks": list(uploaded_chunks) - }) + if not existing_session.save_path: + await UploadChunk.filter(upload_id=existing_session.upload_id).delete() + else: + uploaded_chunks = await UploadChunk.filter( + upload_id=existing_session.upload_id, completed=True + ).values_list("chunk_index", flat=True) + return APIResponse( + detail={ + "existed": False, + "upload_id": existing_session.upload_id, + "chunk_size": existing_session.chunk_size, + "total_chunks": existing_session.total_chunks, + "uploaded_chunks": list(uploaded_chunks), + } + ) # 创建新的上传会话 upload_id = uuid.uuid4().hex + _, _, _, _, save_path = await get_chunk_file_path_name(data.file_name, upload_id) await UploadChunk.create( upload_id=upload_id, chunk_index=-1, @@ -270,21 +295,27 @@ async def init_chunk_upload(data: InitChunkUploadModel): chunk_size=data.chunk_size, chunk_hash=data.file_hash, file_name=data.file_name, + save_path=save_path, + ) + return APIResponse( + detail={ + "existed": False, + "upload_id": upload_id, + "chunk_size": data.chunk_size, + "total_chunks": total_chunks, + "uploaded_chunks": [], + } ) - return APIResponse(detail={ - "existed": False, - "upload_id": upload_id, - "chunk_size": data.chunk_size, - "total_chunks": total_chunks, - "uploaded_chunks": [] - }) -@chunk_api.post("/upload/chunk/{upload_id}/{chunk_index}", dependencies=[Depends(share_required_login)]) +@chunk_api.post( + "/upload/chunk/{upload_id}/{chunk_index}", + dependencies=[Depends(share_required_login)], +) async def upload_chunk( - upload_id: str, - chunk_index: int, - chunk: UploadFile = File(...), + upload_id: str, + chunk_index: int, + chunk: UploadFile = File(...), ): # 获取上传会话信息 chunk_info = await UploadChunk.filter(upload_id=upload_id, chunk_index=-1).first() @@ -297,12 +328,12 @@ async def upload_chunk( # 检查是否已上传(支持断点续传) existing_chunk = await UploadChunk.filter( - upload_id=upload_id, - chunk_index=chunk_index, - completed=True + upload_id=upload_id, chunk_index=chunk_index, completed=True ).first() if existing_chunk: - return APIResponse(detail={"chunk_hash": existing_chunk.chunk_hash, "skipped": True}) + return APIResponse( + detail={"chunk_hash": existing_chunk.chunk_hash, "skipped": True} + ) # 读取分片数据并计算哈希 chunk_data = await chunk.read() @@ -312,47 +343,49 @@ async def upload_chunk( if chunk_size > chunk_info.chunk_size: raise HTTPException( status.HTTP_400_BAD_REQUEST, - detail=f"分片大小超过声明值: 最大 {chunk_info.chunk_size}, 实际 {chunk_size}" + detail=f"分片大小超过声明值: 最大 {chunk_info.chunk_size}, 实际 {chunk_size}", ) # 计算已上传分片数,校验累计大小不超限(用分片数 * chunk_size 估算) uploaded_count = await UploadChunk.filter( - upload_id=upload_id, - completed=True + upload_id=upload_id, completed=True ).count() # 已上传分片的最大可能大小 + 当前分片 max_uploaded_size = uploaded_count * chunk_info.chunk_size + chunk_size if max_uploaded_size > settings.uploadSize: max_size_mb = settings.uploadSize / (1024 * 1024) raise HTTPException( - status_code=403, - detail=f"累计上传大小超过限制,最大为 {max_size_mb:.2f} MB" + status_code=403, detail=f"累计上传大小超过限制,最大为 {max_size_mb:.2f} MB" ) - + chunk_hash = hashlib.sha256(chunk_data).hexdigest() - # 获取文件路径 - _, _, _, _, save_path = await get_chunk_file_path_name(chunk_info.file_name, upload_id) - + save_path = chunk_info.save_path + # 保存分片到存储 storage = storages[settings.file_storage]() try: - await storage.save_chunk(upload_id, chunk_index, chunk_data, chunk_hash, save_path) + await storage.save_chunk( + upload_id, chunk_index, chunk_data, chunk_hash, save_path + ) except Exception as e: - raise HTTPException(status.HTTP_500_INTERNAL_SERVER_ERROR, detail=f"分片保存失败: {str(e)}") - + raise HTTPException( + status.HTTP_500_INTERNAL_SERVER_ERROR, detail=f"分片保存失败: {str(e)}" + ) + # 更新或创建分片记录(保存成功后再记录) await UploadChunk.update_or_create( upload_id=upload_id, chunk_index=chunk_index, defaults={ - 'chunk_hash': chunk_hash, - 'completed': True, - 'file_size': chunk_info.file_size, - 'total_chunks': chunk_info.total_chunks, - 'chunk_size': chunk_info.chunk_size, - 'file_name': chunk_info.file_name - } + "chunk_hash": chunk_hash, + "completed": True, + "file_size": chunk_info.file_size, + "total_chunks": chunk_info.total_chunks, + "chunk_size": chunk_info.chunk_size, + "file_name": chunk_info.file_name, + "save_path": chunk_info.save_path, + }, ) return APIResponse(detail={"chunk_hash": chunk_hash}) @@ -363,50 +396,56 @@ async def cancel_upload(upload_id: str): chunk_info = await UploadChunk.filter(upload_id=upload_id, chunk_index=-1).first() if not chunk_info: raise HTTPException(status.HTTP_404_NOT_FOUND, detail="上传会话不存在") - - # 获取文件路径 - _, _, _, _, save_path = await get_chunk_file_path_name(chunk_info.file_name, upload_id) - + + save_path = chunk_info.save_path + # 清理存储中的临时文件 storage = storages[settings.file_storage]() - try: - await storage.clean_chunks(upload_id, save_path) - except Exception as e: - # 记录错误但不阻止删除数据库记录 - pass - + if save_path: + try: + await storage.clean_chunks(upload_id, save_path) + except Exception as e: + pass + # 清理数据库记录 await UploadChunk.filter(upload_id=upload_id).delete() - + return APIResponse(detail={"message": "上传已取消"}) -@chunk_api.get("/upload/status/{upload_id}", dependencies=[Depends(share_required_login)]) +@chunk_api.get( + "/upload/status/{upload_id}", dependencies=[Depends(share_required_login)] +) async def get_upload_status(upload_id: str): """获取上传状态""" chunk_info = await UploadChunk.filter(upload_id=upload_id, chunk_index=-1).first() if not chunk_info: raise HTTPException(status.HTTP_404_NOT_FOUND, detail="上传会话不存在") - + # 获取已上传的分片列表 uploaded_chunks = await UploadChunk.filter( - upload_id=upload_id, - completed=True - ).values_list('chunk_index', flat=True) - - return APIResponse(detail={ - "upload_id": upload_id, - "file_name": chunk_info.file_name, - "file_size": chunk_info.file_size, - "chunk_size": chunk_info.chunk_size, - "total_chunks": chunk_info.total_chunks, - "uploaded_chunks": list(uploaded_chunks), - "progress": len(uploaded_chunks) / chunk_info.total_chunks * 100 - }) + upload_id=upload_id, completed=True + ).values_list("chunk_index", flat=True) + + return APIResponse( + detail={ + "upload_id": upload_id, + "file_name": chunk_info.file_name, + "file_size": chunk_info.file_size, + "chunk_size": chunk_info.chunk_size, + "total_chunks": chunk_info.total_chunks, + "uploaded_chunks": list(uploaded_chunks), + "progress": len(uploaded_chunks) / chunk_info.total_chunks * 100, + } + ) -@chunk_api.post("/upload/complete/{upload_id}", dependencies=[Depends(share_required_login)]) -async def complete_upload(upload_id: str, data: CompleteUploadModel, ip: str = Depends(ip_limit["upload"])): +@chunk_api.post( + "/upload/complete/{upload_id}", dependencies=[Depends(share_required_login)] +) +async def complete_upload( + upload_id: str, data: CompleteUploadModel, ip: str = Depends(ip_limit["upload"]) +): # 获取上传基本信息 chunk_info = await UploadChunk.filter(upload_id=upload_id, chunk_index=-1).first() if not chunk_info: @@ -415,8 +454,7 @@ async def complete_upload(upload_id: str, data: CompleteUploadModel, ip: str = D storage = storages[settings.file_storage]() # 验证所有分片 completed_chunks_list = await UploadChunk.filter( - upload_id=upload_id, - completed=True + upload_id=upload_id, completed=True ).all() if len(completed_chunks_list) != chunk_info.total_chunks: raise HTTPException(status.HTTP_400_BAD_REQUEST, detail="分片不完整") @@ -424,27 +462,29 @@ async def complete_upload(upload_id: str, data: CompleteUploadModel, ip: str = D # 用分片数 * chunk_size 校验最大可能大小 max_total_size = len(completed_chunks_list) * chunk_info.chunk_size if max_total_size > settings.uploadSize: - # 清理已上传的分片 - _, _, _, _, save_path = await get_chunk_file_path_name(chunk_info.file_name, upload_id) - try: - await storage.clean_chunks(upload_id, save_path) - except Exception: - pass + save_path = chunk_info.save_path + if save_path: + try: + await storage.clean_chunks(upload_id, save_path) + except Exception: + pass await UploadChunk.filter(upload_id=upload_id).delete() max_size_mb = settings.uploadSize / (1024 * 1024) raise HTTPException( - status_code=403, - detail=f"实际上传大小超过限制,最大为 {max_size_mb:.2f} MB" + status_code=403, detail=f"实际上传大小超过限制,最大为 {max_size_mb:.2f} MB" ) - # 获取文件路径 - path, suffix, prefix, _, save_path = await get_chunk_file_path_name(chunk_info.file_name, upload_id) - + save_path = chunk_info.save_path + path = os.path.dirname(save_path) if save_path else "" + prefix, suffix = os.path.splitext(chunk_info.file_name) + try: # 合并文件并计算哈希 _, file_hash = await storage.merge_chunks(upload_id, chunk_info, save_path) # 创建文件记录 - expired_at, expired_count, used_count, code = await get_expire_info(data.expire_value, data.expire_style) + expired_at, expired_count, used_count, code = await get_expire_info( + data.expire_value, data.expire_style + ) await FileCodes.create( code=code, file_hash=file_hash, # 使用合并后计算的哈希 @@ -457,7 +497,7 @@ async def complete_upload(upload_id: str, data: CompleteUploadModel, ip: str = D file_path=path, uuid_file_name=f"{prefix}{suffix}", prefix=prefix, - suffix=suffix + suffix=suffix, ) # 清理临时文件 await storage.clean_chunks(upload_id, save_path) @@ -473,7 +513,9 @@ async def complete_upload(upload_id: str, data: CompleteUploadModel, ip: str = D await storage.clean_chunks(upload_id, save_path) except Exception: pass - raise HTTPException(status.HTTP_500_INTERNAL_SERVER_ERROR, detail=f"文件合并失败: {str(e)}") + raise HTTPException( + status.HTTP_500_INTERNAL_SERVER_ERROR, detail=f"文件合并失败: {str(e)}" + ) # ============ 预签名上传API ============ @@ -482,7 +524,9 @@ presign_api = APIRouter(prefix="/presign", tags=["预签名上传"]) PRESIGN_SESSION_EXPIRES = 900 # 15分钟 -async def _get_valid_session(upload_id: str, expected_mode: str = None) -> PresignUploadSession: +async def _get_valid_session( + upload_id: str, expected_mode: Optional[str] = None +) -> PresignUploadSession: """获取并验证会话""" session = await PresignUploadSession.filter(upload_id=upload_id).first() if not session: @@ -496,18 +540,27 @@ async def _get_valid_session(upload_id: str, expected_mode: str = None) -> Presi @presign_api.post("/upload/init", dependencies=[Depends(share_required_login)]) -async def presign_upload_init(data: PresignUploadInitRequest, ip: str = Depends(ip_limit["upload"])): +async def presign_upload_init( + data: PresignUploadInitRequest, ip: str = Depends(ip_limit["upload"]) +): """初始化预签名上传,S3返回直传URL,其他存储返回代理URL""" if data.file_size > settings.uploadSize: - raise HTTPException(403, f"文件大小超过限制,最大为 {settings.uploadSize / (1024*1024):.2f} MB") + raise HTTPException( + 403, + f"文件大小超过限制,最大为 {settings.uploadSize / (1024 * 1024):.2f} MB", + ) if data.expire_style not in settings.expireStyle: raise HTTPException(400, "过期时间类型错误") upload_id = uuid.uuid4().hex - path, _, _, filename, save_path = await FileUploadService.generate_file_path(data.file_name, upload_id) + path, _, _, filename, save_path = await FileUploadService.generate_file_path( + data.file_name, upload_id + ) storage: FileStorageInterface = storages[settings.file_storage]() - presigned_url = await storage.generate_presigned_upload_url(save_path, PRESIGN_SESSION_EXPIRES) + presigned_url = await storage.generate_presigned_upload_url( + save_path, PRESIGN_SESSION_EXPIRES + ) mode = "direct" if presigned_url else "proxy" upload_url = presigned_url or f"/api/presign/upload/proxy/{upload_id}" @@ -524,16 +577,22 @@ async def presign_upload_init(data: PresignUploadInitRequest, ip: str = Depends( ) ip_limit["upload"].add_ip(ip) - return APIResponse(detail={ - "upload_id": upload_id, - "upload_url": upload_url, - "mode": mode, - "expires_in": PRESIGN_SESSION_EXPIRES, - }) + return APIResponse( + detail={ + "upload_id": upload_id, + "upload_url": upload_url, + "mode": mode, + "expires_in": PRESIGN_SESSION_EXPIRES, + } + ) -@presign_api.put("/upload/proxy/{upload_id}", dependencies=[Depends(share_required_login)]) -async def presign_upload_proxy(upload_id: str, file: UploadFile = File(...), ip: str = Depends(ip_limit["upload"])): +@presign_api.put( + "/upload/proxy/{upload_id}", dependencies=[Depends(share_required_login)] +) +async def presign_upload_proxy( + upload_id: str, file: UploadFile = File(...), ip: str = Depends(ip_limit["upload"]) +): """代理模式上传,服务器转存到存储后端""" session = await _get_valid_session(upload_id, expected_mode="proxy") @@ -548,8 +607,11 @@ async def presign_upload_proxy(upload_id: str, file: UploadFile = File(...), ip: raise HTTPException(500, f"文件保存失败: {str(e)}") code = await FileUploadService.create_file_record( - session.file_name, file_size, os.path.dirname(session.save_path), - session.expire_value, session.expire_style + session.file_name, + file_size, + os.path.dirname(session.save_path), + session.expire_value, + session.expire_style, ) await session.delete() @@ -557,7 +619,9 @@ async def presign_upload_proxy(upload_id: str, file: UploadFile = File(...), ip: return APIResponse(detail={"code": code, "name": session.file_name}) -@presign_api.post("/upload/confirm/{upload_id}", dependencies=[Depends(share_required_login)]) +@presign_api.post( + "/upload/confirm/{upload_id}", dependencies=[Depends(share_required_login)] +) async def presign_upload_confirm(upload_id: str, ip: str = Depends(ip_limit["upload"])): """直传确认,客户端完成S3直传后调用获取分享码""" session = await _get_valid_session(upload_id, expected_mode="direct") @@ -567,8 +631,11 @@ async def presign_upload_confirm(upload_id: str, ip: str = Depends(ip_limit["upl raise HTTPException(404, "文件未上传或上传失败") code = await FileUploadService.create_file_record( - session.file_name, session.file_size, os.path.dirname(session.save_path), - session.expire_value, session.expire_style + session.file_name, + session.file_size, + os.path.dirname(session.save_path), + session.expire_value, + session.expire_style, ) await session.delete() @@ -576,22 +643,26 @@ async def presign_upload_confirm(upload_id: str, ip: str = Depends(ip_limit["upl return APIResponse(detail={"code": code, "name": session.file_name}) -@presign_api.get("/upload/status/{upload_id}", dependencies=[Depends(share_required_login)]) +@presign_api.get( + "/upload/status/{upload_id}", dependencies=[Depends(share_required_login)] +) async def presign_upload_status(upload_id: str): """查询上传会话状态""" session = await PresignUploadSession.filter(upload_id=upload_id).first() if not session: raise HTTPException(404, "上传会话不存在") - return APIResponse(detail={ - "upload_id": session.upload_id, - "file_name": session.file_name, - "file_size": session.file_size, - "mode": session.mode, - "created_at": session.created_at.isoformat(), - "expires_at": session.expires_at.isoformat(), - "is_expired": await session.is_expired(), - }) + return APIResponse( + detail={ + "upload_id": session.upload_id, + "file_name": session.file_name, + "file_size": session.file_size, + "mode": session.mode, + "created_at": session.created_at.isoformat(), + "expires_at": session.expires_at.isoformat(), + "is_expired": await session.is_expired(), + } + ) @presign_api.delete("/upload/{upload_id}", dependencies=[Depends(share_required_login)]) diff --git a/core/tasks.py b/core/tasks.py index b6dd806..1064b00 100644 --- a/core/tasks.py +++ b/core/tasks.py @@ -48,36 +48,38 @@ async def delete_expire_files(): async def clean_incomplete_uploads(): """清理超时未完成的分片上传""" file_storage: FileStorageInterface = storages[settings.file_storage]() - # 默认 24 小时未完成的上传视为过期 - expire_hours = getattr(settings, 'chunk_expire_hours', 24) + expire_hours = getattr(settings, "chunk_expire_hours", 24) while True: try: - expire_time = datetime.datetime.now() - datetime.timedelta(hours=expire_hours) - # 查找所有过期的上传会话(chunk_index=-1 的记录) + expire_time = datetime.datetime.now() - datetime.timedelta( + hours=expire_hours + ) expired_sessions = await UploadChunk.filter( - chunk_index=-1, - created_at__lt=expire_time + chunk_index=-1, created_at__lt=expire_time ).all() for session in expired_sessions: try: - # 获取分片存储路径 - _, _, _, _, save_path = await get_chunk_file_path_name( - session.file_name, session.upload_id - ) - # 清理存储中的临时文件 + save_path = session.save_path + if not save_path: + _, _, _, _, save_path = await get_chunk_file_path_name( + session.file_name, session.upload_id + ) await file_storage.clean_chunks(session.upload_id, save_path) except Exception as e: - logging.error(f"清理分片文件失败 upload_id={session.upload_id}: {e}") + logging.error( + f"清理分片文件失败 upload_id={session.upload_id}: {e}" + ) try: - # 删除该会话的所有数据库记录 await UploadChunk.filter(upload_id=session.upload_id).delete() logging.info(f"已清理过期上传会话 upload_id={session.upload_id}") except Exception as e: - logging.error(f"删除分片记录失败 upload_id={session.upload_id}: {e}") + logging.error( + f"删除分片记录失败 upload_id={session.upload_id}: {e}" + ) except Exception as e: logging.error(f"清理未完成上传任务异常: {e}") finally: - await asyncio.sleep(3600) # 每小时执行一次 + await asyncio.sleep(3600) From e87bcfcce5a9c8240ced5952604bdcd70db1e362 Mon Sep 17 00:00:00 2001 From: Lan Date: Wed, 7 Jan 2026 20:04:44 +0800 Subject: [PATCH 2/4] fix: https://github.com/vastsa/FileCodeBox/issues/407 --- apps/admin/views.py | 64 +++++++++++++++++++++++---------------------- apps/base/utils.py | 44 ++++++++++++++++--------------- core/tasks.py | 6 ++--- 3 files changed, 58 insertions(+), 56 deletions(-) diff --git a/apps/admin/views.py b/apps/admin/views.py index c38de9e..bbcc0c2 100644 --- a/apps/admin/views.py +++ b/apps/admin/views.py @@ -17,6 +17,7 @@ from core.response import APIResponse from apps.base.models import FileCodes, KeyValue from apps.admin.dependencies import create_token from core.settings import settings +from core.utils import get_now admin_api = APIRouter(prefix="/admin", tags=["管理"]) @@ -37,16 +38,13 @@ async def dashboard(admin: bool = Depends(admin_required)): all_codes = await FileCodes.all() all_size = str(sum([code.size for code in all_codes])) sys_start = await KeyValue.filter(key="sys_start").first() - # 获取当前日期时间 - now = datetime.datetime.now() + now = await get_now() today_start = now.replace(hour=0, minute=0, second=0, microsecond=0) yesterday_start = today_start - datetime.timedelta(days=1) yesterday_end = today_start - datetime.timedelta(microseconds=1) - # 统计昨天一整天的记录数(从昨天0点到23:59:59) yesterday_codes = FileCodes.filter( created_at__gte=yesterday_start, created_at__lte=yesterday_end ) - # 统计今天到现在的记录数(从今天0点到现在) today_codes = FileCodes.filter(created_at__gte=today_start) return APIResponse( detail={ @@ -63,9 +61,9 @@ async def dashboard(admin: bool = Depends(admin_required)): @admin_api.delete("/file/delete") async def file_delete( - data: IDData, - file_service: FileService = Depends(get_file_service), - admin: bool = Depends(admin_required), + data: IDData, + file_service: FileService = Depends(get_file_service), + admin: bool = Depends(admin_required), ): await file_service.delete_file(data.id) return APIResponse() @@ -73,11 +71,11 @@ async def file_delete( @admin_api.get("/file/list") async def file_list( - page: int = 1, - size: int = 10, - keyword: str = "", - file_service: FileService = Depends(get_file_service), - admin: bool = Depends(admin_required), + page: int = 1, + size: int = 10, + keyword: str = "", + file_service: FileService = Depends(get_file_service), + admin: bool = Depends(admin_required), ): files, total = await file_service.list_files(page, size, keyword) return APIResponse( @@ -92,17 +90,17 @@ async def file_list( @admin_api.get("/config/get") async def get_config( - config_service: ConfigService = Depends(get_config_service), - admin: bool = Depends(admin_required), + config_service: ConfigService = Depends(get_config_service), + admin: bool = Depends(admin_required), ): return APIResponse(detail=config_service.get_config()) @admin_api.patch("/config/update") async def update_config( - data: dict, - config_service: ConfigService = Depends(get_config_service), - admin: bool = Depends(admin_required), + data: dict, + config_service: ConfigService = Depends(get_config_service), + admin: bool = Depends(admin_required), ): data.pop("themesChoices") await config_service.update_config(data) @@ -111,9 +109,9 @@ async def update_config( @admin_api.get("/file/download") async def file_download( - id: int, - file_service: FileService = Depends(get_file_service), - admin: bool = Depends(admin_required), + id: int, + file_service: FileService = Depends(get_file_service), + admin: bool = Depends(admin_required), ): file_content = await file_service.download_file(id) return file_content @@ -121,8 +119,8 @@ async def file_download( @admin_api.get("/local/lists") async def get_local_lists( - local_file_service: LocalFileService = Depends(get_local_file_service), - admin: bool = Depends(admin_required), + local_file_service: LocalFileService = Depends(get_local_file_service), + admin: bool = Depends(admin_required), ): files = await local_file_service.list_files() return APIResponse(detail=files) @@ -130,9 +128,9 @@ async def get_local_lists( @admin_api.delete("/local/delete") async def delete_local_file( - item: DeleteItem, - local_file_service: LocalFileService = Depends(get_local_file_service), - admin: bool = Depends(admin_required), + item: DeleteItem, + local_file_service: LocalFileService = Depends(get_local_file_service), + admin: bool = Depends(admin_required), ): result = await local_file_service.delete_file(item.filename) return APIResponse(detail=result) @@ -140,9 +138,9 @@ async def delete_local_file( @admin_api.post("/local/share") async def share_local_file( - item: ShareItem, - file_service: FileService = Depends(get_file_service), - admin: bool = Depends(admin_required), + item: ShareItem, + file_service: FileService = Depends(get_file_service), + admin: bool = Depends(admin_required), ): share_info = await file_service.share_local_file(item) return APIResponse(detail=share_info) @@ -150,8 +148,8 @@ async def share_local_file( @admin_api.patch("/file/update") async def update_file( - data: UpdateFileData, - admin: bool = Depends(admin_required), + data: UpdateFileData, + admin: bool = Depends(admin_required), ): file_code = await FileCodes.filter(id=data.id).first() if not file_code: @@ -167,7 +165,11 @@ async def update_file( update_data["prefix"] = data.prefix if data.suffix is not None and data.suffix != file_code.suffix: update_data["suffix"] = data.suffix - if data.expired_at is not None and data.expired_at != "" and data.expired_at != file_code.expired_at: + if ( + data.expired_at is not None + and data.expired_at != "" + and data.expired_at != file_code.expired_at + ): update_data["expired_at"] = data.expired_at if data.expired_count is not None and data.expired_count != file_code.expired_count: update_data["expired_count"] = data.expired_count diff --git a/apps/base/utils.py b/apps/base/utils.py index 1157353..70c76f2 100644 --- a/apps/base/utils.py +++ b/apps/base/utils.py @@ -10,30 +10,32 @@ from typing import Optional, Tuple from apps.base.dependencies import IPRateLimit from apps.base.models import FileCodes from core.settings import settings -from core.utils import get_random_num, get_random_string, max_save_times_desc, sanitize_filename +from core.utils import ( + get_random_num, + get_random_string, + max_save_times_desc, + sanitize_filename, + get_now, +) async def get_file_path_name(file: UploadFile) -> Tuple[str, str, str, str, str]: - """获取文件路径和文件名""" - today = datetime.datetime.now() - storage_path = settings.storage_path.strip("/") # 移除开头和结尾的斜杠 + today = await get_now() + storage_path = settings.storage_path.strip("/") file_uuid = uuid.uuid4().hex - # 一些客户端对非ASCII字符会进行编码,需要解码 - filename = await sanitize_filename(unquote(file.filename)) - # 使用 UUID 作为子目录名 + filename = await sanitize_filename(unquote(file.filename or "")) base_path = f"share/data/{today.strftime('%Y/%m/%d')}/{file_uuid}" - # 如果设置了存储路径,将其添加到基础路径中 path = f"{storage_path}/{base_path}" if storage_path else base_path prefix, suffix = os.path.splitext(filename) - # 保持原始文件名 save_path = f"{path}/{filename}" return path, suffix, prefix, filename, save_path -async def get_chunk_file_path_name(file_name: str, upload_id: str) -> Tuple[str, str, str, str, str]: - """获取切片文件的路径和文件名""" - today = datetime.datetime.now() - storage_path = settings.storage_path.strip("/") # 移除开头和结尾的斜杠 +async def get_chunk_file_path_name( + file_name: str, upload_id: str +) -> Tuple[str, str, str, str, str]: + today = await get_now() + storage_path = settings.storage_path.strip("/") base_path = f"share/data/{today.strftime('%Y/%m/%d')}/{upload_id}" path = f"{storage_path}/{base_path}" if storage_path else base_path prefix, suffix = os.path.splitext(file_name) @@ -41,10 +43,11 @@ async def get_chunk_file_path_name(file_name: str, upload_id: str) -> Tuple[str, return path, suffix, prefix, file_name, save_path -async def get_expire_info(expire_value: int, expire_style: str) -> Tuple[Optional[datetime.datetime], int, int, str]: - """获取过期信息""" +async def get_expire_info( + expire_value: int, expire_style: str +) -> Tuple[Optional[datetime.datetime], int, int, str]: expired_count, used_count = -1, 0 - now = datetime.datetime.now() + now = await get_now() code = None max_timedelta = ( @@ -64,7 +67,7 @@ async def get_expire_info(expire_value: int, expire_style: str) -> Tuple[Optiona "hour": lambda: now + datetime.timedelta(hours=expire_value), "minute": lambda: now + datetime.timedelta(minutes=expire_value), "count": lambda: (now + datetime.timedelta(days=1), expire_value), - "forever": lambda: (None, None), # 修改这里 + "forever": lambda: (None, None), } if expire_style in expire_styles: @@ -74,7 +77,7 @@ async def get_expire_info(expire_value: int, expire_style: str) -> Tuple[Optiona if expire_style == "count": expired_count = extra elif expire_style == "forever": - code = await get_random_code(style="string") # 移动到这里 + code = await get_random_code(style="string") else: expired_at = result if expired_at and expired_at - now > max_timedelta: @@ -88,12 +91,11 @@ async def get_expire_info(expire_value: int, expire_style: str) -> Tuple[Optiona return expired_at, expired_count, used_count, code -async def get_random_code(style="num") -> str: - """获取随机字符串""" +async def get_random_code(style: str = "num") -> str: while True: code = await get_random_num() if style == "num" else await get_random_string() if not await FileCodes.filter(code=code).exists(): - return code + return str(code) async def calculate_file_hash(file: UploadFile, chunk_size=1024 * 1024) -> str: diff --git a/core/tasks.py b/core/tasks.py index 1064b00..c595ae2 100644 --- a/core/tasks.py +++ b/core/tasks.py @@ -46,14 +46,12 @@ async def delete_expire_files(): async def clean_incomplete_uploads(): - """清理超时未完成的分片上传""" file_storage: FileStorageInterface = storages[settings.file_storage]() expire_hours = getattr(settings, "chunk_expire_hours", 24) while True: try: - expire_time = datetime.datetime.now() - datetime.timedelta( - hours=expire_hours - ) + now = await get_now() + expire_time = now - datetime.timedelta(hours=expire_hours) expired_sessions = await UploadChunk.filter( chunk_index=-1, created_at__lt=expire_time ).all() From 81ee640353358dcea4fb74d7fd677fd6b46a223a Mon Sep 17 00:00:00 2001 From: Lan Date: Wed, 7 Jan 2026 20:28:06 +0800 Subject: [PATCH 3/4] feat: https://github.com/vastsa/FileCodeBox/issues/386 https://github.com/vastsa/FileCodeBox/issues/380 --- docs/api/index.md | 79 +++++++++++- docs/en/api/index.md | 79 +++++++++++- docs/en/guide/upload.md | 41 +++++++ docs/guide/upload.md | 41 +++++++ readme.md | 74 ++++++++++++ readme_en.md | 78 +++++++++++- themes/2024/assets/AdminLayout-CIwHWF3v.js | 1 - themes/2024/assets/AdminLayout-DFagHGxu.js | 21 ++++ ...-D_KhoR09.css => AdminLayout-nlp_lohe.css} | 2 +- themes/2024/assets/DashboardView-CPuETXoG.js | 1 - themes/2024/assets/DashboardView-DneIu2Zw.js | 11 ++ themes/2024/assets/FileManageView-Bevef92J.js | 31 +++++ themes/2024/assets/FileManageView-D9LkQK2i.js | 1 - ...View-DN8sBu46.js => LoginView-CyitXin1.js} | 2 +- themes/2024/assets/PageHeader-C8MTYIg6.js | 16 +++ themes/2024/assets/PageHeader-Y9MICulD.js | 1 - .../assets/RetrievewFileView-Bs4l0or-.css | 1 - .../2024/assets/RetrievewFileView-CWZH6U-r.js | 61 ---------- .../2024/assets/RetrievewFileView-DKpM6_j2.js | 76 ++++++++++++ .../assets/RetrievewFileView-pLqL6j5e.css | 1 + themes/2024/assets/SendFileView-C_jTXUIX.js | 36 ++++++ themes/2024/assets/SendFileView-CncKd-lI.css | 1 - themes/2024/assets/SendFileView-DJTyD32y.css | 1 + themes/2024/assets/SendFileView-DW3wRbaM.js | 1 - ...DWo0.js => SystemSettingsView-CqFKOfSv.js} | 2 +- themes/2024/assets/box-BaIzuVAS.js | 6 + themes/2024/assets/box-COy3AQAQ.js | 1 - themes/2024/assets/copy-ClIbpnbK.js | 6 + themes/2024/assets/copy-DV195_ld.js | 1 - themes/2024/assets/file-CSeBUDan.js | 6 + themes/2024/assets/file-Ceuyr6iv.js | 1 - themes/2024/assets/hard-drive-5GIKYPKr.js | 1 - themes/2024/assets/hard-drive-DFfw9-r7.js | 6 + themes/2024/assets/index-B3zfsvgW.js | 9 -- themes/2024/assets/index-B9FIg8c4.js | 114 ++++++++++++++++++ themes/2024/assets/index-BXCbdTRh.css | 1 - themes/2024/assets/index-Xt5VatQo.css | 1 + themes/2024/assets/trash-CdDjPTBr.js | 1 - themes/2024/assets/trash-DPD8vC5o.js | 11 ++ themes/2024/index.html | 4 +- 40 files changed, 728 insertions(+), 100 deletions(-) delete mode 100644 themes/2024/assets/AdminLayout-CIwHWF3v.js create mode 100644 themes/2024/assets/AdminLayout-DFagHGxu.js rename themes/2024/assets/{AdminLayout-D_KhoR09.css => AdminLayout-nlp_lohe.css} (83%) delete mode 100644 themes/2024/assets/DashboardView-CPuETXoG.js create mode 100644 themes/2024/assets/DashboardView-DneIu2Zw.js create mode 100644 themes/2024/assets/FileManageView-Bevef92J.js delete mode 100644 themes/2024/assets/FileManageView-D9LkQK2i.js rename themes/2024/assets/{LoginView-DN8sBu46.js => LoginView-CyitXin1.js} (97%) create mode 100644 themes/2024/assets/PageHeader-C8MTYIg6.js delete mode 100644 themes/2024/assets/PageHeader-Y9MICulD.js delete mode 100644 themes/2024/assets/RetrievewFileView-Bs4l0or-.css delete mode 100644 themes/2024/assets/RetrievewFileView-CWZH6U-r.js create mode 100644 themes/2024/assets/RetrievewFileView-DKpM6_j2.js create mode 100644 themes/2024/assets/RetrievewFileView-pLqL6j5e.css create mode 100644 themes/2024/assets/SendFileView-C_jTXUIX.js delete mode 100644 themes/2024/assets/SendFileView-CncKd-lI.css create mode 100644 themes/2024/assets/SendFileView-DJTyD32y.css delete mode 100644 themes/2024/assets/SendFileView-DW3wRbaM.js rename themes/2024/assets/{SystemSettingsView-9k34DWo0.js => SystemSettingsView-CqFKOfSv.js} (99%) create mode 100644 themes/2024/assets/box-BaIzuVAS.js delete mode 100644 themes/2024/assets/box-COy3AQAQ.js create mode 100644 themes/2024/assets/copy-ClIbpnbK.js delete mode 100644 themes/2024/assets/copy-DV195_ld.js create mode 100644 themes/2024/assets/file-CSeBUDan.js delete mode 100644 themes/2024/assets/file-Ceuyr6iv.js delete mode 100644 themes/2024/assets/hard-drive-5GIKYPKr.js create mode 100644 themes/2024/assets/hard-drive-DFfw9-r7.js delete mode 100644 themes/2024/assets/index-B3zfsvgW.js create mode 100644 themes/2024/assets/index-B9FIg8c4.js delete mode 100644 themes/2024/assets/index-BXCbdTRh.css create mode 100644 themes/2024/assets/index-Xt5VatQo.css delete mode 100644 themes/2024/assets/trash-CdDjPTBr.js create mode 100644 themes/2024/assets/trash-DPD8vC5o.js diff --git a/docs/api/index.md b/docs/api/index.md index 66a7131..2b2cac0 100644 --- a/docs/api/index.md +++ b/docs/api/index.md @@ -15,6 +15,29 @@ Authorization: Bearer ``` +### 获取 Token + +当管理面板关闭了游客上传(`openUpload=0`)时,需要先登录获取 token: + +```bash +curl -X POST "http://localhost:12345/admin/login" \ + -H "Content-Type: application/json" \ + -d '{"password": "FileCodeBox2023"}' +``` + +**响应示例:** + +```json +{ + "code": 200, + "msg": "success", + "detail": { + "token": "xxx.xxx.xxx", + "token_type": "Bearer" + } +} +``` + ## 分享接口 ### 分享文本 @@ -29,7 +52,22 @@ Authorization: Bearer |-------|------|------|--------|------| | text | string | 是 | - | 要分享的文本内容 | | expire_value | integer | 否 | 1 | 过期时间值 | -| expire_style | string | 否 | "day" | 过期时间单位(day/hour/minute) | +| expire_style | string | 否 | "day" | 过期时间单位(day/hour/minute/count/forever) | + +**cURL 示例:** + +```bash +# 游客上传(openUpload=1 时) +curl -X POST "http://localhost:12345/share/text/" \ + -F "text=这是要分享的文本内容" \ + -F "expire_value=1" \ + -F "expire_style=day" + +# 需要认证时(openUpload=0 时) +curl -X POST "http://localhost:12345/share/text/" \ + -H "Authorization: Bearer xxx.xxx.xxx" \ + -F "text=这是要分享的文本内容" +``` **响应示例:** @@ -38,8 +76,7 @@ Authorization: Bearer "code": 200, "msg": "success", "detail": { - "code": "abc123", - "name": "text.txt" + "code": "abc123" } } ``` @@ -56,7 +93,32 @@ Authorization: Bearer |-------|------|------|--------|------| | file | file | 是 | - | 要上传的文件 | | expire_value | integer | 否 | 1 | 过期时间值 | -| expire_style | string | 否 | "day" | 过期时间单位(day/hour/minute) | +| expire_style | string | 否 | "day" | 过期时间单位(day/hour/minute/count/forever) | + +**cURL 示例:** + +```bash +# 上传文件(默认1天有效期) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/file.txt" + +# 上传文件(7天有效期) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/file.txt" \ + -F "expire_value=7" \ + -F "expire_style=day" + +# 上传文件(可下载10次) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/file.txt" \ + -F "expire_value=10" \ + -F "expire_style=count" + +# 需要认证时 +curl -X POST "http://localhost:12345/share/file/" \ + -H "Authorization: Bearer xxx.xxx.xxx" \ + -F "file=@/path/to/file.txt" +``` **响应示例:** @@ -75,7 +137,7 @@ Authorization: Bearer **GET** `/share/select/` -通过分享码获取文件信息。 +通过分享码获取文件信息(直接下载文件)。 **请求参数:** @@ -83,6 +145,13 @@ Authorization: Bearer |-------|------|------|------| | code | string | 是 | 文件分享码 | +**cURL 示例:** + +```bash +# 通过取件码下载文件 +curl -L "http://localhost:12345/share/select/?code=abc123" -o downloaded_file +``` + **响应示例:** ```json diff --git a/docs/en/api/index.md b/docs/en/api/index.md index a96b6e5..2addc64 100644 --- a/docs/en/api/index.md +++ b/docs/en/api/index.md @@ -15,6 +15,29 @@ Some APIs require `Authorization` header for authentication: Authorization: Bearer ``` +### Get Token + +When guest upload is disabled in admin panel (`openUpload=0`), you need to login first: + +```bash +curl -X POST "http://localhost:12345/admin/login" \ + -H "Content-Type: application/json" \ + -d '{"password": "FileCodeBox2023"}' +``` + +**Response Example:** + +```json +{ + "code": 200, + "msg": "success", + "detail": { + "token": "xxx.xxx.xxx", + "token_type": "Bearer" + } +} +``` + ## Share API ### Share Text @@ -29,7 +52,22 @@ Share text content and get a share code. |-----------|------|----------|---------|-------------| | text | string | Yes | - | Text content to share | | expire_value | integer | No | 1 | Expiration time value | -| expire_style | string | No | "day" | Expiration time unit(day/hour/minute) | +| expire_style | string | No | "day" | Expiration time unit(day/hour/minute/count/forever) | + +**cURL Example:** + +```bash +# Guest upload (when openUpload=1) +curl -X POST "http://localhost:12345/share/text/" \ + -F "text=This is the text content to share" \ + -F "expire_value=1" \ + -F "expire_style=day" + +# When authentication required (openUpload=0) +curl -X POST "http://localhost:12345/share/text/" \ + -H "Authorization: Bearer xxx.xxx.xxx" \ + -F "text=This is the text content to share" +``` **Response Example:** @@ -38,8 +76,7 @@ Share text content and get a share code. "code": 200, "msg": "success", "detail": { - "code": "abc123", - "name": "text.txt" + "code": "abc123" } } ``` @@ -56,7 +93,32 @@ Upload and share a file, get a share code. |-----------|------|----------|---------|-------------| | file | file | Yes | - | File to upload | | expire_value | integer | No | 1 | Expiration time value | -| expire_style | string | No | "day" | Expiration time unit(day/hour/minute) | +| expire_style | string | No | "day" | Expiration time unit(day/hour/minute/count/forever) | + +**cURL Example:** + +```bash +# Upload file (default 1 day expiration) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/file.txt" + +# Upload file (7 days expiration) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/file.txt" \ + -F "expire_value=7" \ + -F "expire_style=day" + +# Upload file (10 downloads limit) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/file.txt" \ + -F "expire_value=10" \ + -F "expire_style=count" + +# When authentication required +curl -X POST "http://localhost:12345/share/file/" \ + -H "Authorization: Bearer xxx.xxx.xxx" \ + -F "file=@/path/to/file.txt" +``` **Response Example:** @@ -75,7 +137,7 @@ Upload and share a file, get a share code. **GET** `/share/select/` -Get file information by share code. +Get file information by share code (direct file download). **Parameters:** @@ -83,6 +145,13 @@ Get file information by share code. |-----------|------|----------|-------------| | code | string | Yes | File share code | +**cURL Example:** + +```bash +# Download file by extraction code +curl -L "http://localhost:12345/share/select/?code=abc123" -o downloaded_file +``` + **Response Example:** ```json diff --git a/docs/en/guide/upload.md b/docs/en/guide/upload.md index 25ce91e..1dd9306 100644 --- a/docs/en/guide/upload.md +++ b/docs/en/guide/upload.md @@ -118,12 +118,53 @@ Content-Type: `multipart/form-data` **cURL example:** ```bash +# Upload file (default 1 day expiration) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/file.pdf" + +# Upload file with 7 days expiration curl -X POST "http://localhost:12345/share/file/" \ -F "file=@/path/to/file.pdf" \ -F "expire_value=7" \ -F "expire_style=day" + +# Upload file with 10 downloads limit +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/file.pdf" \ + -F "expire_value=10" \ + -F "expire_style=count" + +# Share text +curl -X POST "http://localhost:12345/share/text/" \ + -F "text=This is the text content to share" + +# Download file by extraction code +curl -L "http://localhost:12345/share/select/?code=YOUR_CODE" -o downloaded_file ``` +::: tip When Authentication Required +If guest upload is disabled in admin panel (`openUpload=0`), you need to login first: + +```bash +# 1. Login to get token +curl -X POST "http://localhost:12345/admin/login" \ + -H "Content-Type: application/json" \ + -d '{"password": "FileCodeBox2023"}' + +# Returns: {"code":200,"msg":"success","detail":{"token":"xxx.xxx.xxx","token_type":"Bearer"}} + +# 2. Upload file with token +curl -X POST "http://localhost:12345/share/file/" \ + -H "Authorization: Bearer xxx.xxx.xxx" \ + -F "file=@/path/to/file.pdf" + +# 3. Share text with token +curl -X POST "http://localhost:12345/share/text/" \ + -H "Authorization: Bearer xxx.xxx.xxx" \ + -F "text=This is the text content to share" +``` +::: + ## Chunked Upload API diff --git a/docs/guide/upload.md b/docs/guide/upload.md index 81b1f26..a5f1b8f 100644 --- a/docs/guide/upload.md +++ b/docs/guide/upload.md @@ -118,12 +118,53 @@ Content-Type: `multipart/form-data` **cURL 示例:** ```bash +# 上传文件(默认1天有效期) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/file.pdf" + +# 上传文件并指定有效期(7天) curl -X POST "http://localhost:12345/share/file/" \ -F "file=@/path/to/file.pdf" \ -F "expire_value=7" \ -F "expire_style=day" + +# 上传文件并指定有效期(可下载10次) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/file.pdf" \ + -F "expire_value=10" \ + -F "expire_style=count" + +# 分享文本 +curl -X POST "http://localhost:12345/share/text/" \ + -F "text=这是要分享的文本内容" + +# 通过取件码下载文件 +curl -L "http://localhost:12345/share/select/?code=取件码" -o downloaded_file ``` +::: tip 需要认证时 +如果管理面板关闭了游客上传(`openUpload=0`),需要先登录获取 token: + +```bash +# 1. 登录获取 token +curl -X POST "http://localhost:12345/admin/login" \ + -H "Content-Type: application/json" \ + -d '{"password": "FileCodeBox2023"}' + +# 返回: {"code":200,"msg":"success","detail":{"token":"xxx.xxx.xxx","token_type":"Bearer"}} + +# 2. 使用 token 上传文件 +curl -X POST "http://localhost:12345/share/file/" \ + -H "Authorization: Bearer xxx.xxx.xxx" \ + -F "file=@/path/to/file.pdf" + +# 3. 使用 token 分享文本 +curl -X POST "http://localhost:12345/share/text/" \ + -H "Authorization: Bearer xxx.xxx.xxx" \ + -F "text=这是要分享的文本内容" +``` +::: + ## 分片上传 API 对于大文件,FileCodeBox 支持分片上传功能。分片上传将大文件分割成多个小块分别上传,支持断点续传。 diff --git a/readme.md b/readme.md index 8558c2c..ac411f6 100644 --- a/readme.md +++ b/readme.md @@ -267,6 +267,80 @@ python main.py 2. 输入管理员密码 `FileCodeBox2023` 3. 管理文件和配置 +### 命令行上传(curl) + +支持通过 curl 命令上传文件并获取取件码: + +```bash +# 上传文件(默认1天有效期) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/your/file.txt" + +# 上传文件并指定有效期(1小时) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/your/file.txt" \ + -F "expire_value=1" \ + -F "expire_style=hour" + +# 上传文件并指定有效期(可下载10次) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/your/file.txt" \ + -F "expire_value=10" \ + -F "expire_style=count" + +# 分享文本 +curl -X POST "http://localhost:12345/share/text/" \ + -F "text=这是要分享的文本内容" + +# 通过取件码下载文件 +curl -L "http://localhost:12345/share/select/?code=取件码" -o downloaded_file +``` + +**参数说明:** +- `expire_value`: 有效期数值(默认1) +- `expire_style`: 有效期类型 + - `day` - 天数 + - `hour` - 小时 + - `minute` - 分钟 + - `count` - 下载次数 + - `forever` - 永久有效 + +**返回示例:** +```json +{ + "code": 200, + "msg": "success", + "detail": { + "code": "abcd1234", + "name": "file.txt" + } +} +``` + +> 注意:如果管理面板关闭了游客上传(`openUpload=false`),需要先登录获取 token,然后在请求中添加 `Authorization: Bearer ` 头。 + +**需要认证时的用法:** + +```bash +# 1. 先登录获取 token +curl -X POST "http://localhost:12345/admin/login" \ + -H "Content-Type: application/json" \ + -d '{"password": "FileCodeBox2023"}' + +# 返回示例: +# {"code":200,"msg":"success","detail":{"token":"xxx.xxx.xxx","token_type":"Bearer"}} + +# 2. 使用 token 上传文件 +curl -X POST "http://localhost:12345/share/file/" \ + -H "Authorization: Bearer xxx.xxx.xxx" \ + -F "file=@/path/to/your/file.txt" + +# 2. 使用 token 分享文本 +curl -X POST "http://localhost:12345/share/text/" \ + -H "Authorization: Bearer xxx.xxx.xxx" \ + -F "text=这是要分享的文本内容" +``` + ## 🛠 开发指南 ### 项目结构 diff --git a/readme_en.md b/readme_en.md index b10dc6c..35c0c0e 100644 --- a/readme_en.md +++ b/readme_en.md @@ -259,10 +259,84 @@ python main.py ### Admin Panel -1. Visit `/admin` -2. Enter admin password +1. Visit `/#/admin` +2. Enter admin password `FileCodeBox2023` 3. Manage files and settings +### Command Line Upload (curl) + +Upload files and get extraction codes via curl: + +```bash +# Upload file (default 1 day expiration) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/your/file.txt" + +# Upload file with expiration (1 hour) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/your/file.txt" \ + -F "expire_value=1" \ + -F "expire_style=hour" + +# Upload file with download limit (10 downloads) +curl -X POST "http://localhost:12345/share/file/" \ + -F "file=@/path/to/your/file.txt" \ + -F "expire_value=10" \ + -F "expire_style=count" + +# Share text +curl -X POST "http://localhost:12345/share/text/" \ + -F "text=This is the text content to share" + +# Download file by extraction code +curl -L "http://localhost:12345/share/select/?code=YOUR_CODE" -o downloaded_file +``` + +**Parameters:** +- `expire_value`: Expiration value (default 1) +- `expire_style`: Expiration type + - `day` - Days + - `hour` - Hours + - `minute` - Minutes + - `count` - Download count + - `forever` - Never expire + +**Response Example:** +```json +{ + "code": 200, + "msg": "success", + "detail": { + "code": "abcd1234", + "name": "file.txt" + } +} +``` + +> Note: If guest upload is disabled in admin panel (`openUpload=false`), you need to login first to get a token, then add `Authorization: Bearer ` header to your requests. + +**When Authentication Required:** + +```bash +# 1. Login to get token +curl -X POST "http://localhost:12345/admin/login" \ + -H "Content-Type: application/json" \ + -d '{"password": "FileCodeBox2023"}' + +# Response: +# {"code":200,"msg":"success","detail":{"token":"xxx.xxx.xxx","token_type":"Bearer"}} + +# 2. Upload file with token +curl -X POST "http://localhost:12345/share/file/" \ + -H "Authorization: Bearer xxx.xxx.xxx" \ + -F "file=@/path/to/your/file.txt" + +# 3. Share text with token +curl -X POST "http://localhost:12345/share/text/" \ + -H "Authorization: Bearer xxx.xxx.xxx" \ + -F "text=This is the text content to share" +``` + ## 🛠 Development Guide ### Project Structure diff --git a/themes/2024/assets/AdminLayout-CIwHWF3v.js b/themes/2024/assets/AdminLayout-CIwHWF3v.js deleted file mode 100644 index 7d312e2..0000000 --- a/themes/2024/assets/AdminLayout-CIwHWF3v.js +++ /dev/null @@ -1 +0,0 @@ -import{c as l,d as _,u as M,r as m,f as p,R as C,a as b,o as h,b as t,n as o,e,i as z,l as i,I as D,t as f,X as L,y as B,D as j,G as E,k as F,E as I,m as N}from"./index-B3zfsvgW.js";import{B as R}from"./box-COy3AQAQ.js";const S=l("cog",[["path",{d:"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z",key:"sobvz5"}],["path",{d:"M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z",key:"11i496"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 22v-2",key:"1osdcq"}],["path",{d:"m17 20.66-1-1.73",key:"eq3orb"}],["path",{d:"M11 10.27 7 3.34",key:"16pf9h"}],["path",{d:"m20.66 17-1.73-1",key:"sg0v6f"}],["path",{d:"m3.34 7 1.73 1",key:"1ulond"}],["path",{d:"M14 12h8",key:"4f43i9"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"m20.66 7-1.73 1",key:"1ow05n"}],["path",{d:"m3.34 17 1.73-1",key:"nuk764"}],["path",{d:"m17 3.34-1 1.73",key:"2wel8s"}],["path",{d:"m11 13.73-4 6.93",key:"794ttg"}]]);const V=l("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);const Z=l("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);const q=l("menu",[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]]),A={class:"flex items-center"},$={class:"rounded-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 p-1 animate-spin-slow"},G={class:"flex-1 overflow-y-auto custom-scrollbar"},H={class:"p-4 space-y-2"},O=["onClick"],T={class:"flex-1 flex flex-col h-full"},U={class:"flex items-center justify-between h-16 px-4"},P=_({__name:"AdminLayout",setup(W){const d=D(),{t:n}=M(),a=z("isDarkMode"),x=[{id:"Dashboard",name:n("admin.dashboard.title"),icon:Z,redirect:"/admin/dashboard"},{id:"FileManage",name:n("admin.fileManage.title"),icon:V,redirect:"/admin/files"},{id:"Settings",name:n("admin.settings.title"),icon:S,redirect:"/admin/settings"}],r=m(!0),g=()=>{r.value=!r.value},c=()=>{window.innerWidth>=1024?r.value=!0:r.value=!1};p(()=>{c(),window.addEventListener("resize",c)}),C(()=>{window.removeEventListener("resize",c)});const k=m({page:1,size:10,total:0}),v=async()=>{try{k.value.total=85}catch(u){console.error("加载文件列表失败:",u)}};return p(()=>{v()}),(u,y)=>{const w=E("router-view");return h(),b("div",{class:o(["h-screen flex flex-col lg:flex-row transition-colors duration-300",[e(a)?"bg-gray-900":"bg-gray-50"]])},[t("aside",{class:o(["fixed inset-y-0 border-transparent left-0 z-50 w-64 transform transition-all duration-300 ease-in-out lg:relative lg:translate-x-0 border-r flex flex-col h-full lg:h-screen",[e(a)?"bg-gray-800 bg-opacity-90 backdrop-filter backdrop-blur-xl ":"bg-white ",{"-translate-x-full":!r.value}]])},[t("div",{class:o(["flex items-center justify-between h-16 px-4 border-b",[e(a)?"border-gray-700":"border-gray-200"]])},[t("div",A,[t("div",$,[t("div",{class:o(["rounded-full p-1",[e(a)?"bg-gray-800":"bg-white"]])},[i(e(R),{class:o(["w-6 h-6",[e(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])],2)]),t("h1",{onClick:y[0]||(y[0]=s=>e(d).push("/")),class:o(["ml-2 text-xl font-semibold cursor-pointer",[e(a)?"text-white":"text-gray-800"]])},f(e(n)("common.appName")),3)]),t("button",{onClick:g,class:"lg:hidden"},[i(e(L),{class:o(["w-6 h-6",[e(a)?"text-gray-400":"text-gray-600"]])},null,8,["class"])])],2),t("nav",G,[t("ul",H,[(h(),b(B,null,j(x,s=>t("li",{key:s.id},[t("a",{onClick:X=>e(d).push(s.redirect),class:o(["flex items-center p-2 rounded-lg transition-colors duration-200",[e(d).currentRoute.value.name===s.id?e(a)?"bg-indigo-900 text-indigo-400":"bg-indigo-100 text-indigo-600":e(a)?"text-gray-400 hover:bg-gray-700":"text-gray-600 hover:bg-gray-100"]])},[(h(),F(N(s.icon),{class:"w-5 h-5 mr-3"})),I(" "+f(s.name),1)],10,O)])),64))])])],2),t("div",T,[t("header",{class:o(["shadow-md border-b transition-colors duration-300 h-16",[e(a)?"bg-gray-800 border-gray-700":"bg-white border-gray-200"]])},[t("div",U,[t("button",{onClick:g,class:"lg:hidden"},[i(e(q),{class:o(["w-6 h-6",[e(a)?"text-gray-400":"text-gray-600"]])},null,8,["class"])])])],2),t("main",{class:o(["overflow-y-auto transition-colors duration-300 custom-scrollbar",[e(a)?"bg-gray-900":"bg-gray-50"]])},[i(w)],2)])],2)}}});export{P as default}; diff --git a/themes/2024/assets/AdminLayout-DFagHGxu.js b/themes/2024/assets/AdminLayout-DFagHGxu.js new file mode 100644 index 0000000..50e638c --- /dev/null +++ b/themes/2024/assets/AdminLayout-DFagHGxu.js @@ -0,0 +1,21 @@ +import{c as l,d as _,u as M,r as m,f as p,R as C,a as b,o as h,b as t,n as o,e,i as z,l as i,I as D,t as f,X as L,y as B,D as j,G as E,k as F,E as I,m as N}from"./index-B9FIg8c4.js";import{B as R}from"./box-BaIzuVAS.js";/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const S=l("cog",[["path",{d:"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z",key:"sobvz5"}],["path",{d:"M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z",key:"11i496"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 22v-2",key:"1osdcq"}],["path",{d:"m17 20.66-1-1.73",key:"eq3orb"}],["path",{d:"M11 10.27 7 3.34",key:"16pf9h"}],["path",{d:"m20.66 17-1.73-1",key:"sg0v6f"}],["path",{d:"m3.34 7 1.73 1",key:"1ulond"}],["path",{d:"M14 12h8",key:"4f43i9"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"m20.66 7-1.73 1",key:"1ow05n"}],["path",{d:"m3.34 17 1.73-1",key:"nuk764"}],["path",{d:"m17 3.34-1 1.73",key:"2wel8s"}],["path",{d:"m11 13.73-4 6.93",key:"794ttg"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const V=l("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Z=l("layout-dashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const q=l("menu",[["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 18h16",key:"19g7jn"}],["path",{d:"M4 6h16",key:"1o0s65"}]]),A={class:"flex items-center"},$={class:"rounded-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 p-1 animate-spin-slow"},G={class:"flex-1 overflow-y-auto custom-scrollbar"},H={class:"p-4 space-y-2"},O=["onClick"],T={class:"flex-1 flex flex-col h-full"},U={class:"flex items-center justify-between h-16 px-4"},P=_({__name:"AdminLayout",setup(W){const d=D(),{t:n}=M(),a=z("isDarkMode"),x=[{id:"Dashboard",name:n("admin.dashboard.title"),icon:Z,redirect:"/admin/dashboard"},{id:"FileManage",name:n("admin.fileManage.title"),icon:V,redirect:"/admin/files"},{id:"Settings",name:n("admin.settings.title"),icon:S,redirect:"/admin/settings"}],r=m(!0),g=()=>{r.value=!r.value},c=()=>{window.innerWidth>=1024?r.value=!0:r.value=!1};p(()=>{c(),window.addEventListener("resize",c)}),C(()=>{window.removeEventListener("resize",c)});const k=m({page:1,size:10,total:0}),v=async()=>{try{k.value.total=85}catch(u){console.error("加载文件列表失败:",u)}};return p(()=>{v()}),(u,y)=>{const w=E("router-view");return h(),b("div",{class:o(["h-screen flex flex-col lg:flex-row transition-colors duration-300",[e(a)?"bg-gray-900":"bg-gray-50"]])},[t("aside",{class:o(["fixed inset-y-0 border-transparent left-0 z-50 w-64 transform transition-all duration-300 ease-in-out lg:relative lg:translate-x-0 border-r flex flex-col h-full lg:h-screen",[e(a)?"bg-gray-800 bg-opacity-90 backdrop-filter backdrop-blur-xl ":"bg-white ",{"-translate-x-full":!r.value}]])},[t("div",{class:o(["flex items-center justify-between h-16 px-4 border-b",[e(a)?"border-gray-700":"border-gray-200"]])},[t("div",A,[t("div",$,[t("div",{class:o(["rounded-full p-1",[e(a)?"bg-gray-800":"bg-white"]])},[i(e(R),{class:o(["w-6 h-6",[e(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])],2)]),t("h1",{onClick:y[0]||(y[0]=s=>e(d).push("/")),class:o(["ml-2 text-xl font-semibold cursor-pointer",[e(a)?"text-white":"text-gray-800"]])},f(e(n)("common.appName")),3)]),t("button",{onClick:g,class:"lg:hidden"},[i(e(L),{class:o(["w-6 h-6",[e(a)?"text-gray-400":"text-gray-600"]])},null,8,["class"])])],2),t("nav",G,[t("ul",H,[(h(),b(B,null,j(x,s=>t("li",{key:s.id},[t("a",{onClick:X=>e(d).push(s.redirect),class:o(["flex items-center p-2 rounded-lg transition-colors duration-200",[e(d).currentRoute.value.name===s.id?e(a)?"bg-indigo-900 text-indigo-400":"bg-indigo-100 text-indigo-600":e(a)?"text-gray-400 hover:bg-gray-700":"text-gray-600 hover:bg-gray-100"]])},[(h(),F(N(s.icon),{class:"w-5 h-5 mr-3"})),I(" "+f(s.name),1)],10,O)])),64))])])],2),t("div",T,[t("header",{class:o(["shadow-md border-b transition-colors duration-300 h-16",[e(a)?"bg-gray-800 border-gray-700":"bg-white border-gray-200"]])},[t("div",U,[t("button",{onClick:g,class:"lg:hidden"},[i(e(q),{class:o(["w-6 h-6",[e(a)?"text-gray-400":"text-gray-600"]])},null,8,["class"])])])],2),t("main",{class:o(["overflow-y-auto transition-colors duration-300 custom-scrollbar",[e(a)?"bg-gray-900":"bg-gray-50"]])},[i(w)],2)])],2)}}});export{P as default}; diff --git a/themes/2024/assets/AdminLayout-D_KhoR09.css b/themes/2024/assets/AdminLayout-nlp_lohe.css similarity index 83% rename from themes/2024/assets/AdminLayout-D_KhoR09.css rename to themes/2024/assets/AdminLayout-nlp_lohe.css index a20bc2a..b39e160 100644 --- a/themes/2024/assets/AdminLayout-D_KhoR09.css +++ b/themes/2024/assets/AdminLayout-nlp_lohe.css @@ -1 +1 @@ -.switch{position:relative;display:inline-block;width:60px;height:34px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#e5e7eb;transition:.4s}.dark .slider{background-color:#4b5563}input:checked+.slider{background-color:#4f46e5}.dark input:checked+.slider{background-color:#4f46e5}.slider:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:#fff;transition:.4s}.dark .slider:before{background-color:#e5e7eb}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-slow{animation:spin 8s linear infinite}.transition-colors{transition-property:background-color,border-color,color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:#cbd5e0;border-radius:3px}:global(.dark) .custom-scrollbar::-webkit-scrollbar-thumb{background-color:#4a5568} +.switch{position:relative;display:inline-block;width:60px;height:34px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#e5e7eb;transition:.4s}.dark .slider{background-color:#4b5563}input:checked+.slider{background-color:#4f46e5}.dark input:checked+.slider{background-color:#4f46e5}.slider:before{position:absolute;content:"";height:26px;width:26px;left:4px;bottom:4px;background-color:#fff;transition:.4s}.dark .slider:before{background-color:#e5e7eb}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin-slow{animation:spin 8s linear infinite}.transition-colors{transition-property:background-color,border-color,color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:#cbd5e0;border-radius:3px}:is():hover{background-color:#a0aec0}:global(.dark) .custom-scrollbar::-webkit-scrollbar-thumb{background-color:#4a5568}:is():hover{background-color:#2d3748} diff --git a/themes/2024/assets/DashboardView-CPuETXoG.js b/themes/2024/assets/DashboardView-CPuETXoG.js deleted file mode 100644 index 7f52287..0000000 --- a/themes/2024/assets/DashboardView-CPuETXoG.js +++ /dev/null @@ -1 +0,0 @@ -import{c as _,d as S,g as x,a as M,o as v,n as d,e as t,i as k,b as s,t as r,k as w,m as D,K as F,u as U,V as B,f as z,l as g,v as m,E as C,W as $}from"./index-B3zfsvgW.js";import{F as T}from"./file-Ceuyr6iv.js";import{H as V}from"./hard-drive-5GIKYPKr.js";const H=_("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);const N=_("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),j={class:"flex items-center justify-between"},b=S({__name:"StatCard",props:{title:{},value:{},icon:{},iconColor:{},descriptionType:{default:"neutral"}},setup(f){const l=f,e=k("isDarkMode"),a=x(()=>({indigo:e?"bg-indigo-900":"bg-indigo-100",purple:e?"bg-purple-900":"bg-purple-100",green:e?"bg-green-900":"bg-green-100",blue:e?"bg-blue-900":"bg-blue-100"})[l.iconColor]),h=x(()=>({indigo:e?"text-indigo-400":"text-indigo-600",purple:e?"text-purple-400":"text-purple-600",green:e?"text-green-400":"text-green-600",blue:e?"text-blue-400":"text-blue-600"})[l.iconColor]),p=x(()=>({success:e?"text-green-400":"text-green-600",error:e?"text-red-400":"text-red-600",neutral:e?"text-gray-400":"text-gray-600"})[l.descriptionType]);return(i,o)=>(v(),M("div",{class:d(["p-6 rounded-lg shadow-md transition-colors duration-300",[t(e)?"bg-gray-800 bg-opacity-70":"bg-white"]])},[s("div",j,[s("div",null,[s("p",{class:d(["text-sm",[t(e)?"text-gray-400":"text-gray-600"]])},r(i.title),3),s("h3",{class:d(["text-2xl font-bold mt-1",[t(e)?"text-white":"text-gray-800"]])},r(i.value),3)]),s("div",{class:d(["p-3 rounded-full",a.value])},[(v(),w(D(i.icon),{class:d(["w-6 h-6",h.value])},null,8,["class"]))],2)]),s("p",{class:d(["text-sm mt-2",p.value])},[F(i.$slots,"description")],2)],2))}}),I={class:"p-6 overflow-y-auto custom-scrollbar"},L={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8"},A={class:"ml-2"},E={class:"ml-2"},K={class:"text-sm mt-1"},Y=S({__name:"DashboardView",setup(f){const l=k("isDarkMode"),{t:e}=U(),a=B({totalFiles:0,storageUsed:0,yesterdayCount:0,todayCount:0,yesterdaySize:0,todaySize:0,sysUptime:0}),h=o=>{const c=new Date().getTime()-o,u=Math.floor(c/(1440*60*1e3)),y=Math.floor(c%(1440*60*1e3)/(3600*1e3));return`${u}天${y}小时`},p=o=>{const n=parseInt(o)/1024,c=n/1024,u=c/1024,y=u/1024;return y>1?`${y.toFixed(2)}TB`:u>1?`${u.toFixed(2)}GB`:c>1?`${c.toFixed(2)}MB`:n>1?`${n.toFixed(2)}KB`:`${o}B`},i=async()=>{const o=await $.getDashboard();o.detail&&(a.totalFiles=o.detail.totalFiles,a.storageUsed=p(o.detail.storageUsed.toString()),a.yesterdaySize=p(o.detail.yesterdaySize.toString()),a.todaySize=p(o.detail.todaySize.toString()),a.yesterdayCount=o.detail.yesterdayCount,a.todayCount=o.detail.todayCount,a.sysUptime=h(Number(o.detail.sysUptime)))};return z(()=>{i()}),(o,n)=>(v(),M("div",I,[s("h2",{class:d(["text-2xl font-bold mb-6",[t(l)?"text-white":"text-gray-800"]])},r(t(e)("admin.dashboard.title")),3),s("div",L,[g(b,{title:t(e)("admin.dashboard.totalFiles"),value:a.totalFiles,icon:t(T),"icon-color":"indigo","description-type":"success"},{description:m(()=>[s("span",null,r(t(e)("admin.dashboard.yesterday"))+":"+r(a.yesterdayCount),1),s("span",A,r(t(e)("admin.dashboard.today"))+":"+r(a.todayCount),1)]),_:1},8,["title","value","icon"]),g(b,{title:t(e)("admin.dashboard.storageSpace"),value:a.storageUsed,icon:t(V),"icon-color":"purple","description-type":"success"},{description:m(()=>[s("span",null,r(t(e)("admin.dashboard.yesterday"))+":"+r(a.yesterdaySize),1),s("span",E,r(t(e)("admin.dashboard.today"))+":"+r(a.todaySize),1)]),_:1},8,["title","value","icon"]),g(b,{title:t(e)("admin.dashboard.activeUsers"),value:"25",icon:t(N),"icon-color":"green","description-type":"error"},{description:m(()=>[s("span",null,r(t(e)("admin.dashboard.weeklyChange")),1)]),_:1},8,["title","icon"]),g(b,{title:t(e)("admin.dashboard.systemStatus"),value:t(e)("admin.dashboard.normal"),icon:t(H),"icon-color":"blue","description-type":"neutral"},{description:m(()=>[C(r(t(e)("admin.dashboard.serverUptime"))+": "+r(a.sysUptime),1)]),_:1},8,["title","value","icon"])]),s("div",{class:d(["mt-auto text-center py-4",[t(l)?"text-gray-400":"text-gray-600"]])},[n[1]||(n[1]=s("p",{class:"text-sm"}," 版本 v2.2.1 更新时间:2025-09-04 ",-1)),s("p",K,[C(" © "+r(new Date().getFullYear())+" ",1),n[0]||(n[0]=s("a",{href:"https://github.com/vastsa/FileCodeBox"},"FileCodeBox",-1))])],2)]))}});export{Y as default}; diff --git a/themes/2024/assets/DashboardView-DneIu2Zw.js b/themes/2024/assets/DashboardView-DneIu2Zw.js new file mode 100644 index 0000000..356765d --- /dev/null +++ b/themes/2024/assets/DashboardView-DneIu2Zw.js @@ -0,0 +1,11 @@ +import{c as _,d as S,g as x,a as M,o as v,n as d,e as t,i as k,b as s,t as r,k as w,m as D,K as F,u as U,V as B,f as z,l as g,v as m,E as C,W as $}from"./index-B9FIg8c4.js";import{F as T}from"./file-CSeBUDan.js";import{H as V}from"./hard-drive-DFfw9-r7.js";/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const H=_("activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const N=_("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]),j={class:"flex items-center justify-between"},b=S({__name:"StatCard",props:{title:{},value:{},icon:{},iconColor:{},descriptionType:{default:"neutral"}},setup(f){const l=f,e=k("isDarkMode"),a=x(()=>({indigo:e?"bg-indigo-900":"bg-indigo-100",purple:e?"bg-purple-900":"bg-purple-100",green:e?"bg-green-900":"bg-green-100",blue:e?"bg-blue-900":"bg-blue-100"})[l.iconColor]),h=x(()=>({indigo:e?"text-indigo-400":"text-indigo-600",purple:e?"text-purple-400":"text-purple-600",green:e?"text-green-400":"text-green-600",blue:e?"text-blue-400":"text-blue-600"})[l.iconColor]),p=x(()=>({success:e?"text-green-400":"text-green-600",error:e?"text-red-400":"text-red-600",neutral:e?"text-gray-400":"text-gray-600"})[l.descriptionType]);return(i,o)=>(v(),M("div",{class:d(["p-6 rounded-lg shadow-md transition-colors duration-300",[t(e)?"bg-gray-800 bg-opacity-70":"bg-white"]])},[s("div",j,[s("div",null,[s("p",{class:d(["text-sm",[t(e)?"text-gray-400":"text-gray-600"]])},r(i.title),3),s("h3",{class:d(["text-2xl font-bold mt-1",[t(e)?"text-white":"text-gray-800"]])},r(i.value),3)]),s("div",{class:d(["p-3 rounded-full",a.value])},[(v(),w(D(i.icon),{class:d(["w-6 h-6",h.value])},null,8,["class"]))],2)]),s("p",{class:d(["text-sm mt-2",p.value])},[F(i.$slots,"description")],2)],2))}}),I={class:"p-6 overflow-y-auto custom-scrollbar"},L={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8"},A={class:"ml-2"},E={class:"ml-2"},K={class:"text-sm mt-1"},Y=S({__name:"DashboardView",setup(f){const l=k("isDarkMode"),{t:e}=U(),a=B({totalFiles:0,storageUsed:0,yesterdayCount:0,todayCount:0,yesterdaySize:0,todaySize:0,sysUptime:0}),h=o=>{const c=new Date().getTime()-o,u=Math.floor(c/(1440*60*1e3)),y=Math.floor(c%(1440*60*1e3)/(3600*1e3));return`${u}天${y}小时`},p=o=>{const n=parseInt(o)/1024,c=n/1024,u=c/1024,y=u/1024;return y>1?`${y.toFixed(2)}TB`:u>1?`${u.toFixed(2)}GB`:c>1?`${c.toFixed(2)}MB`:n>1?`${n.toFixed(2)}KB`:`${o}B`},i=async()=>{const o=await $.getDashboard();o.detail&&(a.totalFiles=o.detail.totalFiles,a.storageUsed=p(o.detail.storageUsed.toString()),a.yesterdaySize=p(o.detail.yesterdaySize.toString()),a.todaySize=p(o.detail.todaySize.toString()),a.yesterdayCount=o.detail.yesterdayCount,a.todayCount=o.detail.todayCount,a.sysUptime=h(Number(o.detail.sysUptime)))};return z(()=>{i()}),(o,n)=>(v(),M("div",I,[s("h2",{class:d(["text-2xl font-bold mb-6",[t(l)?"text-white":"text-gray-800"]])},r(t(e)("admin.dashboard.title")),3),s("div",L,[g(b,{title:t(e)("admin.dashboard.totalFiles"),value:a.totalFiles,icon:t(T),"icon-color":"indigo","description-type":"success"},{description:m(()=>[s("span",null,r(t(e)("admin.dashboard.yesterday"))+":"+r(a.yesterdayCount),1),s("span",A,r(t(e)("admin.dashboard.today"))+":"+r(a.todayCount),1)]),_:1},8,["title","value","icon"]),g(b,{title:t(e)("admin.dashboard.storageSpace"),value:a.storageUsed,icon:t(V),"icon-color":"purple","description-type":"success"},{description:m(()=>[s("span",null,r(t(e)("admin.dashboard.yesterday"))+":"+r(a.yesterdaySize),1),s("span",E,r(t(e)("admin.dashboard.today"))+":"+r(a.todaySize),1)]),_:1},8,["title","value","icon"]),g(b,{title:t(e)("admin.dashboard.activeUsers"),value:"25",icon:t(N),"icon-color":"green","description-type":"error"},{description:m(()=>[s("span",null,r(t(e)("admin.dashboard.weeklyChange")),1)]),_:1},8,["title","icon"]),g(b,{title:t(e)("admin.dashboard.systemStatus"),value:t(e)("admin.dashboard.normal"),icon:t(H),"icon-color":"blue","description-type":"neutral"},{description:m(()=>[C(r(t(e)("admin.dashboard.serverUptime"))+": "+r(a.sysUptime),1)]),_:1},8,["title","value","icon"])]),s("div",{class:d(["mt-auto text-center py-4",[t(l)?"text-gray-400":"text-gray-600"]])},[n[1]||(n[1]=s("p",{class:"text-sm"}," 版本 v2.2.1 更新时间:2025-09-04 ",-1)),s("p",K,[C(" © "+r(new Date().getFullYear())+" ",1),n[0]||(n[0]=s("a",{href:"https://github.com/vastsa/FileCodeBox"},"FileCodeBox",-1))])],2)]))}});export{Y as default}; diff --git a/themes/2024/assets/FileManageView-Bevef92J.js b/themes/2024/assets/FileManageView-Bevef92J.js new file mode 100644 index 0000000..706a448 --- /dev/null +++ b/themes/2024/assets/FileManageView-Bevef92J.js @@ -0,0 +1,31 @@ +import{c as P,d as E,a as x,o as y,n as o,e as t,i as U,b as e,K as H,t as s,y as F,D as A,g as j,l as c,E as b,u as te,r as _,p as oe,j as V,x as k,z as M,Y as ae,v as q,Z as L}from"./index-B9FIg8c4.js";import{C as ie}from"./copy-ClIbpnbK.js";import{F as se}from"./file-CSeBUDan.js";import{E as re,T as ne}from"./trash-DPD8vC5o.js";/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const C=P("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const le=P("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const de=P("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ge=P("file-text",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const I=P("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const K=P("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),ce={class:"overflow-x-auto"},ue=E({__name:"DataTable",props:{title:{},headers:{}},setup(T){const h=U("isDarkMode");return(i,a)=>(y(),x("div",{class:o(["rounded-lg shadow-sm overflow-hidden transition-all duration-300",[t(h)?"bg-gray-800 bg-opacity-70":"bg-white"]])},[e("div",{class:o(["px-6 py-4 border-b",[t(h)?"border-gray-700":"border-gray-200"]])},[e("h3",{class:o(["text-lg font-medium",[t(h)?"text-white":"text-gray-800"]])},s(i.title),3)],2),e("div",ce,[e("table",{class:o(["min-w-full divide-y",[t(h)?"divide-gray-700":"divide-gray-200"]])},[e("thead",{class:o([t(h)?"bg-gray-900/50":"bg-gray-50"])},[e("tr",null,[(y(!0),x(F,null,A(i.headers,v=>(y(),x("th",{key:v,class:o(["px-6 py-3.5 text-left text-xs font-medium uppercase tracking-wider",[t(h)?"text-gray-400":"text-gray-500"]])},s(v),3))),128))])],2),e("tbody",{class:o([t(h)?"bg-gray-800/50 divide-y divide-gray-700":"bg-white divide-y divide-gray-200"])},[H(i.$slots,"body")],2)],2)]),H(i.$slots,"footer")],2))}}),pe={class:"flex items-center space-x-2"},xe=["disabled"],ye={class:"flex items-center space-x-1"},he=["onClick"],fe=["disabled"],me=E({__name:"DataPagination",props:{currentPage:{},pageSize:{},total:{}},emits:["page-change"],setup(T){const h=T,i=U("isDarkMode"),a=j(()=>Math.ceil(h.total/h.pageSize)),v=j(()=>{const d=h.currentPage,p=a.value,g=2,f=[];f.push(1);const u=Math.max(2,d-g),w=Math.min(p-1,d+g);u>2&&f.push("...");for(let m=u;m<=w;m++)f.push(m);return w1&&f.push(p),f});return(d,p)=>(y(),x("div",{class:o(["mt-4 flex items-center justify-between px-6 py-4 border-t",[t(i)?"border-gray-700":"border-gray-200"]])},[e("div",{class:o(["flex items-center text-sm",[t(i)?"text-gray-400":"text-gray-500"]])}," 显示第 "+s((d.currentPage-1)*d.pageSize+1)+" 到 "+s(Math.min(d.currentPage*d.pageSize,d.total))+" 条,共 "+s(d.total)+" 条 ",3),e("div",pe,[e("button",{onClick:p[0]||(p[0]=g=>d.$emit("page-change",d.currentPage-1)),disabled:d.currentPage===1,class:o(["inline-flex items-center px-3 py-1.5 rounded-md transition-colors duration-200",[t(i)?d.currentPage===1?"bg-gray-800 text-gray-600 cursor-not-allowed":"bg-gray-800 text-gray-300 hover:bg-gray-700":d.currentPage===1?"bg-gray-100 text-gray-400 cursor-not-allowed":"bg-gray-100 text-gray-700 hover:bg-gray-200"]])},[c(t(de),{class:"w-4 h-4"}),p[2]||(p[2]=b(" 上一页 ",-1))],10,xe),e("div",ye,[(y(!0),x(F,null,A(v.value,g=>(y(),x(F,{key:g},[g!=="..."?(y(),x("button",{key:0,onClick:f=>d.$emit("page-change",g),class:o(["inline-flex items-center px-3 py-1.5 rounded-md transition-colors duration-200",[d.currentPage===g?"bg-indigo-600 text-white":t(i)?"bg-gray-800 text-gray-300 hover:bg-gray-700":"bg-gray-100 text-gray-700 hover:bg-gray-200"]])},s(g),11,he)):(y(),x("span",{key:1,class:o(["px-2",[t(i)?"text-gray-400":"text-gray-500"]])}," ... ",2))],64))),128))]),e("button",{onClick:p[1]||(p[1]=g=>d.$emit("page-change",d.currentPage+1)),disabled:d.currentPage>=a.value,class:o(["inline-flex items-center px-3 py-1.5 rounded-md transition-colors duration-200",[t(i)?d.currentPage>=a.value?"bg-gray-800 text-gray-600 cursor-not-allowed":"bg-gray-800 text-gray-300 hover:bg-gray-700":d.currentPage>=a.value?"bg-gray-100 text-gray-400 cursor-not-allowed":"bg-gray-100 text-gray-700 hover:bg-gray-200"]])},[p[3]||(p[3]=b(" 下一页 ",-1)),c(t(le),{class:"w-4 h-4"})],10,fe)])],2))}}),be={class:"p-6 overflow-y-auto custom-scrollbar"},ve={class:"mb-8"},we={class:"flex flex-1 gap-4 w-full sm:w-auto"},_e={class:"relative flex-1"},ke=["placeholder"],Me={class:"px-6 py-4 whitespace-nowrap"},Ce={class:"flex items-center"},Pe={class:"px-6 py-4"},$e={class:"flex items-center group relative"},Se=["title"],ze={class:"absolute left-0 -top-2 -translate-y-full opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},Fe={class:"bg-gray-900 text-white text-sm rounded px-2 py-1 max-w-xs break-all"},je={class:"px-6 py-4 whitespace-nowrap"},Te={class:"px-6 py-4"},De={class:"flex items-center gap-2"},Ve=["onClick"],Le={class:"px-6 py-4 whitespace-nowrap"},Ee={class:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium"},Ue={class:"flex items-center space-x-2"},Ae=["onClick"],Be=["onClick"],He={key:0,class:"fixed inset-0 z-50","aria-labelledby":"modal-title",role:"dialog","aria-modal":"true"},qe={class:"fixed inset-0 z-10 overflow-y-auto"},Ie={class:"flex min-h-full items-center justify-center p-4 text-center sm:p-0"},Ke={class:"flex items-center justify-between"},Ye={class:"flex items-center space-x-3"},Ze={class:"px-6 py-5"},Re={class:"grid gap-6"},Ge={class:"space-y-2 group"},Je={class:"relative rounded-lg shadow-sm"},Ne=["placeholder"],Oe={class:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none transition-opacity duration-200 opacity-0 group-focus-within:opacity-100"},Qe={class:"space-y-2 group"},We={class:"relative rounded-lg shadow-sm"},Xe=["placeholder"],et={class:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none transition-opacity duration-200 opacity-0 group-focus-within:opacity-100"},tt={class:"space-y-2 group"},ot={class:"relative rounded-lg shadow-sm"},at=["placeholder"],it={class:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none transition-opacity duration-200 opacity-0 group-focus-within:opacity-100"},st={class:"space-y-2 group"},rt={class:"relative rounded-lg shadow-sm"},nt={class:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none transition-opacity duration-200 opacity-0 group-focus-within:opacity-100"},lt={class:"space-y-2 group"},dt={class:"relative rounded-lg shadow-sm"},gt=["placeholder"],ct={class:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none transition-opacity duration-200 opacity-0 group-focus-within:opacity-100"},ut={key:1,class:"fixed inset-0 z-50","aria-labelledby":"text-preview-title",role:"dialog","aria-modal":"true"},pt={class:"fixed inset-0 z-10 overflow-y-auto"},xt={class:"flex min-h-full items-center justify-center p-4 text-center sm:p-0"},yt={class:"flex items-center justify-between"},ht={class:"flex items-center space-x-3"},ft={class:"px-6 py-4"},_t=E({__name:"FileManageView",setup(T){function h(n){const l=new Date(n),r=l.getFullYear(),z=(l.getMonth()+1).toString().padStart(2,"0"),Q=l.getDate().toString().padStart(2,"0"),W=l.getHours().toString().padStart(2,"0"),X=l.getMinutes().toString().padStart(2,"0"),ee=l.getSeconds().toString().padStart(2,"0");return`${r}-${z}-${Q} ${W}:${X}:${ee}`}const{t:i}=te(),a=U("isDarkMode"),v=_([]),d=oe(),p=j(()=>[i("fileManage.headers.code"),i("fileManage.headers.name"),i("fileManage.headers.size"),i("fileManage.headers.description"),i("fileManage.headers.expiration"),i("fileManage.headers.actions")]),g=_({page:1,size:10,total:0,keyword:""}),f=_(!1),u=_({id:null,code:"",prefix:"",suffix:"",expired_at:"",expired_count:null}),w=_(!1),m=_(""),Y=n=>{m.value=n,w.value=!0},D=()=>{w.value=!1,m.value=""},Z=async()=>{try{await navigator.clipboard.writeText(m.value),d.showAlert(i("fileManage.copySuccess"),"success")}catch{d.showAlert(i("fileManage.copyFailed"),"error")}},R=n=>{u.value={id:n.id,code:n.code,prefix:n.prefix,suffix:n.suffix,expired_at:n.expired_at?n.expired_at.slice(0,16):"",expired_count:n.expired_count},f.value=!0},S=()=>{f.value=!1,u.value={id:null,code:"",prefix:"",suffix:"",expired_at:"",expired_count:null}},G=async()=>{try{await L.updateFile(u.value),await $(),S()}catch(n){const l=n;d.showAlert(l.response?.data?.detail||i("manage.fileManage.updateFailed"),"error")}},J=async n=>{try{await L.deleteAdminFile(n),await $()}catch(l){console.error(i("manage.fileManage.deleteFailed"),l)}},$=async()=>{try{const n=await L.getAdminFileList(g.value);n.detail&&(v.value=n.detail.data,g.value.total=n.detail.total)}catch(n){console.error(i("manage.fileManage.loadFileListFailed"),n)}},N=async n=>{typeof n!="string"&&(n<1||n>O.value||(g.value.page=n,await $()))};$();const O=j(()=>Math.ceil(g.value.total/g.value.size)),B=async()=>{g.value.page=1,await $()};return(n,l)=>(y(),x("div",be,[e("div",ve,[e("h2",{class:o(["text-2xl font-bold mb-4",[t(a)?"text-white":"text-gray-800"]])},s(t(i)("fileManage.title")),3)]),e("div",{class:o(["mb-6 flex flex-col sm:flex-row gap-4 items-start sm:items-center justify-between bg-opacity-70 p-4 rounded-lg shadow-sm",[t(a)?"bg-gray-800":"bg-white"]])},[e("div",we,[e("div",_e,[k(e("input",{type:"text","onUpdate:modelValue":l[0]||(l[0]=r=>g.value.keyword=r),onKeyup:ae(B,["enter"]),class:o([t(a)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400":"bg-white border-gray-300 text-gray-900 placeholder-gray-400","w-full pl-10 pr-4 py-2.5 rounded-lg border focus:ring-2 focus:ring-indigo-500 focus:border-transparent"]),placeholder:t(i)("fileManage.searchPlaceholder")},null,42,ke),[[M,g.value.keyword]]),c(t(K),{class:o(["absolute left-3 top-3 w-5 h-5",[t(a)?"text-gray-400":"text-gray-500"]])},null,8,["class"])]),e("button",{onClick:B,class:"px-4 py-2.5 rounded-lg inline-flex items-center transition-all duration-200 bg-indigo-600 hover:bg-indigo-700 text-white shadow-sm"},[c(t(K),{class:"w-5 h-5 mr-2"}),b(" "+s(t(i)("common.search")),1)])])],2),c(ue,{title:t(i)("fileManage.allFiles"),headers:p.value},{body:q(()=>[(y(!0),x(F,null,A(v.value,r=>(y(),x("tr",{key:r.id,class:o(["hover:bg-opacity-50 transition-colors duration-200",[t(a)?"hover:bg-gray-700":"hover:bg-gray-50"]])},[e("td",Me,[e("div",Ce,[e("span",{class:o(["font-medium select-all",[t(a)?"text-white":"text-gray-900"]])},s(r.code),3)])]),e("td",Pe,[e("div",$e,[c(t(se),{class:o(["w-5 h-5 mr-2 flex-shrink-0",[t(a)?"text-indigo-400":"text-indigo-500"]])},null,8,["class"]),e("span",{class:o(["font-medium truncate max-w-[200px]",[t(a)?"text-white":"text-gray-900"]]),title:r.prefix},s(r.prefix),11,Se),e("div",ze,[e("div",Fe,s(r.prefix),1)])])]),e("td",je,[e("span",{class:o(["inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",[t(a)?"bg-gray-700 text-gray-300":"bg-gray-100 text-gray-800"]])},s(Math.round(r.size/1024/1024*100)/100)+"MB ",3)]),e("td",Te,[e("div",De,[e("span",{class:o(["block truncate max-w-[200px]",[t(a)?"text-gray-400":"text-gray-500"]])},s(r.text||"-"),3),r.text&&r.text.length>30?(y(),x("button",{key:0,onClick:z=>Y(r.text),class:o(["flex-shrink-0 inline-flex items-center px-2 py-1 rounded text-xs transition-colors duration-200",[t(a)?"bg-gray-700 text-gray-300 hover:bg-gray-600 hover:text-white":"bg-gray-100 text-gray-600 hover:bg-gray-200"]])},[c(t(re),{class:"w-3 h-3 mr-1"}),b(" "+s(t(i)("fileManage.viewText")),1)],10,Ve)):V("",!0)])]),e("td",Le,[e("span",{class:o(["inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",[r.expired_at?t(a)?"bg-yellow-900/30 text-yellow-400":"bg-yellow-100 text-yellow-800":t(a)?"bg-green-900/30 text-green-400":"bg-green-100 text-green-800"]])},s(r.expired_at?h(r.expired_at):t(i)("send.expiration.units.forever")),3)]),e("td",Ee,[e("div",Ue,[e("button",{onClick:z=>R(r),class:o(["inline-flex items-center px-3 py-1.5 rounded-md transition-colors duration-200",[t(a)?"bg-blue-900/20 text-blue-400 hover:bg-blue-900/30":"bg-blue-50 text-blue-600 hover:bg-blue-100"]])},[c(t(I),{class:"w-4 h-4 mr-1.5"}),b(" "+s(t(i)("common.edit")),1)],10,Ae),e("button",{onClick:z=>J(r.id),class:o(["inline-flex items-center px-3 py-1.5 rounded-md transition-colors duration-200",[t(a)?"bg-red-900/20 text-red-400 hover:bg-red-900/30":"bg-red-50 text-red-600 hover:bg-red-100"]])},[c(t(ne),{class:"w-4 h-4 mr-1.5"}),b(" "+s(t(i)("common.delete")),1)],10,Be)])])],2))),128))]),footer:q(()=>[c(me,{"current-page":g.value.page,"page-size":g.value.size,total:g.value.total,onPageChange:N},null,8,["current-page","page-size","total"])]),_:1},8,["title","headers"]),f.value?(y(),x("div",He,[e("div",{class:"fixed inset-0 bg-gradient-to-br from-gray-900/90 to-black/90 backdrop-blur-sm transition-opacity duration-300",onClick:S}),e("div",qe,[e("div",Ie,[e("div",{class:o(["relative transform overflow-hidden rounded-2xl text-left shadow-2xl transition-all sm:my-8 sm:w-full sm:max-w-xl animate-modal-scale",[t(a)?"bg-gray-800/95 backdrop-blur-md":"bg-white"]])},[e("div",{class:o(["relative px-6 pt-6 pb-4",[t(a)?"bg-gradient-to-r from-gray-800/50 to-gray-700/50":"bg-gradient-to-r from-gray-50 to-white"]])},[e("div",Ke,[e("div",Ye,[e("div",{class:o(["p-2 rounded-lg",[t(a)?"bg-indigo-500/10":"bg-indigo-50"]])},[c(t(I),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])],2),e("h3",{class:o(["text-xl font-semibold leading-6",[t(a)?"text-white":"text-gray-900"]])},s(t(i)("fileManage.editFileInfo")),3)]),e("button",{onClick:S,class:o(["rounded-lg p-2 transition-all duration-200 hover:rotate-90",[t(a)?"text-gray-400 hover:text-white hover:bg-white/10":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"]])},[...l[6]||(l[6]=[e("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],2)])],2),e("div",Ze,[e("div",Re,[e("div",Ge,[e("label",{class:o(["text-sm font-medium flex items-center space-x-2 transition-colors duration-200",[t(a)?"text-gray-300 group-focus-within:text-indigo-400":"text-gray-700 group-focus-within:text-indigo-600"]])},[e("span",null,s(t(i)("fileManage.form.code")),1),e("div",{class:o(["h-px flex-1 transition-colors duration-200",[t(a)?"bg-gray-700 group-focus-within:bg-indigo-500/50":"bg-gray-200 group-focus-within:bg-indigo-500/30"]])},null,2)],2),e("div",Je,[k(e("input",{type:"text","onUpdate:modelValue":l[1]||(l[1]=r=>u.value.code=r),class:o(["block w-full rounded-lg border-0 py-2.5 pl-4 pr-10 transition-all duration-200 focus:ring-2 focus:ring-inset sm:text-sm",[t(a)?"bg-gray-700/50 text-white placeholder-gray-400 focus:ring-indigo-500/50":"bg-gray-50 text-gray-900 placeholder-gray-400 focus:ring-indigo-500"]]),placeholder:t(i)("fileManage.form.codePlaceholder")},null,10,Ne),[[M,u.value.code]]),e("div",Oe,[c(t(C),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])])])]),e("div",Qe,[e("label",{class:o(["text-sm font-medium flex items-center space-x-2 transition-colors duration-200",[t(a)?"text-gray-300 group-focus-within:text-indigo-400":"text-gray-700 group-focus-within:text-indigo-600"]])},[e("span",null,s(t(i)("fileManage.form.filename")),1),e("div",{class:o(["h-px flex-1 transition-colors duration-200",[t(a)?"bg-gray-700 group-focus-within:bg-indigo-500/50":"bg-gray-200 group-focus-within:bg-indigo-500/30"]])},null,2)],2),e("div",We,[k(e("input",{type:"text","onUpdate:modelValue":l[2]||(l[2]=r=>u.value.prefix=r),class:o(["block w-full rounded-lg border-0 py-2.5 pl-4 pr-10 transition-all duration-200 focus:ring-2 focus:ring-inset sm:text-sm",[t(a)?"bg-gray-700/50 text-white placeholder-gray-400 focus:ring-indigo-500/50":"bg-gray-50 text-gray-900 placeholder-gray-400 focus:ring-indigo-500"]]),placeholder:t(i)("fileManage.form.filenamePlaceholder")},null,10,Xe),[[M,u.value.prefix]]),e("div",et,[c(t(C),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])])])]),e("div",tt,[e("label",{class:o(["text-sm font-medium flex items-center space-x-2 transition-colors duration-200",[t(a)?"text-gray-300 group-focus-within:text-indigo-400":"text-gray-700 group-focus-within:text-indigo-600"]])},[e("span",null,s(t(i)("fileManage.form.suffix")),1),e("div",{class:o(["h-px flex-1 transition-colors duration-200",[t(a)?"bg-gray-700 group-focus-within:bg-indigo-500/50":"bg-gray-200 group-focus-within:bg-indigo-500/30"]])},null,2)],2),e("div",ot,[k(e("input",{type:"text","onUpdate:modelValue":l[3]||(l[3]=r=>u.value.suffix=r),class:o(["block w-full rounded-lg border-0 py-2.5 pl-4 pr-10 transition-all duration-200 focus:ring-2 focus:ring-inset sm:text-sm",[t(a)?"bg-gray-700/50 text-white placeholder-gray-400 focus:ring-indigo-500/50":"bg-gray-50 text-gray-900 placeholder-gray-400 focus:ring-indigo-500"]]),placeholder:t(i)("fileManage.form.suffixPlaceholder")},null,10,at),[[M,u.value.suffix]]),e("div",it,[c(t(C),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])])])]),e("div",st,[e("label",{class:o(["text-sm font-medium flex items-center space-x-2 transition-colors duration-200",[t(a)?"text-gray-300 group-focus-within:text-indigo-400":"text-gray-700 group-focus-within:text-indigo-600"]])},[e("span",null,s(t(i)("send.expiration.label")),1),e("div",{class:o(["h-px flex-1 transition-colors duration-200",[t(a)?"bg-gray-700 group-focus-within:bg-indigo-500/50":"bg-gray-200 group-focus-within:bg-indigo-500/30"]])},null,2)],2),e("div",rt,[k(e("input",{type:"datetime-local","onUpdate:modelValue":l[4]||(l[4]=r=>u.value.expired_at=r),class:o(["block w-full rounded-lg border-0 py-2.5 pl-4 pr-10 transition-all duration-200 focus:ring-2 focus:ring-inset sm:text-sm",[t(a)?"bg-gray-700/50 text-white placeholder-gray-400 focus:ring-indigo-500/50":"bg-gray-50 text-gray-900 placeholder-gray-400 focus:ring-indigo-500"]])},null,2),[[M,u.value.expired_at]]),e("div",nt,[c(t(C),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])])])]),e("div",lt,[e("label",{class:o(["text-sm font-medium flex items-center space-x-2 transition-colors duration-200",[t(a)?"text-gray-300 group-focus-within:text-indigo-400":"text-gray-700 group-focus-within:text-indigo-600"]])},[e("span",null,s(t(i)("fileManage.form.downloadLimit")),1),e("div",{class:o(["h-px flex-1 transition-colors duration-200",[t(a)?"bg-gray-700 group-focus-within:bg-indigo-500/50":"bg-gray-200 group-focus-within:bg-indigo-500/30"]])},null,2)],2),e("div",dt,[k(e("input",{type:"number","onUpdate:modelValue":l[5]||(l[5]=r=>u.value.expired_count=r),class:o(["block w-full rounded-lg border-0 py-2.5 pl-4 pr-10 transition-all duration-200 focus:ring-2 focus:ring-inset sm:text-sm",[t(a)?"bg-gray-700/50 text-white placeholder-gray-400 focus:ring-indigo-500/50":"bg-gray-50 text-gray-900 placeholder-gray-400 focus:ring-indigo-500"]]),placeholder:t(i)("fileManage.form.downloadLimitPlaceholder")},null,10,gt),[[M,u.value.expired_count]]),e("div",ct,[c(t(C),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])])])])])]),e("div",{class:o(["flex items-center justify-end gap-3 px-6 py-4 border-t bg-gradient-to-b",[t(a)?"border-gray-700/50 from-gray-800/50 to-gray-800":"border-gray-200 from-gray-50 to-white"]])},[e("button",{onClick:S,class:o(["inline-flex items-center justify-center rounded-lg px-4 py-2.5 text-sm font-medium transition-all duration-200",[t(a)?"bg-gray-700/50 text-gray-300 hover:bg-gray-600/50 hover:text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"]])},s(t(i)("common.cancel")),3),e("button",{onClick:G,class:"inline-flex items-center justify-center rounded-lg px-4 py-2.5 text-sm font-medium transition-all duration-200 bg-gradient-to-r from-indigo-600 to-indigo-500 hover:from-indigo-500 hover:to-indigo-600 text-white shadow-lg shadow-indigo-500/25 hover:shadow-indigo-500/35"},[c(t(C),{class:"w-4 h-4 mr-2"}),b(" "+s(t(i)("fileManage.saveChanges")),1)])],2)],2)])])])):V("",!0),w.value?(y(),x("div",ut,[e("div",{class:"fixed inset-0 bg-gradient-to-br from-gray-900/90 to-black/90 backdrop-blur-sm transition-opacity duration-300",onClick:D}),e("div",pt,[e("div",xt,[e("div",{class:o(["relative transform overflow-hidden rounded-2xl text-left shadow-2xl transition-all sm:my-8 sm:w-full sm:max-w-2xl animate-modal-scale",[t(a)?"bg-gray-800/95 backdrop-blur-md":"bg-white"]])},[e("div",{class:o(["relative px-6 pt-6 pb-4",[t(a)?"bg-gradient-to-r from-gray-800/50 to-gray-700/50":"bg-gradient-to-r from-gray-50 to-white"]])},[e("div",yt,[e("div",ht,[e("div",{class:o(["p-2 rounded-lg",[t(a)?"bg-indigo-500/10":"bg-indigo-50"]])},[c(t(ge),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])],2),e("h3",{class:o(["text-xl font-semibold leading-6",[t(a)?"text-white":"text-gray-900"]])},s(t(i)("fileManage.textPreview")),3)]),e("button",{onClick:D,class:o(["rounded-lg p-2 transition-all duration-200 hover:rotate-90",[t(a)?"text-gray-400 hover:text-white hover:bg-white/10":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"]])},[...l[7]||(l[7]=[e("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],2)])],2),e("div",ft,[e("div",{class:o(["max-h-[60vh] overflow-y-auto rounded-lg p-4 custom-scrollbar",[t(a)?"bg-gray-700/50":"bg-gray-50"]])},[e("pre",{class:o(["whitespace-pre-wrap break-words text-sm font-mono",[t(a)?"text-gray-200":"text-gray-700"]])},s(m.value),3)],2),e("div",{class:o(["mt-2 text-xs",[t(a)?"text-gray-500":"text-gray-400"]])},s(t(i)("fileManage.charCount",{count:m.value.length})),3)]),e("div",{class:o(["flex items-center justify-end gap-3 px-6 py-4 border-t",[t(a)?"border-gray-700/50":"border-gray-200"]])},[e("button",{onClick:Z,class:o(["inline-flex items-center justify-center rounded-lg px-4 py-2.5 text-sm font-medium transition-all duration-200",[t(a)?"bg-gray-700/50 text-gray-300 hover:bg-gray-600/50 hover:text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"]])},[c(t(ie),{class:"w-4 h-4 mr-2"}),b(" "+s(t(i)("fileManage.copyText")),1)],2),e("button",{onClick:D,class:"inline-flex items-center justify-center rounded-lg px-4 py-2.5 text-sm font-medium transition-all duration-200 bg-gradient-to-r from-indigo-600 to-indigo-500 hover:from-indigo-500 hover:to-indigo-600 text-white shadow-lg shadow-indigo-500/25 hover:shadow-indigo-500/35"},s(t(i)("common.close")),1)],2)],2)])])])):V("",!0)]))}});export{_t as default}; diff --git a/themes/2024/assets/FileManageView-D9LkQK2i.js b/themes/2024/assets/FileManageView-D9LkQK2i.js deleted file mode 100644 index 9f11177..0000000 --- a/themes/2024/assets/FileManageView-D9LkQK2i.js +++ /dev/null @@ -1 +0,0 @@ -import{c as P,d as E,a as x,o as y,n as o,e as t,i as U,b as e,K as H,t as s,y as F,D as A,g as j,l as c,E as b,u as te,r as _,p as oe,j as V,x as k,z as M,Y as ae,v as q,Z as L}from"./index-B3zfsvgW.js";import{C as ie}from"./copy-DV195_ld.js";import{F as se}from"./file-Ceuyr6iv.js";import{E as re,T as ne}from"./trash-CdDjPTBr.js";const C=P("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const le=P("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);const de=P("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);const ge=P("file-text",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);const I=P("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);const K=P("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]),ce={class:"overflow-x-auto"},ue=E({__name:"DataTable",props:{title:{},headers:{}},setup(T){const h=U("isDarkMode");return(i,a)=>(y(),x("div",{class:o(["rounded-lg shadow-sm overflow-hidden transition-all duration-300",[t(h)?"bg-gray-800 bg-opacity-70":"bg-white"]])},[e("div",{class:o(["px-6 py-4 border-b",[t(h)?"border-gray-700":"border-gray-200"]])},[e("h3",{class:o(["text-lg font-medium",[t(h)?"text-white":"text-gray-800"]])},s(i.title),3)],2),e("div",ce,[e("table",{class:o(["min-w-full divide-y",[t(h)?"divide-gray-700":"divide-gray-200"]])},[e("thead",{class:o([t(h)?"bg-gray-900/50":"bg-gray-50"])},[e("tr",null,[(y(!0),x(F,null,A(i.headers,v=>(y(),x("th",{key:v,class:o(["px-6 py-3.5 text-left text-xs font-medium uppercase tracking-wider",[t(h)?"text-gray-400":"text-gray-500"]])},s(v),3))),128))])],2),e("tbody",{class:o([t(h)?"bg-gray-800/50 divide-y divide-gray-700":"bg-white divide-y divide-gray-200"])},[H(i.$slots,"body")],2)],2)]),H(i.$slots,"footer")],2))}}),pe={class:"flex items-center space-x-2"},xe=["disabled"],ye={class:"flex items-center space-x-1"},he=["onClick"],fe=["disabled"],me=E({__name:"DataPagination",props:{currentPage:{},pageSize:{},total:{}},emits:["page-change"],setup(T){const h=T,i=U("isDarkMode"),a=j(()=>Math.ceil(h.total/h.pageSize)),v=j(()=>{const d=h.currentPage,p=a.value,g=2,f=[];f.push(1);const u=Math.max(2,d-g),w=Math.min(p-1,d+g);u>2&&f.push("...");for(let m=u;m<=w;m++)f.push(m);return w1&&f.push(p),f});return(d,p)=>(y(),x("div",{class:o(["mt-4 flex items-center justify-between px-6 py-4 border-t",[t(i)?"border-gray-700":"border-gray-200"]])},[e("div",{class:o(["flex items-center text-sm",[t(i)?"text-gray-400":"text-gray-500"]])}," 显示第 "+s((d.currentPage-1)*d.pageSize+1)+" 到 "+s(Math.min(d.currentPage*d.pageSize,d.total))+" 条,共 "+s(d.total)+" 条 ",3),e("div",pe,[e("button",{onClick:p[0]||(p[0]=g=>d.$emit("page-change",d.currentPage-1)),disabled:d.currentPage===1,class:o(["inline-flex items-center px-3 py-1.5 rounded-md transition-colors duration-200",[t(i)?d.currentPage===1?"bg-gray-800 text-gray-600 cursor-not-allowed":"bg-gray-800 text-gray-300 hover:bg-gray-700":d.currentPage===1?"bg-gray-100 text-gray-400 cursor-not-allowed":"bg-gray-100 text-gray-700 hover:bg-gray-200"]])},[c(t(de),{class:"w-4 h-4"}),p[2]||(p[2]=b(" 上一页 ",-1))],10,xe),e("div",ye,[(y(!0),x(F,null,A(v.value,g=>(y(),x(F,{key:g},[g!=="..."?(y(),x("button",{key:0,onClick:f=>d.$emit("page-change",g),class:o(["inline-flex items-center px-3 py-1.5 rounded-md transition-colors duration-200",[d.currentPage===g?"bg-indigo-600 text-white":t(i)?"bg-gray-800 text-gray-300 hover:bg-gray-700":"bg-gray-100 text-gray-700 hover:bg-gray-200"]])},s(g),11,he)):(y(),x("span",{key:1,class:o(["px-2",[t(i)?"text-gray-400":"text-gray-500"]])}," ... ",2))],64))),128))]),e("button",{onClick:p[1]||(p[1]=g=>d.$emit("page-change",d.currentPage+1)),disabled:d.currentPage>=a.value,class:o(["inline-flex items-center px-3 py-1.5 rounded-md transition-colors duration-200",[t(i)?d.currentPage>=a.value?"bg-gray-800 text-gray-600 cursor-not-allowed":"bg-gray-800 text-gray-300 hover:bg-gray-700":d.currentPage>=a.value?"bg-gray-100 text-gray-400 cursor-not-allowed":"bg-gray-100 text-gray-700 hover:bg-gray-200"]])},[p[3]||(p[3]=b(" 下一页 ",-1)),c(t(le),{class:"w-4 h-4"})],10,fe)])],2))}}),be={class:"p-6 overflow-y-auto custom-scrollbar"},ve={class:"mb-8"},we={class:"flex flex-1 gap-4 w-full sm:w-auto"},_e={class:"relative flex-1"},ke=["placeholder"],Me={class:"px-6 py-4 whitespace-nowrap"},Ce={class:"flex items-center"},Pe={class:"px-6 py-4"},$e={class:"flex items-center group relative"},Se=["title"],ze={class:"absolute left-0 -top-2 -translate-y-full opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},Fe={class:"bg-gray-900 text-white text-sm rounded px-2 py-1 max-w-xs break-all"},je={class:"px-6 py-4 whitespace-nowrap"},Te={class:"px-6 py-4"},De={class:"flex items-center gap-2"},Ve=["onClick"],Le={class:"px-6 py-4 whitespace-nowrap"},Ee={class:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium"},Ue={class:"flex items-center space-x-2"},Ae=["onClick"],Be=["onClick"],He={key:0,class:"fixed inset-0 z-50","aria-labelledby":"modal-title",role:"dialog","aria-modal":"true"},qe={class:"fixed inset-0 z-10 overflow-y-auto"},Ie={class:"flex min-h-full items-center justify-center p-4 text-center sm:p-0"},Ke={class:"flex items-center justify-between"},Ye={class:"flex items-center space-x-3"},Ze={class:"px-6 py-5"},Re={class:"grid gap-6"},Ge={class:"space-y-2 group"},Je={class:"relative rounded-lg shadow-sm"},Ne=["placeholder"],Oe={class:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none transition-opacity duration-200 opacity-0 group-focus-within:opacity-100"},Qe={class:"space-y-2 group"},We={class:"relative rounded-lg shadow-sm"},Xe=["placeholder"],et={class:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none transition-opacity duration-200 opacity-0 group-focus-within:opacity-100"},tt={class:"space-y-2 group"},ot={class:"relative rounded-lg shadow-sm"},at=["placeholder"],it={class:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none transition-opacity duration-200 opacity-0 group-focus-within:opacity-100"},st={class:"space-y-2 group"},rt={class:"relative rounded-lg shadow-sm"},nt={class:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none transition-opacity duration-200 opacity-0 group-focus-within:opacity-100"},lt={class:"space-y-2 group"},dt={class:"relative rounded-lg shadow-sm"},gt=["placeholder"],ct={class:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none transition-opacity duration-200 opacity-0 group-focus-within:opacity-100"},ut={key:1,class:"fixed inset-0 z-50","aria-labelledby":"text-preview-title",role:"dialog","aria-modal":"true"},pt={class:"fixed inset-0 z-10 overflow-y-auto"},xt={class:"flex min-h-full items-center justify-center p-4 text-center sm:p-0"},yt={class:"flex items-center justify-between"},ht={class:"flex items-center space-x-3"},ft={class:"px-6 py-4"},_t=E({__name:"FileManageView",setup(T){function h(n){const l=new Date(n),r=l.getFullYear(),z=(l.getMonth()+1).toString().padStart(2,"0"),Q=l.getDate().toString().padStart(2,"0"),W=l.getHours().toString().padStart(2,"0"),X=l.getMinutes().toString().padStart(2,"0"),ee=l.getSeconds().toString().padStart(2,"0");return`${r}-${z}-${Q} ${W}:${X}:${ee}`}const{t:i}=te(),a=U("isDarkMode"),v=_([]),d=oe(),p=j(()=>[i("fileManage.headers.code"),i("fileManage.headers.name"),i("fileManage.headers.size"),i("fileManage.headers.description"),i("fileManage.headers.expiration"),i("fileManage.headers.actions")]),g=_({page:1,size:10,total:0,keyword:""}),f=_(!1),u=_({id:null,code:"",prefix:"",suffix:"",expired_at:"",expired_count:null}),w=_(!1),m=_(""),Y=n=>{m.value=n,w.value=!0},D=()=>{w.value=!1,m.value=""},Z=async()=>{try{await navigator.clipboard.writeText(m.value),d.showAlert(i("fileManage.copySuccess"),"success")}catch{d.showAlert(i("fileManage.copyFailed"),"error")}},R=n=>{u.value={id:n.id,code:n.code,prefix:n.prefix,suffix:n.suffix,expired_at:n.expired_at?n.expired_at.slice(0,16):"",expired_count:n.expired_count},f.value=!0},S=()=>{f.value=!1,u.value={id:null,code:"",prefix:"",suffix:"",expired_at:"",expired_count:null}},G=async()=>{try{await L.updateFile(u.value),await $(),S()}catch(n){const l=n;d.showAlert(l.response?.data?.detail||i("manage.fileManage.updateFailed"),"error")}},J=async n=>{try{await L.deleteAdminFile(n),await $()}catch(l){console.error(i("manage.fileManage.deleteFailed"),l)}},$=async()=>{try{const n=await L.getAdminFileList(g.value);n.detail&&(v.value=n.detail.data,g.value.total=n.detail.total)}catch(n){console.error(i("manage.fileManage.loadFileListFailed"),n)}},N=async n=>{typeof n!="string"&&(n<1||n>O.value||(g.value.page=n,await $()))};$();const O=j(()=>Math.ceil(g.value.total/g.value.size)),B=async()=>{g.value.page=1,await $()};return(n,l)=>(y(),x("div",be,[e("div",ve,[e("h2",{class:o(["text-2xl font-bold mb-4",[t(a)?"text-white":"text-gray-800"]])},s(t(i)("fileManage.title")),3)]),e("div",{class:o(["mb-6 flex flex-col sm:flex-row gap-4 items-start sm:items-center justify-between bg-opacity-70 p-4 rounded-lg shadow-sm",[t(a)?"bg-gray-800":"bg-white"]])},[e("div",we,[e("div",_e,[k(e("input",{type:"text","onUpdate:modelValue":l[0]||(l[0]=r=>g.value.keyword=r),onKeyup:ae(B,["enter"]),class:o([t(a)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400":"bg-white border-gray-300 text-gray-900 placeholder-gray-400","w-full pl-10 pr-4 py-2.5 rounded-lg border focus:ring-2 focus:ring-indigo-500 focus:border-transparent"]),placeholder:t(i)("fileManage.searchPlaceholder")},null,42,ke),[[M,g.value.keyword]]),c(t(K),{class:o(["absolute left-3 top-3 w-5 h-5",[t(a)?"text-gray-400":"text-gray-500"]])},null,8,["class"])]),e("button",{onClick:B,class:"px-4 py-2.5 rounded-lg inline-flex items-center transition-all duration-200 bg-indigo-600 hover:bg-indigo-700 text-white shadow-sm"},[c(t(K),{class:"w-5 h-5 mr-2"}),b(" "+s(t(i)("common.search")),1)])])],2),c(ue,{title:t(i)("fileManage.allFiles"),headers:p.value},{body:q(()=>[(y(!0),x(F,null,A(v.value,r=>(y(),x("tr",{key:r.id,class:o(["hover:bg-opacity-50 transition-colors duration-200",[t(a)?"hover:bg-gray-700":"hover:bg-gray-50"]])},[e("td",Me,[e("div",Ce,[e("span",{class:o(["font-medium select-all",[t(a)?"text-white":"text-gray-900"]])},s(r.code),3)])]),e("td",Pe,[e("div",$e,[c(t(se),{class:o(["w-5 h-5 mr-2 flex-shrink-0",[t(a)?"text-indigo-400":"text-indigo-500"]])},null,8,["class"]),e("span",{class:o(["font-medium truncate max-w-[200px]",[t(a)?"text-white":"text-gray-900"]]),title:r.prefix},s(r.prefix),11,Se),e("div",ze,[e("div",Fe,s(r.prefix),1)])])]),e("td",je,[e("span",{class:o(["inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",[t(a)?"bg-gray-700 text-gray-300":"bg-gray-100 text-gray-800"]])},s(Math.round(r.size/1024/1024*100)/100)+"MB ",3)]),e("td",Te,[e("div",De,[e("span",{class:o(["block truncate max-w-[200px]",[t(a)?"text-gray-400":"text-gray-500"]])},s(r.text||"-"),3),r.text&&r.text.length>30?(y(),x("button",{key:0,onClick:z=>Y(r.text),class:o(["flex-shrink-0 inline-flex items-center px-2 py-1 rounded text-xs transition-colors duration-200",[t(a)?"bg-gray-700 text-gray-300 hover:bg-gray-600 hover:text-white":"bg-gray-100 text-gray-600 hover:bg-gray-200"]])},[c(t(re),{class:"w-3 h-3 mr-1"}),b(" "+s(t(i)("fileManage.viewText")),1)],10,Ve)):V("",!0)])]),e("td",Le,[e("span",{class:o(["inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",[r.expired_at?t(a)?"bg-yellow-900/30 text-yellow-400":"bg-yellow-100 text-yellow-800":t(a)?"bg-green-900/30 text-green-400":"bg-green-100 text-green-800"]])},s(r.expired_at?h(r.expired_at):t(i)("send.expiration.units.forever")),3)]),e("td",Ee,[e("div",Ue,[e("button",{onClick:z=>R(r),class:o(["inline-flex items-center px-3 py-1.5 rounded-md transition-colors duration-200",[t(a)?"bg-blue-900/20 text-blue-400 hover:bg-blue-900/30":"bg-blue-50 text-blue-600 hover:bg-blue-100"]])},[c(t(I),{class:"w-4 h-4 mr-1.5"}),b(" "+s(t(i)("common.edit")),1)],10,Ae),e("button",{onClick:z=>J(r.id),class:o(["inline-flex items-center px-3 py-1.5 rounded-md transition-colors duration-200",[t(a)?"bg-red-900/20 text-red-400 hover:bg-red-900/30":"bg-red-50 text-red-600 hover:bg-red-100"]])},[c(t(ne),{class:"w-4 h-4 mr-1.5"}),b(" "+s(t(i)("common.delete")),1)],10,Be)])])],2))),128))]),footer:q(()=>[c(me,{"current-page":g.value.page,"page-size":g.value.size,total:g.value.total,onPageChange:N},null,8,["current-page","page-size","total"])]),_:1},8,["title","headers"]),f.value?(y(),x("div",He,[e("div",{class:"fixed inset-0 bg-gradient-to-br from-gray-900/90 to-black/90 backdrop-blur-sm transition-opacity duration-300",onClick:S}),e("div",qe,[e("div",Ie,[e("div",{class:o(["relative transform overflow-hidden rounded-2xl text-left shadow-2xl transition-all sm:my-8 sm:w-full sm:max-w-xl animate-modal-scale",[t(a)?"bg-gray-800/95 backdrop-blur-md":"bg-white"]])},[e("div",{class:o(["relative px-6 pt-6 pb-4",[t(a)?"bg-gradient-to-r from-gray-800/50 to-gray-700/50":"bg-gradient-to-r from-gray-50 to-white"]])},[e("div",Ke,[e("div",Ye,[e("div",{class:o(["p-2 rounded-lg",[t(a)?"bg-indigo-500/10":"bg-indigo-50"]])},[c(t(I),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])],2),e("h3",{class:o(["text-xl font-semibold leading-6",[t(a)?"text-white":"text-gray-900"]])},s(t(i)("fileManage.editFileInfo")),3)]),e("button",{onClick:S,class:o(["rounded-lg p-2 transition-all duration-200 hover:rotate-90",[t(a)?"text-gray-400 hover:text-white hover:bg-white/10":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"]])},[...l[6]||(l[6]=[e("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],2)])],2),e("div",Ze,[e("div",Re,[e("div",Ge,[e("label",{class:o(["text-sm font-medium flex items-center space-x-2 transition-colors duration-200",[t(a)?"text-gray-300 group-focus-within:text-indigo-400":"text-gray-700 group-focus-within:text-indigo-600"]])},[e("span",null,s(t(i)("fileManage.form.code")),1),e("div",{class:o(["h-px flex-1 transition-colors duration-200",[t(a)?"bg-gray-700 group-focus-within:bg-indigo-500/50":"bg-gray-200 group-focus-within:bg-indigo-500/30"]])},null,2)],2),e("div",Je,[k(e("input",{type:"text","onUpdate:modelValue":l[1]||(l[1]=r=>u.value.code=r),class:o(["block w-full rounded-lg border-0 py-2.5 pl-4 pr-10 transition-all duration-200 focus:ring-2 focus:ring-inset sm:text-sm",[t(a)?"bg-gray-700/50 text-white placeholder-gray-400 focus:ring-indigo-500/50":"bg-gray-50 text-gray-900 placeholder-gray-400 focus:ring-indigo-500"]]),placeholder:t(i)("fileManage.form.codePlaceholder")},null,10,Ne),[[M,u.value.code]]),e("div",Oe,[c(t(C),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])])])]),e("div",Qe,[e("label",{class:o(["text-sm font-medium flex items-center space-x-2 transition-colors duration-200",[t(a)?"text-gray-300 group-focus-within:text-indigo-400":"text-gray-700 group-focus-within:text-indigo-600"]])},[e("span",null,s(t(i)("fileManage.form.filename")),1),e("div",{class:o(["h-px flex-1 transition-colors duration-200",[t(a)?"bg-gray-700 group-focus-within:bg-indigo-500/50":"bg-gray-200 group-focus-within:bg-indigo-500/30"]])},null,2)],2),e("div",We,[k(e("input",{type:"text","onUpdate:modelValue":l[2]||(l[2]=r=>u.value.prefix=r),class:o(["block w-full rounded-lg border-0 py-2.5 pl-4 pr-10 transition-all duration-200 focus:ring-2 focus:ring-inset sm:text-sm",[t(a)?"bg-gray-700/50 text-white placeholder-gray-400 focus:ring-indigo-500/50":"bg-gray-50 text-gray-900 placeholder-gray-400 focus:ring-indigo-500"]]),placeholder:t(i)("fileManage.form.filenamePlaceholder")},null,10,Xe),[[M,u.value.prefix]]),e("div",et,[c(t(C),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])])])]),e("div",tt,[e("label",{class:o(["text-sm font-medium flex items-center space-x-2 transition-colors duration-200",[t(a)?"text-gray-300 group-focus-within:text-indigo-400":"text-gray-700 group-focus-within:text-indigo-600"]])},[e("span",null,s(t(i)("fileManage.form.suffix")),1),e("div",{class:o(["h-px flex-1 transition-colors duration-200",[t(a)?"bg-gray-700 group-focus-within:bg-indigo-500/50":"bg-gray-200 group-focus-within:bg-indigo-500/30"]])},null,2)],2),e("div",ot,[k(e("input",{type:"text","onUpdate:modelValue":l[3]||(l[3]=r=>u.value.suffix=r),class:o(["block w-full rounded-lg border-0 py-2.5 pl-4 pr-10 transition-all duration-200 focus:ring-2 focus:ring-inset sm:text-sm",[t(a)?"bg-gray-700/50 text-white placeholder-gray-400 focus:ring-indigo-500/50":"bg-gray-50 text-gray-900 placeholder-gray-400 focus:ring-indigo-500"]]),placeholder:t(i)("fileManage.form.suffixPlaceholder")},null,10,at),[[M,u.value.suffix]]),e("div",it,[c(t(C),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])])])]),e("div",st,[e("label",{class:o(["text-sm font-medium flex items-center space-x-2 transition-colors duration-200",[t(a)?"text-gray-300 group-focus-within:text-indigo-400":"text-gray-700 group-focus-within:text-indigo-600"]])},[e("span",null,s(t(i)("send.expiration.label")),1),e("div",{class:o(["h-px flex-1 transition-colors duration-200",[t(a)?"bg-gray-700 group-focus-within:bg-indigo-500/50":"bg-gray-200 group-focus-within:bg-indigo-500/30"]])},null,2)],2),e("div",rt,[k(e("input",{type:"datetime-local","onUpdate:modelValue":l[4]||(l[4]=r=>u.value.expired_at=r),class:o(["block w-full rounded-lg border-0 py-2.5 pl-4 pr-10 transition-all duration-200 focus:ring-2 focus:ring-inset sm:text-sm",[t(a)?"bg-gray-700/50 text-white placeholder-gray-400 focus:ring-indigo-500/50":"bg-gray-50 text-gray-900 placeholder-gray-400 focus:ring-indigo-500"]])},null,2),[[M,u.value.expired_at]]),e("div",nt,[c(t(C),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])])])]),e("div",lt,[e("label",{class:o(["text-sm font-medium flex items-center space-x-2 transition-colors duration-200",[t(a)?"text-gray-300 group-focus-within:text-indigo-400":"text-gray-700 group-focus-within:text-indigo-600"]])},[e("span",null,s(t(i)("fileManage.form.downloadLimit")),1),e("div",{class:o(["h-px flex-1 transition-colors duration-200",[t(a)?"bg-gray-700 group-focus-within:bg-indigo-500/50":"bg-gray-200 group-focus-within:bg-indigo-500/30"]])},null,2)],2),e("div",dt,[k(e("input",{type:"number","onUpdate:modelValue":l[5]||(l[5]=r=>u.value.expired_count=r),class:o(["block w-full rounded-lg border-0 py-2.5 pl-4 pr-10 transition-all duration-200 focus:ring-2 focus:ring-inset sm:text-sm",[t(a)?"bg-gray-700/50 text-white placeholder-gray-400 focus:ring-indigo-500/50":"bg-gray-50 text-gray-900 placeholder-gray-400 focus:ring-indigo-500"]]),placeholder:t(i)("fileManage.form.downloadLimitPlaceholder")},null,10,gt),[[M,u.value.expired_count]]),e("div",ct,[c(t(C),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])])])])])]),e("div",{class:o(["flex items-center justify-end gap-3 px-6 py-4 border-t bg-gradient-to-b",[t(a)?"border-gray-700/50 from-gray-800/50 to-gray-800":"border-gray-200 from-gray-50 to-white"]])},[e("button",{onClick:S,class:o(["inline-flex items-center justify-center rounded-lg px-4 py-2.5 text-sm font-medium transition-all duration-200",[t(a)?"bg-gray-700/50 text-gray-300 hover:bg-gray-600/50 hover:text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"]])},s(t(i)("common.cancel")),3),e("button",{onClick:G,class:"inline-flex items-center justify-center rounded-lg px-4 py-2.5 text-sm font-medium transition-all duration-200 bg-gradient-to-r from-indigo-600 to-indigo-500 hover:from-indigo-500 hover:to-indigo-600 text-white shadow-lg shadow-indigo-500/25 hover:shadow-indigo-500/35"},[c(t(C),{class:"w-4 h-4 mr-2"}),b(" "+s(t(i)("fileManage.saveChanges")),1)])],2)],2)])])])):V("",!0),w.value?(y(),x("div",ut,[e("div",{class:"fixed inset-0 bg-gradient-to-br from-gray-900/90 to-black/90 backdrop-blur-sm transition-opacity duration-300",onClick:D}),e("div",pt,[e("div",xt,[e("div",{class:o(["relative transform overflow-hidden rounded-2xl text-left shadow-2xl transition-all sm:my-8 sm:w-full sm:max-w-2xl animate-modal-scale",[t(a)?"bg-gray-800/95 backdrop-blur-md":"bg-white"]])},[e("div",{class:o(["relative px-6 pt-6 pb-4",[t(a)?"bg-gradient-to-r from-gray-800/50 to-gray-700/50":"bg-gradient-to-r from-gray-50 to-white"]])},[e("div",yt,[e("div",ht,[e("div",{class:o(["p-2 rounded-lg",[t(a)?"bg-indigo-500/10":"bg-indigo-50"]])},[c(t(ge),{class:o(["w-5 h-5",[t(a)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])],2),e("h3",{class:o(["text-xl font-semibold leading-6",[t(a)?"text-white":"text-gray-900"]])},s(t(i)("fileManage.textPreview")),3)]),e("button",{onClick:D,class:o(["rounded-lg p-2 transition-all duration-200 hover:rotate-90",[t(a)?"text-gray-400 hover:text-white hover:bg-white/10":"text-gray-500 hover:text-gray-700 hover:bg-gray-100"]])},[...l[7]||(l[7]=[e("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24","stroke-width":"2",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])],2)])],2),e("div",ft,[e("div",{class:o(["max-h-[60vh] overflow-y-auto rounded-lg p-4 custom-scrollbar",[t(a)?"bg-gray-700/50":"bg-gray-50"]])},[e("pre",{class:o(["whitespace-pre-wrap break-words text-sm font-mono",[t(a)?"text-gray-200":"text-gray-700"]])},s(m.value),3)],2),e("div",{class:o(["mt-2 text-xs",[t(a)?"text-gray-500":"text-gray-400"]])},s(t(i)("fileManage.charCount",{count:m.value.length})),3)]),e("div",{class:o(["flex items-center justify-end gap-3 px-6 py-4 border-t",[t(a)?"border-gray-700/50":"border-gray-200"]])},[e("button",{onClick:Z,class:o(["inline-flex items-center justify-center rounded-lg px-4 py-2.5 text-sm font-medium transition-all duration-200",[t(a)?"bg-gray-700/50 text-gray-300 hover:bg-gray-600/50 hover:text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"]])},[c(t(ie),{class:"w-4 h-4 mr-2"}),b(" "+s(t(i)("fileManage.copyText")),1)],2),e("button",{onClick:D,class:"inline-flex items-center justify-center rounded-lg px-4 py-2.5 text-sm font-medium transition-all duration-200 bg-gradient-to-r from-indigo-600 to-indigo-500 hover:from-indigo-500 hover:to-indigo-600 text-white shadow-lg shadow-indigo-500/25 hover:shadow-indigo-500/35"},s(t(i)("common.close")),1)],2)],2)])])])):V("",!0)]))}});export{_t as default}; diff --git a/themes/2024/assets/LoginView-DN8sBu46.js b/themes/2024/assets/LoginView-CyitXin1.js similarity index 97% rename from themes/2024/assets/LoginView-DN8sBu46.js rename to themes/2024/assets/LoginView-CyitXin1.js index 04f5ce7..5dd5b5a 100644 --- a/themes/2024/assets/LoginView-DN8sBu46.js +++ b/themes/2024/assets/LoginView-CyitXin1.js @@ -1 +1 @@ -import{Q as y,r as c,S as u,g as b,d as w,p as x,a as h,o as S,b as e,n as d,e as i,i as A,l as k,h as I,x as D,z as N,E as T,t as _,a1 as E,I as M,_ as O}from"./index-B3zfsvgW.js";import{B as V}from"./box-COy3AQAQ.js";const j=y("admin",()=>{const p=c(localStorage.getItem(u.ADMIN_PASSWORD)||""),s=c(localStorage.getItem(u.TOKEN)||""),a=c(!1),l=c(null),n=b(()=>a.value&&!!s.value),f=o=>{p.value=o,localStorage.setItem(u.ADMIN_PASSWORD,o)},g=o=>{s.value=o,localStorage.setItem(u.TOKEN,o)},m=o=>{l.value=o,a.value=!0,g(o.token)};return{adminPassword:p,token:s,isLoggedIn:a,userInfo:l,isAuthenticated:n,updateAdminPassword:f,setToken:g,setUserInfo:m,login:o=>{m(o)},logout:()=>{p.value="",s.value="",a.value=!1,l.value=null,localStorage.removeItem(u.ADMIN_PASSWORD),localStorage.removeItem(u.TOKEN)},initAuth:()=>{const o=localStorage.getItem(u.TOKEN);o&&(s.value=o,a.value=!0)}}}),B=j,K={class:"mx-auto h-16 w-16 relative"},P={class:"rounded-md shadow-sm -space-y-px"},R=["disabled"],z=w({__name:"LoginView",setup(p){const s=x(),a=c(""),l=c(!1),n=A("isDarkMode"),f=B(),g=()=>{let r=!0;return a.value?a.value.length<6&&(s.showAlert("密码长度至少为6位","error"),r=!1):(s.showAlert("无效的密码","error"),r=!1),r},m=M(),v=async()=>{if(g()){l.value=!0;try{const r=await E.login(a.value);r.detail?.token?(f.setToken(r.detail.token),m.push("/admin")):s.showAlert("登录失败:未获取到有效令牌","error")}catch(r){const t=r&&typeof r=="object"&&"response"in r&&r.response?.data?.detail||"登录失败";s.showAlert(t,"error")}finally{l.value=!1}}};return(r,t)=>(S(),h("div",{class:d(["min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 transition-colors duration-200 relative overflow-hidden",i(n)?"bg-gray-900":"bg-gray-50"])},[t[6]||(t[6]=e("div",{class:"absolute inset-0 z-0"},[e("div",{class:"cyber-grid"}),e("div",{class:"floating-particles"})],-1)),e("div",{class:d(["max-w-md w-full space-y-8 backdrop-blur-lg bg-opacity-20 p-8 rounded-xl border border-opacity-20",[i(n)?"bg-gray-800 border-gray-600":"bg-white/70 border-gray-200"]])},[e("div",null,[e("div",K,[t[1]||(t[1]=e("div",{class:"absolute inset-0 bg-gradient-to-r from-cyan-500 via-purple-500 to-pink-500 rounded-full animate-spin-slow"},null,-1)),t[2]||(t[2]=e("div",{class:"absolute -inset-2 bg-gradient-to-r from-cyan-500 via-purple-500 to-pink-500 rounded-full opacity-50 blur-md animate-pulse"},null,-1)),e("div",{class:d(["absolute inset-1 rounded-full flex items-center justify-center",i(n)?"bg-gray-800":"bg-white"])},[k(i(V),{class:d(["h-8 w-8",i(n)?"text-cyan-400":"text-cyan-600"])},null,8,["class"])],2)]),e("h2",{class:d(["mt-6 text-center text-3xl font-extrabold",i(n)?"text-white":"text-gray-900"])}," 登录 ",2)]),e("form",{class:"mt-8 space-y-6",onSubmit:I(v,["prevent"])},[t[5]||(t[5]=e("input",{type:"hidden",name:"remember",value:"true"},null,-1)),e("div",P,[e("div",null,[t[3]||(t[3]=e("label",{for:"password",class:"sr-only"},"密码",-1)),D(e("input",{id:"password",name:"password",type:"password",autocomplete:"current-password",required:"","onUpdate:modelValue":t[0]||(t[0]=o=>a.value=o),class:d(["appearance-none rounded-t-md relative block w-full px-4 py-3 border transition-all duration-200 placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-cyan-500 focus:z-10 sm:text-sm backdrop-blur-sm",i(n)?"bg-gray-800/50 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"bg-white/50 border-gray-300 text-gray-900 hover:border-gray-400"]),placeholder:"密码"},null,2),[[N,a.value]])])]),e("div",null,[e("button",{type:"submit",class:d(["group relative w-full flex justify-center py-3 px-4 border border-transparent text-sm font-medium rounded-md text-white transition-all duration-300 transform hover:scale-[1.02] focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-cyan-500 shadow-lg hover:shadow-cyan-500/50",i(n)?"bg-gradient-to-r from-cyan-500 to-purple-500 hover:from-cyan-600 hover:to-purple-600":"bg-gradient-to-r from-cyan-600 to-purple-600 hover:from-cyan-700 hover:to-purple-700",l.value?"opacity-75 cursor-not-allowed":""]),disabled:l.value},[t[4]||(t[4]=e("span",{class:"absolute left-0 inset-y-0 flex items-center pl-3"},null,-1)),T(" "+_(l.value?"登录中...":"登录"),1)],10,R)])],32)],2)],2))}}),C=O(z,[["__scopeId","data-v-894571a2"]]);export{C as default}; +import{Q as y,r as c,S as u,g as b,d as w,p as x,a as h,o as S,b as e,n as d,e as i,i as A,l as k,h as I,x as D,z as N,E as T,t as _,a1 as E,I as M,_ as O}from"./index-B9FIg8c4.js";import{B as V}from"./box-BaIzuVAS.js";const j=y("admin",()=>{const p=c(localStorage.getItem(u.ADMIN_PASSWORD)||""),s=c(localStorage.getItem(u.TOKEN)||""),a=c(!1),l=c(null),n=b(()=>a.value&&!!s.value),f=o=>{p.value=o,localStorage.setItem(u.ADMIN_PASSWORD,o)},g=o=>{s.value=o,localStorage.setItem(u.TOKEN,o)},m=o=>{l.value=o,a.value=!0,g(o.token)};return{adminPassword:p,token:s,isLoggedIn:a,userInfo:l,isAuthenticated:n,updateAdminPassword:f,setToken:g,setUserInfo:m,login:o=>{m(o)},logout:()=>{p.value="",s.value="",a.value=!1,l.value=null,localStorage.removeItem(u.ADMIN_PASSWORD),localStorage.removeItem(u.TOKEN)},initAuth:()=>{const o=localStorage.getItem(u.TOKEN);o&&(s.value=o,a.value=!0)}}}),B=j,K={class:"mx-auto h-16 w-16 relative"},P={class:"rounded-md shadow-sm -space-y-px"},R=["disabled"],z=w({__name:"LoginView",setup(p){const s=x(),a=c(""),l=c(!1),n=A("isDarkMode"),f=B(),g=()=>{let r=!0;return a.value?a.value.length<6&&(s.showAlert("密码长度至少为6位","error"),r=!1):(s.showAlert("无效的密码","error"),r=!1),r},m=M(),v=async()=>{if(g()){l.value=!0;try{const r=await E.login(a.value);r.detail?.token?(f.setToken(r.detail.token),m.push("/admin")):s.showAlert("登录失败:未获取到有效令牌","error")}catch(r){const t=r&&typeof r=="object"&&"response"in r&&r.response?.data?.detail||"登录失败";s.showAlert(t,"error")}finally{l.value=!1}}};return(r,t)=>(S(),h("div",{class:d(["min-h-screen flex items-center justify-center py-12 px-4 sm:px-6 lg:px-8 transition-colors duration-200 relative overflow-hidden",i(n)?"bg-gray-900":"bg-gray-50"])},[t[6]||(t[6]=e("div",{class:"absolute inset-0 z-0"},[e("div",{class:"cyber-grid"}),e("div",{class:"floating-particles"})],-1)),e("div",{class:d(["max-w-md w-full space-y-8 backdrop-blur-lg bg-opacity-20 p-8 rounded-xl border border-opacity-20",[i(n)?"bg-gray-800 border-gray-600":"bg-white/70 border-gray-200"]])},[e("div",null,[e("div",K,[t[1]||(t[1]=e("div",{class:"absolute inset-0 bg-gradient-to-r from-cyan-500 via-purple-500 to-pink-500 rounded-full animate-spin-slow"},null,-1)),t[2]||(t[2]=e("div",{class:"absolute -inset-2 bg-gradient-to-r from-cyan-500 via-purple-500 to-pink-500 rounded-full opacity-50 blur-md animate-pulse"},null,-1)),e("div",{class:d(["absolute inset-1 rounded-full flex items-center justify-center",i(n)?"bg-gray-800":"bg-white"])},[k(i(V),{class:d(["h-8 w-8",i(n)?"text-cyan-400":"text-cyan-600"])},null,8,["class"])],2)]),e("h2",{class:d(["mt-6 text-center text-3xl font-extrabold",i(n)?"text-white":"text-gray-900"])}," 登录 ",2)]),e("form",{class:"mt-8 space-y-6",onSubmit:I(v,["prevent"])},[t[5]||(t[5]=e("input",{type:"hidden",name:"remember",value:"true"},null,-1)),e("div",P,[e("div",null,[t[3]||(t[3]=e("label",{for:"password",class:"sr-only"},"密码",-1)),D(e("input",{id:"password",name:"password",type:"password",autocomplete:"current-password",required:"","onUpdate:modelValue":t[0]||(t[0]=o=>a.value=o),class:d(["appearance-none rounded-t-md relative block w-full px-4 py-3 border transition-all duration-200 placeholder-gray-500 focus:outline-none focus:ring-2 focus:ring-cyan-500 focus:border-cyan-500 focus:z-10 sm:text-sm backdrop-blur-sm",i(n)?"bg-gray-800/50 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"bg-white/50 border-gray-300 text-gray-900 hover:border-gray-400"]),placeholder:"密码"},null,2),[[N,a.value]])])]),e("div",null,[e("button",{type:"submit",class:d(["group relative w-full flex justify-center py-3 px-4 border border-transparent text-sm font-medium rounded-md text-white transition-all duration-300 transform hover:scale-[1.02] focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-cyan-500 shadow-lg hover:shadow-cyan-500/50",i(n)?"bg-gradient-to-r from-cyan-500 to-purple-500 hover:from-cyan-600 hover:to-purple-600":"bg-gradient-to-r from-cyan-600 to-purple-600 hover:from-cyan-700 hover:to-purple-700",l.value?"opacity-75 cursor-not-allowed":""]),disabled:l.value},[t[4]||(t[4]=e("span",{class:"absolute left-0 inset-y-0 flex items-center pl-3"},null,-1)),T(" "+_(l.value?"登录中...":"登录"),1)],10,R)])],32)],2)],2))}}),C=O(z,[["__scopeId","data-v-894571a2"]]);export{C as default}; diff --git a/themes/2024/assets/PageHeader-C8MTYIg6.js b/themes/2024/assets/PageHeader-C8MTYIg6.js new file mode 100644 index 0000000..d9cf062 --- /dev/null +++ b/themes/2024/assets/PageHeader-C8MTYIg6.js @@ -0,0 +1,16 @@ +import{c as J,d as G,N,r as R,O as Z,f as ne,y as oe,Q as ie,g as B,U as x,p as se,a as le,o as ue,b as H,l as ce,e as X,n as de,i as fe,t as he,_ as ve}from"./index-B9FIg8c4.js";import{B as ge}from"./box-BaIzuVAS.js";/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const xe=J("clipboard-list",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const He=J("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/*! + * qrcode.vue v3.6.0 + * A Vue.js component to generate QRCode. Both support Vue 2 and Vue 3 + * © 2017-PRESENT @scopewu(https://github.com/scopewu) + * MIT License. + */var D=function(){return D=Object.assign||function(c){for(var u,l=1,f=arguments.length;la.MAX_VERSION)throw new RangeError("Version value out of range");if(n<-1||n>7)throw new RangeError("Mask value out of range");this.size=e*4+17;for(var s=[],i=0;i7)throw new RangeError("Invalid value");var h,p;for(h=r;;h++){var M=a.getNumDataCodewords(h,t)*8,w=v.getTotalBits(e,h);if(w<=M){p=w;break}if(h>=n)throw new RangeError("Data too long")}for(var C=0,S=[a.Ecc.MEDIUM,a.Ecc.QUARTILE,a.Ecc.HIGH];C>>3]|=k<<7-(Q&7)}),new a(h,t,T,s)},a.prototype.getModule=function(e,t){return 0<=e&&e>>9)*1335;var s=(t<<10|r)^21522;f(s>>>15==0);for(var n=0;n<=5;n++)this.setFunctionModule(8,n,l(s,n));this.setFunctionModule(8,7,l(s,6)),this.setFunctionModule(8,8,l(s,7)),this.setFunctionModule(7,8,l(s,8));for(var n=9;n<15;n++)this.setFunctionModule(14-n,8,l(s,n));for(var n=0;n<8;n++)this.setFunctionModule(this.size-1-n,8,l(s,n));for(var n=8;n<15;n++)this.setFunctionModule(8,this.size-15+n,l(s,n));this.setFunctionModule(8,this.size-8,!0)},a.prototype.drawVersion=function(){if(!(this.version<7)){for(var e=this.version,t=0;t<12;t++)e=e<<1^(e>>>11)*7973;var r=this.version<<12|e;f(r>>>18==0);for(var t=0;t<18;t++){var n=l(r,t),s=this.size-11+t%3,i=Math.floor(t/3);this.setFunctionModule(s,i,n),this.setFunctionModule(i,s,n)}}},a.prototype.drawFinderPattern=function(e,t){for(var r=-4;r<=4;r++)for(var n=-4;n<=4;n++){var s=Math.max(Math.abs(n),Math.abs(r)),i=e+n,h=t+r;0<=i&&i=h)&&E.push(b[y])})},C=0;C=1;r-=2){r==6&&(r=5);for(var n=0;n>>3],7-(t&7)),t++)}}f(t==e.length*8)},a.prototype.applyMask=function(e){if(e<0||e>7)throw new RangeError("Mask value out of range");for(var t=0;t5&&e++):(this.finderPenaltyAddHistory(n,s),r||(e+=this.finderPenaltyCountPatterns(s)*a.PENALTY_N3),r=this.modules[t][i],n=1);e+=this.finderPenaltyTerminateAndCount(r,n,s)*a.PENALTY_N3}for(var i=0;i5&&e++):(this.finderPenaltyAddHistory(h,s),r||(e+=this.finderPenaltyCountPatterns(s)*a.PENALTY_N3),r=this.modules[t][i],h=1);e+=this.finderPenaltyTerminateAndCount(r,h,s)*a.PENALTY_N3}for(var t=0;ta.MAX_VERSION)throw new RangeError("Version number out of range");var t=(16*e+128)*e+64;if(e>=2){var r=Math.floor(e/7)+2;t-=(25*r-10)*r-55,e>=7&&(t-=36)}return f(208<=t&&t<=29648),t},a.getNumDataCodewords=function(e,t){return Math.floor(a.getNumRawDataModules(e)/8)-a.ECC_CODEWORDS_PER_BLOCK[t.ordinal][e]*a.NUM_ERROR_CORRECTION_BLOCKS[t.ordinal][e]},a.reedSolomonComputeDivisor=function(e){if(e<1||e>255)throw new RangeError("Degree out of range");for(var t=[],r=0;r>>8||t>>>8)throw new RangeError("Byte out of range");for(var r=0,n=7;n>=0;n--)r=r<<1^(r>>>7)*285,r^=(t>>>n&1)*e;return f(r>>>8==0),r},a.prototype.finderPenaltyCountPatterns=function(e){var t=e[1];f(t<=this.size*3);var r=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(r&&e[0]>=t*4&&e[6]>=t?1:0)+(r&&e[6]>=t*4&&e[0]>=t?1:0)},a.prototype.finderPenaltyTerminateAndCount=function(e,t,r){return e&&(this.finderPenaltyAddHistory(t,r),t=0),t+=this.size,this.finderPenaltyAddHistory(t,r),this.finderPenaltyCountPatterns(r)},a.prototype.finderPenaltyAddHistory=function(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)},a.MIN_VERSION=1,a.MAX_VERSION=40,a.PENALTY_N1=3,a.PENALTY_N2=3,a.PENALTY_N3=40,a.PENALTY_N4=10,a.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],a.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],a})();o.QrCode=c;function u(a,e,t){if(e<0||e>31||a>>>e)throw new RangeError("Value out of range");for(var r=e-1;r>=0;r--)t.push(a>>>r&1)}function l(a,e){return(a>>>e&1)!=0}function f(a){if(!a)throw new Error("Assertion error")}var v=(function(){function a(e,t,r){if(this.mode=e,this.numChars=t,this.bitData=r,t<0)throw new RangeError("Invalid argument");this.bitData=r.slice()}return a.makeBytes=function(e){for(var t=[],r=0,n=e;r=1<=c.y+c.h?u:u.map(function(f,v){return v=c.x+c.w?f:!1})})}var q={value:{type:String,required:!0,default:""},size:{type:Number,default:100},level:{type:String,default:Y,validator:function(o){return W(o)}},background:{type:String,default:"#fff"},foreground:{type:String,default:"#000"},margin:{type:Number,required:!1,default:0},imageSettings:{type:Object,required:!1,default:function(){return{}}},gradient:{type:Boolean,required:!1,default:!1},gradientType:{type:String,required:!1,default:"linear",validator:function(o){return["linear","radial"].indexOf(o)>-1}},gradientStartColor:{type:String,required:!1,default:"#000"},gradientEndColor:{type:String,required:!1,default:"#fff"}},me=D(D({},q),{renderAs:{type:String,required:!1,default:"canvas",validator:function(o){return["canvas","svg"].indexOf(o)>-1}}}),Ce=G({name:"QRCodeSvg",props:q,setup:function(o){var c=R(0),u=R(""),l,f=function(){var a=o.value,e=o.level,t=o.margin,r=t>>>0,n=W(e)?e:Y,s=U.QrCode.encodeText(a,K[n]).getModules();if(c.value=s.length+r*2,o.imageSettings.src){var i=ee(s,o.size,r,o.imageSettings);l={x:i.x+r,y:i.y+r,width:i.w,height:i.h},i.excavation&&(s=te(s,i.excavation))}u.value=j(s,r)},v=function(){if(!o.gradient)return null;var a=o.gradientType==="linear"?{x1:"0%",y1:"0%",x2:"100%",y2:"100%"}:{cx:"50%",cy:"50%",r:"50%",fx:"50%",fy:"50%"};return N(o.gradientType==="linear"?"linearGradient":"radialGradient",D({id:"qr-gradient"},a),[N("stop",{offset:"0%",style:{stopColor:o.gradientStartColor}}),N("stop",{offset:"100%",style:{stopColor:o.gradientEndColor}})])};return f(),Z(f),function(){return N("svg",{width:o.size,height:o.size,"shape-rendering":"crispEdges",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(c.value," ").concat(c.value)},[N("defs",{},[v()]),N("rect",{width:"100%",height:"100%",fill:o.background}),N("path",{fill:o.gradient?"url(#qr-gradient)":o.foreground,d:u.value}),o.imageSettings.src&&N("image",D({href:o.imageSettings.src},l))])}}}),we=G({name:"QRCodeCanvas",props:q,setup:function(o,c){var u=R(null),l=R(null),f=function(){var a=o.value,e=o.level,t=o.size,r=o.margin,n=o.background,s=o.foreground,i=o.gradient,h=o.gradientType,p=o.gradientStartColor,M=o.gradientEndColor,w=r>>>0,C=W(e)?e:Y,S=u.value;if(S){var m=S.getContext("2d");if(m){var g=U.QrCode.encodeText(a,K[C]).getModules(),E=g.length+w*2,P=l.value,y={x:0,y:0,width:0,height:0},b=o.imageSettings.src&&P!=null&&P.naturalWidth!==0&&P.naturalHeight!==0;if(b){var A=ee(g,o.size,w,o.imageSettings);y={x:A.x+w,y:A.y+w,width:A.w,height:A.h},A.excavation&&(g=te(g,A.excavation))}var O=window.devicePixelRatio||1,L=t/E*O;if(S.height=S.width=t*O,m.scale(L,L),m.fillStyle=n,m.fillRect(0,0,E,E),i){var I=void 0;h==="linear"?I=m.createLinearGradient(0,0,E,E):I=m.createRadialGradient(E/2,E/2,0,E/2,E/2,E/2),I.addColorStop(0,p),I.addColorStop(1,M),m.fillStyle=I}else m.fillStyle=s;pe?m.fill(new Path2D(j(g,w))):g.forEach(function(T,k){T.forEach(function(Q,V){Q&&m.fillRect(V+w,k+w,1,1)})}),b&&m.drawImage(P,y.x,y.y,y.width,y.height)}}};ne(f),Z(f);var v=c.attrs.style;return function(){return N(oe,[N("canvas",D(D({},c.attrs),{ref:u,style:D(D({},v),{width:"".concat(o.size,"px"),height:"".concat(o.size,"px")})})),o.imageSettings.src&&N("img",{ref:l,src:o.imageSettings.src,style:{display:"none"},onLoad:f})])}}}),Ge=G({name:"Qrcode",render:function(){var o=this.$props,c=o.renderAs,u=o.value,l=o.size,f=o.margin,v=o.level,a=o.background,e=o.foreground,t=o.imageSettings,r=o.gradient,n=o.gradientType,s=o.gradientStartColor,i=o.gradientEndColor;return N(c==="svg"?Ce:we,{value:u,size:l,margin:f,level:v,background:a,foreground:e,imageSettings:t,gradient:r,gradientType:n,gradientStartColor:s,gradientEndColor:i})},props:me});const $e=ie("fileData",()=>{const o=R(x.IDLE),c=R({loaded:0,total:0,percentage:0}),u=R(""),l=R(null),f=R(""),v=R(null),a=R(!1),e=R([]),t=R(0),r=R(1),n=R(10),s=R(!1),i=R([]),h=R([]),p=B(()=>o.value===x.UPLOADING),M=B(()=>o.value===x.SUCCESS),w=B(()=>o.value===x.ERROR),C=B(()=>v.value!==null),S=B(()=>C.value&&!a.value),m=B(()=>Math.ceil(t.value/n.value)),g=d=>{o.value=d},E=d=>{c.value=d},P=d=>{u.value=d},y=d=>{l.value=d},b=()=>{o.value=x.IDLE,c.value={loaded:0,total:0,percentage:0},u.value="",l.value=null},A=d=>{f.value=d},O=d=>{v.value=d},L=d=>{a.value=d},I=()=>{f.value="",v.value=null,a.value=!1},T=d=>{e.value=d},k=d=>{e.value.unshift(d),t.value+=1};return{uploadStatus:o,uploadProgress:c,uploadedCode:u,currentFile:l,downloadCode:f,fileInfo:v,isDownloading:a,fileList:e,totalFiles:t,currentPage:r,pageSize:n,isLoadingList:s,isUploading:p,isUploadSuccess:M,isUploadError:w,hasFileInfo:C,canDownload:S,totalPages:m,setUploadStatus:g,setUploadProgress:E,setUploadedCode:P,setCurrentFile:y,resetUpload:b,setDownloadCode:A,setFileInfo:O,setDownloading:L,resetDownload:I,setFileList:T,addFile:k,removeFile:d=>{const _=e.value.findIndex(z=>z.id===d);_>-1&&(e.value.splice(_,1),t.value-=1)},updateFile:(d,_)=>{const z=e.value.findIndex(ae=>ae.id===d);z>-1&&(e.value[z]={...e.value[z],..._})},setTotalFiles:d=>{t.value=d},setCurrentPage:d=>{r.value=d},setPageSize:d=>{n.value=d},setLoadingList:d=>{s.value=d},resetFileList:()=>{e.value=[],t.value=0,r.value=1,s.value=!1},addShareData:d=>{if(P(d.code),d.name){const _={id:d.code,name:d.name,size:0,type:"",uploadTime:new Date().toISOString(),downloadCount:0};k(_)}},receiveData:i,addReceiveData:d=>{i.value.push(d)},removeReceiveData:d=>{const _=i.value.findIndex(z=>z.id===d);_>-1&&i.value.splice(_,1)},deleteReceiveData:d=>{d>-1&&d{i.value=[]},shareData:h,addShareDataRecord:d=>{h.value.push(d)},deleteShareData:d=>{d>-1&&d{h.value=[]}}}),re=async(o,c={})=>{const{successMsg:u="复制成功",errorMsg:l="复制失败,请手动复制",showMsg:f=!0}=c,v=se();try{if(document.hasFocus()&&navigator.clipboard&&navigator.clipboard.writeText)return await navigator.clipboard.writeText(o),f&&v.showAlert(u,"success"),!0;const a=document.createElement("textarea");a.value=o,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select();const e=document.execCommand("copy");if(document.body.removeChild(a),e)return f&&v.showAlert(u,"success"),!0;throw new Error("execCommand copy failed")}catch(a){return console.error("复制失败:",a),f&&v.showAlert(l,"error"),!1}},Ye=async o=>{const c=`${window.location.origin}/#/?code=${o}`;return re(c,{successMsg:"取件链接已复制到剪贴板",errorMsg:"复制失败,请手动复制取件链接"})},Ke=async o=>re(o,{successMsg:"取件码已复制到剪贴板",errorMsg:"复制失败,请手动复制取件码"}),Ee=window.location.origin+"/",We=(o,c)=>{const u=`wget ${Ee}share/select?code=${o} -O "${c}"`;navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(u).then(()=>{console.log("命令已复制到剪贴板!")}).catch(l=>{console.error("复制失败,使用回退方法:",l),$(u)}):(console.warn("Clipboard API 不可用,使用回退方法。"),$(u))};function $(o){const c=document.createElement("textarea");c.value=o,c.style.position="fixed",document.body.appendChild(c),c.focus(),c.select();try{const u=document.execCommand("copy");console.log("回退复制操作成功:",u),document.hasFocus()&&navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(o):$(o)}catch(u){console.error("回退复制操作失败:",u)}document.body.removeChild(c)}const Me={class:"text-center"},Re={class:"flex justify-center mb-8"},Se={class:"rounded-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 p-1 animate-spin-slow"},ye={class:"rounded-full bg-gray-900 p-2"},Pe=G({__name:"PageHeader",props:{title:{}},emits:["title-click"],setup(o){const c=fe("isDarkMode");return(u,l)=>(ue(),le("div",Me,[H("div",Re,[H("div",Se,[H("div",ye,[ce(X(ge),{class:"w-8 h-8 text-white"})])])]),H("h2",{onClick:l[0]||(l[0]=f=>u.$emit("title-click")),class:de(["text-3xl cursor-pointer font-extrabold text-center mb-6",[X(c)?"text-transparent bg-clip-text bg-gradient-to-r from-indigo-300 via-purple-300 to-pink-300":"text-indigo-600"]])},he(u.title),3)]))}}),qe=ve(Pe,[["__scopeId","data-v-2a18d8c8"]]);export{xe as C,qe as P,Ge as Q,He as S,We as a,Ye as b,Ke as c,re as d,$e as u}; diff --git a/themes/2024/assets/PageHeader-Y9MICulD.js b/themes/2024/assets/PageHeader-Y9MICulD.js deleted file mode 100644 index 1e580a4..0000000 --- a/themes/2024/assets/PageHeader-Y9MICulD.js +++ /dev/null @@ -1 +0,0 @@ -import{c as J,d as G,N,r as R,O as Z,f as ne,y as oe,Q as ie,g as B,U as x,p as se,a as le,o as ue,b as H,l as ce,e as X,n as de,i as fe,t as he,_ as ve}from"./index-B3zfsvgW.js";import{B as ge}from"./box-COy3AQAQ.js";const xe=J("clipboard-list",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]);const He=J("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);var D=function(){return D=Object.assign||function(c){for(var u,l=1,f=arguments.length;la.MAX_VERSION)throw new RangeError("Version value out of range");if(n<-1||n>7)throw new RangeError("Mask value out of range");this.size=e*4+17;for(var s=[],i=0;i7)throw new RangeError("Invalid value");var h,p;for(h=r;;h++){var M=a.getNumDataCodewords(h,t)*8,w=v.getTotalBits(e,h);if(w<=M){p=w;break}if(h>=n)throw new RangeError("Data too long")}for(var C=0,S=[a.Ecc.MEDIUM,a.Ecc.QUARTILE,a.Ecc.HIGH];C>>3]|=k<<7-(Q&7)}),new a(h,t,T,s)},a.prototype.getModule=function(e,t){return 0<=e&&e>>9)*1335;var s=(t<<10|r)^21522;f(s>>>15==0);for(var n=0;n<=5;n++)this.setFunctionModule(8,n,l(s,n));this.setFunctionModule(8,7,l(s,6)),this.setFunctionModule(8,8,l(s,7)),this.setFunctionModule(7,8,l(s,8));for(var n=9;n<15;n++)this.setFunctionModule(14-n,8,l(s,n));for(var n=0;n<8;n++)this.setFunctionModule(this.size-1-n,8,l(s,n));for(var n=8;n<15;n++)this.setFunctionModule(8,this.size-15+n,l(s,n));this.setFunctionModule(8,this.size-8,!0)},a.prototype.drawVersion=function(){if(!(this.version<7)){for(var e=this.version,t=0;t<12;t++)e=e<<1^(e>>>11)*7973;var r=this.version<<12|e;f(r>>>18==0);for(var t=0;t<18;t++){var n=l(r,t),s=this.size-11+t%3,i=Math.floor(t/3);this.setFunctionModule(s,i,n),this.setFunctionModule(i,s,n)}}},a.prototype.drawFinderPattern=function(e,t){for(var r=-4;r<=4;r++)for(var n=-4;n<=4;n++){var s=Math.max(Math.abs(n),Math.abs(r)),i=e+n,h=t+r;0<=i&&i=h)&&E.push(b[y])})},C=0;C=1;r-=2){r==6&&(r=5);for(var n=0;n>>3],7-(t&7)),t++)}}f(t==e.length*8)},a.prototype.applyMask=function(e){if(e<0||e>7)throw new RangeError("Mask value out of range");for(var t=0;t5&&e++):(this.finderPenaltyAddHistory(n,s),r||(e+=this.finderPenaltyCountPatterns(s)*a.PENALTY_N3),r=this.modules[t][i],n=1);e+=this.finderPenaltyTerminateAndCount(r,n,s)*a.PENALTY_N3}for(var i=0;i5&&e++):(this.finderPenaltyAddHistory(h,s),r||(e+=this.finderPenaltyCountPatterns(s)*a.PENALTY_N3),r=this.modules[t][i],h=1);e+=this.finderPenaltyTerminateAndCount(r,h,s)*a.PENALTY_N3}for(var t=0;ta.MAX_VERSION)throw new RangeError("Version number out of range");var t=(16*e+128)*e+64;if(e>=2){var r=Math.floor(e/7)+2;t-=(25*r-10)*r-55,e>=7&&(t-=36)}return f(208<=t&&t<=29648),t},a.getNumDataCodewords=function(e,t){return Math.floor(a.getNumRawDataModules(e)/8)-a.ECC_CODEWORDS_PER_BLOCK[t.ordinal][e]*a.NUM_ERROR_CORRECTION_BLOCKS[t.ordinal][e]},a.reedSolomonComputeDivisor=function(e){if(e<1||e>255)throw new RangeError("Degree out of range");for(var t=[],r=0;r>>8||t>>>8)throw new RangeError("Byte out of range");for(var r=0,n=7;n>=0;n--)r=r<<1^(r>>>7)*285,r^=(t>>>n&1)*e;return f(r>>>8==0),r},a.prototype.finderPenaltyCountPatterns=function(e){var t=e[1];f(t<=this.size*3);var r=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(r&&e[0]>=t*4&&e[6]>=t?1:0)+(r&&e[6]>=t*4&&e[0]>=t?1:0)},a.prototype.finderPenaltyTerminateAndCount=function(e,t,r){return e&&(this.finderPenaltyAddHistory(t,r),t=0),t+=this.size,this.finderPenaltyAddHistory(t,r),this.finderPenaltyCountPatterns(r)},a.prototype.finderPenaltyAddHistory=function(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)},a.MIN_VERSION=1,a.MAX_VERSION=40,a.PENALTY_N1=3,a.PENALTY_N2=3,a.PENALTY_N3=40,a.PENALTY_N4=10,a.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],a.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],a})();o.QrCode=c;function u(a,e,t){if(e<0||e>31||a>>>e)throw new RangeError("Value out of range");for(var r=e-1;r>=0;r--)t.push(a>>>r&1)}function l(a,e){return(a>>>e&1)!=0}function f(a){if(!a)throw new Error("Assertion error")}var v=(function(){function a(e,t,r){if(this.mode=e,this.numChars=t,this.bitData=r,t<0)throw new RangeError("Invalid argument");this.bitData=r.slice()}return a.makeBytes=function(e){for(var t=[],r=0,n=e;r=1<=c.y+c.h?u:u.map(function(f,v){return v=c.x+c.w?f:!1})})}var q={value:{type:String,required:!0,default:""},size:{type:Number,default:100},level:{type:String,default:Y,validator:function(o){return W(o)}},background:{type:String,default:"#fff"},foreground:{type:String,default:"#000"},margin:{type:Number,required:!1,default:0},imageSettings:{type:Object,required:!1,default:function(){return{}}},gradient:{type:Boolean,required:!1,default:!1},gradientType:{type:String,required:!1,default:"linear",validator:function(o){return["linear","radial"].indexOf(o)>-1}},gradientStartColor:{type:String,required:!1,default:"#000"},gradientEndColor:{type:String,required:!1,default:"#fff"}},me=D(D({},q),{renderAs:{type:String,required:!1,default:"canvas",validator:function(o){return["canvas","svg"].indexOf(o)>-1}}}),Ce=G({name:"QRCodeSvg",props:q,setup:function(o){var c=R(0),u=R(""),l,f=function(){var a=o.value,e=o.level,t=o.margin,r=t>>>0,n=W(e)?e:Y,s=U.QrCode.encodeText(a,K[n]).getModules();if(c.value=s.length+r*2,o.imageSettings.src){var i=ee(s,o.size,r,o.imageSettings);l={x:i.x+r,y:i.y+r,width:i.w,height:i.h},i.excavation&&(s=te(s,i.excavation))}u.value=j(s,r)},v=function(){if(!o.gradient)return null;var a=o.gradientType==="linear"?{x1:"0%",y1:"0%",x2:"100%",y2:"100%"}:{cx:"50%",cy:"50%",r:"50%",fx:"50%",fy:"50%"};return N(o.gradientType==="linear"?"linearGradient":"radialGradient",D({id:"qr-gradient"},a),[N("stop",{offset:"0%",style:{stopColor:o.gradientStartColor}}),N("stop",{offset:"100%",style:{stopColor:o.gradientEndColor}})])};return f(),Z(f),function(){return N("svg",{width:o.size,height:o.size,"shape-rendering":"crispEdges",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(c.value," ").concat(c.value)},[N("defs",{},[v()]),N("rect",{width:"100%",height:"100%",fill:o.background}),N("path",{fill:o.gradient?"url(#qr-gradient)":o.foreground,d:u.value}),o.imageSettings.src&&N("image",D({href:o.imageSettings.src},l))])}}}),we=G({name:"QRCodeCanvas",props:q,setup:function(o,c){var u=R(null),l=R(null),f=function(){var a=o.value,e=o.level,t=o.size,r=o.margin,n=o.background,s=o.foreground,i=o.gradient,h=o.gradientType,p=o.gradientStartColor,M=o.gradientEndColor,w=r>>>0,C=W(e)?e:Y,S=u.value;if(S){var m=S.getContext("2d");if(m){var g=U.QrCode.encodeText(a,K[C]).getModules(),E=g.length+w*2,P=l.value,y={x:0,y:0,width:0,height:0},b=o.imageSettings.src&&P!=null&&P.naturalWidth!==0&&P.naturalHeight!==0;if(b){var A=ee(g,o.size,w,o.imageSettings);y={x:A.x+w,y:A.y+w,width:A.w,height:A.h},A.excavation&&(g=te(g,A.excavation))}var O=window.devicePixelRatio||1,L=t/E*O;if(S.height=S.width=t*O,m.scale(L,L),m.fillStyle=n,m.fillRect(0,0,E,E),i){var I=void 0;h==="linear"?I=m.createLinearGradient(0,0,E,E):I=m.createRadialGradient(E/2,E/2,0,E/2,E/2,E/2),I.addColorStop(0,p),I.addColorStop(1,M),m.fillStyle=I}else m.fillStyle=s;pe?m.fill(new Path2D(j(g,w))):g.forEach(function(T,k){T.forEach(function(Q,V){Q&&m.fillRect(V+w,k+w,1,1)})}),b&&m.drawImage(P,y.x,y.y,y.width,y.height)}}};ne(f),Z(f);var v=c.attrs.style;return function(){return N(oe,[N("canvas",D(D({},c.attrs),{ref:u,style:D(D({},v),{width:"".concat(o.size,"px"),height:"".concat(o.size,"px")})})),o.imageSettings.src&&N("img",{ref:l,src:o.imageSettings.src,style:{display:"none"},onLoad:f})])}}}),Ge=G({name:"Qrcode",render:function(){var o=this.$props,c=o.renderAs,u=o.value,l=o.size,f=o.margin,v=o.level,a=o.background,e=o.foreground,t=o.imageSettings,r=o.gradient,n=o.gradientType,s=o.gradientStartColor,i=o.gradientEndColor;return N(c==="svg"?Ce:we,{value:u,size:l,margin:f,level:v,background:a,foreground:e,imageSettings:t,gradient:r,gradientType:n,gradientStartColor:s,gradientEndColor:i})},props:me});const $e=ie("fileData",()=>{const o=R(x.IDLE),c=R({loaded:0,total:0,percentage:0}),u=R(""),l=R(null),f=R(""),v=R(null),a=R(!1),e=R([]),t=R(0),r=R(1),n=R(10),s=R(!1),i=R([]),h=R([]),p=B(()=>o.value===x.UPLOADING),M=B(()=>o.value===x.SUCCESS),w=B(()=>o.value===x.ERROR),C=B(()=>v.value!==null),S=B(()=>C.value&&!a.value),m=B(()=>Math.ceil(t.value/n.value)),g=d=>{o.value=d},E=d=>{c.value=d},P=d=>{u.value=d},y=d=>{l.value=d},b=()=>{o.value=x.IDLE,c.value={loaded:0,total:0,percentage:0},u.value="",l.value=null},A=d=>{f.value=d},O=d=>{v.value=d},L=d=>{a.value=d},I=()=>{f.value="",v.value=null,a.value=!1},T=d=>{e.value=d},k=d=>{e.value.unshift(d),t.value+=1};return{uploadStatus:o,uploadProgress:c,uploadedCode:u,currentFile:l,downloadCode:f,fileInfo:v,isDownloading:a,fileList:e,totalFiles:t,currentPage:r,pageSize:n,isLoadingList:s,isUploading:p,isUploadSuccess:M,isUploadError:w,hasFileInfo:C,canDownload:S,totalPages:m,setUploadStatus:g,setUploadProgress:E,setUploadedCode:P,setCurrentFile:y,resetUpload:b,setDownloadCode:A,setFileInfo:O,setDownloading:L,resetDownload:I,setFileList:T,addFile:k,removeFile:d=>{const _=e.value.findIndex(z=>z.id===d);_>-1&&(e.value.splice(_,1),t.value-=1)},updateFile:(d,_)=>{const z=e.value.findIndex(ae=>ae.id===d);z>-1&&(e.value[z]={...e.value[z],..._})},setTotalFiles:d=>{t.value=d},setCurrentPage:d=>{r.value=d},setPageSize:d=>{n.value=d},setLoadingList:d=>{s.value=d},resetFileList:()=>{e.value=[],t.value=0,r.value=1,s.value=!1},addShareData:d=>{if(P(d.code),d.name){const _={id:d.code,name:d.name,size:0,type:"",uploadTime:new Date().toISOString(),downloadCount:0};k(_)}},receiveData:i,addReceiveData:d=>{i.value.push(d)},removeReceiveData:d=>{const _=i.value.findIndex(z=>z.id===d);_>-1&&i.value.splice(_,1)},deleteReceiveData:d=>{d>-1&&d{i.value=[]},shareData:h,addShareDataRecord:d=>{h.value.push(d)},deleteShareData:d=>{d>-1&&d{h.value=[]}}}),re=async(o,c={})=>{const{successMsg:u="复制成功",errorMsg:l="复制失败,请手动复制",showMsg:f=!0}=c,v=se();try{if(document.hasFocus()&&navigator.clipboard&&navigator.clipboard.writeText)return await navigator.clipboard.writeText(o),f&&v.showAlert(u,"success"),!0;const a=document.createElement("textarea");a.value=o,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select();const e=document.execCommand("copy");if(document.body.removeChild(a),e)return f&&v.showAlert(u,"success"),!0;throw new Error("execCommand copy failed")}catch(a){return console.error("复制失败:",a),f&&v.showAlert(l,"error"),!1}},Ye=async o=>{const c=`${window.location.origin}/#/?code=${o}`;return re(c,{successMsg:"取件链接已复制到剪贴板",errorMsg:"复制失败,请手动复制取件链接"})},Ke=async o=>re(o,{successMsg:"取件码已复制到剪贴板",errorMsg:"复制失败,请手动复制取件码"}),Ee=window.location.origin+"/",We=(o,c)=>{const u=`wget ${Ee}share/select?code=${o} -O "${c}"`;navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(u).then(()=>{console.log("命令已复制到剪贴板!")}).catch(l=>{console.error("复制失败,使用回退方法:",l),$(u)}):(console.warn("Clipboard API 不可用,使用回退方法。"),$(u))};function $(o){const c=document.createElement("textarea");c.value=o,c.style.position="fixed",document.body.appendChild(c),c.focus(),c.select();try{const u=document.execCommand("copy");console.log("回退复制操作成功:",u),document.hasFocus()&&navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(o):$(o)}catch(u){console.error("回退复制操作失败:",u)}document.body.removeChild(c)}const Me={class:"text-center"},Re={class:"flex justify-center mb-8"},Se={class:"rounded-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 p-1 animate-spin-slow"},ye={class:"rounded-full bg-gray-900 p-2"},Pe=G({__name:"PageHeader",props:{title:{}},emits:["title-click"],setup(o){const c=fe("isDarkMode");return(u,l)=>(ue(),le("div",Me,[H("div",Re,[H("div",Se,[H("div",ye,[ce(X(ge),{class:"w-8 h-8 text-white"})])])]),H("h2",{onClick:l[0]||(l[0]=f=>u.$emit("title-click")),class:de(["text-3xl cursor-pointer font-extrabold text-center mb-6",[X(c)?"text-transparent bg-clip-text bg-gradient-to-r from-indigo-300 via-purple-300 to-pink-300":"text-indigo-600"]])},he(u.title),3)]))}}),qe=ve(Pe,[["__scopeId","data-v-2a18d8c8"]]);export{xe as C,qe as P,Ge as Q,He as S,We as a,Ye as b,Ke as c,re as d,$e as u}; diff --git a/themes/2024/assets/RetrievewFileView-Bs4l0or-.css b/themes/2024/assets/RetrievewFileView-Bs4l0or-.css deleted file mode 100644 index 0f8bb5d..0000000 --- a/themes/2024/assets/RetrievewFileView-Bs4l0or-.css +++ /dev/null @@ -1 +0,0 @@ -.w-97-100[data-v-8f0be1b0]{width:calc(100% - 1rem)}.drawer-enter-active[data-v-9c6698ec],.drawer-leave-active[data-v-9c6698ec]{transition:transform .3s ease}.drawer-enter-from[data-v-9c6698ec],.drawer-leave-to[data-v-9c6698ec]{transform:translate(100%)}@media(min-width:640px){.sm\:w-120[data-v-9c6698ec]{width:30rem}}.fade-enter-active[data-v-5c3436d6],.fade-leave-active[data-v-5c3436d6]{transition:opacity .3s ease}.fade-enter-from[data-v-5c3436d6],.fade-leave-to[data-v-5c3436d6]{opacity:0}.list-enter-active[data-v-31facf40],.list-leave-active[data-v-31facf40]{transition:all .3s ease}.list-enter-from[data-v-31facf40],.list-leave-to[data-v-31facf40]{opacity:0;transform:translate(30px)}.list-move[data-v-31facf40]{transition:transform .3s ease}.fade-enter-active[data-v-eb3f9cc8],.fade-leave-active[data-v-eb3f9cc8]{transition:opacity .3s ease}.fade-enter-from[data-v-eb3f9cc8],.fade-leave-to[data-v-eb3f9cc8]{opacity:0}.custom-scrollbar[data-v-eb3f9cc8]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.3) rgba(243,244,246,.5)}.custom-scrollbar[data-v-eb3f9cc8]::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar[data-v-eb3f9cc8]::-webkit-scrollbar-track{background:#f3f4f680;border-radius:3px}.custom-scrollbar[data-v-eb3f9cc8]::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:3px;-webkit-transition:background-color .3s;transition:background-color .3s}.custom-scrollbar[data-v-eb3f9cc8]::-webkit-scrollbar-thumb:hover{background-color:#9ca3afb3}[data-v-eb3f9cc8] [class*=dark] .custom-scrollbar{scrollbar-color:rgba(75,85,99,.5) rgba(31,41,55,.5)}[data-v-eb3f9cc8] [class*=dark] .custom-scrollbar::-webkit-scrollbar-track{background:#1f293780}[data-v-eb3f9cc8] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb{background-color:#4b556380}[data-v-eb3f9cc8] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#4b5563b3}.custom-scrollbar[data-v-eb3f9cc8]{background:inherit}.break-words[data-v-eb3f9cc8]{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.overflow-wrap-anywhere[data-v-eb3f9cc8]{overflow-wrap:anywhere}[data-v-eb3f9cc8] .prose{text-align:left;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}[data-v-eb3f9cc8] .prose h1,[data-v-eb3f9cc8] .prose h2,[data-v-eb3f9cc8] .prose h3,[data-v-eb3f9cc8] .prose h4,[data-v-eb3f9cc8] .prose h5,[data-v-eb3f9cc8] .prose h6{color:#4f46e5;word-wrap:break-word;overflow-wrap:break-word}[data-v-eb3f9cc8] .prose p,[data-v-eb3f9cc8] .prose div,[data-v-eb3f9cc8] .prose span,[data-v-eb3f9cc8] .prose code,[data-v-eb3f9cc8] .prose pre{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}[data-v-eb3f9cc8] .prose pre{white-space:pre-wrap;overflow-x:auto}[data-v-eb3f9cc8] .prose code{white-space:pre-wrap}@media(prefers-color-scheme:dark){[data-v-eb3f9cc8] .prose h1,[data-v-eb3f9cc8] .prose h2,[data-v-eb3f9cc8] .prose h3,[data-v-eb3f9cc8] .prose h4,[data-v-eb3f9cc8] .prose h5,[data-v-eb3f9cc8] .prose h6{color:#818cf8}}@keyframes blob-a89ba9bf{0%,to{transform:translate(0) scale(1)}25%{transform:translate(20px,-50px) scale(1.1)}50%{transform:translate(-20px,20px) scale(.9)}75%{transform:translate(50px,50px) scale(1.05)}}.animate-spin-slow[data-v-a89ba9bf]{animation:spin-a89ba9bf 8s linear infinite}@keyframes spin-a89ba9bf{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.w-97-100[data-v-a89ba9bf]{width:97%}[data-v-a89ba9bf] .prose{text-align:left;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}[data-v-a89ba9bf] .prose h1,[data-v-a89ba9bf] .prose h2,[data-v-a89ba9bf] .prose h3,[data-v-a89ba9bf] .prose h4,[data-v-a89ba9bf] .prose h5,[data-v-a89ba9bf] .prose h6{color:#4f46e5;word-wrap:break-word;overflow-wrap:break-word}[data-v-a89ba9bf] .prose p,[data-v-a89ba9bf] .prose div,[data-v-a89ba9bf] .prose span,[data-v-a89ba9bf] .prose code,[data-v-a89ba9bf] .prose pre{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}[data-v-a89ba9bf] .prose pre{white-space:pre-wrap;overflow-x:auto}[data-v-a89ba9bf] .prose code{white-space:pre-wrap}@media(prefers-color-scheme:dark){[data-v-a89ba9bf] .prose h1,[data-v-a89ba9bf] .prose h2,[data-v-a89ba9bf] .prose h3,[data-v-a89ba9bf] .prose h4,[data-v-a89ba9bf] .prose h5,[data-v-a89ba9bf] .prose h6{color:#818cf8}}@media(min-width:640px){.sm\:w-120[data-v-a89ba9bf]{width:30rem}}.custom-scrollbar[data-v-a89ba9bf]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.3) rgba(243,244,246,.5)}.custom-scrollbar[data-v-a89ba9bf]::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar[data-v-a89ba9bf]::-webkit-scrollbar-track{background:#f3f4f680;border-radius:3px}.custom-scrollbar[data-v-a89ba9bf]::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:3px;-webkit-transition:background-color .3s;transition:background-color .3s}.custom-scrollbar[data-v-a89ba9bf]::-webkit-scrollbar-thumb:hover{background-color:#9ca3afb3}[data-v-a89ba9bf] [class*=dark] .custom-scrollbar{scrollbar-color:rgba(75,85,99,.5) rgba(31,41,55,.5)}[data-v-a89ba9bf] [class*=dark] .custom-scrollbar::-webkit-scrollbar-track{background:#1f293780}[data-v-a89ba9bf] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb{background-color:#4b556380}[data-v-a89ba9bf] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#4b5563b3}.custom-scrollbar[data-v-a89ba9bf]{background:inherit}.break-words[data-v-a89ba9bf]{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.overflow-wrap-anywhere[data-v-a89ba9bf]{overflow-wrap:anywhere} diff --git a/themes/2024/assets/RetrievewFileView-CWZH6U-r.js b/themes/2024/assets/RetrievewFileView-CWZH6U-r.js deleted file mode 100644 index 09bded9..0000000 --- a/themes/2024/assets/RetrievewFileView-CWZH6U-r.js +++ /dev/null @@ -1,61 +0,0 @@ -import{c as Pt,d as be,u as We,r as K,w as Dt,a as W,o as P,h as zt,b,n as T,e as d,i as xe,t as R,x as cr,j as ge,z as ur,l as L,_ as Re,G as pr,v as Le,E as me,k as Ut,T as Ft,K as hr,X as Nn,H as dr,y as fr,D as gr,p as mr,L as kr,f as br,M as xr,I as wr,J as yr}from"./index-B3zfsvgW.js";import{S as _r,C as Tr,Q as vr,u as Ar,P as Er,d as Sr}from"./PageHeader-Y9MICulD.js";import{F as Pn}from"./file-Ceuyr6iv.js";import{H as Rr}from"./hard-drive-5GIKYPKr.js";import{E as Lr,T as Cr}from"./trash-CdDjPTBr.js";import{C as Dr}from"./copy-DV195_ld.js";import"./box-COy3AQAQ.js";const Ir=Pt("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);const $r=Pt("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);const zn=Pt("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),Mr={class:"mb-6 relative"},Or={class:"relative"},Nr=["placeholder","readonly"],Pr={key:0,class:"absolute inset-y-0 right-0 flex items-center pr-3"},zr=["disabled"],Ur={class:"flex items-center justify-center relative z-10"},Fr=be({__name:"RetrieveForm",props:{inputStatus:{},error:{type:Boolean}},emits:["submit","update:code"],setup(r,{expose:e,emit:t}){const{t:s}=We(),n=t,l=xe("isDarkMode"),i=K(""),a=K(!1),u=K();return Dt(i,c=>{n("update:code",c)}),e({focus:()=>u.value?.focus()}),(c,h)=>(P(),W("form",{onSubmit:h[3]||(h[3]=zt(m=>c.$emit("submit"),["prevent"]))},[b("div",Mr,[b("label",{for:"code",class:T(["block text-sm font-medium mb-2",[d(l)?"text-gray-300":"text-gray-800"]])},R(d(s)("retrieve.codeInput.label")),3),b("div",Or,[cr(b("input",{id:"code","onUpdate:modelValue":h[0]||(h[0]=m=>i.value=m),type:"text",ref_key:"codeInput",ref:u,class:T(["w-full px-4 py-3 rounded-lg placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 transition duration-300 pr-10",[d(l)?"bg-gray-700 bg-opacity-50":"bg-gray-100",{"ring-2 ring-red-500":c.error},d(l)?"text-gray-300":"text-gray-800"]]),placeholder:d(s)("retrieve.codeInput.placeholder"),required:"",readonly:c.inputStatus.readonly,maxlength:"5",onFocus:h[1]||(h[1]=m=>a.value=!0),onBlur:h[2]||(h[2]=m=>a.value=!1)},null,42,Nr),[[ur,i.value]]),c.inputStatus.loading?(P(),W("div",Pr,[...h[4]||(h[4]=[b("span",{class:"animate-spin rounded-full h-5 w-5 border-b-2 border-indigo-500"},null,-1)])])):ge("",!0)]),b("div",{class:T(["absolute -bottom-0.5 left-2 h-0.5 bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 transition-all duration-300 ease-in-out",{"w-97-100":a.value,"w-0":!a.value}])},null,2)]),b("button",{type:"submit",class:"w-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 text-white font-bold py-3 px-4 rounded-lg hover:from-indigo-600 hover:via-purple-600 hover:to-pink-600 focus:outline-none focus:ring-2 focus:ring-purple-500 focus:ring-opacity-50 transition duration-300 transform hover:scale-105 hover:shadow-lg relative overflow-hidden group",disabled:c.inputStatus.loading},[b("span",Ur,[b("span",null,R(c.inputStatus.loading?d(s)("common.loading"):d(s)("retrieve.submit")),1),L(d(Ir),{class:"w-5 h-5 ml-2 transition-transform duration-300 transform group-hover:translate-x-1"})]),h[5]||(h[5]=b("span",{class:"absolute top-0 left-0 w-full h-full bg-gradient-to-r from-pink-500 via-purple-500 to-indigo-500 opacity-0 group-hover:opacity-100 transition-opacity duration-300"},null,-1))],8,zr)],32))}}),Br=Re(Fr,[["__scopeId","data-v-8f0be1b0"]]),Hr={key:0,class:"mb-6 text-center"},Gr=be({__name:"PageFooter",props:{linkText:{},linkTo:{},drawerText:{}},emits:["toggle-drawer"],setup(r){const{t:e}=We(),t=xe("isDarkMode");return(s,n)=>{const l=pr("router-link");return P(),W("div",null,[s.linkText&&s.linkTo?(P(),W("div",Hr,[L(l,{to:s.linkTo,class:"text-indigo-400 hover:text-indigo-300 transition duration-300"},{default:Le(()=>[me(R(s.linkText),1)]),_:1},8,["to"])])):ge("",!0),b("div",{class:T(["px-8 py-4 bg-opacity-50 flex justify-between items-center",[d(t)?"bg-gray-800":"bg-gray-100"]])},[b("span",{class:T(["text-sm flex items-center",[d(t)?"text-gray-300":"text-gray-800"]])},[L(d(_r),{class:"w-4 h-4 mr-1 text-green-400"}),me(" "+R(d(e)("send.secureEncryption")),1)],2),b("button",{onClick:n[0]||(n[0]=i=>s.$emit("toggle-drawer")),class:T(["text-sm hover:text-indigo-300 transition duration-300 flex items-center",[d(t)?"text-indigo-400":"text-indigo-600"]])},[me(R(s.drawerText)+" ",1),L(d(Tr),{class:"w-4 h-4 ml-1"})],2)],2)])}}}),Wr=be({__name:"SideDrawer",props:{visible:{type:Boolean},title:{}},emits:["close"],setup(r){const e=xe("isDarkMode");return(t,s)=>(P(),Ut(Ft,{name:"drawer"},{default:Le(()=>[t.visible?(P(),W("div",{key:0,class:T(["fixed inset-y-0 right-0 w-full sm:w-120 bg-opacity-70 backdrop-filter backdrop-blur-xl shadow-2xl z-50 overflow-hidden flex flex-col",[d(e)?"bg-gray-900":"bg-white"]])},[b("div",{class:T(["flex justify-between items-center p-6 border-b",[d(e)?"border-gray-700":"border-gray-200"]])},[b("h3",{class:T(["text-2xl font-bold",[d(e)?"text-white":"text-gray-800"]])},R(t.title),3),b("button",{onClick:s[0]||(s[0]=n=>t.$emit("close")),class:T(["hover:text-white transition duration-300",[d(e)?"text-gray-400":"text-gray-800"]])},[L(d(Nn),{class:"w-6 h-6"})],2)],2),hr(t.$slots,"default",{},void 0,!0)],2)):ge("",!0)]),_:3}))}}),qr=Re(Wr,[["__scopeId","data-v-9c6698ec"]]),jr={key:0,class:"space-y-4"},Zr={class:"flex items-center"},Xr={class:"font-medium"},Yr={class:"flex items-center"},Vr={class:"font-medium"},Qr={class:"flex items-center"},Kr={class:"font-medium"},Jr={class:"flex items-center"},es={class:"font-medium"},ts={key:0,class:"ml-2"},ns={key:1},rs=["href"],ss={key:1,class:"mt-6 flex flex-col items-center"},is={class:"bg-white p-2 rounded-lg shadow-md"},os=be({__name:"FileDetailModal",props:{visible:{type:Boolean},record:{}},emits:["close","preview-content"],setup(r){const{t:e}=We(),t=xe("isDarkMode"),s=window.location.origin,n=i=>i.downloadUrl?i.downloadUrl.startsWith("http")?i.downloadUrl:`${s}${i.downloadUrl}`:"",l=i=>i.downloadUrl?`${s}${i.downloadUrl}`:`${s}?code=${i.code}`;return(i,a)=>(P(),Ut(Ft,{name:"fade"},{default:Le(()=>[i.visible?(P(),W("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",onClick:a[2]||(a[2]=zt(u=>i.$emit("close"),["self"]))},[b("div",{class:T(["p-8 rounded-2xl max-w-md w-full mx-4 shadow-2xl transform transition-all duration-300 ease-out backdrop-filter backdrop-blur-lg overflow-hidden",[d(t)?"bg-gray-800 bg-opacity-70":"bg-white bg-opacity-95"]])},[b("h3",{class:T(["text-2xl font-bold mb-6 truncate",[d(t)?"text-white":"text-gray-800"]])},R(d(e)("fileDetail.title")),3),i.record?(P(),W("div",jr,[b("div",Zr,[L(d(Pn),{class:T(["w-6 h-6 mr-3 flex-shrink-0",[d(t)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"]),b("p",{class:T([[d(t)?"text-gray-300":"text-gray-800"],"truncate flex-grow"])},[b("span",Xr,R(d(e)("fileRecord.filename"))+":",1),me(R(i.record.filename),1)],2)]),b("div",Yr,[L(d($r),{class:T(["w-6 h-6 mr-3 flex-shrink-0",[d(t)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"]),b("p",{class:T([[d(t)?"text-gray-300":"text-gray-800"],"truncate flex-grow"])},[b("span",Vr,R(d(e)("fileRecord.date"))+":",1),me(R(i.record.date),1)],2)]),b("div",Qr,[L(d(Rr),{class:T(["w-6 h-6 mr-3 flex-shrink-0",[d(t)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"]),b("p",{class:T([[d(t)?"text-gray-300":"text-gray-800"],"truncate flex-grow"])},[b("span",Kr,R(d(e)("fileRecord.size"))+":",1),me(R(i.record.size),1)],2)]),b("div",Jr,[L(d(zn),{class:T(["w-6 h-6 mr-3",[d(t)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"]),b("p",{class:T([d(t)?"text-gray-300":"text-gray-800"])},[b("span",es,R(d(e)("fileDetail.content"))+":",1)],2),i.record.filename==="Text"?(P(),W("div",ts,[b("button",{onClick:a[0]||(a[0]=u=>i.$emit("preview-content")),class:"px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 transition duration-300"},R(d(e)("fileDetail.previewContent")),1)])):(P(),W("div",ns,[b("a",{href:n(i.record),target:"_blank",rel:"noopener noreferrer",class:"px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 transition duration-300"},R(d(e)("fileDetail.download")),9,rs)]))])])):ge("",!0),i.record?(P(),W("div",ss,[b("h4",{class:T(["text-lg font-semibold mb-3",[d(t)?"text-white":"text-gray-800"]])},R(d(e)("fileDetail.qrCode")),3),b("div",is,[L(vr,{value:l(i.record),size:128,level:"M"},null,8,["value"])]),b("p",{class:T(["mt-2 text-sm",[d(t)?"text-gray-400":"text-gray-600"]])},R(d(e)("fileDetail.scanQrCode")),3)])):ge("",!0),b("button",{onClick:a[1]||(a[1]=u=>i.$emit("close")),class:"mt-8 w-full bg-gradient-to-r from-indigo-500 to-purple-600 text-white px-6 py-3 rounded-lg font-medium hover:from-indigo-600 hover:to-purple-700 focus:outline-none focus:ring-2 focus:ring-purple-500 focus:ring-opacity-50 transition duration-300 transform hover:scale-105"},R(d(e)("common.close")),1)],2)])):ge("",!0)]),_:1}))}}),ls=Re(os,[["__scopeId","data-v-5c3436d6"]]),as={class:"flex-grow overflow-y-auto p-6"},cs={class:"flex-shrink-0 mr-4"},us={class:"flex-grow min-w-0 mr-4"},ps={class:"flex-shrink-0 flex space-x-2"},hs=["onClick"],ds=["onClick"],fs=["onClick"],gs=be({__name:"FileRecordList",props:{records:{}},emits:["view-details","download-record","delete-record"],setup(r){const e=xe("isDarkMode");return(t,s)=>(P(),W("div",as,[L(dr,{name:"list",tag:"div",class:"space-y-4"},{default:Le(()=>[(P(!0),W(fr,null,gr(t.records,n=>(P(),W("div",{key:n.id,class:T(["bg-opacity-50 rounded-lg p-4 flex items-center shadow-md hover:shadow-lg transition duration-300 transform hover:scale-102",[d(e)?"bg-gray-800 hover:bg-gray-700":"bg-gray-100 hover:bg-white"]])},[b("div",cs,[L(d(Pn),{class:T(["w-10 h-10",[d(e)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])]),b("div",us,[b("p",{class:T(["font-medium text-lg truncate",[d(e)?"text-white":"text-gray-800"]])},R(n.filename),3),b("p",{class:T(["text-sm truncate",[d(e)?"text-gray-400":"text-gray-600"]])},R(n.date)+" · "+R(n.size),3)]),b("div",ps,[b("button",{onClick:l=>t.$emit("view-details",n),class:T(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[d(e)?"hover:bg-indigo-400 text-indigo-400":"hover:bg-indigo-100 text-indigo-600"]])},[L(d(Lr),{class:"w-5 h-5"})],10,hs),b("button",{onClick:l=>t.$emit("download-record",n),class:T(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[d(e)?"hover:bg-green-400 text-green-400":"hover:bg-green-100 text-green-600"]])},[L(d(zn),{class:"w-5 h-5"})],10,ds),b("button",{onClick:l=>t.$emit("delete-record",n.id),class:T(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[d(e)?"hover:bg-red-400 text-red-400":"hover:bg-red-100 text-red-600"]])},[L(d(Cr),{class:"w-5 h-5"})],10,fs)])],2))),128))]),_:1})]))}}),ms=Re(gs,[["__scopeId","data-v-31facf40"]]),ks={class:"flex justify-between items-center mb-4 flex-shrink-0"},bs={class:"flex items-center gap-3"},xs={class:"flex-1 overflow-y-auto custom-scrollbar"},ws=["innerHTML"],ys=be({__name:"ContentPreviewModal",props:{visible:{type:Boolean},renderedContent:{}},emits:["close","copy-content"],setup(r){const{t:e}=We(),t=xe("isDarkMode");return(s,n)=>(P(),Ut(Ft,{name:"fade"},{default:Le(()=>[s.visible?(P(),W("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",onClick:n[2]||(n[2]=zt(l=>s.$emit("close"),["self"]))},[b("div",{class:T(["p-6 rounded-2xl max-w-3xl w-full mx-4 shadow-2xl transform transition-all duration-300 ease-out backdrop-filter backdrop-blur-lg bg-opacity-70 max-h-[85vh] overflow-hidden flex flex-col",[d(t)?"bg-gray-800":"bg-white"]])},[b("div",ks,[b("h3",{class:T(["text-2xl font-bold",[d(t)?"text-white":"text-gray-800"]])},R(d(e)("contentPreview.title")),3),b("div",bs,[b("button",{onClick:n[0]||(n[0]=l=>s.$emit("copy-content")),class:T(["px-4 py-1.5 rounded-lg transition duration-300 flex items-center gap-2 text-sm font-medium",[d(t)?"bg-gray-700 hover:bg-gray-600 text-gray-300 hover:text-white":"bg-gray-100 hover:bg-gray-200 text-gray-700 hover:text-gray-900"]])},[L(d(Dr),{class:"w-4 h-4"}),me(" "+R(d(e)("common.copy")),1)],2),b("button",{onClick:n[1]||(n[1]=l=>s.$emit("close")),class:T(["p-1.5 rounded-lg transition duration-300 hover:bg-opacity-10",[d(t)?"text-gray-400 hover:text-white hover:bg-white":"text-gray-500 hover:text-gray-900 hover:bg-black"]])},[L(d(Nn),{class:"w-5 h-5"})],2)])]),b("div",xs,[b("div",{class:T(["prose max-w-none p-6 rounded-xl break-words overflow-wrap-anywhere",[d(t)?"prose-invert bg-gray-900 bg-opacity-50":"bg-gray-50"]]),innerHTML:s.renderedContent},null,10,ws)])],2)])):ge("",!0)]),_:1}))}}),_s=Re(ys,[["__scopeId","data-v-eb3f9cc8"]]);var Je=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},rt={exports:{}},Ts=rt.exports,yn;function vs(){return yn||(yn=1,(function(r,e){(function(t,s){s()})(Ts,function(){function t(c,h){return typeof h>"u"?h={autoBom:!1}:typeof h!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),h={autoBom:!h}),h.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(c.type)?new Blob(["\uFEFF",c],{type:c.type}):c}function s(c,h,m){var f=new XMLHttpRequest;f.open("GET",c),f.responseType="blob",f.onload=function(){u(f.response,h,m)},f.onerror=function(){console.error("could not download file")},f.send()}function n(c){var h=new XMLHttpRequest;h.open("HEAD",c,!1);try{h.send()}catch{}return 200<=h.status&&299>=h.status}function l(c){try{c.dispatchEvent(new MouseEvent("click"))}catch{var h=document.createEvent("MouseEvents");h.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),c.dispatchEvent(h)}}var i=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof Je=="object"&&Je.global===Je?Je:void 0,a=i.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),u=i.saveAs||(typeof window!="object"||window!==i?function(){}:"download"in HTMLAnchorElement.prototype&&!a?function(c,h,m){var f=i.URL||i.webkitURL,y=document.createElement("a");h=h||c.name||"download",y.download=h,y.rel="noopener",typeof c=="string"?(y.href=c,y.origin===location.origin?l(y):n(y.href)?s(c,h,m):l(y,y.target="_blank")):(y.href=f.createObjectURL(c),setTimeout(function(){f.revokeObjectURL(y.href)},4e4),setTimeout(function(){l(y)},0))}:"msSaveOrOpenBlob"in navigator?function(c,h,m){if(h=h||c.name||"download",typeof c!="string")navigator.msSaveOrOpenBlob(t(c,m),h);else if(n(c))s(c,h,m);else{var f=document.createElement("a");f.href=c,f.target="_blank",setTimeout(function(){l(f)})}}:function(c,h,m,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof c=="string")return s(c,h,m);var y=c.type==="application/octet-stream",v=/constructor/i.test(i.HTMLElement)||i.safari,$=/CriOS\/[\d]+/.test(navigator.userAgent);if(($||y&&v||a)&&typeof FileReader<"u"){var V=new FileReader;V.onloadend=function(){var U=V.result;U=$?U:U.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=U:location=U,f=null},V.readAsDataURL(c)}else{var J=i.URL||i.webkitURL,ee=J.createObjectURL(c);f?f.location=ee:location.href=ee,f=null,setTimeout(function(){J.revokeObjectURL(ee)},4e4)}});i.saveAs=u.saveAs=u,r.exports=u})})(rt)),rt.exports}var As=vs();function Bt(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var we=Bt();function Un(r){we=r}var Ge={exec:()=>null};function A(r,e=""){let t=typeof r=="string"?r:r.source,s={replace:(n,l)=>{let i=typeof l=="string"?l:l.source;return i=i.replace(q.caret,"$1"),t=t.replace(n,i),s},getRegex:()=>new RegExp(t,e)};return s}var q={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:r=>new RegExp(`^( {0,3}${r})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}#`),htmlBeginRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}<(?:[a-z].*>|!--)`,"i")},Es=/^(?:[ \t]*(?:\n|$))+/,Ss=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Rs=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,qe=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Ls=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ht=/(?:[*+-]|\d{1,9}[.)])/,Fn=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Bn=A(Fn).replace(/bull/g,Ht).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Cs=A(Fn).replace(/bull/g,Ht).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Gt=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Ds=/^[^\n]+/,Wt=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Is=A(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Wt).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),$s=A(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Ht).getRegex(),ct="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",qt=/|$))/,Ms=A("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",qt).replace("tag",ct).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Hn=A(Gt).replace("hr",qe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ct).getRegex(),Os=A(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Hn).getRegex(),jt={blockquote:Os,code:Ss,def:Is,fences:Rs,heading:Ls,hr:qe,html:Ms,lheading:Bn,list:$s,newline:Es,paragraph:Hn,table:Ge,text:Ds},_n=A("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",qe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ct).getRegex(),Ns={...jt,lheading:Cs,table:_n,paragraph:A(Gt).replace("hr",qe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",_n).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ct).getRegex()},Ps={...jt,html:A(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",qt).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Ge,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:A(Gt).replace("hr",qe).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",Bn).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},zs=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Us=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Gn=/^( {2,}|\\)\n(?!\s*$)/,Fs=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,jn=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,qs=A(jn,"u").replace(/punct/g,ut).getRegex(),js=A(jn,"u").replace(/punct/g,qn).getRegex(),Zn="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Zs=A(Zn,"gu").replace(/notPunctSpace/g,Wn).replace(/punctSpace/g,Zt).replace(/punct/g,ut).getRegex(),Xs=A(Zn,"gu").replace(/notPunctSpace/g,Gs).replace(/punctSpace/g,Hs).replace(/punct/g,qn).getRegex(),Ys=A("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Wn).replace(/punctSpace/g,Zt).replace(/punct/g,ut).getRegex(),Vs=A(/\\(punct)/,"gu").replace(/punct/g,ut).getRegex(),Qs=A(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Ks=A(qt).replace("(?:-->|$)","-->").getRegex(),Js=A("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",Ks).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),ot=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`[^`]*`|[^\[\]\\`])*?/,ei=A(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",ot).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Xn=A(/^!?\[(label)\]\[(ref)\]/).replace("label",ot).replace("ref",Wt).getRegex(),Yn=A(/^!?\[(ref)\](?:\[\])?/).replace("ref",Wt).getRegex(),ti=A("reflink|nolink(?!\\()","g").replace("reflink",Xn).replace("nolink",Yn).getRegex(),Xt={_backpedal:Ge,anyPunctuation:Vs,autolink:Qs,blockSkip:Ws,br:Gn,code:Us,del:Ge,emStrongLDelim:qs,emStrongRDelimAst:Zs,emStrongRDelimUnd:Ys,escape:zs,link:ei,nolink:Yn,punctuation:Bs,reflink:Xn,reflinkSearch:ti,tag:Js,text:Fs,url:Ge},ni={...Xt,link:A(/^!?\[(label)\]\((.*?)\)/).replace("label",ot).getRegex(),reflink:A(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ot).getRegex()},It={...Xt,emStrongRDelimAst:Xs,emStrongLDelim:js,url:A(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},Tn=r=>si[r];function re(r,e){if(e){if(q.escapeTest.test(r))return r.replace(q.escapeReplace,Tn)}else if(q.escapeTestNoEncode.test(r))return r.replace(q.escapeReplaceNoEncode,Tn);return r}function vn(r){try{r=encodeURI(r).replace(q.percentDecode,"%")}catch{return null}return r}function An(r,e){let t=r.replace(q.findPipe,(l,i,a)=>{let u=!1,c=i;for(;--c>=0&&a[c]==="\\";)u=!u;return u?"|":" |"}),s=t.split(q.splitPipe),n=0;if(s[0].trim()||s.shift(),s.length>0&&!s.at(-1)?.trim()&&s.pop(),e)if(s.length>e)s.splice(e);else for(;s.length0?-2:-1}function En(r,e,t,s,n){let l=e.href,i=e.title||null,a=r[1].replace(n.other.outputLinkReplace,"$1");s.state.inLink=!0;let u={type:r[0].charAt(0)==="!"?"image":"link",raw:t,href:l,title:i,text:a,tokens:s.inlineTokens(a)};return s.state.inLink=!1,u}function oi(r,e,t){let s=r.match(t.other.indentCodeCompensation);if(s===null)return e;let n=s[1];return e.split(` -`).map(l=>{let i=l.match(t.other.beginningSpace);if(i===null)return l;let[a]=i;return a.length>=n.length?l.slice(n.length):l}).join(` -`)}var lt=class{options;rules;lexer;constructor(r){this.options=r||we}space(r){let e=this.rules.block.newline.exec(r);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(r){let e=this.rules.block.code.exec(r);if(e){let t=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?t:Pe(t,` -`)}}}fences(r){let e=this.rules.block.fences.exec(r);if(e){let t=e[0],s=oi(t,e[3]||"",this.rules);return{type:"code",raw:t,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:s}}}heading(r){let e=this.rules.block.heading.exec(r);if(e){let t=e[2].trim();if(this.rules.other.endingHash.test(t)){let s=Pe(t,"#");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(t=s.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:t,tokens:this.lexer.inline(t)}}}hr(r){let e=this.rules.block.hr.exec(r);if(e)return{type:"hr",raw:Pe(e[0],` -`)}}blockquote(r){let e=this.rules.block.blockquote.exec(r);if(e){let t=Pe(e[0],` -`).split(` -`),s="",n="",l=[];for(;t.length>0;){let i=!1,a=[],u;for(u=0;u1,n={type:"list",raw:"",ordered:s,start:s?+t.slice(0,-1):"",loose:!1,items:[]};t=s?`\\d{1,9}\\${t.slice(-1)}`:`\\${t}`,this.options.pedantic&&(t=s?t:"[*+-]");let l=this.rules.other.listItemRegex(t),i=!1;for(;r;){let u=!1,c="",h="";if(!(e=l.exec(r))||this.rules.block.hr.test(r))break;c=e[0],r=r.substring(c.length);let m=e[2].split(` -`,1)[0].replace(this.rules.other.listReplaceTabs,J=>" ".repeat(3*J.length)),f=r.split(` -`,1)[0],y=!m.trim(),v=0;if(this.options.pedantic?(v=2,h=m.trimStart()):y?v=e[1].length+1:(v=e[2].search(this.rules.other.nonSpaceChar),v=v>4?1:v,h=m.slice(v),v+=e[1].length),y&&this.rules.other.blankLine.test(f)&&(c+=f+` -`,r=r.substring(f.length+1),u=!0),!u){let J=this.rules.other.nextBulletRegex(v),ee=this.rules.other.hrRegex(v),U=this.rules.other.fencesBeginRegex(v),D=this.rules.other.headingBeginRegex(v),se=this.rules.other.htmlBeginRegex(v);for(;r;){let ie=r.split(` -`,1)[0],te;if(f=ie,this.options.pedantic?(f=f.replace(this.rules.other.listReplaceNesting," "),te=f):te=f.replace(this.rules.other.tabCharGlobal," "),U.test(f)||D.test(f)||se.test(f)||J.test(f)||ee.test(f))break;if(te.search(this.rules.other.nonSpaceChar)>=v||!f.trim())h+=` -`+te.slice(v);else{if(y||m.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||U.test(m)||D.test(m)||ee.test(m))break;h+=` -`+f}!y&&!f.trim()&&(y=!0),c+=ie+` -`,r=r.substring(ie.length+1),m=te.slice(v)}}n.loose||(i?n.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(i=!0));let $=null,V;this.options.gfm&&($=this.rules.other.listIsTask.exec(h),$&&(V=$[0]!=="[ ] ",h=h.replace(this.rules.other.listReplaceTask,""))),n.items.push({type:"list_item",raw:c,task:!!$,checked:V,loose:!1,text:h,tokens:[]}),n.raw+=c}let a=n.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;n.raw=n.raw.trimEnd();for(let u=0;um.type==="space"),h=c.length>0&&c.some(m=>this.rules.other.anyLine.test(m.raw));n.loose=h}if(n.loose)for(let u=0;u({text:a,tokens:this.lexer.inline(a),header:!1,align:l.align[u]})));return l}}lheading(r){let e=this.rules.block.lheading.exec(r);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(r){let e=this.rules.block.paragraph.exec(r);if(e){let t=e[1].charAt(e[1].length-1)===` -`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:t,tokens:this.lexer.inline(t)}}}text(r){let e=this.rules.block.text.exec(r);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(r){let e=this.rules.inline.escape.exec(r);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(r){let e=this.rules.inline.tag.exec(r);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(r){let e=this.rules.inline.link.exec(r);if(e){let t=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(t)){if(!this.rules.other.endAngleBracket.test(t))return;let l=Pe(t.slice(0,-1),"\\");if((t.length-l.length)%2===0)return}else{let l=ii(e[2],"()");if(l===-2)return;if(l>-1){let i=(e[0].indexOf("!")===0?5:4)+e[1].length+l;e[2]=e[2].substring(0,l),e[0]=e[0].substring(0,i).trim(),e[3]=""}}let s=e[2],n="";if(this.options.pedantic){let l=this.rules.other.pedanticHrefTitle.exec(s);l&&(s=l[1],n=l[3])}else n=e[3]?e[3].slice(1,-1):"";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(t)?s=s.slice(1):s=s.slice(1,-1)),En(e,{href:s&&s.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(r,e){let t;if((t=this.rules.inline.reflink.exec(r))||(t=this.rules.inline.nolink.exec(r))){let s=(t[2]||t[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=e[s.toLowerCase()];if(!n){let l=t[0].charAt(0);return{type:"text",raw:l,text:l}}return En(t,n,t[0],this.lexer,this.rules)}}emStrong(r,e,t=""){let s=this.rules.inline.emStrongLDelim.exec(r);if(!(!s||s[3]&&t.match(this.rules.other.unicodeAlphaNumeric))&&(!(s[1]||s[2])||!t||this.rules.inline.punctuation.exec(t))){let n=[...s[0]].length-1,l,i,a=n,u=0,c=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,e=e.slice(-1*r.length+n);(s=c.exec(e))!=null;){if(l=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!l)continue;if(i=[...l].length,s[3]||s[4]){a+=i;continue}else if((s[5]||s[6])&&n%3&&!((n+i)%3)){u+=i;continue}if(a-=i,a>0)continue;i=Math.min(i,i+a+u);let h=[...s[0]][0].length,m=r.slice(0,n+s.index+h+i);if(Math.min(n,i)%2){let y=m.slice(1,-1);return{type:"em",raw:m,text:y,tokens:this.lexer.inlineTokens(y)}}let f=m.slice(2,-2);return{type:"strong",raw:m,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(r){let e=this.rules.inline.code.exec(r);if(e){let t=e[2].replace(this.rules.other.newLineCharGlobal," "),s=this.rules.other.nonSpaceChar.test(t),n=this.rules.other.startingSpaceChar.test(t)&&this.rules.other.endingSpaceChar.test(t);return s&&n&&(t=t.substring(1,t.length-1)),{type:"codespan",raw:e[0],text:t}}}br(r){let e=this.rules.inline.br.exec(r);if(e)return{type:"br",raw:e[0]}}del(r){let e=this.rules.inline.del.exec(r);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(r){let e=this.rules.inline.autolink.exec(r);if(e){let t,s;return e[2]==="@"?(t=e[1],s="mailto:"+t):(t=e[1],s=t),{type:"link",raw:e[0],text:t,href:s,tokens:[{type:"text",raw:t,text:t}]}}}url(r){let e;if(e=this.rules.inline.url.exec(r)){let t,s;if(e[2]==="@")t=e[0],s="mailto:"+t;else{let n;do n=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(n!==e[0]);t=e[0],e[1]==="www."?s="http://"+e[0]:s=e[0]}return{type:"link",raw:e[0],text:t,href:s,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(r){let e=this.rules.inline.text.exec(r);if(e){let t=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:t}}}},pe=class $t{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||we,this.options.tokenizer=this.options.tokenizer||new lt,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:q,block:et.normal,inline:Ne.normal};this.options.pedantic?(t.block=et.pedantic,t.inline=Ne.pedantic):this.options.gfm&&(t.block=et.gfm,this.options.breaks?t.inline=Ne.breaks:t.inline=Ne.gfm),this.tokenizer.rules=t}static get rules(){return{block:et,inline:Ne}}static lex(e,t){return new $t(t).lex(e)}static lexInline(e,t){return new $t(t).inlineTokens(e)}lex(e){e=e.replace(q.carriageReturn,` -`),this.blockTokens(e,this.tokens);for(let t=0;t(n=i.call({lexer:this},e,t))?(e=e.substring(n.raw.length),t.push(n),!0):!1))continue;if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length);let i=t.at(-1);n.raw.length===1&&i!==void 0?i.raw+=` -`:t.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length);let i=t.at(-1);i?.type==="paragraph"||i?.type==="text"?(i.raw+=(i.raw.endsWith(` -`)?"":` -`)+n.raw,i.text+=` -`+n.text,this.inlineQueue.at(-1).src=i.text):t.push(n);continue}if(n=this.tokenizer.fences(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.heading(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.hr(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.blockquote(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.list(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.html(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.def(e)){e=e.substring(n.raw.length);let i=t.at(-1);i?.type==="paragraph"||i?.type==="text"?(i.raw+=(i.raw.endsWith(` -`)?"":` -`)+n.raw,i.text+=` -`+n.raw,this.inlineQueue.at(-1).src=i.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title},t.push(n));continue}if(n=this.tokenizer.table(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.lheading(e)){e=e.substring(n.raw.length),t.push(n);continue}let l=e;if(this.options.extensions?.startBlock){let i=1/0,a=e.slice(1),u;this.options.extensions.startBlock.forEach(c=>{u=c.call({lexer:this},a),typeof u=="number"&&u>=0&&(i=Math.min(i,u))}),i<1/0&&i>=0&&(l=e.substring(0,i+1))}if(this.state.top&&(n=this.tokenizer.paragraph(l))){let i=t.at(-1);s&&i?.type==="paragraph"?(i.raw+=(i.raw.endsWith(` -`)?"":` -`)+n.raw,i.text+=` -`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):t.push(n),s=l.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length);let i=t.at(-1);i?.type==="text"?(i.raw+=(i.raw.endsWith(` -`)?"":` -`)+n.raw,i.text+=` -`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):t.push(n);continue}if(e){let i="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(i);break}else throw new Error(i)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let s=e,n=null;if(this.tokens.links){let a=Object.keys(this.tokens.links);if(a.length>0)for(;(n=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)a.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(n=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,n.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(n=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let l=!1,i="";for(;e;){l||(i=""),l=!1;let a;if(this.options.extensions?.inline?.some(c=>(a=c.call({lexer:this},e,t))?(e=e.substring(a.raw.length),t.push(a),!0):!1))continue;if(a=this.tokenizer.escape(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.tag(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.link(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(a.raw.length);let c=t.at(-1);a.type==="text"&&c?.type==="text"?(c.raw+=a.raw,c.text+=a.text):t.push(a);continue}if(a=this.tokenizer.emStrong(e,s,i)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.codespan(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.br(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.del(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.autolink(e)){e=e.substring(a.raw.length),t.push(a);continue}if(!this.state.inLink&&(a=this.tokenizer.url(e))){e=e.substring(a.raw.length),t.push(a);continue}let u=e;if(this.options.extensions?.startInline){let c=1/0,h=e.slice(1),m;this.options.extensions.startInline.forEach(f=>{m=f.call({lexer:this},h),typeof m=="number"&&m>=0&&(c=Math.min(c,m))}),c<1/0&&c>=0&&(u=e.substring(0,c+1))}if(a=this.tokenizer.inlineText(u)){e=e.substring(a.raw.length),a.raw.slice(-1)!=="_"&&(i=a.raw.slice(-1)),l=!0;let c=t.at(-1);c?.type==="text"?(c.raw+=a.raw,c.text+=a.text):t.push(a);continue}if(e){let c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return t}},at=class{options;parser;constructor(r){this.options=r||we}space(r){return""}code({text:r,lang:e,escaped:t}){let s=(e||"").match(q.notSpaceStart)?.[0],n=r.replace(q.endingNewline,"")+` -`;return s?'
'+(t?n:re(n,!0))+`
-`:"
"+(t?n:re(n,!0))+`
-`}blockquote({tokens:r}){return`
-${this.parser.parse(r)}
-`}html({text:r}){return r}def(r){return""}heading({tokens:r,depth:e}){return`${this.parser.parseInline(r)} -`}hr(r){return`
-`}list(r){let e=r.ordered,t=r.start,s="";for(let i=0;i -`+s+" -`}listitem(r){let e="";if(r.task){let t=this.checkbox({checked:!!r.checked});r.loose?r.tokens[0]?.type==="paragraph"?(r.tokens[0].text=t+" "+r.tokens[0].text,r.tokens[0].tokens&&r.tokens[0].tokens.length>0&&r.tokens[0].tokens[0].type==="text"&&(r.tokens[0].tokens[0].text=t+" "+re(r.tokens[0].tokens[0].text),r.tokens[0].tokens[0].escaped=!0)):r.tokens.unshift({type:"text",raw:t+" ",text:t+" ",escaped:!0}):e+=t+" "}return e+=this.parser.parse(r.tokens,!!r.loose),`
  • ${e}
  • -`}checkbox({checked:r}){return"'}paragraph({tokens:r}){return`

    ${this.parser.parseInline(r)}

    -`}table(r){let e="",t="";for(let n=0;n${s}`),` - -`+e+` -`+s+`
    -`}tablerow({text:r}){return` -${r} -`}tablecell(r){let e=this.parser.parseInline(r.tokens),t=r.header?"th":"td";return(r.align?`<${t} align="${r.align}">`:`<${t}>`)+e+` -`}strong({tokens:r}){return`${this.parser.parseInline(r)}`}em({tokens:r}){return`${this.parser.parseInline(r)}`}codespan({text:r}){return`${re(r,!0)}`}br(r){return"
    "}del({tokens:r}){return`${this.parser.parseInline(r)}`}link({href:r,title:e,tokens:t}){let s=this.parser.parseInline(t),n=vn(r);if(n===null)return s;r=n;let l='
    ",l}image({href:r,title:e,text:t,tokens:s}){s&&(t=this.parser.parseInline(s,this.parser.textRenderer));let n=vn(r);if(n===null)return re(t);r=n;let l=`${t}{let i=n[l].flat(1/0);t=t.concat(this.walkTokens(i,e))}):n.tokens&&(t=t.concat(this.walkTokens(n.tokens,e)))}}return t}use(...r){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return r.forEach(t=>{let s={...t};if(s.async=this.defaults.async||s.async||!1,t.extensions&&(t.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let l=e.renderers[n.name];l?e.renderers[n.name]=function(...i){let a=n.renderer.apply(this,i);return a===!1&&(a=l.apply(this,i)),a}:e.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let l=e[n.level];l?l.unshift(n.tokenizer):e[n.level]=[n.tokenizer],n.start&&(n.level==="block"?e.startBlock?e.startBlock.push(n.start):e.startBlock=[n.start]:n.level==="inline"&&(e.startInline?e.startInline.push(n.start):e.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(e.childTokens[n.name]=n.childTokens)}),s.extensions=e),t.renderer){let n=this.defaults.renderer||new at(this.defaults);for(let l in t.renderer){if(!(l in n))throw new Error(`renderer '${l}' does not exist`);if(["options","parser"].includes(l))continue;let i=l,a=t.renderer[i],u=n[i];n[i]=(...c)=>{let h=a.apply(n,c);return h===!1&&(h=u.apply(n,c)),h||""}}s.renderer=n}if(t.tokenizer){let n=this.defaults.tokenizer||new lt(this.defaults);for(let l in t.tokenizer){if(!(l in n))throw new Error(`tokenizer '${l}' does not exist`);if(["options","rules","lexer"].includes(l))continue;let i=l,a=t.tokenizer[i],u=n[i];n[i]=(...c)=>{let h=a.apply(n,c);return h===!1&&(h=u.apply(n,c)),h}}s.tokenizer=n}if(t.hooks){let n=this.defaults.hooks||new st;for(let l in t.hooks){if(!(l in n))throw new Error(`hook '${l}' does not exist`);if(["options","block"].includes(l))continue;let i=l,a=t.hooks[i],u=n[i];st.passThroughHooks.has(l)?n[i]=c=>{if(this.defaults.async)return Promise.resolve(a.call(n,c)).then(m=>u.call(n,m));let h=a.call(n,c);return u.call(n,h)}:n[i]=(...c)=>{let h=a.apply(n,c);return h===!1&&(h=u.apply(n,c)),h}}s.hooks=n}if(t.walkTokens){let n=this.defaults.walkTokens,l=t.walkTokens;s.walkTokens=function(i){let a=[];return a.push(l.call(this,i)),n&&(a=a.concat(n.call(this,i))),a}}this.defaults={...this.defaults,...s}}),this}setOptions(r){return this.defaults={...this.defaults,...r},this}lexer(r,e){return pe.lex(r,e??this.defaults)}parser(r,e){return he.parse(r,e??this.defaults)}parseMarkdown(r){return(e,t)=>{let s={...t},n={...this.defaults,...s},l=this.onError(!!n.silent,!!n.async);if(this.defaults.async===!0&&s.async===!1)return l(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));n.hooks&&(n.hooks.options=n,n.hooks.block=r);let i=n.hooks?n.hooks.provideLexer():r?pe.lex:pe.lexInline,a=n.hooks?n.hooks.provideParser():r?he.parse:he.parseInline;if(n.async)return Promise.resolve(n.hooks?n.hooks.preprocess(e):e).then(u=>i(u,n)).then(u=>n.hooks?n.hooks.processAllTokens(u):u).then(u=>n.walkTokens?Promise.all(this.walkTokens(u,n.walkTokens)).then(()=>u):u).then(u=>a(u,n)).then(u=>n.hooks?n.hooks.postprocess(u):u).catch(l);try{n.hooks&&(e=n.hooks.preprocess(e));let u=i(e,n);n.hooks&&(u=n.hooks.processAllTokens(u)),n.walkTokens&&this.walkTokens(u,n.walkTokens);let c=a(u,n);return n.hooks&&(c=n.hooks.postprocess(c)),c}catch(u){return l(u)}}}onError(r,e){return t=>{if(t.message+=` -Please report this to https://github.com/markedjs/marked.`,r){let s="

    An error occurred:

    "+re(t.message+"",!0)+"
    ";return e?Promise.resolve(s):s}if(e)return Promise.reject(t);throw t}}},ke=new li;function E(r,e){return ke.parse(r,e)}E.options=E.setOptions=function(r){return ke.setOptions(r),E.defaults=ke.defaults,Un(E.defaults),E};E.getDefaults=Bt;E.defaults=we;E.use=function(...r){return ke.use(...r),E.defaults=ke.defaults,Un(E.defaults),E};E.walkTokens=function(r,e){return ke.walkTokens(r,e)};E.parseInline=ke.parseInline;E.Parser=he;E.parser=he.parse;E.Renderer=at;E.TextRenderer=Yt;E.Lexer=pe;E.lexer=pe.lex;E.Tokenizer=lt;E.Hooks=st;E.parse=E;E.options;E.setOptions;E.use;E.walkTokens;E.parseInline;he.parse;pe.lex;const{entries:Vn,setPrototypeOf:Sn,isFrozen:ai,getPrototypeOf:ci,getOwnPropertyDescriptor:ui}=Object;let{freeze:j,seal:Y,create:Qn}=Object,{apply:Ot,construct:Nt}=typeof Reflect<"u"&&Reflect;j||(j=function(e){return e});Y||(Y=function(e){return e});Ot||(Ot=function(e,t,s){return e.apply(t,s)});Nt||(Nt=function(e,t){return new e(...t)});const tt=Z(Array.prototype.forEach),pi=Z(Array.prototype.lastIndexOf),Rn=Z(Array.prototype.pop),ze=Z(Array.prototype.push),hi=Z(Array.prototype.splice),it=Z(String.prototype.toLowerCase),Et=Z(String.prototype.toString),Ln=Z(String.prototype.match),Ue=Z(String.prototype.replace),di=Z(String.prototype.indexOf),fi=Z(String.prototype.trim),Q=Z(Object.prototype.hasOwnProperty),G=Z(RegExp.prototype.test),Fe=gi(TypeError);function Z(r){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,s=new Array(t>1?t-1:0),n=1;n2&&arguments[2]!==void 0?arguments[2]:it;Sn&&Sn(r,null);let s=e.length;for(;s--;){let n=e[s];if(typeof n=="string"){const l=t(n);l!==n&&(ai(e)||(e[s]=l),n=l)}r[n]=!0}return r}function mi(r){for(let e=0;e/gm),yi=Y(/\$\{[\w\W]*/gm),_i=Y(/^data-[\-\w.\u00B7-\uFFFF]+$/),Ti=Y(/^aria-[\-\w]+$/),Kn=Y(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),vi=Y(/^(?:\w+script|data):/i),Ai=Y(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Jn=Y(/^html$/i),Ei=Y(/^[a-z][.\w]*(-[.\w]+)+$/i);var Mn=Object.freeze({__proto__:null,ARIA_ATTR:Ti,ATTR_WHITESPACE:Ai,CUSTOM_ELEMENT:Ei,DATA_ATTR:_i,DOCTYPE_NAME:Jn,ERB_EXPR:wi,IS_ALLOWED_URI:Kn,IS_SCRIPT_OR_DATA:vi,MUSTACHE_EXPR:xi,TMPLIT_EXPR:yi});const He={element:1,text:3,progressingInstruction:7,comment:8,document:9},Si=function(){return typeof window>"u"?null:window},Ri=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let s=null;const n="data-tt-policy-suffix";t&&t.hasAttribute(n)&&(s=t.getAttribute(n));const l="dompurify"+(s?"#"+s:"");try{return e.createPolicy(l,{createHTML(i){return i},createScriptURL(i){return i}})}catch{return console.warn("TrustedTypes policy "+l+" could not be created."),null}},On=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function er(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Si();const e=k=>er(k);if(e.version="3.2.6",e.removed=[],!r||!r.document||r.document.nodeType!==He.document||!r.Element)return e.isSupported=!1,e;let{document:t}=r;const s=t,n=s.currentScript,{DocumentFragment:l,HTMLTemplateElement:i,Node:a,Element:u,NodeFilter:c,NamedNodeMap:h=r.NamedNodeMap||r.MozNamedAttrMap,HTMLFormElement:m,DOMParser:f,trustedTypes:y}=r,v=u.prototype,$=Be(v,"cloneNode"),V=Be(v,"remove"),J=Be(v,"nextSibling"),ee=Be(v,"childNodes"),U=Be(v,"parentNode");if(typeof i=="function"){const k=t.createElement("template");k.content&&k.content.ownerDocument&&(t=k.content.ownerDocument)}let D,se="";const{implementation:ie,createNodeIterator:te,createDocumentFragment:pt,getElementsByTagName:ht}=t,{importNode:dt}=s;let I=On();e.isSupported=typeof Vn=="function"&&typeof U=="function"&&ie&&ie.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:de,ERB_EXPR:Ce,TMPLIT_EXPR:x,DATA_ATTR:_,ARIA_ATTR:H,IS_SCRIPT_OR_DATA:oe,ATTR_WHITESPACE:De,CUSTOM_ELEMENT:ft}=Mn;let{IS_ALLOWED_URI:Vt}=Mn,O=null;const Qt=w({},[...Cn,...St,...Rt,...Lt,...Dn]);let z=null;const Kt=w({},[...In,...Ct,...$n,...nt]);let C=Object.seal(Qn(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ie=null,gt=null,Jt=!0,mt=!0,en=!1,tn=!0,ye=!1,je=!0,fe=!1,kt=!1,bt=!1,_e=!1,Ze=!1,Xe=!1,nn=!0,rn=!1;const tr="user-content-";let xt=!0,$e=!1,Te={},ve=null;const sn=w({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let on=null;const ln=w({},["audio","video","img","source","image","track"]);let wt=null;const an=w({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ye="http://www.w3.org/1998/Math/MathML",Ve="http://www.w3.org/2000/svg",le="http://www.w3.org/1999/xhtml";let Ae=le,yt=!1,_t=null;const nr=w({},[Ye,Ve,le],Et);let Qe=w({},["mi","mo","mn","ms","mtext"]),Ke=w({},["annotation-xml"]);const rr=w({},["title","style","font","a","script"]);let Me=null;const sr=["application/xhtml+xml","text/html"],ir="text/html";let N=null,Ee=null;const or=t.createElement("form"),cn=function(o){return o instanceof RegExp||o instanceof Function},Tt=function(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Ee&&Ee===o)){if((!o||typeof o!="object")&&(o={}),o=ue(o),Me=sr.indexOf(o.PARSER_MEDIA_TYPE)===-1?ir:o.PARSER_MEDIA_TYPE,N=Me==="application/xhtml+xml"?Et:it,O=Q(o,"ALLOWED_TAGS")?w({},o.ALLOWED_TAGS,N):Qt,z=Q(o,"ALLOWED_ATTR")?w({},o.ALLOWED_ATTR,N):Kt,_t=Q(o,"ALLOWED_NAMESPACES")?w({},o.ALLOWED_NAMESPACES,Et):nr,wt=Q(o,"ADD_URI_SAFE_ATTR")?w(ue(an),o.ADD_URI_SAFE_ATTR,N):an,on=Q(o,"ADD_DATA_URI_TAGS")?w(ue(ln),o.ADD_DATA_URI_TAGS,N):ln,ve=Q(o,"FORBID_CONTENTS")?w({},o.FORBID_CONTENTS,N):sn,Ie=Q(o,"FORBID_TAGS")?w({},o.FORBID_TAGS,N):ue({}),gt=Q(o,"FORBID_ATTR")?w({},o.FORBID_ATTR,N):ue({}),Te=Q(o,"USE_PROFILES")?o.USE_PROFILES:!1,Jt=o.ALLOW_ARIA_ATTR!==!1,mt=o.ALLOW_DATA_ATTR!==!1,en=o.ALLOW_UNKNOWN_PROTOCOLS||!1,tn=o.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ye=o.SAFE_FOR_TEMPLATES||!1,je=o.SAFE_FOR_XML!==!1,fe=o.WHOLE_DOCUMENT||!1,_e=o.RETURN_DOM||!1,Ze=o.RETURN_DOM_FRAGMENT||!1,Xe=o.RETURN_TRUSTED_TYPE||!1,bt=o.FORCE_BODY||!1,nn=o.SANITIZE_DOM!==!1,rn=o.SANITIZE_NAMED_PROPS||!1,xt=o.KEEP_CONTENT!==!1,$e=o.IN_PLACE||!1,Vt=o.ALLOWED_URI_REGEXP||Kn,Ae=o.NAMESPACE||le,Qe=o.MATHML_TEXT_INTEGRATION_POINTS||Qe,Ke=o.HTML_INTEGRATION_POINTS||Ke,C=o.CUSTOM_ELEMENT_HANDLING||{},o.CUSTOM_ELEMENT_HANDLING&&cn(o.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(C.tagNameCheck=o.CUSTOM_ELEMENT_HANDLING.tagNameCheck),o.CUSTOM_ELEMENT_HANDLING&&cn(o.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(C.attributeNameCheck=o.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),o.CUSTOM_ELEMENT_HANDLING&&typeof o.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(C.allowCustomizedBuiltInElements=o.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ye&&(mt=!1),Ze&&(_e=!0),Te&&(O=w({},Dn),z=[],Te.html===!0&&(w(O,Cn),w(z,In)),Te.svg===!0&&(w(O,St),w(z,Ct),w(z,nt)),Te.svgFilters===!0&&(w(O,Rt),w(z,Ct),w(z,nt)),Te.mathMl===!0&&(w(O,Lt),w(z,$n),w(z,nt))),o.ADD_TAGS&&(O===Qt&&(O=ue(O)),w(O,o.ADD_TAGS,N)),o.ADD_ATTR&&(z===Kt&&(z=ue(z)),w(z,o.ADD_ATTR,N)),o.ADD_URI_SAFE_ATTR&&w(wt,o.ADD_URI_SAFE_ATTR,N),o.FORBID_CONTENTS&&(ve===sn&&(ve=ue(ve)),w(ve,o.FORBID_CONTENTS,N)),xt&&(O["#text"]=!0),fe&&w(O,["html","head","body"]),O.table&&(w(O,["tbody"]),delete Ie.tbody),o.TRUSTED_TYPES_POLICY){if(typeof o.TRUSTED_TYPES_POLICY.createHTML!="function")throw Fe('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof o.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Fe('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');D=o.TRUSTED_TYPES_POLICY,se=D.createHTML("")}else D===void 0&&(D=Ri(y,n)),D!==null&&typeof se=="string"&&(se=D.createHTML(""));j&&j(o),Ee=o}},un=w({},[...St,...Rt,...ki]),pn=w({},[...Lt,...bi]),lr=function(o){let p=U(o);(!p||!p.tagName)&&(p={namespaceURI:Ae,tagName:"template"});const g=it(o.tagName),S=it(p.tagName);return _t[o.namespaceURI]?o.namespaceURI===Ve?p.namespaceURI===le?g==="svg":p.namespaceURI===Ye?g==="svg"&&(S==="annotation-xml"||Qe[S]):!!un[g]:o.namespaceURI===Ye?p.namespaceURI===le?g==="math":p.namespaceURI===Ve?g==="math"&&Ke[S]:!!pn[g]:o.namespaceURI===le?p.namespaceURI===Ve&&!Ke[S]||p.namespaceURI===Ye&&!Qe[S]?!1:!pn[g]&&(rr[g]||!un[g]):!!(Me==="application/xhtml+xml"&&_t[o.namespaceURI]):!1},ne=function(o){ze(e.removed,{element:o});try{U(o).removeChild(o)}catch{V(o)}},Se=function(o,p){try{ze(e.removed,{attribute:p.getAttributeNode(o),from:p})}catch{ze(e.removed,{attribute:null,from:p})}if(p.removeAttribute(o),o==="is")if(_e||Ze)try{ne(p)}catch{}else try{p.setAttribute(o,"")}catch{}},hn=function(o){let p=null,g=null;if(bt)o=""+o;else{const M=Ln(o,/^[\r\n\t ]+/);g=M&&M[0]}Me==="application/xhtml+xml"&&Ae===le&&(o=''+o+"");const S=D?D.createHTML(o):o;if(Ae===le)try{p=new f().parseFromString(S,Me)}catch{}if(!p||!p.documentElement){p=ie.createDocument(Ae,"template",null);try{p.documentElement.innerHTML=yt?se:S}catch{}}const F=p.body||p.documentElement;return o&&g&&F.insertBefore(t.createTextNode(g),F.childNodes[0]||null),Ae===le?ht.call(p,fe?"html":"body")[0]:fe?p.documentElement:F},dn=function(o){return te.call(o.ownerDocument||o,o,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},vt=function(o){return o instanceof m&&(typeof o.nodeName!="string"||typeof o.textContent!="string"||typeof o.removeChild!="function"||!(o.attributes instanceof h)||typeof o.removeAttribute!="function"||typeof o.setAttribute!="function"||typeof o.namespaceURI!="string"||typeof o.insertBefore!="function"||typeof o.hasChildNodes!="function")},fn=function(o){return typeof a=="function"&&o instanceof a};function ae(k,o,p){tt(k,g=>{g.call(e,o,p,Ee)})}const gn=function(o){let p=null;if(ae(I.beforeSanitizeElements,o,null),vt(o))return ne(o),!0;const g=N(o.nodeName);if(ae(I.uponSanitizeElement,o,{tagName:g,allowedTags:O}),je&&o.hasChildNodes()&&!fn(o.firstElementChild)&&G(/<[/\w!]/g,o.innerHTML)&&G(/<[/\w!]/g,o.textContent)||o.nodeType===He.progressingInstruction||je&&o.nodeType===He.comment&&G(/<[/\w]/g,o.data))return ne(o),!0;if(!O[g]||Ie[g]){if(!Ie[g]&&kn(g)&&(C.tagNameCheck instanceof RegExp&&G(C.tagNameCheck,g)||C.tagNameCheck instanceof Function&&C.tagNameCheck(g)))return!1;if(xt&&!ve[g]){const S=U(o)||o.parentNode,F=ee(o)||o.childNodes;if(F&&S){const M=F.length;for(let X=M-1;X>=0;--X){const ce=$(F[X],!0);ce.__removalCount=(o.__removalCount||0)+1,S.insertBefore(ce,J(o))}}}return ne(o),!0}return o instanceof u&&!lr(o)||(g==="noscript"||g==="noembed"||g==="noframes")&&G(/<\/no(script|embed|frames)/i,o.innerHTML)?(ne(o),!0):(ye&&o.nodeType===He.text&&(p=o.textContent,tt([de,Ce,x],S=>{p=Ue(p,S," ")}),o.textContent!==p&&(ze(e.removed,{element:o.cloneNode()}),o.textContent=p)),ae(I.afterSanitizeElements,o,null),!1)},mn=function(o,p,g){if(nn&&(p==="id"||p==="name")&&(g in t||g in or))return!1;if(!(mt&&!gt[p]&&G(_,p))){if(!(Jt&&G(H,p))){if(!z[p]||gt[p]){if(!(kn(o)&&(C.tagNameCheck instanceof RegExp&&G(C.tagNameCheck,o)||C.tagNameCheck instanceof Function&&C.tagNameCheck(o))&&(C.attributeNameCheck instanceof RegExp&&G(C.attributeNameCheck,p)||C.attributeNameCheck instanceof Function&&C.attributeNameCheck(p))||p==="is"&&C.allowCustomizedBuiltInElements&&(C.tagNameCheck instanceof RegExp&&G(C.tagNameCheck,g)||C.tagNameCheck instanceof Function&&C.tagNameCheck(g))))return!1}else if(!wt[p]){if(!G(Vt,Ue(g,De,""))){if(!((p==="src"||p==="xlink:href"||p==="href")&&o!=="script"&&di(g,"data:")===0&&on[o])){if(!(en&&!G(oe,Ue(g,De,"")))){if(g)return!1}}}}}}return!0},kn=function(o){return o!=="annotation-xml"&&Ln(o,ft)},bn=function(o){ae(I.beforeSanitizeAttributes,o,null);const{attributes:p}=o;if(!p||vt(o))return;const g={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:z,forceKeepAttr:void 0};let S=p.length;for(;S--;){const F=p[S],{name:M,namespaceURI:X,value:ce}=F,Oe=N(M),At=ce;let B=M==="value"?At:fi(At);if(g.attrName=Oe,g.attrValue=B,g.keepAttr=!0,g.forceKeepAttr=void 0,ae(I.uponSanitizeAttribute,o,g),B=g.attrValue,rn&&(Oe==="id"||Oe==="name")&&(Se(M,o),B=tr+B),je&&G(/((--!?|])>)|<\/(style|title)/i,B)){Se(M,o);continue}if(g.forceKeepAttr)continue;if(!g.keepAttr){Se(M,o);continue}if(!tn&&G(/\/>/i,B)){Se(M,o);continue}ye&&tt([de,Ce,x],wn=>{B=Ue(B,wn," ")});const xn=N(o.nodeName);if(!mn(xn,Oe,B)){Se(M,o);continue}if(D&&typeof y=="object"&&typeof y.getAttributeType=="function"&&!X)switch(y.getAttributeType(xn,Oe)){case"TrustedHTML":{B=D.createHTML(B);break}case"TrustedScriptURL":{B=D.createScriptURL(B);break}}if(B!==At)try{X?o.setAttributeNS(X,M,B):o.setAttribute(M,B),vt(o)?ne(o):Rn(e.removed)}catch{Se(M,o)}}ae(I.afterSanitizeAttributes,o,null)},ar=function k(o){let p=null;const g=dn(o);for(ae(I.beforeSanitizeShadowDOM,o,null);p=g.nextNode();)ae(I.uponSanitizeShadowNode,p,null),gn(p),bn(p),p.content instanceof l&&k(p.content);ae(I.afterSanitizeShadowDOM,o,null)};return e.sanitize=function(k){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},p=null,g=null,S=null,F=null;if(yt=!k,yt&&(k=""),typeof k!="string"&&!fn(k))if(typeof k.toString=="function"){if(k=k.toString(),typeof k!="string")throw Fe("dirty is not a string, aborting")}else throw Fe("toString is not a function");if(!e.isSupported)return k;if(kt||Tt(o),e.removed=[],typeof k=="string"&&($e=!1),$e){if(k.nodeName){const ce=N(k.nodeName);if(!O[ce]||Ie[ce])throw Fe("root node is forbidden and cannot be sanitized in-place")}}else if(k instanceof a)p=hn(""),g=p.ownerDocument.importNode(k,!0),g.nodeType===He.element&&g.nodeName==="BODY"||g.nodeName==="HTML"?p=g:p.appendChild(g);else{if(!_e&&!ye&&!fe&&k.indexOf("<")===-1)return D&&Xe?D.createHTML(k):k;if(p=hn(k),!p)return _e?null:Xe?se:""}p&&bt&&ne(p.firstChild);const M=dn($e?k:p);for(;S=M.nextNode();)gn(S),bn(S),S.content instanceof l&&ar(S.content);if($e)return k;if(_e){if(Ze)for(F=pt.call(p.ownerDocument);p.firstChild;)F.appendChild(p.firstChild);else F=p;return(z.shadowroot||z.shadowrootmode)&&(F=dt.call(s,F,!0)),F}let X=fe?p.outerHTML:p.innerHTML;return fe&&O["!doctype"]&&p.ownerDocument&&p.ownerDocument.doctype&&p.ownerDocument.doctype.name&&G(Jn,p.ownerDocument.doctype.name)&&(X=" -`+X),ye&&tt([de,Ce,x],ce=>{X=Ue(X,ce," ")}),D&&Xe?D.createHTML(X):X},e.setConfig=function(){let k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Tt(k),kt=!0},e.clearConfig=function(){Ee=null,kt=!1},e.isValidAttribute=function(k,o,p){Ee||Tt({});const g=N(k),S=N(o);return mn(g,S,p)},e.addHook=function(k,o){typeof o=="function"&&ze(I[k],o)},e.removeHook=function(k,o){if(o!==void 0){const p=pi(I[k],o);return p===-1?void 0:hi(I[k],p,1)[0]}return Rn(I[k])},e.removeHooks=function(k){I[k]=[]},e.removeAllHooks=function(){I=On()},e}var Li=er();const Ci={class:"min-h-screen flex items-center justify-center p-4 overflow-hidden transition-colors duration-300"},Di={class:"w-full max-w-md relative z-10"},Ii={class:"p-8"},$i=be({__name:"RetrievewFileView",setup(r){const{t:e}=We(),t=mr(),s=window.location.origin,n=wr(),l=xe("isDarkMode"),i=Ar(),{receiveData:a}=kr(i),u=K(""),c=K({readonly:!1,loading:!1}),h=K(""),m=K(null),f=K(!1),y=xr(),v=a,$=JSON.parse(localStorage.getItem("config")||"{}"),V=K(null);br(()=>{V.value&&V.value.focus();const x=y.query.code;x&&typeof x=="string"&&(u.value=x)}),Dt(u,x=>{x.length===5&&U()});const J=x=>x.downloadUrl?x.downloadUrl.startsWith("http")?x.downloadUrl:`${s}${x.downloadUrl}`:"",ee=async()=>{m.value&&m.value.content&&await Sr(m.value.content,{successMsg:e("fileRecord.contentCopied"),errorMsg:e("fileRecord.copyFailed")})},U=async()=>{if(u.value.length!==5){t.showAlert(e("retrieve.messages.invalidCode"),"error");return}c.value.readonly=!0,c.value.loading=!0;try{const x=await yr.post("/share/select/",{code:u.value}),_=x.data||x;if(_&&_.code===200)if(_.detail){const H=_.detail.text.startsWith("/share/download")||_.detail.name!=="Text",oe={id:Date.now(),code:_.detail.code,filename:_.detail.name,size:D(_.detail.size),downloadUrl:H?_.detail.text:null,content:H?null:_.detail.text,date:new Date().toLocaleString()};let De=!0;i.receiveData.forEach(ft=>{ft.code===oe.code&&(De=!1)}),De&&i.addReceiveData(oe),H?m.value=oe:(m.value=oe,I.value=!0),t.showAlert(e("retrieve.messages.retrieveSuccess"),"success")}else t.showAlert(e("retrieve.messages.invalidCodeError"),"error");else t.showAlert(e("retrieve.messages.retrieveFailure")+_.detail,"error")}catch(x){console.error("Retrieve failed:",x);const _=x,H=_?.response?.data?.detail||_?.message||e("retrieve.messages.unknownError");t.showAlert(e("retrieve.messages.networkError")+H,"error")}finally{c.value.readonly=!1,c.value.loading=!1,u.value=""}},D=x=>{if(x===0)return"0 "+e("fileSize.bytes");const _=1024,H=[e("fileSize.bytes"),e("fileSize.kb"),e("fileSize.mb"),e("fileSize.gb"),e("fileSize.tb")],oe=Math.floor(Math.log(x)/Math.log(_));return parseFloat((x/Math.pow(_,oe)).toFixed(2))+" "+H[oe]},se=x=>{m.value=x},ie=x=>{const _=v.value.findIndex(H=>H.id===x);_!==-1&&i.deleteReceiveData(_)},te=()=>{f.value=!f.value},pt=()=>{n.push("/send")},ht=x=>x.downloadUrl?`${s}${x.downloadUrl}`:`${s}?code=${x.code}`,dt=x=>{if(x.downloadUrl)window.open(`${x.downloadUrl.startsWith("http")?"":s}${x.downloadUrl}`,"_blank");else if(x.content){const _=new Blob([x.content],{type:"text/plain;charset=utf-8"});As.saveAs(_,`${x.filename}.txt`)}},I=K(!1),de=K("");Dt(()=>m.value?.content,async x=>{if(x)try{const _=await E(x);de.value=Li.sanitize(_,{ALLOWED_TAGS:["p","br","strong","em","u","h1","h2","h3","h4","h5","h6","ul","ol","li","blockquote","code","pre","a","img"],ALLOWED_ATTR:["href","src","alt","title","class"],ALLOWED_URI_REGEXP:/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|xxx):|[^a-z]|[a-z+.-]+(?:[^a-z+.-:]|$))/i})}catch(_){console.error("Markdown 渲染失败:",_),de.value=x}else de.value=""},{immediate:!0});const Ce=()=>{I.value=!0};return(x,_)=>(P(),W("div",Ci,[b("div",Di,[b("div",{class:T(["rounded-3xl shadow-2xl overflow-hidden border transform transition-all duration-300",[d(l)?"bg-gray-800 bg-opacity-50 backdrop-filter backdrop-blur-xl border-gray-700":"bg-white border-gray-200"]])},[b("div",Ii,[L(Er,{title:d($).name,onTitleClick:pt},null,8,["title"]),L(Br,{"input-status":c.value,error:!!h.value,onSubmit:U,"onUpdate:code":_[0]||(_[0]=H=>u.value=H),ref:"retrieveFormRef"},null,8,["input-status","error"])]),L(Gr,{"link-text":x.$t("retrieve.needSendFile"),"link-to":"/send","drawer-text":x.$t("retrieve.recordsDrawer"),onToggleDrawer:te},null,8,["link-text","drawer-text"])],2)]),L(qr,{visible:f.value,title:x.$t("retrieve.recordsDrawer"),onClose:te},{default:Le(()=>[L(ms,{records:d(v),onViewDetails:se,onDownloadRecord:dt,onDeleteRecord:ie},null,8,["records"])]),_:1},8,["visible","title"]),L(ls,{visible:!!m.value,record:m.value,onClose:_[1]||(_[1]=H=>m.value=null),onShowContentPreview:Ce,"get-download-url":J,"get-qr-code-value":ht},null,8,["visible","record"]),L(_s,{visible:I.value,"rendered-content":de.value,onClose:_[2]||(_[2]=H=>I.value=!1),onCopyContent:ee},null,8,["visible","rendered-content"])]))}}),Bi=Re($i,[["__scopeId","data-v-a89ba9bf"]]);export{Bi as default}; diff --git a/themes/2024/assets/RetrievewFileView-DKpM6_j2.js b/themes/2024/assets/RetrievewFileView-DKpM6_j2.js new file mode 100644 index 0000000..1392fb2 --- /dev/null +++ b/themes/2024/assets/RetrievewFileView-DKpM6_j2.js @@ -0,0 +1,76 @@ +import{c as Pt,d as be,u as We,r as K,w as Dt,a as W,o as P,h as zt,b,n as T,e as d,i as xe,t as R,x as cr,j as ge,z as ur,l as L,_ as Re,G as pr,v as Le,E as me,k as Ut,T as Ft,K as hr,X as Nn,H as dr,y as fr,D as gr,p as mr,L as kr,f as br,M as xr,I as wr,J as yr}from"./index-B9FIg8c4.js";import{S as _r,C as Tr,Q as vr,u as Ar,P as Er,d as Sr}from"./PageHeader-C8MTYIg6.js";import{F as Pn}from"./file-CSeBUDan.js";import{H as Rr}from"./hard-drive-DFfw9-r7.js";import{E as Lr,T as Cr}from"./trash-DPD8vC5o.js";import{C as Dr}from"./copy-ClIbpnbK.js";import"./box-BaIzuVAS.js";/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ir=Pt("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $r=Pt("calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const zn=Pt("download",[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]),Mr={class:"mb-6 relative"},Or={class:"relative"},Nr=["placeholder","readonly"],Pr={key:0,class:"absolute inset-y-0 right-0 flex items-center pr-3"},zr=["disabled"],Ur={class:"flex items-center justify-center relative z-10"},Fr=be({__name:"RetrieveForm",props:{inputStatus:{},error:{type:Boolean}},emits:["submit","update:code"],setup(r,{expose:e,emit:t}){const{t:s}=We(),n=t,l=xe("isDarkMode"),i=K(""),a=K(!1),u=K();return Dt(i,c=>{n("update:code",c)}),e({focus:()=>u.value?.focus()}),(c,h)=>(P(),W("form",{onSubmit:h[3]||(h[3]=zt(m=>c.$emit("submit"),["prevent"]))},[b("div",Mr,[b("label",{for:"code",class:T(["block text-sm font-medium mb-2",[d(l)?"text-gray-300":"text-gray-800"]])},R(d(s)("retrieve.codeInput.label")),3),b("div",Or,[cr(b("input",{id:"code","onUpdate:modelValue":h[0]||(h[0]=m=>i.value=m),type:"text",ref_key:"codeInput",ref:u,class:T(["w-full px-4 py-3 rounded-lg placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 transition duration-300 pr-10",[d(l)?"bg-gray-700 bg-opacity-50":"bg-gray-100",{"ring-2 ring-red-500":c.error},d(l)?"text-gray-300":"text-gray-800"]]),placeholder:d(s)("retrieve.codeInput.placeholder"),required:"",readonly:c.inputStatus.readonly,maxlength:"5",onFocus:h[1]||(h[1]=m=>a.value=!0),onBlur:h[2]||(h[2]=m=>a.value=!1)},null,42,Nr),[[ur,i.value]]),c.inputStatus.loading?(P(),W("div",Pr,[...h[4]||(h[4]=[b("span",{class:"animate-spin rounded-full h-5 w-5 border-b-2 border-indigo-500"},null,-1)])])):ge("",!0)]),b("div",{class:T(["absolute -bottom-0.5 left-2 h-0.5 bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 transition-all duration-300 ease-in-out",{"w-97-100":a.value,"w-0":!a.value}])},null,2)]),b("button",{type:"submit",class:"w-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 text-white font-bold py-3 px-4 rounded-lg hover:from-indigo-600 hover:via-purple-600 hover:to-pink-600 focus:outline-none focus:ring-2 focus:ring-purple-500 focus:ring-opacity-50 transition duration-300 transform hover:scale-105 hover:shadow-lg relative overflow-hidden group",disabled:c.inputStatus.loading},[b("span",Ur,[b("span",null,R(c.inputStatus.loading?d(s)("common.loading"):d(s)("retrieve.submit")),1),L(d(Ir),{class:"w-5 h-5 ml-2 transition-transform duration-300 transform group-hover:translate-x-1"})]),h[5]||(h[5]=b("span",{class:"absolute top-0 left-0 w-full h-full bg-gradient-to-r from-pink-500 via-purple-500 to-indigo-500 opacity-0 group-hover:opacity-100 transition-opacity duration-300"},null,-1))],8,zr)],32))}}),Br=Re(Fr,[["__scopeId","data-v-8f0be1b0"]]),Hr={key:0,class:"mb-6 text-center"},Gr=be({__name:"PageFooter",props:{linkText:{},linkTo:{},drawerText:{}},emits:["toggle-drawer"],setup(r){const{t:e}=We(),t=xe("isDarkMode");return(s,n)=>{const l=pr("router-link");return P(),W("div",null,[s.linkText&&s.linkTo?(P(),W("div",Hr,[L(l,{to:s.linkTo,class:"text-indigo-400 hover:text-indigo-300 transition duration-300"},{default:Le(()=>[me(R(s.linkText),1)]),_:1},8,["to"])])):ge("",!0),b("div",{class:T(["px-8 py-4 bg-opacity-50 flex justify-between items-center",[d(t)?"bg-gray-800":"bg-gray-100"]])},[b("span",{class:T(["text-sm flex items-center",[d(t)?"text-gray-300":"text-gray-800"]])},[L(d(_r),{class:"w-4 h-4 mr-1 text-green-400"}),me(" "+R(d(e)("send.secureEncryption")),1)],2),b("button",{onClick:n[0]||(n[0]=i=>s.$emit("toggle-drawer")),class:T(["text-sm hover:text-indigo-300 transition duration-300 flex items-center",[d(t)?"text-indigo-400":"text-indigo-600"]])},[me(R(s.drawerText)+" ",1),L(d(Tr),{class:"w-4 h-4 ml-1"})],2)],2)])}}}),Wr=be({__name:"SideDrawer",props:{visible:{type:Boolean},title:{}},emits:["close"],setup(r){const e=xe("isDarkMode");return(t,s)=>(P(),Ut(Ft,{name:"drawer"},{default:Le(()=>[t.visible?(P(),W("div",{key:0,class:T(["fixed inset-y-0 right-0 w-full sm:w-120 bg-opacity-70 backdrop-filter backdrop-blur-xl shadow-2xl z-50 overflow-hidden flex flex-col",[d(e)?"bg-gray-900":"bg-white"]])},[b("div",{class:T(["flex justify-between items-center p-6 border-b",[d(e)?"border-gray-700":"border-gray-200"]])},[b("h3",{class:T(["text-2xl font-bold",[d(e)?"text-white":"text-gray-800"]])},R(t.title),3),b("button",{onClick:s[0]||(s[0]=n=>t.$emit("close")),class:T(["hover:text-white transition duration-300",[d(e)?"text-gray-400":"text-gray-800"]])},[L(d(Nn),{class:"w-6 h-6"})],2)],2),hr(t.$slots,"default",{},void 0,!0)],2)):ge("",!0)]),_:3}))}}),qr=Re(Wr,[["__scopeId","data-v-9c6698ec"]]),jr={key:0,class:"space-y-4"},Zr={class:"flex items-center"},Xr={class:"font-medium"},Yr={class:"flex items-center"},Vr={class:"font-medium"},Qr={class:"flex items-center"},Kr={class:"font-medium"},Jr={class:"flex items-center"},es={class:"font-medium"},ts={key:0,class:"ml-2"},ns={key:1},rs=["href"],ss={key:1,class:"mt-6 flex flex-col items-center"},is={class:"bg-white p-2 rounded-lg shadow-md"},os=be({__name:"FileDetailModal",props:{visible:{type:Boolean},record:{}},emits:["close","preview-content"],setup(r){const{t:e}=We(),t=xe("isDarkMode"),s=window.location.origin,n=i=>i.downloadUrl?i.downloadUrl.startsWith("http")?i.downloadUrl:`${s}${i.downloadUrl}`:"",l=i=>i.downloadUrl?`${s}${i.downloadUrl}`:`${s}?code=${i.code}`;return(i,a)=>(P(),Ut(Ft,{name:"fade"},{default:Le(()=>[i.visible?(P(),W("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",onClick:a[2]||(a[2]=zt(u=>i.$emit("close"),["self"]))},[b("div",{class:T(["p-8 rounded-2xl max-w-md w-full mx-4 shadow-2xl transform transition-all duration-300 ease-out backdrop-filter backdrop-blur-lg overflow-hidden",[d(t)?"bg-gray-800 bg-opacity-70":"bg-white bg-opacity-95"]])},[b("h3",{class:T(["text-2xl font-bold mb-6 truncate",[d(t)?"text-white":"text-gray-800"]])},R(d(e)("fileDetail.title")),3),i.record?(P(),W("div",jr,[b("div",Zr,[L(d(Pn),{class:T(["w-6 h-6 mr-3 flex-shrink-0",[d(t)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"]),b("p",{class:T([[d(t)?"text-gray-300":"text-gray-800"],"truncate flex-grow"])},[b("span",Xr,R(d(e)("fileRecord.filename"))+":",1),me(R(i.record.filename),1)],2)]),b("div",Yr,[L(d($r),{class:T(["w-6 h-6 mr-3 flex-shrink-0",[d(t)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"]),b("p",{class:T([[d(t)?"text-gray-300":"text-gray-800"],"truncate flex-grow"])},[b("span",Vr,R(d(e)("fileRecord.date"))+":",1),me(R(i.record.date),1)],2)]),b("div",Qr,[L(d(Rr),{class:T(["w-6 h-6 mr-3 flex-shrink-0",[d(t)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"]),b("p",{class:T([[d(t)?"text-gray-300":"text-gray-800"],"truncate flex-grow"])},[b("span",Kr,R(d(e)("fileRecord.size"))+":",1),me(R(i.record.size),1)],2)]),b("div",Jr,[L(d(zn),{class:T(["w-6 h-6 mr-3",[d(t)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"]),b("p",{class:T([d(t)?"text-gray-300":"text-gray-800"])},[b("span",es,R(d(e)("fileDetail.content"))+":",1)],2),i.record.filename==="Text"?(P(),W("div",ts,[b("button",{onClick:a[0]||(a[0]=u=>i.$emit("preview-content")),class:"px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 transition duration-300"},R(d(e)("fileDetail.previewContent")),1)])):(P(),W("div",ns,[b("a",{href:n(i.record),target:"_blank",rel:"noopener noreferrer",class:"px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 transition duration-300"},R(d(e)("fileDetail.download")),9,rs)]))])])):ge("",!0),i.record?(P(),W("div",ss,[b("h4",{class:T(["text-lg font-semibold mb-3",[d(t)?"text-white":"text-gray-800"]])},R(d(e)("fileDetail.qrCode")),3),b("div",is,[L(vr,{value:l(i.record),size:128,level:"M"},null,8,["value"])]),b("p",{class:T(["mt-2 text-sm",[d(t)?"text-gray-400":"text-gray-600"]])},R(d(e)("fileDetail.scanQrCode")),3)])):ge("",!0),b("button",{onClick:a[1]||(a[1]=u=>i.$emit("close")),class:"mt-8 w-full bg-gradient-to-r from-indigo-500 to-purple-600 text-white px-6 py-3 rounded-lg font-medium hover:from-indigo-600 hover:to-purple-700 focus:outline-none focus:ring-2 focus:ring-purple-500 focus:ring-opacity-50 transition duration-300 transform hover:scale-105"},R(d(e)("common.close")),1)],2)])):ge("",!0)]),_:1}))}}),ls=Re(os,[["__scopeId","data-v-5c3436d6"]]),as={class:"flex-grow overflow-y-auto p-6"},cs={class:"flex-shrink-0 mr-4"},us={class:"flex-grow min-w-0 mr-4"},ps={class:"flex-shrink-0 flex space-x-2"},hs=["onClick"],ds=["onClick"],fs=["onClick"],gs=be({__name:"FileRecordList",props:{records:{}},emits:["view-details","download-record","delete-record"],setup(r){const e=xe("isDarkMode");return(t,s)=>(P(),W("div",as,[L(dr,{name:"list",tag:"div",class:"space-y-4"},{default:Le(()=>[(P(!0),W(fr,null,gr(t.records,n=>(P(),W("div",{key:n.id,class:T(["bg-opacity-50 rounded-lg p-4 flex items-center shadow-md hover:shadow-lg transition duration-300 transform hover:scale-102",[d(e)?"bg-gray-800 hover:bg-gray-700":"bg-gray-100 hover:bg-white"]])},[b("div",cs,[L(d(Pn),{class:T(["w-10 h-10",[d(e)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])]),b("div",us,[b("p",{class:T(["font-medium text-lg truncate",[d(e)?"text-white":"text-gray-800"]])},R(n.filename),3),b("p",{class:T(["text-sm truncate",[d(e)?"text-gray-400":"text-gray-600"]])},R(n.date)+" · "+R(n.size),3)]),b("div",ps,[b("button",{onClick:l=>t.$emit("view-details",n),class:T(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[d(e)?"hover:bg-indigo-400 text-indigo-400":"hover:bg-indigo-100 text-indigo-600"]])},[L(d(Lr),{class:"w-5 h-5"})],10,hs),b("button",{onClick:l=>t.$emit("download-record",n),class:T(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[d(e)?"hover:bg-green-400 text-green-400":"hover:bg-green-100 text-green-600"]])},[L(d(zn),{class:"w-5 h-5"})],10,ds),b("button",{onClick:l=>t.$emit("delete-record",n.id),class:T(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[d(e)?"hover:bg-red-400 text-red-400":"hover:bg-red-100 text-red-600"]])},[L(d(Cr),{class:"w-5 h-5"})],10,fs)])],2))),128))]),_:1})]))}}),ms=Re(gs,[["__scopeId","data-v-31facf40"]]),ks={class:"flex justify-between items-center mb-4 flex-shrink-0"},bs={class:"flex items-center gap-3"},xs={class:"flex-1 overflow-y-auto custom-scrollbar"},ws=["innerHTML"],ys=be({__name:"ContentPreviewModal",props:{visible:{type:Boolean},renderedContent:{}},emits:["close","copy-content"],setup(r){const{t:e}=We(),t=xe("isDarkMode");return(s,n)=>(P(),Ut(Ft,{name:"fade"},{default:Le(()=>[s.visible?(P(),W("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50",onClick:n[2]||(n[2]=zt(l=>s.$emit("close"),["self"]))},[b("div",{class:T(["p-6 rounded-2xl max-w-3xl w-full mx-4 shadow-2xl transform transition-all duration-300 ease-out backdrop-filter backdrop-blur-lg bg-opacity-70 max-h-[85vh] overflow-hidden flex flex-col",[d(t)?"bg-gray-800":"bg-white"]])},[b("div",ks,[b("h3",{class:T(["text-2xl font-bold",[d(t)?"text-white":"text-gray-800"]])},R(d(e)("contentPreview.title")),3),b("div",bs,[b("button",{onClick:n[0]||(n[0]=l=>s.$emit("copy-content")),class:T(["px-4 py-1.5 rounded-lg transition duration-300 flex items-center gap-2 text-sm font-medium",[d(t)?"bg-gray-700 hover:bg-gray-600 text-gray-300 hover:text-white":"bg-gray-100 hover:bg-gray-200 text-gray-700 hover:text-gray-900"]])},[L(d(Dr),{class:"w-4 h-4"}),me(" "+R(d(e)("common.copy")),1)],2),b("button",{onClick:n[1]||(n[1]=l=>s.$emit("close")),class:T(["p-1.5 rounded-lg transition duration-300 hover:bg-opacity-10",[d(t)?"text-gray-400 hover:text-white hover:bg-white":"text-gray-500 hover:text-gray-900 hover:bg-black"]])},[L(d(Nn),{class:"w-5 h-5"})],2)])]),b("div",xs,[b("div",{class:T(["prose max-w-none p-6 rounded-xl break-words overflow-wrap-anywhere",[d(t)?"prose-invert bg-gray-900 bg-opacity-50":"bg-gray-50"]]),innerHTML:s.renderedContent},null,10,ws)])],2)])):ge("",!0)]),_:1}))}}),_s=Re(ys,[["__scopeId","data-v-eb3f9cc8"]]);var Je=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},rt={exports:{}},Ts=rt.exports,yn;function vs(){return yn||(yn=1,(function(r,e){(function(t,s){s()})(Ts,function(){function t(c,h){return typeof h>"u"?h={autoBom:!1}:typeof h!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),h={autoBom:!h}),h.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(c.type)?new Blob(["\uFEFF",c],{type:c.type}):c}function s(c,h,m){var f=new XMLHttpRequest;f.open("GET",c),f.responseType="blob",f.onload=function(){u(f.response,h,m)},f.onerror=function(){console.error("could not download file")},f.send()}function n(c){var h=new XMLHttpRequest;h.open("HEAD",c,!1);try{h.send()}catch{}return 200<=h.status&&299>=h.status}function l(c){try{c.dispatchEvent(new MouseEvent("click"))}catch{var h=document.createEvent("MouseEvents");h.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),c.dispatchEvent(h)}}var i=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof Je=="object"&&Je.global===Je?Je:void 0,a=i.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),u=i.saveAs||(typeof window!="object"||window!==i?function(){}:"download"in HTMLAnchorElement.prototype&&!a?function(c,h,m){var f=i.URL||i.webkitURL,y=document.createElement("a");h=h||c.name||"download",y.download=h,y.rel="noopener",typeof c=="string"?(y.href=c,y.origin===location.origin?l(y):n(y.href)?s(c,h,m):l(y,y.target="_blank")):(y.href=f.createObjectURL(c),setTimeout(function(){f.revokeObjectURL(y.href)},4e4),setTimeout(function(){l(y)},0))}:"msSaveOrOpenBlob"in navigator?function(c,h,m){if(h=h||c.name||"download",typeof c!="string")navigator.msSaveOrOpenBlob(t(c,m),h);else if(n(c))s(c,h,m);else{var f=document.createElement("a");f.href=c,f.target="_blank",setTimeout(function(){l(f)})}}:function(c,h,m,f){if(f=f||open("","_blank"),f&&(f.document.title=f.document.body.innerText="downloading..."),typeof c=="string")return s(c,h,m);var y=c.type==="application/octet-stream",v=/constructor/i.test(i.HTMLElement)||i.safari,$=/CriOS\/[\d]+/.test(navigator.userAgent);if(($||y&&v||a)&&typeof FileReader<"u"){var V=new FileReader;V.onloadend=function(){var U=V.result;U=$?U:U.replace(/^data:[^;]*;/,"data:attachment/file;"),f?f.location.href=U:location=U,f=null},V.readAsDataURL(c)}else{var J=i.URL||i.webkitURL,ee=J.createObjectURL(c);f?f.location=ee:location.href=ee,f=null,setTimeout(function(){J.revokeObjectURL(ee)},4e4)}});i.saveAs=u.saveAs=u,r.exports=u})})(rt)),rt.exports}var As=vs();function Bt(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var we=Bt();function Un(r){we=r}var Ge={exec:()=>null};function A(r,e=""){let t=typeof r=="string"?r:r.source,s={replace:(n,l)=>{let i=typeof l=="string"?l:l.source;return i=i.replace(q.caret,"$1"),t=t.replace(n,i),s},getRegex:()=>new RegExp(t,e)};return s}var q={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^
    /i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:r=>new RegExp(`^( {0,3}${r})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}#`),htmlBeginRegex:r=>new RegExp(`^ {0,${Math.min(3,r-1)}}<(?:[a-z].*>|!--)`,"i")},Es=/^(?:[ \t]*(?:\n|$))+/,Ss=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,Rs=/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,qe=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,Ls=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Ht=/(?:[*+-]|\d{1,9}[.)])/,Fn=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,Bn=A(Fn).replace(/bull/g,Ht).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),Cs=A(Fn).replace(/bull/g,Ht).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Gt=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,Ds=/^[^\n]+/,Wt=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,Is=A(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Wt).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),$s=A(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Ht).getRegex(),ct="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",qt=/|$))/,Ms=A("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",qt).replace("tag",ct).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),Hn=A(Gt).replace("hr",qe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ct).getRegex(),Os=A(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",Hn).getRegex(),jt={blockquote:Os,code:Ss,def:Is,fences:Rs,heading:Ls,hr:qe,html:Ms,lheading:Bn,list:$s,newline:Es,paragraph:Hn,table:Ge,text:Ds},_n=A("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",qe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ct).getRegex(),Ns={...jt,lheading:Cs,table:_n,paragraph:A(Gt).replace("hr",qe).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",_n).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",ct).getRegex()},Ps={...jt,html:A(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",qt).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:Ge,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:A(Gt).replace("hr",qe).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",Bn).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},zs=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,Us=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,Gn=/^( {2,}|\\)\n(?!\s*$)/,Fs=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\]*?>/g,jn=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,qs=A(jn,"u").replace(/punct/g,ut).getRegex(),js=A(jn,"u").replace(/punct/g,qn).getRegex(),Zn="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",Zs=A(Zn,"gu").replace(/notPunctSpace/g,Wn).replace(/punctSpace/g,Zt).replace(/punct/g,ut).getRegex(),Xs=A(Zn,"gu").replace(/notPunctSpace/g,Gs).replace(/punctSpace/g,Hs).replace(/punct/g,qn).getRegex(),Ys=A("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,Wn).replace(/punctSpace/g,Zt).replace(/punct/g,ut).getRegex(),Vs=A(/\\(punct)/,"gu").replace(/punct/g,ut).getRegex(),Qs=A(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Ks=A(qt).replace("(?:-->|$)","-->").getRegex(),Js=A("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",Ks).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),ot=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`[^`]*`|[^\[\]\\`])*?/,ei=A(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",ot).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),Xn=A(/^!?\[(label)\]\[(ref)\]/).replace("label",ot).replace("ref",Wt).getRegex(),Yn=A(/^!?\[(ref)\](?:\[\])?/).replace("ref",Wt).getRegex(),ti=A("reflink|nolink(?!\\()","g").replace("reflink",Xn).replace("nolink",Yn).getRegex(),Xt={_backpedal:Ge,anyPunctuation:Vs,autolink:Qs,blockSkip:Ws,br:Gn,code:Us,del:Ge,emStrongLDelim:qs,emStrongRDelimAst:Zs,emStrongRDelimUnd:Ys,escape:zs,link:ei,nolink:Yn,punctuation:Bs,reflink:Xn,reflinkSearch:ti,tag:Js,text:Fs,url:Ge},ni={...Xt,link:A(/^!?\[(label)\]\((.*?)\)/).replace("label",ot).getRegex(),reflink:A(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",ot).getRegex()},It={...Xt,emStrongRDelimAst:Xs,emStrongLDelim:js,url:A(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},Tn=r=>si[r];function re(r,e){if(e){if(q.escapeTest.test(r))return r.replace(q.escapeReplace,Tn)}else if(q.escapeTestNoEncode.test(r))return r.replace(q.escapeReplaceNoEncode,Tn);return r}function vn(r){try{r=encodeURI(r).replace(q.percentDecode,"%")}catch{return null}return r}function An(r,e){let t=r.replace(q.findPipe,(l,i,a)=>{let u=!1,c=i;for(;--c>=0&&a[c]==="\\";)u=!u;return u?"|":" |"}),s=t.split(q.splitPipe),n=0;if(s[0].trim()||s.shift(),s.length>0&&!s.at(-1)?.trim()&&s.pop(),e)if(s.length>e)s.splice(e);else for(;s.length0?-2:-1}function En(r,e,t,s,n){let l=e.href,i=e.title||null,a=r[1].replace(n.other.outputLinkReplace,"$1");s.state.inLink=!0;let u={type:r[0].charAt(0)==="!"?"image":"link",raw:t,href:l,title:i,text:a,tokens:s.inlineTokens(a)};return s.state.inLink=!1,u}function oi(r,e,t){let s=r.match(t.other.indentCodeCompensation);if(s===null)return e;let n=s[1];return e.split(` +`).map(l=>{let i=l.match(t.other.beginningSpace);if(i===null)return l;let[a]=i;return a.length>=n.length?l.slice(n.length):l}).join(` +`)}var lt=class{options;rules;lexer;constructor(r){this.options=r||we}space(r){let e=this.rules.block.newline.exec(r);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(r){let e=this.rules.block.code.exec(r);if(e){let t=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?t:Pe(t,` +`)}}}fences(r){let e=this.rules.block.fences.exec(r);if(e){let t=e[0],s=oi(t,e[3]||"",this.rules);return{type:"code",raw:t,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:s}}}heading(r){let e=this.rules.block.heading.exec(r);if(e){let t=e[2].trim();if(this.rules.other.endingHash.test(t)){let s=Pe(t,"#");(this.options.pedantic||!s||this.rules.other.endingSpaceChar.test(s))&&(t=s.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:t,tokens:this.lexer.inline(t)}}}hr(r){let e=this.rules.block.hr.exec(r);if(e)return{type:"hr",raw:Pe(e[0],` +`)}}blockquote(r){let e=this.rules.block.blockquote.exec(r);if(e){let t=Pe(e[0],` +`).split(` +`),s="",n="",l=[];for(;t.length>0;){let i=!1,a=[],u;for(u=0;u1,n={type:"list",raw:"",ordered:s,start:s?+t.slice(0,-1):"",loose:!1,items:[]};t=s?`\\d{1,9}\\${t.slice(-1)}`:`\\${t}`,this.options.pedantic&&(t=s?t:"[*+-]");let l=this.rules.other.listItemRegex(t),i=!1;for(;r;){let u=!1,c="",h="";if(!(e=l.exec(r))||this.rules.block.hr.test(r))break;c=e[0],r=r.substring(c.length);let m=e[2].split(` +`,1)[0].replace(this.rules.other.listReplaceTabs,J=>" ".repeat(3*J.length)),f=r.split(` +`,1)[0],y=!m.trim(),v=0;if(this.options.pedantic?(v=2,h=m.trimStart()):y?v=e[1].length+1:(v=e[2].search(this.rules.other.nonSpaceChar),v=v>4?1:v,h=m.slice(v),v+=e[1].length),y&&this.rules.other.blankLine.test(f)&&(c+=f+` +`,r=r.substring(f.length+1),u=!0),!u){let J=this.rules.other.nextBulletRegex(v),ee=this.rules.other.hrRegex(v),U=this.rules.other.fencesBeginRegex(v),D=this.rules.other.headingBeginRegex(v),se=this.rules.other.htmlBeginRegex(v);for(;r;){let ie=r.split(` +`,1)[0],te;if(f=ie,this.options.pedantic?(f=f.replace(this.rules.other.listReplaceNesting," "),te=f):te=f.replace(this.rules.other.tabCharGlobal," "),U.test(f)||D.test(f)||se.test(f)||J.test(f)||ee.test(f))break;if(te.search(this.rules.other.nonSpaceChar)>=v||!f.trim())h+=` +`+te.slice(v);else{if(y||m.replace(this.rules.other.tabCharGlobal," ").search(this.rules.other.nonSpaceChar)>=4||U.test(m)||D.test(m)||ee.test(m))break;h+=` +`+f}!y&&!f.trim()&&(y=!0),c+=ie+` +`,r=r.substring(ie.length+1),m=te.slice(v)}}n.loose||(i?n.loose=!0:this.rules.other.doubleBlankLine.test(c)&&(i=!0));let $=null,V;this.options.gfm&&($=this.rules.other.listIsTask.exec(h),$&&(V=$[0]!=="[ ] ",h=h.replace(this.rules.other.listReplaceTask,""))),n.items.push({type:"list_item",raw:c,task:!!$,checked:V,loose:!1,text:h,tokens:[]}),n.raw+=c}let a=n.items.at(-1);if(a)a.raw=a.raw.trimEnd(),a.text=a.text.trimEnd();else return;n.raw=n.raw.trimEnd();for(let u=0;um.type==="space"),h=c.length>0&&c.some(m=>this.rules.other.anyLine.test(m.raw));n.loose=h}if(n.loose)for(let u=0;u({text:a,tokens:this.lexer.inline(a),header:!1,align:l.align[u]})));return l}}lheading(r){let e=this.rules.block.lheading.exec(r);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(r){let e=this.rules.block.paragraph.exec(r);if(e){let t=e[1].charAt(e[1].length-1)===` +`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:t,tokens:this.lexer.inline(t)}}}text(r){let e=this.rules.block.text.exec(r);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(r){let e=this.rules.inline.escape.exec(r);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(r){let e=this.rules.inline.tag.exec(r);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(r){let e=this.rules.inline.link.exec(r);if(e){let t=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(t)){if(!this.rules.other.endAngleBracket.test(t))return;let l=Pe(t.slice(0,-1),"\\");if((t.length-l.length)%2===0)return}else{let l=ii(e[2],"()");if(l===-2)return;if(l>-1){let i=(e[0].indexOf("!")===0?5:4)+e[1].length+l;e[2]=e[2].substring(0,l),e[0]=e[0].substring(0,i).trim(),e[3]=""}}let s=e[2],n="";if(this.options.pedantic){let l=this.rules.other.pedanticHrefTitle.exec(s);l&&(s=l[1],n=l[3])}else n=e[3]?e[3].slice(1,-1):"";return s=s.trim(),this.rules.other.startAngleBracket.test(s)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(t)?s=s.slice(1):s=s.slice(1,-1)),En(e,{href:s&&s.replace(this.rules.inline.anyPunctuation,"$1"),title:n&&n.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(r,e){let t;if((t=this.rules.inline.reflink.exec(r))||(t=this.rules.inline.nolink.exec(r))){let s=(t[2]||t[1]).replace(this.rules.other.multipleSpaceGlobal," "),n=e[s.toLowerCase()];if(!n){let l=t[0].charAt(0);return{type:"text",raw:l,text:l}}return En(t,n,t[0],this.lexer,this.rules)}}emStrong(r,e,t=""){let s=this.rules.inline.emStrongLDelim.exec(r);if(!(!s||s[3]&&t.match(this.rules.other.unicodeAlphaNumeric))&&(!(s[1]||s[2])||!t||this.rules.inline.punctuation.exec(t))){let n=[...s[0]].length-1,l,i,a=n,u=0,c=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,e=e.slice(-1*r.length+n);(s=c.exec(e))!=null;){if(l=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!l)continue;if(i=[...l].length,s[3]||s[4]){a+=i;continue}else if((s[5]||s[6])&&n%3&&!((n+i)%3)){u+=i;continue}if(a-=i,a>0)continue;i=Math.min(i,i+a+u);let h=[...s[0]][0].length,m=r.slice(0,n+s.index+h+i);if(Math.min(n,i)%2){let y=m.slice(1,-1);return{type:"em",raw:m,text:y,tokens:this.lexer.inlineTokens(y)}}let f=m.slice(2,-2);return{type:"strong",raw:m,text:f,tokens:this.lexer.inlineTokens(f)}}}}codespan(r){let e=this.rules.inline.code.exec(r);if(e){let t=e[2].replace(this.rules.other.newLineCharGlobal," "),s=this.rules.other.nonSpaceChar.test(t),n=this.rules.other.startingSpaceChar.test(t)&&this.rules.other.endingSpaceChar.test(t);return s&&n&&(t=t.substring(1,t.length-1)),{type:"codespan",raw:e[0],text:t}}}br(r){let e=this.rules.inline.br.exec(r);if(e)return{type:"br",raw:e[0]}}del(r){let e=this.rules.inline.del.exec(r);if(e)return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2])}}autolink(r){let e=this.rules.inline.autolink.exec(r);if(e){let t,s;return e[2]==="@"?(t=e[1],s="mailto:"+t):(t=e[1],s=t),{type:"link",raw:e[0],text:t,href:s,tokens:[{type:"text",raw:t,text:t}]}}}url(r){let e;if(e=this.rules.inline.url.exec(r)){let t,s;if(e[2]==="@")t=e[0],s="mailto:"+t;else{let n;do n=e[0],e[0]=this.rules.inline._backpedal.exec(e[0])?.[0]??"";while(n!==e[0]);t=e[0],e[1]==="www."?s="http://"+e[0]:s=e[0]}return{type:"link",raw:e[0],text:t,href:s,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(r){let e=this.rules.inline.text.exec(r);if(e){let t=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:t}}}},pe=class $t{tokens;options;state;tokenizer;inlineQueue;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||we,this.options.tokenizer=this.options.tokenizer||new lt,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:q,block:et.normal,inline:Ne.normal};this.options.pedantic?(t.block=et.pedantic,t.inline=Ne.pedantic):this.options.gfm&&(t.block=et.gfm,this.options.breaks?t.inline=Ne.breaks:t.inline=Ne.gfm),this.tokenizer.rules=t}static get rules(){return{block:et,inline:Ne}}static lex(e,t){return new $t(t).lex(e)}static lexInline(e,t){return new $t(t).inlineTokens(e)}lex(e){e=e.replace(q.carriageReturn,` +`),this.blockTokens(e,this.tokens);for(let t=0;t(n=i.call({lexer:this},e,t))?(e=e.substring(n.raw.length),t.push(n),!0):!1))continue;if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length);let i=t.at(-1);n.raw.length===1&&i!==void 0?i.raw+=` +`:t.push(n);continue}if(n=this.tokenizer.code(e)){e=e.substring(n.raw.length);let i=t.at(-1);i?.type==="paragraph"||i?.type==="text"?(i.raw+=(i.raw.endsWith(` +`)?"":` +`)+n.raw,i.text+=` +`+n.text,this.inlineQueue.at(-1).src=i.text):t.push(n);continue}if(n=this.tokenizer.fences(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.heading(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.hr(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.blockquote(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.list(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.html(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.def(e)){e=e.substring(n.raw.length);let i=t.at(-1);i?.type==="paragraph"||i?.type==="text"?(i.raw+=(i.raw.endsWith(` +`)?"":` +`)+n.raw,i.text+=` +`+n.raw,this.inlineQueue.at(-1).src=i.text):this.tokens.links[n.tag]||(this.tokens.links[n.tag]={href:n.href,title:n.title},t.push(n));continue}if(n=this.tokenizer.table(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.lheading(e)){e=e.substring(n.raw.length),t.push(n);continue}let l=e;if(this.options.extensions?.startBlock){let i=1/0,a=e.slice(1),u;this.options.extensions.startBlock.forEach(c=>{u=c.call({lexer:this},a),typeof u=="number"&&u>=0&&(i=Math.min(i,u))}),i<1/0&&i>=0&&(l=e.substring(0,i+1))}if(this.state.top&&(n=this.tokenizer.paragraph(l))){let i=t.at(-1);s&&i?.type==="paragraph"?(i.raw+=(i.raw.endsWith(` +`)?"":` +`)+n.raw,i.text+=` +`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):t.push(n),s=l.length!==e.length,e=e.substring(n.raw.length);continue}if(n=this.tokenizer.text(e)){e=e.substring(n.raw.length);let i=t.at(-1);i?.type==="text"?(i.raw+=(i.raw.endsWith(` +`)?"":` +`)+n.raw,i.text+=` +`+n.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=i.text):t.push(n);continue}if(e){let i="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(i);break}else throw new Error(i)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let s=e,n=null;if(this.tokens.links){let a=Object.keys(this.tokens.links);if(a.length>0)for(;(n=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)a.includes(n[0].slice(n[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(n=this.tokenizer.rules.inline.anyPunctuation.exec(s))!=null;)s=s.slice(0,n.index)+"++"+s.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;(n=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,n.index)+"["+"a".repeat(n[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);let l=!1,i="";for(;e;){l||(i=""),l=!1;let a;if(this.options.extensions?.inline?.some(c=>(a=c.call({lexer:this},e,t))?(e=e.substring(a.raw.length),t.push(a),!0):!1))continue;if(a=this.tokenizer.escape(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.tag(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.link(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(a.raw.length);let c=t.at(-1);a.type==="text"&&c?.type==="text"?(c.raw+=a.raw,c.text+=a.text):t.push(a);continue}if(a=this.tokenizer.emStrong(e,s,i)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.codespan(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.br(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.del(e)){e=e.substring(a.raw.length),t.push(a);continue}if(a=this.tokenizer.autolink(e)){e=e.substring(a.raw.length),t.push(a);continue}if(!this.state.inLink&&(a=this.tokenizer.url(e))){e=e.substring(a.raw.length),t.push(a);continue}let u=e;if(this.options.extensions?.startInline){let c=1/0,h=e.slice(1),m;this.options.extensions.startInline.forEach(f=>{m=f.call({lexer:this},h),typeof m=="number"&&m>=0&&(c=Math.min(c,m))}),c<1/0&&c>=0&&(u=e.substring(0,c+1))}if(a=this.tokenizer.inlineText(u)){e=e.substring(a.raw.length),a.raw.slice(-1)!=="_"&&(i=a.raw.slice(-1)),l=!0;let c=t.at(-1);c?.type==="text"?(c.raw+=a.raw,c.text+=a.text):t.push(a);continue}if(e){let c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return t}},at=class{options;parser;constructor(r){this.options=r||we}space(r){return""}code({text:r,lang:e,escaped:t}){let s=(e||"").match(q.notSpaceStart)?.[0],n=r.replace(q.endingNewline,"")+` +`;return s?'
    '+(t?n:re(n,!0))+`
    +`:"
    "+(t?n:re(n,!0))+`
    +`}blockquote({tokens:r}){return`
    +${this.parser.parse(r)}
    +`}html({text:r}){return r}def(r){return""}heading({tokens:r,depth:e}){return`${this.parser.parseInline(r)} +`}hr(r){return`
    +`}list(r){let e=r.ordered,t=r.start,s="";for(let i=0;i +`+s+" +`}listitem(r){let e="";if(r.task){let t=this.checkbox({checked:!!r.checked});r.loose?r.tokens[0]?.type==="paragraph"?(r.tokens[0].text=t+" "+r.tokens[0].text,r.tokens[0].tokens&&r.tokens[0].tokens.length>0&&r.tokens[0].tokens[0].type==="text"&&(r.tokens[0].tokens[0].text=t+" "+re(r.tokens[0].tokens[0].text),r.tokens[0].tokens[0].escaped=!0)):r.tokens.unshift({type:"text",raw:t+" ",text:t+" ",escaped:!0}):e+=t+" "}return e+=this.parser.parse(r.tokens,!!r.loose),`
  • ${e}
  • +`}checkbox({checked:r}){return"'}paragraph({tokens:r}){return`

    ${this.parser.parseInline(r)}

    +`}table(r){let e="",t="";for(let n=0;n${s}`),` + +`+e+` +`+s+`
    +`}tablerow({text:r}){return` +${r} +`}tablecell(r){let e=this.parser.parseInline(r.tokens),t=r.header?"th":"td";return(r.align?`<${t} align="${r.align}">`:`<${t}>`)+e+` +`}strong({tokens:r}){return`${this.parser.parseInline(r)}`}em({tokens:r}){return`${this.parser.parseInline(r)}`}codespan({text:r}){return`${re(r,!0)}`}br(r){return"
    "}del({tokens:r}){return`${this.parser.parseInline(r)}`}link({href:r,title:e,tokens:t}){let s=this.parser.parseInline(t),n=vn(r);if(n===null)return s;r=n;let l='
    ",l}image({href:r,title:e,text:t,tokens:s}){s&&(t=this.parser.parseInline(s,this.parser.textRenderer));let n=vn(r);if(n===null)return re(t);r=n;let l=`${t}{let i=n[l].flat(1/0);t=t.concat(this.walkTokens(i,e))}):n.tokens&&(t=t.concat(this.walkTokens(n.tokens,e)))}}return t}use(...r){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return r.forEach(t=>{let s={...t};if(s.async=this.defaults.async||s.async||!1,t.extensions&&(t.extensions.forEach(n=>{if(!n.name)throw new Error("extension name required");if("renderer"in n){let l=e.renderers[n.name];l?e.renderers[n.name]=function(...i){let a=n.renderer.apply(this,i);return a===!1&&(a=l.apply(this,i)),a}:e.renderers[n.name]=n.renderer}if("tokenizer"in n){if(!n.level||n.level!=="block"&&n.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let l=e[n.level];l?l.unshift(n.tokenizer):e[n.level]=[n.tokenizer],n.start&&(n.level==="block"?e.startBlock?e.startBlock.push(n.start):e.startBlock=[n.start]:n.level==="inline"&&(e.startInline?e.startInline.push(n.start):e.startInline=[n.start]))}"childTokens"in n&&n.childTokens&&(e.childTokens[n.name]=n.childTokens)}),s.extensions=e),t.renderer){let n=this.defaults.renderer||new at(this.defaults);for(let l in t.renderer){if(!(l in n))throw new Error(`renderer '${l}' does not exist`);if(["options","parser"].includes(l))continue;let i=l,a=t.renderer[i],u=n[i];n[i]=(...c)=>{let h=a.apply(n,c);return h===!1&&(h=u.apply(n,c)),h||""}}s.renderer=n}if(t.tokenizer){let n=this.defaults.tokenizer||new lt(this.defaults);for(let l in t.tokenizer){if(!(l in n))throw new Error(`tokenizer '${l}' does not exist`);if(["options","rules","lexer"].includes(l))continue;let i=l,a=t.tokenizer[i],u=n[i];n[i]=(...c)=>{let h=a.apply(n,c);return h===!1&&(h=u.apply(n,c)),h}}s.tokenizer=n}if(t.hooks){let n=this.defaults.hooks||new st;for(let l in t.hooks){if(!(l in n))throw new Error(`hook '${l}' does not exist`);if(["options","block"].includes(l))continue;let i=l,a=t.hooks[i],u=n[i];st.passThroughHooks.has(l)?n[i]=c=>{if(this.defaults.async)return Promise.resolve(a.call(n,c)).then(m=>u.call(n,m));let h=a.call(n,c);return u.call(n,h)}:n[i]=(...c)=>{let h=a.apply(n,c);return h===!1&&(h=u.apply(n,c)),h}}s.hooks=n}if(t.walkTokens){let n=this.defaults.walkTokens,l=t.walkTokens;s.walkTokens=function(i){let a=[];return a.push(l.call(this,i)),n&&(a=a.concat(n.call(this,i))),a}}this.defaults={...this.defaults,...s}}),this}setOptions(r){return this.defaults={...this.defaults,...r},this}lexer(r,e){return pe.lex(r,e??this.defaults)}parser(r,e){return he.parse(r,e??this.defaults)}parseMarkdown(r){return(e,t)=>{let s={...t},n={...this.defaults,...s},l=this.onError(!!n.silent,!!n.async);if(this.defaults.async===!0&&s.async===!1)return l(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return l(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return l(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));n.hooks&&(n.hooks.options=n,n.hooks.block=r);let i=n.hooks?n.hooks.provideLexer():r?pe.lex:pe.lexInline,a=n.hooks?n.hooks.provideParser():r?he.parse:he.parseInline;if(n.async)return Promise.resolve(n.hooks?n.hooks.preprocess(e):e).then(u=>i(u,n)).then(u=>n.hooks?n.hooks.processAllTokens(u):u).then(u=>n.walkTokens?Promise.all(this.walkTokens(u,n.walkTokens)).then(()=>u):u).then(u=>a(u,n)).then(u=>n.hooks?n.hooks.postprocess(u):u).catch(l);try{n.hooks&&(e=n.hooks.preprocess(e));let u=i(e,n);n.hooks&&(u=n.hooks.processAllTokens(u)),n.walkTokens&&this.walkTokens(u,n.walkTokens);let c=a(u,n);return n.hooks&&(c=n.hooks.postprocess(c)),c}catch(u){return l(u)}}}onError(r,e){return t=>{if(t.message+=` +Please report this to https://github.com/markedjs/marked.`,r){let s="

    An error occurred:

    "+re(t.message+"",!0)+"
    ";return e?Promise.resolve(s):s}if(e)return Promise.reject(t);throw t}}},ke=new li;function E(r,e){return ke.parse(r,e)}E.options=E.setOptions=function(r){return ke.setOptions(r),E.defaults=ke.defaults,Un(E.defaults),E};E.getDefaults=Bt;E.defaults=we;E.use=function(...r){return ke.use(...r),E.defaults=ke.defaults,Un(E.defaults),E};E.walkTokens=function(r,e){return ke.walkTokens(r,e)};E.parseInline=ke.parseInline;E.Parser=he;E.parser=he.parse;E.Renderer=at;E.TextRenderer=Yt;E.Lexer=pe;E.lexer=pe.lex;E.Tokenizer=lt;E.Hooks=st;E.parse=E;E.options;E.setOptions;E.use;E.walkTokens;E.parseInline;he.parse;pe.lex;/*! @license DOMPurify 3.2.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.6/LICENSE */const{entries:Vn,setPrototypeOf:Sn,isFrozen:ai,getPrototypeOf:ci,getOwnPropertyDescriptor:ui}=Object;let{freeze:j,seal:Y,create:Qn}=Object,{apply:Ot,construct:Nt}=typeof Reflect<"u"&&Reflect;j||(j=function(e){return e});Y||(Y=function(e){return e});Ot||(Ot=function(e,t,s){return e.apply(t,s)});Nt||(Nt=function(e,t){return new e(...t)});const tt=Z(Array.prototype.forEach),pi=Z(Array.prototype.lastIndexOf),Rn=Z(Array.prototype.pop),ze=Z(Array.prototype.push),hi=Z(Array.prototype.splice),it=Z(String.prototype.toLowerCase),Et=Z(String.prototype.toString),Ln=Z(String.prototype.match),Ue=Z(String.prototype.replace),di=Z(String.prototype.indexOf),fi=Z(String.prototype.trim),Q=Z(Object.prototype.hasOwnProperty),G=Z(RegExp.prototype.test),Fe=gi(TypeError);function Z(r){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,s=new Array(t>1?t-1:0),n=1;n2&&arguments[2]!==void 0?arguments[2]:it;Sn&&Sn(r,null);let s=e.length;for(;s--;){let n=e[s];if(typeof n=="string"){const l=t(n);l!==n&&(ai(e)||(e[s]=l),n=l)}r[n]=!0}return r}function mi(r){for(let e=0;e/gm),yi=Y(/\$\{[\w\W]*/gm),_i=Y(/^data-[\-\w.\u00B7-\uFFFF]+$/),Ti=Y(/^aria-[\-\w]+$/),Kn=Y(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),vi=Y(/^(?:\w+script|data):/i),Ai=Y(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Jn=Y(/^html$/i),Ei=Y(/^[a-z][.\w]*(-[.\w]+)+$/i);var Mn=Object.freeze({__proto__:null,ARIA_ATTR:Ti,ATTR_WHITESPACE:Ai,CUSTOM_ELEMENT:Ei,DATA_ATTR:_i,DOCTYPE_NAME:Jn,ERB_EXPR:wi,IS_ALLOWED_URI:Kn,IS_SCRIPT_OR_DATA:vi,MUSTACHE_EXPR:xi,TMPLIT_EXPR:yi});const He={element:1,text:3,progressingInstruction:7,comment:8,document:9},Si=function(){return typeof window>"u"?null:window},Ri=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let s=null;const n="data-tt-policy-suffix";t&&t.hasAttribute(n)&&(s=t.getAttribute(n));const l="dompurify"+(s?"#"+s:"");try{return e.createPolicy(l,{createHTML(i){return i},createScriptURL(i){return i}})}catch{return console.warn("TrustedTypes policy "+l+" could not be created."),null}},On=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function er(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Si();const e=k=>er(k);if(e.version="3.2.6",e.removed=[],!r||!r.document||r.document.nodeType!==He.document||!r.Element)return e.isSupported=!1,e;let{document:t}=r;const s=t,n=s.currentScript,{DocumentFragment:l,HTMLTemplateElement:i,Node:a,Element:u,NodeFilter:c,NamedNodeMap:h=r.NamedNodeMap||r.MozNamedAttrMap,HTMLFormElement:m,DOMParser:f,trustedTypes:y}=r,v=u.prototype,$=Be(v,"cloneNode"),V=Be(v,"remove"),J=Be(v,"nextSibling"),ee=Be(v,"childNodes"),U=Be(v,"parentNode");if(typeof i=="function"){const k=t.createElement("template");k.content&&k.content.ownerDocument&&(t=k.content.ownerDocument)}let D,se="";const{implementation:ie,createNodeIterator:te,createDocumentFragment:pt,getElementsByTagName:ht}=t,{importNode:dt}=s;let I=On();e.isSupported=typeof Vn=="function"&&typeof U=="function"&&ie&&ie.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:de,ERB_EXPR:Ce,TMPLIT_EXPR:x,DATA_ATTR:_,ARIA_ATTR:H,IS_SCRIPT_OR_DATA:oe,ATTR_WHITESPACE:De,CUSTOM_ELEMENT:ft}=Mn;let{IS_ALLOWED_URI:Vt}=Mn,O=null;const Qt=w({},[...Cn,...St,...Rt,...Lt,...Dn]);let z=null;const Kt=w({},[...In,...Ct,...$n,...nt]);let C=Object.seal(Qn(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ie=null,gt=null,Jt=!0,mt=!0,en=!1,tn=!0,ye=!1,je=!0,fe=!1,kt=!1,bt=!1,_e=!1,Ze=!1,Xe=!1,nn=!0,rn=!1;const tr="user-content-";let xt=!0,$e=!1,Te={},ve=null;const sn=w({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let on=null;const ln=w({},["audio","video","img","source","image","track"]);let wt=null;const an=w({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ye="http://www.w3.org/1998/Math/MathML",Ve="http://www.w3.org/2000/svg",le="http://www.w3.org/1999/xhtml";let Ae=le,yt=!1,_t=null;const nr=w({},[Ye,Ve,le],Et);let Qe=w({},["mi","mo","mn","ms","mtext"]),Ke=w({},["annotation-xml"]);const rr=w({},["title","style","font","a","script"]);let Me=null;const sr=["application/xhtml+xml","text/html"],ir="text/html";let N=null,Ee=null;const or=t.createElement("form"),cn=function(o){return o instanceof RegExp||o instanceof Function},Tt=function(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Ee&&Ee===o)){if((!o||typeof o!="object")&&(o={}),o=ue(o),Me=sr.indexOf(o.PARSER_MEDIA_TYPE)===-1?ir:o.PARSER_MEDIA_TYPE,N=Me==="application/xhtml+xml"?Et:it,O=Q(o,"ALLOWED_TAGS")?w({},o.ALLOWED_TAGS,N):Qt,z=Q(o,"ALLOWED_ATTR")?w({},o.ALLOWED_ATTR,N):Kt,_t=Q(o,"ALLOWED_NAMESPACES")?w({},o.ALLOWED_NAMESPACES,Et):nr,wt=Q(o,"ADD_URI_SAFE_ATTR")?w(ue(an),o.ADD_URI_SAFE_ATTR,N):an,on=Q(o,"ADD_DATA_URI_TAGS")?w(ue(ln),o.ADD_DATA_URI_TAGS,N):ln,ve=Q(o,"FORBID_CONTENTS")?w({},o.FORBID_CONTENTS,N):sn,Ie=Q(o,"FORBID_TAGS")?w({},o.FORBID_TAGS,N):ue({}),gt=Q(o,"FORBID_ATTR")?w({},o.FORBID_ATTR,N):ue({}),Te=Q(o,"USE_PROFILES")?o.USE_PROFILES:!1,Jt=o.ALLOW_ARIA_ATTR!==!1,mt=o.ALLOW_DATA_ATTR!==!1,en=o.ALLOW_UNKNOWN_PROTOCOLS||!1,tn=o.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ye=o.SAFE_FOR_TEMPLATES||!1,je=o.SAFE_FOR_XML!==!1,fe=o.WHOLE_DOCUMENT||!1,_e=o.RETURN_DOM||!1,Ze=o.RETURN_DOM_FRAGMENT||!1,Xe=o.RETURN_TRUSTED_TYPE||!1,bt=o.FORCE_BODY||!1,nn=o.SANITIZE_DOM!==!1,rn=o.SANITIZE_NAMED_PROPS||!1,xt=o.KEEP_CONTENT!==!1,$e=o.IN_PLACE||!1,Vt=o.ALLOWED_URI_REGEXP||Kn,Ae=o.NAMESPACE||le,Qe=o.MATHML_TEXT_INTEGRATION_POINTS||Qe,Ke=o.HTML_INTEGRATION_POINTS||Ke,C=o.CUSTOM_ELEMENT_HANDLING||{},o.CUSTOM_ELEMENT_HANDLING&&cn(o.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(C.tagNameCheck=o.CUSTOM_ELEMENT_HANDLING.tagNameCheck),o.CUSTOM_ELEMENT_HANDLING&&cn(o.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(C.attributeNameCheck=o.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),o.CUSTOM_ELEMENT_HANDLING&&typeof o.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(C.allowCustomizedBuiltInElements=o.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ye&&(mt=!1),Ze&&(_e=!0),Te&&(O=w({},Dn),z=[],Te.html===!0&&(w(O,Cn),w(z,In)),Te.svg===!0&&(w(O,St),w(z,Ct),w(z,nt)),Te.svgFilters===!0&&(w(O,Rt),w(z,Ct),w(z,nt)),Te.mathMl===!0&&(w(O,Lt),w(z,$n),w(z,nt))),o.ADD_TAGS&&(O===Qt&&(O=ue(O)),w(O,o.ADD_TAGS,N)),o.ADD_ATTR&&(z===Kt&&(z=ue(z)),w(z,o.ADD_ATTR,N)),o.ADD_URI_SAFE_ATTR&&w(wt,o.ADD_URI_SAFE_ATTR,N),o.FORBID_CONTENTS&&(ve===sn&&(ve=ue(ve)),w(ve,o.FORBID_CONTENTS,N)),xt&&(O["#text"]=!0),fe&&w(O,["html","head","body"]),O.table&&(w(O,["tbody"]),delete Ie.tbody),o.TRUSTED_TYPES_POLICY){if(typeof o.TRUSTED_TYPES_POLICY.createHTML!="function")throw Fe('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof o.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Fe('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');D=o.TRUSTED_TYPES_POLICY,se=D.createHTML("")}else D===void 0&&(D=Ri(y,n)),D!==null&&typeof se=="string"&&(se=D.createHTML(""));j&&j(o),Ee=o}},un=w({},[...St,...Rt,...ki]),pn=w({},[...Lt,...bi]),lr=function(o){let p=U(o);(!p||!p.tagName)&&(p={namespaceURI:Ae,tagName:"template"});const g=it(o.tagName),S=it(p.tagName);return _t[o.namespaceURI]?o.namespaceURI===Ve?p.namespaceURI===le?g==="svg":p.namespaceURI===Ye?g==="svg"&&(S==="annotation-xml"||Qe[S]):!!un[g]:o.namespaceURI===Ye?p.namespaceURI===le?g==="math":p.namespaceURI===Ve?g==="math"&&Ke[S]:!!pn[g]:o.namespaceURI===le?p.namespaceURI===Ve&&!Ke[S]||p.namespaceURI===Ye&&!Qe[S]?!1:!pn[g]&&(rr[g]||!un[g]):!!(Me==="application/xhtml+xml"&&_t[o.namespaceURI]):!1},ne=function(o){ze(e.removed,{element:o});try{U(o).removeChild(o)}catch{V(o)}},Se=function(o,p){try{ze(e.removed,{attribute:p.getAttributeNode(o),from:p})}catch{ze(e.removed,{attribute:null,from:p})}if(p.removeAttribute(o),o==="is")if(_e||Ze)try{ne(p)}catch{}else try{p.setAttribute(o,"")}catch{}},hn=function(o){let p=null,g=null;if(bt)o=""+o;else{const M=Ln(o,/^[\r\n\t ]+/);g=M&&M[0]}Me==="application/xhtml+xml"&&Ae===le&&(o=''+o+"");const S=D?D.createHTML(o):o;if(Ae===le)try{p=new f().parseFromString(S,Me)}catch{}if(!p||!p.documentElement){p=ie.createDocument(Ae,"template",null);try{p.documentElement.innerHTML=yt?se:S}catch{}}const F=p.body||p.documentElement;return o&&g&&F.insertBefore(t.createTextNode(g),F.childNodes[0]||null),Ae===le?ht.call(p,fe?"html":"body")[0]:fe?p.documentElement:F},dn=function(o){return te.call(o.ownerDocument||o,o,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},vt=function(o){return o instanceof m&&(typeof o.nodeName!="string"||typeof o.textContent!="string"||typeof o.removeChild!="function"||!(o.attributes instanceof h)||typeof o.removeAttribute!="function"||typeof o.setAttribute!="function"||typeof o.namespaceURI!="string"||typeof o.insertBefore!="function"||typeof o.hasChildNodes!="function")},fn=function(o){return typeof a=="function"&&o instanceof a};function ae(k,o,p){tt(k,g=>{g.call(e,o,p,Ee)})}const gn=function(o){let p=null;if(ae(I.beforeSanitizeElements,o,null),vt(o))return ne(o),!0;const g=N(o.nodeName);if(ae(I.uponSanitizeElement,o,{tagName:g,allowedTags:O}),je&&o.hasChildNodes()&&!fn(o.firstElementChild)&&G(/<[/\w!]/g,o.innerHTML)&&G(/<[/\w!]/g,o.textContent)||o.nodeType===He.progressingInstruction||je&&o.nodeType===He.comment&&G(/<[/\w]/g,o.data))return ne(o),!0;if(!O[g]||Ie[g]){if(!Ie[g]&&kn(g)&&(C.tagNameCheck instanceof RegExp&&G(C.tagNameCheck,g)||C.tagNameCheck instanceof Function&&C.tagNameCheck(g)))return!1;if(xt&&!ve[g]){const S=U(o)||o.parentNode,F=ee(o)||o.childNodes;if(F&&S){const M=F.length;for(let X=M-1;X>=0;--X){const ce=$(F[X],!0);ce.__removalCount=(o.__removalCount||0)+1,S.insertBefore(ce,J(o))}}}return ne(o),!0}return o instanceof u&&!lr(o)||(g==="noscript"||g==="noembed"||g==="noframes")&&G(/<\/no(script|embed|frames)/i,o.innerHTML)?(ne(o),!0):(ye&&o.nodeType===He.text&&(p=o.textContent,tt([de,Ce,x],S=>{p=Ue(p,S," ")}),o.textContent!==p&&(ze(e.removed,{element:o.cloneNode()}),o.textContent=p)),ae(I.afterSanitizeElements,o,null),!1)},mn=function(o,p,g){if(nn&&(p==="id"||p==="name")&&(g in t||g in or))return!1;if(!(mt&&!gt[p]&&G(_,p))){if(!(Jt&&G(H,p))){if(!z[p]||gt[p]){if(!(kn(o)&&(C.tagNameCheck instanceof RegExp&&G(C.tagNameCheck,o)||C.tagNameCheck instanceof Function&&C.tagNameCheck(o))&&(C.attributeNameCheck instanceof RegExp&&G(C.attributeNameCheck,p)||C.attributeNameCheck instanceof Function&&C.attributeNameCheck(p))||p==="is"&&C.allowCustomizedBuiltInElements&&(C.tagNameCheck instanceof RegExp&&G(C.tagNameCheck,g)||C.tagNameCheck instanceof Function&&C.tagNameCheck(g))))return!1}else if(!wt[p]){if(!G(Vt,Ue(g,De,""))){if(!((p==="src"||p==="xlink:href"||p==="href")&&o!=="script"&&di(g,"data:")===0&&on[o])){if(!(en&&!G(oe,Ue(g,De,"")))){if(g)return!1}}}}}}return!0},kn=function(o){return o!=="annotation-xml"&&Ln(o,ft)},bn=function(o){ae(I.beforeSanitizeAttributes,o,null);const{attributes:p}=o;if(!p||vt(o))return;const g={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:z,forceKeepAttr:void 0};let S=p.length;for(;S--;){const F=p[S],{name:M,namespaceURI:X,value:ce}=F,Oe=N(M),At=ce;let B=M==="value"?At:fi(At);if(g.attrName=Oe,g.attrValue=B,g.keepAttr=!0,g.forceKeepAttr=void 0,ae(I.uponSanitizeAttribute,o,g),B=g.attrValue,rn&&(Oe==="id"||Oe==="name")&&(Se(M,o),B=tr+B),je&&G(/((--!?|])>)|<\/(style|title)/i,B)){Se(M,o);continue}if(g.forceKeepAttr)continue;if(!g.keepAttr){Se(M,o);continue}if(!tn&&G(/\/>/i,B)){Se(M,o);continue}ye&&tt([de,Ce,x],wn=>{B=Ue(B,wn," ")});const xn=N(o.nodeName);if(!mn(xn,Oe,B)){Se(M,o);continue}if(D&&typeof y=="object"&&typeof y.getAttributeType=="function"&&!X)switch(y.getAttributeType(xn,Oe)){case"TrustedHTML":{B=D.createHTML(B);break}case"TrustedScriptURL":{B=D.createScriptURL(B);break}}if(B!==At)try{X?o.setAttributeNS(X,M,B):o.setAttribute(M,B),vt(o)?ne(o):Rn(e.removed)}catch{Se(M,o)}}ae(I.afterSanitizeAttributes,o,null)},ar=function k(o){let p=null;const g=dn(o);for(ae(I.beforeSanitizeShadowDOM,o,null);p=g.nextNode();)ae(I.uponSanitizeShadowNode,p,null),gn(p),bn(p),p.content instanceof l&&k(p.content);ae(I.afterSanitizeShadowDOM,o,null)};return e.sanitize=function(k){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},p=null,g=null,S=null,F=null;if(yt=!k,yt&&(k=""),typeof k!="string"&&!fn(k))if(typeof k.toString=="function"){if(k=k.toString(),typeof k!="string")throw Fe("dirty is not a string, aborting")}else throw Fe("toString is not a function");if(!e.isSupported)return k;if(kt||Tt(o),e.removed=[],typeof k=="string"&&($e=!1),$e){if(k.nodeName){const ce=N(k.nodeName);if(!O[ce]||Ie[ce])throw Fe("root node is forbidden and cannot be sanitized in-place")}}else if(k instanceof a)p=hn(""),g=p.ownerDocument.importNode(k,!0),g.nodeType===He.element&&g.nodeName==="BODY"||g.nodeName==="HTML"?p=g:p.appendChild(g);else{if(!_e&&!ye&&!fe&&k.indexOf("<")===-1)return D&&Xe?D.createHTML(k):k;if(p=hn(k),!p)return _e?null:Xe?se:""}p&&bt&&ne(p.firstChild);const M=dn($e?k:p);for(;S=M.nextNode();)gn(S),bn(S),S.content instanceof l&&ar(S.content);if($e)return k;if(_e){if(Ze)for(F=pt.call(p.ownerDocument);p.firstChild;)F.appendChild(p.firstChild);else F=p;return(z.shadowroot||z.shadowrootmode)&&(F=dt.call(s,F,!0)),F}let X=fe?p.outerHTML:p.innerHTML;return fe&&O["!doctype"]&&p.ownerDocument&&p.ownerDocument.doctype&&p.ownerDocument.doctype.name&&G(Jn,p.ownerDocument.doctype.name)&&(X=" +`+X),ye&&tt([de,Ce,x],ce=>{X=Ue(X,ce," ")}),D&&Xe?D.createHTML(X):X},e.setConfig=function(){let k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Tt(k),kt=!0},e.clearConfig=function(){Ee=null,kt=!1},e.isValidAttribute=function(k,o,p){Ee||Tt({});const g=N(k),S=N(o);return mn(g,S,p)},e.addHook=function(k,o){typeof o=="function"&&ze(I[k],o)},e.removeHook=function(k,o){if(o!==void 0){const p=pi(I[k],o);return p===-1?void 0:hi(I[k],p,1)[0]}return Rn(I[k])},e.removeHooks=function(k){I[k]=[]},e.removeAllHooks=function(){I=On()},e}var Li=er();const Ci={class:"min-h-screen flex items-center justify-center p-4 overflow-hidden transition-colors duration-300"},Di={class:"w-full max-w-md relative z-10"},Ii={class:"p-8"},$i=be({__name:"RetrievewFileView",setup(r){const{t:e}=We(),t=mr(),s=window.location.origin,n=wr(),l=xe("isDarkMode"),i=Ar(),{receiveData:a}=kr(i),u=K(""),c=K({readonly:!1,loading:!1}),h=K(""),m=K(null),f=K(!1),y=xr(),v=a,$=JSON.parse(localStorage.getItem("config")||"{}"),V=K(null);br(()=>{V.value&&V.value.focus();const x=y.query.code;x&&typeof x=="string"&&(u.value=x)}),Dt(u,x=>{x.length===5&&U()});const J=x=>x.downloadUrl?x.downloadUrl.startsWith("http")?x.downloadUrl:`${s}${x.downloadUrl}`:"",ee=async()=>{m.value&&m.value.content&&await Sr(m.value.content,{successMsg:e("fileRecord.contentCopied"),errorMsg:e("fileRecord.copyFailed")})},U=async()=>{if(u.value.length!==5){t.showAlert(e("retrieve.messages.invalidCode"),"error");return}c.value.readonly=!0,c.value.loading=!0;try{const x=await yr.post("/share/select/",{code:u.value}),_=x.data||x;if(_&&_.code===200)if(_.detail){const H=_.detail.text.startsWith("/share/download")||_.detail.name!=="Text",oe={id:Date.now(),code:_.detail.code,filename:_.detail.name,size:D(_.detail.size),downloadUrl:H?_.detail.text:null,content:H?null:_.detail.text,date:new Date().toLocaleString()};let De=!0;i.receiveData.forEach(ft=>{ft.code===oe.code&&(De=!1)}),De&&i.addReceiveData(oe),H?m.value=oe:(m.value=oe,I.value=!0),t.showAlert(e("retrieve.messages.retrieveSuccess"),"success")}else t.showAlert(e("retrieve.messages.invalidCodeError"),"error");else t.showAlert(e("retrieve.messages.retrieveFailure")+_.detail,"error")}catch(x){console.error("Retrieve failed:",x);const _=x,H=_?.response?.data?.detail||_?.message||e("retrieve.messages.unknownError");t.showAlert(e("retrieve.messages.networkError")+H,"error")}finally{c.value.readonly=!1,c.value.loading=!1,u.value=""}},D=x=>{if(x===0)return"0 "+e("fileSize.bytes");const _=1024,H=[e("fileSize.bytes"),e("fileSize.kb"),e("fileSize.mb"),e("fileSize.gb"),e("fileSize.tb")],oe=Math.floor(Math.log(x)/Math.log(_));return parseFloat((x/Math.pow(_,oe)).toFixed(2))+" "+H[oe]},se=x=>{m.value=x},ie=x=>{const _=v.value.findIndex(H=>H.id===x);_!==-1&&i.deleteReceiveData(_)},te=()=>{f.value=!f.value},pt=()=>{n.push("/send")},ht=x=>x.downloadUrl?`${s}${x.downloadUrl}`:`${s}?code=${x.code}`,dt=x=>{if(x.downloadUrl)window.open(`${x.downloadUrl.startsWith("http")?"":s}${x.downloadUrl}`,"_blank");else if(x.content){const _=new Blob([x.content],{type:"text/plain;charset=utf-8"});As.saveAs(_,`${x.filename}.txt`)}},I=K(!1),de=K("");Dt(()=>m.value?.content,async x=>{if(x)try{const _=await E(x);de.value=Li.sanitize(_,{ALLOWED_TAGS:["p","br","strong","em","u","h1","h2","h3","h4","h5","h6","ul","ol","li","blockquote","code","pre","a","img"],ALLOWED_ATTR:["href","src","alt","title","class"],ALLOWED_URI_REGEXP:/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp|xxx):|[^a-z]|[a-z+.-]+(?:[^a-z+.-:]|$))/i})}catch(_){console.error("Markdown 渲染失败:",_),de.value=x}else de.value=""},{immediate:!0});const Ce=()=>{I.value=!0};return(x,_)=>(P(),W("div",Ci,[b("div",Di,[b("div",{class:T(["rounded-3xl shadow-2xl overflow-hidden border transform transition-all duration-300",[d(l)?"bg-gray-800 bg-opacity-50 backdrop-filter backdrop-blur-xl border-gray-700":"bg-white border-gray-200"]])},[b("div",Ii,[L(Er,{title:d($).name,onTitleClick:pt},null,8,["title"]),L(Br,{"input-status":c.value,error:!!h.value,onSubmit:U,"onUpdate:code":_[0]||(_[0]=H=>u.value=H),ref:"retrieveFormRef"},null,8,["input-status","error"])]),L(Gr,{"link-text":x.$t("retrieve.needSendFile"),"link-to":"/send","drawer-text":x.$t("retrieve.recordsDrawer"),onToggleDrawer:te},null,8,["link-text","drawer-text"])],2)]),L(qr,{visible:f.value,title:x.$t("retrieve.recordsDrawer"),onClose:te},{default:Le(()=>[L(ms,{records:d(v),onViewDetails:se,onDownloadRecord:dt,onDeleteRecord:ie},null,8,["records"])]),_:1},8,["visible","title"]),L(ls,{visible:!!m.value,record:m.value,onClose:_[1]||(_[1]=H=>m.value=null),onShowContentPreview:Ce,"get-download-url":J,"get-qr-code-value":ht},null,8,["visible","record"]),L(_s,{visible:I.value,"rendered-content":de.value,onClose:_[2]||(_[2]=H=>I.value=!1),onCopyContent:ee},null,8,["visible","rendered-content"])]))}}),Bi=Re($i,[["__scopeId","data-v-a89ba9bf"]]);export{Bi as default}; diff --git a/themes/2024/assets/RetrievewFileView-pLqL6j5e.css b/themes/2024/assets/RetrievewFileView-pLqL6j5e.css new file mode 100644 index 0000000..c4cdaf5 --- /dev/null +++ b/themes/2024/assets/RetrievewFileView-pLqL6j5e.css @@ -0,0 +1 @@ +.w-97-100[data-v-8f0be1b0]{width:calc(100% - 1rem)}.drawer-enter-active[data-v-9c6698ec],.drawer-leave-active[data-v-9c6698ec]{transition:transform .3s ease}.drawer-enter-from[data-v-9c6698ec],.drawer-leave-to[data-v-9c6698ec]{transform:translate(100%)}@media (min-width: 640px){.sm\:w-120[data-v-9c6698ec]{width:30rem}}.fade-enter-active[data-v-5c3436d6],.fade-leave-active[data-v-5c3436d6]{transition:opacity .3s ease}.fade-enter-from[data-v-5c3436d6],.fade-leave-to[data-v-5c3436d6]{opacity:0}.list-enter-active[data-v-31facf40],.list-leave-active[data-v-31facf40]{transition:all .3s ease}.list-enter-from[data-v-31facf40],.list-leave-to[data-v-31facf40]{opacity:0;transform:translate(30px)}.list-move[data-v-31facf40]{transition:transform .3s ease}.fade-enter-active[data-v-eb3f9cc8],.fade-leave-active[data-v-eb3f9cc8]{transition:opacity .3s ease}.fade-enter-from[data-v-eb3f9cc8],.fade-leave-to[data-v-eb3f9cc8]{opacity:0}.custom-scrollbar[data-v-eb3f9cc8]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.3) rgba(243,244,246,.5)}.custom-scrollbar[data-v-eb3f9cc8]::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar[data-v-eb3f9cc8]::-webkit-scrollbar-track{background:#f3f4f680;border-radius:3px}.custom-scrollbar[data-v-eb3f9cc8]::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:3px;-webkit-transition:background-color .3s;transition:background-color .3s}.custom-scrollbar[data-v-eb3f9cc8]::-webkit-scrollbar-thumb:hover{background-color:#9ca3afb3}[data-v-eb3f9cc8] [class*=dark] .custom-scrollbar{scrollbar-color:rgba(75,85,99,.5) rgba(31,41,55,.5)}[data-v-eb3f9cc8] [class*=dark] .custom-scrollbar::-webkit-scrollbar-track{background:#1f293780}[data-v-eb3f9cc8] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb{background-color:#4b556380}[data-v-eb3f9cc8] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#4b5563b3}.custom-scrollbar[data-v-eb3f9cc8]{background:inherit}.break-words[data-v-eb3f9cc8]{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.overflow-wrap-anywhere[data-v-eb3f9cc8]{overflow-wrap:anywhere}[data-v-eb3f9cc8] .prose{text-align:left;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}[data-v-eb3f9cc8] .prose h1,[data-v-eb3f9cc8] .prose h2,[data-v-eb3f9cc8] .prose h3,[data-v-eb3f9cc8] .prose h4,[data-v-eb3f9cc8] .prose h5,[data-v-eb3f9cc8] .prose h6{color:#4f46e5;word-wrap:break-word;overflow-wrap:break-word}[data-v-eb3f9cc8] .prose p,[data-v-eb3f9cc8] .prose div,[data-v-eb3f9cc8] .prose span,[data-v-eb3f9cc8] .prose code,[data-v-eb3f9cc8] .prose pre{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}[data-v-eb3f9cc8] .prose pre{white-space:pre-wrap;overflow-x:auto}[data-v-eb3f9cc8] .prose code{white-space:pre-wrap}@media (prefers-color-scheme: dark){[data-v-eb3f9cc8] .prose h1,[data-v-eb3f9cc8] .prose h2,[data-v-eb3f9cc8] .prose h3,[data-v-eb3f9cc8] .prose h4,[data-v-eb3f9cc8] .prose h5,[data-v-eb3f9cc8] .prose h6{color:#818cf8}}@keyframes blob-a89ba9bf{0%,to{transform:translate(0) scale(1)}25%{transform:translate(20px,-50px) scale(1.1)}50%{transform:translate(-20px,20px) scale(.9)}75%{transform:translate(50px,50px) scale(1.05)}}.animate-spin-slow[data-v-a89ba9bf]{animation:spin-a89ba9bf 8s linear infinite}@keyframes spin-a89ba9bf{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.w-97-100[data-v-a89ba9bf]{width:97%}[data-v-a89ba9bf] .prose{text-align:left;word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}[data-v-a89ba9bf] .prose h1,[data-v-a89ba9bf] .prose h2,[data-v-a89ba9bf] .prose h3,[data-v-a89ba9bf] .prose h4,[data-v-a89ba9bf] .prose h5,[data-v-a89ba9bf] .prose h6{color:#4f46e5;word-wrap:break-word;overflow-wrap:break-word}[data-v-a89ba9bf] .prose p,[data-v-a89ba9bf] .prose div,[data-v-a89ba9bf] .prose span,[data-v-a89ba9bf] .prose code,[data-v-a89ba9bf] .prose pre{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}[data-v-a89ba9bf] .prose pre{white-space:pre-wrap;overflow-x:auto}[data-v-a89ba9bf] .prose code{white-space:pre-wrap}@media (prefers-color-scheme: dark){[data-v-a89ba9bf] .prose h1,[data-v-a89ba9bf] .prose h2,[data-v-a89ba9bf] .prose h3,[data-v-a89ba9bf] .prose h4,[data-v-a89ba9bf] .prose h5,[data-v-a89ba9bf] .prose h6{color:#818cf8}}@media (min-width: 640px){.sm\:w-120[data-v-a89ba9bf]{width:30rem}}.custom-scrollbar[data-v-a89ba9bf]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.3) rgba(243,244,246,.5)}.custom-scrollbar[data-v-a89ba9bf]::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar[data-v-a89ba9bf]::-webkit-scrollbar-track{background:#f3f4f680;border-radius:3px}.custom-scrollbar[data-v-a89ba9bf]::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:3px;-webkit-transition:background-color .3s;transition:background-color .3s}.custom-scrollbar[data-v-a89ba9bf]::-webkit-scrollbar-thumb:hover{background-color:#9ca3afb3}[data-v-a89ba9bf] [class*=dark] .custom-scrollbar{scrollbar-color:rgba(75,85,99,.5) rgba(31,41,55,.5)}[data-v-a89ba9bf] [class*=dark] .custom-scrollbar::-webkit-scrollbar-track{background:#1f293780}[data-v-a89ba9bf] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb{background-color:#4b556380}[data-v-a89ba9bf] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#4b5563b3}.custom-scrollbar[data-v-a89ba9bf]{background:inherit}.break-words[data-v-a89ba9bf]{word-wrap:break-word;overflow-wrap:break-word;word-break:break-word}.overflow-wrap-anywhere[data-v-a89ba9bf]{overflow-wrap:anywhere} diff --git a/themes/2024/assets/SendFileView-C_jTXUIX.js b/themes/2024/assets/SendFileView-C_jTXUIX.js new file mode 100644 index 0000000..bf2ab91 --- /dev/null +++ b/themes/2024/assets/SendFileView-C_jTXUIX.js @@ -0,0 +1,36 @@ +import{c as X,d as se,u as oe,a as F,o as A,b as r,n,e as t,i as ne,t as C,r as E,f as Fe,w as We,_ as ge,g as z,C as Xe,h as re,j as Q,k as ze,l as S,m as Ze,p as Ee,q as ee,P as K,s as Je,S as Ke,F as Qe,v as te,T as ie,x as we,y as de,z as Ye,A as et,B as ke,D as Se,E as ue,G as tt,X as _e,H as rt,I as st,J as ae}from"./index-B9FIg8c4.js";import{u as at,P as ot,S as Ce,C as nt,c as lt,a as it,Q as dt,b as ce}from"./PageHeader-C8MTYIg6.js";import{F as Me}from"./file-CSeBUDan.js";import{E as ut,T as ct}from"./trash-DPD8vC5o.js";import"./box-BaIzuVAS.js";/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const pt=X("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const pe=X("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gt=X("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ht=X("cloud-upload",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"m8 17 4-4 4 4",key:"1quai1"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const ft=X("loader",[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vt=X("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const mt=X("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]),Ie=M=>M>=1024*1024*1024?Math.round(M/(1024*1024*1024))+"GB":M>=1024*1024?Math.round(M/(1024*1024))+"MB":Math.round(M/1024)+"KB",yt={class:"flex justify-center space-x-4 mb-6"},xt=se({__name:"SendTypeSelector",props:{selectedType:{}},emits:["update:selectedType"],setup(M,{emit:v}){const{t:I}=oe(),s=v,f=ne("isDarkMode"),p=_=>{s("update:selectedType",_)};return(_,g)=>(A(),F("div",yt,[r("button",{type:"button",onClick:g[0]||(g[0]=u=>p("file")),class:n(["px-4 py-2 rounded-lg transition-colors duration-300",_.selectedType==="file"?"bg-indigo-600 text-white":t(f)?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"])},C(t(I)("nav.sendFile")),3),r("button",{type:"button",onClick:g[1]||(g[1]=u=>p("text")),class:n(["px-4 py-2 rounded-lg transition-colors duration-300",_.selectedType==="text"?"bg-indigo-600 text-white":t(f)?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"])},C(t(I)("send.sendText")),3)]))}}),bt=se({__name:"BorderProgressBar",props:{progress:{}},setup(M){const v=M,I=E(null),s=E(null);let f=null;const p=()=>{if(!f||!s.value||!I.value)return;const g=I.value.clientWidth,u=I.value.clientHeight;s.value.width=g,s.value.height=u;const c=4,l=8;f.lineWidth=c;const T=f.createLinearGradient(0,0,g,u);T.addColorStop(0,"#4f46e5"),T.addColorStop(.5,"#7c3aed"),T.addColorStop(1,"#db2777"),f.strokeStyle="rgba(229, 231, 235, 0.2)",_(f,c/2,c/2,g-c,u-c,l),f.stroke();const $=((g+u)*2-8*l+2*Math.PI*l)*v.progress/100;f.strokeStyle=T,f.lineCap="round",f.lineJoin="round",f.beginPath();let a=$;const y=c/2,L=g-c,V=u-c;if(a>0){const w=Math.min(L-2*l,a);f.moveTo(l+y,y),f.lineTo(w+l+y,y),a-=w}if(a>0){const w=Math.min(Math.PI/2,a/l);f.arc(L-l+y,l+y,l,-Math.PI/2,w-Math.PI/2,!1),a-=w*l}if(a>0){const w=Math.min(V-2*l,a);f.lineTo(L+y,w+l+y),a-=w}if(a>0){const w=Math.min(Math.PI/2,a/l);f.arc(L-l+y,V-l+y,l,0,w,!1),a-=w*l}if(a>0){const w=Math.min(L-2*l,a);f.lineTo(L-w-l+y,V+y),a-=w}if(a>0){const w=Math.min(Math.PI/2,a/l);f.arc(l+y,V-l+y,l,Math.PI/2,Math.PI/2+w,!1),a-=w*l}if(a>0){const w=Math.min(V-2*l,a);f.lineTo(y,V-w-l+y),a-=w}if(a>0){const w=Math.min(Math.PI/2,a/l);f.arc(l+y,l+y,l,Math.PI,Math.PI+w,!1)}f.stroke()};function _(g,u,c,l,T,b){g.beginPath(),g.moveTo(u+b,c),g.lineTo(u+l-b,c),g.arcTo(u+l,c,u+l,c+b,b),g.lineTo(u+l,c+T-b),g.arcTo(u+l,c+T,u+l-b,c+T,b),g.lineTo(u+b,c+T),g.arcTo(u,c+T,u,c+T-b,b),g.lineTo(u,c+b),g.arcTo(u,c,u+b,c,b),g.closePath()}return Fe(()=>{s.value&&(f=s.value.getContext("2d"),p())}),We(()=>v.progress,p),(g,u)=>(A(),F("div",{class:"border-progress-container",ref_key:"container",ref:I},[r("canvas",{ref_key:"canvas",ref:s,class:"border-progress-canvas"},null,512)],512))}}),wt=ge(bt,[["__scopeId","data-v-2fbf5085"]]),kt=["accept","disabled"],St={key:0,class:"absolute inset-0 w-full h-full"},_t={class:"block truncate"},Ct={key:1,class:"mt-3 w-full"},Mt=se({__name:"FileUploadArea",props:{selectedFile:{default:null},progress:{default:0},placeholder:{default:""},description:{default:""},acceptedTypes:{default:"*"},uploadStatus:{default:"idle"},uploadedBytes:{default:0},totalBytes:{default:0},errorMessage:{default:""},allowRetry:{type:Boolean,default:!0},retryText:{default:"重试"},showProgressDetails:{type:Boolean,default:!0}},emits:["fileSelected","fileDrop","retry"],setup(M,{emit:v}){const{t:I}=oe(),s=M,f=v,p=ne("isDarkMode"),_=z(()=>s.placeholder||I("send.uploadArea.placeholder")),g=z(()=>s.description||I("send.uploadArea.description")),u=E(null),c=z(()=>["uploading","initializing","confirming"].includes(s.uploadStatus)),l=z(()=>s.uploadStatus==="error"),T=z(()=>s.uploadStatus==="success"),b=z(()=>s.selectedFile?s.selectedFile.name:_.value),$=z(()=>c.value?ft:T.value?Xe:l.value?pt:ht),a=z(()=>c.value?p?"text-indigo-400 animate-spin":"text-indigo-600 animate-spin":T.value?p?"text-green-400":"text-green-600":l.value?p?"text-red-400":"text-red-600":p?"text-gray-400 group-hover:text-indigo-400":"text-gray-600 group-hover:text-indigo-600"),y=z(()=>l.value?p?"border-red-500/50":"border-red-300":T.value?p?"border-green-500/50":"border-green-300":""),L=z(()=>l.value&&s.errorMessage?s.errorMessage:s.uploadStatus==="initializing"?"正在初始化上传...":s.uploadStatus==="uploading"?"正在上传文件...":s.uploadStatus==="confirming"?"正在确认上传...":T.value?"上传成功!":g.value),V=z(()=>l.value?p?"text-red-400":"text-red-500":T.value?p?"text-green-400":"text-green-500":p?"text-gray-500":"text-gray-400"),w=h=>{if(h===0)return"0 B";const x=1024,B=["B","KB","MB","GB"],j=Math.floor(Math.log(h)/Math.log(x));return parseFloat((h/Math.pow(x,j)).toFixed(2))+" "+B[j]},O=()=>{c.value||u.value?.click()},Y=h=>{const x=h.target,B=x.files?.[0];B&&f("fileSelected",B),x.value=""},H=h=>{c.value||f("fileDrop",h)},m=()=>{f("retry")};return(h,x)=>(A(),F("div",{class:n(["rounded-xl p-8 flex flex-col items-center justify-center border-2 border-dashed transition-all duration-300 group cursor-pointer relative",[t(p)?"bg-gray-800 bg-opacity-50 border-gray-600 hover:border-indigo-500":"bg-gray-100 border-gray-300 hover:border-indigo-500",y.value]]),onClick:O,onDragover:x[0]||(x[0]=re(()=>{},["prevent"])),onDrop:re(H,["prevent"])},[r("input",{ref_key:"fileInput",ref:u,type:"file",class:"hidden",onChange:Y,accept:h.acceptedTypes,disabled:c.value},null,40,kt),h.progress>0?(A(),F("div",St,[S(wt,{progress:h.progress},null,8,["progress"])])):Q("",!0),(A(),ze(Ze($.value),{class:n(["w-16 h-16 transition-colors duration-300",a.value])},null,8,["class"])),r("p",{class:n(["mt-4 text-sm transition-colors duration-300 w-full text-center",t(p)?"text-gray-400 group-hover:text-indigo-400":"text-gray-600 group-hover:text-indigo-600"])},[r("span",_t,C(b.value),1)],2),r("p",{class:n(["mt-2 text-xs",V.value])},C(L.value),3),c.value&&h.showProgressDetails?(A(),F("div",Ct,[r("div",{class:n(["flex justify-between text-xs mb-1",[t(p)?"text-gray-400":"text-gray-500"]])},[r("span",null,C(w(h.uploadedBytes))+" / "+C(w(h.totalBytes)),1),r("span",null,C(h.progress)+"%",1)],2)])):Q("",!0),l.value&&h.allowRetry?(A(),F("button",{key:2,onClick:re(m,["stop"]),class:n(["mt-3 px-4 py-2 text-sm rounded-lg transition-colors duration-200",[t(p)?"bg-indigo-600 hover:bg-indigo-500 text-white":"bg-indigo-500 hover:bg-indigo-600 text-white"]])},C(h.retryText),3)):Q("",!0)],34))}}),It={class:"flex flex-col"},Tt=["value","rows","placeholder"],At=se({__name:"TextInputArea",props:{modelValue:{},rows:{default:7},placeholder:{default:"在此输入要发送的文本..."}},emits:["update:modelValue"],setup(M,{emit:v}){const{t:I}=oe(),s=M,f=v,p=ne("isDarkMode"),_=z(()=>s.placeholder||I("send.uploadArea.textInput")),g=u=>{const c=u.target;f("update:modelValue",c.value)};return(u,c)=>(A(),F("div",It,[r("textarea",{value:u.modelValue,onInput:g,rows:u.rows,placeholder:_.value,class:n(["flex-grow px-4 py-3 rounded-xl placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 transition duration-300 resize-none custom-scrollbar",t(p)?"bg-gray-800 bg-opacity-50 text-white":"bg-white text-gray-900 border border-gray-300"])},null,42,Tt)]))}}),Ft=ge(At,[["__scopeId","data-v-bebdfe92"]]);function zt(){try{const M=localStorage.getItem(Ke.CONFIG);if(M){const v=JSON.parse(M);if(v.uploadSize&&v.uploadSize>0)return v.uploadSize}}catch{}return Qe.MAX_FILE_SIZE}const R={IDLE:"idle",INITIALIZING:"initializing",UPLOADING:"uploading",CONFIRMING:"confirming",SUCCESS:"success",ERROR:"error"},Te=1,Ae="day";function Et(){const M=Ee(),v=E(R.IDLE),I=E(null),s=E({loaded:0,total:0,percentage:0}),f=E(""),p=E(""),_=z(()=>v.value===R.INITIALIZING),g=z(()=>v.value===R.UPLOADING),u=z(()=>v.value===R.CONFIRMING),c=z(()=>v.value===R.SUCCESS),l=z(()=>v.value===R.ERROR),T=z(()=>I.value?.mode??null),b=m=>{const h=zt();if(m.size>h){const x=Math.round(h/1024/1024);return p.value=`文件大小不能超过 ${x}MB`,M.showAlert(p.value,"error"),!1}return!0},$=m=>h=>{s.value={loaded:Math.max(0,h.loaded),total:Math.max(0,h.total),percentage:Math.min(100,Math.max(0,h.percentage))},m&&m(s.value)},a=m=>{if(v.value=R.ERROR,Je.isAxiosError(m)){const h=m.response?.status,x=m.response?.data?.detail;switch(h){case 400:p.value=x||"请求参数错误";break;case 403:p.value=x||"操作被禁止";break;case 404:p.value="上传会话不存在或已过期";break;case 500:p.value="服务器错误,请稍后重试";break;default:p.value=x||"上传失败,请重试"}}else m instanceof Error?p.value=m.message:p.value="未知错误";M.showAlert(p.value,"error")},y=async(m,h)=>{try{v.value=R.INITIALIZING;const x=await K.initUpload({file_name:m.name,file_size:m.size,expire_value:h?.expireValue??Te,expire_style:h?.expireStyle??Ae});if(x.code===200&&x.detail)return I.value=x.detail,x.detail;throw new Error(x.message||"初始化上传失败")}catch(x){return a(x),null}},L=async(m,h,x)=>{try{v.value=R.UPLOADING;const B=$(x?.onProgress);if(!await K.directUploadToS3(h.upload_url,m,B))throw new Error("S3 上传失败");v.value=R.CONFIRMING;const Z=await K.confirmUpload(h.upload_id,{expire_value:x?.expireValue??Te,expire_style:x?.expireStyle??Ae});if(Z.code===200&&Z.detail?.code)return v.value=R.SUCCESS,f.value=String(Z.detail.code),s.value={loaded:m.size,total:m.size,percentage:100},M.showAlert("文件上传成功!","success"),f.value;throw new Error(Z.message||"确认上传失败")}catch(B){return a(B),null}},V=async(m,h,x)=>{try{v.value=R.UPLOADING;const B=$(x?.onProgress),j=await K.proxyUpload(h.upload_id,m,B);if(j.code===200&&j.detail?.code)return v.value=R.SUCCESS,f.value=String(j.detail.code),s.value={loaded:m.size,total:m.size,percentage:100},M.showAlert("文件上传成功!","success"),f.value;throw new Error(j.message||"代理上传失败")}catch(B){return a(B),null}},w=async(m,h)=>{if(H(),!b(m))return v.value=R.ERROR,null;const x=await y(m,h);return x?x.mode==="direct"?await L(m,x,h):await V(m,x,h):null},O=async()=>{if(I.value?.upload_id)try{await K.cancelUpload(I.value.upload_id),M.showAlert("上传已取消","info")}catch(m){console.warn("取消上传失败:",m)}finally{H()}},Y=async()=>{if(!I.value?.upload_id)return null;try{const m=await K.getUploadStatus(I.value.upload_id);return m.code===200&&m.detail?(m.detail.is_expired&&(p.value="上传会话已过期",M.showAlert(p.value,"warning")),m.detail):null}catch(m){return a(m),null}},H=()=>{v.value=R.IDLE,I.value=null,s.value={loaded:0,total:0,percentage:0},f.value="",p.value=""};return{presignStatus:ee(v),uploadSession:ee(I),uploadProgress:ee(s),uploadedCode:ee(f),errorMessage:ee(p),isInitializing:_,isUploading:g,isConfirming:u,isSuccess:c,isError:l,currentMode:T,uploadFile:w,cancelUpload:O,getStatus:Y,reset:H}}const Dt={class:"p-8"},Ut={key:"file",class:"grid grid-cols-1 gap-8"},Pt={key:"text",class:"grid grid-cols-1 gap-8"},Rt={class:"flex flex-col space-y-3"},Bt={class:"relative flex-grow group"},$t=["placeholder"],Lt=["value"],Vt=["disabled"],jt={class:"relative z-10 flex items-center justify-center text-lg"},Nt={key:0,class:"w-6 h-6 mr-2 animate-spin",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24"},Gt={class:"mt-6 text-center"},Ot={class:"flex-grow overflow-y-auto p-6"},Ht={class:"flex-shrink-0 mr-4"},qt={class:"flex-grow min-w-0 mr-4"},Wt={class:"flex-shrink-0 flex space-x-2"},Xt=["onClick"],Zt=["onClick"],Jt=["onClick"],Kt={key:0,class:"fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-50 p-3 sm:p-4 overflow-y-auto"},Qt={class:"flex items-center justify-between"},Yt={class:"p-4 sm:p-6"},er={class:"flex items-center mb-3 sm:mb-4"},tr={class:"ml-3 sm:ml-4 min-w-0 flex-1"},rr={class:"grid grid-cols-2 gap-3 sm:gap-4"},sr={class:"flex items-center min-w-0"},ar={class:"flex items-center min-w-0"},or={class:"grid grid-cols-1 md:grid-cols-2 gap-4 sm:gap-6"},nr={class:"space-y-3 sm:space-y-4"},lr={class:"bg-gradient-to-br from-indigo-500 to-purple-600 rounded-xl p-4 sm:p-5 text-white"},ir={class:"flex items-center justify-between mb-3 sm:mb-4"},dr={class:"text-2xl sm:text-3xl font-bold tracking-wider text-center break-all"},ur={class:"flex items-center justify-between mb-2 sm:mb-3"},cr={class:"bg-white p-3 sm:p-4 rounded-lg shadow-sm mb-3 sm:mb-4"},pr=se({__name:"SendFileView",setup(M){const v=JSON.parse(localStorage.getItem("config")||"{}"),I=st(),s=ne("isDarkMode"),f=at(),p=E("file"),_=E(null),g=E(""),u=E(v.expireStyle?.[0]||"day"),c=E("1"),l=E(0),T=E(!1),b=E(null),$=E(!1),{t:a}=oe(),y=Ee(),L=z(()=>f.shareData),{uploadFile:V,reset:w}=Et(),O=E(""),Y=async o=>{_.value=o,he()&&fe(o)&&(O.value=await h(o))},H=async o=>{if(o.dataTransfer?.files&&o.dataTransfer.files.length>0){const e=o.dataTransfer.files[0];if(_.value=e,!me())return;O.value=await h(e)}},m=async o=>{const e=o.clipboardData?.items;if(e)for(let i=0;i{const D=k.trim();if(!D)return;const U=document.getElementById("text-content");if(!U){g.value+=D;return}const N=U.selectionStart,P=U.selectionEnd;if(N!==P){const G=g.value.substring(0,N),q=g.value.substring(P);g.value=G+D+q,setTimeout(()=>{const W=N+D.length;U.setSelectionRange(W,W),U.focus()},0)}else{const G=N,q=g.value.substring(0,G),W=g.value.substring(G);g.value=q+D+W,setTimeout(()=>{const le=G+D.length;U.setSelectionRange(le,le),U.focus()},0)}})}},h=async o=>{try{if(o.size<=10*1024*1024){const P=await o.arrayBuffer();if(window.isSecureContext){const J=await crypto.subtle.digest("SHA-256",P);return Array.from(new Uint8Array(J)).map(q=>q.toString(16).padStart(2,"0")).join("")}return x(o)}const e=5*1024*1024,i=o.slice(0,e),d=o.slice(-e),[k,D]=await Promise.all([i.arrayBuffer(),d.arrayBuffer()]),U=new Uint8Array(k.byteLength+D.byteLength+16);U.set(new Uint8Array(k),0),U.set(new Uint8Array(D),k.byteLength);const N=new TextEncoder().encode(o.size.toString());if(U.set(N,k.byteLength+D.byteLength),window.isSecureContext){const P=await crypto.subtle.digest("SHA-256",U);return Array.from(new Uint8Array(P)).map(G=>G.toString(16).padStart(2,"0")).join("")}return x(o)}catch(e){return console.error("File hash calculation failed:",e),x(o)}},x=o=>{const e=`${o.name}-${o.size}-${o.lastModified}`;let i=0;for(let d=0;d{switch(o){case"day":return a("send.expiration.placeholders.days");case"hour":return a("send.expiration.placeholders.hours");case"minute":return a("send.expiration.placeholders.minutes");case"count":return a("send.expiration.placeholders.count");case"forever":return a("send.expiration.placeholders.forever");default:return a("send.expiration.placeholders.default")}},j=(o=u.value)=>{switch(o){case"day":return a("send.expiration.units.days");case"hour":return a("send.expiration.units.hours");case"minute":return a("send.expiration.units.minutes");case"count":return a("send.expiration.units.times");case"forever":return a("send.expiration.units.forever");default:return""}},Z=(o,e)=>{if(o==="forever")return a("send.expiration.units.forever");if(o==="count")return a("send.messages.expiresAfterCount",{count:e});const i=new Date,d=parseInt(e);switch(o){case"minute":i.setMinutes(i.getMinutes()+d);break;case"hour":i.setHours(i.getHours()+d);break;case"day":i.setDate(i.getDate()+d);break;default:return a("send.messages.expiresAfter",{value:e,unit:j(o)})}const k=i.getFullYear(),D=(i.getMonth()+1).toString().padStart(2,"0"),U=i.getDate().toString().padStart(2,"0"),N=i.getHours().toString().padStart(2,"0"),P=i.getMinutes().toString().padStart(2,"0");return a("send.messages.expiresAt",{date:`${k}-${D}-${U} ${N}:${P}`})},De=async o=>{try{const e=await h(o);O.value=e,console.log("Calculated file hash:",e);const i=5*1024*1024,d=Math.ceil(o.size/i),k=await ae.post("chunk/upload/init/",{file_name:o.name,file_size:o.size,chunk_size:i,file_hash:O.value});if(k.code!==200)throw new Error(a("send.messages.initChunkUploadFailed"));if(k.detail?.existed)return k;const D=k.detail?.upload_id,U=new Set(k.detail?.uploaded_chunks||[]);for(let P=0;P{const Ne=Array.from(U).reduce((Oe,be)=>{const He=Math.min((be+1)*i,o.size),qe=be*i;return Oe+(He-qe)},0),Ge=Math.round((Ne+P*i+je.loaded)*100/o.size);l.value=Math.min(Ge,99)}})).code!==200)throw new Error(a("send.messages.chunkUploadFailed",{index:P}))}const N=await ae.post(`chunk/upload/complete/${D}`,{expire_value:c.value?parseInt(c.value):1,expire_style:u.value});if(N.code!==200)throw new Error(a("send.messages.completeUploadFailed"));return N}catch(e){if(console.error("切片上传失败:",e),e&&typeof e=="object"&&"response"in e){const i=e;i.response?.data?.detail&&y.showAlert(i.response.data.detail,"error")}else y.showAlert(a("send.messages.uploadFailed"),"error");throw e}},Ue=async o=>{const e=await V(o,{expireValue:c.value?parseInt(c.value):1,expireStyle:u.value,onProgress:i=>{l.value=i.percentage}});if(e)return{code:200,detail:{code:e,name:o.name}};throw new Error(a("send.messages.uploadFailed"))},he=()=>v.openUpload===0&&localStorage.getItem("token")===null?(y.showAlert(a("send.messages.guestUploadDisabled"),"error"),!1):!0,fe=o=>o.size>v.uploadSize?(y.showAlert(a("send.messages.fileSizeExceeded",{size:Ie(v.uploadSize)}),"error"),_.value=null,!1):!0,ve=(o,e)=>{if(o==="forever"||o==="count")return!0;const i=v.max_save_seconds||0;if(i===0)return!0;let d=0;switch(o){case"minute":d=parseInt(e)*60;break;case"hour":d=parseInt(e)*3600;break;case"day":d=parseInt(e)*86400;break;default:return!1}return d<=i},me=()=>!(!he()||!fe(_.value)||!ve(u.value,c.value)),Pe=async()=>{if(!$.value){$.value=!0;try{if(p.value==="file"&&!_.value){y.showAlert(a("send.messages.selectFile"),"error");return}if(p.value==="text"&&!g.value.trim()){y.showAlert(a("send.messages.enterText"),"error");return}if(u.value!=="forever"&&!c.value){y.showAlert(a("send.messages.enterExpirationValue"),"error");return}if(!ve(u.value,c.value)){const e=Math.floor(v.max_save_seconds/86400);y.showAlert(a("send.messages.expirationTooLong",{days:e}),"error");return}let o;if(p.value==="file")v.enableChunk?o=await De(_.value):o=await Ue(_.value);else{const e=new FormData;e.append("text",g.value),e.append("expire_value",c.value),e.append("expire_style",u.value),o=await ae.post("share/text/",e,{headers:{"Content-Type":"multipart/form-data"}})}if(o&&o.code===200){const e=o.detail?.code||"",i=o.detail?.name||"",d={id:Date.now(),filename:i,date:new Date().toISOString().split("T")[0],size:p.value==="text"?`${(g.value.length/1024).toFixed(2)} KB`:`${(_.value.size/(1024*1024)).toFixed(1)} MB`,expiration:u.value==="forever"?a("send.expiration.forever"):Z(u.value,c.value),retrieveCode:e};f.addShareDataRecord(d),y.showAlert(a("send.messages.sendSuccess",{code:e}),"success"),_.value=null,g.value="",l.value=0,w(),b.value=d,await ce(e)}else throw new Error(a("send.messages.serverError"))}catch(o){if(o&&typeof o=="object"&&"response"in o){const e=o;e.response?.data?.detail&&y.showAlert(e.response.data.detail,"error")}else y.showAlert(a("send.messages.sendFailed"),"error")}finally{l.value=0,$.value=!1}}},Re=()=>{I.push("/")},ye=()=>{T.value=!T.value},Be=o=>{b.value=o},$e=o=>{const e=f.shareData.findIndex(i=>i.id===o);e!==-1&&f.deleteShareData(e)},Le=window.location.origin+"/#/",Ve=o=>`${Le}?code=${o.retrieveCode}`,xe=o=>{const i=(parseInt(c.value)||0)+o;i>=1&&(c.value=i.toString())};return Fe(()=>{console.log("SendFileView mounted")}),(o,e)=>{const i=tt("router-link");return A(),F("div",{class:"min-h-screen flex items-center justify-center p-4 overflow-hidden transition-colors duration-300",onPaste:re(m,["prevent"])},[r("div",{class:n(["rounded-3xl shadow-2xl overflow-hidden border w-full max-w-md transition-colors duration-300",[t(s)?"bg-white bg-opacity-10 backdrop-filter backdrop-blur-xl border-gray-700":"bg-white border-gray-200"]])},[r("div",Dt,[S(ot,{title:t(v).name,onTitleClick:Re},null,8,["title"]),r("form",{onSubmit:re(Pe,["prevent"]),class:"space-y-8"},[S(xt,{"selected-type":p.value,"onUpdate:selectedType":e[0]||(e[0]=d=>p.value=d)},null,8,["selected-type"]),S(ie,{name:"fade",mode:"out-in"},{default:te(()=>[p.value==="file"?(A(),F("div",Ut,[S(Mt,{"selected-file":_.value,progress:l.value,description:`支持各种常见格式,最大${t(Ie)(t(v).uploadSize)}`,onFileSelected:Y,onFileDrop:H},null,8,["selected-file","progress","description"])])):(A(),F("div",Pt,[S(Ft,{modelValue:g.value,"onUpdate:modelValue":e[1]||(e[1]=d=>g.value=d),placeholder:t(a)("send.uploadArea.textInput")},null,8,["modelValue","placeholder"])]))]),_:1}),r("div",Rt,[r("label",{class:n(["text-sm font-medium",t(s)?"text-gray-300":"text-gray-700"])},C(t(a)("send.expiration.label")),3),r("div",Bt,[r("div",{class:n(["relative h-12 rounded-2xl border transition-all duration-300 shadow-sm",t(s)?"bg-gray-800/60 border-gray-700/60 group-hover:border-gray-600/80 group-hover:shadow-lg group-hover:shadow-gray-900/20":"bg-white border-gray-200 group-hover:border-gray-300 group-hover:shadow-md group-hover:shadow-gray-200/50"])},[u.value!=="forever"?(A(),F(de,{key:0},[we(r("input",{"onUpdate:modelValue":e[2]||(e[2]=d=>c.value=d),type:"number",placeholder:B(),min:"1",class:n(["w-full h-full px-5 pr-32 rounded-2xl placeholder-gray-400 transition-all duration-300","focus:outline-none focus:ring-2 focus:ring-offset-0","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none","bg-transparent",t(s)?"text-gray-100 focus:ring-indigo-500/80 placeholder-gray-500":"text-gray-900 focus:ring-indigo-500/60 placeholder-gray-400"])},null,10,$t),[[Ye,c.value]]),r("div",{class:n(["absolute right-28 top-0 h-full flex flex-col border-l",[t(s)?"border-gray-700/60":"border-gray-200"]])},[r("button",{type:"button",onClick:e[3]||(e[3]=d=>xe(1)),class:n(["flex-1 px-2 flex items-center justify-center transition-all duration-200",[t(s)?"hover:bg-gray-700/60 text-gray-400 hover:text-gray-200":"hover:bg-gray-50 text-gray-500 hover:text-gray-700"]])},[...e[10]||(e[10]=[r("svg",{class:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 15l7-7 7 7"})],-1)])],2),r("button",{type:"button",onClick:e[4]||(e[4]=d=>xe(-1)),class:n(["flex-1 px-2 flex items-center justify-center transition-all duration-200",[t(s)?"hover:bg-gray-700/60 text-gray-400 hover:text-gray-200":"hover:bg-gray-50 text-gray-500 hover:text-gray-700"]])},[...e[11]||(e[11]=[r("svg",{class:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})],-1)])],2)],2)],64)):Q("",!0),we(r("select",{"onUpdate:modelValue":e[5]||(e[5]=d=>u.value=d),class:n(["absolute right-0 top-0 h-full appearance-none cursor-pointer transition-all duration-300","focus:outline-none focus:ring-2 focus:ring-offset-0",u.value==="forever"?"w-full px-5 rounded-2xl":"w-28 pl-4 pr-9 border-l rounded-r-2xl",t(s)?"text-gray-100 border-gray-700/60 focus:ring-indigo-500/80 bg-gray-800/60":"text-gray-900 border-gray-200 focus:ring-indigo-500/60 bg-white"]),style:ke({color:t(s)?"#f3f4f6":"#111827",backgroundColor:t(s)?"rgba(31, 41, 55, 0.5)":"#ffffff"})},[(A(!0),F(de,null,Se(t(v).expireStyle,d=>(A(),F("option",{value:d,key:d,class:n([t(s)?"bg-gray-800 text-gray-100":"bg-white text-gray-900"]),style:ke({color:t(s)?"#f3f4f6":"#111827",backgroundColor:t(s)?"#1f2937":"#ffffff"})},C(j(d)),15,Lt))),128))],6),[[et,u.value]]),r("div",{class:n(["absolute pointer-events-none",[u.value==="forever"?"right-3":"right-2","top-1/2 -translate-y-1/2"]])},[(A(),F("svg",{class:n(["w-4 h-4 transition-colors duration-300",[t(s)?"text-gray-400":"text-gray-500"]]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...e[12]||(e[12]=[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))],2)],2)])]),r("button",{type:"submit",disabled:$.value,class:"w-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 text-white font-bold py-4 px-6 rounded-lg focus:outline-none focus:ring-2 focus:ring-purple-500 focus:ring-opacity-50 transition-all duration-300 transform hover:scale-105 hover:shadow-lg relative overflow-hidden group disabled:opacity-50 disabled:cursor-not-allowed disabled:transform-none disabled:hover:scale-100"},[e[14]||(e[14]=r("span",{class:"absolute top-0 left-0 w-full h-full bg-white opacity-0 group-hover:opacity-20 transition-opacity duration-300"},null,-1)),r("span",jt,[$.value?(A(),F("svg",Nt,[...e[13]||(e[13]=[r("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"},null,-1),r("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"},null,-1)])])):(A(),ze(t(vt),{key:1,class:"w-6 h-6 mr-2"})),r("span",null,C($.value?t(a)("send.submitting"):t(a)("send.submit")),1)])],8,Vt)],32),r("div",Gt,[S(i,{to:"/",class:"text-indigo-400 hover:text-indigo-300 transition duration-300"},{default:te(()=>[ue(C(t(a)("send.needRetrieveFile")),1)]),_:1})])]),r("div",{class:n(["px-8 py-4 bg-opacity-50 flex justify-between items-center",[t(s)?"bg-gray-800":"bg-gray-100"]])},[r("span",{class:n(["text-sm flex items-center",[t(s)?"text-gray-300":"text-gray-800"]])},[S(t(Ce),{class:"w-4 h-4 mr-1 text-green-400"}),ue(" "+C(t(a)("send.secureEncryption")),1)],2),r("button",{onClick:ye,class:n(["text-sm hover:text-indigo-300 transition duration-300 flex items-center",[t(s)?"text-indigo-400":"text-indigo-600"]])},[ue(C(t(a)("send.sendRecords"))+" ",1),S(t(nt),{class:"w-4 h-4 ml-1"})],2)],2)],2),S(ie,{name:"drawer"},{default:te(()=>[T.value?(A(),F("div",{key:0,class:n(["fixed inset-y-0 right-0 w-full sm:w-120 bg-opacity-70 backdrop-filter backdrop-blur-xl shadow-2xl z-50 overflow-hidden flex flex-col",[t(s)?"bg-gray-900":"bg-white"]])},[r("div",{class:n(["flex justify-between items-center p-6 border-b",[t(s)?"border-gray-700":"border-gray-200"]])},[r("h3",{class:n(["text-2xl font-bold",[t(s)?"text-white":"text-gray-800"]])},C(t(a)("send.sendRecords")),3),r("button",{onClick:ye,class:n(["hover:text-white transition duration-300",[t(s)?"text-gray-400":"text-gray-800"]])},[S(t(_e),{class:"w-6 h-6"})],2)],2),r("div",Ot,[S(rt,{name:"list",tag:"div",class:"space-y-4"},{default:te(()=>[(A(!0),F(de,null,Se(L.value,d=>(A(),F("div",{key:d.id,class:n(["bg-opacity-50 rounded-lg p-4 flex items-center shadow-md hover:shadow-lg transition duration-300 transform hover:scale-102",[t(s)?"bg-gray-800 hover:bg-gray-700":"bg-gray-100 hover:bg-white"]])},[r("div",Ht,[S(t(Me),{class:n(["w-10 h-10",[t(s)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])]),r("div",qt,[r("p",{class:n(["font-medium text-lg truncate",[t(s)?"text-white":"text-gray-800"]])},C(d.filename?d.filename:"Text"),3),r("p",{class:n(["text-sm truncate",[t(s)?"text-gray-400":"text-gray-600"]])},C(d.date)+" · "+C(d.size),3)]),r("div",Wt,[r("button",{onClick:k=>t(ce)(d.retrieveCode),class:n(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[t(s)?"hover:bg-blue-400 text-blue-400":"hover:bg-blue-100 text-blue-600"]])},[S(t(pe),{class:"w-5 h-5"})],10,Xt),r("button",{onClick:k=>Be(d),class:n(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[t(s)?"hover:bg-green-400 text-green-400":"hover:bg-green-100 text-green-600"]])},[S(t(ut),{class:"w-5 h-5"})],10,Zt),r("button",{onClick:k=>$e(d.id),class:n(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[t(s)?"hover:bg-red-400 text-red-400":"hover:bg-red-100 text-red-600"]])},[S(t(ct),{class:"w-5 h-5"})],10,Jt)])],2))),128))]),_:1})])],2)):Q("",!0)]),_:1}),S(ie,{name:"fade"},{default:te(()=>[b.value?(A(),F("div",Kt,[r("div",{class:n(["w-full max-w-2xl rounded-2xl shadow-2xl transform transition-all duration-300 ease-out overflow-hidden",[t(s)?"bg-gray-900 bg-opacity-70":"bg-white bg-opacity-95"]])},[r("div",{class:n(["px-4 sm:px-6 py-3 sm:py-4 border-b",[t(s)?"border-gray-800":"border-gray-100"]])},[r("div",Qt,[r("h3",{class:n(["text-lg sm:text-xl font-semibold",[t(s)?"text-white":"text-gray-900"]])},C(t(a)("send.fileDetails")),3),r("button",{onClick:e[6]||(e[6]=d=>b.value=null),class:"p-1.5 sm:p-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"},[S(t(_e),{class:n(["w-4 h-4 sm:w-5 sm:h-5",[t(s)?"text-gray-400":"text-gray-500"]])},null,8,["class"])])])],2),r("div",Yt,[r("div",{class:n(["rounded-xl p-3 sm:p-4 mb-4 sm:mb-6",[t(s)?"bg-gray-800 bg-opacity-50":"bg-gray-50 bg-opacity-95"]])},[r("div",er,[r("div",{class:n(["p-2 sm:p-3 rounded-lg",[t(s)?"bg-gray-800":"bg-white"]])},[S(t(Me),{class:n(["w-5 h-5 sm:w-6 sm:h-6",[t(s)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])],2),r("div",tr,[r("h4",{class:n(["font-medium text-sm sm:text-base truncate",[t(s)?"text-white":"text-gray-900"]])},C(b.value.filename),3),r("p",{class:n(["text-xs sm:text-sm truncate",[t(s)?"text-gray-400":"text-gray-500"]])},C(b.value.size)+" · "+C(b.value.date),3)])]),r("div",rr,[r("div",sr,[S(t(gt),{class:n(["w-3.5 h-3.5 sm:w-4 sm:h-4 mr-1.5 sm:mr-2 flex-shrink-0",[t(s)?"text-gray-400":"text-gray-500"]])},null,8,["class"]),r("span",{class:n(["text-xs sm:text-sm truncate",[t(s)?"text-gray-300":"text-gray-600"]])},C(b.value.expiration),3)]),r("div",ar,[S(t(Ce),{class:n(["w-3.5 h-3.5 sm:w-4 sm:h-4 mr-1.5 sm:mr-2 flex-shrink-0",[t(s)?"text-gray-400":"text-gray-500"]])},null,8,["class"]),r("span",{class:n(["text-xs sm:text-sm truncate",[t(s)?"text-gray-300":"text-gray-600"]])}," 安全加密 ",2)])])],2),r("div",or,[r("div",nr,[r("div",lr,[r("div",ir,[e[15]||(e[15]=r("h4",{class:"font-medium text-sm sm:text-base"},"取件码",-1)),r("button",{onClick:e[7]||(e[7]=d=>t(lt)(b.value.retrieveCode)),class:"p-1.5 sm:p-2 rounded-full hover:bg-white/10 transition-colors"},[S(t(pe),{class:"w-4 h-4 sm:w-5 sm:h-5"})])]),r("p",dr,C(b.value.retrieveCode),1)]),r("div",{class:n(["rounded-xl p-3 sm:p-4",[t(s)?"bg-gray-800 bg-opacity-50":"bg-gray-50 bg-opacity-95"]])},[r("div",ur,[r("h4",{class:n(["font-medium text-sm sm:text-base flex items-center min-w-0",[t(s)?"text-white":"text-gray-900"]])},[S(t(mt),{class:"w-4 h-4 sm:w-5 sm:h-5 mr-1.5 sm:mr-2 text-indigo-500 flex-shrink-0"}),e[16]||(e[16]=r("span",{class:"truncate"},"wget下载",-1))],2),r("button",{onClick:e[8]||(e[8]=d=>t(it)(b.value.retrieveCode,b.value.filename)),class:"p-1.5 sm:p-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors flex-shrink-0"},[S(t(pe),{class:n(["w-4 h-4 sm:w-5 sm:h-5",[t(s)?"text-gray-400":"text-gray-500"]])},null,8,["class"])])]),r("p",{class:n(["text-xs sm:text-sm font-mono break-all line-clamp-2",[t(s)?"text-gray-300":"text-gray-600"]])}," 点击复制wget命令 ",2)],2)]),r("div",{class:n(["rounded-xl p-4 sm:p-5 flex flex-col items-center",[t(s)?"bg-gray-800 bg-opacity-50":"bg-gray-50 bg-opacity-95"]])},[r("div",cr,[S(dt,{value:Ve(b.value),size:140,level:"M",class:"sm:w-[160px] sm:h-[160px]"},null,8,["value"])]),r("p",{class:n(["text-xs sm:text-sm truncate max-w-full",[t(s)?"text-gray-400":"text-gray-500"]])}," 扫描二维码快速取件 ",2)],2)])]),r("div",{class:n(["px-4 sm:px-6 py-3 sm:py-4 border-t",[t(s)?"border-gray-800":"border-gray-100"]])},[r("button",{onClick:e[9]||(e[9]=d=>t(ce)(b.value.retrieveCode)),class:"w-full bg-indigo-600 hover:bg-indigo-700 text-white px-4 sm:px-6 py-2 sm:py-3 rounded-lg text-sm sm:text-base font-medium transition-colors"}," 复制取件链接 ")],2)],2)])):Q("",!0)]),_:1})],32)}}}),yr=ge(pr,[["__scopeId","data-v-0a16769d"]]);export{yr as default}; diff --git a/themes/2024/assets/SendFileView-CncKd-lI.css b/themes/2024/assets/SendFileView-CncKd-lI.css deleted file mode 100644 index 585e210..0000000 --- a/themes/2024/assets/SendFileView-CncKd-lI.css +++ /dev/null @@ -1 +0,0 @@ -.border-progress-container[data-v-2fbf5085]{position:relative;width:100%;height:100%}.border-progress-canvas[data-v-2fbf5085]{position:absolute;top:0;left:0;width:100%;height:100%;transition:all .3s ease}.custom-scrollbar[data-v-bebdfe92]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.3) rgba(243,244,246,.5)}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar-track{background:#f3f4f680;border-radius:3px}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:3px;-webkit-transition:background-color .3s;transition:background-color .3s}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar-thumb:hover{background-color:#9ca3afb3}[data-v-bebdfe92] [class*=dark] .custom-scrollbar{scrollbar-color:rgba(75,85,99,.5) rgba(31,41,55,.5)}[data-v-bebdfe92] [class*=dark] .custom-scrollbar::-webkit-scrollbar-track{background:#1f293780}[data-v-bebdfe92] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb{background-color:#4b556380}[data-v-bebdfe92] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#4b5563b3}.fade-enter-active[data-v-832d304e],.fade-leave-active[data-v-832d304e]{transition:opacity .3s ease,transform .3s ease}.fade-enter-from[data-v-832d304e],.fade-leave-to[data-v-832d304e]{opacity:0;transform:translateY(10px)}@media(min-width:640px){.sm\:w-120[data-v-832d304e]{width:30rem}}.fade-enter-to[data-v-832d304e],.fade-leave-from[data-v-832d304e]{opacity:1;transform:translateY(0)}.drawer-enter-active[data-v-832d304e],.drawer-leave-active[data-v-832d304e]{transition:transform .3s ease}.drawer-enter-from[data-v-832d304e],.drawer-leave-to[data-v-832d304e]{transform:translate(100%)}.list-enter-active[data-v-832d304e],.list-leave-active[data-v-832d304e]{transition:all .5s ease}.list-enter-from[data-v-832d304e],.list-leave-to[data-v-832d304e]{opacity:0;transform:translate(30px)}select option[data-v-832d304e]{padding:8px;margin:4px;border-radius:6px}select option[data-v-832d304e]:checked{background:linear-gradient(to right,#6366f180,#a855f780)!important;color:#fff!important}.dark select option[data-v-832d304e]:checked{background:linear-gradient(to right,#6366f1b3,#a855f7b3)!important}select option[data-v-832d304e]:hover{background-color:#6366f11a}.dark select option[data-v-832d304e]:hover{background-color:#6366f133}.custom-scrollbar[data-v-832d304e]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.4) rgba(243,244,246,.3)}.custom-scrollbar[data-v-832d304e]::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar[data-v-832d304e]::-webkit-scrollbar-track{background:#f3f4f64d;border-radius:6px;margin:4px}.custom-scrollbar[data-v-832d304e]::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#6366f199,#a855f799);border-radius:6px;border:1px solid rgba(255,255,255,.2);-webkit-transition:all .3s ease;transition:all .3s ease}.custom-scrollbar[data-v-832d304e]::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#6366f1cc,#a855f7cc);transform:scale(1.1)}.custom-scrollbar[data-v-832d304e]::-webkit-scrollbar-corner{background:transparent}.dark .custom-scrollbar[data-v-832d304e]{scrollbar-color:rgba(75,85,99,.6) rgba(31,41,55,.4)}.dark .custom-scrollbar[data-v-832d304e]::-webkit-scrollbar-track{background:#1f293766}.dark .custom-scrollbar[data-v-832d304e]::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#6366f1b3,#a855f7b3);border:1px solid rgba(255,255,255,.1)}.dark .custom-scrollbar[data-v-832d304e]::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#6366f1e6,#a855f7e6)} diff --git a/themes/2024/assets/SendFileView-DJTyD32y.css b/themes/2024/assets/SendFileView-DJTyD32y.css new file mode 100644 index 0000000..774c05d --- /dev/null +++ b/themes/2024/assets/SendFileView-DJTyD32y.css @@ -0,0 +1 @@ +.border-progress-container[data-v-2fbf5085]{position:relative;width:100%;height:100%}.border-progress-canvas[data-v-2fbf5085]{position:absolute;top:0;left:0;width:100%;height:100%;transition:all .3s ease}.custom-scrollbar[data-v-bebdfe92]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.3) rgba(243,244,246,.5)}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar-track{background:#f3f4f680;border-radius:3px}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar-thumb{background-color:#9ca3af80;border-radius:3px;-webkit-transition:background-color .3s;transition:background-color .3s}.custom-scrollbar[data-v-bebdfe92]::-webkit-scrollbar-thumb:hover{background-color:#9ca3afb3}[data-v-bebdfe92] [class*=dark] .custom-scrollbar{scrollbar-color:rgba(75,85,99,.5) rgba(31,41,55,.5)}[data-v-bebdfe92] [class*=dark] .custom-scrollbar::-webkit-scrollbar-track{background:#1f293780}[data-v-bebdfe92] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb{background-color:#4b556380}[data-v-bebdfe92] [class*=dark] .custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#4b5563b3}.fade-enter-active[data-v-0a16769d],.fade-leave-active[data-v-0a16769d]{transition:opacity .3s ease,transform .3s ease}.fade-enter-from[data-v-0a16769d],.fade-leave-to[data-v-0a16769d]{opacity:0;transform:translateY(10px)}@media (min-width: 640px){.sm\:w-120[data-v-0a16769d]{width:30rem}}.fade-enter-to[data-v-0a16769d],.fade-leave-from[data-v-0a16769d]{opacity:1;transform:translateY(0)}.drawer-enter-active[data-v-0a16769d],.drawer-leave-active[data-v-0a16769d]{transition:transform .3s ease}.drawer-enter-from[data-v-0a16769d],.drawer-leave-to[data-v-0a16769d]{transform:translate(100%)}.list-enter-active[data-v-0a16769d],.list-leave-active[data-v-0a16769d]{transition:all .5s ease}.list-enter-from[data-v-0a16769d],.list-leave-to[data-v-0a16769d]{opacity:0;transform:translate(30px)}select option[data-v-0a16769d]{padding:8px;margin:4px;border-radius:6px}select option[data-v-0a16769d]:checked{background:linear-gradient(to right,#6366f180,#a855f780)!important;color:#fff!important}.dark select option[data-v-0a16769d]:checked{background:linear-gradient(to right,#6366f1b3,#a855f7b3)!important}select option[data-v-0a16769d]:hover{background-color:#6366f11a}.dark select option[data-v-0a16769d]:hover{background-color:#6366f133}.custom-scrollbar[data-v-0a16769d]{scrollbar-width:thin;scrollbar-color:rgba(156,163,175,.4) rgba(243,244,246,.3)}.custom-scrollbar[data-v-0a16769d]::-webkit-scrollbar{width:8px;height:8px}.custom-scrollbar[data-v-0a16769d]::-webkit-scrollbar-track{background:#f3f4f64d;border-radius:6px;margin:4px}.custom-scrollbar[data-v-0a16769d]::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#6366f199,#a855f799);border-radius:6px;border:1px solid rgba(255,255,255,.2);-webkit-transition:all .3s ease;transition:all .3s ease}.custom-scrollbar[data-v-0a16769d]::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#6366f1cc,#a855f7cc);transform:scale(1.1)}.custom-scrollbar[data-v-0a16769d]::-webkit-scrollbar-corner{background:transparent}.dark .custom-scrollbar[data-v-0a16769d]{scrollbar-color:rgba(75,85,99,.6) rgba(31,41,55,.4)}.dark .custom-scrollbar[data-v-0a16769d]::-webkit-scrollbar-track{background:#1f293766}.dark .custom-scrollbar[data-v-0a16769d]::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#6366f1b3,#a855f7b3);border:1px solid rgba(255,255,255,.1)}.dark .custom-scrollbar[data-v-0a16769d]::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#6366f1e6,#a855f7e6)} diff --git a/themes/2024/assets/SendFileView-DW3wRbaM.js b/themes/2024/assets/SendFileView-DW3wRbaM.js deleted file mode 100644 index ce52403..0000000 --- a/themes/2024/assets/SendFileView-DW3wRbaM.js +++ /dev/null @@ -1 +0,0 @@ -import{c as W,d as ae,u as oe,a as z,o as D,b as r,n,e as t,i as ne,t as M,r as P,f as Fe,w as qe,_ as ge,g as E,C as We,h as se,j as K,k as Xe,l as S,m as Ze,p as De,q as ee,P as J,s as Je,S as Ke,F as Qe,v as te,T as ie,x as we,y as de,z as Ye,A as et,B as ke,D as Se,E as ce,G as tt,X as _e,H as rt,I as st,J as re}from"./index-B3zfsvgW.js";import{u as at,P as ot,S as Ce,C as nt,c as lt,a as it,Q as dt,b as ue}from"./PageHeader-Y9MICulD.js";import{F as Me}from"./file-Ceuyr6iv.js";import{E as ct,T as ut}from"./trash-CdDjPTBr.js";import"./box-COy3AQAQ.js";const pt=W("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);const pe=W("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]);const gt=W("clock",[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);const ht=W("cloud-upload",[["path",{d:"M12 13v8",key:"1l5pq0"}],["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"m8 17 4-4 4 4",key:"1quai1"}]]);const ft=W("loader",[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]]);const mt=W("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);const vt=W("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]),Ie=I=>I>=1024*1024*1024?Math.round(I/(1024*1024*1024))+"GB":I>=1024*1024?Math.round(I/(1024*1024))+"MB":Math.round(I/1024)+"KB",yt={class:"flex justify-center space-x-4 mb-6"},xt=ae({__name:"SendTypeSelector",props:{selectedType:{}},emits:["update:selectedType"],setup(I,{emit:y}){const{t:T}=oe(),s=y,f=ne("isDarkMode"),p=_=>{s("update:selectedType",_)};return(_,h)=>(D(),z("div",yt,[r("button",{type:"button",onClick:h[0]||(h[0]=d=>p("file")),class:n(["px-4 py-2 rounded-lg transition-colors duration-300",_.selectedType==="file"?"bg-indigo-600 text-white":t(f)?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"])},M(t(T)("nav.sendFile")),3),r("button",{type:"button",onClick:h[1]||(h[1]=d=>p("text")),class:n(["px-4 py-2 rounded-lg transition-colors duration-300",_.selectedType==="text"?"bg-indigo-600 text-white":t(f)?"bg-gray-700 text-gray-300 hover:bg-gray-600":"bg-gray-200 text-gray-700 hover:bg-gray-300"])},M(t(T)("send.sendText")),3)]))}}),bt=ae({__name:"BorderProgressBar",props:{progress:{}},setup(I){const y=I,T=P(null),s=P(null);let f=null;const p=()=>{if(!f||!s.value||!T.value)return;const h=T.value.clientWidth,d=T.value.clientHeight;s.value.width=h,s.value.height=d;const c=4,o=8;f.lineWidth=c;const A=f.createLinearGradient(0,0,h,d);A.addColorStop(0,"#4f46e5"),A.addColorStop(.5,"#7c3aed"),A.addColorStop(1,"#db2777"),f.strokeStyle="rgba(229, 231, 235, 0.2)",_(f,c/2,c/2,h-c,d-c,o),f.stroke();const u=((h+d)*2-8*o+2*Math.PI*o)*y.progress/100;f.strokeStyle=A,f.lineCap="round",f.lineJoin="round",f.beginPath();let g=u;const C=c/2,L=h-c,V=d-c;if(g>0){const b=Math.min(L-2*o,g);f.moveTo(o+C,C),f.lineTo(b+o+C,C),g-=b}if(g>0){const b=Math.min(Math.PI/2,g/o);f.arc(L-o+C,o+C,o,-Math.PI/2,b-Math.PI/2,!1),g-=b*o}if(g>0){const b=Math.min(V-2*o,g);f.lineTo(L+C,b+o+C),g-=b}if(g>0){const b=Math.min(Math.PI/2,g/o);f.arc(L-o+C,V-o+C,o,0,b,!1),g-=b*o}if(g>0){const b=Math.min(L-2*o,g);f.lineTo(L-b-o+C,V+C),g-=b}if(g>0){const b=Math.min(Math.PI/2,g/o);f.arc(o+C,V-o+C,o,Math.PI/2,Math.PI/2+b,!1),g-=b*o}if(g>0){const b=Math.min(V-2*o,g);f.lineTo(C,V-b-o+C),g-=b}if(g>0){const b=Math.min(Math.PI/2,g/o);f.arc(o+C,o+C,o,Math.PI,Math.PI+b,!1)}f.stroke()};function _(h,d,c,o,A,x){h.beginPath(),h.moveTo(d+x,c),h.lineTo(d+o-x,c),h.arcTo(d+o,c,d+o,c+x,x),h.lineTo(d+o,c+A-x),h.arcTo(d+o,c+A,d+o-x,c+A,x),h.lineTo(d+x,c+A),h.arcTo(d,c+A,d,c+A-x,x),h.lineTo(d,c+x),h.arcTo(d,c,d+x,c,x),h.closePath()}return Fe(()=>{s.value&&(f=s.value.getContext("2d"),p())}),qe(()=>y.progress,p),(h,d)=>(D(),z("div",{class:"border-progress-container",ref_key:"container",ref:T},[r("canvas",{ref_key:"canvas",ref:s,class:"border-progress-canvas"},null,512)],512))}}),wt=ge(bt,[["__scopeId","data-v-2fbf5085"]]),kt=["accept","disabled"],St={key:0,class:"absolute inset-0 w-full h-full"},_t={class:"block truncate"},Ct={key:1,class:"mt-3 w-full"},Mt=ae({__name:"FileUploadArea",props:{selectedFile:{default:null},progress:{default:0},placeholder:{default:""},description:{default:""},acceptedTypes:{default:"*"},uploadStatus:{default:"idle"},uploadedBytes:{default:0},totalBytes:{default:0},errorMessage:{default:""},allowRetry:{type:Boolean,default:!0},retryText:{default:"重试"},showProgressDetails:{type:Boolean,default:!0}},emits:["fileSelected","fileDrop","retry"],setup(I,{emit:y}){const{t:T}=oe(),s=I,f=y,p=ne("isDarkMode"),_=E(()=>s.placeholder||T("send.uploadArea.placeholder")),h=E(()=>s.description||T("send.uploadArea.description")),d=P(null),c=E(()=>["uploading","initializing","confirming"].includes(s.uploadStatus)),o=E(()=>s.uploadStatus==="error"),A=E(()=>s.uploadStatus==="success"),x=E(()=>s.selectedFile?s.selectedFile.name:_.value),u=E(()=>c.value?ft:A.value?We:o.value?pt:ht),g=E(()=>c.value?p?"text-indigo-400 animate-spin":"text-indigo-600 animate-spin":A.value?p?"text-green-400":"text-green-600":o.value?p?"text-red-400":"text-red-600":p?"text-gray-400 group-hover:text-indigo-400":"text-gray-600 group-hover:text-indigo-600"),C=E(()=>o.value?p?"border-red-500/50":"border-red-300":A.value?p?"border-green-500/50":"border-green-300":""),L=E(()=>o.value&&s.errorMessage?s.errorMessage:s.uploadStatus==="initializing"?"正在初始化上传...":s.uploadStatus==="uploading"?"正在上传文件...":s.uploadStatus==="confirming"?"正在确认上传...":A.value?"上传成功!":h.value),V=E(()=>o.value?p?"text-red-400":"text-red-500":A.value?p?"text-green-400":"text-green-500":p?"text-gray-500":"text-gray-400"),b=v=>{if(v===0)return"0 B";const w=1024,B=["B","KB","MB","GB"],N=Math.floor(Math.log(v)/Math.log(w));return parseFloat((v/Math.pow(w,N)).toFixed(2))+" "+B[N]},Q=()=>{c.value||d.value?.click()},Y=v=>{const B=v.target.files?.[0];B&&f("fileSelected",B)},O=v=>{c.value||f("fileDrop",v)},m=()=>{f("retry")};return(v,w)=>(D(),z("div",{class:n(["rounded-xl p-8 flex flex-col items-center justify-center border-2 border-dashed transition-all duration-300 group cursor-pointer relative",[t(p)?"bg-gray-800 bg-opacity-50 border-gray-600 hover:border-indigo-500":"bg-gray-100 border-gray-300 hover:border-indigo-500",C.value]]),onClick:Q,onDragover:w[0]||(w[0]=se(()=>{},["prevent"])),onDrop:se(O,["prevent"])},[r("input",{ref_key:"fileInput",ref:d,type:"file",class:"hidden",onChange:Y,accept:v.acceptedTypes,disabled:c.value},null,40,kt),v.progress>0?(D(),z("div",St,[S(wt,{progress:v.progress},null,8,["progress"])])):K("",!0),(D(),Xe(Ze(u.value),{class:n(["w-16 h-16 transition-colors duration-300",g.value])},null,8,["class"])),r("p",{class:n(["mt-4 text-sm transition-colors duration-300 w-full text-center",t(p)?"text-gray-400 group-hover:text-indigo-400":"text-gray-600 group-hover:text-indigo-600"])},[r("span",_t,M(x.value),1)],2),r("p",{class:n(["mt-2 text-xs",V.value])},M(L.value),3),c.value&&v.showProgressDetails?(D(),z("div",Ct,[r("div",{class:n(["flex justify-between text-xs mb-1",[t(p)?"text-gray-400":"text-gray-500"]])},[r("span",null,M(b(v.uploadedBytes))+" / "+M(b(v.totalBytes)),1),r("span",null,M(v.progress)+"%",1)],2)])):K("",!0),o.value&&v.allowRetry?(D(),z("button",{key:2,onClick:se(m,["stop"]),class:n(["mt-3 px-4 py-2 text-sm rounded-lg transition-colors duration-200",[t(p)?"bg-indigo-600 hover:bg-indigo-500 text-white":"bg-indigo-500 hover:bg-indigo-600 text-white"]])},M(v.retryText),3)):K("",!0)],34))}}),It={class:"flex flex-col"},Tt=["value","rows","placeholder"],At=ae({__name:"TextInputArea",props:{modelValue:{},rows:{default:7},placeholder:{default:"在此输入要发送的文本..."}},emits:["update:modelValue"],setup(I,{emit:y}){const{t:T}=oe(),s=I,f=y,p=ne("isDarkMode"),_=E(()=>s.placeholder||T("send.uploadArea.textInput")),h=d=>{const c=d.target;f("update:modelValue",c.value)};return(d,c)=>(D(),z("div",It,[r("textarea",{value:d.modelValue,onInput:h,rows:d.rows,placeholder:_.value,class:n(["flex-grow px-4 py-3 rounded-xl placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 transition duration-300 resize-none custom-scrollbar",t(p)?"bg-gray-800 bg-opacity-50 text-white":"bg-white text-gray-900 border border-gray-300"])},null,42,Tt)]))}}),Ft=ge(At,[["__scopeId","data-v-bebdfe92"]]);function Dt(){try{const I=localStorage.getItem(Ke.CONFIG);if(I){const y=JSON.parse(I);if(y.uploadSize&&y.uploadSize>0)return y.uploadSize}}catch{}return Qe.MAX_FILE_SIZE}const $={IDLE:"idle",INITIALIZING:"initializing",UPLOADING:"uploading",CONFIRMING:"confirming",SUCCESS:"success",ERROR:"error"},Te=1,Ae="day";function Et(){const I=De(),y=P($.IDLE),T=P(null),s=P({loaded:0,total:0,percentage:0}),f=P(""),p=P(""),_=E(()=>y.value===$.INITIALIZING),h=E(()=>y.value===$.UPLOADING),d=E(()=>y.value===$.CONFIRMING),c=E(()=>y.value===$.SUCCESS),o=E(()=>y.value===$.ERROR),A=E(()=>T.value?.mode??null),x=m=>{const v=Dt();if(m.size>v){const w=Math.round(v/1024/1024);return p.value=`文件大小不能超过 ${w}MB`,I.showAlert(p.value,"error"),!1}return!0},u=m=>v=>{s.value={loaded:Math.max(0,v.loaded),total:Math.max(0,v.total),percentage:Math.min(100,Math.max(0,v.percentage))},m&&m(s.value)},g=m=>{if(y.value=$.ERROR,Je.isAxiosError(m)){const v=m.response?.status,w=m.response?.data?.detail;switch(v){case 400:p.value=w||"请求参数错误";break;case 403:p.value=w||"操作被禁止";break;case 404:p.value="上传会话不存在或已过期";break;case 500:p.value="服务器错误,请稍后重试";break;default:p.value=w||"上传失败,请重试"}}else m instanceof Error?p.value=m.message:p.value="未知错误";I.showAlert(p.value,"error")},C=async(m,v)=>{try{y.value=$.INITIALIZING;const w=await J.initUpload({file_name:m.name,file_size:m.size,expire_value:v?.expireValue??Te,expire_style:v?.expireStyle??Ae});if(w.code===200&&w.detail)return T.value=w.detail,w.detail;throw new Error(w.message||"初始化上传失败")}catch(w){return g(w),null}},L=async(m,v,w)=>{try{y.value=$.UPLOADING;const B=u(w?.onProgress);if(!await J.directUploadToS3(v.upload_url,m,B))throw new Error("S3 上传失败");y.value=$.CONFIRMING;const X=await J.confirmUpload(v.upload_id,{expire_value:w?.expireValue??Te,expire_style:w?.expireStyle??Ae});if(X.code===200&&X.detail?.code)return y.value=$.SUCCESS,f.value=String(X.detail.code),s.value={loaded:m.size,total:m.size,percentage:100},I.showAlert("文件上传成功!","success"),f.value;throw new Error(X.message||"确认上传失败")}catch(B){return g(B),null}},V=async(m,v,w)=>{try{y.value=$.UPLOADING;const B=u(w?.onProgress),N=await J.proxyUpload(v.upload_id,m,B);if(N.code===200&&N.detail?.code)return y.value=$.SUCCESS,f.value=String(N.detail.code),s.value={loaded:m.size,total:m.size,percentage:100},I.showAlert("文件上传成功!","success"),f.value;throw new Error(N.message||"代理上传失败")}catch(B){return g(B),null}},b=async(m,v)=>{if(O(),!x(m))return y.value=$.ERROR,null;const w=await C(m,v);return w?w.mode==="direct"?await L(m,w,v):await V(m,w,v):null},Q=async()=>{if(T.value?.upload_id)try{await J.cancelUpload(T.value.upload_id),I.showAlert("上传已取消","info")}catch(m){console.warn("取消上传失败:",m)}finally{O()}},Y=async()=>{if(!T.value?.upload_id)return null;try{const m=await J.getUploadStatus(T.value.upload_id);return m.code===200&&m.detail?(m.detail.is_expired&&(p.value="上传会话已过期",I.showAlert(p.value,"warning")),m.detail):null}catch(m){return g(m),null}},O=()=>{y.value=$.IDLE,T.value=null,s.value={loaded:0,total:0,percentage:0},f.value="",p.value=""};return{presignStatus:ee(y),uploadSession:ee(T),uploadProgress:ee(s),uploadedCode:ee(f),errorMessage:ee(p),isInitializing:_,isUploading:h,isConfirming:d,isSuccess:c,isError:o,currentMode:A,uploadFile:b,cancelUpload:Q,getStatus:Y,reset:O}}const zt={class:"p-8"},Ut={key:"file",class:"grid grid-cols-1 gap-8"},Pt={key:"text",class:"grid grid-cols-1 gap-8"},Rt={class:"flex flex-col space-y-3"},Bt={class:"relative flex-grow group"},$t=["placeholder"],Lt=["value"],Vt={type:"submit",class:"w-full bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 text-white font-bold py-4 px-6 rounded-lg focus:outline-none focus:ring-2 focus:ring-purple-500 focus:ring-opacity-50 transition-all duration-300 transform hover:scale-105 hover:shadow-lg relative overflow-hidden group"},jt={class:"relative z-10 flex items-center justify-center text-lg"},Nt={class:"mt-6 text-center"},Gt={class:"flex-grow overflow-y-auto p-6"},Ot={class:"flex-shrink-0 mr-4"},Ht={class:"flex-grow min-w-0 mr-4"},qt={class:"flex-shrink-0 flex space-x-2"},Wt=["onClick"],Xt=["onClick"],Zt=["onClick"],Jt={key:0,class:"fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-50 p-3 sm:p-4 overflow-y-auto"},Kt={class:"flex items-center justify-between"},Qt={class:"p-4 sm:p-6"},Yt={class:"flex items-center mb-3 sm:mb-4"},er={class:"ml-3 sm:ml-4 min-w-0 flex-1"},tr={class:"grid grid-cols-2 gap-3 sm:gap-4"},rr={class:"flex items-center min-w-0"},sr={class:"flex items-center min-w-0"},ar={class:"grid grid-cols-1 md:grid-cols-2 gap-4 sm:gap-6"},or={class:"space-y-3 sm:space-y-4"},nr={class:"bg-gradient-to-br from-indigo-500 to-purple-600 rounded-xl p-4 sm:p-5 text-white"},lr={class:"flex items-center justify-between mb-3 sm:mb-4"},ir={class:"text-2xl sm:text-3xl font-bold tracking-wider text-center break-all"},dr={class:"flex items-center justify-between mb-2 sm:mb-3"},cr={class:"bg-white p-3 sm:p-4 rounded-lg shadow-sm mb-3 sm:mb-4"},ur=ae({__name:"SendFileView",setup(I){const y=JSON.parse(localStorage.getItem("config")||"{}"),T=st(),s=ne("isDarkMode"),f=at(),p=P("file"),_=P(null),h=P(""),d=P(y.expireStyle?.[0]||"day"),c=P("1"),o=P(0),A=P(!1),x=P(null),{t:u}=oe(),g=De(),C=E(()=>f.shareData),{uploadFile:L,reset:V}=Et(),b=P(""),Q=async a=>{_.value=a,he()&&fe(a)&&(b.value=await m(a))},Y=async a=>{if(a.dataTransfer?.files&&a.dataTransfer.files.length>0){const e=a.dataTransfer.files[0];if(_.value=e,!ve())return;b.value=await m(e)}},O=async a=>{const e=a.clipboardData?.items;if(e)for(let l=0;l{const F=k.trim();if(!F)return;const U=document.getElementById("text-content");if(!U){h.value+=F;return}const j=U.selectionStart,R=U.selectionEnd;if(j!==R){const G=h.value.substring(0,j),H=h.value.substring(R);h.value=G+F+H,setTimeout(()=>{const q=j+F.length;U.setSelectionRange(q,q),U.focus()},0)}else{const G=j,H=h.value.substring(0,G),q=h.value.substring(G);h.value=H+F+q,setTimeout(()=>{const le=G+F.length;U.setSelectionRange(le,le),U.focus()},0)}})}},m=async a=>{try{if(a.size<=10*1024*1024){const R=await a.arrayBuffer();if(window.isSecureContext){const Z=await crypto.subtle.digest("SHA-256",R);return Array.from(new Uint8Array(Z)).map(H=>H.toString(16).padStart(2,"0")).join("")}return v(a)}const e=5*1024*1024,l=a.slice(0,e),i=a.slice(-e),[k,F]=await Promise.all([l.arrayBuffer(),i.arrayBuffer()]),U=new Uint8Array(k.byteLength+F.byteLength+16);U.set(new Uint8Array(k),0),U.set(new Uint8Array(F),k.byteLength);const j=new TextEncoder().encode(a.size.toString());if(U.set(j,k.byteLength+F.byteLength),window.isSecureContext){const R=await crypto.subtle.digest("SHA-256",U);return Array.from(new Uint8Array(R)).map(G=>G.toString(16).padStart(2,"0")).join("")}return v(a)}catch(e){return console.error("File hash calculation failed:",e),v(a)}},v=a=>{const e=`${a.name}-${a.size}-${a.lastModified}`;let l=0;for(let i=0;i{switch(a){case"day":return u("send.expiration.placeholders.days");case"hour":return u("send.expiration.placeholders.hours");case"minute":return u("send.expiration.placeholders.minutes");case"count":return u("send.expiration.placeholders.count");case"forever":return u("send.expiration.placeholders.forever");default:return u("send.expiration.placeholders.default")}},B=(a=d.value)=>{switch(a){case"day":return u("send.expiration.units.days");case"hour":return u("send.expiration.units.hours");case"minute":return u("send.expiration.units.minutes");case"count":return u("send.expiration.units.times");case"forever":return u("send.expiration.units.forever");default:return""}},N=(a,e)=>{if(a==="forever")return u("send.expiration.units.forever");if(a==="count")return u("send.messages.expiresAfterCount",{count:e});const l=new Date,i=parseInt(e);switch(a){case"minute":l.setMinutes(l.getMinutes()+i);break;case"hour":l.setHours(l.getHours()+i);break;case"day":l.setDate(l.getDate()+i);break;default:return u("send.messages.expiresAfter",{value:e,unit:B(a)})}const k=l.getFullYear(),F=(l.getMonth()+1).toString().padStart(2,"0"),U=l.getDate().toString().padStart(2,"0"),j=l.getHours().toString().padStart(2,"0"),R=l.getMinutes().toString().padStart(2,"0");return u("send.messages.expiresAt",{date:`${k}-${F}-${U} ${j}:${R}`})},X=async a=>{try{const e=await m(a);b.value=e,console.log("Calculated file hash:",e);const l=5*1024*1024,i=Math.ceil(a.size/l),k=await re.post("chunk/upload/init/",{file_name:a.name,file_size:a.size,chunk_size:l,file_hash:b.value});if(k.code!==200)throw new Error(u("send.messages.initChunkUploadFailed"));if(k.detail?.existed)return k;const F=k.detail?.upload_id,U=new Set(k.detail?.uploaded_chunks||[]);for(let R=0;R{const je=Array.from(U).reduce((Ge,be)=>{const Oe=Math.min((be+1)*l,a.size),He=be*l;return Ge+(Oe-He)},0),Ne=Math.round((je+R*l+Ve.loaded)*100/a.size);o.value=Math.min(Ne,99)}})).code!==200)throw new Error(u("send.messages.chunkUploadFailed",{index:R}))}const j=await re.post(`chunk/upload/complete/${F}`,{expire_value:c.value?parseInt(c.value):1,expire_style:d.value});if(j.code!==200)throw new Error(u("send.messages.completeUploadFailed"));return j}catch(e){if(console.error("切片上传失败:",e),e&&typeof e=="object"&&"response"in e){const l=e;l.response?.data?.detail&&g.showAlert(l.response.data.detail,"error")}else g.showAlert(u("send.messages.uploadFailed"),"error");throw e}},Ee=async a=>{const e=new FormData,l={headers:{"Content-Type":"multipart/form-data"},onUploadProgress:k=>{const F=Math.round(k.loaded*100/(k.total||1));o.value=F}};return e.append("file",a),e.append("expire_value",c.value),e.append("expire_style",d.value),await re.post("share/file/",e,l)},ze=async a=>{const e=await L(a,{expireValue:c.value?parseInt(c.value):1,expireStyle:d.value,onProgress:l=>{o.value=l.percentage}});if(e)return{code:200,detail:{code:e,name:a.name}};throw new Error(u("send.messages.uploadFailed"))},he=()=>y.openUpload===0&&localStorage.getItem("token")===null?(g.showAlert(u("send.messages.guestUploadDisabled"),"error"),!1):!0,fe=a=>a.size>y.uploadSize?(g.showAlert(u("send.messages.fileSizeExceeded",{size:Ie(y.uploadSize)}),"error"),_.value=null,!1):!0,me=(a,e)=>{if(a==="forever"||a==="count")return!0;const l=y.max_save_seconds||0;if(l===0)return!0;let i=0;switch(a){case"minute":i=parseInt(e)*60;break;case"hour":i=parseInt(e)*3600;break;case"day":i=parseInt(e)*86400;break;default:return!1}return i<=l},ve=()=>!(!he()||!fe(_.value)||!me(d.value,c.value)),Ue=async()=>{if(p.value==="file"&&!_.value){g.showAlert(u("send.messages.selectFile"),"error");return}if(p.value==="text"&&!h.value.trim()){g.showAlert(u("send.messages.enterText"),"error");return}if(d.value!=="forever"&&!c.value){g.showAlert(u("send.messages.enterExpirationValue"),"error");return}if(!me(d.value,c.value)){const a=Math.floor(y.max_save_seconds/86400);g.showAlert(u("send.messages.expirationTooLong",{days:a}),"error");return}try{let a;if(p.value==="file")try{a=await ze(_.value)}catch{y.enableChunk?a=await X(_.value):a=await Ee(_.value)}else{const e=new FormData;e.append("text",h.value),e.append("expire_value",c.value),e.append("expire_style",d.value),a=await re.post("share/text/",e,{headers:{"Content-Type":"multipart/form-data"}})}if(a&&a.code===200){const e=a.detail?.code||"",l=a.detail?.name||"",i={id:Date.now(),filename:l,date:new Date().toISOString().split("T")[0],size:p.value==="text"?`${(h.value.length/1024).toFixed(2)} KB`:`${(_.value.size/(1024*1024)).toFixed(1)} MB`,expiration:d.value==="forever"?u("send.expiration.forever"):N(d.value,c.value),retrieveCode:e};f.addShareDataRecord(i),g.showAlert(u("send.messages.sendSuccess",{code:e}),"success"),_.value=null,h.value="",o.value=0,V(),x.value=i,await ue(e)}else throw new Error(u("send.messages.serverError"))}catch(a){if(a&&typeof a=="object"&&"response"in a){const e=a;e.response?.data?.detail&&g.showAlert(e.response.data.detail,"error")}else g.showAlert(u("send.messages.sendFailed"),"error")}finally{o.value=0}},Pe=()=>{T.push("/")},ye=()=>{A.value=!A.value},Re=a=>{x.value=a},Be=a=>{const e=f.shareData.findIndex(l=>l.id===a);e!==-1&&f.deleteShareData(e)},$e=window.location.origin+"/#/",Le=a=>`${$e}?code=${a.retrieveCode}`,xe=a=>{const l=(parseInt(c.value)||0)+a;l>=1&&(c.value=l.toString())};return Fe(()=>{console.log("SendFileView mounted")}),(a,e)=>{const l=tt("router-link");return D(),z("div",{class:"min-h-screen flex items-center justify-center p-4 overflow-hidden transition-colors duration-300",onPaste:se(O,["prevent"])},[r("div",{class:n(["rounded-3xl shadow-2xl overflow-hidden border w-full max-w-md transition-colors duration-300",[t(s)?"bg-white bg-opacity-10 backdrop-filter backdrop-blur-xl border-gray-700":"bg-white border-gray-200"]])},[r("div",zt,[S(ot,{title:t(y).name,onTitleClick:Pe},null,8,["title"]),r("form",{onSubmit:se(Ue,["prevent"]),class:"space-y-8"},[S(xt,{"selected-type":p.value,"onUpdate:selectedType":e[0]||(e[0]=i=>p.value=i)},null,8,["selected-type"]),S(ie,{name:"fade",mode:"out-in"},{default:te(()=>[p.value==="file"?(D(),z("div",Ut,[S(Mt,{"selected-file":_.value,progress:o.value,description:`支持各种常见格式,最大${t(Ie)(t(y).uploadSize)}`,onFileSelected:Q,onFileDrop:Y},null,8,["selected-file","progress","description"])])):(D(),z("div",Pt,[S(Ft,{modelValue:h.value,"onUpdate:modelValue":e[1]||(e[1]=i=>h.value=i),placeholder:t(u)("send.uploadArea.textInput")},null,8,["modelValue","placeholder"])]))]),_:1}),r("div",Rt,[r("label",{class:n(["text-sm font-medium",t(s)?"text-gray-300":"text-gray-700"])},M(t(u)("send.expiration.label")),3),r("div",Bt,[r("div",{class:n(["relative h-12 rounded-2xl border transition-all duration-300 shadow-sm",t(s)?"bg-gray-800/60 border-gray-700/60 group-hover:border-gray-600/80 group-hover:shadow-lg group-hover:shadow-gray-900/20":"bg-white border-gray-200 group-hover:border-gray-300 group-hover:shadow-md group-hover:shadow-gray-200/50"])},[d.value!=="forever"?(D(),z(de,{key:0},[we(r("input",{"onUpdate:modelValue":e[2]||(e[2]=i=>c.value=i),type:"number",placeholder:w(),min:"1",class:n(["w-full h-full px-5 pr-32 rounded-2xl placeholder-gray-400 transition-all duration-300","focus:outline-none focus:ring-2 focus:ring-offset-0","[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none","bg-transparent",t(s)?"text-gray-100 focus:ring-indigo-500/80 placeholder-gray-500":"text-gray-900 focus:ring-indigo-500/60 placeholder-gray-400"])},null,10,$t),[[Ye,c.value]]),r("div",{class:n(["absolute right-28 top-0 h-full flex flex-col border-l",[t(s)?"border-gray-700/60":"border-gray-200"]])},[r("button",{type:"button",onClick:e[3]||(e[3]=i=>xe(1)),class:n(["flex-1 px-2 flex items-center justify-center transition-all duration-200",[t(s)?"hover:bg-gray-700/60 text-gray-400 hover:text-gray-200":"hover:bg-gray-50 text-gray-500 hover:text-gray-700"]])},[...e[10]||(e[10]=[r("svg",{class:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M5 15l7-7 7 7"})],-1)])],2),r("button",{type:"button",onClick:e[4]||(e[4]=i=>xe(-1)),class:n(["flex-1 px-2 flex items-center justify-center transition-all duration-200",[t(s)?"hover:bg-gray-700/60 text-gray-400 hover:text-gray-200":"hover:bg-gray-50 text-gray-500 hover:text-gray-700"]])},[...e[11]||(e[11]=[r("svg",{class:"w-3 h-3",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"})],-1)])],2)],2)],64)):K("",!0),we(r("select",{"onUpdate:modelValue":e[5]||(e[5]=i=>d.value=i),class:n(["absolute right-0 top-0 h-full appearance-none cursor-pointer transition-all duration-300","focus:outline-none focus:ring-2 focus:ring-offset-0",d.value==="forever"?"w-full px-5 rounded-2xl":"w-28 pl-4 pr-9 border-l rounded-r-2xl",t(s)?"text-gray-100 border-gray-700/60 focus:ring-indigo-500/80 bg-gray-800/60":"text-gray-900 border-gray-200 focus:ring-indigo-500/60 bg-white"]),style:ke({color:t(s)?"#f3f4f6":"#111827",backgroundColor:t(s)?"rgba(31, 41, 55, 0.5)":"#ffffff"})},[(D(!0),z(de,null,Se(t(y).expireStyle,i=>(D(),z("option",{value:i,key:i,class:n([t(s)?"bg-gray-800 text-gray-100":"bg-white text-gray-900"]),style:ke({color:t(s)?"#f3f4f6":"#111827",backgroundColor:t(s)?"#1f2937":"#ffffff"})},M(B(i)),15,Lt))),128))],6),[[et,d.value]]),r("div",{class:n(["absolute pointer-events-none",[d.value==="forever"?"right-3":"right-2","top-1/2 -translate-y-1/2"]])},[(D(),z("svg",{class:n(["w-4 h-4 transition-colors duration-300",[t(s)?"text-gray-400":"text-gray-500"]]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...e[12]||(e[12]=[r("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 9l-7 7-7-7"},null,-1)])],2))],2)],2)])]),r("button",Vt,[e[13]||(e[13]=r("span",{class:"absolute top-0 left-0 w-full h-full bg-white opacity-0 group-hover:opacity-20 transition-opacity duration-300"},null,-1)),r("span",jt,[S(t(mt),{class:"w-6 h-6 mr-2"}),r("span",null,M(t(u)("send.submit")),1)])])],32),r("div",Nt,[S(l,{to:"/",class:"text-indigo-400 hover:text-indigo-300 transition duration-300"},{default:te(()=>[ce(M(t(u)("send.needRetrieveFile")),1)]),_:1})])]),r("div",{class:n(["px-8 py-4 bg-opacity-50 flex justify-between items-center",[t(s)?"bg-gray-800":"bg-gray-100"]])},[r("span",{class:n(["text-sm flex items-center",[t(s)?"text-gray-300":"text-gray-800"]])},[S(t(Ce),{class:"w-4 h-4 mr-1 text-green-400"}),ce(" "+M(t(u)("send.secureEncryption")),1)],2),r("button",{onClick:ye,class:n(["text-sm hover:text-indigo-300 transition duration-300 flex items-center",[t(s)?"text-indigo-400":"text-indigo-600"]])},[ce(M(t(u)("send.sendRecords"))+" ",1),S(t(nt),{class:"w-4 h-4 ml-1"})],2)],2)],2),S(ie,{name:"drawer"},{default:te(()=>[A.value?(D(),z("div",{key:0,class:n(["fixed inset-y-0 right-0 w-full sm:w-120 bg-opacity-70 backdrop-filter backdrop-blur-xl shadow-2xl z-50 overflow-hidden flex flex-col",[t(s)?"bg-gray-900":"bg-white"]])},[r("div",{class:n(["flex justify-between items-center p-6 border-b",[t(s)?"border-gray-700":"border-gray-200"]])},[r("h3",{class:n(["text-2xl font-bold",[t(s)?"text-white":"text-gray-800"]])},M(t(u)("send.sendRecords")),3),r("button",{onClick:ye,class:n(["hover:text-white transition duration-300",[t(s)?"text-gray-400":"text-gray-800"]])},[S(t(_e),{class:"w-6 h-6"})],2)],2),r("div",Gt,[S(rt,{name:"list",tag:"div",class:"space-y-4"},{default:te(()=>[(D(!0),z(de,null,Se(C.value,i=>(D(),z("div",{key:i.id,class:n(["bg-opacity-50 rounded-lg p-4 flex items-center shadow-md hover:shadow-lg transition duration-300 transform hover:scale-102",[t(s)?"bg-gray-800 hover:bg-gray-700":"bg-gray-100 hover:bg-white"]])},[r("div",Ot,[S(t(Me),{class:n(["w-10 h-10",[t(s)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])]),r("div",Ht,[r("p",{class:n(["font-medium text-lg truncate",[t(s)?"text-white":"text-gray-800"]])},M(i.filename?i.filename:"Text"),3),r("p",{class:n(["text-sm truncate",[t(s)?"text-gray-400":"text-gray-600"]])},M(i.date)+" · "+M(i.size),3)]),r("div",qt,[r("button",{onClick:k=>t(ue)(i.retrieveCode),class:n(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[t(s)?"hover:bg-blue-400 text-blue-400":"hover:bg-blue-100 text-blue-600"]])},[S(t(pe),{class:"w-5 h-5"})],10,Wt),r("button",{onClick:k=>Re(i),class:n(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[t(s)?"hover:bg-green-400 text-green-400":"hover:bg-green-100 text-green-600"]])},[S(t(ct),{class:"w-5 h-5"})],10,Xt),r("button",{onClick:k=>Be(i.id),class:n(["p-2 rounded-full hover:bg-opacity-20 transition duration-300",[t(s)?"hover:bg-red-400 text-red-400":"hover:bg-red-100 text-red-600"]])},[S(t(ut),{class:"w-5 h-5"})],10,Zt)])],2))),128))]),_:1})])],2)):K("",!0)]),_:1}),S(ie,{name:"fade"},{default:te(()=>[x.value?(D(),z("div",Jt,[r("div",{class:n(["w-full max-w-2xl rounded-2xl shadow-2xl transform transition-all duration-300 ease-out overflow-hidden",[t(s)?"bg-gray-900 bg-opacity-70":"bg-white bg-opacity-95"]])},[r("div",{class:n(["px-4 sm:px-6 py-3 sm:py-4 border-b",[t(s)?"border-gray-800":"border-gray-100"]])},[r("div",Kt,[r("h3",{class:n(["text-lg sm:text-xl font-semibold",[t(s)?"text-white":"text-gray-900"]])},M(t(u)("send.fileDetails")),3),r("button",{onClick:e[6]||(e[6]=i=>x.value=null),class:"p-1.5 sm:p-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors"},[S(t(_e),{class:n(["w-4 h-4 sm:w-5 sm:h-5",[t(s)?"text-gray-400":"text-gray-500"]])},null,8,["class"])])])],2),r("div",Qt,[r("div",{class:n(["rounded-xl p-3 sm:p-4 mb-4 sm:mb-6",[t(s)?"bg-gray-800 bg-opacity-50":"bg-gray-50 bg-opacity-95"]])},[r("div",Yt,[r("div",{class:n(["p-2 sm:p-3 rounded-lg",[t(s)?"bg-gray-800":"bg-white"]])},[S(t(Me),{class:n(["w-5 h-5 sm:w-6 sm:h-6",[t(s)?"text-indigo-400":"text-indigo-600"]])},null,8,["class"])],2),r("div",er,[r("h4",{class:n(["font-medium text-sm sm:text-base truncate",[t(s)?"text-white":"text-gray-900"]])},M(x.value.filename),3),r("p",{class:n(["text-xs sm:text-sm truncate",[t(s)?"text-gray-400":"text-gray-500"]])},M(x.value.size)+" · "+M(x.value.date),3)])]),r("div",tr,[r("div",rr,[S(t(gt),{class:n(["w-3.5 h-3.5 sm:w-4 sm:h-4 mr-1.5 sm:mr-2 flex-shrink-0",[t(s)?"text-gray-400":"text-gray-500"]])},null,8,["class"]),r("span",{class:n(["text-xs sm:text-sm truncate",[t(s)?"text-gray-300":"text-gray-600"]])},M(x.value.expiration),3)]),r("div",sr,[S(t(Ce),{class:n(["w-3.5 h-3.5 sm:w-4 sm:h-4 mr-1.5 sm:mr-2 flex-shrink-0",[t(s)?"text-gray-400":"text-gray-500"]])},null,8,["class"]),r("span",{class:n(["text-xs sm:text-sm truncate",[t(s)?"text-gray-300":"text-gray-600"]])}," 安全加密 ",2)])])],2),r("div",ar,[r("div",or,[r("div",nr,[r("div",lr,[e[14]||(e[14]=r("h4",{class:"font-medium text-sm sm:text-base"},"取件码",-1)),r("button",{onClick:e[7]||(e[7]=i=>t(lt)(x.value.retrieveCode)),class:"p-1.5 sm:p-2 rounded-full hover:bg-white/10 transition-colors"},[S(t(pe),{class:"w-4 h-4 sm:w-5 sm:h-5"})])]),r("p",ir,M(x.value.retrieveCode),1)]),r("div",{class:n(["rounded-xl p-3 sm:p-4",[t(s)?"bg-gray-800 bg-opacity-50":"bg-gray-50 bg-opacity-95"]])},[r("div",dr,[r("h4",{class:n(["font-medium text-sm sm:text-base flex items-center min-w-0",[t(s)?"text-white":"text-gray-900"]])},[S(t(vt),{class:"w-4 h-4 sm:w-5 sm:h-5 mr-1.5 sm:mr-2 text-indigo-500 flex-shrink-0"}),e[15]||(e[15]=r("span",{class:"truncate"},"wget下载",-1))],2),r("button",{onClick:e[8]||(e[8]=i=>t(it)(x.value.retrieveCode,x.value.filename)),class:"p-1.5 sm:p-2 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors flex-shrink-0"},[S(t(pe),{class:n(["w-4 h-4 sm:w-5 sm:h-5",[t(s)?"text-gray-400":"text-gray-500"]])},null,8,["class"])])]),r("p",{class:n(["text-xs sm:text-sm font-mono break-all line-clamp-2",[t(s)?"text-gray-300":"text-gray-600"]])}," 点击复制wget命令 ",2)],2)]),r("div",{class:n(["rounded-xl p-4 sm:p-5 flex flex-col items-center",[t(s)?"bg-gray-800 bg-opacity-50":"bg-gray-50 bg-opacity-95"]])},[r("div",cr,[S(dt,{value:Le(x.value),size:140,level:"M",class:"sm:w-[160px] sm:h-[160px]"},null,8,["value"])]),r("p",{class:n(["text-xs sm:text-sm truncate max-w-full",[t(s)?"text-gray-400":"text-gray-500"]])}," 扫描二维码快速取件 ",2)],2)])]),r("div",{class:n(["px-4 sm:px-6 py-3 sm:py-4 border-t",[t(s)?"border-gray-800":"border-gray-100"]])},[r("button",{onClick:e[9]||(e[9]=i=>t(ue)(x.value.retrieveCode)),class:"w-full bg-indigo-600 hover:bg-indigo-700 text-white px-4 sm:px-6 py-2 sm:py-3 rounded-lg text-sm sm:text-base font-medium transition-colors"}," 复制取件链接 ")],2)],2)])):K("",!0)]),_:1})],32)}}}),vr=ge(ur,[["__scopeId","data-v-832d304e"]]);export{vr as default}; diff --git a/themes/2024/assets/SystemSettingsView-9k34DWo0.js b/themes/2024/assets/SystemSettingsView-CqFKOfSv.js similarity index 99% rename from themes/2024/assets/SystemSettingsView-9k34DWo0.js rename to themes/2024/assets/SystemSettingsView-CqFKOfSv.js index 07619a9..efe80ad 100644 --- a/themes/2024/assets/SystemSettingsView-9k34DWo0.js +++ b/themes/2024/assets/SystemSettingsView-CqFKOfSv.js @@ -1 +1 @@ -import{d as B,u as F,r as h,p as z,a as m,o as b,b as e,t as l,e as o,n as s,i as A,x as d,z as g,A as x,y as w,D as k,j as _,$ as U,a0 as P}from"./index-B3zfsvgW.js";const T={class:"p-6 h-screen overflow-y-auto custom-scrollbar"},E={class:"space-y-4"},N={class:"grid grid-cols-1 gap-6"},L={class:"space-y-2"},I={class:"space-y-2"},$={class:"space-y-2"},j={class:"relative"},K=["placeholder"],G={class:"text-xs"},W={class:"space-y-2"},R={class:"space-y-2"},H=["value"],q={class:"space-y-2"},J={class:"grid grid-cols-1 gap-6 mt-8"},O={class:"space-y-2"},Q={class:"space-y-2"},X={class:"space-y-4"},Y={class:"space-y-2"},Z=["placeholder"],ee={class:"space-y-4"},oe={class:"space-y-2"},te={value:"local"},re={value:"s3"},ae={value:"webdav"},se={key:0,class:"space-y-2"},ne={class:"flex items-center"},ie=["aria-checked"],le={key:1,class:"space-y-4"},de={class:"space-y-2"},ge=["placeholder"],ue={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},ce={class:"space-y-2"},ye=["placeholder"],me={class:"space-y-2"},be=["placeholder"],pe={key:2,class:"space-y-4"},ve={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},he={class:"space-y-2"},xe={class:"space-y-2"},fe={class:"space-y-2"},_e={class:"space-y-2"},we={class:"space-y-2"},ke=["placeholder"],Ue={class:"space-y-2"},Ce={value:"s3v2"},Se={value:"s3v4"},Ve={class:"space-y-2"},De={class:"space-y-2"},Me={class:"flex items-center"},Be=["aria-checked"],Fe={class:"space-y-2"},ze={class:"flex items-center"},Ae=["aria-checked"],Pe={class:"mt-8"},Te={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},Ee={class:"space-y-2"},Ne={class:"flex items-center space-x-2"},Le={class:"space-y-2"},Ie={class:"flex items-center space-x-2"},$e={class:"space-y-2"},je={class:"flex items-center space-x-2"},Ke={value:"KB"},Ge={value:"MB"},We={value:"GB"},Re={class:"space-y-2"},He={class:"flex flex-wrap gap-3"},qe=["value"],Je={class:"space-y-2"},Oe={class:"flex items-center space-x-2"},Qe={value:"秒"},Xe={value:"分"},Ye={value:"时"},Ze={value:"天"},eo={class:"space-y-2"},oo={class:"flex items-center"},to=["aria-checked"],ro={class:"mt-8"},ao={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},so={class:"space-y-2"},no={class:"flex items-center space-x-2"},io={class:"space-y-2"},lo={class:"flex items-center space-x-2"},go={class:"flex justify-end mt-8"},yo=B({__name:"SystemSettingsView",setup(uo){const n=A("isDarkMode"),{t:i}=F(),t=h({name:"",description:"",file_storage:"",webdav_url:"",webdav_username:"",webdav_password:"",themesChoices:[],expireStyle:[],admin_token:"",robotsText:"",keywords:"",notify_title:"",storage_path:"",notify_content:"",openUpload:1,uploadSize:1,enableChunk:0,uploadMinute:1,max_save_seconds:0,opacity:.9,s3_access_key_id:"",background:"",showAdminAddr:0,page_explain:"",s3_secret_access_key:"",aws_session_token:"",s3_signature_version:"",s3_region_name:"",s3_bucket_name:"",s3_endpoint_url:"",s3_hostname:"",uploadCount:1,errorMinute:1,errorCount:1,s3_proxy:0,themesSelect:""}),p=h(1),v=h("MB"),c=h(1),y=h("天"),C=(u,a)=>u*{秒:1,分:60,时:3600,天:86400}[a],f=z(),S=async()=>{try{const u=await U.getConfig();if(u.code===200&&u.detail){t.value=u.detail;const a=t.value.uploadSize;a>=1024*1024*1024?(p.value=Math.round(a/(1024*1024*1024)),v.value="GB"):a>=1024*1024?(p.value=Math.round(a/(1024*1024)),v.value="MB"):(p.value=Math.round(a/1024),v.value="KB");const r=t.value.max_save_seconds;r===0?(c.value=7,y.value="天"):r%86400===0&&r>=86400?(c.value=r/86400,y.value="天"):r%3600===0&&r>=3600?(c.value=r/3600,y.value="时"):r%60===0&&r>=60?(c.value=r/60,y.value="分"):(c.value=r,y.value="秒")}}catch(u){const a=u instanceof Error?u.message:i("manage.systemSettings.getConfigFailed");f.showAlert(a,"error"),console.error("Failed to get system config:",u)}},V=(u,a)=>u*{KB:1024,MB:1048576,GB:1073741824}[a],D=()=>{const u={...t.value};u.uploadSize=V(p.value,v.value),c.value===0?u.max_save_seconds=7*86400:u.max_save_seconds=C(c.value,y.value),U.updateConfig(u).then(a=>{a.code==200?f.showAlert(i("manage.systemSettings.saveSuccess"),"success"):f.showAlert(a.message||i("manage.systemSettings.saveFailed"),"error")}).catch(a=>{const r=a instanceof Error?a.message:i("manage.systemSettings.saveFailed");f.showAlert(r,"error")})};return S(),(u,a)=>(b(),m("div",T,[e("h2",{class:s(["text-2xl font-bold mb-6",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("admin.settings.title")),3),e("div",{class:s(["space-y-6 rounded-lg shadow-md p-6",[o(n)?"bg-gray-800 bg-opacity-70":"bg-white"]])},[e("section",E,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("admin.settings.basicSettings")),3),e("div",N,[e("div",L,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.siteName")),3),d(e("input",{type:"text","onUpdate:modelValue":a[0]||(a[0]=r=>t.value.name=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.name]])]),e("div",I,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.websiteDescription")),3),d(e("input",{type:"text","onUpdate:modelValue":a[1]||(a[1]=r=>t.value.description=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.description]])]),e("div",$,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.adminPassword")),3),e("div",j,[d(e("input",{type:"password",minlength:"6","onUpdate:modelValue":a[2]||(a[2]=r=>t.value.admin_token=r),placeholder:o(i)("admin.settings.passwordPlaceholder"),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,K),[[g,t.value.admin_token]]),e("div",{class:s(["absolute inset-y-0 right-0 flex items-center pr-3 text-sm text-gray-400",[o(n)?"text-gray-500":"text-gray-400"]])},[e("span",G,l(o(i)("admin.settings.passwordNote")),1)],2)])]),e("div",W,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.keywords")),3),d(e("input",{type:"text","onUpdate:modelValue":a[3]||(a[3]=r=>t.value.keywords=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.keywords]])]),e("div",R,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.themeSelection")),3),d(e("select",{"onUpdate:modelValue":a[4]||(a[4]=r=>t.value.themesSelect=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border appearance-none bg-no-repeat bg-right focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none cursor-pointer",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]]),style:{"background-image":"url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M7%208l3%203%203-3%22%20stroke%3D%22%236B7280%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E')"}},[(b(!0),m(w,null,k(t.value.themesChoices,r=>(b(),m("option",{value:r.key,key:r.key},l(r.name)+" (by "+l(r.author)+" V"+l(r.version)+") ",9,H))),128))],2),[[x,t.value.themesSelect]])]),e("div",q,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.robotsFile")),3),d(e("textarea",{"onUpdate:modelValue":a[5]||(a[5]=r=>t.value.robotsText=r),rows:"3",class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border resize-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.robotsText]])])]),e("div",J,[e("div",O,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.notificationTitle")),3),d(e("input",{type:"text","onUpdate:modelValue":a[6]||(a[6]=r=>t.value.notify_title=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.notify_title]])]),e("div",Q,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.notificationContent")),3),d(e("textarea",{"onUpdate:modelValue":a[7]||(a[7]=r=>t.value.notify_content=r),rows:"3",class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border resize-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.notify_content]])])]),e("div",X,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("manage.settings.storageSettings")),3),e("div",Y,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.storagePath")),3),d(e("input",{type:"text",placeholder:o(i)("manage.settings.storagePathPlaceholder"),"onUpdate:modelValue":a[8]||(a[8]=r=>t.value.storage_path=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,Z),[[g,t.value.storage_path]])]),e("div",ee,[e("div",oe,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.storageMethod")),3),d(e("select",{"onUpdate:modelValue":a[9]||(a[9]=r=>t.value.file_storage=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border appearance-none bg-no-repeat bg-right focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none cursor-pointer",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]]),style:{"background-image":"url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M7%208l3%203%203-3%22%20stroke%3D%22%236B7280%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E')"}},[e("option",te,l(o(i)("manage.settings.localStorage")),1),e("option",re,l(o(i)("manage.settings.s3Storage")),1),e("option",ae,l(o(i)("manage.settings.webdavStorage")),1)],2),[[x,t.value.file_storage]])]),t.value.file_storage==="local"?(b(),m("div",se,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.chunkUploadNote")),3),e("div",ne,[e("button",{type:"button",onClick:a[10]||(a[10]=r=>t.value.enableChunk=t.value.enableChunk===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[t.value.enableChunk===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":t.value.enableChunk===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[t.value.enableChunk===1?"translate-x-5":"translate-x-0",o(n)&&t.value.enableChunk!==1?"bg-gray-100":"bg-white"]])},null,2)],10,ie),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(t.value.enableChunk===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])])):_("",!0),t.value.file_storage==="webdav"?(b(),m("div",le,[e("div",de,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])}," Webdav URL ",2),d(e("input",{type:"text",placeholder:o(i)("manage.settings.webdavUrlPlaceholder"),"onUpdate:modelValue":a[11]||(a[11]=r=>t.value.webdav_url=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,ge),[[g,t.value.webdav_url]])]),e("div",ue,[e("div",ce,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])}," Webdav Username ",2),d(e("input",{type:"text",placeholder:o(i)("manage.settings.webdavUsernamePlaceholder"),"onUpdate:modelValue":a[12]||(a[12]=r=>t.value.webdav_username=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,ye),[[g,t.value.webdav_username]])]),e("div",me,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])}," Webdav Password ",2),d(e("input",{type:"password",placeholder:o(i)("manage.settings.webdavPasswordPlaceholder"),"onUpdate:modelValue":a[13]||(a[13]=r=>t.value.webdav_password=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,be),[[g,t.value.webdav_password]])])])])):_("",!0),t.value.file_storage==="s3"?(b(),m("div",pe,[e("div",ve,[e("div",he,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3AccessKeyId")),3),d(e("input",{type:"text","onUpdate:modelValue":a[14]||(a[14]=r=>t.value.s3_access_key_id=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_access_key_id]])]),e("div",xe,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3SecretAccessKey")),3),d(e("input",{type:"password","onUpdate:modelValue":a[15]||(a[15]=r=>t.value.s3_secret_access_key=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_secret_access_key]])]),e("div",fe,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3BucketName")),3),d(e("input",{type:"text","onUpdate:modelValue":a[16]||(a[16]=r=>t.value.s3_bucket_name=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_bucket_name]])]),e("div",_e,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3EndpointUrl")),3),d(e("input",{type:"text","onUpdate:modelValue":a[17]||(a[17]=r=>t.value.s3_endpoint_url=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_endpoint_url]])]),e("div",we,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3RegionName")),3),d(e("input",{type:"text","onUpdate:modelValue":a[18]||(a[18]=r=>t.value.s3_region_name=r),placeholder:o(i)("manage.settings.autoPlaceholder"),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,ke),[[g,t.value.s3_region_name]])]),e("div",Ue,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3SignatureVersion")),3),d(e("select",{"onUpdate:modelValue":a[19]||(a[19]=r=>t.value.s3_signature_version=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]])},[e("option",Ce,l(o(i)("manage.settings.s3v2")),1),e("option",Se,l(o(i)("manage.settings.s3v4")),1)],2),[[x,t.value.s3_signature_version]])]),e("div",Ve,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3Hostname")),3),d(e("input",{type:"text","onUpdate:modelValue":a[20]||(a[20]=r=>t.value.s3_hostname=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_hostname]])]),e("div",De,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.enableProxy")),3),e("div",Me,[e("button",{type:"button",onClick:a[21]||(a[21]=r=>t.value.s3_proxy=t.value.s3_proxy===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[t.value.s3_proxy===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":t.value.s3_proxy===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[t.value.s3_proxy===1?"translate-x-5":"translate-x-0",o(n)&&t.value.s3_proxy!==1?"bg-gray-100":"bg-white"]])},null,2)],10,Be),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(t.value.s3_proxy===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])]),e("div",Fe,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.chunkUploadNote")),3),e("div",ze,[e("button",{type:"button",onClick:a[22]||(a[22]=r=>t.value.enableChunk=t.value.enableChunk===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[t.value.enableChunk===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":t.value.enableChunk===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[t.value.enableChunk===1?"translate-x-5":"translate-x-0",o(n)&&t.value.enableChunk!==1?"bg-gray-100":"bg-white"]])},null,2)],10,Ae),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(t.value.enableChunk===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])])])])):_("",!0)])]),e("div",Pe,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("manage.settings.uploadLimits")),3),e("div",Te,[e("div",Ee,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.uploadPerMinute")),3),e("div",Ne,[d(e("input",{type:"number","onUpdate:modelValue":a[23]||(a[23]=r=>t.value.uploadMinute=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.uploadMinute]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.minute")),3)])]),e("div",Le,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.uploadCountLimit")),3),e("div",Ie,[d(e("input",{type:"number","onUpdate:modelValue":a[24]||(a[24]=r=>t.value.uploadCount=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.uploadCount]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.files")),3)])]),e("div",$e,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.fileSizeLimit")),3),e("div",je,[d(e("input",{type:"number","onUpdate:modelValue":a[25]||(a[25]=r=>p.value=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,p.value]]),d(e("select",{"onUpdate:modelValue":a[26]||(a[26]=r=>v.value=r),class:s(["rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]])},[e("option",Ke,l(o(i)("manage.settings.fileSizeUnits.kb")),1),e("option",Ge,l(o(i)("manage.settings.fileSizeUnits.mb")),1),e("option",We,l(o(i)("manage.settings.fileSizeUnits.gb")),1)],2),[[x,v.value]])])]),e("div",Re,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.expirationType")),3),e("div",He,[(b(),m(w,null,k(["day","hour","minute","forever","count"],r=>e("label",{key:r,class:"relative inline-flex items-center group cursor-pointer"},[d(e("input",{type:"checkbox",value:r,"onUpdate:modelValue":a[27]||(a[27]=M=>t.value.expireStyle=M),class:"peer sr-only"},null,8,qe),[[P,t.value.expireStyle]]),e("div",{class:s(["px-4 py-2 rounded-full border-2 transition-all duration-200 select-none",[t.value.expireStyle.includes(r)?(o(n),"bg-indigo-600 border-indigo-600 text-white"):o(n)?"bg-gray-700 border-gray-600 text-gray-300 hover:border-indigo-500":"bg-white border-gray-300 text-gray-700 hover:border-indigo-500"]])},l(o(i)(`manage.settings.expiration.${r}`)),3)])),64))])]),e("div",Je,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.maxSaveTime")),3),e("div",Oe,[d(e("input",{type:"number","onUpdate:modelValue":a[28]||(a[28]=r=>c.value=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,c.value]]),d(e("select",{"onUpdate:modelValue":a[29]||(a[29]=r=>y.value=r),class:s(["rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]])},[e("option",Qe,l(o(i)("common.second")),1),e("option",Xe,l(o(i)("common.minute")),1),e("option",Ye,l(o(i)("common.hour")),1),e("option",Ze,l(o(i)("common.day")),1)],2),[[x,y.value]])])]),e("div",eo,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.guestUpload")),3),e("div",oo,[e("button",{type:"button",onClick:a[30]||(a[30]=r=>t.value.openUpload=t.value.openUpload===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[t.value.openUpload===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":t.value.openUpload===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[t.value.openUpload===1?"translate-x-5":"translate-x-0",o(n)&&t.value.openUpload!==1?"bg-gray-100":"bg-white"]])},null,2)],10,to),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(t.value.openUpload===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])])])]),e("div",ro,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("manage.settings.errorLimits")),3),e("div",ao,[e("div",so,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.errorPerMinute")),3),e("div",no,[d(e("input",{type:"number","onUpdate:modelValue":a[31]||(a[31]=r=>t.value.errorMinute=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.errorMinute]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.minute")),3)])]),e("div",io,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.errorCountLimit")),3),e("div",lo,[d(e("input",{type:"number","onUpdate:modelValue":a[32]||(a[32]=r=>t.value.errorCount=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.errorCount]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.times")),3)])])])]),e("div",go,[e("button",{onClick:D,class:"px-4 py-2 bg-indigo-600 text-white rounded-md hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 transition-colors duration-200"},l(o(i)("manage.settings.saveChanges")),1)])])],2)]))}});export{yo as default}; +import{d as B,u as F,r as h,p as z,a as m,o as b,b as e,t as l,e as o,n as s,i as A,x as d,z as g,A as x,y as w,D as k,j as _,$ as U,a0 as P}from"./index-B9FIg8c4.js";const T={class:"p-6 h-screen overflow-y-auto custom-scrollbar"},E={class:"space-y-4"},N={class:"grid grid-cols-1 gap-6"},L={class:"space-y-2"},I={class:"space-y-2"},$={class:"space-y-2"},j={class:"relative"},K=["placeholder"],G={class:"text-xs"},W={class:"space-y-2"},R={class:"space-y-2"},H=["value"],q={class:"space-y-2"},J={class:"grid grid-cols-1 gap-6 mt-8"},O={class:"space-y-2"},Q={class:"space-y-2"},X={class:"space-y-4"},Y={class:"space-y-2"},Z=["placeholder"],ee={class:"space-y-4"},oe={class:"space-y-2"},te={value:"local"},re={value:"s3"},ae={value:"webdav"},se={key:0,class:"space-y-2"},ne={class:"flex items-center"},ie=["aria-checked"],le={key:1,class:"space-y-4"},de={class:"space-y-2"},ge=["placeholder"],ue={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},ce={class:"space-y-2"},ye=["placeholder"],me={class:"space-y-2"},be=["placeholder"],pe={key:2,class:"space-y-4"},ve={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},he={class:"space-y-2"},xe={class:"space-y-2"},fe={class:"space-y-2"},_e={class:"space-y-2"},we={class:"space-y-2"},ke=["placeholder"],Ue={class:"space-y-2"},Ce={value:"s3v2"},Se={value:"s3v4"},Ve={class:"space-y-2"},De={class:"space-y-2"},Me={class:"flex items-center"},Be=["aria-checked"],Fe={class:"space-y-2"},ze={class:"flex items-center"},Ae=["aria-checked"],Pe={class:"mt-8"},Te={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},Ee={class:"space-y-2"},Ne={class:"flex items-center space-x-2"},Le={class:"space-y-2"},Ie={class:"flex items-center space-x-2"},$e={class:"space-y-2"},je={class:"flex items-center space-x-2"},Ke={value:"KB"},Ge={value:"MB"},We={value:"GB"},Re={class:"space-y-2"},He={class:"flex flex-wrap gap-3"},qe=["value"],Je={class:"space-y-2"},Oe={class:"flex items-center space-x-2"},Qe={value:"秒"},Xe={value:"分"},Ye={value:"时"},Ze={value:"天"},eo={class:"space-y-2"},oo={class:"flex items-center"},to=["aria-checked"],ro={class:"mt-8"},ao={class:"grid grid-cols-1 md:grid-cols-2 gap-6"},so={class:"space-y-2"},no={class:"flex items-center space-x-2"},io={class:"space-y-2"},lo={class:"flex items-center space-x-2"},go={class:"flex justify-end mt-8"},yo=B({__name:"SystemSettingsView",setup(uo){const n=A("isDarkMode"),{t:i}=F(),t=h({name:"",description:"",file_storage:"",webdav_url:"",webdav_username:"",webdav_password:"",themesChoices:[],expireStyle:[],admin_token:"",robotsText:"",keywords:"",notify_title:"",storage_path:"",notify_content:"",openUpload:1,uploadSize:1,enableChunk:0,uploadMinute:1,max_save_seconds:0,opacity:.9,s3_access_key_id:"",background:"",showAdminAddr:0,page_explain:"",s3_secret_access_key:"",aws_session_token:"",s3_signature_version:"",s3_region_name:"",s3_bucket_name:"",s3_endpoint_url:"",s3_hostname:"",uploadCount:1,errorMinute:1,errorCount:1,s3_proxy:0,themesSelect:""}),p=h(1),v=h("MB"),c=h(1),y=h("天"),C=(u,a)=>u*{秒:1,分:60,时:3600,天:86400}[a],f=z(),S=async()=>{try{const u=await U.getConfig();if(u.code===200&&u.detail){t.value=u.detail;const a=t.value.uploadSize;a>=1024*1024*1024?(p.value=Math.round(a/(1024*1024*1024)),v.value="GB"):a>=1024*1024?(p.value=Math.round(a/(1024*1024)),v.value="MB"):(p.value=Math.round(a/1024),v.value="KB");const r=t.value.max_save_seconds;r===0?(c.value=7,y.value="天"):r%86400===0&&r>=86400?(c.value=r/86400,y.value="天"):r%3600===0&&r>=3600?(c.value=r/3600,y.value="时"):r%60===0&&r>=60?(c.value=r/60,y.value="分"):(c.value=r,y.value="秒")}}catch(u){const a=u instanceof Error?u.message:i("manage.systemSettings.getConfigFailed");f.showAlert(a,"error"),console.error("Failed to get system config:",u)}},V=(u,a)=>u*{KB:1024,MB:1048576,GB:1073741824}[a],D=()=>{const u={...t.value};u.uploadSize=V(p.value,v.value),c.value===0?u.max_save_seconds=7*86400:u.max_save_seconds=C(c.value,y.value),U.updateConfig(u).then(a=>{a.code==200?f.showAlert(i("manage.systemSettings.saveSuccess"),"success"):f.showAlert(a.message||i("manage.systemSettings.saveFailed"),"error")}).catch(a=>{const r=a instanceof Error?a.message:i("manage.systemSettings.saveFailed");f.showAlert(r,"error")})};return S(),(u,a)=>(b(),m("div",T,[e("h2",{class:s(["text-2xl font-bold mb-6",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("admin.settings.title")),3),e("div",{class:s(["space-y-6 rounded-lg shadow-md p-6",[o(n)?"bg-gray-800 bg-opacity-70":"bg-white"]])},[e("section",E,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("admin.settings.basicSettings")),3),e("div",N,[e("div",L,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.siteName")),3),d(e("input",{type:"text","onUpdate:modelValue":a[0]||(a[0]=r=>t.value.name=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.name]])]),e("div",I,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.websiteDescription")),3),d(e("input",{type:"text","onUpdate:modelValue":a[1]||(a[1]=r=>t.value.description=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.description]])]),e("div",$,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.adminPassword")),3),e("div",j,[d(e("input",{type:"password",minlength:"6","onUpdate:modelValue":a[2]||(a[2]=r=>t.value.admin_token=r),placeholder:o(i)("admin.settings.passwordPlaceholder"),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,K),[[g,t.value.admin_token]]),e("div",{class:s(["absolute inset-y-0 right-0 flex items-center pr-3 text-sm text-gray-400",[o(n)?"text-gray-500":"text-gray-400"]])},[e("span",G,l(o(i)("admin.settings.passwordNote")),1)],2)])]),e("div",W,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("admin.settings.keywords")),3),d(e("input",{type:"text","onUpdate:modelValue":a[3]||(a[3]=r=>t.value.keywords=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.keywords]])]),e("div",R,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.themeSelection")),3),d(e("select",{"onUpdate:modelValue":a[4]||(a[4]=r=>t.value.themesSelect=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border appearance-none bg-no-repeat bg-right focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none cursor-pointer",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]]),style:{"background-image":"url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M7%208l3%203%203-3%22%20stroke%3D%22%236B7280%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E')"}},[(b(!0),m(w,null,k(t.value.themesChoices,r=>(b(),m("option",{value:r.key,key:r.key},l(r.name)+" (by "+l(r.author)+" V"+l(r.version)+") ",9,H))),128))],2),[[x,t.value.themesSelect]])]),e("div",q,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.robotsFile")),3),d(e("textarea",{"onUpdate:modelValue":a[5]||(a[5]=r=>t.value.robotsText=r),rows:"3",class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border resize-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.robotsText]])])]),e("div",J,[e("div",O,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.notificationTitle")),3),d(e("input",{type:"text","onUpdate:modelValue":a[6]||(a[6]=r=>t.value.notify_title=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.notify_title]])]),e("div",Q,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.notificationContent")),3),d(e("textarea",{"onUpdate:modelValue":a[7]||(a[7]=r=>t.value.notify_content=r),rows:"3",class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border resize-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.notify_content]])])]),e("div",X,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("manage.settings.storageSettings")),3),e("div",Y,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.storagePath")),3),d(e("input",{type:"text",placeholder:o(i)("manage.settings.storagePathPlaceholder"),"onUpdate:modelValue":a[8]||(a[8]=r=>t.value.storage_path=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,Z),[[g,t.value.storage_path]])]),e("div",ee,[e("div",oe,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.storageMethod")),3),d(e("select",{"onUpdate:modelValue":a[9]||(a[9]=r=>t.value.file_storage=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border appearance-none bg-no-repeat bg-right focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none cursor-pointer",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]]),style:{"background-image":"url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M7%208l3%203%203-3%22%20stroke%3D%22%236B7280%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E')"}},[e("option",te,l(o(i)("manage.settings.localStorage")),1),e("option",re,l(o(i)("manage.settings.s3Storage")),1),e("option",ae,l(o(i)("manage.settings.webdavStorage")),1)],2),[[x,t.value.file_storage]])]),t.value.file_storage==="local"?(b(),m("div",se,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.chunkUploadNote")),3),e("div",ne,[e("button",{type:"button",onClick:a[10]||(a[10]=r=>t.value.enableChunk=t.value.enableChunk===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[t.value.enableChunk===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":t.value.enableChunk===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[t.value.enableChunk===1?"translate-x-5":"translate-x-0",o(n)&&t.value.enableChunk!==1?"bg-gray-100":"bg-white"]])},null,2)],10,ie),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(t.value.enableChunk===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])])):_("",!0),t.value.file_storage==="webdav"?(b(),m("div",le,[e("div",de,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])}," Webdav URL ",2),d(e("input",{type:"text",placeholder:o(i)("manage.settings.webdavUrlPlaceholder"),"onUpdate:modelValue":a[11]||(a[11]=r=>t.value.webdav_url=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,ge),[[g,t.value.webdav_url]])]),e("div",ue,[e("div",ce,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])}," Webdav Username ",2),d(e("input",{type:"text",placeholder:o(i)("manage.settings.webdavUsernamePlaceholder"),"onUpdate:modelValue":a[12]||(a[12]=r=>t.value.webdav_username=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,ye),[[g,t.value.webdav_username]])]),e("div",me,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])}," Webdav Password ",2),d(e("input",{type:"password",placeholder:o(i)("manage.settings.webdavPasswordPlaceholder"),"onUpdate:modelValue":a[13]||(a[13]=r=>t.value.webdav_password=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,be),[[g,t.value.webdav_password]])])])])):_("",!0),t.value.file_storage==="s3"?(b(),m("div",pe,[e("div",ve,[e("div",he,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3AccessKeyId")),3),d(e("input",{type:"text","onUpdate:modelValue":a[14]||(a[14]=r=>t.value.s3_access_key_id=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_access_key_id]])]),e("div",xe,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3SecretAccessKey")),3),d(e("input",{type:"password","onUpdate:modelValue":a[15]||(a[15]=r=>t.value.s3_secret_access_key=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_secret_access_key]])]),e("div",fe,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3BucketName")),3),d(e("input",{type:"text","onUpdate:modelValue":a[16]||(a[16]=r=>t.value.s3_bucket_name=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_bucket_name]])]),e("div",_e,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3EndpointUrl")),3),d(e("input",{type:"text","onUpdate:modelValue":a[17]||(a[17]=r=>t.value.s3_endpoint_url=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_endpoint_url]])]),e("div",we,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3RegionName")),3),d(e("input",{type:"text","onUpdate:modelValue":a[18]||(a[18]=r=>t.value.s3_region_name=r),placeholder:o(i)("manage.settings.autoPlaceholder"),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,10,ke),[[g,t.value.s3_region_name]])]),e("div",Ue,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3SignatureVersion")),3),d(e("select",{"onUpdate:modelValue":a[19]||(a[19]=r=>t.value.s3_signature_version=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]])},[e("option",Ce,l(o(i)("manage.settings.s3v2")),1),e("option",Se,l(o(i)("manage.settings.s3v4")),1)],2),[[x,t.value.s3_signature_version]])]),e("div",Ve,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.s3Hostname")),3),d(e("input",{type:"text","onUpdate:modelValue":a[20]||(a[20]=r=>t.value.s3_hostname=r),class:s(["w-full rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.s3_hostname]])]),e("div",De,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.enableProxy")),3),e("div",Me,[e("button",{type:"button",onClick:a[21]||(a[21]=r=>t.value.s3_proxy=t.value.s3_proxy===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[t.value.s3_proxy===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":t.value.s3_proxy===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[t.value.s3_proxy===1?"translate-x-5":"translate-x-0",o(n)&&t.value.s3_proxy!==1?"bg-gray-100":"bg-white"]])},null,2)],10,Be),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(t.value.s3_proxy===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])]),e("div",Fe,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.chunkUploadNote")),3),e("div",ze,[e("button",{type:"button",onClick:a[22]||(a[22]=r=>t.value.enableChunk=t.value.enableChunk===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[t.value.enableChunk===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":t.value.enableChunk===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[t.value.enableChunk===1?"translate-x-5":"translate-x-0",o(n)&&t.value.enableChunk!==1?"bg-gray-100":"bg-white"]])},null,2)],10,Ae),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(t.value.enableChunk===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])])])])):_("",!0)])]),e("div",Pe,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("manage.settings.uploadLimits")),3),e("div",Te,[e("div",Ee,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.uploadPerMinute")),3),e("div",Ne,[d(e("input",{type:"number","onUpdate:modelValue":a[23]||(a[23]=r=>t.value.uploadMinute=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.uploadMinute]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.minute")),3)])]),e("div",Le,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.uploadCountLimit")),3),e("div",Ie,[d(e("input",{type:"number","onUpdate:modelValue":a[24]||(a[24]=r=>t.value.uploadCount=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.uploadCount]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.files")),3)])]),e("div",$e,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.fileSizeLimit")),3),e("div",je,[d(e("input",{type:"number","onUpdate:modelValue":a[25]||(a[25]=r=>p.value=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,p.value]]),d(e("select",{"onUpdate:modelValue":a[26]||(a[26]=r=>v.value=r),class:s(["rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]])},[e("option",Ke,l(o(i)("manage.settings.fileSizeUnits.kb")),1),e("option",Ge,l(o(i)("manage.settings.fileSizeUnits.mb")),1),e("option",We,l(o(i)("manage.settings.fileSizeUnits.gb")),1)],2),[[x,v.value]])])]),e("div",Re,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.expirationType")),3),e("div",He,[(b(),m(w,null,k(["day","hour","minute","forever","count"],r=>e("label",{key:r,class:"relative inline-flex items-center group cursor-pointer"},[d(e("input",{type:"checkbox",value:r,"onUpdate:modelValue":a[27]||(a[27]=M=>t.value.expireStyle=M),class:"peer sr-only"},null,8,qe),[[P,t.value.expireStyle]]),e("div",{class:s(["px-4 py-2 rounded-full border-2 transition-all duration-200 select-none",[t.value.expireStyle.includes(r)?(o(n),"bg-indigo-600 border-indigo-600 text-white"):o(n)?"bg-gray-700 border-gray-600 text-gray-300 hover:border-indigo-500":"bg-white border-gray-300 text-gray-700 hover:border-indigo-500"]])},l(o(i)(`manage.settings.expiration.${r}`)),3)])),64))])]),e("div",Je,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.maxSaveTime")),3),e("div",Oe,[d(e("input",{type:"number","onUpdate:modelValue":a[28]||(a[28]=r=>c.value=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,c.value]]),d(e("select",{"onUpdate:modelValue":a[29]||(a[29]=r=>y.value=r),class:s(["rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white hover:border-gray-500":"border-gray-300 hover:border-gray-400"]])},[e("option",Qe,l(o(i)("common.second")),1),e("option",Xe,l(o(i)("common.minute")),1),e("option",Ye,l(o(i)("common.hour")),1),e("option",Ze,l(o(i)("common.day")),1)],2),[[x,y.value]])])]),e("div",eo,[e("label",{class:s(["block text-sm font-medium mb-2",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.guestUpload")),3),e("div",oo,[e("button",{type:"button",onClick:a[30]||(a[30]=r=>t.value.openUpload=t.value.openUpload===1?0:1),class:s(["relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2",[t.value.openUpload===1?"bg-indigo-600":"bg-gray-200"]]),role:"switch","aria-checked":t.value.openUpload===1},[e("span",{class:s(["pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out",[t.value.openUpload===1?"translate-x-5":"translate-x-0",o(n)&&t.value.openUpload!==1?"bg-gray-100":"bg-white"]])},null,2)],10,to),e("span",{class:s(["ml-3 text-sm",[o(n)?"text-gray-300":"text-gray-700"]])},l(t.value.openUpload===1?o(i)("common.enabled"):o(i)("common.disabled")),3)])])])]),e("div",ro,[e("h3",{class:s(["text-lg font-medium mb-4",[o(n)?"text-white":"text-gray-800"]])},l(o(i)("manage.settings.errorLimits")),3),e("div",ao,[e("div",so,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.errorPerMinute")),3),e("div",no,[d(e("input",{type:"number","onUpdate:modelValue":a[31]||(a[31]=r=>t.value.errorMinute=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.errorMinute]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.minute")),3)])]),e("div",io,[e("label",{class:s(["block text-sm font-medium",[o(n)?"text-gray-300":"text-gray-700"]])},l(o(i)("manage.settings.errorCountLimit")),3),e("div",lo,[d(e("input",{type:"number","onUpdate:modelValue":a[32]||(a[32]=r=>t.value.errorCount=r),class:s(["w-24 rounded-md shadow-sm px-4 py-2.5 transition-all duration-200 ease-in-out border focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 outline-none",[o(n)?"bg-gray-700 border-gray-600 text-white placeholder-gray-400 hover:border-gray-500":"border-gray-300 hover:border-gray-400 placeholder-gray-500"]])},null,2),[[g,t.value.errorCount]]),e("span",{class:s([o(n)?"text-gray-300":"text-gray-700"])},l(o(i)("common.times")),3)])])])]),e("div",go,[e("button",{onClick:D,class:"px-4 py-2 bg-indigo-600 text-white rounded-md hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 transition-colors duration-200"},l(o(i)("manage.settings.saveChanges")),1)])])],2)]))}});export{yo as default}; diff --git a/themes/2024/assets/box-BaIzuVAS.js b/themes/2024/assets/box-BaIzuVAS.js new file mode 100644 index 0000000..569daf0 --- /dev/null +++ b/themes/2024/assets/box-BaIzuVAS.js @@ -0,0 +1,6 @@ +import{c as a}from"./index-B9FIg8c4.js";/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const e=a("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);export{e as B}; diff --git a/themes/2024/assets/box-COy3AQAQ.js b/themes/2024/assets/box-COy3AQAQ.js deleted file mode 100644 index d8ecbbe..0000000 --- a/themes/2024/assets/box-COy3AQAQ.js +++ /dev/null @@ -1 +0,0 @@ -import{c as a}from"./index-B3zfsvgW.js";const e=a("box",[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]]);export{e as B}; diff --git a/themes/2024/assets/copy-ClIbpnbK.js b/themes/2024/assets/copy-ClIbpnbK.js new file mode 100644 index 0000000..02a08ba --- /dev/null +++ b/themes/2024/assets/copy-ClIbpnbK.js @@ -0,0 +1,6 @@ +import{c}from"./index-B9FIg8c4.js";/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const t=c("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);export{t as C}; diff --git a/themes/2024/assets/copy-DV195_ld.js b/themes/2024/assets/copy-DV195_ld.js deleted file mode 100644 index ff9a016..0000000 --- a/themes/2024/assets/copy-DV195_ld.js +++ /dev/null @@ -1 +0,0 @@ -import{c}from"./index-B3zfsvgW.js";const t=c("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);export{t as C}; diff --git a/themes/2024/assets/file-CSeBUDan.js b/themes/2024/assets/file-CSeBUDan.js new file mode 100644 index 0000000..5b079f6 --- /dev/null +++ b/themes/2024/assets/file-CSeBUDan.js @@ -0,0 +1,6 @@ +import{c as a}from"./index-B9FIg8c4.js";/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const t=a("file",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);export{t as F}; diff --git a/themes/2024/assets/file-Ceuyr6iv.js b/themes/2024/assets/file-Ceuyr6iv.js deleted file mode 100644 index e8df671..0000000 --- a/themes/2024/assets/file-Ceuyr6iv.js +++ /dev/null @@ -1 +0,0 @@ -import{c as a}from"./index-B3zfsvgW.js";const t=a("file",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);export{t as F}; diff --git a/themes/2024/assets/hard-drive-5GIKYPKr.js b/themes/2024/assets/hard-drive-5GIKYPKr.js deleted file mode 100644 index c18a60d..0000000 --- a/themes/2024/assets/hard-drive-5GIKYPKr.js +++ /dev/null @@ -1 +0,0 @@ -import{c as e}from"./index-B3zfsvgW.js";const a=e("hard-drive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);export{a as H}; diff --git a/themes/2024/assets/hard-drive-DFfw9-r7.js b/themes/2024/assets/hard-drive-DFfw9-r7.js new file mode 100644 index 0000000..9f731c6 --- /dev/null +++ b/themes/2024/assets/hard-drive-DFfw9-r7.js @@ -0,0 +1,6 @@ +import{c as e}from"./index-B9FIg8c4.js";/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const a=e("hard-drive",[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]]);export{a as H}; diff --git a/themes/2024/assets/index-B3zfsvgW.js b/themes/2024/assets/index-B3zfsvgW.js deleted file mode 100644 index ac7bc87..0000000 --- a/themes/2024/assets/index-B3zfsvgW.js +++ /dev/null @@ -1,9 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SendFileView-DW3wRbaM.js","assets/PageHeader-Y9MICulD.js","assets/box-COy3AQAQ.js","assets/PageHeader-DV4PCTwD.css","assets/file-Ceuyr6iv.js","assets/trash-CdDjPTBr.js","assets/SendFileView-CncKd-lI.css","assets/RetrievewFileView-CWZH6U-r.js","assets/hard-drive-5GIKYPKr.js","assets/copy-DV195_ld.js","assets/RetrievewFileView-Bs4l0or-.css","assets/AdminLayout-CIwHWF3v.js","assets/AdminLayout-D_KhoR09.css","assets/DashboardView-CPuETXoG.js","assets/FileManageView-D9LkQK2i.js","assets/FileManageView-DrjnVkAt.css","assets/LoginView-DN8sBu46.js","assets/LoginView-CbGDZtny.css"])))=>i.map(i=>d[i]); -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function Ko(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const be={},Wn=[],xt=()=>{},Rl=()=>!1,vs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Go=e=>e.startsWith("onUpdate:"),ke=Object.assign,Yo=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Rf=Object.prototype.hasOwnProperty,me=(e,t)=>Rf.call(e,t),Q=Array.isArray,Bn=e=>Fr(e)==="[object Map]",Zn=e=>Fr(e)==="[object Set]",Li=e=>Fr(e)==="[object Date]",se=e=>typeof e=="function",Re=e=>typeof e=="string",vt=e=>typeof e=="symbol",ye=e=>e!==null&&typeof e=="object",Nl=e=>(ye(e)||se(e))&&se(e.then)&&se(e.catch),Il=Object.prototype.toString,Fr=e=>Il.call(e),Nf=e=>Fr(e).slice(8,-1),xl=e=>Fr(e)==="[object Object]",qo=e=>Re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,fr=Ko(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ss=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},If=/-\w/g,gt=Ss(e=>e.replace(If,t=>t.slice(1).toUpperCase())),xf=/\B([A-Z])/g,gn=Ss(e=>e.replace(xf,"-$1").toLowerCase()),ws=Ss(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ys=Ss(e=>e?`on${ws(e)}`:""),cn=(e,t)=>!Object.is(e,t),es=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},as=e=>{const t=parseFloat(e);return isNaN(t)?e:t},kf=e=>{const t=Re(e)?Number(e):NaN;return isNaN(t)?e:t};let Pi;const Ts=()=>Pi||(Pi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Cs(e){if(Q(e)){const t={};for(let n=0;n{if(n){const r=n.split(Df);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Nt(e){let t="";if(Re(e))t=e;else if(Q(e))for(let n=0;nDr(n,t))}const Dl=e=>!!(e&&e.__v_isRef===!0),Er=e=>Re(e)?e:e==null?"":Q(e)||ye(e)&&(e.toString===Il||!se(e.toString))?Dl(e)?Er(e.value):JSON.stringify(e,Ml,2):String(e),Ml=(e,t)=>Dl(t)?Ml(e,t.value):Bn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[qs(r,o)+" =>"]=s,n),{})}:Zn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>qs(n))}:vt(t)?qs(t):ye(t)&&!Q(t)&&!xl(t)?String(t):t,qs=(e,t="")=>{var n;return vt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let ze;class Ul{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=ze,!t&&ze&&(this.index=(ze.scopes||(ze.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(ze=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(hr){let t=hr;for(hr=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;dr;){let t=dr;for(dr=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Bl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function jl(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Zo(r),Bf(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function _o(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Kl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Kl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===vr)||(e.globalVersion=vr,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!_o(e))))return;e.flags|=2;const t=e.dep,n=ve,r=Et;ve=e,Et=!0;try{Bl(e);const s=e.fn(e._value);(t.version===0||cn(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{ve=n,Et=r,jl(e),e.flags&=-3}}function Zo(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)Zo(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Bf(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Et=!0;const Gl=[];function Yt(){Gl.push(Et),Et=!1}function qt(){const e=Gl.pop();Et=e===void 0?!0:e}function Ai(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ve;ve=void 0;try{t()}finally{ve=n}}}let vr=0;class jf{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ei{constructor(t){this.computed=t,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(t){if(!ve||!Et||ve===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ve)n=this.activeLink=new jf(ve,this),ve.deps?(n.prevDep=ve.depsTail,ve.depsTail.nextDep=n,ve.depsTail=n):ve.deps=ve.depsTail=n,Yl(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=ve.depsTail,n.nextDep=void 0,ve.depsTail.nextDep=n,ve.depsTail=n,ve.deps===n&&(ve.deps=r)}return n}trigger(t){this.version++,vr++,this.notify(t)}notify(t){Jo();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Qo()}}}function Yl(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Yl(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const ls=new WeakMap,Rn=Symbol(""),yo=Symbol(""),Sr=Symbol("");function Xe(e,t,n){if(Et&&ve){let r=ls.get(e);r||ls.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new ei),s.map=r,s.key=n),s.track()}}function Ht(e,t,n,r,s,o){const i=ls.get(e);if(!i){vr++;return}const a=l=>{l&&l.trigger()};if(Jo(),t==="clear")i.forEach(a);else{const l=Q(e),c=l&&qo(n);if(l&&n==="length"){const u=Number(r);i.forEach((f,d)=>{(d==="length"||d===Sr||!vt(d)&&d>=u)&&a(f)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),c&&a(i.get(Sr)),t){case"add":l?c&&a(i.get("length")):(a(i.get(Rn)),Bn(e)&&a(i.get(yo)));break;case"delete":l||(a(i.get(Rn)),Bn(e)&&a(i.get(yo)));break;case"set":Bn(e)&&a(i.get(Rn));break}}Qo()}function Kf(e,t){const n=ls.get(e);return n&&n.get(t)}function Dn(e){const t=ce(e);return t===e?t:(Xe(t,"iterate",Sr),mt(e)?t:t.map(Be))}function Ls(e){return Xe(e=ce(e),"iterate",Sr),e}const Gf={__proto__:null,[Symbol.iterator](){return Xs(this,Symbol.iterator,Be)},concat(...e){return Dn(this).concat(...e.map(t=>Q(t)?Dn(t):t))},entries(){return Xs(this,"entries",e=>(e[1]=Be(e[1]),e))},every(e,t){return Ft(this,"every",e,t,void 0,arguments)},filter(e,t){return Ft(this,"filter",e,t,n=>n.map(Be),arguments)},find(e,t){return Ft(this,"find",e,t,Be,arguments)},findIndex(e,t){return Ft(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ft(this,"findLast",e,t,Be,arguments)},findLastIndex(e,t){return Ft(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ft(this,"forEach",e,t,void 0,arguments)},includes(...e){return Js(this,"includes",e)},indexOf(...e){return Js(this,"indexOf",e)},join(e){return Dn(this).join(e)},lastIndexOf(...e){return Js(this,"lastIndexOf",e)},map(e,t){return Ft(this,"map",e,t,void 0,arguments)},pop(){return or(this,"pop")},push(...e){return or(this,"push",e)},reduce(e,...t){return Oi(this,"reduce",e,t)},reduceRight(e,...t){return Oi(this,"reduceRight",e,t)},shift(){return or(this,"shift")},some(e,t){return Ft(this,"some",e,t,void 0,arguments)},splice(...e){return or(this,"splice",e)},toReversed(){return Dn(this).toReversed()},toSorted(e){return Dn(this).toSorted(e)},toSpliced(...e){return Dn(this).toSpliced(...e)},unshift(...e){return or(this,"unshift",e)},values(){return Xs(this,"values",Be)}};function Xs(e,t,n){const r=Ls(e),s=r[t]();return r!==e&&!mt(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.value&&(o.value=n(o.value)),o}),s}const Yf=Array.prototype;function Ft(e,t,n,r,s,o){const i=Ls(e),a=i!==e&&!mt(e),l=i[t];if(l!==Yf[t]){const f=l.apply(e,o);return a?Be(f):f}let c=n;i!==e&&(a?c=function(f,d){return n.call(this,Be(f),d,e)}:n.length>2&&(c=function(f,d){return n.call(this,f,d,e)}));const u=l.call(i,c,r);return a&&s?s(u):u}function Oi(e,t,n,r){const s=Ls(e);let o=n;return s!==e&&(mt(e)?n.length>3&&(o=function(i,a,l){return n.call(this,i,a,l,e)}):o=function(i,a,l){return n.call(this,i,Be(a),l,e)}),s[t](o,...r)}function Js(e,t,n){const r=ce(e);Xe(r,"iterate",Sr);const s=r[t](...n);return(s===-1||s===!1)&&ri(n[0])?(n[0]=ce(n[0]),r[t](...n)):s}function or(e,t,n=[]){Yt(),Jo();const r=ce(e)[t].apply(e,n);return Qo(),qt(),r}const qf=Ko("__proto__,__v_isRef,__isVue"),ql=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(vt));function zf(e){vt(e)||(e=String(e));const t=ce(this);return Xe(t,"has",e),t.hasOwnProperty(e)}class zl{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?od:Zl:o?Ql:Jl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=Q(t);if(!s){let l;if(i&&(l=Gf[n]))return l;if(n==="hasOwnProperty")return zf}const a=Reflect.get(t,n,Le(t)?t:r);return(vt(n)?ql.has(n):qf(n))||(s||Xe(t,"get",n),o)?a:Le(a)?i&&qo(n)?a:a.value:ye(a)?s?tc(a):Mr(a):a}}class Xl extends zl{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];if(!this._isShallow){const l=fn(o);if(!mt(r)&&!fn(r)&&(o=ce(o),r=ce(r)),!Q(t)&&Le(o)&&!Le(r))return l||(o.value=r),!0}const i=Q(t)&&qo(n)?Number(n)e,Gr=e=>Reflect.getPrototypeOf(e);function ed(e,t,n){return function(...r){const s=this.__v_raw,o=ce(s),i=Bn(o),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=s[e](...r),u=n?bo:t?cs:Be;return!t&&Xe(o,"iterate",l?yo:Rn),{next(){const{value:f,done:d}=c.next();return d?{value:f,done:d}:{value:a?[u(f[0]),u(f[1])]:u(f),done:d}},[Symbol.iterator](){return this}}}}function Yr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function td(e,t){const n={get(s){const o=this.__v_raw,i=ce(o),a=ce(s);e||(cn(s,a)&&Xe(i,"get",s),Xe(i,"get",a));const{has:l}=Gr(i),c=t?bo:e?cs:Be;if(l.call(i,s))return c(o.get(s));if(l.call(i,a))return c(o.get(a));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Xe(ce(s),"iterate",Rn),s.size},has(s){const o=this.__v_raw,i=ce(o),a=ce(s);return e||(cn(s,a)&&Xe(i,"has",s),Xe(i,"has",a)),s===a?o.has(s):o.has(s)||o.has(a)},forEach(s,o){const i=this,a=i.__v_raw,l=ce(a),c=t?bo:e?cs:Be;return!e&&Xe(l,"iterate",Rn),a.forEach((u,f)=>s.call(o,c(u),c(f),i))}};return ke(n,e?{add:Yr("add"),set:Yr("set"),delete:Yr("delete"),clear:Yr("clear")}:{add(s){!t&&!mt(s)&&!fn(s)&&(s=ce(s));const o=ce(this);return Gr(o).has.call(o,s)||(o.add(s),Ht(o,"add",s,s)),this},set(s,o){!t&&!mt(o)&&!fn(o)&&(o=ce(o));const i=ce(this),{has:a,get:l}=Gr(i);let c=a.call(i,s);c||(s=ce(s),c=a.call(i,s));const u=l.call(i,s);return i.set(s,o),c?cn(o,u)&&Ht(i,"set",s,o):Ht(i,"add",s,o),this},delete(s){const o=ce(this),{has:i,get:a}=Gr(o);let l=i.call(o,s);l||(s=ce(s),l=i.call(o,s)),a&&a.call(o,s);const c=o.delete(s);return l&&Ht(o,"delete",s,void 0),c},clear(){const s=ce(this),o=s.size!==0,i=s.clear();return o&&Ht(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=ed(s,e,t)}),n}function ti(e,t){const n=td(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(me(n,s)&&s in r?n:r,s,o)}const nd={get:ti(!1,!1)},rd={get:ti(!1,!0)},sd={get:ti(!0,!1)};const Jl=new WeakMap,Ql=new WeakMap,Zl=new WeakMap,od=new WeakMap;function id(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ad(e){return e.__v_skip||!Object.isExtensible(e)?0:id(Nf(e))}function Mr(e){return fn(e)?e:ni(e,!1,Jf,nd,Jl)}function ec(e){return ni(e,!1,Zf,rd,Ql)}function tc(e){return ni(e,!0,Qf,sd,Zl)}function ni(e,t,n,r,s){if(!ye(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=ad(e);if(o===0)return e;const i=s.get(e);if(i)return i;const a=new Proxy(e,o===2?r:n);return s.set(e,a),a}function Kt(e){return fn(e)?Kt(e.__v_raw):!!(e&&e.__v_isReactive)}function fn(e){return!!(e&&e.__v_isReadonly)}function mt(e){return!!(e&&e.__v_isShallow)}function ri(e){return e?!!e.__v_raw:!1}function ce(e){const t=e&&e.__v_raw;return t?ce(t):e}function si(e){return!me(e,"__v_skip")&&Object.isExtensible(e)&&kl(e,"__v_skip",!0),e}const Be=e=>ye(e)?Mr(e):e,cs=e=>ye(e)?tc(e):e;function Le(e){return e?e.__v_isRef===!0:!1}function it(e){return nc(e,!1)}function oi(e){return nc(e,!0)}function nc(e,t){return Le(e)?e:new ld(e,t)}class ld{constructor(t,n){this.dep=new ei,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ce(t),this._value=n?t:Be(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||mt(t)||fn(t);t=r?t:ce(t),cn(t,n)&&(this._rawValue=t,this._value=r?t:Be(t),this.dep.trigger())}}function Te(e){return Le(e)?e.value:e}const cd={get:(e,t,n)=>t==="__v_raw"?e:Te(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return Le(s)&&!Le(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function rc(e){return Kt(e)?e:new Proxy(e,cd)}function ud(e){const t=Q(e)?new Array(e.length):{};for(const n in e)t[n]=sc(e,n);return t}class fd{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Kf(ce(this._object),this._key)}}class dd{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function hd(e,t,n){return Le(e)?e:se(e)?new dd(e):ye(e)&&arguments.length>1?sc(e,t,n):it(e)}function sc(e,t,n){const r=e[t];return Le(r)?r:new fd(e,t,n)}class pd{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new ei(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=vr-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&ve!==this)return Wl(this,!0),!0}get value(){const t=this.dep.track();return Kl(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function md(e,t,n=!1){let r,s;return se(e)?r=e:(r=e.get,s=e.set),new pd(r,s,n)}const qr={},us=new WeakMap;let Ln;function gd(e,t=!1,n=Ln){if(n){let r=us.get(n);r||us.set(n,r=[]),r.push(e)}}function _d(e,t,n=be){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:a,call:l}=n,c=v=>s?v:mt(v)||s===!1||s===0?Wt(v,1):Wt(v);let u,f,d,m,y=!1,S=!1;if(Le(e)?(f=()=>e.value,y=mt(e)):Kt(e)?(f=()=>c(e),y=!0):Q(e)?(S=!0,y=e.some(v=>Kt(v)||mt(v)),f=()=>e.map(v=>{if(Le(v))return v.value;if(Kt(v))return c(v);if(se(v))return l?l(v,2):v()})):se(e)?t?f=l?()=>l(e,2):e:f=()=>{if(d){Yt();try{d()}finally{qt()}}const v=Ln;Ln=u;try{return l?l(e,3,[m]):e(m)}finally{Ln=v}}:f=xt,t&&s){const v=f,O=s===!0?1/0:s;f=()=>Wt(v(),O)}const w=$l(),R=()=>{u.stop(),w&&w.active&&Yo(w.effects,u)};if(o&&t){const v=t;t=(...O)=>{v(...O),R()}}let D=S?new Array(e.length).fill(qr):qr;const E=v=>{if(!(!(u.flags&1)||!u.dirty&&!v))if(t){const O=u.run();if(s||y||(S?O.some((N,x)=>cn(N,D[x])):cn(O,D))){d&&d();const N=Ln;Ln=u;try{const x=[O,D===qr?void 0:S&&D[0]===qr?[]:D,m];D=O,l?l(t,3,x):t(...x)}finally{Ln=N}}}else u.run()};return a&&a(E),u=new Vl(f),u.scheduler=i?()=>i(E,!1):E,m=v=>gd(v,!1,u),d=u.onStop=()=>{const v=us.get(u);if(v){if(l)l(v,4);else for(const O of v)O();us.delete(u)}},t?r?E(!0):D=u.run():i?i(E.bind(null,!0),!0):u.run(),R.pause=u.pause.bind(u),R.resume=u.resume.bind(u),R.stop=R,R}function Wt(e,t=1/0,n){if(t<=0||!ye(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Le(e))Wt(e.value,t,n);else if(Q(e))for(let r=0;r{Wt(r,t,n)});else if(xl(e)){for(const r in e)Wt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Wt(e[r],t,n)}return e}function Ur(e,t,n,r){try{return r?e(...r):e()}catch(s){Ps(s,t,n)}}function St(e,t,n,r){if(se(e)){const s=Ur(e,t,n,r);return s&&Nl(s)&&s.catch(o=>{Ps(o,t,n)}),s}if(Q(e)){const s=[];for(let o=0;o>>1,s=st[r],o=wr(s);o=wr(n)?st.push(e):st.splice(bd(t),0,e),e.flags|=1,ic()}}function ic(){fs||(fs=oc.then(lc))}function Ed(e){Q(e)?jn.push(...e):sn&&e.id===-1?sn.splice(Un+1,0,e):e.flags&1||(jn.push(e),e.flags|=1),ic()}function Ri(e,t,n=Ot+1){for(;nwr(n)-wr(r));if(jn.length=0,sn){sn.push(...t);return}for(sn=t,Un=0;Une.id==null?e.flags&2?-1:1/0:e.id;function lc(e){try{for(Ot=0;Ot{r._d&&ms(-1);const o=ds(t);let i;try{i=e(...s)}finally{ds(o),r._d&&ms(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function qb(e,t){if(je===null)return e;const n=Is(je),r=e.dirs||(e.dirs=[]);for(let s=0;se.__isTeleport,Vt=Symbol("_leaveCb"),zr=Symbol("_enterCb");function fc(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return er(()=>{e.isMounted=!0}),Ec(()=>{e.isUnmounting=!0}),e}const ht=[Function,Array],dc={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ht,onEnter:ht,onAfterEnter:ht,onEnterCancelled:ht,onBeforeLeave:ht,onLeave:ht,onAfterLeave:ht,onLeaveCancelled:ht,onBeforeAppear:ht,onAppear:ht,onAfterAppear:ht,onAppearCancelled:ht},hc=e=>{const t=e.subTree;return t.component?hc(t.component):t},Sd={name:"BaseTransition",props:dc,setup(e,{slots:t}){const n=zt(),r=fc();return()=>{const s=t.default&&ai(t.default(),!0);if(!s||!s.length)return;const o=pc(s),i=ce(e),{mode:a}=i;if(r.isLeaving)return Qs(o);const l=Ni(o);if(!l)return Qs(o);let c=Cr(l,i,r,n,f=>c=f);l.type!==Je&&kn(l,c);let u=n.subTree&&Ni(n.subTree);if(u&&u.type!==Je&&!An(u,l)&&hc(n).type!==Je){let f=Cr(u,i,r,n);if(kn(u,f),a==="out-in"&&l.type!==Je)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,u=void 0},Qs(o);a==="in-out"&&l.type!==Je?f.delayLeave=(d,m,y)=>{const S=mc(r,u);S[String(u.key)]=u,d[Vt]=()=>{m(),d[Vt]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{y(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return o}}};function pc(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==Je){t=n;break}}return t}const wd=Sd;function mc(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Cr(e,t,n,r,s){const{appear:o,mode:i,persisted:a=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:d,onLeave:m,onAfterLeave:y,onLeaveCancelled:S,onBeforeAppear:w,onAppear:R,onAfterAppear:D,onAppearCancelled:E}=t,v=String(e.key),O=mc(n,e),N=(L,q)=>{L&&St(L,r,9,q)},x=(L,q)=>{const Z=q[1];N(L,q),Q(L)?L.every($=>$.length<=1)&&Z():L.length<=1&&Z()},V={mode:i,persisted:a,beforeEnter(L){let q=l;if(!n.isMounted)if(o)q=w||l;else return;L[Vt]&&L[Vt](!0);const Z=O[v];Z&&An(e,Z)&&Z.el[Vt]&&Z.el[Vt](),N(q,[L])},enter(L){let q=c,Z=u,$=f;if(!n.isMounted)if(o)q=R||c,Z=D||u,$=E||f;else return;let X=!1;const ue=L[zr]=Pe=>{X||(X=!0,Pe?N($,[L]):N(Z,[L]),V.delayedLeave&&V.delayedLeave(),L[zr]=void 0)};q?x(q,[L,ue]):ue()},leave(L,q){const Z=String(e.key);if(L[zr]&&L[zr](!0),n.isUnmounting)return q();N(d,[L]);let $=!1;const X=L[Vt]=ue=>{$||($=!0,q(),ue?N(S,[L]):N(y,[L]),L[Vt]=void 0,O[Z]===e&&delete O[Z])};O[Z]=e,m?x(m,[L,X]):X()},clone(L){const q=Cr(L,t,n,r,s);return s&&s(q),q}};return V}function Qs(e){if(Os(e))return e=hn(e),e.children=null,e}function Ni(e){if(!Os(e))return uc(e.type)&&e.children?pc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&se(n.default))return n.default()}}function kn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,kn(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ai(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;opr(y,t&&(Q(t)?t[S]:t),n,r,s));return}if(Kn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&pr(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Is(r.component):r.el,i=s?null:o,{i:a,r:l}=e,c=t&&t.r,u=a.refs===be?a.refs={}:a.refs,f=a.setupState,d=ce(f),m=f===be?Rl:y=>me(d,y);if(c!=null&&c!==l){if(Ii(t),Re(c))u[c]=null,m(c)&&(f[c]=null);else if(Le(c)){c.value=null;const y=t;y.k&&(u[y.k]=null)}}if(se(l))Ur(l,a,12,[i,u]);else{const y=Re(l),S=Le(l);if(y||S){const w=()=>{if(e.f){const R=y?m(l)?f[l]:u[l]:l.value;if(s)Q(R)&&Yo(R,o);else if(Q(R))R.includes(o)||R.push(o);else if(y)u[l]=[o],m(l)&&(f[l]=u[l]);else{const D=[o];l.value=D,e.k&&(u[e.k]=D)}}else y?(u[l]=i,m(l)&&(f[l]=i)):S&&(l.value=i,e.k&&(u[e.k]=i))};if(i){const R=()=>{w(),hs.delete(e)};R.id=-1,hs.set(e,R),ft(R,n)}else Ii(e),w()}}}function Ii(e){const t=hs.get(e);t&&(t.flags|=8,hs.delete(e))}Ts().requestIdleCallback;Ts().cancelIdleCallback;const Kn=e=>!!e.type.__asyncLoader,Os=e=>e.type.__isKeepAlive;function Td(e,t){_c(e,"a",t)}function Cd(e,t){_c(e,"da",t)}function _c(e,t,n=Qe){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Rs(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Os(s.parent.vnode)&&Ld(r,t,n,s),s=s.parent}}function Ld(e,t,n,r){const s=Rs(t,e,r,!0);tr(()=>{Yo(r[t],s)},n)}function Rs(e,t,n=Qe,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Yt();const a=Vr(n),l=St(t,n,e,i);return a(),qt(),l});return r?s.unshift(o):s.push(o),o}}const Jt=e=>(t,n=Qe)=>{(!Ar||e==="sp")&&Rs(e,(...r)=>t(...r),n)},yc=Jt("bm"),er=Jt("m"),Pd=Jt("bu"),bc=Jt("u"),Ec=Jt("bum"),tr=Jt("um"),Ad=Jt("sp"),Od=Jt("rtg"),Rd=Jt("rtc");function Nd(e,t=Qe){Rs("ec",e,t)}const vc="components";function zb(e,t){return Tc(vc,e,!0,t)||e}const Sc=Symbol.for("v-ndc");function wc(e){return Re(e)?Tc(vc,e,!1)||e:e||Sc}function Tc(e,t,n=!0,r=!1){const s=je||Qe;if(s){const o=s.type;{const a=Eh(o,!1);if(a&&(a===t||a===gt(t)||a===ws(gt(t))))return o}const i=xi(s[e]||o[e],t)||xi(s.appContext[e],t);return!i&&r?o:i}}function xi(e,t){return e&&(e[t]||e[gt(t)]||e[ws(gt(t))])}function Cc(e,t,n,r){let s;const o=n,i=Q(e);if(i||Re(e)){const a=i&&Kt(e);let l=!1,c=!1;a&&(l=!mt(e),c=fn(e),e=Ls(e)),s=new Array(e.length);for(let u=0,f=e.length;ut(a,l,void 0,o));else{const a=Object.keys(e);s=new Array(a.length);for(let l=0,c=a.length;lPr(t)?!(t.type===Je||t.type===Ue&&!Lc(t.children)):!0)?e:null}const Eo=e=>e?Yc(e)?Is(e):Eo(e.parent):null,mr=ke(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=>Eo(e.parent),$root:e=>Eo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ac(e),$forceUpdate:e=>e.f||(e.f=()=>{ii(e.update)}),$nextTick:e=>e.n||(e.n=As.bind(e.proxy)),$watch:e=>Zd.bind(e)}),Zs=(e,t)=>e!==be&&!e.__isScriptSetup&&me(e,t),Id={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:a,appContext:l}=e;let c;if(t[0]!=="$"){const m=i[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(Zs(r,t))return i[t]=1,r[t];if(s!==be&&me(s,t))return i[t]=2,s[t];if((c=e.propsOptions[0])&&me(c,t))return i[t]=3,o[t];if(n!==be&&me(n,t))return i[t]=4,n[t];vo&&(i[t]=0)}}const u=mr[t];let f,d;if(u)return t==="$attrs"&&Xe(e.attrs,"get",""),u(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(n!==be&&me(n,t))return i[t]=4,n[t];if(d=l.config.globalProperties,me(d,t))return d[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return Zs(s,t)?(s[t]=n,!0):r!==be&&me(r,t)?(r[t]=n,!0):me(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o,type:i}},a){let l,c;return!!(n[a]||e!==be&&a[0]!=="$"&&me(e,a)||Zs(t,a)||(l=o[0])&&me(l,a)||me(r,a)||me(mr,a)||me(s.config.globalProperties,a)||(c=i.__cssModules)&&c[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:me(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ki(e){return Q(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let vo=!0;function xd(e){const t=Ac(e),n=e.proxy,r=e.ctx;vo=!1,t.beforeCreate&&Fi(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:d,beforeUpdate:m,updated:y,activated:S,deactivated:w,beforeDestroy:R,beforeUnmount:D,destroyed:E,unmounted:v,render:O,renderTracked:N,renderTriggered:x,errorCaptured:V,serverPrefetch:L,expose:q,inheritAttrs:Z,components:$,directives:X,filters:ue}=t;if(c&&kd(c,r,null),i)for(const ee in i){const re=i[ee];se(re)&&(r[ee]=re.bind(n))}if(s){const ee=s.call(n,n);ye(ee)&&(e.data=Mr(ee))}if(vo=!0,o)for(const ee in o){const re=o[ee],Fe=se(re)?re.bind(n,n):se(re.get)?re.get.bind(n,n):xt,Ye=!se(re)&&se(re.set)?re.set.bind(n):xt,he=Ee({get:Fe,set:Ye});Object.defineProperty(r,ee,{enumerable:!0,configurable:!0,get:()=>he.value,set:ge=>he.value=ge})}if(a)for(const ee in a)Pc(a[ee],r,n,ee);if(l){const ee=se(l)?l.call(n):l;Reflect.ownKeys(ee).forEach(re=>{In(re,ee[re])})}u&&Fi(u,e,"c");function te(ee,re){Q(re)?re.forEach(Fe=>ee(Fe.bind(n))):re&&ee(re.bind(n))}if(te(yc,f),te(er,d),te(Pd,m),te(bc,y),te(Td,S),te(Cd,w),te(Nd,V),te(Rd,N),te(Od,x),te(Ec,D),te(tr,v),te(Ad,L),Q(q))if(q.length){const ee=e.exposed||(e.exposed={});q.forEach(re=>{Object.defineProperty(ee,re,{get:()=>n[re],set:Fe=>n[re]=Fe,enumerable:!0})})}else e.exposed||(e.exposed={});O&&e.render===xt&&(e.render=O),Z!=null&&(e.inheritAttrs=Z),$&&(e.components=$),X&&(e.directives=X),L&&gc(e)}function kd(e,t,n=xt){Q(e)&&(e=So(e));for(const r in e){const s=e[r];let o;ye(s)?"default"in s?o=et(s.from||r,s.default,!0):o=et(s.from||r):o=et(s),Le(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Fi(e,t,n){St(Q(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Pc(e,t,n,r){let s=r.includes(".")?Hc(n,r):()=>n[r];if(Re(e)){const o=t[e];se(o)&&un(s,o)}else if(se(e))un(s,e.bind(n));else if(ye(e))if(Q(e))e.forEach(o=>Pc(o,t,n,r));else{const o=se(e.handler)?e.handler.bind(n):t[e.handler];se(o)&&un(s,o,e)}}function Ac(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,a=o.get(t);let l;return a?l=a:!s.length&&!n&&!r?l=t:(l={},s.length&&s.forEach(c=>ps(l,c,i,!0)),ps(l,t,i)),ye(t)&&o.set(t,l),l}function ps(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&ps(e,o,n,!0),s&&s.forEach(i=>ps(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const a=Fd[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const Fd={data:Di,props:Mi,emits:Mi,methods:ur,computed:ur,beforeCreate:nt,created:nt,beforeMount:nt,mounted:nt,beforeUpdate:nt,updated:nt,beforeDestroy:nt,beforeUnmount:nt,destroyed:nt,unmounted:nt,activated:nt,deactivated:nt,errorCaptured:nt,serverPrefetch:nt,components:ur,directives:ur,watch:Md,provide:Di,inject:Dd};function Di(e,t){return t?e?function(){return ke(se(e)?e.call(this,this):e,se(t)?t.call(this,this):t)}:t:e}function Dd(e,t){return ur(So(e),So(t))}function So(e){if(Q(e)){const t={};for(let n=0;n1)return n&&se(t)?t.call(r&&r.proxy):t}}function Vd(){return!!(zt()||Nn)}const Rc={},Nc=()=>Object.create(Rc),Ic=e=>Object.getPrototypeOf(e)===Rc;function Hd(e,t,n,r=!1){const s={},o=Nc();e.propsDefaults=Object.create(null),xc(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:ec(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Wd(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,a=ce(s),[l]=e.propsOptions;let c=!1;if((r||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,m]=kc(f,t,!0);ke(i,d),m&&a.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!o&&!l)return ye(e)&&r.set(e,Wn),Wn;if(Q(o))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",ci=e=>Q(e)?e.map(Rt):[Rt(e)],jd=(e,t,n)=>{if(t._n)return t;const r=Tr((...s)=>ci(t(...s)),n);return r._c=!1,r},Fc=(e,t,n)=>{const r=e._ctx;for(const s in e){if(li(s))continue;const o=e[s];if(se(o))t[s]=jd(s,o,r);else if(o!=null){const i=ci(o);t[s]=()=>i}}},Dc=(e,t)=>{const n=ci(t);e.slots.default=()=>n},Mc=(e,t,n)=>{for(const r in t)(n||!li(r))&&(e[r]=t[r])},Kd=(e,t,n)=>{const r=e.slots=Nc();if(e.vnode.shapeFlag&32){const s=t._;s?(Mc(r,t,n),n&&kl(r,"_",s,!0)):Fc(t,r)}else t&&Dc(e,t)},Gd=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=be;if(r.shapeFlag&32){const a=t._;a?n&&a===1?o=!1:Mc(s,t,n):(o=!t.$stable,Fc(t,s)),i=t}else t&&(Dc(e,t),i={default:1});if(o)for(const a in s)!li(a)&&i[a]==null&&delete s[a]},ft=ah;function Yd(e){return qd(e)}function qd(e,t){const n=Ts();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:d,setScopeId:m=xt,insertStaticContent:y}=e,S=(g,b,_,P=null,U=null,F=null,B=void 0,W=null,h=!!b.dynamicChildren)=>{if(g===b)return;g&&!An(g,b)&&(P=M(g),ge(g,U,F,!0),g=null),b.patchFlag===-2&&(h=!1,b.dynamicChildren=null);const{type:p,ref:C,shapeFlag:I}=b;switch(p){case $r:w(g,b,_,P);break;case Je:R(g,b,_,P);break;case to:g==null&&D(b,_,P,B);break;case Ue:$(g,b,_,P,U,F,B,W,h);break;default:I&1?O(g,b,_,P,U,F,B,W,h):I&6?X(g,b,_,P,U,F,B,W,h):(I&64||I&128)&&p.process(g,b,_,P,U,F,B,W,h,z)}C!=null&&U?pr(C,g&&g.ref,F,b||g,!b):C==null&&g&&g.ref!=null&&pr(g.ref,null,F,g,!0)},w=(g,b,_,P)=>{if(g==null)r(b.el=a(b.children),_,P);else{const U=b.el=g.el;b.children!==g.children&&c(U,b.children)}},R=(g,b,_,P)=>{g==null?r(b.el=l(b.children||""),_,P):b.el=g.el},D=(g,b,_,P)=>{[g.el,g.anchor]=y(g.children,b,_,P,g.el,g.anchor)},E=({el:g,anchor:b},_,P)=>{let U;for(;g&&g!==b;)U=d(g),r(g,_,P),g=U;r(b,_,P)},v=({el:g,anchor:b})=>{let _;for(;g&&g!==b;)_=d(g),s(g),g=_;s(b)},O=(g,b,_,P,U,F,B,W,h)=>{b.type==="svg"?B="svg":b.type==="math"&&(B="mathml"),g==null?N(b,_,P,U,F,B,W,h):L(g,b,U,F,B,W,h)},N=(g,b,_,P,U,F,B,W)=>{let h,p;const{props:C,shapeFlag:I,transition:K,dirs:H}=g;if(h=g.el=i(g.type,F,C&&C.is,C),I&8?u(h,g.children):I&16&&V(g.children,h,null,P,U,eo(g,F),B,W),H&&vn(g,null,P,"created"),x(h,g,g.scopeId,B,P),C){for(const k in C)k!=="value"&&!fr(k)&&o(h,k,null,C[k],F,P);"value"in C&&o(h,"value",null,C.value,F),(p=C.onVnodeBeforeMount)&&Lt(p,P,g)}H&&vn(g,null,P,"beforeMount");const T=zd(U,K);T&&K.beforeEnter(h),r(h,b,_),((p=C&&C.onVnodeMounted)||T||H)&&ft(()=>{p&&Lt(p,P,g),T&&K.enter(h),H&&vn(g,null,P,"mounted")},U)},x=(g,b,_,P,U)=>{if(_&&m(g,_),P)for(let F=0;F{for(let p=h;p{const W=b.el=g.el;let{patchFlag:h,dynamicChildren:p,dirs:C}=b;h|=g.patchFlag&16;const I=g.props||be,K=b.props||be;let H;if(_&&Sn(_,!1),(H=K.onVnodeBeforeUpdate)&&Lt(H,_,b,g),C&&vn(b,g,_,"beforeUpdate"),_&&Sn(_,!0),(I.innerHTML&&K.innerHTML==null||I.textContent&&K.textContent==null)&&u(W,""),p?q(g.dynamicChildren,p,W,_,P,eo(b,U),F):B||re(g,b,W,null,_,P,eo(b,U),F,!1),h>0){if(h&16)Z(W,I,K,_,U);else if(h&2&&I.class!==K.class&&o(W,"class",null,K.class,U),h&4&&o(W,"style",I.style,K.style,U),h&8){const T=b.dynamicProps;for(let k=0;k{H&&Lt(H,_,b,g),C&&vn(b,g,_,"updated")},P)},q=(g,b,_,P,U,F,B)=>{for(let W=0;W{if(b!==_){if(b!==be)for(const F in b)!fr(F)&&!(F in _)&&o(g,F,b[F],null,U,P);for(const F in _){if(fr(F))continue;const B=_[F],W=b[F];B!==W&&F!=="value"&&o(g,F,W,B,U,P)}"value"in _&&o(g,"value",b.value,_.value,U)}},$=(g,b,_,P,U,F,B,W,h)=>{const p=b.el=g?g.el:a(""),C=b.anchor=g?g.anchor:a("");let{patchFlag:I,dynamicChildren:K,slotScopeIds:H}=b;H&&(W=W?W.concat(H):H),g==null?(r(p,_,P),r(C,_,P),V(b.children||[],_,C,U,F,B,W,h)):I>0&&I&64&&K&&g.dynamicChildren?(q(g.dynamicChildren,K,_,U,F,B,W),(b.key!=null||U&&b===U.subTree)&&Uc(g,b,!0)):re(g,b,_,C,U,F,B,W,h)},X=(g,b,_,P,U,F,B,W,h)=>{b.slotScopeIds=W,g==null?b.shapeFlag&512?U.ctx.activate(b,_,P,B,h):ue(b,_,P,U,F,B,h):Pe(g,b,h)},ue=(g,b,_,P,U,F,B)=>{const W=g.component=mh(g,P,U);if(Os(g)&&(W.ctx.renderer=z),gh(W,!1,B),W.asyncDep){if(U&&U.registerDep(W,te,B),!g.el){const h=W.subTree=Oe(Je);R(null,h,b,_),g.placeholder=h.el}}else te(W,g,b,_,U,F,B)},Pe=(g,b,_)=>{const P=b.component=g.component;if(oh(g,b,_))if(P.asyncDep&&!P.asyncResolved){ee(P,b,_);return}else P.next=b,P.update();else b.el=g.el,P.vnode=b},te=(g,b,_,P,U,F,B)=>{const W=()=>{if(g.isMounted){let{next:I,bu:K,u:H,parent:T,vnode:k}=g;{const Ve=$c(g);if(Ve){I&&(I.el=k.el,ee(g,I,B)),Ve.asyncDep.then(()=>{g.isUnmounted||W()});return}}let J=I,le;Sn(g,!1),I?(I.el=k.el,ee(g,I,B)):I=k,K&&es(K),(le=I.props&&I.props.onVnodeBeforeUpdate)&&Lt(le,T,I,k),Sn(g,!0);const Ae=Vi(g),tt=g.subTree;g.subTree=Ae,S(tt,Ae,f(tt.el),M(tt),g,U,F),I.el=Ae.el,J===null&&ih(g,Ae.el),H&&ft(H,U),(le=I.props&&I.props.onVnodeUpdated)&&ft(()=>Lt(le,T,I,k),U)}else{let I;const{el:K,props:H}=b,{bm:T,m:k,parent:J,root:le,type:Ae}=g,tt=Kn(b);Sn(g,!1),T&&es(T),!tt&&(I=H&&H.onVnodeBeforeMount)&&Lt(I,J,b),Sn(g,!0);{le.ce&&le.ce._def.shadowRoot!==!1&&le.ce._injectChildStyle(Ae);const Ve=g.subTree=Vi(g);S(null,Ve,_,P,g,U,F),b.el=Ve.el}if(k&&ft(k,U),!tt&&(I=H&&H.onVnodeMounted)){const Ve=b;ft(()=>Lt(I,J,Ve),U)}(b.shapeFlag&256||J&&Kn(J.vnode)&&J.vnode.shapeFlag&256)&&g.a&&ft(g.a,U),g.isMounted=!0,b=_=P=null}};g.scope.on();const h=g.effect=new Vl(W);g.scope.off();const p=g.update=h.run.bind(h),C=g.job=h.runIfDirty.bind(h);C.i=g,C.id=g.uid,h.scheduler=()=>ii(C),Sn(g,!0),p()},ee=(g,b,_)=>{b.component=g;const P=g.vnode.props;g.vnode=b,g.next=null,Wd(g,b.props,P,_),Gd(g,b.children,_),Yt(),Ri(g),qt()},re=(g,b,_,P,U,F,B,W,h=!1)=>{const p=g&&g.children,C=g?g.shapeFlag:0,I=b.children,{patchFlag:K,shapeFlag:H}=b;if(K>0){if(K&128){Ye(p,I,_,P,U,F,B,W,h);return}else if(K&256){Fe(p,I,_,P,U,F,B,W,h);return}}H&8?(C&16&&Me(p,U,F),I!==p&&u(_,I)):C&16?H&16?Ye(p,I,_,P,U,F,B,W,h):Me(p,U,F,!0):(C&8&&u(_,""),H&16&&V(I,_,P,U,F,B,W,h))},Fe=(g,b,_,P,U,F,B,W,h)=>{g=g||Wn,b=b||Wn;const p=g.length,C=b.length,I=Math.min(p,C);let K;for(K=0;KC?Me(g,U,F,!0,!1,I):V(b,_,P,U,F,B,W,h,I)},Ye=(g,b,_,P,U,F,B,W,h)=>{let p=0;const C=b.length;let I=g.length-1,K=C-1;for(;p<=I&&p<=K;){const H=g[p],T=b[p]=h?on(b[p]):Rt(b[p]);if(An(H,T))S(H,T,_,null,U,F,B,W,h);else break;p++}for(;p<=I&&p<=K;){const H=g[I],T=b[K]=h?on(b[K]):Rt(b[K]);if(An(H,T))S(H,T,_,null,U,F,B,W,h);else break;I--,K--}if(p>I){if(p<=K){const H=K+1,T=HK)for(;p<=I;)ge(g[p],U,F,!0),p++;else{const H=p,T=p,k=new Map;for(p=T;p<=K;p++){const ut=b[p]=h?on(b[p]):Rt(b[p]);ut.key!=null&&k.set(ut.key,p)}let J,le=0;const Ae=K-T+1;let tt=!1,Ve=0;const En=new Array(Ae);for(p=0;p=Ae){ge(ut,U,F,!0);continue}let Ct;if(ut.key!=null)Ct=k.get(ut.key);else for(J=T;J<=K;J++)if(En[J-T]===0&&An(ut,b[J])){Ct=J;break}Ct===void 0?ge(ut,U,F,!0):(En[Ct-T]=p+1,Ct>=Ve?Ve=Ct:tt=!0,S(ut,b[Ct],_,null,U,F,B,W,h),le++)}const Gs=tt?Xd(En):Wn;for(J=Gs.length-1,p=Ae-1;p>=0;p--){const ut=T+p,Ct=b[ut],Ti=b[ut+1],Ci=ut+1{const{el:F,type:B,transition:W,children:h,shapeFlag:p}=g;if(p&6){he(g.component.subTree,b,_,P);return}if(p&128){g.suspense.move(b,_,P);return}if(p&64){B.move(g,b,_,z);return}if(B===Ue){r(F,b,_);for(let I=0;IW.enter(F),U);else{const{leave:I,delayLeave:K,afterLeave:H}=W,T=()=>{g.ctx.isUnmounted?s(F):r(F,b,_)},k=()=>{F._isLeaving&&F[Vt](!0),I(F,()=>{T(),H&&H()})};K?K(F,T,k):k()}else r(F,b,_)},ge=(g,b,_,P=!1,U=!1)=>{const{type:F,props:B,ref:W,children:h,dynamicChildren:p,shapeFlag:C,patchFlag:I,dirs:K,cacheIndex:H}=g;if(I===-2&&(U=!1),W!=null&&(Yt(),pr(W,null,_,g,!0),qt()),H!=null&&(b.renderCache[H]=void 0),C&256){b.ctx.deactivate(g);return}const T=C&1&&K,k=!Kn(g);let J;if(k&&(J=B&&B.onVnodeBeforeUnmount)&&Lt(J,b,g),C&6)ct(g.component,_,P);else{if(C&128){g.suspense.unmount(_,P);return}T&&vn(g,null,b,"beforeUnmount"),C&64?g.type.remove(g,b,_,z,P):p&&!p.hasOnce&&(F!==Ue||I>0&&I&64)?Me(p,b,_,!1,!0):(F===Ue&&I&384||!U&&C&16)&&Me(h,b,_),P&&qe(g)}(k&&(J=B&&B.onVnodeUnmounted)||T)&&ft(()=>{J&&Lt(J,b,g),T&&vn(g,null,b,"unmounted")},_)},qe=g=>{const{type:b,el:_,anchor:P,transition:U}=g;if(b===Ue){De(_,P);return}if(b===to){v(g);return}const F=()=>{s(_),U&&!U.persisted&&U.afterLeave&&U.afterLeave()};if(g.shapeFlag&1&&U&&!U.persisted){const{leave:B,delayLeave:W}=U,h=()=>B(_,F);W?W(g.el,F,h):h()}else F()},De=(g,b)=>{let _;for(;g!==b;)_=d(g),s(g),g=_;s(b)},ct=(g,b,_)=>{const{bum:P,scope:U,job:F,subTree:B,um:W,m:h,a:p}=g;$i(h),$i(p),P&&es(P),U.stop(),F&&(F.flags|=8,ge(B,g,b,_)),W&&ft(W,b),ft(()=>{g.isUnmounted=!0},b)},Me=(g,b,_,P=!1,U=!1,F=0)=>{for(let B=F;B{if(g.shapeFlag&6)return M(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const b=d(g.anchor||g.el),_=b&&b[vd];return _?d(_):b};let Y=!1;const j=(g,b,_)=>{g==null?b._vnode&&ge(b._vnode,null,null,!0):S(b._vnode||null,g,b,null,null,null,_),b._vnode=g,Y||(Y=!0,Ri(),ac(),Y=!1)},z={p:S,um:ge,m:he,r:qe,mt:ue,mc:V,pc:re,pbc:q,n:M,o:e};return{render:j,hydrate:void 0,createApp:$d(j)}}function eo({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Sn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function zd(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Uc(e,t,n=!1){const r=e.children,s=t.children;if(Q(r)&&Q(s))for(let o=0;o>1,e[n[a]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function $c(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:$c(t)}function $i(e){if(e)for(let t=0;tet(Jd);function un(e,t,n){return Vc(e,t,n)}function Vc(e,t,n=be){const{immediate:r,deep:s,flush:o,once:i}=n,a=ke({},n),l=t&&r||!t&&o!=="post";let c;if(Ar){if(o==="sync"){const m=Qd();c=m.__watcherHandles||(m.__watcherHandles=[])}else if(!l){const m=()=>{};return m.stop=xt,m.resume=xt,m.pause=xt,m}}const u=Qe;a.call=(m,y,S)=>St(m,u,y,S);let f=!1;o==="post"?a.scheduler=m=>{ft(m,u&&u.suspense)}:o!=="sync"&&(f=!0,a.scheduler=(m,y)=>{y?m():ii(m)}),a.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,u&&(m.id=u.uid,m.i=u))};const d=_d(e,t,a);return Ar&&(c?c.push(d):l&&d()),d}function Zd(e,t,n){const r=this.proxy,s=Re(e)?e.includes(".")?Hc(r,e):()=>r[e]:e.bind(r,r);let o;se(t)?o=t:(o=t.handler,n=t);const i=Vr(this),a=Vc(s,o.bind(r),n);return i(),a}function Hc(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${gt(t)}Modifiers`]||e[`${gn(t)}Modifiers`];function th(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||be;let s=n;const o=t.startsWith("update:"),i=o&&eh(r,t.slice(7));i&&(i.trim&&(s=n.map(u=>Re(u)?u.trim():u)),i.number&&(s=n.map(as)));let a,l=r[a=Ys(t)]||r[a=Ys(gt(t))];!l&&o&&(l=r[a=Ys(gn(t))]),l&&St(l,e,6,s);const c=r[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,St(c,e,6,s)}}const nh=new WeakMap;function Wc(e,t,n=!1){const r=n?nh:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},a=!1;if(!se(e)){const l=c=>{const u=Wc(c,t,!0);u&&(a=!0,ke(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!o&&!a?(ye(e)&&r.set(e,null),null):(Q(o)?o.forEach(l=>i[l]=null):ke(i,o),ye(e)&&r.set(e,i),i)}function Ns(e,t){return!e||!vs(t)?!1:(t=t.slice(2).replace(/Once$/,""),me(e,t[0].toLowerCase()+t.slice(1))||me(e,gn(t))||me(e,t))}function Vi(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:a,emit:l,render:c,renderCache:u,props:f,data:d,setupState:m,ctx:y,inheritAttrs:S}=e,w=ds(e);let R,D;try{if(n.shapeFlag&4){const v=s||r,O=v;R=Rt(c.call(O,v,u,f,m,d,y)),D=a}else{const v=t;R=Rt(v.length>1?v(f,{attrs:a,slots:i,emit:l}):v(f,null)),D=t.props?a:rh(a)}}catch(v){gr.length=0,Ps(v,e,1),R=Oe(Je)}let E=R;if(D&&S!==!1){const v=Object.keys(D),{shapeFlag:O}=E;v.length&&O&7&&(o&&v.some(Go)&&(D=sh(D,o)),E=hn(E,D,!1,!0))}return n.dirs&&(E=hn(E,null,!1,!0),E.dirs=E.dirs?E.dirs.concat(n.dirs):n.dirs),n.transition&&kn(E,n.transition),R=E,ds(w),R}const rh=e=>{let t;for(const n in e)(n==="class"||n==="style"||vs(n))&&((t||(t={}))[n]=e[n]);return t},sh=(e,t)=>{const n={};for(const r in e)(!Go(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function oh(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:a,patchFlag:l}=t,c=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return r?Hi(r,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let f=0;fe.__isSuspense;function ah(e,t){t&&t.pendingBranch?Q(e)?t.effects.push(...e):t.effects.push(e):Ed(e)}const Ue=Symbol.for("v-fgt"),$r=Symbol.for("v-txt"),Je=Symbol.for("v-cmt"),to=Symbol.for("v-stc"),gr=[];let dt=null;function Ke(e=!1){gr.push(dt=e?null:[])}function lh(){gr.pop(),dt=gr[gr.length-1]||null}let Lr=1;function ms(e,t=!1){Lr+=e,e<0&&dt&&t&&(dt.hasOnce=!0)}function jc(e){return e.dynamicChildren=Lr>0?dt||Wn:null,lh(),Lr>0&&dt&&dt.push(e),e}function jt(e,t,n,r,s,o){return jc(We(e,t,n,r,s,o,!0))}function dn(e,t,n,r,s){return jc(Oe(e,t,n,r,s,!0))}function Pr(e){return e?e.__v_isVNode===!0:!1}function An(e,t){return e.type===t.type&&e.key===t.key}const Kc=({key:e})=>e??null,ts=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Re(e)||Le(e)||se(e)?{i:je,r:e,k:t,f:!!n}:e:null);function We(e,t=null,n=null,r=0,s=null,o=e===Ue?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Kc(t),ref:t&&ts(t),scopeId:cc,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:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:je};return a?(ui(l,n),o&128&&e.normalize(l)):n&&(l.shapeFlag|=Re(n)?8:16),Lr>0&&!i&&dt&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&dt.push(l),l}const Oe=ch;function ch(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===Sc)&&(e=Je),Pr(e)){const a=hn(e,t,!0);return n&&ui(a,n),Lr>0&&!o&&dt&&(a.shapeFlag&6?dt[dt.indexOf(e)]=a:dt.push(a)),a.patchFlag=-2,a}if(vh(e)&&(e=e.__vccOpts),t){t=uh(t);let{class:a,style:l}=t;a&&!Re(a)&&(t.class=Nt(a)),ye(l)&&(ri(l)&&!Q(l)&&(l=ke({},l)),t.style=Cs(l))}const i=Re(e)?1:Bc(e)?128:uc(e)?64:ye(e)?4:se(e)?2:0;return We(e,t,n,r,s,i,o,!0)}function uh(e){return e?ri(e)||Ic(e)?ke({},e):e:null}function hn(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:a,transition:l}=e,c=t?dh(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Kc(c),ref:t&&t.ref?n&&o?Q(o)?o.concat(ts(t)):[o,ts(t)]:ts(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Ue?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&hn(e.ssContent),ssFallback:e.ssFallback&&hn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&r&&kn(u,l.clone(u)),u}function fh(e=" ",t=0){return Oe($r,null,e,t)}function Gc(e="",t=!1){return t?(Ke(),dn(Je,null,e)):Oe(Je,null,e)}function Rt(e){return e==null||typeof e=="boolean"?Oe(Je):Q(e)?Oe(Ue,null,e.slice()):Pr(e)?on(e):Oe($r,null,String(e))}function on(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:hn(e)}function ui(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(Q(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),ui(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Ic(t)?t._ctx=je:s===3&&je&&(je.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else se(t)?(t={default:t,_ctx:je},n=32):(t=String(t),r&64?(n=16,t=[fh(t)]):n=8);e.children=t,e.shapeFlag|=n}function dh(...e){const t={};for(let n=0;nQe||je;let gs,To;{const e=Ts(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};gs=t("__VUE_INSTANCE_SETTERS__",n=>Qe=n),To=t("__VUE_SSR_SETTERS__",n=>Ar=n)}const Vr=e=>{const t=Qe;return gs(e),e.scope.on(),()=>{e.scope.off(),gs(t)}},Wi=()=>{Qe&&Qe.scope.off(),gs(null)};function Yc(e){return e.vnode.shapeFlag&4}let Ar=!1;function gh(e,t=!1,n=!1){t&&To(t);const{props:r,children:s}=e.vnode,o=Yc(e);Hd(e,r,o,t),Kd(e,s,n||t);const i=o?_h(e,t):void 0;return t&&To(!1),i}function _h(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Id);const{setup:r}=n;if(r){Yt();const s=e.setupContext=r.length>1?bh(e):null,o=Vr(e),i=Ur(r,e,0,[e.props,s]),a=Nl(i);if(qt(),o(),(a||e.sp)&&!Kn(e)&&gc(e),a){if(i.then(Wi,Wi),t)return i.then(l=>{Bi(e,l)}).catch(l=>{Ps(l,e,0)});e.asyncDep=i}else Bi(e,i)}else qc(e)}function Bi(e,t,n){se(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ye(t)&&(e.setupState=rc(t)),qc(e)}function qc(e,t,n){const r=e.type;e.render||(e.render=r.render||xt);{const s=Vr(e);Yt();try{xd(e)}finally{qt(),s()}}}const yh={get(e,t){return Xe(e,"get",""),e[t]}};function bh(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,yh),slots:e.slots,emit:e.emit,expose:t}}function Is(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(rc(si(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in mr)return mr[n](e)},has(t,n){return n in t||n in mr}})):e.proxy}function Eh(e,t=!0){return se(e)?e.displayName||e.name:e.name||t&&e.__name}function vh(e){return se(e)&&"__vccOpts"in e}const Ee=(e,t)=>md(e,t,Ar);function pn(e,t,n){const r=(o,i,a)=>{ms(-1);try{return Oe(o,i,a)}finally{ms(1)}},s=arguments.length;return s===2?ye(t)&&!Q(t)?Pr(t)?r(e,null,[t]):r(e,t):r(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Pr(n)&&(n=[n]),r(e,t,n))}const Sh="3.5.21";let Co;const ji=typeof window<"u"&&window.trustedTypes;if(ji)try{Co=ji.createPolicy("vue",{createHTML:e=>e})}catch{}const zc=Co?e=>Co.createHTML(e):e=>e,wh="http://www.w3.org/2000/svg",Th="http://www.w3.org/1998/Math/MathML",$t=typeof document<"u"?document:null,Ki=$t&&$t.createElement("template"),Ch={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?$t.createElementNS(wh,e):t==="mathml"?$t.createElementNS(Th,e):n?$t.createElement(e,{is:n}):$t.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>$t.createTextNode(e),createComment:e=>$t.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>$t.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Ki.innerHTML=zc(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const a=Ki.content;if(r==="svg"||r==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Zt="transition",ir="animation",Gn=Symbol("_vtc"),Xc={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},Jc=ke({},dc,Xc),Lh=e=>(e.displayName="Transition",e.props=Jc,e),Qc=Lh((e,{slots:t})=>pn(wd,Zc(e),t)),wn=(e,t=[])=>{Q(e)?e.forEach(n=>n(...t)):e&&e(...t)},Gi=e=>e?Q(e)?e.some(t=>t.length>1):e.length>1:!1;function Zc(e){const t={};for(const $ in e)$ in Xc||(t[$]=e[$]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=o,appearActiveClass:c=i,appearToClass:u=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,y=Ph(s),S=y&&y[0],w=y&&y[1],{onBeforeEnter:R,onEnter:D,onEnterCancelled:E,onLeave:v,onLeaveCancelled:O,onBeforeAppear:N=R,onAppear:x=D,onAppearCancelled:V=E}=t,L=($,X,ue,Pe)=>{$._enterCancelled=Pe,nn($,X?u:a),nn($,X?c:i),ue&&ue()},q=($,X)=>{$._isLeaving=!1,nn($,f),nn($,m),nn($,d),X&&X()},Z=$=>(X,ue)=>{const Pe=$?x:D,te=()=>L(X,$,ue);wn(Pe,[X,te]),Yi(()=>{nn(X,$?l:o),At(X,$?u:a),Gi(Pe)||qi(X,r,S,te)})};return ke(t,{onBeforeEnter($){wn(R,[$]),At($,o),At($,i)},onBeforeAppear($){wn(N,[$]),At($,l),At($,c)},onEnter:Z(!1),onAppear:Z(!0),onLeave($,X){$._isLeaving=!0;const ue=()=>q($,X);At($,f),$._enterCancelled?(At($,d),Lo()):(Lo(),At($,d)),Yi(()=>{$._isLeaving&&(nn($,f),At($,m),Gi(v)||qi($,r,w,ue))}),wn(v,[$,ue])},onEnterCancelled($){L($,!1,void 0,!0),wn(E,[$])},onAppearCancelled($){L($,!0,void 0,!0),wn(V,[$])},onLeaveCancelled($){q($),wn(O,[$])}})}function Ph(e){if(e==null)return null;if(ye(e))return[no(e.enter),no(e.leave)];{const t=no(e);return[t,t]}}function no(e){return kf(e)}function At(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Gn]||(e[Gn]=new Set)).add(t)}function nn(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Gn];n&&(n.delete(t),n.size||(e[Gn]=void 0))}function Yi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Ah=0;function qi(e,t,n,r){const s=e._endId=++Ah,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:a,propCount:l}=eu(e,t);if(!i)return r();const c=i+"end";let u=0;const f=()=>{e.removeEventListener(c,d),o()},d=m=>{m.target===e&&++u>=l&&f()};setTimeout(()=>{u(n[y]||"").split(", "),s=r(`${Zt}Delay`),o=r(`${Zt}Duration`),i=zi(s,o),a=r(`${ir}Delay`),l=r(`${ir}Duration`),c=zi(a,l);let u=null,f=0,d=0;t===Zt?i>0&&(u=Zt,f=i,d=o.length):t===ir?c>0&&(u=ir,f=c,d=l.length):(f=Math.max(i,c),u=f>0?i>c?Zt:ir:null,d=u?u===Zt?o.length:l.length:0);const m=u===Zt&&/\b(?:transform|all)(?:,|$)/.test(r(`${Zt}Property`).toString());return{type:u,timeout:f,propCount:d,hasTransform:m}}function zi(e,t){for(;e.lengthXi(n)+Xi(e[r])))}function Xi(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Lo(){return document.body.offsetHeight}function Oh(e,t,n){const r=e[Gn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ji=Symbol("_vod"),Rh=Symbol("_vsh"),Nh=Symbol(""),Ih=/(?:^|;)\s*display\s*:/;function xh(e,t,n){const r=e.style,s=Re(n);let o=!1;if(n&&!s){if(t)if(Re(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&ns(r,a,"")}else for(const i in t)n[i]==null&&ns(r,i,"");for(const i in n)i==="display"&&(o=!0),ns(r,i,n[i])}else if(s){if(t!==n){const i=r[Nh];i&&(n+=";"+i),r.cssText=n,o=Ih.test(n)}}else t&&e.removeAttribute("style");Ji in e&&(e[Ji]=o?r.display:"",e[Rh]&&(r.display="none"))}const Qi=/\s*!important$/;function ns(e,t,n){if(Q(n))n.forEach(r=>ns(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=kh(e,t);Qi.test(n)?e.setProperty(gn(r),n.replace(Qi,""),"important"):e[r]=n}}const Zi=["Webkit","Moz","ms"],ro={};function kh(e,t){const n=ro[t];if(n)return n;let r=gt(t);if(r!=="filter"&&r in e)return ro[t]=r;r=ws(r);for(let s=0;sso||(Uh.then(()=>so=0),so=Date.now());function Vh(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;St(Hh(r,n.value),t,5,[r])};return n.value=e,n.attached=$h(),n}function Hh(e,t){if(Q(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const oa=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Wh=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?Oh(e,r,i):t==="style"?xh(e,n,r):vs(t)?Go(t)||Dh(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Bh(e,t,r,i))?(na(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ta(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Re(r))?na(e,gt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),ta(e,t,r,i))};function Bh(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&oa(t)&&se(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return oa(t)&&Re(n)?!1:t in e}const tu=new WeakMap,nu=new WeakMap,_s=Symbol("_moveCb"),ia=Symbol("_enterCb"),jh=e=>(delete e.props.mode,e),Kh=jh({name:"TransitionGroup",props:ke({},Jc,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=zt(),r=fc();let s,o;return bc(()=>{if(!s.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!Xh(s[0].el,n.vnode.el,i)){s=[];return}s.forEach(Yh),s.forEach(qh);const a=s.filter(zh);Lo(),a.forEach(l=>{const c=l.el,u=c.style;At(c,i),u.transform=u.webkitTransform=u.transitionDuration="";const f=c[_s]=d=>{d&&d.target!==c||(!d||d.propertyName.endsWith("transform"))&&(c.removeEventListener("transitionend",f),c[_s]=null,nn(c,i))};c.addEventListener("transitionend",f)}),s=[]}),()=>{const i=ce(e),a=Zc(i);let l=i.tag||Ue;if(s=[],o)for(let c=0;c{a.split(/\s+/).forEach(l=>l&&r.classList.remove(l))}),n.split(/\s+/).forEach(a=>a&&r.classList.add(a)),r.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(r);const{hasTransform:i}=eu(r);return o.removeChild(r),i}const Yn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Q(t)?n=>es(t,n):t};function Jh(e){e.target.composing=!0}function aa(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Gt=Symbol("_assign"),Jb={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Gt]=Yn(s);const o=r||s.props&&s.props.type==="number";ln(e,t?"change":"input",i=>{if(i.target.composing)return;let a=e.value;n&&(a=a.trim()),o&&(a=as(a)),e[Gt](a)}),n&&ln(e,"change",()=>{e.value=e.value.trim()}),t||(ln(e,"compositionstart",Jh),ln(e,"compositionend",aa),ln(e,"change",aa))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Gt]=Yn(i),e.composing)return;const a=(o||e.type==="number")&&!/^0\d/.test(e.value)?as(e.value):e.value,l=t??"";a!==l&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===l)||(e.value=l))}},Qb={deep:!0,created(e,t,n){e[Gt]=Yn(n),ln(e,"change",()=>{const r=e._modelValue,s=Or(e),o=e.checked,i=e[Gt];if(Q(r)){const a=zo(r,s),l=a!==-1;if(o&&!l)i(r.concat(s));else if(!o&&l){const c=[...r];c.splice(a,1),i(c)}}else if(Zn(r)){const a=new Set(r);o?a.add(s):a.delete(s),i(a)}else i(ru(e,o))})},mounted:la,beforeUpdate(e,t,n){e[Gt]=Yn(n),la(e,t,n)}};function la(e,{value:t,oldValue:n},r){e._modelValue=t;let s;if(Q(t))s=zo(t,r.props.value)>-1;else if(Zn(t))s=t.has(r.props.value);else{if(t===n)return;s=Dr(t,ru(e,!0))}e.checked!==s&&(e.checked=s)}const Zb={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const s=Zn(t);ln(e,"change",()=>{const o=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?as(Or(i)):Or(i));e[Gt](e.multiple?s?new Set(o):o:o[0]),e._assigning=!0,As(()=>{e._assigning=!1})}),e[Gt]=Yn(r)},mounted(e,{value:t}){ca(e,t)},beforeUpdate(e,t,n){e[Gt]=Yn(n)},updated(e,{value:t}){e._assigning||ca(e,t)}};function ca(e,t){const n=e.multiple,r=Q(t);if(!(n&&!r&&!Zn(t))){for(let s=0,o=e.options.length;sString(c)===String(a)):i.selected=zo(t,a)>-1}else i.selected=t.has(a);else if(Dr(Or(i),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Or(e){return"_value"in e?e._value:e.value}function ru(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Qh=["ctrl","shift","alt","meta"],Zh={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Qh.some(n=>e[`${n}Key`]&&!t.includes(n))},eE=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=(s=>{if(!("key"in s))return;const o=gn(s.key);if(t.some(i=>i===o||ep[i]===o))return e(s)}))},tp=ke({patchProp:Wh},Ch);let ua;function np(){return ua||(ua=Yd(tp))}const rp=((...e)=>{const t=np().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=op(r);if(!s)return;const o=t._component;!se(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,sp(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function sp(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function op(e){return Re(e)?document.querySelector(e):e}let su;const xs=e=>su=e,ou=Symbol();function Po(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var _r;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(_r||(_r={}));function ip(){const e=Xo(!0),t=e.run(()=>it({}));let n=[],r=[];const s=si({install(o){xs(s),s._a=o,o.provide(ou,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const iu=()=>{};function fa(e,t,n,r=iu){e.push(t);const s=()=>{const o=e.indexOf(t);o>-1&&(e.splice(o,1),r())};return!n&&$l()&&Wf(s),s}function Mn(e,...t){e.slice().forEach(n=>{n(...t)})}const ap=e=>e(),da=Symbol(),oo=Symbol();function Ao(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];Po(s)&&Po(r)&&e.hasOwnProperty(n)&&!Le(r)&&!Kt(r)?e[n]=Ao(s,r):e[n]=r}return e}const lp=Symbol();function cp(e){return!Po(e)||!Object.prototype.hasOwnProperty.call(e,lp)}const{assign:rn}=Object;function up(e){return!!(Le(e)&&e.effect)}function fp(e,t,n,r){const{state:s,actions:o,getters:i}=t,a=n.state.value[e];let l;function c(){a||(n.state.value[e]=s?s():{});const u=ud(n.state.value[e]);return rn(u,o,Object.keys(i||{}).reduce((f,d)=>(f[d]=si(Ee(()=>{xs(n);const m=n._s.get(e);return i[d].call(m,m)})),f),{}))}return l=au(e,c,t,n,r,!0),l}function au(e,t,n={},r,s,o){let i;const a=rn({actions:{}},n),l={deep:!0};let c,u,f=[],d=[],m;const y=r.state.value[e];!o&&!y&&(r.state.value[e]={}),it({});let S;function w(V){let L;c=u=!1,typeof V=="function"?(V(r.state.value[e]),L={type:_r.patchFunction,storeId:e,events:m}):(Ao(r.state.value[e],V),L={type:_r.patchObject,payload:V,storeId:e,events:m});const q=S=Symbol();As().then(()=>{S===q&&(c=!0)}),u=!0,Mn(f,L,r.state.value[e])}const R=o?function(){const{state:L}=n,q=L?L():{};this.$patch(Z=>{rn(Z,q)})}:iu;function D(){i.stop(),f=[],d=[],r._s.delete(e)}const E=(V,L="")=>{if(da in V)return V[oo]=L,V;const q=function(){xs(r);const Z=Array.from(arguments),$=[],X=[];function ue(ee){$.push(ee)}function Pe(ee){X.push(ee)}Mn(d,{args:Z,name:q[oo],store:O,after:ue,onError:Pe});let te;try{te=V.apply(this&&this.$id===e?this:O,Z)}catch(ee){throw Mn(X,ee),ee}return te instanceof Promise?te.then(ee=>(Mn($,ee),ee)).catch(ee=>(Mn(X,ee),Promise.reject(ee))):(Mn($,te),te)};return q[da]=!0,q[oo]=L,q},v={_p:r,$id:e,$onAction:fa.bind(null,d),$patch:w,$reset:R,$subscribe(V,L={}){const q=fa(f,V,L.detached,()=>Z()),Z=i.run(()=>un(()=>r.state.value[e],$=>{(L.flush==="sync"?u:c)&&V({storeId:e,type:_r.direct,events:m},$)},rn({},l,L)));return q},$dispose:D},O=Mr(v);r._s.set(e,O);const x=(r._a&&r._a.runWithContext||ap)(()=>r._e.run(()=>(i=Xo()).run(()=>t({action:E}))));for(const V in x){const L=x[V];if(Le(L)&&!up(L)||Kt(L))o||(y&&cp(L)&&(Le(L)?L.value=y[V]:Ao(L,y[V])),r.state.value[e][V]=L);else if(typeof L=="function"){const q=E(L,V);x[V]=q,a.actions[V]=L}}return rn(O,x),rn(ce(O),x),Object.defineProperty(O,"$state",{get:()=>r.state.value[e],set:V=>{w(L=>{rn(L,V)})}}),r._p.forEach(V=>{rn(O,i.run(()=>V({store:O,app:r._a,pinia:r,options:a})))}),y&&o&&n.hydrate&&n.hydrate(O.$state,y),c=!0,u=!0,O}function dp(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,a){const l=Vd();return i=i||(l?et(ou,null):null),i&&xs(i),i=su,i._s.has(e)||(s?au(e,t,r,i):fp(e,r,i)),i._s.get(e)}return o.$id=e,o}function hp(e){const t=ce(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=Ee({get:()=>e[r],set(o){e[r]=o}}):(Le(s)||Kt(s))&&(n[r]=hd(e,r))}return n}const $n=typeof document<"u";function lu(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function pp(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&lu(e.default)}const pe=Object.assign;function io(e,t){const n={};for(const r in t){const s=t[r];n[r]=wt(s)?s.map(e):e(s)}return n}const yr=()=>{},wt=Array.isArray,cu=/#/g,mp=/&/g,gp=/\//g,_p=/=/g,yp=/\?/g,uu=/\+/g,bp=/%5B/g,Ep=/%5D/g,fu=/%5E/g,vp=/%60/g,du=/%7B/g,Sp=/%7C/g,hu=/%7D/g,wp=/%20/g;function fi(e){return encodeURI(""+e).replace(Sp,"|").replace(bp,"[").replace(Ep,"]")}function Tp(e){return fi(e).replace(du,"{").replace(hu,"}").replace(fu,"^")}function Oo(e){return fi(e).replace(uu,"%2B").replace(wp,"+").replace(cu,"%23").replace(mp,"%26").replace(vp,"`").replace(du,"{").replace(hu,"}").replace(fu,"^")}function Cp(e){return Oo(e).replace(_p,"%3D")}function Lp(e){return fi(e).replace(cu,"%23").replace(yp,"%3F")}function Pp(e){return e==null?"":Lp(e).replace(gp,"%2F")}function Rr(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const Ap=/\/$/,Op=e=>e.replace(Ap,"");function ao(e,t,n="/"){let r,s={},o="",i="";const a=t.indexOf("#");let l=t.indexOf("?");return a=0&&(l=-1),l>-1&&(r=t.slice(0,l),o=t.slice(l+1,a>-1?a:t.length),s=e(o)),a>-1&&(r=r||t.slice(0,a),i=t.slice(a,t.length)),r=xp(r??t,n),{fullPath:r+(o&&"?")+o+i,path:r,query:s,hash:Rr(i)}}function Rp(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ha(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Np(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&qn(t.matched[r],n.matched[s])&&pu(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function qn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function pu(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Ip(e[n],t[n]))return!1;return!0}function Ip(e,t){return wt(e)?pa(e,t):wt(t)?pa(t,e):e===t}function pa(e,t){return wt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function xp(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,a;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const en={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Nr;(function(e){e.pop="pop",e.push="push"})(Nr||(Nr={}));var br;(function(e){e.back="back",e.forward="forward",e.unknown=""})(br||(br={}));function kp(e){if(!e)if($n){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Op(e)}const Fp=/^[^#]+#/;function Dp(e,t){return e.replace(Fp,"#")+t}function Mp(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const ks=()=>({left:window.scrollX,top:window.scrollY});function Up(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Mp(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function ma(e,t){return(history.state?history.state.position-t:-1)+e}const Ro=new Map;function $p(e,t){Ro.set(e,t)}function Vp(e){const t=Ro.get(e);return Ro.delete(e),t}let Hp=()=>location.protocol+"//"+location.host;function mu(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let a=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(a);return l[0]!=="/"&&(l="/"+l),ha(l,"")}return ha(n,e)+r+s}function Wp(e,t,n,r){let s=[],o=[],i=null;const a=({state:d})=>{const m=mu(e,location),y=n.value,S=t.value;let w=0;if(d){if(n.value=m,t.value=d,i&&i===y){i=null;return}w=S?d.position-S.position:0}else r(m);s.forEach(R=>{R(n.value,y,{delta:w,type:Nr.pop,direction:w?w>0?br.forward:br.back:br.unknown})})};function l(){i=n.value}function c(d){s.push(d);const m=()=>{const y=s.indexOf(d);y>-1&&s.splice(y,1)};return o.push(m),m}function u(){const{history:d}=window;d.state&&d.replaceState(pe({},d.state,{scroll:ks()}),"")}function f(){for(const d of o)d();o=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",u,{passive:!0}),{pauseListeners:l,listen:c,destroy:f}}function ga(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?ks():null}}function Bp(e){const{history:t,location:n}=window,r={value:mu(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,c,u){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+l:Hp()+e+l;try{t[u?"replaceState":"pushState"](c,"",d),s.value=c}catch(m){console.error(m),n[u?"replace":"assign"](d)}}function i(l,c){const u=pe({},t.state,ga(s.value.back,l,s.value.forward,!0),c,{position:s.value.position});o(l,u,!0),r.value=l}function a(l,c){const u=pe({},s.value,t.state,{forward:l,scroll:ks()});o(u.current,u,!0);const f=pe({},ga(r.value,l,null),{position:u.position+1},c);o(l,f,!1),r.value=l}return{location:r,state:s,push:a,replace:i}}function jp(e){e=kp(e);const t=Bp(e),n=Wp(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=pe({location:"",base:e,go:r,createHref:Dp.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Kp(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),jp(e)}function Gp(e){return typeof e=="string"||e&&typeof e=="object"}function gu(e){return typeof e=="string"||typeof e=="symbol"}const _u=Symbol("");var _a;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(_a||(_a={}));function zn(e,t){return pe(new Error,{type:e,[_u]:!0},t)}function Dt(e,t){return e instanceof Error&&_u in e&&(t==null||!!(e.type&t))}const ya="[^/]+?",Yp={sensitive:!1,strict:!1,start:!0,end:!0},qp=/[.+*?^${}()[\]/\\]/g;function zp(e,t){const n=pe({},Yp,t),r=[];let s=n.start?"^":"";const o=[];for(const c of e){const u=c.length?[]:[90];n.strict&&!c.length&&(s+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function yu(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const Jp={type:0,value:""},Qp=/[a-zA-Z0-9_]/;function Zp(e){if(!e)return[[]];if(e==="/")return[[Jp]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${c}": ${m}`)}let n=0,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let a=0,l,c="",u="";function f(){c&&(n===0?o.push({type:0,value:c}):n===1||n===2||n===3?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:c,regexp:u,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),c="")}function d(){c+=l}for(;a{i(E)}:yr}function i(f){if(gu(f)){const d=r.get(f);d&&(r.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(i),d.alias.forEach(i))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function a(){return n}function l(f){const d=sm(f,n);n.splice(d,0,f),f.record.name&&!Sa(f)&&r.set(f.record.name,f)}function c(f,d){let m,y={},S,w;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw zn(1,{location:f});w=m.record.name,y=pe(Ea(d.params,m.keys.filter(E=>!E.optional).concat(m.parent?m.parent.keys.filter(E=>E.optional):[]).map(E=>E.name)),f.params&&Ea(f.params,m.keys.map(E=>E.name))),S=m.stringify(y)}else if(f.path!=null)S=f.path,m=n.find(E=>E.re.test(S)),m&&(y=m.parse(S),w=m.record.name);else{if(m=d.name?r.get(d.name):n.find(E=>E.re.test(d.path)),!m)throw zn(1,{location:f,currentLocation:d});w=m.record.name,y=pe({},d.params,f.params),S=m.stringify(y)}const R=[];let D=m;for(;D;)R.unshift(D.record),D=D.parent;return{name:w,path:S,params:y,matched:R,meta:rm(R)}}e.forEach(f=>o(f));function u(){n.length=0,r.clear()}return{addRoute:o,resolve:c,removeRoute:i,clearRoutes:u,getRoutes:a,getRecordMatcher:s}}function Ea(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function va(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:nm(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function nm(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Sa(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function rm(e){return e.reduce((t,n)=>pe(t,n.meta),{})}function wa(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function sm(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;yu(e,t[o])<0?r=o:n=o+1}const s=om(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function om(e){let t=e;for(;t=t.parent;)if(bu(t)&&yu(e,t)===0)return t}function bu({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function im(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;so&&Oo(o)):[r&&Oo(r)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function am(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=wt(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const lm=Symbol(""),Ca=Symbol(""),Fs=Symbol(""),di=Symbol(""),No=Symbol("");function ar(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function an(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((a,l)=>{const c=d=>{d===!1?l(zn(4,{from:n,to:t})):d instanceof Error?l(d):Gp(d)?l(zn(2,{from:t,to:d})):(i&&r.enterCallbacks[s]===i&&typeof d=="function"&&i.push(d),a())},u=o(()=>e.call(r&&r.instances[s],t,n,c));let f=Promise.resolve(u);e.length<3&&(f=f.then(c)),f.catch(d=>l(d))})}function lo(e,t,n,r,s=o=>o()){const o=[];for(const i of e)for(const a in i.components){let l=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if(lu(l)){const u=(l.__vccOpts||l)[t];u&&o.push(an(u,n,r,i,a,s))}else{let c=l();o.push(()=>c.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${a}" at "${i.path}"`);const f=pp(u)?u.default:u;i.mods[a]=u,i.components[a]=f;const m=(f.__vccOpts||f)[t];return m&&an(m,n,r,i,a,s)()}))}}return o}function La(e){const t=et(Fs),n=et(di),r=Ee(()=>{const l=Te(e.to);return t.resolve(l)}),s=Ee(()=>{const{matched:l}=r.value,{length:c}=l,u=l[c-1],f=n.matched;if(!u||!f.length)return-1;const d=f.findIndex(qn.bind(null,u));if(d>-1)return d;const m=Pa(l[c-2]);return c>1&&Pa(u)===m&&f[f.length-1].path!==m?f.findIndex(qn.bind(null,l[c-2])):d}),o=Ee(()=>s.value>-1&&hm(n.params,r.value.params)),i=Ee(()=>s.value>-1&&s.value===n.matched.length-1&&pu(n.params,r.value.params));function a(l={}){if(dm(l)){const c=t[Te(e.replace)?"replace":"push"](Te(e.to)).catch(yr);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:r,href:Ee(()=>r.value.href),isActive:o,isExactActive:i,navigate:a}}function cm(e){return e.length===1?e[0]:e}const um=Xt({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:La,setup(e,{slots:t}){const n=Mr(La(e)),{options:r}=et(Fs),s=Ee(()=>({[Aa(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[Aa(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&cm(t.default(n));return e.custom?o:pn("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),fm=um;function dm(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function hm(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!wt(s)||s.length!==r.length||r.some((o,i)=>o!==s[i]))return!1}return!0}function Pa(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Aa=(e,t,n)=>e??t??n,pm=Xt({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=et(No),s=Ee(()=>e.route||r.value),o=et(Ca,0),i=Ee(()=>{let c=Te(o);const{matched:u}=s.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),a=Ee(()=>s.value.matched[i.value]);In(Ca,Ee(()=>i.value+1)),In(lm,a),In(No,s);const l=it();return un(()=>[l.value,a.value,e.name],([c,u,f],[d,m,y])=>{u&&(u.instances[f]=c,m&&m!==u&&c&&c===d&&(u.leaveGuards.size||(u.leaveGuards=m.leaveGuards),u.updateGuards.size||(u.updateGuards=m.updateGuards))),c&&u&&(!m||!qn(u,m)||!d)&&(u.enterCallbacks[f]||[]).forEach(S=>S(c))},{flush:"post"}),()=>{const c=s.value,u=e.name,f=a.value,d=f&&f.components[u];if(!d)return Oa(n.default,{Component:d,route:c});const m=f.props[u],y=m?m===!0?c.params:typeof m=="function"?m(c):m:null,w=pn(d,pe({},y,t,{onVnodeUnmounted:R=>{R.component.isUnmounted&&(f.instances[u]=null)},ref:l}));return Oa(n.default,{Component:w,route:c})||w}}});function Oa(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Eu=pm;function mm(e){const t=tm(e.routes,e),n=e.parseQuery||im,r=e.stringifyQuery||Ta,s=e.history,o=ar(),i=ar(),a=ar(),l=oi(en);let c=en;$n&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=io.bind(null,M=>""+M),f=io.bind(null,Pp),d=io.bind(null,Rr);function m(M,Y){let j,z;return gu(M)?(j=t.getRecordMatcher(M),z=Y):z=M,t.addRoute(z,j)}function y(M){const Y=t.getRecordMatcher(M);Y&&t.removeRoute(Y)}function S(){return t.getRoutes().map(M=>M.record)}function w(M){return!!t.getRecordMatcher(M)}function R(M,Y){if(Y=pe({},Y||l.value),typeof M=="string"){const _=ao(n,M,Y.path),P=t.resolve({path:_.path},Y),U=s.createHref(_.fullPath);return pe(_,P,{params:d(P.params),hash:Rr(_.hash),redirectedFrom:void 0,href:U})}let j;if(M.path!=null)j=pe({},M,{path:ao(n,M.path,Y.path).path});else{const _=pe({},M.params);for(const P in _)_[P]==null&&delete _[P];j=pe({},M,{params:f(_)}),Y.params=f(Y.params)}const z=t.resolve(j,Y),fe=M.hash||"";z.params=u(d(z.params));const g=Rp(r,pe({},M,{hash:Tp(fe),path:z.path})),b=s.createHref(g);return pe({fullPath:g,hash:fe,query:r===Ta?am(M.query):M.query||{}},z,{redirectedFrom:void 0,href:b})}function D(M){return typeof M=="string"?ao(n,M,l.value.path):pe({},M)}function E(M,Y){if(c!==M)return zn(8,{from:Y,to:M})}function v(M){return x(M)}function O(M){return v(pe(D(M),{replace:!0}))}function N(M){const Y=M.matched[M.matched.length-1];if(Y&&Y.redirect){const{redirect:j}=Y;let z=typeof j=="function"?j(M):j;return typeof z=="string"&&(z=z.includes("?")||z.includes("#")?z=D(z):{path:z},z.params={}),pe({query:M.query,hash:M.hash,params:z.path!=null?{}:M.params},z)}}function x(M,Y){const j=c=R(M),z=l.value,fe=M.state,g=M.force,b=M.replace===!0,_=N(j);if(_)return x(pe(D(_),{state:typeof _=="object"?pe({},fe,_.state):fe,force:g,replace:b}),Y||j);const P=j;P.redirectedFrom=Y;let U;return!g&&Np(r,z,j)&&(U=zn(16,{to:P,from:z}),he(z,z,!0,!1)),(U?Promise.resolve(U):q(P,z)).catch(F=>Dt(F)?Dt(F,2)?F:Ye(F):re(F,P,z)).then(F=>{if(F){if(Dt(F,2))return x(pe({replace:b},D(F.to),{state:typeof F.to=="object"?pe({},fe,F.to.state):fe,force:g}),Y||P)}else F=$(P,z,!0,b,fe);return Z(P,z,F),F})}function V(M,Y){const j=E(M,Y);return j?Promise.reject(j):Promise.resolve()}function L(M){const Y=De.values().next().value;return Y&&typeof Y.runWithContext=="function"?Y.runWithContext(M):M()}function q(M,Y){let j;const[z,fe,g]=gm(M,Y);j=lo(z.reverse(),"beforeRouteLeave",M,Y);for(const _ of z)_.leaveGuards.forEach(P=>{j.push(an(P,M,Y))});const b=V.bind(null,M,Y);return j.push(b),Me(j).then(()=>{j=[];for(const _ of o.list())j.push(an(_,M,Y));return j.push(b),Me(j)}).then(()=>{j=lo(fe,"beforeRouteUpdate",M,Y);for(const _ of fe)_.updateGuards.forEach(P=>{j.push(an(P,M,Y))});return j.push(b),Me(j)}).then(()=>{j=[];for(const _ of g)if(_.beforeEnter)if(wt(_.beforeEnter))for(const P of _.beforeEnter)j.push(an(P,M,Y));else j.push(an(_.beforeEnter,M,Y));return j.push(b),Me(j)}).then(()=>(M.matched.forEach(_=>_.enterCallbacks={}),j=lo(g,"beforeRouteEnter",M,Y,L),j.push(b),Me(j))).then(()=>{j=[];for(const _ of i.list())j.push(an(_,M,Y));return j.push(b),Me(j)}).catch(_=>Dt(_,8)?_:Promise.reject(_))}function Z(M,Y,j){a.list().forEach(z=>L(()=>z(M,Y,j)))}function $(M,Y,j,z,fe){const g=E(M,Y);if(g)return g;const b=Y===en,_=$n?history.state:{};j&&(z||b?s.replace(M.fullPath,pe({scroll:b&&_&&_.scroll},fe)):s.push(M.fullPath,fe)),l.value=M,he(M,Y,j,b),Ye()}let X;function ue(){X||(X=s.listen((M,Y,j)=>{if(!ct.listening)return;const z=R(M),fe=N(z);if(fe){x(pe(fe,{replace:!0,force:!0}),z).catch(yr);return}c=z;const g=l.value;$n&&$p(ma(g.fullPath,j.delta),ks()),q(z,g).catch(b=>Dt(b,12)?b:Dt(b,2)?(x(pe(D(b.to),{force:!0}),z).then(_=>{Dt(_,20)&&!j.delta&&j.type===Nr.pop&&s.go(-1,!1)}).catch(yr),Promise.reject()):(j.delta&&s.go(-j.delta,!1),re(b,z,g))).then(b=>{b=b||$(z,g,!1),b&&(j.delta&&!Dt(b,8)?s.go(-j.delta,!1):j.type===Nr.pop&&Dt(b,20)&&s.go(-1,!1)),Z(z,g,b)}).catch(yr)}))}let Pe=ar(),te=ar(),ee;function re(M,Y,j){Ye(M);const z=te.list();return z.length?z.forEach(fe=>fe(M,Y,j)):console.error(M),Promise.reject(M)}function Fe(){return ee&&l.value!==en?Promise.resolve():new Promise((M,Y)=>{Pe.add([M,Y])})}function Ye(M){return ee||(ee=!M,ue(),Pe.list().forEach(([Y,j])=>M?j(M):Y()),Pe.reset()),M}function he(M,Y,j,z){const{scrollBehavior:fe}=e;if(!$n||!fe)return Promise.resolve();const g=!j&&Vp(ma(M.fullPath,0))||(z||!j)&&history.state&&history.state.scroll||null;return As().then(()=>fe(M,Y,g)).then(b=>b&&Up(b)).catch(b=>re(b,M,Y))}const ge=M=>s.go(M);let qe;const De=new Set,ct={currentRoute:l,listening:!0,addRoute:m,removeRoute:y,clearRoutes:t.clearRoutes,hasRoute:w,getRoutes:S,resolve:R,options:e,push:v,replace:O,go:ge,back:()=>ge(-1),forward:()=>ge(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:te.add,isReady:Fe,install(M){const Y=this;M.component("RouterLink",fm),M.component("RouterView",Eu),M.config.globalProperties.$router=Y,Object.defineProperty(M.config.globalProperties,"$route",{enumerable:!0,get:()=>Te(l)}),$n&&!qe&&l.value===en&&(qe=!0,v(s.location).catch(fe=>{}));const j={};for(const fe in en)Object.defineProperty(j,fe,{get:()=>l.value[fe],enumerable:!0});M.provide(Fs,Y),M.provide(di,ec(j)),M.provide(No,l);const z=M.unmount;De.add(M),M.unmount=function(){De.delete(M),De.size<1&&(c=en,X&&X(),X=null,l.value=en,qe=!1,ee=!1),z()}}};function Me(M){return M.reduce((Y,j)=>Y.then(()=>L(j)),Promise.resolve())}return ct}function gm(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iqn(c,a))?r.push(a):n.push(a));const l=e.matched[i];l&&(t.matched.find(c=>qn(c,l))||s.push(l))}return[n,r,s]}function _m(){return et(Fs)}function ym(e){return et(di)}const Ra=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),bm=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),Em=e=>{const t=bm(e);return t.charAt(0).toUpperCase()+t.slice(1)},vm=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();var Xr={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};const Sm=({size:e,strokeWidth:t=2,absoluteStrokeWidth:n,color:r,iconNode:s,name:o,class:i,...a},{slots:l})=>pn("svg",{...Xr,width:e||Xr.width,height:e||Xr.height,stroke:r||Xr.stroke,"stroke-width":n?Number(t)*24/Number(e):t,class:vm("lucide",...o?[`lucide-${Ra(Em(o))}-icon`,`lucide-${Ra(o)}`]:["lucide-icon"]),...a},[...s.map(c=>pn(...c)),...l.default?[l.default()]:[]]);const Qt=(e,t)=>(n,{slots:r})=>pn(Sm,{...n,iconNode:t,name:e},r);const wm=Qt("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const Tm=Qt("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);const Cm=Qt("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);const Lm=Qt("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);const Pm=Qt("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);const Am=Qt("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);const Om=Qt("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);const Rm=Qt("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const Nm=Qt("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Im=Xt({__name:"ThemeToggle",setup(e){const t=et("isDarkMode"),n=et("toggleTheme"),r=()=>{n()};return(s,o)=>(Ke(),jt("button",{onClick:r,class:Nt(["p-2 rounded-full transition-all duration-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 transform hover:rotate-180",Te(t)?"bg-gray-800 text-yellow-300":"bg-white text-gray-800"])},[Te(t)?(Ke(),dn(Te(Am),{key:1,class:"w-6 h-6"})):(Ke(),dn(Te(Om),{key:0,class:"w-6 h-6"}))],2))}});function xm(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const ys=typeof window<"u",_n=(e,t=!1)=>t?Symbol.for(e):Symbol(e),km=(e,t,n)=>Fm({l:e,k:t,s:n}),Fm=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ie=e=>typeof e=="number"&&isFinite(e),Dm=e=>Su(e)==="[object Date]",mn=e=>Su(e)==="[object RegExp]",Ds=e=>oe(e)&&Object.keys(e).length===0,Ge=Object.assign,Mm=Object.create,_e=(e=null)=>Mm(e);let Na;const Bt=()=>Na||(Na=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:_e());function Ia(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function xa(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Um(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(r,s,o)=>`${s}="${xa(o)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(r,s,o)=>`${s}='${xa(o)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(r=>{e=e.replace(r,"$1javascript:")}),e}const $m=Object.prototype.hasOwnProperty;function yt(e,t){return $m.call(e,t)}const Ce=Array.isArray,Se=e=>typeof e=="function",G=e=>typeof e=="string",ae=e=>typeof e=="boolean",de=e=>e!==null&&typeof e=="object",Vm=e=>de(e)&&Se(e.then)&&Se(e.catch),vu=Object.prototype.toString,Su=e=>vu.call(e),oe=e=>{if(!de(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Hm=e=>e==null?"":Ce(e)||oe(e)&&e.toString===vu?JSON.stringify(e,null,2):String(e);function Wm(e,t=""){return e.reduce((n,r,s)=>s===0?n+r:n+t+r,"")}function Ms(e){let t=e;return()=>++t}const Jr=e=>!de(e)||Ce(e);function rs(e,t){if(Jr(e)||Jr(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:r,des:s}=n.pop();Object.keys(r).forEach(o=>{o!=="__proto__"&&(de(r[o])&&!de(s[o])&&(s[o]=Array.isArray(r[o])?[]:_e()),Jr(s[o])||Jr(r[o])?s[o]=r[o]:n.push({src:r[o],des:s[o]}))})}}function Bm(e,t,n){return{line:e,column:t,offset:n}}function bs(e,t,n){return{start:e,end:t}}const jm=/\{([0-9a-zA-Z]+)\}/g;function wu(e,...t){return t.length===1&&Km(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(jm,(n,r)=>t.hasOwnProperty(r)?t[r]:"")}const Tu=Object.assign,ka=e=>typeof e=="string",Km=e=>e!==null&&typeof e=="object";function Cu(e,t=""){return e.reduce((n,r,s)=>s===0?n+r:n+t+r,"")}const hi={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Gm={[hi.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function Ym(e,t,...n){const r=wu(Gm[e],...n||[]),s={message:String(r),code:e};return t&&(s.location=t),s}const ne={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},qm={[ne.EXPECTED_TOKEN]:"Expected token: '{0}'",[ne.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[ne.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[ne.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[ne.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[ne.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[ne.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[ne.EMPTY_PLACEHOLDER]:"Empty placeholder",[ne.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[ne.INVALID_LINKED_FORMAT]:"Invalid linked format",[ne.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[ne.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[ne.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[ne.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[ne.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[ne.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function nr(e,t,n={}){const{domain:r,messages:s,args:o}=n,i=wu((s||qm)[e]||"",...o||[]),a=new SyntaxError(String(i));return a.code=e,t&&(a.location=t),a.domain=r,a}function zm(e){throw e}const Mt=" ",Xm="\r",rt=` -`,Jm="\u2028",Qm="\u2029";function Zm(e){const t=e;let n=0,r=1,s=1,o=0;const i=x=>t[x]===Xm&&t[x+1]===rt,a=x=>t[x]===rt,l=x=>t[x]===Qm,c=x=>t[x]===Jm,u=x=>i(x)||a(x)||l(x)||c(x),f=()=>n,d=()=>r,m=()=>s,y=()=>o,S=x=>i(x)||l(x)||c(x)?rt:t[x],w=()=>S(n),R=()=>S(n+o);function D(){return o=0,u(n)&&(r++,s=0),i(n)&&n++,n++,s++,t[n]}function E(){return i(n+o)&&o++,o++,t[n+o]}function v(){n=0,r=1,s=1,o=0}function O(x=0){o=x}function N(){const x=n+o;for(;x!==n;)D();o=0}return{index:f,line:d,column:m,peekOffset:y,charAt:S,currentChar:w,currentPeek:R,next:D,peek:E,reset:v,resetPeek:O,skipToPeek:N}}const tn=void 0,eg=".",Fa="'",tg="tokenizer";function ng(e,t={}){const n=t.location!==!1,r=Zm(e),s=()=>r.index(),o=()=>Bm(r.line(),r.column(),r.index()),i=o(),a=s(),l={currentType:14,offset:a,startLoc:i,endLoc:i,lastType:14,lastOffset:a,lastStartLoc:i,lastEndLoc:i,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function f(h,p,C,...I){const K=c();if(p.column+=C,p.offset+=C,u){const H=n?bs(K.startLoc,p):null,T=nr(h,H,{domain:tg,args:I});u(T)}}function d(h,p,C){h.endLoc=o(),h.currentType=p;const I={type:p};return n&&(I.loc=bs(h.startLoc,h.endLoc)),C!=null&&(I.value=C),I}const m=h=>d(h,14);function y(h,p){return h.currentChar()===p?(h.next(),p):(f(ne.EXPECTED_TOKEN,o(),0,p),"")}function S(h){let p="";for(;h.currentPeek()===Mt||h.currentPeek()===rt;)p+=h.currentPeek(),h.peek();return p}function w(h){const p=S(h);return h.skipToPeek(),p}function R(h){if(h===tn)return!1;const p=h.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p===95}function D(h){if(h===tn)return!1;const p=h.charCodeAt(0);return p>=48&&p<=57}function E(h,p){const{currentType:C}=p;if(C!==2)return!1;S(h);const I=R(h.currentPeek());return h.resetPeek(),I}function v(h,p){const{currentType:C}=p;if(C!==2)return!1;S(h);const I=h.currentPeek()==="-"?h.peek():h.currentPeek(),K=D(I);return h.resetPeek(),K}function O(h,p){const{currentType:C}=p;if(C!==2)return!1;S(h);const I=h.currentPeek()===Fa;return h.resetPeek(),I}function N(h,p){const{currentType:C}=p;if(C!==8)return!1;S(h);const I=h.currentPeek()===".";return h.resetPeek(),I}function x(h,p){const{currentType:C}=p;if(C!==9)return!1;S(h);const I=R(h.currentPeek());return h.resetPeek(),I}function V(h,p){const{currentType:C}=p;if(!(C===8||C===12))return!1;S(h);const I=h.currentPeek()===":";return h.resetPeek(),I}function L(h,p){const{currentType:C}=p;if(C!==10)return!1;const I=()=>{const H=h.currentPeek();return H==="{"?R(h.peek()):H==="@"||H==="%"||H==="|"||H===":"||H==="."||H===Mt||!H?!1:H===rt?(h.peek(),I()):$(h,!1)},K=I();return h.resetPeek(),K}function q(h){S(h);const p=h.currentPeek()==="|";return h.resetPeek(),p}function Z(h){const p=S(h),C=h.currentPeek()==="%"&&h.peek()==="{";return h.resetPeek(),{isModulo:C,hasSpace:p.length>0}}function $(h,p=!0){const C=(K=!1,H="",T=!1)=>{const k=h.currentPeek();return k==="{"?H==="%"?!1:K:k==="@"||!k?H==="%"?!0:K:k==="%"?(h.peek(),C(K,"%",!0)):k==="|"?H==="%"||T?!0:!(H===Mt||H===rt):k===Mt?(h.peek(),C(!0,Mt,T)):k===rt?(h.peek(),C(!0,rt,T)):!0},I=C();return p&&h.resetPeek(),I}function X(h,p){const C=h.currentChar();return C===tn?tn:p(C)?(h.next(),C):null}function ue(h){const p=h.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p>=48&&p<=57||p===95||p===36}function Pe(h){return X(h,ue)}function te(h){const p=h.charCodeAt(0);return p>=97&&p<=122||p>=65&&p<=90||p>=48&&p<=57||p===95||p===36||p===45}function ee(h){return X(h,te)}function re(h){const p=h.charCodeAt(0);return p>=48&&p<=57}function Fe(h){return X(h,re)}function Ye(h){const p=h.charCodeAt(0);return p>=48&&p<=57||p>=65&&p<=70||p>=97&&p<=102}function he(h){return X(h,Ye)}function ge(h){let p="",C="";for(;p=Fe(h);)C+=p;return C}function qe(h){w(h);const p=h.currentChar();return p!=="%"&&f(ne.EXPECTED_TOKEN,o(),0,p),h.next(),"%"}function De(h){let p="";for(;;){const C=h.currentChar();if(C==="{"||C==="}"||C==="@"||C==="|"||!C)break;if(C==="%")if($(h))p+=C,h.next();else break;else if(C===Mt||C===rt)if($(h))p+=C,h.next();else{if(q(h))break;p+=C,h.next()}else p+=C,h.next()}return p}function ct(h){w(h);let p="",C="";for(;p=ee(h);)C+=p;return h.currentChar()===tn&&f(ne.UNTERMINATED_CLOSING_BRACE,o(),0),C}function Me(h){w(h);let p="";return h.currentChar()==="-"?(h.next(),p+=`-${ge(h)}`):p+=ge(h),h.currentChar()===tn&&f(ne.UNTERMINATED_CLOSING_BRACE,o(),0),p}function M(h){return h!==Fa&&h!==rt}function Y(h){w(h),y(h,"'");let p="",C="";for(;p=X(h,M);)p==="\\"?C+=j(h):C+=p;const I=h.currentChar();return I===rt||I===tn?(f(ne.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,o(),0),I===rt&&(h.next(),y(h,"'")),C):(y(h,"'"),C)}function j(h){const p=h.currentChar();switch(p){case"\\":case"'":return h.next(),`\\${p}`;case"u":return z(h,p,4);case"U":return z(h,p,6);default:return f(ne.UNKNOWN_ESCAPE_SEQUENCE,o(),0,p),""}}function z(h,p,C){y(h,p);let I="";for(let K=0;K{const I=h.currentChar();return I==="{"||I==="%"||I==="@"||I==="|"||I==="("||I===")"||!I||I===Mt?C:(C+=I,h.next(),p(C))};return p("")}function P(h){w(h);const p=y(h,"|");return w(h),p}function U(h,p){let C=null;switch(h.currentChar()){case"{":return p.braceNest>=1&&f(ne.NOT_ALLOW_NEST_PLACEHOLDER,o(),0),h.next(),C=d(p,2,"{"),w(h),p.braceNest++,C;case"}":return p.braceNest>0&&p.currentType===2&&f(ne.EMPTY_PLACEHOLDER,o(),0),h.next(),C=d(p,3,"}"),p.braceNest--,p.braceNest>0&&w(h),p.inLinked&&p.braceNest===0&&(p.inLinked=!1),C;case"@":return p.braceNest>0&&f(ne.UNTERMINATED_CLOSING_BRACE,o(),0),C=F(h,p)||m(p),p.braceNest=0,C;default:{let K=!0,H=!0,T=!0;if(q(h))return p.braceNest>0&&f(ne.UNTERMINATED_CLOSING_BRACE,o(),0),C=d(p,1,P(h)),p.braceNest=0,p.inLinked=!1,C;if(p.braceNest>0&&(p.currentType===5||p.currentType===6||p.currentType===7))return f(ne.UNTERMINATED_CLOSING_BRACE,o(),0),p.braceNest=0,B(h,p);if(K=E(h,p))return C=d(p,5,ct(h)),w(h),C;if(H=v(h,p))return C=d(p,6,Me(h)),w(h),C;if(T=O(h,p))return C=d(p,7,Y(h)),w(h),C;if(!K&&!H&&!T)return C=d(p,13,g(h)),f(ne.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,C.value),w(h),C;break}}return C}function F(h,p){const{currentType:C}=p;let I=null;const K=h.currentChar();switch((C===8||C===9||C===12||C===10)&&(K===rt||K===Mt)&&f(ne.INVALID_LINKED_FORMAT,o(),0),K){case"@":return h.next(),I=d(p,8,"@"),p.inLinked=!0,I;case".":return w(h),h.next(),d(p,9,".");case":":return w(h),h.next(),d(p,10,":");default:return q(h)?(I=d(p,1,P(h)),p.braceNest=0,p.inLinked=!1,I):N(h,p)||V(h,p)?(w(h),F(h,p)):x(h,p)?(w(h),d(p,12,b(h))):L(h,p)?(w(h),K==="{"?U(h,p)||I:d(p,11,_(h))):(C===8&&f(ne.INVALID_LINKED_FORMAT,o(),0),p.braceNest=0,p.inLinked=!1,B(h,p))}}function B(h,p){let C={type:14};if(p.braceNest>0)return U(h,p)||m(p);if(p.inLinked)return F(h,p)||m(p);switch(h.currentChar()){case"{":return U(h,p)||m(p);case"}":return f(ne.UNBALANCED_CLOSING_BRACE,o(),0),h.next(),d(p,3,"}");case"@":return F(h,p)||m(p);default:{if(q(h))return C=d(p,1,P(h)),p.braceNest=0,p.inLinked=!1,C;const{isModulo:K,hasSpace:H}=Z(h);if(K)return H?d(p,0,De(h)):d(p,4,qe(h));if($(h))return d(p,0,De(h));break}}return C}function W(){const{currentType:h,offset:p,startLoc:C,endLoc:I}=l;return l.lastType=h,l.lastOffset=p,l.lastStartLoc=C,l.lastEndLoc=I,l.offset=s(),l.startLoc=o(),r.currentChar()===tn?d(l,14):B(r,l)}return{nextToken:W,currentOffset:s,currentPosition:o,context:c}}const rg="parser",sg=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function og(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const r=parseInt(t||n,16);return r<=55295||r>=57344?String.fromCodePoint(r):"�"}}}function ig(e={}){const t=e.location!==!1,{onError:n,onWarn:r}=e;function s(E,v,O,N,...x){const V=E.currentPosition();if(V.offset+=N,V.column+=N,n){const L=t?bs(O,V):null,q=nr(v,L,{domain:rg,args:x});n(q)}}function o(E,v,O,N,...x){const V=E.currentPosition();if(V.offset+=N,V.column+=N,r){const L=t?bs(O,V):null;r(Ym(v,L,x))}}function i(E,v,O){const N={type:E};return t&&(N.start=v,N.end=v,N.loc={start:O,end:O}),N}function a(E,v,O,N){t&&(E.end=v,E.loc&&(E.loc.end=O))}function l(E,v){const O=E.context(),N=i(3,O.offset,O.startLoc);return N.value=v,a(N,E.currentOffset(),E.currentPosition()),N}function c(E,v){const O=E.context(),{lastOffset:N,lastStartLoc:x}=O,V=i(5,N,x);return V.index=parseInt(v,10),E.nextToken(),a(V,E.currentOffset(),E.currentPosition()),V}function u(E,v,O){const N=E.context(),{lastOffset:x,lastStartLoc:V}=N,L=i(4,x,V);return L.key=v,O===!0&&(L.modulo=!0),E.nextToken(),a(L,E.currentOffset(),E.currentPosition()),L}function f(E,v){const O=E.context(),{lastOffset:N,lastStartLoc:x}=O,V=i(9,N,x);return V.value=v.replace(sg,og),E.nextToken(),a(V,E.currentOffset(),E.currentPosition()),V}function d(E){const v=E.nextToken(),O=E.context(),{lastOffset:N,lastStartLoc:x}=O,V=i(8,N,x);return v.type!==12?(s(E,ne.UNEXPECTED_EMPTY_LINKED_MODIFIER,O.lastStartLoc,0),V.value="",a(V,N,x),{nextConsumeToken:v,node:V}):(v.value==null&&s(E,ne.UNEXPECTED_LEXICAL_ANALYSIS,O.lastStartLoc,0,_t(v)),V.value=v.value||"",a(V,E.currentOffset(),E.currentPosition()),{node:V})}function m(E,v){const O=E.context(),N=i(7,O.offset,O.startLoc);return N.value=v,a(N,E.currentOffset(),E.currentPosition()),N}function y(E){const v=E.context(),O=i(6,v.offset,v.startLoc);let N=E.nextToken();if(N.type===9){const x=d(E);O.modifier=x.node,N=x.nextConsumeToken||E.nextToken()}switch(N.type!==10&&s(E,ne.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,_t(N)),N=E.nextToken(),N.type===2&&(N=E.nextToken()),N.type){case 11:N.value==null&&s(E,ne.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,_t(N)),O.key=m(E,N.value||"");break;case 5:N.value==null&&s(E,ne.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,_t(N)),O.key=u(E,N.value||"");break;case 6:N.value==null&&s(E,ne.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,_t(N)),O.key=c(E,N.value||"");break;case 7:N.value==null&&s(E,ne.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,_t(N)),O.key=f(E,N.value||"");break;default:{s(E,ne.UNEXPECTED_EMPTY_LINKED_KEY,v.lastStartLoc,0);const x=E.context(),V=i(7,x.offset,x.startLoc);return V.value="",a(V,x.offset,x.startLoc),O.key=V,a(O,x.offset,x.startLoc),{nextConsumeToken:N,node:O}}}return a(O,E.currentOffset(),E.currentPosition()),{node:O}}function S(E){const v=E.context(),O=v.currentType===1?E.currentOffset():v.offset,N=v.currentType===1?v.endLoc:v.startLoc,x=i(2,O,N);x.items=[];let V=null,L=null;do{const $=V||E.nextToken();switch(V=null,$.type){case 0:$.value==null&&s(E,ne.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,_t($)),x.items.push(l(E,$.value||""));break;case 6:$.value==null&&s(E,ne.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,_t($)),x.items.push(c(E,$.value||""));break;case 4:L=!0;break;case 5:$.value==null&&s(E,ne.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,_t($)),x.items.push(u(E,$.value||"",!!L)),L&&(o(E,hi.USE_MODULO_SYNTAX,v.lastStartLoc,0,_t($)),L=null);break;case 7:$.value==null&&s(E,ne.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,_t($)),x.items.push(f(E,$.value||""));break;case 8:{const X=y(E);x.items.push(X.node),V=X.nextConsumeToken||null;break}}}while(v.currentType!==14&&v.currentType!==1);const q=v.currentType===1?v.lastOffset:E.currentOffset(),Z=v.currentType===1?v.lastEndLoc:E.currentPosition();return a(x,q,Z),x}function w(E,v,O,N){const x=E.context();let V=N.items.length===0;const L=i(1,v,O);L.cases=[],L.cases.push(N);do{const q=S(E);V||(V=q.items.length===0),L.cases.push(q)}while(x.currentType!==14);return V&&s(E,ne.MUST_HAVE_MESSAGES_IN_PLURAL,O,0),a(L,E.currentOffset(),E.currentPosition()),L}function R(E){const v=E.context(),{offset:O,startLoc:N}=v,x=S(E);return v.currentType===14?x:w(E,O,N,x)}function D(E){const v=ng(E,Tu({},e)),O=v.context(),N=i(0,O.offset,O.startLoc);return t&&N.loc&&(N.loc.source=E),N.body=R(v),e.onCacheKey&&(N.cacheKey=e.onCacheKey(E)),O.currentType!==14&&s(v,ne.UNEXPECTED_LEXICAL_ANALYSIS,O.lastStartLoc,0,E[O.offset]||""),a(N,v.currentOffset(),v.currentPosition()),N}return{parse:D}}function _t(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function ag(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:o=>(n.helpers.add(o),o)}}function Da(e,t){for(let n=0;nMa(n)),e}function Ma(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;ni;function l(S,w){i.code+=S}function c(S,w=!0){const R=w?r:"";l(s?R+" ".repeat(S):R)}function u(S=!0){const w=++i.indentLevel;S&&c(w)}function f(S=!0){const w=--i.indentLevel;S&&c(w)}function d(){c(i.indentLevel)}return{context:a,push:l,indent:u,deindent:f,newline:d,helper:S=>`_${S}`,needIndent:()=>i.needIndent}}function hg(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),Xn(e,t.key),t.modifier?(e.push(", "),Xn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function pg(e,t){const{helper:n,needIndent:r}=e;e.push(`${n("normalize")}([`),e.indent(r());const s=t.items.length;for(let o=0;o1){e.push(`${n("plural")}([`),e.indent(r());const s=t.cases.length;for(let o=0;o{const n=ka(t.mode)?t.mode:"normal",r=ka(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` -`,o=t.needIndent?t.needIndent:n!=="arrow",i=e.helpers||[],a=dg(e,{filename:r,breakLineCode:s,needIndent:o});a.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(o),i.length>0&&(a.push(`const { ${Cu(i.map(u=>`${u}: _${u}`),", ")} } = ctx`),a.newline()),a.push("return "),Xn(a,e),a.deindent(o),a.push("}"),delete e.helpers;const{code:l,map:c}=a.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function yg(e,t={}){const n=Tu({},t),r=!!n.jit,s=!!n.minify,o=n.optimize==null?!0:n.optimize,a=ig(n).parse(e);return r?(o&&cg(a),s&&Vn(a),{ast:a,code:""}):(lg(a,n),_g(a,n))}function bg(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function kt(e){return de(e)&&mi(e)===0&&(yt(e,"b")||yt(e,"body"))}const Lu=["b","body"];function Eg(e){return yn(e,Lu)}const Pu=["c","cases"];function vg(e){return yn(e,Pu,[])}const Au=["s","static"];function Sg(e){return yn(e,Au)}const Ou=["i","items"];function wg(e){return yn(e,Ou,[])}const Ru=["t","type"];function mi(e){return yn(e,Ru)}const Nu=["v","value"];function Qr(e,t){const n=yn(e,Nu);if(n!=null)return n;throw Ir(t)}const Iu=["m","modifier"];function Tg(e){return yn(e,Iu)}const xu=["k","key"];function Cg(e){const t=yn(e,xu);if(t)return t;throw Ir(6)}function yn(e,t,n){for(let r=0;r{i===void 0?i=a:i+=a},d[1]=()=>{i!==void 0&&(t.push(i),i=void 0)},d[2]=()=>{d[0](),s++},d[3]=()=>{if(s>0)s--,r=4,d[0]();else{if(s=0,i===void 0||(i=Rg(i),i===!1))return!1;d[1]()}};function m(){const y=e[n+1];if(r===5&&y==="'"||r===6&&y==='"')return n++,a="\\"+y,d[0](),!0}for(;r!==null;)if(n++,o=e[n],!(o==="\\"&&m())){if(l=Og(o),f=bn[r],c=f[l]||f.l||8,c===8||(r=c[0],c[1]!==void 0&&(u=d[c[1]],u&&(a=o,u()===!1))))return;if(r===7)return t}}const Ua=new Map;function Ig(e,t){return de(e)?e[t]:null}function xg(e,t){if(!de(e))return null;let n=Ua.get(t);if(n||(n=Ng(t),n&&Ua.set(t,n)),!n)return null;const r=n.length;let s=e,o=0;for(;oe,Fg=e=>"",Dg="text",Mg=e=>e.length===0?"":Wm(e),Ug=Hm;function $a(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function $g(e){const t=Ie(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Ie(e.named.count)||Ie(e.named.n))?Ie(e.named.count)?e.named.count:Ie(e.named.n)?e.named.n:t:t}function Vg(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Hg(e={}){const t=e.locale,n=$g(e),r=de(e.pluralRules)&&G(t)&&Se(e.pluralRules[t])?e.pluralRules[t]:$a,s=de(e.pluralRules)&&G(t)&&Se(e.pluralRules[t])?$a:void 0,o=R=>R[r(n,R.length,s)],i=e.list||[],a=R=>i[R],l=e.named||_e();Ie(e.pluralIndex)&&Vg(n,l);const c=R=>l[R];function u(R){const D=Se(e.messages)?e.messages(R):de(e.messages)?e.messages[R]:!1;return D||(e.parent?e.parent.message(R):Fg)}const f=R=>e.modifiers?e.modifiers[R]:kg,d=oe(e.processor)&&Se(e.processor.normalize)?e.processor.normalize:Mg,m=oe(e.processor)&&Se(e.processor.interpolate)?e.processor.interpolate:Ug,y=oe(e.processor)&&G(e.processor.type)?e.processor.type:Dg,w={list:a,named:c,plural:o,linked:(R,...D)=>{const[E,v]=D;let O="text",N="";D.length===1?de(E)?(N=E.modifier||N,O=E.type||O):G(E)&&(N=E||N):D.length===2&&(G(E)&&(N=E||N),G(v)&&(O=v||O));const x=u(R)(w),V=O==="vnode"&&Ce(x)&&N?x[0]:x;return N?f(N)(V,O):V},message:u,type:y,interpolate:m,normalize:d,values:Ge(_e(),i,l)};return w}let xr=null;function Wg(e){xr=e}function Bg(e,t,n){xr&&xr.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const jg=Kg("function:translate");function Kg(e){return t=>xr&&xr.emit(e,t)}const Gg=hi.__EXTEND_POINT__,Tn=Ms(Gg),Yg={FALLBACK_TO_TRANSLATE:Tn(),CANNOT_FORMAT_NUMBER:Tn(),FALLBACK_TO_NUMBER_FORMAT:Tn(),CANNOT_FORMAT_DATE:Tn(),FALLBACK_TO_DATE_FORMAT:Tn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Tn(),__EXTEND_POINT__:Tn()},Fu=ne.__EXTEND_POINT__,Cn=Ms(Fu),bt={INVALID_ARGUMENT:Fu,INVALID_DATE_ARGUMENT:Cn(),INVALID_ISO_DATE_ARGUMENT:Cn(),NOT_SUPPORT_NON_STRING_MESSAGE:Cn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Cn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Cn(),NOT_SUPPORT_LOCALE_TYPE:Cn(),__EXTEND_POINT__:Cn()};function It(e){return nr(e,null,void 0)}function gi(e,t){return t.locale!=null?Va(t.locale):Va(e.locale)}let co;function Va(e){if(G(e))return e;if(Se(e)){if(e.resolvedOnce&&co!=null)return co;if(e.constructor.name==="Function"){const t=e();if(Vm(t))throw It(bt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return co=t}else throw It(bt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw It(bt.NOT_SUPPORT_LOCALE_TYPE)}function qg(e,t,n){return[...new Set([n,...Ce(t)?t:de(t)?Object.keys(t):G(t)?[t]:[n]])]}function Du(e,t,n){const r=G(n)?n:Jn,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let o=s.__localeChainCache.get(r);if(!o){o=[];let i=[n];for(;Ce(i);)i=Ha(o,i,t);const a=Ce(t)||!oe(t)?t:t.default?t.default:null;i=G(a)?[a]:a,Ce(i)&&Ha(o,i,!1),s.__localeChainCache.set(r,o)}return o}function Ha(e,t,n){let r=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Qg(){return{upper:(e,t)=>t==="text"&&G(e)?e.toUpperCase():t==="vnode"&&de(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&G(e)?e.toLowerCase():t==="vnode"&&de(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&G(e)?Ba(e):t==="vnode"&&de(e)&&"__v_isVNode"in e?Ba(e.children):e}}let Mu;function ja(e){Mu=e}let Uu;function Zg(e){Uu=e}let $u;function e_(e){$u=e}let Vu=null;const t_=e=>{Vu=e},n_=()=>Vu;let Hu=null;const Ka=e=>{Hu=e},r_=()=>Hu;let Ga=0;function s_(e={}){const t=Se(e.onWarn)?e.onWarn:xm,n=G(e.version)?e.version:Jg,r=G(e.locale)||Se(e.locale)?e.locale:Jn,s=Se(r)?Jn:r,o=Ce(e.fallbackLocale)||oe(e.fallbackLocale)||G(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,i=oe(e.messages)?e.messages:uo(s),a=oe(e.datetimeFormats)?e.datetimeFormats:uo(s),l=oe(e.numberFormats)?e.numberFormats:uo(s),c=Ge(_e(),e.modifiers,Qg()),u=e.pluralRules||_e(),f=Se(e.missing)?e.missing:null,d=ae(e.missingWarn)||mn(e.missingWarn)?e.missingWarn:!0,m=ae(e.fallbackWarn)||mn(e.fallbackWarn)?e.fallbackWarn:!0,y=!!e.fallbackFormat,S=!!e.unresolving,w=Se(e.postTranslation)?e.postTranslation:null,R=oe(e.processor)?e.processor:null,D=ae(e.warnHtmlMessage)?e.warnHtmlMessage:!0,E=!!e.escapeParameter,v=Se(e.messageCompiler)?e.messageCompiler:Mu,O=Se(e.messageResolver)?e.messageResolver:Uu||Ig,N=Se(e.localeFallbacker)?e.localeFallbacker:$u||qg,x=de(e.fallbackContext)?e.fallbackContext:void 0,V=e,L=de(V.__datetimeFormatters)?V.__datetimeFormatters:new Map,q=de(V.__numberFormatters)?V.__numberFormatters:new Map,Z=de(V.__meta)?V.__meta:{};Ga++;const $={version:n,cid:Ga,locale:r,fallbackLocale:o,messages:i,modifiers:c,pluralRules:u,missing:f,missingWarn:d,fallbackWarn:m,fallbackFormat:y,unresolving:S,postTranslation:w,processor:R,warnHtmlMessage:D,escapeParameter:E,messageCompiler:v,messageResolver:O,localeFallbacker:N,fallbackContext:x,onWarn:t,__meta:Z};return $.datetimeFormats=a,$.numberFormats=l,$.__datetimeFormatters=L,$.__numberFormatters=q,__INTLIFY_PROD_DEVTOOLS__&&Bg($,n,Z),$}const uo=e=>({[e]:_e()});function _i(e,t,n,r,s){const{missing:o,onWarn:i}=e;if(o!==null){const a=o(e,n,t,s);return G(a)?a:t}else return t}function lr(e,t,n){const r=e;r.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function o_(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function i_(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let r=n+1;ra_(n,e)}function a_(e,t){const n=Eg(t);if(n==null)throw Ir(0);if(mi(n)===1){const o=vg(n);return e.plural(o.reduce((i,a)=>[...i,Ya(e,a)],[]))}else return Ya(e,n)}function Ya(e,t){const n=Sg(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const r=wg(t).reduce((s,o)=>[...s,Io(e,o)],[]);return e.normalize(r)}}function Io(e,t){const n=mi(t);switch(n){case 3:return Qr(t,n);case 9:return Qr(t,n);case 4:{const r=t;if(yt(r,"k")&&r.k)return e.interpolate(e.named(r.k));if(yt(r,"key")&&r.key)return e.interpolate(e.named(r.key));throw Ir(n)}case 5:{const r=t;if(yt(r,"i")&&Ie(r.i))return e.interpolate(e.list(r.i));if(yt(r,"index")&&Ie(r.index))return e.interpolate(e.list(r.index));throw Ir(n)}case 6:{const r=t,s=Tg(r),o=Cg(r);return e.linked(Io(e,o),s?Io(e,s):void 0,e.type)}case 7:return Qr(t,n);case 8:return Qr(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const Wu=e=>e;let Hn=_e();function Bu(e,t={}){let n=!1;const r=t.onError||zm;return t.onError=s=>{n=!0,r(s)},{...yg(e,t),detectError:n}}const l_=(e,t)=>{if(!G(e))throw It(bt.NOT_SUPPORT_NON_STRING_MESSAGE);{ae(t.warnHtmlMessage)&&t.warnHtmlMessage;const r=(t.onCacheKey||Wu)(e),s=Hn[r];if(s)return s;const{code:o,detectError:i}=Bu(e,t),a=new Function(`return ${o}`)();return i?a:Hn[r]=a}};function c_(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&G(e)){ae(t.warnHtmlMessage)&&t.warnHtmlMessage;const r=(t.onCacheKey||Wu)(e),s=Hn[r];if(s)return s;const{ast:o,detectError:i}=Bu(e,{...t,location:!1,jit:!0}),a=fo(o);return i?a:Hn[r]=a}else{const n=e.cacheKey;if(n){const r=Hn[n];return r||(Hn[n]=fo(e))}else return fo(e)}}const qa=()=>"",pt=e=>Se(e);function za(e,...t){const{fallbackFormat:n,postTranslation:r,unresolving:s,messageCompiler:o,fallbackLocale:i,messages:a}=e,[l,c]=xo(...t),u=ae(c.missingWarn)?c.missingWarn:e.missingWarn,f=ae(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,d=ae(c.escapeParameter)?c.escapeParameter:e.escapeParameter,m=!!c.resolvedMessage,y=G(c.default)||ae(c.default)?ae(c.default)?o?l:()=>l:c.default:n?o?l:()=>l:"",S=n||y!=="",w=gi(e,c);d&&u_(c);let[R,D,E]=m?[l,w,a[w]||_e()]:ju(e,l,w,i,f,u),v=R,O=l;if(!m&&!(G(v)||kt(v)||pt(v))&&S&&(v=y,O=v),!m&&(!(G(v)||kt(v)||pt(v))||!G(D)))return s?Us:l;let N=!1;const x=()=>{N=!0},V=pt(v)?v:Ku(e,l,D,v,O,x);if(N)return v;const L=h_(e,D,E,c),q=Hg(L),Z=f_(e,V,q);let $=r?r(Z,l):Z;if(d&&G($)&&($=Um($)),__INTLIFY_PROD_DEVTOOLS__){const X={timestamp:Date.now(),key:G(l)?l:pt(v)?v.key:"",locale:D||(pt(v)?v.locale:""),format:G(v)?v:pt(v)?v.source:"",message:$};X.meta=Ge({},e.__meta,n_()||{}),jg(X)}return $}function u_(e){Ce(e.list)?e.list=e.list.map(t=>G(t)?Ia(t):t):de(e.named)&&Object.keys(e.named).forEach(t=>{G(e.named[t])&&(e.named[t]=Ia(e.named[t]))})}function ju(e,t,n,r,s,o){const{messages:i,onWarn:a,messageResolver:l,localeFallbacker:c}=e,u=c(e,r,n);let f=_e(),d,m=null;const y="translate";for(let S=0;Sr);return c.locale=n,c.key=t,c}const l=i(r,d_(e,n,s,r,a,o));return l.locale=n,l.key=t,l.source=r,l}function f_(e,t,n){return t(n)}function xo(...e){const[t,n,r]=e,s=_e();if(!G(t)&&!Ie(t)&&!pt(t)&&!kt(t))throw It(bt.INVALID_ARGUMENT);const o=Ie(t)?String(t):(pt(t),t);return Ie(n)?s.plural=n:G(n)?s.default=n:oe(n)&&!Ds(n)?s.named=n:Ce(n)&&(s.list=n),Ie(r)?s.plural=r:G(r)?s.default=r:oe(r)&&Ge(s,r),[o,s]}function d_(e,t,n,r,s,o){return{locale:t,key:n,warnHtmlMessage:s,onError:i=>{throw o&&o(i),i},onCacheKey:i=>km(t,n,i)}}function h_(e,t,n,r){const{modifiers:s,pluralRules:o,messageResolver:i,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,d={locale:t,modifiers:s,pluralRules:o,messages:m=>{let y=i(n,m);if(y==null&&u){const[,,S]=ju(u,m,t,a,l,c);y=i(S,m)}if(G(y)||kt(y)){let S=!1;const R=Ku(e,m,t,y,m,()=>{S=!0});return S?qa:R}else return pt(y)?y:qa}};return e.processor&&(d.processor=e.processor),r.list&&(d.list=r.list),r.named&&(d.named=r.named),Ie(r.plural)&&(d.pluralIndex=r.plural),d}function Xa(e,...t){const{datetimeFormats:n,unresolving:r,fallbackLocale:s,onWarn:o,localeFallbacker:i}=e,{__datetimeFormatters:a}=e,[l,c,u,f]=ko(...t),d=ae(u.missingWarn)?u.missingWarn:e.missingWarn;ae(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,y=gi(e,u),S=i(e,s,y);if(!G(l)||l==="")return new Intl.DateTimeFormat(y,f).format(c);let w={},R,D=null;const E="datetime format";for(let N=0;N{Gu.includes(l)?i[l]=n[l]:o[l]=n[l]}),G(r)?o.locale=r:oe(r)&&(i=r),oe(s)&&(i=s),[o.key||"",a,o,i]}function Ja(e,t,n){const r=e;for(const s in n){const o=`${t}__${s}`;r.__datetimeFormatters.has(o)&&r.__datetimeFormatters.delete(o)}}function Qa(e,...t){const{numberFormats:n,unresolving:r,fallbackLocale:s,onWarn:o,localeFallbacker:i}=e,{__numberFormatters:a}=e,[l,c,u,f]=Fo(...t),d=ae(u.missingWarn)?u.missingWarn:e.missingWarn;ae(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,y=gi(e,u),S=i(e,s,y);if(!G(l)||l==="")return new Intl.NumberFormat(y,f).format(c);let w={},R,D=null;const E="number format";for(let N=0;N{Yu.includes(l)?i[l]=n[l]:o[l]=n[l]}),G(r)?o.locale=r:oe(r)&&(i=r),oe(s)&&(i=s),[o.key||"",a,o,i]}function Za(e,t,n){const r=e;for(const s in n){const o=`${t}__${s}`;r.__numberFormatters.has(o)&&r.__numberFormatters.delete(o)}}bg();const p_="9.14.5";function m_(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Bt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Bt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1)}const g_=Yg.__EXTEND_POINT__,Ut=Ms(g_);Ut(),Ut(),Ut(),Ut(),Ut(),Ut(),Ut(),Ut(),Ut();const qu=bt.__EXTEND_POINT__,ot=Ms(qu),xe={UNEXPECTED_RETURN_TYPE:qu,INVALID_ARGUMENT:ot(),MUST_BE_CALL_SETUP_TOP:ot(),NOT_INSTALLED:ot(),NOT_AVAILABLE_IN_LEGACY_MODE:ot(),REQUIRED_VALUE:ot(),INVALID_VALUE:ot(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:ot(),NOT_INSTALLED_WITH_PROVIDE:ot(),UNEXPECTED_ERROR:ot(),NOT_COMPATIBLE_LEGACY_VUE_I18N:ot(),BRIDGE_SUPPORT_VUE_2_ONLY:ot(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:ot(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:ot(),__EXTEND_POINT__:ot()};function $e(e,...t){return nr(e,null,void 0)}const Do=_n("__translateVNode"),Mo=_n("__datetimeParts"),Uo=_n("__numberParts"),zu=_n("__setPluralRules"),Xu=_n("__injectWithOption"),$o=_n("__dispose");function kr(e){if(!de(e)||kt(e))return e;for(const t in e)if(yt(e,t))if(!t.includes("."))de(e[t])&&kr(e[t]);else{const n=t.split("."),r=n.length-1;let s=e,o=!1;for(let i=0;i{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(i[l]=i[l]||_e(),rs(c,i[l])):rs(c,i)}else G(a)&&rs(JSON.parse(a),i)}),s==null&&o)for(const a in i)yt(i,a)&&kr(i[a]);return i}function Ju(e){return e.type}function Qu(e,t,n){let r=de(t.messages)?t.messages:_e();"__i18nGlobal"in n&&(r=$s(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const s=Object.keys(r);s.length&&s.forEach(o=>{e.mergeLocaleMessage(o,r[o])});{if(de(t.datetimeFormats)){const o=Object.keys(t.datetimeFormats);o.length&&o.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(de(t.numberFormats)){const o=Object.keys(t.numberFormats);o.length&&o.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function el(e){return Oe($r,null,e,0)}const tl="__INTLIFY_META__",nl=()=>[],__=()=>!1;let rl=0;function sl(e){return((t,n,r,s)=>e(n,r,zt()||void 0,s))}const y_=()=>{const e=zt();let t=null;return e&&(t=Ju(e)[tl])?{[tl]:t}:null};function yi(e={},t){const{__root:n,__injectWithOption:r}=e,s=n===void 0,o=e.flatJson,i=ys?it:oi,a=!!e.translateExistCompatible;let l=ae(e.inheritLocale)?e.inheritLocale:!0;const c=i(n&&l?n.locale.value:G(e.locale)?e.locale:Jn),u=i(n&&l?n.fallbackLocale.value:G(e.fallbackLocale)||Ce(e.fallbackLocale)||oe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=i($s(c.value,e)),d=i(oe(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),m=i(oe(e.numberFormats)?e.numberFormats:{[c.value]:{}});let y=n?n.missingWarn:ae(e.missingWarn)||mn(e.missingWarn)?e.missingWarn:!0,S=n?n.fallbackWarn:ae(e.fallbackWarn)||mn(e.fallbackWarn)?e.fallbackWarn:!0,w=n?n.fallbackRoot:ae(e.fallbackRoot)?e.fallbackRoot:!0,R=!!e.fallbackFormat,D=Se(e.missing)?e.missing:null,E=Se(e.missing)?sl(e.missing):null,v=Se(e.postTranslation)?e.postTranslation:null,O=n?n.warnHtmlMessage:ae(e.warnHtmlMessage)?e.warnHtmlMessage:!0,N=!!e.escapeParameter;const x=n?n.modifiers:oe(e.modifiers)?e.modifiers:{};let V=e.pluralRules||n&&n.pluralRules,L;L=(()=>{s&&Ka(null);const T={version:p_,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:x,pluralRules:V,missing:E===null?void 0:E,missingWarn:y,fallbackWarn:S,fallbackFormat:R,unresolving:!0,postTranslation:v===null?void 0:v,warnHtmlMessage:O,escapeParameter:N,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=d.value,T.numberFormats=m.value,T.__datetimeFormatters=oe(L)?L.__datetimeFormatters:void 0,T.__numberFormatters=oe(L)?L.__numberFormatters:void 0;const k=s_(T);return s&&Ka(k),k})(),lr(L,c.value,u.value);function Z(){return[c.value,u.value,f.value,d.value,m.value]}const $=Ee({get:()=>c.value,set:T=>{c.value=T,L.locale=c.value}}),X=Ee({get:()=>u.value,set:T=>{u.value=T,L.fallbackLocale=u.value,lr(L,c.value,T)}}),ue=Ee(()=>f.value),Pe=Ee(()=>d.value),te=Ee(()=>m.value);function ee(){return Se(v)?v:null}function re(T){v=T,L.postTranslation=T}function Fe(){return D}function Ye(T){T!==null&&(E=sl(T)),D=T,L.missing=E}const he=(T,k,J,le,Ae,tt)=>{Z();let Ve;try{__INTLIFY_PROD_DEVTOOLS__,s||(L.fallbackContext=n?r_():void 0),Ve=T(L)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(L.fallbackContext=void 0)}if(J!=="translate exists"&&Ie(Ve)&&Ve===Us||J==="translate exists"&&!Ve){const[En,Gs]=k();return n&&w?le(n):Ae(En)}else{if(tt(Ve))return Ve;throw $e(xe.UNEXPECTED_RETURN_TYPE)}};function ge(...T){return he(k=>Reflect.apply(za,null,[k,...T]),()=>xo(...T),"translate",k=>Reflect.apply(k.t,k,[...T]),k=>k,k=>G(k))}function qe(...T){const[k,J,le]=T;if(le&&!de(le))throw $e(xe.INVALID_ARGUMENT);return ge(k,J,Ge({resolvedMessage:!0},le||{}))}function De(...T){return he(k=>Reflect.apply(Xa,null,[k,...T]),()=>ko(...T),"datetime format",k=>Reflect.apply(k.d,k,[...T]),()=>Wa,k=>G(k))}function ct(...T){return he(k=>Reflect.apply(Qa,null,[k,...T]),()=>Fo(...T),"number format",k=>Reflect.apply(k.n,k,[...T]),()=>Wa,k=>G(k))}function Me(T){return T.map(k=>G(k)||Ie(k)||ae(k)?el(String(k)):k)}const Y={normalize:Me,interpolate:T=>T,type:"vnode"};function j(...T){return he(k=>{let J;const le=k;try{le.processor=Y,J=Reflect.apply(za,null,[le,...T])}finally{le.processor=null}return J},()=>xo(...T),"translate",k=>k[Do](...T),k=>[el(k)],k=>Ce(k))}function z(...T){return he(k=>Reflect.apply(Qa,null,[k,...T]),()=>Fo(...T),"number format",k=>k[Uo](...T),nl,k=>G(k)||Ce(k))}function fe(...T){return he(k=>Reflect.apply(Xa,null,[k,...T]),()=>ko(...T),"datetime format",k=>k[Mo](...T),nl,k=>G(k)||Ce(k))}function g(T){V=T,L.pluralRules=V}function b(T,k){return he(()=>{if(!T)return!1;const J=G(k)?k:c.value,le=U(J),Ae=L.messageResolver(le,T);return a?Ae!=null:kt(Ae)||pt(Ae)||G(Ae)},()=>[T],"translate exists",J=>Reflect.apply(J.te,J,[T,k]),__,J=>ae(J))}function _(T){let k=null;const J=Du(L,u.value,c.value);for(let le=0;le{l&&(c.value=T,L.locale=T,lr(L,c.value,u.value))}),un(n.fallbackLocale,T=>{l&&(u.value=T,L.fallbackLocale=T,lr(L,c.value,u.value))}));const H={id:rl,locale:$,fallbackLocale:X,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,lr(L,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:ue,get modifiers(){return x},get pluralRules(){return V||{}},get isGlobal(){return s},get missingWarn(){return y},set missingWarn(T){y=T,L.missingWarn=y},get fallbackWarn(){return S},set fallbackWarn(T){S=T,L.fallbackWarn=S},get fallbackRoot(){return w},set fallbackRoot(T){w=T},get fallbackFormat(){return R},set fallbackFormat(T){R=T,L.fallbackFormat=R},get warnHtmlMessage(){return O},set warnHtmlMessage(T){O=T,L.warnHtmlMessage=T},get escapeParameter(){return N},set escapeParameter(T){N=T,L.escapeParameter=T},t:ge,getLocaleMessage:U,setLocaleMessage:F,mergeLocaleMessage:B,getPostTranslationHandler:ee,setPostTranslationHandler:re,getMissingHandler:Fe,setMissingHandler:Ye,[zu]:g};return H.datetimeFormats=Pe,H.numberFormats=te,H.rt=qe,H.te=b,H.tm=P,H.d=De,H.n=ct,H.getDateTimeFormat=W,H.setDateTimeFormat=h,H.mergeDateTimeFormat=p,H.getNumberFormat=C,H.setNumberFormat=I,H.mergeNumberFormat=K,H[Xu]=r,H[Do]=j,H[Mo]=fe,H[Uo]=z,H}function b_(e){const t=G(e.locale)?e.locale:Jn,n=G(e.fallbackLocale)||Ce(e.fallbackLocale)||oe(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,r=Se(e.missing)?e.missing:void 0,s=ae(e.silentTranslationWarn)||mn(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,o=ae(e.silentFallbackWarn)||mn(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,i=ae(e.fallbackRoot)?e.fallbackRoot:!0,a=!!e.formatFallbackMessages,l=oe(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=Se(e.postTranslation)?e.postTranslation:void 0,f=G(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,d=!!e.escapeParameterHtml,m=ae(e.sync)?e.sync:!0;let y=e.messages;if(oe(e.sharedMessages)){const N=e.sharedMessages;y=Object.keys(N).reduce((V,L)=>{const q=V[L]||(V[L]={});return Ge(q,N[L]),V},y||{})}const{__i18n:S,__root:w,__injectWithOption:R}=e,D=e.datetimeFormats,E=e.numberFormats,v=e.flatJson,O=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:y,flatJson:v,datetimeFormats:D,numberFormats:E,missing:r,missingWarn:s,fallbackWarn:o,fallbackRoot:i,fallbackFormat:a,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:d,messageResolver:e.messageResolver,inheritLocale:m,translateExistCompatible:O,__i18n:S,__root:w,__injectWithOption:R}}function Vo(e={},t){{const n=yi(b_(e)),{__extender:r}=e,s={id:n.id,get locale(){return n.locale.value},set locale(o){n.locale.value=o},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(o){n.fallbackLocale.value=o},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(o){},get missing(){return n.getMissingHandler()},set missing(o){n.setMissingHandler(o)},get silentTranslationWarn(){return ae(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(o){n.missingWarn=ae(o)?!o:o},get silentFallbackWarn(){return ae(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(o){n.fallbackWarn=ae(o)?!o:o},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(o){n.fallbackFormat=o},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(o){n.setPostTranslationHandler(o)},get sync(){return n.inheritLocale},set sync(o){n.inheritLocale=o},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(o){n.warnHtmlMessage=o!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(o){n.escapeParameter=o},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(o){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...o){const[i,a,l]=o,c={};let u=null,f=null;if(!G(i))throw $e(xe.INVALID_ARGUMENT);const d=i;return G(a)?c.locale=a:Ce(a)?u=a:oe(a)&&(f=a),Ce(l)?u=l:oe(l)&&(f=l),Reflect.apply(n.t,n,[d,u||f||{},c])},rt(...o){return Reflect.apply(n.rt,n,[...o])},tc(...o){const[i,a,l]=o,c={plural:1};let u=null,f=null;if(!G(i))throw $e(xe.INVALID_ARGUMENT);const d=i;return G(a)?c.locale=a:Ie(a)?c.plural=a:Ce(a)?u=a:oe(a)&&(f=a),G(l)?c.locale=l:Ce(l)?u=l:oe(l)&&(f=l),Reflect.apply(n.t,n,[d,u||f||{},c])},te(o,i){return n.te(o,i)},tm(o){return n.tm(o)},getLocaleMessage(o){return n.getLocaleMessage(o)},setLocaleMessage(o,i){n.setLocaleMessage(o,i)},mergeLocaleMessage(o,i){n.mergeLocaleMessage(o,i)},d(...o){return Reflect.apply(n.d,n,[...o])},getDateTimeFormat(o){return n.getDateTimeFormat(o)},setDateTimeFormat(o,i){n.setDateTimeFormat(o,i)},mergeDateTimeFormat(o,i){n.mergeDateTimeFormat(o,i)},n(...o){return Reflect.apply(n.n,n,[...o])},getNumberFormat(o){return n.getNumberFormat(o)},setNumberFormat(o,i){n.setNumberFormat(o,i)},mergeNumberFormat(o,i){n.mergeNumberFormat(o,i)},getChoiceIndex(o,i){return-1}};return s.__extender=r,s}}const bi={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function E_({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((r,s)=>[...r,...s.type===Ue?s.children:[s]],[]):t.reduce((n,r)=>{const s=e[r];return s&&(n[r]=s()),n},_e())}function Zu(e){return Ue}const v_=Xt({name:"i18n-t",props:Ge({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ie(e)||!isNaN(e)}},bi),setup(e,t){const{slots:n,attrs:r}=t,s=e.i18n||Hr({useScope:e.scope,__useComponent:!0});return()=>{const o=Object.keys(n).filter(f=>f!=="_"),i=_e();e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=G(e.plural)?+e.plural:e.plural);const a=E_(t,o),l=s[Do](e.keypath,a,i),c=Ge(_e(),r),u=G(e.tag)||de(e.tag)?e.tag:Zu();return pn(u,c,l)}}}),ol=v_;function S_(e){return Ce(e)&&!G(e[0])}function ef(e,t,n,r){const{slots:s,attrs:o}=t;return()=>{const i={part:!0};let a=_e();e.locale&&(i.locale=e.locale),G(e.format)?i.key=e.format:de(e.format)&&(G(e.format.key)&&(i.key=e.format.key),a=Object.keys(e.format).reduce((d,m)=>n.includes(m)?Ge(_e(),d,{[m]:e.format[m]}):d,_e()));const l=r(e.value,i,a);let c=[i.key];Ce(l)?c=l.map((d,m)=>{const y=s[d.type],S=y?y({[d.type]:d.value,index:m,parts:l}):[d.value];return S_(S)&&(S[0].key=`${d.type}-${m}`),S}):G(l)&&(c=[l]);const u=Ge(_e(),o),f=G(e.tag)||de(e.tag)?e.tag:Zu();return pn(f,u,c)}}const w_=Xt({name:"i18n-n",props:Ge({value:{type:Number,required:!0},format:{type:[String,Object]}},bi),setup(e,t){const n=e.i18n||Hr({useScope:e.scope,__useComponent:!0});return ef(e,t,Yu,(...r)=>n[Uo](...r))}}),il=w_,T_=Xt({name:"i18n-d",props:Ge({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},bi),setup(e,t){const n=e.i18n||Hr({useScope:e.scope,__useComponent:!0});return ef(e,t,Gu,(...r)=>n[Mo](...r))}}),al=T_;function C_(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return r!=null?r.__composer:e.global.__composer}}function L_(e){const t=i=>{const{instance:a,modifiers:l,value:c}=i;if(!a||!a.$)throw $e(xe.UNEXPECTED_ERROR);const u=C_(e,a.$),f=ll(c);return[Reflect.apply(u.t,u,[...cl(f)]),u]};return{created:(i,a)=>{const[l,c]=t(a);ys&&e.global===c&&(i.__i18nWatcher=un(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),i.__composer=c,i.textContent=l},unmounted:i=>{ys&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:a})=>{if(i.__composer){const l=i.__composer,c=ll(a);i.textContent=Reflect.apply(l.t,l,[...cl(c)])}},getSSRProps:i=>{const[a]=t(i);return{textContent:a}}}}function ll(e){if(G(e))return{path:e};if(oe(e)){if(!("path"in e))throw $e(xe.REQUIRED_VALUE,"path");return e}else throw $e(xe.INVALID_VALUE)}function cl(e){const{path:t,locale:n,args:r,choice:s,plural:o}=e,i={},a=r||{};return G(n)&&(i.locale=n),Ie(s)&&(i.plural=s),Ie(o)&&(i.plural=o),[t,a,i]}function P_(e,t,...n){const r=oe(n[0])?n[0]:{},s=!!r.useI18nComponentName;(!ae(r.globalInstall)||r.globalInstall)&&([s?"i18n":ol.name,"I18nT"].forEach(i=>e.component(i,ol)),[il.name,"I18nN"].forEach(i=>e.component(i,il)),[al.name,"I18nD"].forEach(i=>e.component(i,al))),e.directive("t",L_(t))}function A_(e,t,n){return{beforeCreate(){const r=zt();if(!r)throw $e(xe.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const o=s.i18n;if(s.__i18n&&(o.__i18n=s.__i18n),o.__root=t,this===this.$root)this.$i18n=ul(e,o);else{o.__injectWithOption=!0,o.__extender=n.__vueI18nExtend,this.$i18n=Vo(o);const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=ul(e,s);else{this.$i18n=Vo({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const o=this.$i18n;o.__extender&&(o.__disposer=o.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&Qu(t,s,s),this.$t=(...o)=>this.$i18n.t(...o),this.$rt=(...o)=>this.$i18n.rt(...o),this.$tc=(...o)=>this.$i18n.tc(...o),this.$te=(o,i)=>this.$i18n.te(o,i),this.$d=(...o)=>this.$i18n.d(...o),this.$n=(...o)=>this.$i18n.n(...o),this.$tm=o=>this.$i18n.tm(o),n.__setInstance(r,this.$i18n)},mounted(){},unmounted(){const r=zt();if(!r)throw $e(xe.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(r),delete this.$i18n}}}function ul(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[zu](t.pluralizationRules||e.pluralizationRules);const n=$s(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(r=>e.mergeLocaleMessage(r,n[r])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(r=>e.mergeDateTimeFormat(r,t.datetimeFormats[r])),t.numberFormats&&Object.keys(t.numberFormats).forEach(r=>e.mergeNumberFormat(r,t.numberFormats[r])),e}const O_=_n("global-vue-i18n");function R_(e={},t){const n=__VUE_I18N_LEGACY_API__&&ae(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,r=ae(e.globalInjection)?e.globalInjection:!0,s=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,o=new Map,[i,a]=N_(e,n),l=_n("");function c(d){return o.get(d)||null}function u(d,m){o.set(d,m)}function f(d){o.delete(d)}{const d={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return s},async install(m,...y){if(m.__VUE_I18N_SYMBOL__=l,m.provide(m.__VUE_I18N_SYMBOL__,d),oe(y[0])){const R=y[0];d.__composerExtend=R.__composerExtend,d.__vueI18nExtend=R.__vueI18nExtend}let S=null;!n&&r&&(S=V_(m,d.global)),__VUE_I18N_FULL_INSTALL__&&P_(m,d,...y),__VUE_I18N_LEGACY_API__&&n&&m.mixin(A_(a,a.__composer,d));const w=m.unmount;m.unmount=()=>{S&&S(),d.dispose(),w()}},get global(){return a},dispose(){i.stop()},__instances:o,__getInstance:c,__setInstance:u,__deleteInstance:f};return d}}function Hr(e={}){const t=zt();if(t==null)throw $e(xe.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw $e(xe.NOT_INSTALLED);const n=I_(t),r=k_(n),s=Ju(t),o=x_(e,s);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw $e(xe.NOT_AVAILABLE_IN_LEGACY_MODE);return U_(t,o,r,e)}if(o==="global")return Qu(r,e,s),r;if(o==="parent"){let l=F_(n,t,e.__useComponent);return l==null&&(l=r),l}const i=n;let a=i.__getInstance(t);if(a==null){const l=Ge({},e);"__i18n"in s&&(l.__i18n=s.__i18n),r&&(l.__root=r),a=yi(l),i.__composerExtend&&(a[$o]=i.__composerExtend(a)),M_(i,t,a),i.__setInstance(t,a)}return a}function N_(e,t,n){const r=Xo();{const s=__VUE_I18N_LEGACY_API__&&t?r.run(()=>Vo(e)):r.run(()=>yi(e));if(s==null)throw $e(xe.UNEXPECTED_ERROR);return[r,s]}}function I_(e){{const t=et(e.isCE?O_:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw $e(e.isCE?xe.NOT_INSTALLED_WITH_PROVIDE:xe.UNEXPECTED_ERROR);return t}}function x_(e,t){return Ds(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function k_(e){return e.mode==="composition"?e.global:e.global.__composer}function F_(e,t,n=!1){let r=null;const s=t.root;let o=D_(t,n);for(;o!=null;){const i=e;if(e.mode==="composition")r=i.__getInstance(o);else if(__VUE_I18N_LEGACY_API__){const a=i.__getInstance(o);a!=null&&(r=a.__composer,n&&r&&!r[Xu]&&(r=null))}if(r!=null||s===o)break;o=o.parent}return r}function D_(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function M_(e,t,n){er(()=>{},t),tr(()=>{const r=n;e.__deleteInstance(t);const s=r[$o];s&&(s(),delete r[$o])},t)}function U_(e,t,n,r={}){const s=t==="local",o=oi(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw $e(xe.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=ae(r.inheritLocale)?r.inheritLocale:!G(r.locale),a=it(!s||i?n.locale.value:G(r.locale)?r.locale:Jn),l=it(!s||i?n.fallbackLocale.value:G(r.fallbackLocale)||Ce(r.fallbackLocale)||oe(r.fallbackLocale)||r.fallbackLocale===!1?r.fallbackLocale:a.value),c=it($s(a.value,r)),u=it(oe(r.datetimeFormats)?r.datetimeFormats:{[a.value]:{}}),f=it(oe(r.numberFormats)?r.numberFormats:{[a.value]:{}}),d=s?n.missingWarn:ae(r.missingWarn)||mn(r.missingWarn)?r.missingWarn:!0,m=s?n.fallbackWarn:ae(r.fallbackWarn)||mn(r.fallbackWarn)?r.fallbackWarn:!0,y=s?n.fallbackRoot:ae(r.fallbackRoot)?r.fallbackRoot:!0,S=!!r.fallbackFormat,w=Se(r.missing)?r.missing:null,R=Se(r.postTranslation)?r.postTranslation:null,D=s?n.warnHtmlMessage:ae(r.warnHtmlMessage)?r.warnHtmlMessage:!0,E=!!r.escapeParameter,v=s?n.modifiers:oe(r.modifiers)?r.modifiers:{},O=r.pluralRules||s&&n.pluralRules;function N(){return[a.value,l.value,c.value,u.value,f.value]}const x=Ee({get:()=>o.value?o.value.locale.value:a.value,set:_=>{o.value&&(o.value.locale.value=_),a.value=_}}),V=Ee({get:()=>o.value?o.value.fallbackLocale.value:l.value,set:_=>{o.value&&(o.value.fallbackLocale.value=_),l.value=_}}),L=Ee(()=>o.value?o.value.messages.value:c.value),q=Ee(()=>u.value),Z=Ee(()=>f.value);function $(){return o.value?o.value.getPostTranslationHandler():R}function X(_){o.value&&o.value.setPostTranslationHandler(_)}function ue(){return o.value?o.value.getMissingHandler():w}function Pe(_){o.value&&o.value.setMissingHandler(_)}function te(_){return N(),_()}function ee(..._){return o.value?te(()=>Reflect.apply(o.value.t,null,[..._])):te(()=>"")}function re(..._){return o.value?Reflect.apply(o.value.rt,null,[..._]):""}function Fe(..._){return o.value?te(()=>Reflect.apply(o.value.d,null,[..._])):te(()=>"")}function Ye(..._){return o.value?te(()=>Reflect.apply(o.value.n,null,[..._])):te(()=>"")}function he(_){return o.value?o.value.tm(_):{}}function ge(_,P){return o.value?o.value.te(_,P):!1}function qe(_){return o.value?o.value.getLocaleMessage(_):{}}function De(_,P){o.value&&(o.value.setLocaleMessage(_,P),c.value[_]=P)}function ct(_,P){o.value&&o.value.mergeLocaleMessage(_,P)}function Me(_){return o.value?o.value.getDateTimeFormat(_):{}}function M(_,P){o.value&&(o.value.setDateTimeFormat(_,P),u.value[_]=P)}function Y(_,P){o.value&&o.value.mergeDateTimeFormat(_,P)}function j(_){return o.value?o.value.getNumberFormat(_):{}}function z(_,P){o.value&&(o.value.setNumberFormat(_,P),f.value[_]=P)}function fe(_,P){o.value&&o.value.mergeNumberFormat(_,P)}const g={get id(){return o.value?o.value.id:-1},locale:x,fallbackLocale:V,messages:L,datetimeFormats:q,numberFormats:Z,get inheritLocale(){return o.value?o.value.inheritLocale:i},set inheritLocale(_){o.value&&(o.value.inheritLocale=_)},get availableLocales(){return o.value?o.value.availableLocales:Object.keys(c.value)},get modifiers(){return o.value?o.value.modifiers:v},get pluralRules(){return o.value?o.value.pluralRules:O},get isGlobal(){return o.value?o.value.isGlobal:!1},get missingWarn(){return o.value?o.value.missingWarn:d},set missingWarn(_){o.value&&(o.value.missingWarn=_)},get fallbackWarn(){return o.value?o.value.fallbackWarn:m},set fallbackWarn(_){o.value&&(o.value.missingWarn=_)},get fallbackRoot(){return o.value?o.value.fallbackRoot:y},set fallbackRoot(_){o.value&&(o.value.fallbackRoot=_)},get fallbackFormat(){return o.value?o.value.fallbackFormat:S},set fallbackFormat(_){o.value&&(o.value.fallbackFormat=_)},get warnHtmlMessage(){return o.value?o.value.warnHtmlMessage:D},set warnHtmlMessage(_){o.value&&(o.value.warnHtmlMessage=_)},get escapeParameter(){return o.value?o.value.escapeParameter:E},set escapeParameter(_){o.value&&(o.value.escapeParameter=_)},t:ee,getPostTranslationHandler:$,setPostTranslationHandler:X,getMissingHandler:ue,setMissingHandler:Pe,rt:re,d:Fe,n:Ye,tm:he,te:ge,getLocaleMessage:qe,setLocaleMessage:De,mergeLocaleMessage:ct,getDateTimeFormat:Me,setDateTimeFormat:M,mergeDateTimeFormat:Y,getNumberFormat:j,setNumberFormat:z,mergeNumberFormat:fe};function b(_){_.locale.value=a.value,_.fallbackLocale.value=l.value,Object.keys(c.value).forEach(P=>{_.mergeLocaleMessage(P,c.value[P])}),Object.keys(u.value).forEach(P=>{_.mergeDateTimeFormat(P,u.value[P])}),Object.keys(f.value).forEach(P=>{_.mergeNumberFormat(P,f.value[P])}),_.escapeParameter=E,_.fallbackFormat=S,_.fallbackRoot=y,_.fallbackWarn=m,_.missingWarn=d,_.warnHtmlMessage=D}return yc(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw $e(xe.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const _=o.value=e.proxy.$i18n.__composer;t==="global"?(a.value=_.locale.value,l.value=_.fallbackLocale.value,c.value=_.messages.value,u.value=_.datetimeFormats.value,f.value=_.numberFormats.value):s&&b(_)}),g}const $_=["locale","fallbackLocale","availableLocales"],fl=["t","rt","d","n","tm","te"];function V_(e,t){const n=Object.create(null);return $_.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o)throw $e(xe.UNEXPECTED_ERROR);const i=Le(o.value)?{get(){return o.value.value},set(a){o.value.value=a}}:{get(){return o.get&&o.get()}};Object.defineProperty(n,s,i)}),e.config.globalProperties.$i18n=n,fl.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o||!o.value)throw $e(xe.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,o)}),()=>{delete e.config.globalProperties.$i18n,fl.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}m_();__INTLIFY_JIT_COMPILATION__?ja(c_):ja(l_);Zg(xg);e_(Du);if(__INTLIFY_PROD_DEVTOOLS__){const e=Bt();e.__INTLIFY__=!0,Wg(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const H_={common:{confirm:"确认",cancel:"取消",close:"关闭",delete:"删除",edit:"编辑",save:"保存",add:"添加",back:"返回",next:"下一页",previous:"上一页",loading:"加载中...",success:"成功",error:"错误",warning:"警告",info:"信息",search:"搜索",copy:"复制",uploadSuccess:"上传成功",uploadFailed:"上传失败",copySuccess:"复制成功",copyFailed:"复制失败",deleteSuccess:"删除成功",deleteFailed:"删除失败",downloadSuccess:"下载成功",downloadFailed:"下载失败",shareSuccess:"分享成功",shareFailed:"分享失败",expiredFile:"文件已过期",fileNotFound:"文件不存在",networkError:"网络错误",unknownError:"未知错误",invalidFileType:"不支持的文件类型",fileTooLarge:"文件过大",uploadCanceled:"上传已取消",processing:"处理中...",pleaseWait:"请稍候...",fileDetails:"文件详情",enabled:"已开启",disabled:"已关闭",minute:"分钟",files:"个文件",second:"秒",hour:"小时",day:"天",times:"次",appName:"文件快递柜 - FileCodeBox",appDescription:"开箱即用的文件快传系统"},admin:{dashboard:{title:"仪表盘",totalFiles:"总文件数",storageSpace:"存储空间",activeUsers:"活跃用户",systemStatus:"系统状态",yesterday:"昨天:",today:"今天:",weeklyChange:"↓ 5% 较上周",normal:"正常",serverUptime:"服务器运行时间:",version:"版本 v2.2.1 更新时间:2025-09-04"},fileManage:{title:"文件管理"},settings:{title:"系统设置",basicSettings:"基本设置",websiteInfo:"网站基本信息",websiteName:"网站名称",websiteDescription:"网站描述",siteName:"网站名称",adminPassword:"管理员密码",passwordPlaceholder:"如需修改请输入新密码",passwordNote:"不修改请留空",keywords:"SEO 关键词",themeSelection:"界面主题",robotsFile:"Robots.txt 配置",notificationSettings:"通知设置",notificationTitle:"公告标题",notificationContent:"公告内容",storageSettings:"存储配置",storagePath:"文件存储路径",storagePathPlaceholder:"使用默认路径可留空",storageMethod:"存储方式",localStorage:"本地存储",s3Storage:"S3 对象存储",webdavStorage:"WebDAV 存储",chunkUploadNote:"分片上传(实验性功能,大文件上传更稳定)",s3AccessKeyId:"Access Key ID",s3SecretAccessKey:"Secret Access Key",s3BucketName:"存储桶名称",s3EndpointUrl:"服务端点 URL",s3RegionName:"区域名称",s3SignatureVersion:"签名版本",s3Hostname:"自定义域名",s3v2:"S3v2",s3v4:"S3v4",autoPlaceholder:"自动识别",enabled:"已启用",disabled:"已禁用",webdavUrl:"输入 WebDAV 服务地址",webdavUsername:"输入 WebDAV 用户名",webdavPassword:"输入 WebDAV 密码",webdavUrlPlaceholder:"输入 WebDAV 服务地址",webdavUsernamePlaceholder:"输入 WebDAV 用户名",webdavPasswordPlaceholder:"输入 WebDAV 密码",enableProxy:"启用下载代理",uploadLimits:"上传设置",uploadRateLimit:"限流时间窗口(在此时间内限制上传次数)",uploadPerMinute:"限流时间窗口(在此时间内限制上传次数)",minute:"分钟",uploadCountLimit:"允许上传文件数(限流窗口内最多上传几个文件)",files:"个文件",fileSizeLimit:"单文件大小上限",expirationMethod:"过期方式",expirationType:"过期方式",expiration:{day:"按天数",hour:"按小时",minute:"按分钟",forever:"永久有效",count:"按下载次数"},maxSaveTime:"文件最长保存时间",timeUnits:{second:"秒",minute:"分钟",hour:"小时",day:"天"},guestUpload:"允许游客上传",errorLimits:"访问保护",errorRateLimit:"检测时间窗口(在此时间内统计错误次数)",errorPerMinute:"检测时间窗口(在此时间内统计错误次数)",errorCountLimit:"允许错误次数(超过后临时封禁)",times:"次",saveChanges:"保存设置",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"}}},nav:{sendFile:"发送文件",retrieveFile:"取件",fileRecords:"取件记录"},retrieve:{title:"文件取件",codeInput:{placeholder:"请输入5位取件码",label:"取件码"},submit:"取件",needSendFile:"需要发送文件?点击这里",recordsDrawer:"取件记录",messages:{invalidCode:"请输入5位取件码",retrieveSuccess:"文件获取成功",invalidCodeError:"无效的取件码",retrieveFailure:"获取文件失败:",networkError:"取件失败,请稍后重试:",unknownError:"未知错误"}},send:{title:"文件发送",sendText:"发送文本",fileDetails:"文件详情",expirationMethod:"过期方式",uploadArea:{dragText:"拖拽文件到此处或",clickText:"点击选择文件",textInput:"在此输入要发送的文本...",placeholder:"点击或拖放文件到此处上传",description:"支持各种常见格式"},submit:"安全寄送",needRetrieveFile:"需要取件?点击这里",sendRecords:"发件记录",secureEncryption:"安全加密",fileDetail:{title:"文件详情",content:"文件内容",previewContent:"预览内容",download:"点击下载",qrCode:"取件二维码",scanQrCode:"扫描二维码快速取件"},contentPreview:{title:"内容预览"},fileManage:{title:"文件管理",searchPlaceholder:"搜索文件名称、描述...",allFiles:"所有文件",editFileInfo:"编辑文件信息",saveChanges:"保存更改",headers:{code:"取件码",name:"名称",size:"大小",description:"描述",expiration:"过期时间",actions:"操作"},form:{code:"取件码",codePlaceholder:"输入取件码",filename:"文件名称",filenamePlaceholder:"输入文件名称",suffix:"文件后缀",suffixPlaceholder:"输入文件后缀",downloadLimit:"下载次数限制",downloadLimitPlaceholder:"输入下载次数限制"}},expiration:{label:"过期时间",placeholders:{days:"输入天数",hours:"输入小时数",minutes:"输入分钟数",count:"输入查看次数",forever:"永久",default:"输入值"},units:{days:"天",hours:"小时",minutes:"分钟",times:"次",forever:"永久"}},time:{day:"按天",hour:"按小时",minute:"按分钟",forever:"永久",count:"按次数"},messages:{selectFile:"请选择要上传的文件",enterText:"请输入要发送的文本",enterExpirationValue:"请输入过期值",expirationTooLong:"过期时间不能超过{days}天",sendSuccess:"文件发送成功!取件码:{code}",initChunkUploadFailed:"初始化切片上传失败",chunkUploadFailed:"切片 {index} 上传失败",completeUploadFailed:"完成上传失败",uploadFailed:"上传失败,请稍后重试",guestUploadDisabled:"游客上传功能已关闭",fileSizeExceeded:"文件大小超过限制 ({size})",serverError:"服务器响应异常",sendFailed:"发送失败,请稍后重试",expiresAfterCount:"{count}次后过期",expiresAt:"{date}过期",emptyFileError:"无法读取空文件",fileAddedFromClipboard:"已从剪贴板添加文件:{filename}",fileProcessingFailed:"文件处理失败",expiresAfter:"{value}{unit}后过期"}},fileManage:{title:"文件管理",searchPlaceholder:"搜索文件名称、描述...",allFiles:"所有文件",editFileInfo:"编辑文件信息",saveChanges:"保存更改",viewText:"查看",textPreview:"文本预览",copyText:"复制文本",copySuccess:"文本已复制到剪贴板",copyFailed:"复制失败,请重试",charCount:"共 {count} 个字符",headers:{code:"取件码",name:"名称",size:"大小",description:"描述",expiration:"过期时间",actions:"操作"},form:{code:"取件码",codePlaceholder:"输入取件码",filename:"文件名称",filenamePlaceholder:"输入文件名称",suffix:"文件后缀",suffixPlaceholder:"输入文件后缀",downloadLimit:"下载次数限制",downloadLimitPlaceholder:"输入下载次数限制"}},fileRecord:{filename:"文件名",size:"文件大小",date:"取件日期",code:"取件码",actions:"操作",download:"下载",viewDetails:"查看详情",deleteRecord:"删除记录",preview:"预览",copyContent:"复制内容",contentCopied:"内容已复制到剪贴板",copyFailed:"复制失败,请重试"},fileDetail:{title:"文件详情",content:"文件内容",previewContent:"预览内容",download:"点击下载",qrCode:"取件二维码",scanQrCode:"扫描二维码快速取件"},contentPreview:{title:"内容预览"},drawer:{noRecords:"暂无记录"},fileSize:{bytes:"Bytes",kb:"KB",mb:"MB",gb:"GB",tb:"TB"},manage:{settings:{title:"系统设置",basicSettings:"基本设置",siteName:"网站名称",adminPassword:"管理员密码",passwordPlaceholder:"如需修改请输入新密码",passwordNote:"不修改请留空",keywords:"SEO 关键词",themeSelection:"界面主题",robotsFile:"Robots.txt 配置",notificationSettings:"通知设置",notificationTitle:"公告标题",notificationContent:"公告内容",storageSettings:"存储配置",storagePath:"文件存储路径",storagePathPlaceholder:"使用默认路径可留空",storageMethod:"存储方式",localStorage:"本地存储",s3Storage:"S3 对象存储",webdavStorage:"WebDAV 存储",chunkUploadNote:"分片上传(实验性功能,大文件上传更稳定)",uploadLimits:"上传设置",uploadPerMinute:"限流时间窗口(在此时间内限制上传次数)",uploadCountLimit:"允许上传文件数(限流窗口内最多上传几个文件)",fileSizeLimit:"单文件大小上限",expiration:{day:"按天数",hour:"按小时",minute:"按分钟",forever:"永久有效",count:"按下载次数"},maxSaveTime:"文件最长保存时间",s3AccessKeyId:"Access Key ID",s3SecretAccessKey:"Secret Access Key",s3BucketName:"存储桶名称",s3EndpointUrl:"服务端点 URL",s3RegionName:"区域名称",s3SignatureVersion:"签名版本",s3Hostname:"自定义域名",s3v2:"S3v2",s3v4:"S3v4",autoPlaceholder:"自动识别",enableProxy:"启用下载代理",webdavUrlPlaceholder:"输入 WebDAV 服务地址",webdavUsernamePlaceholder:"输入 WebDAV 用户名",webdavPasswordPlaceholder:"输入 WebDAV 密码",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"},expirationType:"过期方式",guestUpload:"允许游客上传",errorLimits:"访问保护",errorPerMinute:"检测时间窗口(在此时间内统计错误次数)",errorCountLimit:"允许错误次数(超过后临时封禁)",saveChanges:"保存设置"},dashboard:{title:"仪表盘",totalFiles:"总文件数",storageSpace:"存储空间",activeUsers:"活跃用户",systemStatus:"系统状态",yesterday:"昨天:",today:"今天:",weeklyChange:"↓ 5% 较上周",normal:"正常",serverUptime:"服务器运行时间:",version:"版本 v2.2.1 更新时间:2025-09-04"},fileManage:{title:"文件管理",searchPlaceholder:"搜索文件名称、描述...",allFiles:"所有文件",editFileInfo:"编辑文件信息",saveChanges:"保存更改",headers:{code:"取件码",name:"名称",size:"大小",description:"描述",expiration:"过期时间",actions:"操作"},form:{code:"取件码",codePlaceholder:"输入取件码",filename:"文件名称",filenamePlaceholder:"输入文件名称",suffix:"文件后缀",suffixPlaceholder:"输入文件后缀",downloadLimit:"下载次数限制",downloadLimitPlaceholder:"输入下载次数限制"},updateFailed:"更新失败",deleteFailed:"删除失败",loadFileListFailed:"加载文件列表失败"},systemSettings:{title:"系统设置",basicSettings:"基本设置",websiteInfo:"网站基本信息",websiteName:"网站名称",websiteDescription:"网站描述",adminPassword:"管理员密码",passwordPlaceholder:"如需修改请输入新密码",passwordNote:"不修改请留空",keywords:"SEO 关键词",themeSelection:"界面主题",notificationSettings:"通知设置",notificationTitle:"公告标题",notificationContent:"公告内容",storageSettings:"存储配置",storagePath:"文件存储路径",storagePathPlaceholder:"使用默认路径可留空",storageMethod:"存储方式",localStorage:"本地存储",s3Storage:"S3 对象存储",webdavStorage:"WebDAV 存储",chunkUploadNote:"分片上传(实验性功能,大文件上传更稳定)",enabled:"已启用",disabled:"已禁用",webdavUrl:"输入 WebDAV 服务地址",webdavUsername:"输入 WebDAV 用户名",webdavPassword:"输入 WebDAV 密码",enableProxy:"启用下载代理",uploadLimits:"上传设置",uploadRateLimit:"限流时间窗口(在此时间内限制上传次数)",minute:"分钟",uploadCountLimit:"允许上传文件数(限流窗口内最多上传几个文件)",files:"个文件",fileSizeLimit:"单文件大小上限",expirationMethod:"过期方式",expirationMethods:{day:"按天数",hour:"按小时",minute:"按分钟",forever:"永久有效",count:"按下载次数"},expiration:{day:"按天数",hour:"按小时",minute:"按分钟",forever:"永久有效",count:"按下载次数"},maxSaveTime:"文件最长保存时间",timeUnits:{second:"秒",minute:"分钟",hour:"小时",day:"天"},guestUpload:"允许游客上传",errorLimits:"访问保护",errorRateLimit:"检测时间窗口(在此时间内统计错误次数)",errorCountLimit:"允许错误次数(超过后临时封禁)",times:"次",saveSettings:"保存设置",saveSuccess:"设置已保存",saveFailed:"保存失败,请重试",getConfigFailed:"获取配置失败,请刷新页面"},login:{title:"登录",password:"密码",passwordPlaceholder:"密码",loginButton:"登录",loggingIn:"登录中...",invalidPassword:"无效的密码",passwordTooShort:"密码长度至少为6位",loginFailed:"登录失败",noValidToken:"登录失败:未获取到有效令牌"}},utils:{common:{formatTime:"格式化时间戳为可读格式",formatFileSize:"格式化文件大小",formatDuration:"格式化持续时间",time:{forever:"永久",day:"天",hour:"小时",minute:"分钟",second:"秒"},copyToClipboard:"复制文本到剪贴板",copyFailed:"复制失败:",debounce:"防抖函数",throttle:"节流函数",validateEmail:"验证邮箱格式",validateUrl:"验证URL格式",generateRandomString:"生成随机字符串",deepClone:"深度克隆对象",getFileExtension:"获取文件扩展名",isMobileDevice:"检查是否为移动设备",formatNumber:"格式化数字,添加千分位分隔符"},clipboard:{title:"剪贴板工具函数",copyText:"复制文本到剪贴板",copySuccess:"复制成功",copyFailed:"复制失败,请手动复制"}},components:{pagination:{showing:"显示第",to:"到",of:"条,共",total:"条",previous:"上一页",next:"下一页"},languageSwitcher:{clickOutsideToClose:"点击外部关闭下拉菜单"},borderProgressBar:{borderWidth:"边框宽度",cornerRadius:"拐角半径",createGradient:"创建渐变",drawBackground:"绘制背景",calculateProgress:"计算进度",drawProgress:"绘制进度"}},misc:{emptyFileError:"无法读取空文件",fileAddedFromClipboard:"已从剪贴板添加文件:",fileProcessFailed:"文件处理失败",chunkSize:"保持 2MB 的切片大小用于计算哈希",secureContext:"如果不是安全上下文(HTTP),则返回一个基于文件信息的替代哈希",cryptoFallback:"如果 crypto.subtle.digest 失败,使用替代方案",generateAlternativeHash:"生成替代哈希的函数",fileInfoHash:"使用文件名、大小和最后修改时间生成一个简单的哈希",convertToHex:"转换为16进制字符串并填充到64位",defaultChunkSize:"默认切片大小为5MB",initChunkUpload:"1. 初始化切片上传",uploadChunk:"2. 上传切片",completeUpload:"3. 完成上传",chunkUploadFailed:"切片上传失败:",uploadProgressListener:"添加上传进度监听",noLimitCheck:"如果没有限制,直接返回true",expirationValidation:"添加过期时间验证",chunkUploadReplacement:"使用切片上传替代原来的直接上传",textUploadUnchanged:"文本上传保持不变",addSendRecord:"添加新的发送记录",permanent:"永久",sendSuccessMessage:"显示发送成功消息",resetForm:"重置表单 - 只重置文件和文本内容,保留过期信息",showDetails:"显示详情",autoCopyLink:"自动复制取件码链接",delayedLoading:"使用 onMounted 钩子延迟加载一些非关键资源或初始化",nonCriticalInit:"这里可以放置一些非立即需要的初始化代码"}},W_={common:{confirm:"Confirm",cancel:"Cancel",close:"Close",delete:"Delete",edit:"Edit",save:"Save",add:"Add",back:"Back",next:"Next",previous:"Previous",loading:"Loading...",noData:"No Data",success:"Success",error:"Error",warning:"Warning",info:"Information",search:"Search",copy:"Copy",uploadSuccess:"Upload successful",uploadFailed:"Upload failed",copySuccess:"Copy successful",copyFailed:"Copy failed",deleteSuccess:"Delete successful",deleteFailed:"Delete failed",downloadSuccess:"Download successful",downloadFailed:"Download failed",shareSuccess:"Share successful",shareFailed:"Share failed",expiredFile:"File has expired",fileNotFound:"File not found",networkError:"Network error",unknownError:"Unknown error",invalidFileType:"Invalid file type",fileTooLarge:"File too large",uploadCanceled:"Upload canceled",processing:"Processing",pleaseWait:"Please wait",fileDetails:"File Details",enabled:"Enabled",disabled:"Disabled",minute:"minute",files:"files",second:"second",hour:"hour",day:"day",times:"times",appName:"FileCodeBox - File Transfer",appDescription:"Ready-to-use file transfer system"},admin:{dashboard:{title:"Dashboard",totalFiles:"Total Files",storageSpace:"Storage Space",activeUsers:"Active Users",systemStatus:"System Status",yesterday:"Yesterday:",today:"Today:",weeklyChange:"↓ 5% from last week",normal:"Normal",serverUptime:"Server Uptime:",version:"Version v2.2.1 Updated: 2025-09-04"},fileManage:{title:"File Management"},settings:{title:"System Settings",basicSettings:"General",websiteInfo:"Site Information",websiteName:"Site Name",websiteDescription:"Site Description",siteName:"Site Name",adminPassword:"Admin Password",passwordPlaceholder:"Enter new password to change",passwordNote:"Leave empty to keep current",keywords:"SEO Keywords",themeSelection:"Theme",robotsFile:"Robots.txt Configuration",notificationSettings:"Notifications",notificationTitle:"Announcement Title",notificationContent:"Announcement Content",storageSettings:"Storage",storagePath:"Storage Path",storagePathPlaceholder:"Leave empty for default path",storageMethod:"Storage Type",localStorage:"Local Storage",s3Storage:"S3 Object Storage",webdavStorage:"WebDAV Storage",chunkUploadNote:"Chunked Upload (experimental, better for large files)",s3AccessKeyId:"Access Key ID",s3SecretAccessKey:"Secret Access Key",s3BucketName:"Bucket Name",s3EndpointUrl:"Endpoint URL",s3RegionName:"Region Name",s3SignatureVersion:"Signature Version",s3Hostname:"Custom Domain",s3v2:"S3v2",s3v4:"S3v4",autoPlaceholder:"Auto-detect",enabled:"Enabled",disabled:"Disabled",webdavUrl:"Enter WebDAV server URL",webdavUsername:"Enter WebDAV username",webdavPassword:"Enter WebDAV password",webdavUrlPlaceholder:"Enter WebDAV server URL",webdavUsernamePlaceholder:"Enter WebDAV username",webdavPasswordPlaceholder:"Enter WebDAV password",enableProxy:"Enable Download Proxy",uploadLimits:"Upload Settings",uploadRateLimit:"Time Window (limit uploads within this period)",uploadPerMinute:"Time Window (limit uploads within this period)",minute:"min",uploadCountLimit:"Max Files Allowed (within the time window)",files:"files",fileSizeLimit:"Max File Size",expirationMethod:"Expiration Options",expirationType:"Expiration Options",expiration:{day:"Days",hour:"Hours",minute:"Minutes",forever:"Never Expire",count:"Download Count"},maxSaveTime:"Max Retention Period",timeUnits:{second:"sec",minute:"min",hour:"hr",day:"day"},guestUpload:"Allow Guest Uploads",errorLimits:"Access Protection",errorRateLimit:"Detection Window (count errors within this period)",errorPerMinute:"Detection Window (count errors within this period)",errorCountLimit:"Max Errors Allowed (block after exceeding)",times:"times",saveChanges:"Save Settings",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"}}},nav:{sendFile:"Send File",retrieveFile:"Retrieve",fileRecords:"File Records"},retrieve:{title:"File Retrieval",codeInput:{placeholder:"Enter 5-digit retrieval code",label:"Retrieval Code"},submit:"Retrieve",needSendFile:"Need to send a file? Click here",recordsDrawer:"Retrieval Records",messages:{invalidCode:"Please enter a 5-digit retrieval code",retrieveSuccess:"File retrieved successfully",invalidCodeError:"Invalid retrieval code",retrieveFailure:"Failed to retrieve file: ",networkError:"Retrieval failed, please try again later: ",unknownError:"Unknown error"}},send:{title:"File Send",sendText:"Send Text",uploadArea:{dragText:"Drag files here or",clickText:"click to select files",textInput:"Enter text to send here...",placeholder:"Click or drag files here to upload",description:"Supports various common formats"},submit:"Secure Send",needRetrieveFile:"Need to retrieve? Click here",sendRecords:"Send Records",secureEncryption:"Secure Encryption",fileDetails:"File Details",expirationMethod:"Expiration Method",expiration:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count",label:"Expiration Time",placeholders:{days:"Enter days",hours:"Enter hours",minutes:"Enter minutes",count:"Enter view count",forever:"Forever",default:"Enter value"},units:{days:"days",hours:"hours",minutes:"minutes",times:"times",forever:"Forever"}},time:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count"},messages:{selectFile:"Please select a file to upload",enterText:"Please enter text to send",enterExpirationValue:"Please enter expiration value",expirationTooLong:"Expiration time cannot exceed {days} days",sendSuccess:"File sent successfully! Retrieve code: {code}",initChunkUploadFailed:"Failed to initialize chunk upload",chunkUploadFailed:"Chunk {index} upload failed",completeUploadFailed:"Failed to complete upload",uploadFailed:"Upload failed, please try again later",guestUploadDisabled:"Guest upload feature is disabled",fileSizeExceeded:"File size exceeds limit ({size})",serverError:"Server response error",sendFailed:"Send failed, please try again later",expiresAfterCount:"Expires after {count} times",expiresAt:"Expires at {date}",emptyFileError:"Cannot read empty file",fileAddedFromClipboard:"File added from clipboard: {filename}",fileProcessingFailed:"File processing failed",expiresAfter:"Expires after {value} {unit}"}},fileRecord:{filename:"Filename",size:"Size",date:"Date",code:"Code",actions:"Actions",download:"Download",viewDetails:"View Details",deleteRecord:"Delete Record",preview:"Preview",copyContent:"Copy Content",contentCopied:"Content copied to clipboard",copyFailed:"Copy failed, please try again"},fileDetail:{title:"File Details",content:"File Content",previewContent:"Preview Content",download:"Click to Download",qrCode:"Retrieve QR Code",scanQrCode:"Scan QR code for quick retrieval"},contentPreview:{title:"Content Preview"},fileManage:{title:"File Management",searchPlaceholder:"Search file name, description...",allFiles:"All Files",editFileInfo:"Edit File Information",saveChanges:"Save Changes",viewText:"View",textPreview:"Text Preview",copyText:"Copy Text",copySuccess:"Text copied to clipboard",copyFailed:"Copy failed, please try again",charCount:"{count} characters",headers:{code:"Retrieve Code",name:"Name",size:"Size",description:"Description",expiration:"Expiration",actions:"Actions"},form:{code:"Retrieve Code",codePlaceholder:"Enter retrieve code",filename:"File Name",filenamePlaceholder:"Enter file name",suffix:"File Extension",suffixPlaceholder:"Enter file extension",downloadLimit:"Download Limit",downloadLimitPlaceholder:"Enter download limit"}},drawer:{noRecords:"No records"},manage:{settings:{title:"System Settings",basicSettings:"General",websiteInfo:"Site Information",websiteName:"Site Name",websiteDescription:"Site Description",siteName:"Site Name",adminPassword:"Admin Password",passwordPlaceholder:"Enter new password to change",passwordNote:"Leave empty to keep current",keywords:"SEO Keywords",themeSelection:"Theme",notificationSettings:"Notifications",notificationTitle:"Announcement Title",notificationContent:"Announcement Content",storageSettings:"Storage",storagePath:"Storage Path",storagePathPlaceholder:"Leave empty for default path",storageMethod:"Storage Type",localStorage:"Local Storage",s3Storage:"S3 Object Storage",webdavStorage:"WebDAV Storage",chunkUploadNote:"Chunked Upload (experimental, better for large files)",enabled:"Enabled",disabled:"Disabled",webdavUrl:"Enter WebDAV server URL",webdavUsername:"Enter WebDAV username",webdavPassword:"Enter WebDAV password",webdavUrlPlaceholder:"Enter WebDAV server URL",webdavUsernamePlaceholder:"Enter WebDAV username",webdavPasswordPlaceholder:"Enter WebDAV password",enableProxy:"Enable Download Proxy",uploadLimits:"Upload Settings",uploadRateLimit:"Time Window (limit uploads within this period)",uploadPerMinute:"Time Window (limit uploads within this period)",minute:"min",uploadCountLimit:"Max Files Allowed (within the time window)",files:"files",fileSizeLimit:"Max File Size",expirationMethod:"Expiration Options",expirationType:"Expiration Options",expiration:{day:"Days",hour:"Hours",minute:"Minutes",forever:"Never Expire",count:"Download Count"},maxSaveTime:"Max Retention Period",timeUnits:{second:"sec",minute:"min",hour:"hr",day:"day"},guestUpload:"Allow Guest Uploads",errorLimits:"Access Protection",errorRateLimit:"Detection Window (count errors within this period)",errorPerMinute:"Detection Window (count errors within this period)",errorCountLimit:"Max Errors Allowed (block after exceeding)",times:"times",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"},saveChanges:"Save Settings"},systemSettings:{title:"System Settings",basicSettings:"General",websiteInfo:"Site Information",websiteName:"Site Name",websiteDescription:"Site Description",adminPassword:"Admin Password",passwordPlaceholder:"Enter new password to change",passwordNote:"Leave empty to keep current",keywords:"SEO Keywords",themeSelection:"Theme",notificationSettings:"Notifications",notificationTitle:"Announcement Title",notificationContent:"Announcement Content",storageSettings:"Storage",storagePath:"Storage Path",storagePathPlaceholder:"Leave empty for default path",storageMethod:"Storage Type",localStorage:"Local Storage",s3Storage:"S3 Object Storage",webdavStorage:"WebDAV Storage",chunkUploadNote:"Chunked Upload (experimental, better for large files)",enabled:"Enabled",disabled:"Disabled",webdavUrl:"Enter WebDAV server URL",webdavUsername:"Enter WebDAV username",webdavPassword:"Enter WebDAV password",enableProxy:"Enable Download Proxy",uploadLimits:"Upload Settings",uploadRateLimit:"Time Window (limit uploads within this period)",minute:"min",uploadCountLimit:"Max Files Allowed (within the time window)",files:"files",fileSizeLimit:"Max File Size",expirationMethod:"Expiration Options",expirationMethods:{day:"Days",hour:"Hours",minute:"Minutes",forever:"Never Expire",count:"Download Count"},expiration:{day:"Days",hour:"Hours",minute:"Minutes",forever:"Never Expire",count:"Download Count"},maxSaveTime:"Max Retention Period",timeUnits:{second:"sec",minute:"min",hour:"hr",day:"day"},guestUpload:"Allow Guest Uploads",errorLimits:"Access Protection",errorRateLimit:"Detection Window (count errors within this period)",errorCountLimit:"Max Errors Allowed (block after exceeding)",times:"times",saveSettings:"Save Settings",saveSuccess:"Settings saved successfully",saveFailed:"Failed to save, please try again",getConfigFailed:"Failed to load settings, please refresh"},dashboard:{title:"Dashboard",totalFiles:"Total Files",storageSpace:"Storage Space",activeUsers:"Active Users",systemStatus:"System Status",yesterday:"Yesterday:",today:"Today:",weeklyChange:"↓ 5% from last week",normal:"Normal",serverUptime:"Server Uptime:",version:"Version v2.2.1 Updated: 2025-09-04"},fileManage:{title:"File Management",searchPlaceholder:"Search file name, description...",allFiles:"All Files",editFileInfo:"Edit File Info",saveChanges:"Save Changes",headers:{code:"Code",name:"Name",size:"Size",description:"Description",expiration:"Expiration",actions:"Actions"},form:{code:"Code",codePlaceholder:"Enter code",filename:"File Name",filenamePlaceholder:"Enter file name",suffix:"File Suffix",suffixPlaceholder:"Enter file suffix",downloadLimit:"Download Limit",downloadLimitPlaceholder:"Enter download limit"},updateFailed:"Update failed",deleteFailed:"Delete failed",loadFileListFailed:"Failed to load file list"},login:{title:"Login",password:"Password",passwordPlaceholder:"Password",loginButton:"Login",loggingIn:"Logging in...",invalidPassword:"Invalid password",passwordTooShort:"Password must be at least 6 characters",loginFailed:"Login failed",noValidToken:"Login failed: No valid token received"}},fileSize:{bytes:"Bytes",kb:"KB",mb:"MB",gb:"GB",tb:"TB"},utils:{formatTime:"Format timestamp to readable format",formatFileSize:"Format file size",formatDuration:"Format duration",time:{forever:"Forever",day:"day",hour:"hour",minute:"minute",second:"second"},copyToClipboard:"Copy text to clipboard",copyFailed:"Copy failed:",debounce:"Debounce function",throttle:"Throttle function",validateEmail:"Validate email format",validateUrl:"Validate URL format",generateRandomString:"Generate random string",deepClone:"Deep clone object",getFileExtension:"Get file extension",isMobileDevice:"Check if mobile device",formatNumber:"Format number with thousand separators",clipboard:{title:"Clipboard utility functions",copyText:"Copy text to clipboard",copySuccess:"Copy successful",copyFailed:"Copy failed, please copy manually"}},components:{pagination:{showing:"Showing",to:"to",of:"of",total:"total",previous:"Previous",next:"Next"},languageSwitcher:{clickOutsideToClose:"Click outside to close dropdown menu"},borderProgressBar:{borderWidth:"Border width",cornerRadius:"Corner radius",createGradient:"Create gradient",drawBackground:"Draw background",calculateProgress:"Calculate progress",drawProgress:"Draw progress"}},misc:{emptyFileError:"Cannot read empty file",fileAddedFromClipboard:"File added from clipboard: ",fileProcessFailed:"File processing failed",chunkSize:"Keep 2MB chunk size for hash calculation",secureContext:"If not in secure context (HTTP), return an alternative hash based on file info",cryptoFallback:"If crypto.subtle.digest fails, use fallback method",generateAlternativeHash:"Function to generate alternative hash",fileInfoHash:"Generate simple hash using filename, size and last modified time",convertToHex:"Convert to hex string and pad to 64 bits",defaultChunkSize:"Default chunk size is 5MB",initChunkUpload:"1. Initialize chunk upload",uploadChunk:"2. Upload chunk",completeUpload:"3. Complete upload",chunkUploadFailed:"Chunk upload failed: ",uploadProgressListener:"Add upload progress listener",noLimitCheck:"If no limit, return true directly",expirationValidation:"Add expiration time validation",chunkUploadReplacement:"Use chunk upload to replace direct upload",textUploadUnchanged:"Text upload remains unchanged",addSendRecord:"Add new send record",permanent:"Permanent",sendSuccessMessage:"Show send success message",resetForm:"Reset form - only reset file and text content, keep expiration info",showDetails:"Show details",autoCopyLink:"Auto copy retrieve code link",delayedLoading:"Use onMounted hook to delay load non-critical resources or initialization",nonCriticalInit:"Place non-immediately needed initialization code here"}},B_=()=>{const e=localStorage.getItem("locale");return e||(navigator.language.toLowerCase().startsWith("zh")?"zh-CN":"en-US")},j_={"zh-CN":H_,"en-US":W_},tf=R_({legacy:!1,locale:B_(),fallbackLocale:"zh-CN",messages:j_,globalInjection:!0}),K_=e=>{tf.global.locale.value=e,localStorage.setItem("locale",e),document.documentElement.lang=e},ho=[{code:"zh-CN",name:"中文"},{code:"en-US",name:"English"}],G_={class:"relative"},Y_={class:"text-sm font-medium"},q_={class:"py-1"},z_=["onClick"],X_=Xt({__name:"LanguageSwitcher",setup(e){const{locale:t}=Hr(),n=et("isDarkMode"),r=it(!1),s=Ee(()=>t.value),o=Ee(()=>ho.find(c=>c.code===s.value)||ho[0]),i=()=>{r.value=!r.value},a=c=>{K_(c),r.value=!1},l=c=>{c.target.closest(".relative")||(r.value=!1)};return er(()=>{document.addEventListener("click",l)}),tr(()=>{document.removeEventListener("click",l)}),(c,u)=>(Ke(),jt("div",G_,[We("button",{onClick:i,class:Nt(["flex items-center space-x-2 px-3 py-2 rounded-lg transition-all duration-200",Te(n)?"bg-gray-800/60 hover:bg-gray-700/80 text-gray-300 hover:text-white":"bg-gray-100 hover:bg-gray-200 text-gray-700 hover:text-gray-900"])},[Oe(Te(Lm),{class:"w-4 h-4"}),We("span",Y_,Er(o.value.name),1),Oe(Te(wm),{class:Nt(["w-4 h-4 transition-transform duration-200",{"rotate-180":r.value}])},null,8,["class"])],2),Oe(Qc,{"enter-active-class":"transition ease-out duration-200","enter-from-class":"opacity-0 scale-95","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition ease-in duration-150","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-95"},{default:Tr(()=>[r.value?(Ke(),jt("div",{key:0,class:Nt(["absolute right-0 mt-2 w-32 rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 z-50",Te(n)?"bg-gray-800 border border-gray-700":"bg-white border border-gray-200"])},[We("div",q_,[(Ke(!0),jt(Ue,null,Cc(Te(ho),f=>(Ke(),jt("button",{key:f.code,onClick:d=>a(f.code),class:Nt(["w-full text-left px-4 py-2 text-sm transition-colors duration-150",s.value===f.code?Te(n)?"bg-indigo-600 text-white":"bg-indigo-50 text-indigo-600":Te(n)?"text-gray-300 hover:bg-gray-700 hover:text-white":"text-gray-700 hover:bg-gray-100"])},Er(f.name),11,z_))),128))])],2)):Gc("",!0)]),_:1})]))}}),dl={COLOR_MODE:"colorMode",ADMIN_PASSWORD:"adminPassword",TOKEN:"token",CONFIG:"config",NOTIFY:"notify"},He={LIGHT:"light",DARK:"dark",SYSTEM:"system"},nE={IDLE:"idle",UPLOADING:"uploading",SUCCESS:"success",ERROR:"error"},rE={MAX_FILE_SIZE:100*1024*1024},nf={ALERT_DURATION:5e3,REQUEST_TIMEOUT:3e8},rf=dp("alert",{state:()=>({alerts:[]}),actions:{showAlert(e,t="info",n=nf.ALERT_DURATION){const r=Date.now(),s=Date.now();this.alerts.push({id:r,message:e,type:t,progress:100,duration:n,startTime:s}),setTimeout(()=>this.removeAlert(r),n)},removeAlert(e){const t=this.alerts.findIndex(n=>n.id===e);t>-1&&this.alerts.splice(t,1)},updateAlertProgress(e){const t=this.alerts.find(n=>n.id===e);if(t){const r=100-(Date.now()-t.startTime)/t.duration*100;t.progress=Math.max(0,r),t.progress<=0&&this.removeAlert(e)}}}}),J_={class:"p-4"},Q_={class:"flex items-start"},Z_={class:"flex-shrink-0"},ey={class:"ml-3 flex-1 pt-0.5"},ty={class:"text-sm font-medium text-white"},ny={class:"ml-4 flex-shrink-0 flex"},ry=["onClick"],sy={class:"sr-only"},oy={class:"h-1 bg-white bg-opacity-25"},iy=Xt({__name:"AlertComponent",setup(e){const{t}=Hr(),n=rf(),{alerts:r}=hp(n),{removeAlert:s,updateAlertProgress:o}=n,i={success:"from-green-500 to-green-600",error:"from-red-500 to-red-600",warning:"from-yellow-500 to-yellow-600",info:"from-blue-500 to-blue-600"},a={success:Cm,error:Rm,warning:Tm,info:Pm};let l;return er(()=>{l=setInterval(()=>{r.value.forEach(c=>{o(c.id)})},100)}),tr(()=>{clearInterval(l)}),(c,u)=>(Ke(),dn(Gh,{name:"alert-fade",tag:"div",class:"fixed top-4 left-4 z-50 w-full sm:max-w-sm md:max-w-md space-y-4 px-4 sm:px-0"},{default:Tr(()=>[(Ke(!0),jt(Ue,null,Cc(Te(r),f=>(Ke(),jt("div",{key:f.id,class:Nt(["w-full rounded-lg shadow-xl overflow-hidden","bg-gradient-to-r",i[f.type]])},[We("div",J_,[We("div",Q_,[We("div",Z_,[(Ke(),dn(wc(a[f.type]),{class:"h-6 w-6 text-white"}))]),We("div",ey,[We("p",ty,Er(f.message),1)]),We("div",ny,[We("button",{onClick:d=>Te(s)(f.id),class:"inline-flex text-white hover:text-gray-200 focus:outline-none transition-colors duration-200"},[We("span",sy,Er(Te(t)("common.close")),1),Oe(Te(Nm),{class:"h-5 w-5"})],8,ry)])])]),We("div",oy,[We("div",{class:"h-full bg-white transition-all duration-100 ease-out",style:Cs({width:`${f.progress}%`})},null,4)])],2))),128))]),_:1}))}}),ay=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},ly=ay(iy,[["__scopeId","data-v-59f86e5f"]]);function sf(e,t){return function(){return e.apply(t,arguments)}}const{toString:cy}=Object.prototype,{getPrototypeOf:Ei}=Object,{iterator:Vs,toStringTag:of}=Symbol,Hs=(e=>t=>{const n=cy.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Tt=e=>(e=e.toLowerCase(),t=>Hs(t)===e),Ws=e=>t=>typeof t===e,{isArray:rr}=Array,Qn=Ws("undefined");function Wr(e){return e!==null&&!Qn(e)&&e.constructor!==null&&!Qn(e.constructor)&&at(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const af=Tt("ArrayBuffer");function uy(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&af(e.buffer),t}const fy=Ws("string"),at=Ws("function"),lf=Ws("number"),Br=e=>e!==null&&typeof e=="object",dy=e=>e===!0||e===!1,ss=e=>{if(Hs(e)!=="object")return!1;const t=Ei(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(of in e)&&!(Vs in e)},hy=e=>{if(!Br(e)||Wr(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},py=Tt("Date"),my=Tt("File"),gy=Tt("Blob"),_y=Tt("FileList"),yy=e=>Br(e)&&at(e.pipe),by=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||at(e.append)&&((t=Hs(e))==="formdata"||t==="object"&&at(e.toString)&&e.toString()==="[object FormData]"))},Ey=Tt("URLSearchParams"),[vy,Sy,wy,Ty]=["ReadableStream","Request","Response","Headers"].map(Tt),Cy=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function jr(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),rr(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const On=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,uf=e=>!Qn(e)&&e!==On;function Ho(){const{caseless:e,skipUndefined:t}=uf(this)&&this||{},n={},r=(s,o)=>{const i=e&&cf(n,o)||o;ss(n[i])&&ss(s)?n[i]=Ho(n[i],s):ss(s)?n[i]=Ho({},s):rr(s)?n[i]=s.slice():(!t||!Qn(s))&&(n[i]=s)};for(let s=0,o=arguments.length;s(jr(t,(s,o)=>{n&&at(s)?e[o]=sf(s,n):e[o]=s},{allOwnKeys:r}),e),Py=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Ay=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},Oy=(e,t,n,r)=>{let s,o,i;const a={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!a[i]&&(t[i]=e[i],a[i]=!0);e=n!==!1&&Ei(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Ry=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},Ny=e=>{if(!e)return null;if(rr(e))return e;let t=e.length;if(!lf(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},Iy=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&Ei(Uint8Array)),xy=(e,t)=>{const r=(e&&e[Vs]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},ky=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Fy=Tt("HTMLFormElement"),Dy=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),hl=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),My=Tt("RegExp"),ff=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};jr(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},Uy=e=>{ff(e,(t,n)=>{if(at(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(at(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},$y=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return rr(e)?r(e):r(String(e).split(t)),n},Vy=()=>{},Hy=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Wy(e){return!!(e&&at(e.append)&&e[of]==="FormData"&&e[Vs])}const By=e=>{const t=new Array(10),n=(r,s)=>{if(Br(r)){if(t.indexOf(r)>=0)return;if(Wr(r))return r;if(!("toJSON"in r)){t[s]=r;const o=rr(r)?[]:{};return jr(r,(i,a)=>{const l=n(i,s+1);!Qn(l)&&(o[a]=l)}),t[s]=void 0,o}}return r};return n(e,0)},jy=Tt("AsyncFunction"),Ky=e=>e&&(Br(e)||at(e))&&at(e.then)&&at(e.catch),df=((e,t)=>e?setImmediate:t?((n,r)=>(On.addEventListener("message",({source:s,data:o})=>{s===On&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),On.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",at(On.postMessage)),Gy=typeof queueMicrotask<"u"?queueMicrotask.bind(On):typeof process<"u"&&process.nextTick||df,Yy=e=>e!=null&&at(e[Vs]),A={isArray:rr,isArrayBuffer:af,isBuffer:Wr,isFormData:by,isArrayBufferView:uy,isString:fy,isNumber:lf,isBoolean:dy,isObject:Br,isPlainObject:ss,isEmptyObject:hy,isReadableStream:vy,isRequest:Sy,isResponse:wy,isHeaders:Ty,isUndefined:Qn,isDate:py,isFile:my,isBlob:gy,isRegExp:My,isFunction:at,isStream:yy,isURLSearchParams:Ey,isTypedArray:Iy,isFileList:_y,forEach:jr,merge:Ho,extend:Ly,trim:Cy,stripBOM:Py,inherits:Ay,toFlatObject:Oy,kindOf:Hs,kindOfTest:Tt,endsWith:Ry,toArray:Ny,forEachEntry:xy,matchAll:ky,isHTMLForm:Fy,hasOwnProperty:hl,hasOwnProp:hl,reduceDescriptors:ff,freezeMethods:Uy,toObjectSet:$y,toCamelCase:Dy,noop:Vy,toFiniteNumber:Hy,findKey:cf,global:On,isContextDefined:uf,isSpecCompliantForm:Wy,toJSONObject:By,isAsyncFn:jy,isThenable:Ky,setImmediate:df,asap:Gy,isIterable:Yy};function ie(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}A.inherits(ie,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:A.toJSONObject(this.config),code:this.code,status:this.status}}});const hf=ie.prototype,pf={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{pf[e]={value:e}});Object.defineProperties(ie,pf);Object.defineProperty(hf,"isAxiosError",{value:!0});ie.from=(e,t,n,r,s,o)=>{const i=Object.create(hf);A.toFlatObject(e,i,function(u){return u!==Error.prototype},c=>c!=="isAxiosError");const a=e&&e.message?e.message:"Error",l=t==null&&e?e.code:t;return ie.call(i,a,l,n,r,s),e&&i.cause==null&&Object.defineProperty(i,"cause",{value:e,configurable:!0}),i.name=e&&e.name||"Error",o&&Object.assign(i,o),i};const qy=null;function Wo(e){return A.isPlainObject(e)||A.isArray(e)}function mf(e){return A.endsWith(e,"[]")?e.slice(0,-2):e}function pl(e,t,n){return e?e.concat(t).map(function(s,o){return s=mf(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function zy(e){return A.isArray(e)&&!e.some(Wo)}const Xy=A.toFlatObject(A,{},null,function(t){return/^is[A-Z]/.test(t)});function Bs(e,t,n){if(!A.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=A.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(S,w){return!A.isUndefined(w[S])});const r=n.metaTokens,s=n.visitor||u,o=n.dots,i=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&A.isSpecCompliantForm(t);if(!A.isFunction(s))throw new TypeError("visitor must be a function");function c(y){if(y===null)return"";if(A.isDate(y))return y.toISOString();if(A.isBoolean(y))return y.toString();if(!l&&A.isBlob(y))throw new ie("Blob is not supported. Use a Buffer instead.");return A.isArrayBuffer(y)||A.isTypedArray(y)?l&&typeof Blob=="function"?new Blob([y]):Buffer.from(y):y}function u(y,S,w){let R=y;if(y&&!w&&typeof y=="object"){if(A.endsWith(S,"{}"))S=r?S:S.slice(0,-2),y=JSON.stringify(y);else if(A.isArray(y)&&zy(y)||(A.isFileList(y)||A.endsWith(S,"[]"))&&(R=A.toArray(y)))return S=mf(S),R.forEach(function(E,v){!(A.isUndefined(E)||E===null)&&t.append(i===!0?pl([S],v,o):i===null?S:S+"[]",c(E))}),!1}return Wo(y)?!0:(t.append(pl(w,S,o),c(y)),!1)}const f=[],d=Object.assign(Xy,{defaultVisitor:u,convertValue:c,isVisitable:Wo});function m(y,S){if(!A.isUndefined(y)){if(f.indexOf(y)!==-1)throw Error("Circular reference detected in "+S.join("."));f.push(y),A.forEach(y,function(R,D){(!(A.isUndefined(R)||R===null)&&s.call(t,R,A.isString(D)?D.trim():D,S,d))===!0&&m(R,S?S.concat(D):[D])}),f.pop()}}if(!A.isObject(e))throw new TypeError("data must be an object");return m(e),t}function ml(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function vi(e,t){this._pairs=[],e&&Bs(e,this,t)}const gf=vi.prototype;gf.append=function(t,n){this._pairs.push([t,n])};gf.toString=function(t){const n=t?function(r){return t.call(this,r,ml)}:ml;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Jy(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function _f(e,t,n){if(!t)return e;const r=n&&n.encode||Jy;A.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=A.isURLSearchParams(t)?t.toString():new vi(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class gl{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){A.forEach(this.handlers,function(r){r!==null&&t(r)})}}const yf={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Qy=typeof URLSearchParams<"u"?URLSearchParams:vi,Zy=typeof FormData<"u"?FormData:null,eb=typeof Blob<"u"?Blob:null,tb={isBrowser:!0,classes:{URLSearchParams:Qy,FormData:Zy,Blob:eb},protocols:["http","https","file","blob","url","data"]},Si=typeof window<"u"&&typeof document<"u",Bo=typeof navigator=="object"&&navigator||void 0,nb=Si&&(!Bo||["ReactNative","NativeScript","NS"].indexOf(Bo.product)<0),rb=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",sb=Si&&window.location.href||"http://localhost",ob=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Si,hasStandardBrowserEnv:nb,hasStandardBrowserWebWorkerEnv:rb,navigator:Bo,origin:sb},Symbol.toStringTag,{value:"Module"})),Ze={...ob,...tb};function ib(e,t){return Bs(e,new Ze.classes.URLSearchParams,{visitor:function(n,r,s,o){return Ze.isNode&&A.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function ab(e){return A.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function lb(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&A.isArray(s)?s.length:i,l?(A.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!a):((!s[i]||!A.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&A.isArray(s[i])&&(s[i]=lb(s[i])),!a)}if(A.isFormData(e)&&A.isFunction(e.entries)){const n={};return A.forEachEntry(e,(r,s)=>{t(ab(r),s,n,0)}),n}return null}function cb(e,t,n){if(A.isString(e))try{return(t||JSON.parse)(e),A.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Kr={transitional:yf,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=A.isObject(t);if(o&&A.isHTMLForm(t)&&(t=new FormData(t)),A.isFormData(t))return s?JSON.stringify(bf(t)):t;if(A.isArrayBuffer(t)||A.isBuffer(t)||A.isStream(t)||A.isFile(t)||A.isBlob(t)||A.isReadableStream(t))return t;if(A.isArrayBufferView(t))return t.buffer;if(A.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return ib(t,this.formSerializer).toString();if((a=A.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Bs(a?{"files[]":t}:t,l&&new l,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),cb(t)):t}],transformResponse:[function(t){const n=this.transitional||Kr.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(A.isResponse(t)||A.isReadableStream(t))return t;if(t&&A.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t,this.parseReviver)}catch(a){if(i)throw a.name==="SyntaxError"?ie.from(a,ie.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ze.classes.FormData,Blob:Ze.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};A.forEach(["delete","get","head","post","put","patch"],e=>{Kr.headers[e]={}});const ub=A.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),fb=e=>{const t={};let n,r,s;return e&&e.split(` -`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&ub[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},_l=Symbol("internals");function cr(e){return e&&String(e).trim().toLowerCase()}function os(e){return e===!1||e==null?e:A.isArray(e)?e.map(os):String(e)}function db(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const hb=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function po(e,t,n,r,s){if(A.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!A.isString(t)){if(A.isString(r))return t.indexOf(r)!==-1;if(A.isRegExp(r))return r.test(t)}}function pb(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function mb(e,t){const n=A.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let lt=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(a,l,c){const u=cr(l);if(!u)throw new Error("header name must be a non-empty string");const f=A.findKey(s,u);(!f||s[f]===void 0||c===!0||c===void 0&&s[f]!==!1)&&(s[f||l]=os(a))}const i=(a,l)=>A.forEach(a,(c,u)=>o(c,u,l));if(A.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(A.isString(t)&&(t=t.trim())&&!hb(t))i(fb(t),n);else if(A.isObject(t)&&A.isIterable(t)){let a={},l,c;for(const u of t){if(!A.isArray(u))throw TypeError("Object iterator must return a key-value pair");a[c=u[0]]=(l=a[c])?A.isArray(l)?[...l,u[1]]:[l,u[1]]:u[1]}i(a,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=cr(t),t){const r=A.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return db(s);if(A.isFunction(n))return n.call(this,s,r);if(A.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=cr(t),t){const r=A.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||po(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=cr(i),i){const a=A.findKey(r,i);a&&(!n||po(r,r[a],a,n))&&(delete r[a],s=!0)}}return A.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||po(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return A.forEach(this,(s,o)=>{const i=A.findKey(r,o);if(i){n[i]=os(s),delete n[o];return}const a=t?pb(o):String(o).trim();a!==o&&delete n[o],n[a]=os(s),r[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return A.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&A.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[_l]=this[_l]={accessors:{}}).accessors,s=this.prototype;function o(i){const a=cr(i);r[a]||(mb(s,i),r[a]=!0)}return A.isArray(t)?t.forEach(o):o(t),this}};lt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);A.reduceDescriptors(lt.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});A.freezeMethods(lt);function mo(e,t){const n=this||Kr,r=t||n,s=lt.from(r.headers);let o=r.data;return A.forEach(e,function(a){o=a.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Ef(e){return!!(e&&e.__CANCEL__)}function sr(e,t,n){ie.call(this,e??"canceled",ie.ERR_CANCELED,t,n),this.name="CanceledError"}A.inherits(sr,ie,{__CANCEL__:!0});function vf(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new ie("Request failed with status code "+n.status,[ie.ERR_BAD_REQUEST,ie.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function gb(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function _b(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(l){const c=Date.now(),u=r[o];i||(i=c),n[s]=l,r[s]=c;let f=o,d=0;for(;f!==s;)d+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),c-i{n=u,s=null,o&&(clearTimeout(o),o=null),e(...c)};return[(...c)=>{const u=Date.now(),f=u-n;f>=r?i(c,u):(s=c,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const Es=(e,t,n=3)=>{let r=0;const s=_b(50,250);return yb(o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,l=i-r,c=s(l),u=i<=a;r=i;const f={loaded:i,total:a,progress:a?i/a:void 0,bytes:l,rate:c||void 0,estimated:c&&a&&u?(a-i)/c:void 0,event:o,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(f)},n)},yl=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},bl=e=>(...t)=>A.asap(()=>e(...t)),bb=Ze.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Ze.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Ze.origin),Ze.navigator&&/(msie|trident)/i.test(Ze.navigator.userAgent)):()=>!0,Eb=Ze.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const a=[`${e}=${encodeURIComponent(t)}`];A.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),A.isString(r)&&a.push(`path=${r}`),A.isString(s)&&a.push(`domain=${s}`),o===!0&&a.push("secure"),A.isString(i)&&a.push(`SameSite=${i}`),document.cookie=a.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function vb(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Sb(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Sf(e,t,n){let r=!vb(t);return e&&(r||n==!1)?Sb(e,t):t}const El=e=>e instanceof lt?{...e}:e;function Fn(e,t){t=t||{};const n={};function r(c,u,f,d){return A.isPlainObject(c)&&A.isPlainObject(u)?A.merge.call({caseless:d},c,u):A.isPlainObject(u)?A.merge({},u):A.isArray(u)?u.slice():u}function s(c,u,f,d){if(A.isUndefined(u)){if(!A.isUndefined(c))return r(void 0,c,f,d)}else return r(c,u,f,d)}function o(c,u){if(!A.isUndefined(u))return r(void 0,u)}function i(c,u){if(A.isUndefined(u)){if(!A.isUndefined(c))return r(void 0,c)}else return r(void 0,u)}function a(c,u,f){if(f in t)return r(c,u);if(f in e)return r(void 0,c)}const l={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(c,u,f)=>s(El(c),El(u),f,!0)};return A.forEach(Object.keys({...e,...t}),function(u){const f=l[u]||s,d=f(e[u],t[u],u);A.isUndefined(d)&&f!==a||(n[u]=d)}),n}const wf=e=>{const t=Fn({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:a}=t;if(t.headers=i=lt.from(i),t.url=_f(Sf(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),a&&i.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),A.isFormData(n)){if(Ze.hasStandardBrowserEnv||Ze.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(A.isFunction(n.getHeaders)){const l=n.getHeaders(),c=["content-type","content-length"];Object.entries(l).forEach(([u,f])=>{c.includes(u.toLowerCase())&&i.set(u,f)})}}if(Ze.hasStandardBrowserEnv&&(r&&A.isFunction(r)&&(r=r(t)),r||r!==!1&&bb(t.url))){const l=s&&o&&Eb.read(o);l&&i.set(s,l)}return t},wb=typeof XMLHttpRequest<"u",Tb=wb&&function(e){return new Promise(function(n,r){const s=wf(e);let o=s.data;const i=lt.from(s.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:c}=s,u,f,d,m,y;function S(){m&&m(),y&&y(),s.cancelToken&&s.cancelToken.unsubscribe(u),s.signal&&s.signal.removeEventListener("abort",u)}let w=new XMLHttpRequest;w.open(s.method.toUpperCase(),s.url,!0),w.timeout=s.timeout;function R(){if(!w)return;const E=lt.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),O={data:!a||a==="text"||a==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:E,config:e,request:w};vf(function(x){n(x),S()},function(x){r(x),S()},O),w=null}"onloadend"in w?w.onloadend=R:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout(R)},w.onabort=function(){w&&(r(new ie("Request aborted",ie.ECONNABORTED,e,w)),w=null)},w.onerror=function(v){const O=v&&v.message?v.message:"Network Error",N=new ie(O,ie.ERR_NETWORK,e,w);N.event=v||null,r(N),w=null},w.ontimeout=function(){let v=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const O=s.transitional||yf;s.timeoutErrorMessage&&(v=s.timeoutErrorMessage),r(new ie(v,O.clarifyTimeoutError?ie.ETIMEDOUT:ie.ECONNABORTED,e,w)),w=null},o===void 0&&i.setContentType(null),"setRequestHeader"in w&&A.forEach(i.toJSON(),function(v,O){w.setRequestHeader(O,v)}),A.isUndefined(s.withCredentials)||(w.withCredentials=!!s.withCredentials),a&&a!=="json"&&(w.responseType=s.responseType),c&&([d,y]=Es(c,!0),w.addEventListener("progress",d)),l&&w.upload&&([f,m]=Es(l),w.upload.addEventListener("progress",f),w.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(u=E=>{w&&(r(!E||E.type?new sr(null,e,w):E),w.abort(),w=null)},s.cancelToken&&s.cancelToken.subscribe(u),s.signal&&(s.signal.aborted?u():s.signal.addEventListener("abort",u)));const D=gb(s.url);if(D&&Ze.protocols.indexOf(D)===-1){r(new ie("Unsupported protocol "+D+":",ie.ERR_BAD_REQUEST,e));return}w.send(o||null)})},Cb=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(c){if(!s){s=!0,a();const u=c instanceof Error?c:this.reason;r.abort(u instanceof ie?u:new sr(u instanceof Error?u.message:u))}};let i=t&&setTimeout(()=>{i=null,o(new ie(`timeout ${t} of ms exceeded`,ie.ETIMEDOUT))},t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(o):c.removeEventListener("abort",o)}),e=null)};e.forEach(c=>c.addEventListener("abort",o));const{signal:l}=r;return l.unsubscribe=()=>A.asap(a),l}},Lb=function*(e,t){let n=e.byteLength;if(n{const s=Pb(e,t);let o=0,i,a=l=>{i||(i=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await s.next();if(c){a(),l.close();return}let f=u.byteLength;if(n){let d=o+=f;n(d)}l.enqueue(new Uint8Array(u))}catch(c){throw a(c),c}},cancel(l){return a(l),s.return()}},{highWaterMark:2})},Sl=64*1024,{isFunction:Zr}=A,Ob=(({Request:e,Response:t})=>({Request:e,Response:t}))(A.global),{ReadableStream:wl,TextEncoder:Tl}=A.global,Cl=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Rb=e=>{e=A.merge.call({skipUndefined:!0},Ob,e);const{fetch:t,Request:n,Response:r}=e,s=t?Zr(t):typeof fetch=="function",o=Zr(n),i=Zr(r);if(!s)return!1;const a=s&&Zr(wl),l=s&&(typeof Tl=="function"?(y=>S=>y.encode(S))(new Tl):async y=>new Uint8Array(await new n(y).arrayBuffer())),c=o&&a&&Cl(()=>{let y=!1;const S=new n(Ze.origin,{body:new wl,method:"POST",get duplex(){return y=!0,"half"}}).headers.has("Content-Type");return y&&!S}),u=i&&a&&Cl(()=>A.isReadableStream(new r("").body)),f={stream:u&&(y=>y.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(y=>{!f[y]&&(f[y]=(S,w)=>{let R=S&&S[y];if(R)return R.call(S);throw new ie(`Response type '${y}' is not supported`,ie.ERR_NOT_SUPPORT,w)})});const d=async y=>{if(y==null)return 0;if(A.isBlob(y))return y.size;if(A.isSpecCompliantForm(y))return(await new n(Ze.origin,{method:"POST",body:y}).arrayBuffer()).byteLength;if(A.isArrayBufferView(y)||A.isArrayBuffer(y))return y.byteLength;if(A.isURLSearchParams(y)&&(y=y+""),A.isString(y))return(await l(y)).byteLength},m=async(y,S)=>{const w=A.toFiniteNumber(y.getContentLength());return w??d(S)};return async y=>{let{url:S,method:w,data:R,signal:D,cancelToken:E,timeout:v,onDownloadProgress:O,onUploadProgress:N,responseType:x,headers:V,withCredentials:L="same-origin",fetchOptions:q}=wf(y),Z=t||fetch;x=x?(x+"").toLowerCase():"text";let $=Cb([D,E&&E.toAbortSignal()],v),X=null;const ue=$&&$.unsubscribe&&(()=>{$.unsubscribe()});let Pe;try{if(N&&c&&w!=="get"&&w!=="head"&&(Pe=await m(V,R))!==0){let he=new n(S,{method:"POST",body:R,duplex:"half"}),ge;if(A.isFormData(R)&&(ge=he.headers.get("content-type"))&&V.setContentType(ge),he.body){const[qe,De]=yl(Pe,Es(bl(N)));R=vl(he.body,Sl,qe,De)}}A.isString(L)||(L=L?"include":"omit");const te=o&&"credentials"in n.prototype,ee={...q,signal:$,method:w.toUpperCase(),headers:V.normalize().toJSON(),body:R,duplex:"half",credentials:te?L:void 0};X=o&&new n(S,ee);let re=await(o?Z(X,q):Z(S,ee));const Fe=u&&(x==="stream"||x==="response");if(u&&(O||Fe&&ue)){const he={};["status","statusText","headers"].forEach(ct=>{he[ct]=re[ct]});const ge=A.toFiniteNumber(re.headers.get("content-length")),[qe,De]=O&&yl(ge,Es(bl(O),!0))||[];re=new r(vl(re.body,Sl,qe,()=>{De&&De(),ue&&ue()}),he)}x=x||"text";let Ye=await f[A.findKey(f,x)||"text"](re,y);return!Fe&&ue&&ue(),await new Promise((he,ge)=>{vf(he,ge,{data:Ye,headers:lt.from(re.headers),status:re.status,statusText:re.statusText,config:y,request:X})})}catch(te){throw ue&&ue(),te&&te.name==="TypeError"&&/Load failed|fetch/i.test(te.message)?Object.assign(new ie("Network Error",ie.ERR_NETWORK,y,X),{cause:te.cause||te}):ie.from(te,te&&te.code,y,X)}}},Nb=new Map,Tf=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,a=i,l,c,u=Nb;for(;a--;)l=o[a],c=u.get(l),c===void 0&&u.set(l,c=a?new Map:Rb(t)),u=c;return c};Tf();const wi={http:qy,xhr:Tb,fetch:{get:Tf}};A.forEach(wi,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Ll=e=>`- ${e}`,Ib=e=>A.isFunction(e)||e===null||e===!1;function xb(e,t){e=A.isArray(e)?e:[e];const{length:n}=e;let r,s;const o={};for(let i=0;i`adapter ${l} `+(c===!1?"is not supported by the environment":"is not available in the build"));let a=n?i.length>1?`since : -`+i.map(Ll).join(` -`):" "+Ll(i[0]):"as no adapter specified";throw new ie("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return s}const Cf={getAdapter:xb,adapters:wi};function go(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new sr(null,e)}function Pl(e){return go(e),e.headers=lt.from(e.headers),e.data=mo.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Cf.getAdapter(e.adapter||Kr.adapter,e)(e).then(function(r){return go(e),r.data=mo.call(e,e.transformResponse,r),r.headers=lt.from(r.headers),r},function(r){return Ef(r)||(go(e),r&&r.response&&(r.response.data=mo.call(e,e.transformResponse,r.response),r.response.headers=lt.from(r.response.headers))),Promise.reject(r)})}const Lf="1.13.2",js={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{js[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Al={};js.transitional=function(t,n,r){function s(o,i){return"[Axios v"+Lf+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,a)=>{if(t===!1)throw new ie(s(i," has been removed"+(n?" in "+n:"")),ie.ERR_DEPRECATED);return n&&!Al[i]&&(Al[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,a):!0}};js.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function kb(e,t,n){if(typeof e!="object")throw new ie("options must be an object",ie.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const a=e[o],l=a===void 0||i(a,o,e);if(l!==!0)throw new ie("option "+o+" must be "+l,ie.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new ie("Unknown option "+o,ie.ERR_BAD_OPTION)}}const is={assertOptions:kb,validators:js},Pt=is.validators;let xn=class{constructor(t){this.defaults=t||{},this.interceptors={request:new gl,response:new gl}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Fn(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&is.assertOptions(r,{silentJSONParsing:Pt.transitional(Pt.boolean),forcedJSONParsing:Pt.transitional(Pt.boolean),clarifyTimeoutError:Pt.transitional(Pt.boolean)},!1),s!=null&&(A.isFunction(s)?n.paramsSerializer={serialize:s}:is.assertOptions(s,{encode:Pt.function,serialize:Pt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),is.assertOptions(n,{baseUrl:Pt.spelling("baseURL"),withXsrfToken:Pt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&A.merge(o.common,o[n.method]);o&&A.forEach(["delete","get","head","post","put","patch","common"],y=>{delete o[y]}),n.headers=lt.concat(i,o);const a=[];let l=!0;this.interceptors.request.forEach(function(S){typeof S.runWhen=="function"&&S.runWhen(n)===!1||(l=l&&S.synchronous,a.unshift(S.fulfilled,S.rejected))});const c=[];this.interceptors.response.forEach(function(S){c.push(S.fulfilled,S.rejected)});let u,f=0,d;if(!l){const y=[Pl.bind(this),void 0];for(y.unshift(...a),y.push(...c),d=y.length,u=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(a=>{r.subscribe(a),o=a}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,a){r.reason||(r.reason=new sr(o,i,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Pf(function(s){t=s}),cancel:t}}};function Db(e){return function(n){return e.apply(null,n)}}function Mb(e){return A.isObject(e)&&e.isAxiosError===!0}const jo={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(jo).forEach(([e,t])=>{jo[t]=e});function Af(e){const t=new xn(e),n=sf(xn.prototype.request,t);return A.extend(n,xn.prototype,t,{allOwnKeys:!0}),A.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Af(Fn(e,s))},n}const Ne=Af(Kr);Ne.Axios=xn;Ne.CanceledError=sr;Ne.CancelToken=Fb;Ne.isCancel=Ef;Ne.VERSION=Lf;Ne.toFormData=Bs;Ne.AxiosError=ie;Ne.Cancel=Ne.CanceledError;Ne.all=function(t){return Promise.all(t)};Ne.spread=Db;Ne.isAxiosError=Mb;Ne.mergeConfig=Fn;Ne.AxiosHeaders=lt;Ne.formToJSON=e=>bf(A.isHTMLForm(e)?new FormData(e):e);Ne.getAdapter=Cf.getAdapter;Ne.HttpStatusCode=jo;Ne.default=Ne;const{Axios:iE,AxiosError:aE,CanceledError:lE,isCancel:cE,CancelToken:uE,VERSION:fE,all:dE,Cancel:hE,isAxiosError:pE,spread:mE,toFormData:gE,AxiosHeaders:_E,HttpStatusCode:yE,formToJSON:bE,getAdapter:EE,mergeConfig:vE}=Ne,Ub="",Of=Ub,we=Ne.create({baseURL:Of,timeout:nf.REQUEST_TIMEOUT,headers:{"Content-Type":"application/json"}});we.interceptors.request.use(e=>{const t=localStorage.getItem("token");return t&&(e.headers.Authorization=`Bearer ${t}`),e.url&&!e.url.startsWith("http")&&(e.url=`${Of}/${e.url.replace(/^\//,"")}`),e},e=>Promise.reject(e));we.interceptors.response.use(e=>e.data,e=>{if(e.response){const{status:t}=e.response;t===401&&(localStorage.removeItem("token"),window.location.hash!=="#/login"&&(window.location.href="/#/login"))}else e.request;return Promise.reject(e)});class $b{static async getConfig(){return we.get("/admin/config/get")}static async getUserConfig(){return we.post("/")}static async updateConfig(t){return we.patch("/admin/config/update",t)}}class SE{static async uploadFile(t,n){const r=new FormData;return r.append("file",t),we.post("/share/file/",r,{headers:{"Content-Type":"multipart/form-data"},onUploadProgress:s=>{if(n&&s.total){const o={loaded:s.loaded,total:s.total,percentage:Math.round(s.loaded*100/s.total)};n(o)}}})}static async uploadText(t){return we.post("/share/text/",{content:t})}static async getFile(t){return we.get(`/file/${t}`)}static async downloadFile(t){return(await we.get(`/download/${t}`,{responseType:"blob"})).data}static async deleteFile(t){return we.post("/admin/file/delete",{id:t})}static async getFileList(t=1,n=10){return we.get("/admin/file/list",{params:{page:t,size:n}})}static async getAdminFileList(t){return we.get("/admin/file/list",{params:t})}static async updateFile(t){return we.patch("/admin/file/update",t)}static async deleteAdminFile(t){return we.delete("/admin/file/delete",{data:{id:t}})}static async downloadAdminFile(t){return we.get("/admin/file/download",{params:{id:t},responseType:"blob"})}}class wE{static async login(t){return we.post("/admin/login",{password:t})}static async logout(){return we.post("/admin/logout")}static async verifyToken(){return we.get("/admin/verify")}}class TE{static async getDashboardStats(){return we.get("/admin/dashboard")}static async getDashboard(){return we.get("/admin/dashboard")}}class CE{static async initUpload(t){return we.post("/presign/upload/init",t)}static async proxyUpload(t,n,r){const s=new FormData;return s.append("file",n),we.put(`/presign/upload/proxy/${t}`,s,{headers:{"Content-Type":"multipart/form-data"},onUploadProgress:o=>{if(r&&o.total){const i={loaded:o.loaded,total:o.total,percentage:Math.round(o.loaded*100/o.total)};r(i)}}})}static async confirmUpload(t,n){return we.post(`/presign/upload/confirm/${t}`,n||{})}static async getUploadStatus(t){return we.get(`/presign/upload/status/${t}`)}static async cancelUpload(t){return we.delete(`/presign/upload/${t}`)}static async directUploadToS3(t,n,r){try{return await Ne.put(t,n,{headers:{"Content-Type":"application/octet-stream"},onUploadProgress:s=>{if(r&&s.total){const o={loaded:s.loaded,total:s.total,percentage:Math.round(s.loaded*100/s.total)};r(o)}}}),!0}catch{return!1}}}function Vb(){const e=it(!1),t=it(He.SYSTEM),n=()=>window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches,r=()=>{const f=localStorage.getItem(dl.COLOR_MODE);return f&&Object.values(He).includes(f)?f:null},s=f=>{t.value=f,localStorage.setItem(dl.COLOR_MODE,f),f===He.SYSTEM?e.value=n():e.value=f===He.DARK,o()},o=()=>{const f=document.documentElement;e.value?f.classList.add("dark"):f.classList.remove("dark")},i=()=>{t.value===He.LIGHT?s(He.DARK):t.value===He.DARK?s(He.SYSTEM):s(He.LIGHT)},a=()=>{if(window.matchMedia){const f=window.matchMedia("(prefers-color-scheme: dark)"),d=m=>{t.value===He.SYSTEM&&(e.value=m.matches,o())};return f.addEventListener("change",d),()=>{f.removeEventListener("change",d)}}return()=>{}},l=()=>{const f=r();return s(f||He.SYSTEM),a()},c=Ee(()=>{switch(t.value){case He.LIGHT:return"sun";case He.DARK:return"moon";case He.SYSTEM:return"monitor";default:return"monitor"}}),u=Ee(()=>{switch(t.value){case He.LIGHT:return"浅色模式";case He.DARK:return"深色模式";case He.SYSTEM:return"跟随系统";default:return"跟随系统"}});return{isDarkMode:e,themeMode:t,themeIcon:c,themeLabel:u,setThemeMode:s,toggleTheme:i,initTheme:l,checkSystemColorScheme:n}}const Hb={class:"fixed top-4 right-4 z-50 flex items-center space-x-3"},Wb={key:0,class:"loading-overlay"},Bb=Xt({__name:"App",setup(e){const t=it(!1),n=_m(),r=ym(),s=rf(),{isDarkMode:o,toggleTheme:i,initTheme:a}=Vb();let l=null;return er(()=>{l=a(),$b.getUserConfig().then(c=>{c.code===200&&c.detail&&(localStorage.setItem("config",JSON.stringify(c.detail)),c.detail.notify_title&&c.detail.notify_content&&localStorage.getItem("notify")!==c.detail.notify_title+c.detail.notify_content&&(localStorage.setItem("notify",c.detail.notify_title+c.detail.notify_content),s.showAlert(c.detail.notify_title+": "+c.detail.notify_content,"success")))})}),tr(()=>{l&&l()}),n.beforeEach((c,u,f)=>{t.value=!0,f()}),n.afterEach(()=>{setTimeout(()=>{t.value=!1},200)}),In("isDarkMode",o),In("toggleTheme",i),In("isLoading",t),(c,u)=>(Ke(),jt("div",{class:Nt(["app-container",Te(o)?"dark":"light"])},[We("div",Hb,[Oe(X_),Oe(Im,{modelValue:Te(o),"onUpdate:modelValue":u[0]||(u[0]=f=>Le(o)?o.value=f:null)},null,8,["modelValue"])]),t.value?(Ke(),jt("div",Wb,[...u[1]||(u[1]=[We("div",{class:"loading-spinner"},null,-1)])])):Gc("",!0),Oe(Te(Eu),null,{default:Tr(({Component:f})=>[Oe(Qc,{name:"fade",mode:"out-in"},{default:Tr(()=>[(Ke(),dn(wc(f),{key:Te(r).fullPath}))]),_:2},1024)]),_:1}),Oe(ly)],2))}}),jb="modulepreload",Kb=function(e){return"/"+e},Ol={},Pn=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let l=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),a=i?.nonce||i?.getAttribute("nonce");s=l(n.map(c=>{if(c=Kb(c),c in Ol)return;Ol[c]=!0;const u=c.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":jb,u||(d.as="script"),d.crossOrigin="",d.href=c,a&&d.setAttribute("nonce",a),document.head.appendChild(d),u)return new Promise((m,y)=>{d.addEventListener("load",m),d.addEventListener("error",()=>y(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return s.then(i=>{for(const a of i||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})},Gb=()=>Pn(()=>import("./SendFileView-DW3wRbaM.js"),__vite__mapDeps([0,1,2,3,4,5,6])),Yb=mm({history:Kp("/"),routes:[{path:"/",name:"Retrieve",component:()=>Pn(()=>import("./RetrievewFileView-CWZH6U-r.js"),__vite__mapDeps([7,1,2,3,4,8,5,9,10]))},{path:"/send",name:"Send",component:Gb},{path:"/admin",name:"Manage",component:()=>Pn(()=>import("./AdminLayout-CIwHWF3v.js"),__vite__mapDeps([11,2,12])),redirect:"/admin/dashboard",children:[{path:"/admin/dashboard",name:"Dashboard",component:()=>Pn(()=>import("./DashboardView-CPuETXoG.js"),__vite__mapDeps([13,4,8]))},{path:"/admin/files",name:"FileManage",component:()=>Pn(()=>import("./FileManageView-D9LkQK2i.js"),__vite__mapDeps([14,9,4,5,15]))},{path:"/admin/settings",name:"Settings",component:()=>Pn(()=>import("./SystemSettingsView-9k34DWo0.js"),[])}]},{path:"/login",name:"Login",component:()=>Pn(()=>import("./LoginView-DN8sBu46.js"),__vite__mapDeps([16,2,17]))}]}),Ks=rp(Bb);Ks.use(ip());Ks.use(Yb);Ks.use(tf);Ks.mount("#app");export{$b as $,Zb as A,Cs as B,Cm as C,Cc as D,fh as E,rE as F,zb as G,Gh as H,_m as I,we as J,Xb as K,hp as L,ym as M,pn as N,bc as O,CE as P,dp as Q,tr as R,dl as S,Qc as T,nE as U,Mr as V,TE as W,Nm as X,tE as Y,SE as Z,ay as _,jt as a,Qb as a0,wE as a1,We as b,Qt as c,Xt as d,Te as e,er as f,Ee as g,eE as h,et as i,Gc as j,dn as k,Oe as l,wc as m,Nt as n,Ke as o,rf as p,tc as q,it as r,Ne as s,Er as t,Hr as u,Tr as v,un as w,qb as x,Ue as y,Jb as z}; diff --git a/themes/2024/assets/index-B9FIg8c4.js b/themes/2024/assets/index-B9FIg8c4.js new file mode 100644 index 0000000..8c5e178 --- /dev/null +++ b/themes/2024/assets/index-B9FIg8c4.js @@ -0,0 +1,114 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/SendFileView-C_jTXUIX.js","assets/PageHeader-C8MTYIg6.js","assets/box-BaIzuVAS.js","assets/PageHeader-DV4PCTwD.css","assets/file-CSeBUDan.js","assets/trash-DPD8vC5o.js","assets/SendFileView-DJTyD32y.css","assets/RetrievewFileView-DKpM6_j2.js","assets/hard-drive-DFfw9-r7.js","assets/copy-ClIbpnbK.js","assets/RetrievewFileView-pLqL6j5e.css","assets/AdminLayout-DFagHGxu.js","assets/AdminLayout-nlp_lohe.css","assets/DashboardView-DneIu2Zw.js","assets/FileManageView-Bevef92J.js","assets/FileManageView-DrjnVkAt.css","assets/LoginView-CyitXin1.js","assets/LoginView-CbGDZtny.css"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();/** +* @vue/shared v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Yo(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ge={},Wn=[],xt=()=>{},Rl=()=>!1,vs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),zo=e=>e.startsWith("onUpdate:"),ke=Object.assign,Xo=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Of=Object.prototype.hasOwnProperty,pe=(e,t)=>Of.call(e,t),J=Array.isArray,Bn=e=>Fr(e)==="[object Map]",Qn=e=>Fr(e)==="[object Set]",Ai=e=>Fr(e)==="[object Date]",ne=e=>typeof e=="function",Re=e=>typeof e=="string",Et=e=>typeof e=="symbol",me=e=>e!==null&&typeof e=="object",Ol=e=>(me(e)||ne(e))&&ne(e.then)&&ne(e.catch),Nl=Object.prototype.toString,Fr=e=>Nl.call(e),Nf=e=>Fr(e).slice(8,-1),Il=e=>Fr(e)==="[object Object]",Jo=e=>Re(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ur=Yo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ss=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},If=/-\w/g,mt=Ss(e=>e.replace(If,t=>t.slice(1).toUpperCase())),xf=/\B([A-Z])/g,gn=Ss(e=>e.replace(xf,"-$1").toLowerCase()),ws=Ss(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ys=Ss(e=>e?`on${ws(e)}`:""),cn=(e,t)=>!Object.is(e,t),Zr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},is=e=>{const t=parseFloat(e);return isNaN(t)?e:t},kf=e=>{const t=Re(e)?Number(e):NaN;return isNaN(t)?e:t};let Ri;const Ts=()=>Ri||(Ri=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Cs(e){if(J(e)){const t={};for(let n=0;n{if(n){const r=n.split(Df);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Nt(e){let t="";if(Re(e))t=e;else if(J(e))for(let n=0;nDr(n,t))}const Fl=e=>!!(e&&e.__v_isRef===!0),br=e=>Re(e)?e:e==null?"":J(e)||me(e)&&(e.toString===Nl||!ne(e.toString))?Fl(e)?br(e.value):JSON.stringify(e,Dl,2):String(e),Dl=(e,t)=>Fl(t)?Dl(e,t.value):Bn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[zs(r,o)+" =>"]=s,n),{})}:Qn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>zs(n))}:Et(t)?zs(t):me(t)&&!J(t)&&!Il(t)?String(t):t,zs=(e,t="")=>{var n;return Et(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ke;class Ml{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Ke,!t&&Ke&&(this.index=(Ke.scopes||(Ke.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(Ke=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(dr){let t=dr;for(dr=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;fr;){let t=fr;for(fr=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Wl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Bl(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),ni(r),Bf(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function yo(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(jl(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function jl(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Er)||(e.globalVersion=Er,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!yo(e))))return;e.flags|=2;const t=e.dep,n=be,r=bt;be=e,bt=!0;try{Wl(e);const s=e.fn(e._value);(t.version===0||cn(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{be=n,bt=r,Bl(e),e.flags&=-3}}function ni(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)ni(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Bf(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let bt=!0;const Kl=[];function qt(){Kl.push(bt),bt=!1}function Yt(){const e=Kl.pop();bt=e===void 0?!0:e}function Oi(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=be;be=void 0;try{t()}finally{be=n}}}let Er=0;class jf{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class ri{constructor(t){this.computed=t,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(t){if(!be||!bt||be===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==be)n=this.activeLink=new jf(be,this),be.deps?(n.prevDep=be.depsTail,be.depsTail.nextDep=n,be.depsTail=n):be.deps=be.depsTail=n,Gl(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=be.depsTail,n.nextDep=void 0,be.depsTail.nextDep=n,be.depsTail=n,be.deps===n&&(be.deps=r)}return n}trigger(t){this.version++,Er++,this.notify(t)}notify(t){ei();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{ti()}}}function Gl(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Gl(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const as=new WeakMap,On=Symbol(""),bo=Symbol(""),vr=Symbol("");function Ge(e,t,n){if(bt&&be){let r=as.get(e);r||as.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new ri),s.map=r,s.key=n),s.track()}}function Ht(e,t,n,r,s,o){const i=as.get(e);if(!i){Er++;return}const a=l=>{l&&l.trigger()};if(ei(),t==="clear")i.forEach(a);else{const l=J(e),c=l&&Jo(n);if(l&&n==="length"){const u=Number(r);i.forEach((f,d)=>{(d==="length"||d===vr||!Et(d)&&d>=u)&&a(f)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),c&&a(i.get(vr)),t){case"add":l?c&&a(i.get("length")):(a(i.get(On)),Bn(e)&&a(i.get(bo)));break;case"delete":l||(a(i.get(On)),Bn(e)&&a(i.get(bo)));break;case"set":Bn(e)&&a(i.get(On));break}}ti()}function Kf(e,t){const n=as.get(e);return n&&n.get(t)}function Dn(e){const t=ce(e);return t===e?t:(Ge(t,"iterate",vr),ht(e)?t:t.map(He))}function Ls(e){return Ge(e=ce(e),"iterate",vr),e}const Gf={__proto__:null,[Symbol.iterator](){return Js(this,Symbol.iterator,He)},concat(...e){return Dn(this).concat(...e.map(t=>J(t)?Dn(t):t))},entries(){return Js(this,"entries",e=>(e[1]=He(e[1]),e))},every(e,t){return Ft(this,"every",e,t,void 0,arguments)},filter(e,t){return Ft(this,"filter",e,t,n=>n.map(He),arguments)},find(e,t){return Ft(this,"find",e,t,He,arguments)},findIndex(e,t){return Ft(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ft(this,"findLast",e,t,He,arguments)},findLastIndex(e,t){return Ft(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ft(this,"forEach",e,t,void 0,arguments)},includes(...e){return Qs(this,"includes",e)},indexOf(...e){return Qs(this,"indexOf",e)},join(e){return Dn(this).join(e)},lastIndexOf(...e){return Qs(this,"lastIndexOf",e)},map(e,t){return Ft(this,"map",e,t,void 0,arguments)},pop(){return sr(this,"pop")},push(...e){return sr(this,"push",e)},reduce(e,...t){return Ni(this,"reduce",e,t)},reduceRight(e,...t){return Ni(this,"reduceRight",e,t)},shift(){return sr(this,"shift")},some(e,t){return Ft(this,"some",e,t,void 0,arguments)},splice(...e){return sr(this,"splice",e)},toReversed(){return Dn(this).toReversed()},toSorted(e){return Dn(this).toSorted(e)},toSpliced(...e){return Dn(this).toSpliced(...e)},unshift(...e){return sr(this,"unshift",e)},values(){return Js(this,"values",He)}};function Js(e,t,n){const r=Ls(e),s=r[t]();return r!==e&&!ht(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.value&&(o.value=n(o.value)),o}),s}const qf=Array.prototype;function Ft(e,t,n,r,s,o){const i=Ls(e),a=i!==e&&!ht(e),l=i[t];if(l!==qf[t]){const f=l.apply(e,o);return a?He(f):f}let c=n;i!==e&&(a?c=function(f,d){return n.call(this,He(f),d,e)}:n.length>2&&(c=function(f,d){return n.call(this,f,d,e)}));const u=l.call(i,c,r);return a&&s?s(u):u}function Ni(e,t,n,r){const s=Ls(e);let o=n;return s!==e&&(ht(e)?n.length>3&&(o=function(i,a,l){return n.call(this,i,a,l,e)}):o=function(i,a,l){return n.call(this,i,He(a),l,e)}),s[t](o,...r)}function Qs(e,t,n){const r=ce(e);Ge(r,"iterate",vr);const s=r[t](...n);return(s===-1||s===!1)&&ii(n[0])?(n[0]=ce(n[0]),r[t](...n)):s}function sr(e,t,n=[]){qt(),ei();const r=ce(e)[t].apply(e,n);return ti(),Yt(),r}const Yf=Yo("__proto__,__v_isRef,__isVue"),ql=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Et));function zf(e){Et(e)||(e=String(e));const t=ce(this);return Ge(t,"has",e),t.hasOwnProperty(e)}class Yl{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?od:Ql:o?Jl:Xl).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=J(t);if(!s){let l;if(i&&(l=Gf[n]))return l;if(n==="hasOwnProperty")return zf}const a=Reflect.get(t,n,Te(t)?t:r);return(Et(n)?ql.has(n):Yf(n))||(s||Ge(t,"get",n),o)?a:Te(a)?i&&Jo(n)?a:a.value:me(a)?s?ec(a):Mr(a):a}}class zl extends Yl{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];if(!this._isShallow){const l=fn(o);if(!ht(r)&&!fn(r)&&(o=ce(o),r=ce(r)),!J(t)&&Te(o)&&!Te(r))return l||(o.value=r),!0}const i=J(t)&&Jo(n)?Number(n)e,Gr=e=>Reflect.getPrototypeOf(e);function ed(e,t,n){return function(...r){const s=this.__v_raw,o=ce(s),i=Bn(o),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=s[e](...r),u=n?Eo:t?ls:He;return!t&&Ge(o,"iterate",l?bo:On),{next(){const{value:f,done:d}=c.next();return d?{value:f,done:d}:{value:a?[u(f[0]),u(f[1])]:u(f),done:d}},[Symbol.iterator](){return this}}}}function qr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function td(e,t){const n={get(s){const o=this.__v_raw,i=ce(o),a=ce(s);e||(cn(s,a)&&Ge(i,"get",s),Ge(i,"get",a));const{has:l}=Gr(i),c=t?Eo:e?ls:He;if(l.call(i,s))return c(o.get(s));if(l.call(i,a))return c(o.get(a));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&Ge(ce(s),"iterate",On),s.size},has(s){const o=this.__v_raw,i=ce(o),a=ce(s);return e||(cn(s,a)&&Ge(i,"has",s),Ge(i,"has",a)),s===a?o.has(s):o.has(s)||o.has(a)},forEach(s,o){const i=this,a=i.__v_raw,l=ce(a),c=t?Eo:e?ls:He;return!e&&Ge(l,"iterate",On),a.forEach((u,f)=>s.call(o,c(u),c(f),i))}};return ke(n,e?{add:qr("add"),set:qr("set"),delete:qr("delete"),clear:qr("clear")}:{add(s){!t&&!ht(s)&&!fn(s)&&(s=ce(s));const o=ce(this);return Gr(o).has.call(o,s)||(o.add(s),Ht(o,"add",s,s)),this},set(s,o){!t&&!ht(o)&&!fn(o)&&(o=ce(o));const i=ce(this),{has:a,get:l}=Gr(i);let c=a.call(i,s);c||(s=ce(s),c=a.call(i,s));const u=l.call(i,s);return i.set(s,o),c?cn(o,u)&&Ht(i,"set",s,o):Ht(i,"add",s,o),this},delete(s){const o=ce(this),{has:i,get:a}=Gr(o);let l=i.call(o,s);l||(s=ce(s),l=i.call(o,s)),a&&a.call(o,s);const c=o.delete(s);return l&&Ht(o,"delete",s,void 0),c},clear(){const s=ce(this),o=s.size!==0,i=s.clear();return o&&Ht(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=ed(s,e,t)}),n}function si(e,t){const n=td(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(pe(n,s)&&s in r?n:r,s,o)}const nd={get:si(!1,!1)},rd={get:si(!1,!0)},sd={get:si(!0,!1)};const Xl=new WeakMap,Jl=new WeakMap,Ql=new WeakMap,od=new WeakMap;function id(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ad(e){return e.__v_skip||!Object.isExtensible(e)?0:id(Nf(e))}function Mr(e){return fn(e)?e:oi(e,!1,Jf,nd,Xl)}function Zl(e){return oi(e,!1,Zf,rd,Jl)}function ec(e){return oi(e,!0,Qf,sd,Ql)}function oi(e,t,n,r,s){if(!me(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=ad(e);if(o===0)return e;const i=s.get(e);if(i)return i;const a=new Proxy(e,o===2?r:n);return s.set(e,a),a}function Kt(e){return fn(e)?Kt(e.__v_raw):!!(e&&e.__v_isReactive)}function fn(e){return!!(e&&e.__v_isReadonly)}function ht(e){return!!(e&&e.__v_isShallow)}function ii(e){return e?!!e.__v_raw:!1}function ce(e){const t=e&&e.__v_raw;return t?ce(t):e}function ai(e){return!pe(e,"__v_skip")&&Object.isExtensible(e)&&xl(e,"__v_skip",!0),e}const He=e=>me(e)?Mr(e):e,ls=e=>me(e)?ec(e):e;function Te(e){return e?e.__v_isRef===!0:!1}function st(e){return tc(e,!1)}function li(e){return tc(e,!0)}function tc(e,t){return Te(e)?e:new ld(e,t)}class ld{constructor(t,n){this.dep=new ri,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ce(t),this._value=n?t:He(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||ht(t)||fn(t);t=r?t:ce(t),cn(t,n)&&(this._rawValue=t,this._value=r?t:He(t),this.dep.trigger())}}function Se(e){return Te(e)?e.value:e}const cd={get:(e,t,n)=>t==="__v_raw"?e:Se(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return Te(s)&&!Te(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function nc(e){return Kt(e)?e:new Proxy(e,cd)}function ud(e){const t=J(e)?new Array(e.length):{};for(const n in e)t[n]=rc(e,n);return t}class fd{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Kf(ce(this._object),this._key)}}class dd{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function pd(e,t,n){return Te(e)?e:ne(e)?new dd(e):me(e)&&arguments.length>1?rc(e,t,n):st(e)}function rc(e,t,n){const r=e[t];return Te(r)?r:new fd(e,t,n)}class hd{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new ri(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Er-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&be!==this)return Hl(this,!0),!0}get value(){const t=this.dep.track();return jl(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function md(e,t,n=!1){let r,s;return ne(e)?r=e:(r=e.get,s=e.set),new hd(r,s,n)}const Yr={},cs=new WeakMap;let Ln;function gd(e,t=!1,n=Ln){if(n){let r=cs.get(n);r||cs.set(n,r=[]),r.push(e)}}function _d(e,t,n=ge){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:a,call:l}=n,c=v=>s?v:ht(v)||s===!1||s===0?Wt(v,1):Wt(v);let u,f,d,m,E=!1,S=!1;if(Te(e)?(f=()=>e.value,E=ht(e)):Kt(e)?(f=()=>c(e),E=!0):J(e)?(S=!0,E=e.some(v=>Kt(v)||ht(v)),f=()=>e.map(v=>{if(Te(v))return v.value;if(Kt(v))return c(v);if(ne(v))return l?l(v,2):v()})):ne(e)?t?f=l?()=>l(e,2):e:f=()=>{if(d){qt();try{d()}finally{Yt()}}const v=Ln;Ln=u;try{return l?l(e,3,[m]):e(m)}finally{Ln=v}}:f=xt,t&&s){const v=f,L=s===!0?1/0:s;f=()=>Wt(v(),L)}const w=Ul(),R=()=>{u.stop(),w&&w.active&&Xo(w.effects,u)};if(o&&t){const v=t;t=(...L)=>{v(...L),R()}}let x=S?new Array(e.length).fill(Yr):Yr;const b=v=>{if(!(!(u.flags&1)||!u.dirty&&!v))if(t){const L=u.run();if(s||E||(S?L.some((O,D)=>cn(O,x[D])):cn(L,x))){d&&d();const O=Ln;Ln=u;try{const D=[L,x===Yr?void 0:S&&x[0]===Yr?[]:x,m];x=L,l?l(t,3,D):t(...D)}finally{Ln=O}}}else u.run()};return a&&a(b),u=new $l(f),u.scheduler=i?()=>i(b,!1):b,m=v=>gd(v,!1,u),d=u.onStop=()=>{const v=cs.get(u);if(v){if(l)l(v,4);else for(const L of v)L();cs.delete(u)}},t?r?b(!0):x=u.run():i?i(b.bind(null,!0),!0):u.run(),R.pause=u.pause.bind(u),R.resume=u.resume.bind(u),R.stop=R,R}function Wt(e,t=1/0,n){if(t<=0||!me(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Te(e))Wt(e.value,t,n);else if(J(e))for(let r=0;r{Wt(r,t,n)});else if(Il(e)){for(const r in e)Wt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Wt(e[r],t,n)}return e}/** +* @vue/runtime-core v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ur(e,t,n,r){try{return r?e(...r):e()}catch(s){Ps(s,t,n)}}function vt(e,t,n,r){if(ne(e)){const s=Ur(e,t,n,r);return s&&Ol(s)&&s.catch(o=>{Ps(o,t,n)}),s}if(J(e)){const s=[];for(let o=0;o>>1,s=tt[r],o=Sr(s);o=Sr(n)?tt.push(e):tt.splice(bd(t),0,e),e.flags|=1,oc()}}function oc(){us||(us=sc.then(ac))}function Ed(e){J(e)?jn.push(...e):sn&&e.id===-1?sn.splice(Un+1,0,e):e.flags&1||(jn.push(e),e.flags|=1),oc()}function Ii(e,t,n=Rt+1){for(;nSr(n)-Sr(r));if(jn.length=0,sn){sn.push(...t);return}for(sn=t,Un=0;Une.id==null?e.flags&2?-1:1/0:e.id;function ac(e){try{for(Rt=0;Rt{r._d&&hs(-1);const o=fs(t);let i;try{i=e(...s)}finally{fs(o),r._d&&hs(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function zb(e,t){if(We===null)return e;const n=Is(We),r=e.dirs||(e.dirs=[]);for(let s=0;se.__isTeleport,Vt=Symbol("_leaveCb"),zr=Symbol("_enterCb");function uc(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Zn(()=>{e.isMounted=!0}),bc(()=>{e.isUnmounting=!0}),e}const dt=[Function,Array],fc={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:dt,onEnter:dt,onAfterEnter:dt,onEnterCancelled:dt,onBeforeLeave:dt,onLeave:dt,onAfterLeave:dt,onLeaveCancelled:dt,onBeforeAppear:dt,onAppear:dt,onAfterAppear:dt,onAppearCancelled:dt},dc=e=>{const t=e.subTree;return t.component?dc(t.component):t},Sd={name:"BaseTransition",props:fc,setup(e,{slots:t}){const n=zt(),r=uc();return()=>{const s=t.default&&ui(t.default(),!0);if(!s||!s.length)return;const o=pc(s),i=ce(e),{mode:a}=i;if(r.isLeaving)return Zs(o);const l=xi(o);if(!l)return Zs(o);let c=Tr(l,i,r,n,f=>c=f);l.type!==qe&&kn(l,c);let u=n.subTree&&xi(n.subTree);if(u&&u.type!==qe&&!An(u,l)&&dc(n).type!==qe){let f=Tr(u,i,r,n);if(kn(u,f),a==="out-in"&&l.type!==qe)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,u=void 0},Zs(o);a==="in-out"&&l.type!==qe?f.delayLeave=(d,m,E)=>{const S=hc(r,u);S[String(u.key)]=u,d[Vt]=()=>{m(),d[Vt]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{E(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return o}}};function pc(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==qe){t=n;break}}return t}const wd=Sd;function hc(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Tr(e,t,n,r,s){const{appear:o,mode:i,persisted:a=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:f,onBeforeLeave:d,onLeave:m,onAfterLeave:E,onLeaveCancelled:S,onBeforeAppear:w,onAppear:R,onAfterAppear:x,onAppearCancelled:b}=t,v=String(e.key),L=hc(n,e),O=(A,Y)=>{A&&vt(A,r,9,Y)},D=(A,Y)=>{const ee=Y[1];O(A,Y),J(A)?A.every(V=>V.length<=1)&&ee():A.length<=1&&ee()},$={mode:i,persisted:a,beforeEnter(A){let Y=l;if(!n.isMounted)if(o)Y=w||l;else return;A[Vt]&&A[Vt](!0);const ee=L[v];ee&&An(e,ee)&&ee.el[Vt]&&ee.el[Vt](),O(Y,[A])},enter(A){let Y=c,ee=u,V=f;if(!n.isMounted)if(o)Y=R||c,ee=x||u,V=b||f;else return;let Q=!1;const ye=A[zr]=Ne=>{Q||(Q=!0,Ne?O(V,[A]):O(ee,[A]),$.delayedLeave&&$.delayedLeave(),A[zr]=void 0)};Y?D(Y,[A,ye]):ye()},leave(A,Y){const ee=String(e.key);if(A[zr]&&A[zr](!0),n.isUnmounting)return Y();O(d,[A]);let V=!1;const Q=A[Vt]=ye=>{V||(V=!0,Y(),ye?O(S,[A]):O(E,[A]),A[Vt]=void 0,L[ee]===e&&delete L[ee])};L[ee]=e,m?D(m,[A,Q]):Q()},clone(A){const Y=Tr(A,t,n,r,s);return s&&s(Y),Y}};return $}function Zs(e){if(Rs(e))return e=pn(e),e.children=null,e}function xi(e){if(!Rs(e))return cc(e.type)&&e.children?pc(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&ne(n.default))return n.default()}}function kn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,kn(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ui(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;opr(E,t&&(J(t)?t[S]:t),n,r,s));return}if(Kn(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&pr(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?Is(r.component):r.el,i=s?null:o,{i:a,r:l}=e,c=t&&t.r,u=a.refs===ge?a.refs={}:a.refs,f=a.setupState,d=ce(f),m=f===ge?Rl:E=>pe(d,E);if(c!=null&&c!==l){if(ki(t),Re(c))u[c]=null,m(c)&&(f[c]=null);else if(Te(c)){c.value=null;const E=t;E.k&&(u[E.k]=null)}}if(ne(l))Ur(l,a,12,[i,u]);else{const E=Re(l),S=Te(l);if(E||S){const w=()=>{if(e.f){const R=E?m(l)?f[l]:u[l]:l.value;if(s)J(R)&&Xo(R,o);else if(J(R))R.includes(o)||R.push(o);else if(E)u[l]=[o],m(l)&&(f[l]=u[l]);else{const x=[o];l.value=x,e.k&&(u[e.k]=x)}}else E?(u[l]=i,m(l)&&(f[l]=i)):S&&(l.value=i,e.k&&(u[e.k]=i))};if(i){const R=()=>{w(),ds.delete(e)};R.id=-1,ds.set(e,R),ct(R,n)}else ki(e),w()}}}function ki(e){const t=ds.get(e);t&&(t.flags|=8,ds.delete(e))}Ts().requestIdleCallback;Ts().cancelIdleCallback;const Kn=e=>!!e.type.__asyncLoader,Rs=e=>e.type.__isKeepAlive;function Td(e,t){gc(e,"a",t)}function Cd(e,t){gc(e,"da",t)}function gc(e,t,n=Ye){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Os(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Rs(s.parent.vnode)&&Ld(r,t,n,s),s=s.parent}}function Ld(e,t,n,r){const s=Os(t,e,r,!0);er(()=>{Xo(r[t],s)},n)}function Os(e,t,n=Ye,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{qt();const a=Vr(n),l=vt(t,n,e,i);return a(),Yt(),l});return r?s.unshift(o):s.push(o),o}}const Jt=e=>(t,n=Ye)=>{(!Pr||e==="sp")&&Os(e,(...r)=>t(...r),n)},_c=Jt("bm"),Zn=Jt("m"),Pd=Jt("bu"),yc=Jt("u"),bc=Jt("bum"),er=Jt("um"),Ad=Jt("sp"),Rd=Jt("rtg"),Od=Jt("rtc");function Nd(e,t=Ye){Os("ec",e,t)}const Ec="components";function Xb(e,t){return wc(Ec,e,!0,t)||e}const vc=Symbol.for("v-ndc");function Sc(e){return Re(e)?wc(Ec,e,!1)||e:e||vc}function wc(e,t,n=!0,r=!1){const s=We||Ye;if(s){const o=s.type;{const a=Ep(o,!1);if(a&&(a===t||a===mt(t)||a===ws(mt(t))))return o}const i=Fi(s[e]||o[e],t)||Fi(s.appContext[e],t);return!i&&r?o:i}}function Fi(e,t){return e&&(e[t]||e[mt(t)]||e[ws(mt(t))])}function Tc(e,t,n,r){let s;const o=n,i=J(e);if(i||Re(e)){const a=i&&Kt(e);let l=!1,c=!1;a&&(l=!ht(e),c=fn(e),e=Ls(e)),s=new Array(e.length);for(let u=0,f=e.length;ut(a,l,void 0,o));else{const a=Object.keys(e);s=new Array(a.length);for(let l=0,c=a.length;lLr(t)?!(t.type===qe||t.type===De&&!Cc(t.children)):!0)?e:null}const vo=e=>e?Gc(e)?Is(e):vo(e.parent):null,hr=ke(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=>vo(e.parent),$root:e=>vo(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Pc(e),$forceUpdate:e=>e.f||(e.f=()=>{ci(e.update)}),$nextTick:e=>e.n||(e.n=As.bind(e.proxy)),$watch:e=>Zd.bind(e)}),eo=(e,t)=>e!==ge&&!e.__isScriptSetup&&pe(e,t),Id={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:a,appContext:l}=e;let c;if(t[0]!=="$"){const m=i[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(eo(r,t))return i[t]=1,r[t];if(s!==ge&&pe(s,t))return i[t]=2,s[t];if((c=e.propsOptions[0])&&pe(c,t))return i[t]=3,o[t];if(n!==ge&&pe(n,t))return i[t]=4,n[t];So&&(i[t]=0)}}const u=hr[t];let f,d;if(u)return t==="$attrs"&&Ge(e.attrs,"get",""),u(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(n!==ge&&pe(n,t))return i[t]=4,n[t];if(d=l.config.globalProperties,pe(d,t))return d[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return eo(s,t)?(s[t]=n,!0):r!==ge&&pe(r,t)?(r[t]=n,!0):pe(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o,type:i}},a){let l,c;return!!(n[a]||e!==ge&&a[0]!=="$"&&pe(e,a)||eo(t,a)||(l=o[0])&&pe(l,a)||pe(r,a)||pe(hr,a)||pe(s.config.globalProperties,a)||(c=i.__cssModules)&&c[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:pe(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Di(e){return J(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let So=!0;function xd(e){const t=Pc(e),n=e.proxy,r=e.ctx;So=!1,t.beforeCreate&&Mi(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:d,beforeUpdate:m,updated:E,activated:S,deactivated:w,beforeDestroy:R,beforeUnmount:x,destroyed:b,unmounted:v,render:L,renderTracked:O,renderTriggered:D,errorCaptured:$,serverPrefetch:A,expose:Y,inheritAttrs:ee,components:V,directives:Q,filters:ye}=t;if(c&&kd(c,r,null),i)for(const te in i){const ae=i[te];ne(ae)&&(r[te]=ae.bind(n))}if(s){const te=s.call(n,n);me(te)&&(e.data=Mr(te))}if(So=!0,o)for(const te in o){const ae=o[te],Je=ne(ae)?ae.bind(n,n):ne(ae.get)?ae.get.bind(n,n):xt,nt=!ne(ae)&&ne(ae.set)?ae.set.bind(n):xt,Le=_e({get:Je,set:nt});Object.defineProperty(r,te,{enumerable:!0,configurable:!0,get:()=>Le.value,set:Pe=>Le.value=Pe})}if(a)for(const te in a)Lc(a[te],r,n,te);if(l){const te=ne(l)?l.call(n):l;Reflect.ownKeys(te).forEach(ae=>{In(ae,te[ae])})}u&&Mi(u,e,"c");function oe(te,ae){J(ae)?ae.forEach(Je=>te(Je.bind(n))):ae&&te(ae.bind(n))}if(oe(_c,f),oe(Zn,d),oe(Pd,m),oe(yc,E),oe(Td,S),oe(Cd,w),oe(Nd,$),oe(Od,O),oe(Rd,D),oe(bc,x),oe(er,v),oe(Ad,A),J(Y))if(Y.length){const te=e.exposed||(e.exposed={});Y.forEach(ae=>{Object.defineProperty(te,ae,{get:()=>n[ae],set:Je=>n[ae]=Je,enumerable:!0})})}else e.exposed||(e.exposed={});L&&e.render===xt&&(e.render=L),ee!=null&&(e.inheritAttrs=ee),V&&(e.components=V),Q&&(e.directives=Q),A&&mc(e)}function kd(e,t,n=xt){J(e)&&(e=wo(e));for(const r in e){const s=e[r];let o;me(s)?"default"in s?o=Xe(s.from||r,s.default,!0):o=Xe(s.from||r):o=Xe(s),Te(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function Mi(e,t,n){vt(J(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Lc(e,t,n,r){let s=r.includes(".")?Vc(n,r):()=>n[r];if(Re(e)){const o=t[e];ne(o)&&un(s,o)}else if(ne(e))un(s,e.bind(n));else if(me(e))if(J(e))e.forEach(o=>Lc(o,t,n,r));else{const o=ne(e.handler)?e.handler.bind(n):t[e.handler];ne(o)&&un(s,o,e)}}function Pc(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,a=o.get(t);let l;return a?l=a:!s.length&&!n&&!r?l=t:(l={},s.length&&s.forEach(c=>ps(l,c,i,!0)),ps(l,t,i)),me(t)&&o.set(t,l),l}function ps(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&ps(e,o,n,!0),s&&s.forEach(i=>ps(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const a=Fd[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const Fd={data:Ui,props:$i,emits:$i,methods:cr,computed:cr,beforeCreate:Ze,created:Ze,beforeMount:Ze,mounted:Ze,beforeUpdate:Ze,updated:Ze,beforeDestroy:Ze,beforeUnmount:Ze,destroyed:Ze,unmounted:Ze,activated:Ze,deactivated:Ze,errorCaptured:Ze,serverPrefetch:Ze,components:cr,directives:cr,watch:Md,provide:Ui,inject:Dd};function Ui(e,t){return t?e?function(){return ke(ne(e)?e.call(this,this):e,ne(t)?t.call(this,this):t)}:t:e}function Dd(e,t){return cr(wo(e),wo(t))}function wo(e){if(J(e)){const t={};for(let n=0;n1)return n&&ne(t)?t.call(r&&r.proxy):t}}function Vd(){return!!(zt()||Nn)}const Rc={},Oc=()=>Object.create(Rc),Nc=e=>Object.getPrototypeOf(e)===Rc;function Hd(e,t,n,r=!1){const s={},o=Oc();e.propsDefaults=Object.create(null),Ic(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Zl(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Wd(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,a=ce(s),[l]=e.propsOptions;let c=!1;if((r||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,m]=xc(f,t,!0);ke(i,d),m&&a.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!o&&!l)return me(e)&&r.set(e,Wn),Wn;if(J(o))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",di=e=>J(e)?e.map(Ot):[Ot(e)],jd=(e,t,n)=>{if(t._n)return t;const r=wr((...s)=>di(t(...s)),n);return r._c=!1,r},kc=(e,t,n)=>{const r=e._ctx;for(const s in e){if(fi(s))continue;const o=e[s];if(ne(o))t[s]=jd(s,o,r);else if(o!=null){const i=di(o);t[s]=()=>i}}},Fc=(e,t)=>{const n=di(t);e.slots.default=()=>n},Dc=(e,t,n)=>{for(const r in t)(n||!fi(r))&&(e[r]=t[r])},Kd=(e,t,n)=>{const r=e.slots=Oc();if(e.vnode.shapeFlag&32){const s=t._;s?(Dc(r,t,n),n&&xl(r,"_",s,!0)):kc(t,r)}else t&&Fc(e,t)},Gd=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ge;if(r.shapeFlag&32){const a=t._;a?n&&a===1?o=!1:Dc(s,t,n):(o=!t.$stable,kc(t,s)),i=t}else t&&(Fc(e,t),i={default:1});if(o)for(const a in s)!fi(a)&&i[a]==null&&delete s[a]},ct=ap;function qd(e){return Yd(e)}function Yd(e,t){const n=Ts();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:d,setScopeId:m=xt,insertStaticContent:E}=e,S=(g,y,_,P=null,U=null,F=null,B=void 0,W=null,p=!!y.dynamicChildren)=>{if(g===y)return;g&&!An(g,y)&&(P=M(g),Pe(g,U,F,!0),g=null),y.patchFlag===-2&&(p=!1,y.dynamicChildren=null);const{type:h,ref:C,shapeFlag:I}=y;switch(h){case $r:w(g,y,_,P);break;case qe:R(g,y,_,P);break;case no:g==null&&x(y,_,P,B);break;case De:V(g,y,_,P,U,F,B,W,p);break;default:I&1?L(g,y,_,P,U,F,B,W,p):I&6?Q(g,y,_,P,U,F,B,W,p):(I&64||I&128)&&h.process(g,y,_,P,U,F,B,W,p,z)}C!=null&&U?pr(C,g&&g.ref,F,y||g,!y):C==null&&g&&g.ref!=null&&pr(g.ref,null,F,g,!0)},w=(g,y,_,P)=>{if(g==null)r(y.el=a(y.children),_,P);else{const U=y.el=g.el;y.children!==g.children&&c(U,y.children)}},R=(g,y,_,P)=>{g==null?r(y.el=l(y.children||""),_,P):y.el=g.el},x=(g,y,_,P)=>{[g.el,g.anchor]=E(g.children,y,_,P,g.el,g.anchor)},b=({el:g,anchor:y},_,P)=>{let U;for(;g&&g!==y;)U=d(g),r(g,_,P),g=U;r(y,_,P)},v=({el:g,anchor:y})=>{let _;for(;g&&g!==y;)_=d(g),s(g),g=_;s(y)},L=(g,y,_,P,U,F,B,W,p)=>{y.type==="svg"?B="svg":y.type==="math"&&(B="mathml"),g==null?O(y,_,P,U,F,B,W,p):A(g,y,U,F,B,W,p)},O=(g,y,_,P,U,F,B,W)=>{let p,h;const{props:C,shapeFlag:I,transition:K,dirs:H}=g;if(p=g.el=i(g.type,F,C&&C.is,C),I&8?u(p,g.children):I&16&&$(g.children,p,null,P,U,to(g,F),B,W),H&&vn(g,null,P,"created"),D(p,g,g.scopeId,B,P),C){for(const k in C)k!=="value"&&!ur(k)&&o(p,k,null,C[k],F,P);"value"in C&&o(p,"value",null,C.value,F),(h=C.onVnodeBeforeMount)&&Lt(h,P,g)}H&&vn(g,null,P,"beforeMount");const T=zd(U,K);T&&K.beforeEnter(p),r(p,y,_),((h=C&&C.onVnodeMounted)||T||H)&&ct(()=>{h&&Lt(h,P,g),T&&K.enter(p),H&&vn(g,null,P,"mounted")},U)},D=(g,y,_,P,U)=>{if(_&&m(g,_),P)for(let F=0;F{for(let h=p;h{const W=y.el=g.el;let{patchFlag:p,dynamicChildren:h,dirs:C}=y;p|=g.patchFlag&16;const I=g.props||ge,K=y.props||ge;let H;if(_&&Sn(_,!1),(H=K.onVnodeBeforeUpdate)&&Lt(H,_,y,g),C&&vn(y,g,_,"beforeUpdate"),_&&Sn(_,!0),(I.innerHTML&&K.innerHTML==null||I.textContent&&K.textContent==null)&&u(W,""),h?Y(g.dynamicChildren,h,W,_,P,to(y,U),F):B||ae(g,y,W,null,_,P,to(y,U),F,!1),p>0){if(p&16)ee(W,I,K,_,U);else if(p&2&&I.class!==K.class&&o(W,"class",null,K.class,U),p&4&&o(W,"style",I.style,K.style,U),p&8){const T=y.dynamicProps;for(let k=0;k{H&&Lt(H,_,y,g),C&&vn(y,g,_,"updated")},P)},Y=(g,y,_,P,U,F,B)=>{for(let W=0;W{if(y!==_){if(y!==ge)for(const F in y)!ur(F)&&!(F in _)&&o(g,F,y[F],null,U,P);for(const F in _){if(ur(F))continue;const B=_[F],W=y[F];B!==W&&F!=="value"&&o(g,F,W,B,U,P)}"value"in _&&o(g,"value",y.value,_.value,U)}},V=(g,y,_,P,U,F,B,W,p)=>{const h=y.el=g?g.el:a(""),C=y.anchor=g?g.anchor:a("");let{patchFlag:I,dynamicChildren:K,slotScopeIds:H}=y;H&&(W=W?W.concat(H):H),g==null?(r(h,_,P),r(C,_,P),$(y.children||[],_,C,U,F,B,W,p)):I>0&&I&64&&K&&g.dynamicChildren?(Y(g.dynamicChildren,K,_,U,F,B,W),(y.key!=null||U&&y===U.subTree)&&Mc(g,y,!0)):ae(g,y,_,C,U,F,B,W,p)},Q=(g,y,_,P,U,F,B,W,p)=>{y.slotScopeIds=W,g==null?y.shapeFlag&512?U.ctx.activate(y,_,P,B,p):ye(y,_,P,U,F,B,p):Ne(g,y,p)},ye=(g,y,_,P,U,F,B)=>{const W=g.component=mp(g,P,U);if(Rs(g)&&(W.ctx.renderer=z),gp(W,!1,B),W.asyncDep){if(U&&U.registerDep(W,oe,B),!g.el){const p=W.subTree=Ae(qe);R(null,p,y,_),g.placeholder=p.el}}else oe(W,g,y,_,U,F,B)},Ne=(g,y,_)=>{const P=y.component=g.component;if(op(g,y,_))if(P.asyncDep&&!P.asyncResolved){te(P,y,_);return}else P.next=y,P.update();else y.el=g.el,P.vnode=y},oe=(g,y,_,P,U,F,B)=>{const W=()=>{if(g.isMounted){let{next:I,bu:K,u:H,parent:T,vnode:k}=g;{const Ue=Uc(g);if(Ue){I&&(I.el=k.el,te(g,I,B)),Ue.asyncDep.then(()=>{g.isUnmounted||W()});return}}let X=I,le;Sn(g,!1),I?(I.el=k.el,te(g,I,B)):I=k,K&&Zr(K),(le=I.props&&I.props.onVnodeBeforeUpdate)&&Lt(le,T,I,k),Sn(g,!0);const Ce=Wi(g),Qe=g.subTree;g.subTree=Ce,S(Qe,Ce,f(Qe.el),M(Qe),g,U,F),I.el=Ce.el,X===null&&ip(g,Ce.el),H&&ct(H,U),(le=I.props&&I.props.onVnodeUpdated)&&ct(()=>Lt(le,T,I,k),U)}else{let I;const{el:K,props:H}=y,{bm:T,m:k,parent:X,root:le,type:Ce}=g,Qe=Kn(y);Sn(g,!1),T&&Zr(T),!Qe&&(I=H&&H.onVnodeBeforeMount)&&Lt(I,X,y),Sn(g,!0);{le.ce&&le.ce._def.shadowRoot!==!1&&le.ce._injectChildStyle(Ce);const Ue=g.subTree=Wi(g);S(null,Ue,_,P,g,U,F),y.el=Ue.el}if(k&&ct(k,U),!Qe&&(I=H&&H.onVnodeMounted)){const Ue=y;ct(()=>Lt(I,X,Ue),U)}(y.shapeFlag&256||X&&Kn(X.vnode)&&X.vnode.shapeFlag&256)&&g.a&&ct(g.a,U),g.isMounted=!0,y=_=P=null}};g.scope.on();const p=g.effect=new $l(W);g.scope.off();const h=g.update=p.run.bind(p),C=g.job=p.runIfDirty.bind(p);C.i=g,C.id=g.uid,p.scheduler=()=>ci(C),Sn(g,!0),h()},te=(g,y,_)=>{y.component=g;const P=g.vnode.props;g.vnode=y,g.next=null,Wd(g,y.props,P,_),Gd(g,y.children,_),qt(),Ii(g),Yt()},ae=(g,y,_,P,U,F,B,W,p=!1)=>{const h=g&&g.children,C=g?g.shapeFlag:0,I=y.children,{patchFlag:K,shapeFlag:H}=y;if(K>0){if(K&128){nt(h,I,_,P,U,F,B,W,p);return}else if(K&256){Je(h,I,_,P,U,F,B,W,p);return}}H&8?(C&16&&Fe(h,U,F),I!==h&&u(_,I)):C&16?H&16?nt(h,I,_,P,U,F,B,W,p):Fe(h,U,F,!0):(C&8&&u(_,""),H&16&&$(I,_,P,U,F,B,W,p))},Je=(g,y,_,P,U,F,B,W,p)=>{g=g||Wn,y=y||Wn;const h=g.length,C=y.length,I=Math.min(h,C);let K;for(K=0;KC?Fe(g,U,F,!0,!1,I):$(y,_,P,U,F,B,W,p,I)},nt=(g,y,_,P,U,F,B,W,p)=>{let h=0;const C=y.length;let I=g.length-1,K=C-1;for(;h<=I&&h<=K;){const H=g[h],T=y[h]=p?on(y[h]):Ot(y[h]);if(An(H,T))S(H,T,_,null,U,F,B,W,p);else break;h++}for(;h<=I&&h<=K;){const H=g[I],T=y[K]=p?on(y[K]):Ot(y[K]);if(An(H,T))S(H,T,_,null,U,F,B,W,p);else break;I--,K--}if(h>I){if(h<=K){const H=K+1,T=HK)for(;h<=I;)Pe(g[h],U,F,!0),h++;else{const H=h,T=h,k=new Map;for(h=T;h<=K;h++){const lt=y[h]=p?on(y[h]):Ot(y[h]);lt.key!=null&&k.set(lt.key,h)}let X,le=0;const Ce=K-T+1;let Qe=!1,Ue=0;const En=new Array(Ce);for(h=0;h=Ce){Pe(lt,U,F,!0);continue}let Ct;if(lt.key!=null)Ct=k.get(lt.key);else for(X=T;X<=K;X++)if(En[X-T]===0&&An(lt,y[X])){Ct=X;break}Ct===void 0?Pe(lt,U,F,!0):(En[Ct-T]=h+1,Ct>=Ue?Ue=Ct:Qe=!0,S(lt,y[Ct],_,null,U,F,B,W,p),le++)}const qs=Qe?Xd(En):Wn;for(X=qs.length-1,h=Ce-1;h>=0;h--){const lt=T+h,Ct=y[lt],Li=y[lt+1],Pi=lt+1{const{el:F,type:B,transition:W,children:p,shapeFlag:h}=g;if(h&6){Le(g.component.subTree,y,_,P);return}if(h&128){g.suspense.move(y,_,P);return}if(h&64){B.move(g,y,_,z);return}if(B===De){r(F,y,_);for(let I=0;IW.enter(F),U);else{const{leave:I,delayLeave:K,afterLeave:H}=W,T=()=>{g.ctx.isUnmounted?s(F):r(F,y,_)},k=()=>{F._isLeaving&&F[Vt](!0),I(F,()=>{T(),H&&H()})};K?K(F,T,k):k()}else r(F,y,_)},Pe=(g,y,_,P=!1,U=!1)=>{const{type:F,props:B,ref:W,children:p,dynamicChildren:h,shapeFlag:C,patchFlag:I,dirs:K,cacheIndex:H}=g;if(I===-2&&(U=!1),W!=null&&(qt(),pr(W,null,_,g,!0),Yt()),H!=null&&(y.renderCache[H]=void 0),C&256){y.ctx.deactivate(g);return}const T=C&1&&K,k=!Kn(g);let X;if(k&&(X=B&&B.onVnodeBeforeUnmount)&&Lt(X,y,g),C&6)Tt(g.component,_,P);else{if(C&128){g.suspense.unmount(_,P);return}T&&vn(g,null,y,"beforeUnmount"),C&64?g.type.remove(g,y,_,z,P):h&&!h.hasOnce&&(F!==De||I>0&&I&64)?Fe(h,y,_,!1,!0):(F===De&&I&384||!U&&C&16)&&Fe(p,y,_),P&&ft(g)}(k&&(X=B&&B.onVnodeUnmounted)||T)&&ct(()=>{X&&Lt(X,y,g),T&&vn(g,null,y,"unmounted")},_)},ft=g=>{const{type:y,el:_,anchor:P,transition:U}=g;if(y===De){at(_,P);return}if(y===no){v(g);return}const F=()=>{s(_),U&&!U.persisted&&U.afterLeave&&U.afterLeave()};if(g.shapeFlag&1&&U&&!U.persisted){const{leave:B,delayLeave:W}=U,p=()=>B(_,F);W?W(g.el,F,p):p()}else F()},at=(g,y)=>{let _;for(;g!==y;)_=d(g),s(g),g=_;s(y)},Tt=(g,y,_)=>{const{bum:P,scope:U,job:F,subTree:B,um:W,m:p,a:h}=g;Hi(p),Hi(h),P&&Zr(P),U.stop(),F&&(F.flags|=8,Pe(B,g,y,_)),W&&ct(W,y),ct(()=>{g.isUnmounted=!0},y)},Fe=(g,y,_,P=!1,U=!1,F=0)=>{for(let B=F;B{if(g.shapeFlag&6)return M(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const y=d(g.anchor||g.el),_=y&&y[vd];return _?d(_):y};let q=!1;const j=(g,y,_)=>{g==null?y._vnode&&Pe(y._vnode,null,null,!0):S(y._vnode||null,g,y,null,null,null,_),y._vnode=g,q||(q=!0,Ii(),ic(),q=!1)},z={p:S,um:Pe,m:Le,r:ft,mt:ye,mc:$,pc:ae,pbc:Y,n:M,o:e};return{render:j,hydrate:void 0,createApp:$d(j)}}function to({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Sn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function zd(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Mc(e,t,n=!1){const r=e.children,s=t.children;if(J(r)&&J(s))for(let o=0;o>1,e[n[a]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Uc(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Uc(t)}function Hi(e){if(e)for(let t=0;tXe(Jd);function un(e,t,n){return $c(e,t,n)}function $c(e,t,n=ge){const{immediate:r,deep:s,flush:o,once:i}=n,a=ke({},n),l=t&&r||!t&&o!=="post";let c;if(Pr){if(o==="sync"){const m=Qd();c=m.__watcherHandles||(m.__watcherHandles=[])}else if(!l){const m=()=>{};return m.stop=xt,m.resume=xt,m.pause=xt,m}}const u=Ye;a.call=(m,E,S)=>vt(m,u,E,S);let f=!1;o==="post"?a.scheduler=m=>{ct(m,u&&u.suspense)}:o!=="sync"&&(f=!0,a.scheduler=(m,E)=>{E?m():ci(m)}),a.augmentJob=m=>{t&&(m.flags|=4),f&&(m.flags|=2,u&&(m.id=u.uid,m.i=u))};const d=_d(e,t,a);return Pr&&(c?c.push(d):l&&d()),d}function Zd(e,t,n){const r=this.proxy,s=Re(e)?e.includes(".")?Vc(r,e):()=>r[e]:e.bind(r,r);let o;ne(t)?o=t:(o=t.handler,n=t);const i=Vr(this),a=$c(s,o.bind(r),n);return i(),a}function Vc(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${mt(t)}Modifiers`]||e[`${gn(t)}Modifiers`];function tp(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ge;let s=n;const o=t.startsWith("update:"),i=o&&ep(r,t.slice(7));i&&(i.trim&&(s=n.map(u=>Re(u)?u.trim():u)),i.number&&(s=n.map(is)));let a,l=r[a=Ys(t)]||r[a=Ys(mt(t))];!l&&o&&(l=r[a=Ys(gn(t))]),l&&vt(l,e,6,s);const c=r[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,vt(c,e,6,s)}}const np=new WeakMap;function Hc(e,t,n=!1){const r=n?np:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},a=!1;if(!ne(e)){const l=c=>{const u=Hc(c,t,!0);u&&(a=!0,ke(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!o&&!a?(me(e)&&r.set(e,null),null):(J(o)?o.forEach(l=>i[l]=null):ke(i,o),me(e)&&r.set(e,i),i)}function Ns(e,t){return!e||!vs(t)?!1:(t=t.slice(2).replace(/Once$/,""),pe(e,t[0].toLowerCase()+t.slice(1))||pe(e,gn(t))||pe(e,t))}function Wi(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:a,emit:l,render:c,renderCache:u,props:f,data:d,setupState:m,ctx:E,inheritAttrs:S}=e,w=fs(e);let R,x;try{if(n.shapeFlag&4){const v=s||r,L=v;R=Ot(c.call(L,v,u,f,m,d,E)),x=a}else{const v=t;R=Ot(v.length>1?v(f,{attrs:a,slots:i,emit:l}):v(f,null)),x=t.props?a:rp(a)}}catch(v){mr.length=0,Ps(v,e,1),R=Ae(qe)}let b=R;if(x&&S!==!1){const v=Object.keys(x),{shapeFlag:L}=b;v.length&&L&7&&(o&&v.some(zo)&&(x=sp(x,o)),b=pn(b,x,!1,!0))}return n.dirs&&(b=pn(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&kn(b,n.transition),R=b,fs(w),R}const rp=e=>{let t;for(const n in e)(n==="class"||n==="style"||vs(n))&&((t||(t={}))[n]=e[n]);return t},sp=(e,t)=>{const n={};for(const r in e)(!zo(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function op(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:a,patchFlag:l}=t,c=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return r?Bi(r,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let f=0;fe.__isSuspense;function ap(e,t){t&&t.pendingBranch?J(e)?t.effects.push(...e):t.effects.push(e):Ed(e)}const De=Symbol.for("v-fgt"),$r=Symbol.for("v-txt"),qe=Symbol.for("v-cmt"),no=Symbol.for("v-stc"),mr=[];let ut=null;function Be(e=!1){mr.push(ut=e?null:[])}function lp(){mr.pop(),ut=mr[mr.length-1]||null}let Cr=1;function hs(e,t=!1){Cr+=e,e<0&&ut&&t&&(ut.hasOnce=!0)}function Bc(e){return e.dynamicChildren=Cr>0?ut||Wn:null,lp(),Cr>0&&ut&&ut.push(e),e}function jt(e,t,n,r,s,o){return Bc(Ve(e,t,n,r,s,o,!0))}function dn(e,t,n,r,s){return Bc(Ae(e,t,n,r,s,!0))}function Lr(e){return e?e.__v_isVNode===!0:!1}function An(e,t){return e.type===t.type&&e.key===t.key}const jc=({key:e})=>e??null,es=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Re(e)||Te(e)||ne(e)?{i:We,r:e,k:t,f:!!n}:e:null);function Ve(e,t=null,n=null,r=0,s=null,o=e===De?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&jc(t),ref:t&&es(t),scopeId:lc,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:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:We};return a?(pi(l,n),o&128&&e.normalize(l)):n&&(l.shapeFlag|=Re(n)?8:16),Cr>0&&!i&&ut&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&ut.push(l),l}const Ae=cp;function cp(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===vc)&&(e=qe),Lr(e)){const a=pn(e,t,!0);return n&&pi(a,n),Cr>0&&!o&&ut&&(a.shapeFlag&6?ut[ut.indexOf(e)]=a:ut.push(a)),a.patchFlag=-2,a}if(vp(e)&&(e=e.__vccOpts),t){t=up(t);let{class:a,style:l}=t;a&&!Re(a)&&(t.class=Nt(a)),me(l)&&(ii(l)&&!J(l)&&(l=ke({},l)),t.style=Cs(l))}const i=Re(e)?1:Wc(e)?128:cc(e)?64:me(e)?4:ne(e)?2:0;return Ve(e,t,n,r,s,i,o,!0)}function up(e){return e?ii(e)||Nc(e)?ke({},e):e:null}function pn(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:a,transition:l}=e,c=t?dp(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&jc(c),ref:t&&t.ref?n&&o?J(o)?o.concat(es(t)):[o,es(t)]:es(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==De?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&pn(e.ssContent),ssFallback:e.ssFallback&&pn(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&r&&kn(u,l.clone(u)),u}function fp(e=" ",t=0){return Ae($r,null,e,t)}function Kc(e="",t=!1){return t?(Be(),dn(qe,null,e)):Ae(qe,null,e)}function Ot(e){return e==null||typeof e=="boolean"?Ae(qe):J(e)?Ae(De,null,e.slice()):Lr(e)?on(e):Ae($r,null,String(e))}function on(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:pn(e)}function pi(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(J(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),pi(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Nc(t)?t._ctx=We:s===3&&We&&(We.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ne(t)?(t={default:t,_ctx:We},n=32):(t=String(t),r&64?(n=16,t=[fp(t)]):n=8);e.children=t,e.shapeFlag|=n}function dp(...e){const t={};for(let n=0;nYe||We;let ms,Co;{const e=Ts(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};ms=t("__VUE_INSTANCE_SETTERS__",n=>Ye=n),Co=t("__VUE_SSR_SETTERS__",n=>Pr=n)}const Vr=e=>{const t=Ye;return ms(e),e.scope.on(),()=>{e.scope.off(),ms(t)}},ji=()=>{Ye&&Ye.scope.off(),ms(null)};function Gc(e){return e.vnode.shapeFlag&4}let Pr=!1;function gp(e,t=!1,n=!1){t&&Co(t);const{props:r,children:s}=e.vnode,o=Gc(e);Hd(e,r,o,t),Kd(e,s,n||t);const i=o?_p(e,t):void 0;return t&&Co(!1),i}function _p(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Id);const{setup:r}=n;if(r){qt();const s=e.setupContext=r.length>1?bp(e):null,o=Vr(e),i=Ur(r,e,0,[e.props,s]),a=Ol(i);if(Yt(),o(),(a||e.sp)&&!Kn(e)&&mc(e),a){if(i.then(ji,ji),t)return i.then(l=>{Ki(e,l)}).catch(l=>{Ps(l,e,0)});e.asyncDep=i}else Ki(e,i)}else qc(e)}function Ki(e,t,n){ne(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:me(t)&&(e.setupState=nc(t)),qc(e)}function qc(e,t,n){const r=e.type;e.render||(e.render=r.render||xt);{const s=Vr(e);qt();try{xd(e)}finally{Yt(),s()}}}const yp={get(e,t){return Ge(e,"get",""),e[t]}};function bp(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,yp),slots:e.slots,emit:e.emit,expose:t}}function Is(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(nc(ai(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in hr)return hr[n](e)},has(t,n){return n in t||n in hr}})):e.proxy}function Ep(e,t=!0){return ne(e)?e.displayName||e.name:e.name||t&&e.__name}function vp(e){return ne(e)&&"__vccOpts"in e}const _e=(e,t)=>md(e,t,Pr);function hn(e,t,n){const r=(o,i,a)=>{hs(-1);try{return Ae(o,i,a)}finally{hs(1)}},s=arguments.length;return s===2?me(t)&&!J(t)?Lr(t)?r(e,null,[t]):r(e,t):r(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Lr(n)&&(n=[n]),r(e,t,n))}const Sp="3.5.21";/** +* @vue/runtime-dom v3.5.21 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Lo;const Gi=typeof window<"u"&&window.trustedTypes;if(Gi)try{Lo=Gi.createPolicy("vue",{createHTML:e=>e})}catch{}const Yc=Lo?e=>Lo.createHTML(e):e=>e,wp="http://www.w3.org/2000/svg",Tp="http://www.w3.org/1998/Math/MathML",$t=typeof document<"u"?document:null,qi=$t&&$t.createElement("template"),Cp={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?$t.createElementNS(wp,e):t==="mathml"?$t.createElementNS(Tp,e):n?$t.createElement(e,{is:n}):$t.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>$t.createTextNode(e),createComment:e=>$t.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>$t.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{qi.innerHTML=Yc(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const a=qi.content;if(r==="svg"||r==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Zt="transition",or="animation",Gn=Symbol("_vtc"),zc={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},Xc=ke({},fc,zc),Lp=e=>(e.displayName="Transition",e.props=Xc,e),Jc=Lp((e,{slots:t})=>hn(wd,Qc(e),t)),wn=(e,t=[])=>{J(e)?e.forEach(n=>n(...t)):e&&e(...t)},Yi=e=>e?J(e)?e.some(t=>t.length>1):e.length>1:!1;function Qc(e){const t={};for(const V in e)V in zc||(t[V]=e[V]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=o,appearActiveClass:c=i,appearToClass:u=a,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,E=Pp(s),S=E&&E[0],w=E&&E[1],{onBeforeEnter:R,onEnter:x,onEnterCancelled:b,onLeave:v,onLeaveCancelled:L,onBeforeAppear:O=R,onAppear:D=x,onAppearCancelled:$=b}=t,A=(V,Q,ye,Ne)=>{V._enterCancelled=Ne,nn(V,Q?u:a),nn(V,Q?c:i),ye&&ye()},Y=(V,Q)=>{V._isLeaving=!1,nn(V,f),nn(V,m),nn(V,d),Q&&Q()},ee=V=>(Q,ye)=>{const Ne=V?D:x,oe=()=>A(Q,V,ye);wn(Ne,[Q,oe]),zi(()=>{nn(Q,V?l:o),At(Q,V?u:a),Yi(Ne)||Xi(Q,r,S,oe)})};return ke(t,{onBeforeEnter(V){wn(R,[V]),At(V,o),At(V,i)},onBeforeAppear(V){wn(O,[V]),At(V,l),At(V,c)},onEnter:ee(!1),onAppear:ee(!0),onLeave(V,Q){V._isLeaving=!0;const ye=()=>Y(V,Q);At(V,f),V._enterCancelled?(At(V,d),Po()):(Po(),At(V,d)),zi(()=>{V._isLeaving&&(nn(V,f),At(V,m),Yi(v)||Xi(V,r,w,ye))}),wn(v,[V,ye])},onEnterCancelled(V){A(V,!1,void 0,!0),wn(b,[V])},onAppearCancelled(V){A(V,!0,void 0,!0),wn($,[V])},onLeaveCancelled(V){Y(V),wn(L,[V])}})}function Pp(e){if(e==null)return null;if(me(e))return[ro(e.enter),ro(e.leave)];{const t=ro(e);return[t,t]}}function ro(e){return kf(e)}function At(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Gn]||(e[Gn]=new Set)).add(t)}function nn(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Gn];n&&(n.delete(t),n.size||(e[Gn]=void 0))}function zi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Ap=0;function Xi(e,t,n,r){const s=e._endId=++Ap,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:a,propCount:l}=Zc(e,t);if(!i)return r();const c=i+"end";let u=0;const f=()=>{e.removeEventListener(c,d),o()},d=m=>{m.target===e&&++u>=l&&f()};setTimeout(()=>{u(n[E]||"").split(", "),s=r(`${Zt}Delay`),o=r(`${Zt}Duration`),i=Ji(s,o),a=r(`${or}Delay`),l=r(`${or}Duration`),c=Ji(a,l);let u=null,f=0,d=0;t===Zt?i>0&&(u=Zt,f=i,d=o.length):t===or?c>0&&(u=or,f=c,d=l.length):(f=Math.max(i,c),u=f>0?i>c?Zt:or:null,d=u?u===Zt?o.length:l.length:0);const m=u===Zt&&/\b(?:transform|all)(?:,|$)/.test(r(`${Zt}Property`).toString());return{type:u,timeout:f,propCount:d,hasTransform:m}}function Ji(e,t){for(;e.lengthQi(n)+Qi(e[r])))}function Qi(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Po(){return document.body.offsetHeight}function Rp(e,t,n){const r=e[Gn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Zi=Symbol("_vod"),Op=Symbol("_vsh"),Np=Symbol(""),Ip=/(?:^|;)\s*display\s*:/;function xp(e,t,n){const r=e.style,s=Re(n);let o=!1;if(n&&!s){if(t)if(Re(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&ts(r,a,"")}else for(const i in t)n[i]==null&&ts(r,i,"");for(const i in n)i==="display"&&(o=!0),ts(r,i,n[i])}else if(s){if(t!==n){const i=r[Np];i&&(n+=";"+i),r.cssText=n,o=Ip.test(n)}}else t&&e.removeAttribute("style");Zi in e&&(e[Zi]=o?r.display:"",e[Op]&&(r.display="none"))}const ea=/\s*!important$/;function ts(e,t,n){if(J(n))n.forEach(r=>ts(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=kp(e,t);ea.test(n)?e.setProperty(gn(r),n.replace(ea,""),"important"):e[r]=n}}const ta=["Webkit","Moz","ms"],so={};function kp(e,t){const n=so[t];if(n)return n;let r=mt(t);if(r!=="filter"&&r in e)return so[t]=r;r=ws(r);for(let s=0;soo||(Up.then(()=>oo=0),oo=Date.now());function Vp(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;vt(Hp(r,n.value),t,5,[r])};return n.value=e,n.attached=$p(),n}function Hp(e,t){if(J(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const aa=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Wp=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?Rp(e,r,i):t==="style"?xp(e,n,r):vs(t)?zo(t)||Dp(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Bp(e,t,r,i))?(sa(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ra(e,t,r,i,o,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Re(r))?sa(e,mt(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),ra(e,t,r,i))};function Bp(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&aa(t)&&ne(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return aa(t)&&Re(n)?!1:t in e}const eu=new WeakMap,tu=new WeakMap,gs=Symbol("_moveCb"),la=Symbol("_enterCb"),jp=e=>(delete e.props.mode,e),Kp=jp({name:"TransitionGroup",props:ke({},Xc,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=zt(),r=uc();let s,o;return yc(()=>{if(!s.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!Xp(s[0].el,n.vnode.el,i)){s=[];return}s.forEach(qp),s.forEach(Yp);const a=s.filter(zp);Po(),a.forEach(l=>{const c=l.el,u=c.style;At(c,i),u.transform=u.webkitTransform=u.transitionDuration="";const f=c[gs]=d=>{d&&d.target!==c||(!d||d.propertyName.endsWith("transform"))&&(c.removeEventListener("transitionend",f),c[gs]=null,nn(c,i))};c.addEventListener("transitionend",f)}),s=[]}),()=>{const i=ce(e),a=Qc(i);let l=i.tag||De;if(s=[],o)for(let c=0;c{a.split(/\s+/).forEach(l=>l&&r.classList.remove(l))}),n.split(/\s+/).forEach(a=>a&&r.classList.add(a)),r.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(r);const{hasTransform:i}=Zc(r);return o.removeChild(r),i}const qn=e=>{const t=e.props["onUpdate:modelValue"]||!1;return J(t)?n=>Zr(t,n):t};function Jp(e){e.target.composing=!0}function ca(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Gt=Symbol("_assign"),Qb={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Gt]=qn(s);const o=r||s.props&&s.props.type==="number";ln(e,t?"change":"input",i=>{if(i.target.composing)return;let a=e.value;n&&(a=a.trim()),o&&(a=is(a)),e[Gt](a)}),n&&ln(e,"change",()=>{e.value=e.value.trim()}),t||(ln(e,"compositionstart",Jp),ln(e,"compositionend",ca),ln(e,"change",ca))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Gt]=qn(i),e.composing)return;const a=(o||e.type==="number")&&!/^0\d/.test(e.value)?is(e.value):e.value,l=t??"";a!==l&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===l)||(e.value=l))}},Zb={deep:!0,created(e,t,n){e[Gt]=qn(n),ln(e,"change",()=>{const r=e._modelValue,s=Ar(e),o=e.checked,i=e[Gt];if(J(r)){const a=Qo(r,s),l=a!==-1;if(o&&!l)i(r.concat(s));else if(!o&&l){const c=[...r];c.splice(a,1),i(c)}}else if(Qn(r)){const a=new Set(r);o?a.add(s):a.delete(s),i(a)}else i(nu(e,o))})},mounted:ua,beforeUpdate(e,t,n){e[Gt]=qn(n),ua(e,t,n)}};function ua(e,{value:t,oldValue:n},r){e._modelValue=t;let s;if(J(t))s=Qo(t,r.props.value)>-1;else if(Qn(t))s=t.has(r.props.value);else{if(t===n)return;s=Dr(t,nu(e,!0))}e.checked!==s&&(e.checked=s)}const eE={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const s=Qn(t);ln(e,"change",()=>{const o=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?is(Ar(i)):Ar(i));e[Gt](e.multiple?s?new Set(o):o:o[0]),e._assigning=!0,As(()=>{e._assigning=!1})}),e[Gt]=qn(r)},mounted(e,{value:t}){fa(e,t)},beforeUpdate(e,t,n){e[Gt]=qn(n)},updated(e,{value:t}){e._assigning||fa(e,t)}};function fa(e,t){const n=e.multiple,r=J(t);if(!(n&&!r&&!Qn(t))){for(let s=0,o=e.options.length;sString(c)===String(a)):i.selected=Qo(t,a)>-1}else i.selected=t.has(a);else if(Dr(Ar(i),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Ar(e){return"_value"in e?e._value:e.value}function nu(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Qp=["ctrl","shift","alt","meta"],Zp={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Qp.some(n=>e[`${n}Key`]&&!t.includes(n))},tE=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=(s=>{if(!("key"in s))return;const o=gn(s.key);if(t.some(i=>i===o||eh[i]===o))return e(s)}))},th=ke({patchProp:Wp},Cp);let da;function nh(){return da||(da=qd(th))}const rh=((...e)=>{const t=nh().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=oh(r);if(!s)return;const o=t._component;!ne(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,sh(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t});function sh(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function oh(e){return Re(e)?document.querySelector(e):e}/*! + * pinia v3.0.3 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */let ru;const xs=e=>ru=e,su=Symbol();function Ao(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var gr;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(gr||(gr={}));function ih(){const e=Zo(!0),t=e.run(()=>st({}));let n=[],r=[];const s=ai({install(o){xs(s),s._a=o,o.provide(su,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const ou=()=>{};function pa(e,t,n,r=ou){e.push(t);const s=()=>{const o=e.indexOf(t);o>-1&&(e.splice(o,1),r())};return!n&&Ul()&&Wf(s),s}function Mn(e,...t){e.slice().forEach(n=>{n(...t)})}const ah=e=>e(),ha=Symbol(),io=Symbol();function Ro(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];Ao(s)&&Ao(r)&&e.hasOwnProperty(n)&&!Te(r)&&!Kt(r)?e[n]=Ro(s,r):e[n]=r}return e}const lh=Symbol();function ch(e){return!Ao(e)||!Object.prototype.hasOwnProperty.call(e,lh)}const{assign:rn}=Object;function uh(e){return!!(Te(e)&&e.effect)}function fh(e,t,n,r){const{state:s,actions:o,getters:i}=t,a=n.state.value[e];let l;function c(){a||(n.state.value[e]=s?s():{});const u=ud(n.state.value[e]);return rn(u,o,Object.keys(i||{}).reduce((f,d)=>(f[d]=ai(_e(()=>{xs(n);const m=n._s.get(e);return i[d].call(m,m)})),f),{}))}return l=iu(e,c,t,n,r,!0),l}function iu(e,t,n={},r,s,o){let i;const a=rn({actions:{}},n),l={deep:!0};let c,u,f=[],d=[],m;const E=r.state.value[e];!o&&!E&&(r.state.value[e]={}),st({});let S;function w($){let A;c=u=!1,typeof $=="function"?($(r.state.value[e]),A={type:gr.patchFunction,storeId:e,events:m}):(Ro(r.state.value[e],$),A={type:gr.patchObject,payload:$,storeId:e,events:m});const Y=S=Symbol();As().then(()=>{S===Y&&(c=!0)}),u=!0,Mn(f,A,r.state.value[e])}const R=o?function(){const{state:A}=n,Y=A?A():{};this.$patch(ee=>{rn(ee,Y)})}:ou;function x(){i.stop(),f=[],d=[],r._s.delete(e)}const b=($,A="")=>{if(ha in $)return $[io]=A,$;const Y=function(){xs(r);const ee=Array.from(arguments),V=[],Q=[];function ye(te){V.push(te)}function Ne(te){Q.push(te)}Mn(d,{args:ee,name:Y[io],store:L,after:ye,onError:Ne});let oe;try{oe=$.apply(this&&this.$id===e?this:L,ee)}catch(te){throw Mn(Q,te),te}return oe instanceof Promise?oe.then(te=>(Mn(V,te),te)).catch(te=>(Mn(Q,te),Promise.reject(te))):(Mn(V,oe),oe)};return Y[ha]=!0,Y[io]=A,Y},v={_p:r,$id:e,$onAction:pa.bind(null,d),$patch:w,$reset:R,$subscribe($,A={}){const Y=pa(f,$,A.detached,()=>ee()),ee=i.run(()=>un(()=>r.state.value[e],V=>{(A.flush==="sync"?u:c)&&$({storeId:e,type:gr.direct,events:m},V)},rn({},l,A)));return Y},$dispose:x},L=Mr(v);r._s.set(e,L);const D=(r._a&&r._a.runWithContext||ah)(()=>r._e.run(()=>(i=Zo()).run(()=>t({action:b}))));for(const $ in D){const A=D[$];if(Te(A)&&!uh(A)||Kt(A))o||(E&&ch(A)&&(Te(A)?A.value=E[$]:Ro(A,E[$])),r.state.value[e][$]=A);else if(typeof A=="function"){const Y=b(A,$);D[$]=Y,a.actions[$]=A}}return rn(L,D),rn(ce(L),D),Object.defineProperty(L,"$state",{get:()=>r.state.value[e],set:$=>{w(A=>{rn(A,$)})}}),r._p.forEach($=>{rn(L,i.run(()=>$({store:L,app:r._a,pinia:r,options:a})))}),E&&o&&n.hydrate&&n.hydrate(L.$state,E),c=!0,u=!0,L}/*! #__NO_SIDE_EFFECTS__ */function dh(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,a){const l=Vd();return i=i||(l?Xe(su,null):null),i&&xs(i),i=ru,i._s.has(e)||(s?iu(e,t,r,i):fh(e,r,i)),i._s.get(e)}return o.$id=e,o}function ph(e){const t=ce(e),n={};for(const r in t){const s=t[r];s.effect?n[r]=_e({get:()=>e[r],set(o){e[r]=o}}):(Te(s)||Kt(s))&&(n[r]=pd(e,r))}return n}/*! + * vue-router v4.5.1 + * (c) 2025 Eduardo San Martin Morote + * @license MIT + */const $n=typeof document<"u";function au(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function hh(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&au(e.default)}const de=Object.assign;function ao(e,t){const n={};for(const r in t){const s=t[r];n[r]=St(s)?s.map(e):e(s)}return n}const _r=()=>{},St=Array.isArray,lu=/#/g,mh=/&/g,gh=/\//g,_h=/=/g,yh=/\?/g,cu=/\+/g,bh=/%5B/g,Eh=/%5D/g,uu=/%5E/g,vh=/%60/g,fu=/%7B/g,Sh=/%7C/g,du=/%7D/g,wh=/%20/g;function hi(e){return encodeURI(""+e).replace(Sh,"|").replace(bh,"[").replace(Eh,"]")}function Th(e){return hi(e).replace(fu,"{").replace(du,"}").replace(uu,"^")}function Oo(e){return hi(e).replace(cu,"%2B").replace(wh,"+").replace(lu,"%23").replace(mh,"%26").replace(vh,"`").replace(fu,"{").replace(du,"}").replace(uu,"^")}function Ch(e){return Oo(e).replace(_h,"%3D")}function Lh(e){return hi(e).replace(lu,"%23").replace(yh,"%3F")}function Ph(e){return e==null?"":Lh(e).replace(gh,"%2F")}function Rr(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const Ah=/\/$/,Rh=e=>e.replace(Ah,"");function lo(e,t,n="/"){let r,s={},o="",i="";const a=t.indexOf("#");let l=t.indexOf("?");return a=0&&(l=-1),l>-1&&(r=t.slice(0,l),o=t.slice(l+1,a>-1?a:t.length),s=e(o)),a>-1&&(r=r||t.slice(0,a),i=t.slice(a,t.length)),r=xh(r??t,n),{fullPath:r+(o&&"?")+o+i,path:r,query:s,hash:Rr(i)}}function Oh(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ma(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Nh(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&Yn(t.matched[r],n.matched[s])&&pu(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Yn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function pu(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Ih(e[n],t[n]))return!1;return!0}function Ih(e,t){return St(e)?ga(e,t):St(t)?ga(t,e):e===t}function ga(e,t){return St(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function xh(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,a;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const en={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Or;(function(e){e.pop="pop",e.push="push"})(Or||(Or={}));var yr;(function(e){e.back="back",e.forward="forward",e.unknown=""})(yr||(yr={}));function kh(e){if(!e)if($n){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Rh(e)}const Fh=/^[^#]+#/;function Dh(e,t){return e.replace(Fh,"#")+t}function Mh(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const ks=()=>({left:window.scrollX,top:window.scrollY});function Uh(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Mh(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function _a(e,t){return(history.state?history.state.position-t:-1)+e}const No=new Map;function $h(e,t){No.set(e,t)}function Vh(e){const t=No.get(e);return No.delete(e),t}let Hh=()=>location.protocol+"//"+location.host;function hu(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let a=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(a);return l[0]!=="/"&&(l="/"+l),ma(l,"")}return ma(n,e)+r+s}function Wh(e,t,n,r){let s=[],o=[],i=null;const a=({state:d})=>{const m=hu(e,location),E=n.value,S=t.value;let w=0;if(d){if(n.value=m,t.value=d,i&&i===E){i=null;return}w=S?d.position-S.position:0}else r(m);s.forEach(R=>{R(n.value,E,{delta:w,type:Or.pop,direction:w?w>0?yr.forward:yr.back:yr.unknown})})};function l(){i=n.value}function c(d){s.push(d);const m=()=>{const E=s.indexOf(d);E>-1&&s.splice(E,1)};return o.push(m),m}function u(){const{history:d}=window;d.state&&d.replaceState(de({},d.state,{scroll:ks()}),"")}function f(){for(const d of o)d();o=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",u,{passive:!0}),{pauseListeners:l,listen:c,destroy:f}}function ya(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?ks():null}}function Bh(e){const{history:t,location:n}=window,r={value:hu(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,c,u){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+l:Hh()+e+l;try{t[u?"replaceState":"pushState"](c,"",d),s.value=c}catch(m){console.error(m),n[u?"replace":"assign"](d)}}function i(l,c){const u=de({},t.state,ya(s.value.back,l,s.value.forward,!0),c,{position:s.value.position});o(l,u,!0),r.value=l}function a(l,c){const u=de({},s.value,t.state,{forward:l,scroll:ks()});o(u.current,u,!0);const f=de({},ya(r.value,l,null),{position:u.position+1},c);o(l,f,!1),r.value=l}return{location:r,state:s,push:a,replace:i}}function jh(e){e=kh(e);const t=Bh(e),n=Wh(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=de({location:"",base:e,go:r,createHref:Dh.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Kh(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),jh(e)}function Gh(e){return typeof e=="string"||e&&typeof e=="object"}function mu(e){return typeof e=="string"||typeof e=="symbol"}const gu=Symbol("");var ba;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(ba||(ba={}));function zn(e,t){return de(new Error,{type:e,[gu]:!0},t)}function Dt(e,t){return e instanceof Error&&gu in e&&(t==null||!!(e.type&t))}const Ea="[^/]+?",qh={sensitive:!1,strict:!1,start:!0,end:!0},Yh=/[.+*?^${}()[\]/\\]/g;function zh(e,t){const n=de({},qh,t),r=[];let s=n.start?"^":"";const o=[];for(const c of e){const u=c.length?[]:[90];n.strict&&!c.length&&(s+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function _u(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const Jh={type:0,value:""},Qh=/[a-zA-Z0-9_]/;function Zh(e){if(!e)return[[]];if(e==="/")return[[Jh]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${c}": ${m}`)}let n=0,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let a=0,l,c="",u="";function f(){c&&(n===0?o.push({type:0,value:c}):n===1||n===2||n===3?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:c,regexp:u,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),c="")}function d(){c+=l}for(;a{i(b)}:_r}function i(f){if(mu(f)){const d=r.get(f);d&&(r.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(i),d.alias.forEach(i))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function a(){return n}function l(f){const d=sm(f,n);n.splice(d,0,f),f.record.name&&!Ta(f)&&r.set(f.record.name,f)}function c(f,d){let m,E={},S,w;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw zn(1,{location:f});w=m.record.name,E=de(Sa(d.params,m.keys.filter(b=>!b.optional).concat(m.parent?m.parent.keys.filter(b=>b.optional):[]).map(b=>b.name)),f.params&&Sa(f.params,m.keys.map(b=>b.name))),S=m.stringify(E)}else if(f.path!=null)S=f.path,m=n.find(b=>b.re.test(S)),m&&(E=m.parse(S),w=m.record.name);else{if(m=d.name?r.get(d.name):n.find(b=>b.re.test(d.path)),!m)throw zn(1,{location:f,currentLocation:d});w=m.record.name,E=de({},d.params,f.params),S=m.stringify(E)}const R=[];let x=m;for(;x;)R.unshift(x.record),x=x.parent;return{name:w,path:S,params:E,matched:R,meta:rm(R)}}e.forEach(f=>o(f));function u(){n.length=0,r.clear()}return{addRoute:o,resolve:c,removeRoute:i,clearRoutes:u,getRoutes:a,getRecordMatcher:s}}function Sa(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function wa(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:nm(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function nm(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Ta(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function rm(e){return e.reduce((t,n)=>de(t,n.meta),{})}function Ca(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function sm(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;_u(e,t[o])<0?r=o:n=o+1}const s=om(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function om(e){let t=e;for(;t=t.parent;)if(yu(t)&&_u(e,t)===0)return t}function yu({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function im(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;so&&Oo(o)):[r&&Oo(r)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function am(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=St(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const lm=Symbol(""),Pa=Symbol(""),Fs=Symbol(""),mi=Symbol(""),Io=Symbol("");function ir(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function an(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((a,l)=>{const c=d=>{d===!1?l(zn(4,{from:n,to:t})):d instanceof Error?l(d):Gh(d)?l(zn(2,{from:t,to:d})):(i&&r.enterCallbacks[s]===i&&typeof d=="function"&&i.push(d),a())},u=o(()=>e.call(r&&r.instances[s],t,n,c));let f=Promise.resolve(u);e.length<3&&(f=f.then(c)),f.catch(d=>l(d))})}function co(e,t,n,r,s=o=>o()){const o=[];for(const i of e)for(const a in i.components){let l=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if(au(l)){const u=(l.__vccOpts||l)[t];u&&o.push(an(u,n,r,i,a,s))}else{let c=l();o.push(()=>c.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${a}" at "${i.path}"`);const f=hh(u)?u.default:u;i.mods[a]=u,i.components[a]=f;const m=(f.__vccOpts||f)[t];return m&&an(m,n,r,i,a,s)()}))}}return o}function Aa(e){const t=Xe(Fs),n=Xe(mi),r=_e(()=>{const l=Se(e.to);return t.resolve(l)}),s=_e(()=>{const{matched:l}=r.value,{length:c}=l,u=l[c-1],f=n.matched;if(!u||!f.length)return-1;const d=f.findIndex(Yn.bind(null,u));if(d>-1)return d;const m=Ra(l[c-2]);return c>1&&Ra(u)===m&&f[f.length-1].path!==m?f.findIndex(Yn.bind(null,l[c-2])):d}),o=_e(()=>s.value>-1&&pm(n.params,r.value.params)),i=_e(()=>s.value>-1&&s.value===n.matched.length-1&&pu(n.params,r.value.params));function a(l={}){if(dm(l)){const c=t[Se(e.replace)?"replace":"push"](Se(e.to)).catch(_r);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:r,href:_e(()=>r.value.href),isActive:o,isExactActive:i,navigate:a}}function cm(e){return e.length===1?e[0]:e}const um=Xt({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Aa,setup(e,{slots:t}){const n=Mr(Aa(e)),{options:r}=Xe(Fs),s=_e(()=>({[Oa(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[Oa(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&cm(t.default(n));return e.custom?o:hn("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),fm=um;function dm(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function pm(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!St(s)||s.length!==r.length||r.some((o,i)=>o!==s[i]))return!1}return!0}function Ra(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Oa=(e,t,n)=>e??t??n,hm=Xt({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Xe(Io),s=_e(()=>e.route||r.value),o=Xe(Pa,0),i=_e(()=>{let c=Se(o);const{matched:u}=s.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),a=_e(()=>s.value.matched[i.value]);In(Pa,_e(()=>i.value+1)),In(lm,a),In(Io,s);const l=st();return un(()=>[l.value,a.value,e.name],([c,u,f],[d,m,E])=>{u&&(u.instances[f]=c,m&&m!==u&&c&&c===d&&(u.leaveGuards.size||(u.leaveGuards=m.leaveGuards),u.updateGuards.size||(u.updateGuards=m.updateGuards))),c&&u&&(!m||!Yn(u,m)||!d)&&(u.enterCallbacks[f]||[]).forEach(S=>S(c))},{flush:"post"}),()=>{const c=s.value,u=e.name,f=a.value,d=f&&f.components[u];if(!d)return Na(n.default,{Component:d,route:c});const m=f.props[u],E=m?m===!0?c.params:typeof m=="function"?m(c):m:null,w=hn(d,de({},E,t,{onVnodeUnmounted:R=>{R.component.isUnmounted&&(f.instances[u]=null)},ref:l}));return Na(n.default,{Component:w,route:c})||w}}});function Na(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const bu=hm;function mm(e){const t=tm(e.routes,e),n=e.parseQuery||im,r=e.stringifyQuery||La,s=e.history,o=ir(),i=ir(),a=ir(),l=li(en);let c=en;$n&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=ao.bind(null,M=>""+M),f=ao.bind(null,Ph),d=ao.bind(null,Rr);function m(M,q){let j,z;return mu(M)?(j=t.getRecordMatcher(M),z=q):z=M,t.addRoute(z,j)}function E(M){const q=t.getRecordMatcher(M);q&&t.removeRoute(q)}function S(){return t.getRoutes().map(M=>M.record)}function w(M){return!!t.getRecordMatcher(M)}function R(M,q){if(q=de({},q||l.value),typeof M=="string"){const _=lo(n,M,q.path),P=t.resolve({path:_.path},q),U=s.createHref(_.fullPath);return de(_,P,{params:d(P.params),hash:Rr(_.hash),redirectedFrom:void 0,href:U})}let j;if(M.path!=null)j=de({},M,{path:lo(n,M.path,q.path).path});else{const _=de({},M.params);for(const P in _)_[P]==null&&delete _[P];j=de({},M,{params:f(_)}),q.params=f(q.params)}const z=t.resolve(j,q),ue=M.hash||"";z.params=u(d(z.params));const g=Oh(r,de({},M,{hash:Th(ue),path:z.path})),y=s.createHref(g);return de({fullPath:g,hash:ue,query:r===La?am(M.query):M.query||{}},z,{redirectedFrom:void 0,href:y})}function x(M){return typeof M=="string"?lo(n,M,l.value.path):de({},M)}function b(M,q){if(c!==M)return zn(8,{from:q,to:M})}function v(M){return D(M)}function L(M){return v(de(x(M),{replace:!0}))}function O(M){const q=M.matched[M.matched.length-1];if(q&&q.redirect){const{redirect:j}=q;let z=typeof j=="function"?j(M):j;return typeof z=="string"&&(z=z.includes("?")||z.includes("#")?z=x(z):{path:z},z.params={}),de({query:M.query,hash:M.hash,params:z.path!=null?{}:M.params},z)}}function D(M,q){const j=c=R(M),z=l.value,ue=M.state,g=M.force,y=M.replace===!0,_=O(j);if(_)return D(de(x(_),{state:typeof _=="object"?de({},ue,_.state):ue,force:g,replace:y}),q||j);const P=j;P.redirectedFrom=q;let U;return!g&&Nh(r,z,j)&&(U=zn(16,{to:P,from:z}),Le(z,z,!0,!1)),(U?Promise.resolve(U):Y(P,z)).catch(F=>Dt(F)?Dt(F,2)?F:nt(F):ae(F,P,z)).then(F=>{if(F){if(Dt(F,2))return D(de({replace:y},x(F.to),{state:typeof F.to=="object"?de({},ue,F.to.state):ue,force:g}),q||P)}else F=V(P,z,!0,y,ue);return ee(P,z,F),F})}function $(M,q){const j=b(M,q);return j?Promise.reject(j):Promise.resolve()}function A(M){const q=at.values().next().value;return q&&typeof q.runWithContext=="function"?q.runWithContext(M):M()}function Y(M,q){let j;const[z,ue,g]=gm(M,q);j=co(z.reverse(),"beforeRouteLeave",M,q);for(const _ of z)_.leaveGuards.forEach(P=>{j.push(an(P,M,q))});const y=$.bind(null,M,q);return j.push(y),Fe(j).then(()=>{j=[];for(const _ of o.list())j.push(an(_,M,q));return j.push(y),Fe(j)}).then(()=>{j=co(ue,"beforeRouteUpdate",M,q);for(const _ of ue)_.updateGuards.forEach(P=>{j.push(an(P,M,q))});return j.push(y),Fe(j)}).then(()=>{j=[];for(const _ of g)if(_.beforeEnter)if(St(_.beforeEnter))for(const P of _.beforeEnter)j.push(an(P,M,q));else j.push(an(_.beforeEnter,M,q));return j.push(y),Fe(j)}).then(()=>(M.matched.forEach(_=>_.enterCallbacks={}),j=co(g,"beforeRouteEnter",M,q,A),j.push(y),Fe(j))).then(()=>{j=[];for(const _ of i.list())j.push(an(_,M,q));return j.push(y),Fe(j)}).catch(_=>Dt(_,8)?_:Promise.reject(_))}function ee(M,q,j){a.list().forEach(z=>A(()=>z(M,q,j)))}function V(M,q,j,z,ue){const g=b(M,q);if(g)return g;const y=q===en,_=$n?history.state:{};j&&(z||y?s.replace(M.fullPath,de({scroll:y&&_&&_.scroll},ue)):s.push(M.fullPath,ue)),l.value=M,Le(M,q,j,y),nt()}let Q;function ye(){Q||(Q=s.listen((M,q,j)=>{if(!Tt.listening)return;const z=R(M),ue=O(z);if(ue){D(de(ue,{replace:!0,force:!0}),z).catch(_r);return}c=z;const g=l.value;$n&&$h(_a(g.fullPath,j.delta),ks()),Y(z,g).catch(y=>Dt(y,12)?y:Dt(y,2)?(D(de(x(y.to),{force:!0}),z).then(_=>{Dt(_,20)&&!j.delta&&j.type===Or.pop&&s.go(-1,!1)}).catch(_r),Promise.reject()):(j.delta&&s.go(-j.delta,!1),ae(y,z,g))).then(y=>{y=y||V(z,g,!1),y&&(j.delta&&!Dt(y,8)?s.go(-j.delta,!1):j.type===Or.pop&&Dt(y,20)&&s.go(-1,!1)),ee(z,g,y)}).catch(_r)}))}let Ne=ir(),oe=ir(),te;function ae(M,q,j){nt(M);const z=oe.list();return z.length?z.forEach(ue=>ue(M,q,j)):console.error(M),Promise.reject(M)}function Je(){return te&&l.value!==en?Promise.resolve():new Promise((M,q)=>{Ne.add([M,q])})}function nt(M){return te||(te=!M,ye(),Ne.list().forEach(([q,j])=>M?j(M):q()),Ne.reset()),M}function Le(M,q,j,z){const{scrollBehavior:ue}=e;if(!$n||!ue)return Promise.resolve();const g=!j&&Vh(_a(M.fullPath,0))||(z||!j)&&history.state&&history.state.scroll||null;return As().then(()=>ue(M,q,g)).then(y=>y&&Uh(y)).catch(y=>ae(y,M,q))}const Pe=M=>s.go(M);let ft;const at=new Set,Tt={currentRoute:l,listening:!0,addRoute:m,removeRoute:E,clearRoutes:t.clearRoutes,hasRoute:w,getRoutes:S,resolve:R,options:e,push:v,replace:L,go:Pe,back:()=>Pe(-1),forward:()=>Pe(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:oe.add,isReady:Je,install(M){const q=this;M.component("RouterLink",fm),M.component("RouterView",bu),M.config.globalProperties.$router=q,Object.defineProperty(M.config.globalProperties,"$route",{enumerable:!0,get:()=>Se(l)}),$n&&!ft&&l.value===en&&(ft=!0,v(s.location).catch(ue=>{}));const j={};for(const ue in en)Object.defineProperty(j,ue,{get:()=>l.value[ue],enumerable:!0});M.provide(Fs,q),M.provide(mi,Zl(j)),M.provide(Io,l);const z=M.unmount;at.add(M),M.unmount=function(){at.delete(M),at.size<1&&(c=en,Q&&Q(),Q=null,l.value=en,ft=!1,te=!1),z()}}};function Fe(M){return M.reduce((q,j)=>q.then(()=>A(j)),Promise.resolve())}return Tt}function gm(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iYn(c,a))?r.push(a):n.push(a));const l=e.matched[i];l&&(t.matched.find(c=>Yn(c,l))||s.push(l))}return[n,r,s]}function _m(){return Xe(Fs)}function ym(e){return Xe(mi)}/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Ia=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),bm=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),Em=e=>{const t=bm(e);return t.charAt(0).toUpperCase()+t.slice(1)},vm=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim();/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var Xr={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Sm=({size:e,strokeWidth:t=2,absoluteStrokeWidth:n,color:r,iconNode:s,name:o,class:i,...a},{slots:l})=>hn("svg",{...Xr,width:e||Xr.width,height:e||Xr.height,stroke:r||Xr.stroke,"stroke-width":n?Number(t)*24/Number(e):t,class:vm("lucide",...o?[`lucide-${Ia(Em(o))}-icon`,`lucide-${Ia(o)}`]:["lucide-icon"]),...a},[...s.map(c=>hn(...c)),...l.default?[l.default()]:[]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Qt=(e,t)=>(n,{slots:r})=>hn(Sm,{...n,iconNode:t,name:e},r);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const wm=Qt("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Tm=Qt("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Cm=Qt("circle-check-big",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Lm=Qt("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Pm=Qt("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Am=Qt("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Rm=Qt("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Om=Qt("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const Nm=Qt("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Im=Xt({__name:"ThemeToggle",setup(e){const t=Xe("isDarkMode"),n=Xe("toggleTheme"),r=()=>{n()};return(s,o)=>(Be(),jt("button",{onClick:r,class:Nt(["p-2 rounded-full transition-all duration-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 transform hover:rotate-180",Se(t)?"bg-gray-800 text-yellow-300":"bg-white text-gray-800"])},[Se(t)?(Be(),dn(Se(Am),{key:1,class:"w-6 h-6"})):(Be(),dn(Se(Rm),{key:0,class:"w-6 h-6"}))],2))}});/*! + * shared v9.14.5 + * (c) 2025 kazuya kawaguchi + * Released under the MIT License. + */function xm(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const _s=typeof window<"u",_n=(e,t=!1)=>t?Symbol.for(e):Symbol(e),km=(e,t,n)=>Fm({l:e,k:t,s:n}),Fm=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ie=e=>typeof e=="number"&&isFinite(e),Dm=e=>vu(e)==="[object Date]",mn=e=>vu(e)==="[object RegExp]",Ds=e=>re(e)&&Object.keys(e).length===0,je=Object.assign,Mm=Object.create,he=(e=null)=>Mm(e);let xa;const Bt=()=>xa||(xa=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:he());function ka(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/").replace(/=/g,"=")}function Fa(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function Um(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(r,s,o)=>`${s}="${Fa(o)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(r,s,o)=>`${s}='${Fa(o)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1on$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(r=>{e=e.replace(r,"$1javascript:")}),e}const $m=Object.prototype.hasOwnProperty;function _t(e,t){return $m.call(e,t)}const we=Array.isArray,Ee=e=>typeof e=="function",G=e=>typeof e=="string",ie=e=>typeof e=="boolean",fe=e=>e!==null&&typeof e=="object",Vm=e=>fe(e)&&Ee(e.then)&&Ee(e.catch),Eu=Object.prototype.toString,vu=e=>Eu.call(e),re=e=>{if(!fe(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Hm=e=>e==null?"":we(e)||re(e)&&e.toString===Eu?JSON.stringify(e,null,2):String(e);function Wm(e,t=""){return e.reduce((n,r,s)=>s===0?n+r:n+t+r,"")}function Ms(e){let t=e;return()=>++t}const Jr=e=>!fe(e)||we(e);function ns(e,t){if(Jr(e)||Jr(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:r,des:s}=n.pop();Object.keys(r).forEach(o=>{o!=="__proto__"&&(fe(r[o])&&!fe(s[o])&&(s[o]=Array.isArray(r[o])?[]:he()),Jr(s[o])||Jr(r[o])?s[o]=r[o]:n.push({src:r[o],des:s[o]}))})}}/*! + * message-compiler v9.14.5 + * (c) 2025 kazuya kawaguchi + * Released under the MIT License. + */function Bm(e,t,n){return{line:e,column:t,offset:n}}function ys(e,t,n){return{start:e,end:t}}const jm=/\{([0-9a-zA-Z]+)\}/g;function Su(e,...t){return t.length===1&&Km(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(jm,(n,r)=>t.hasOwnProperty(r)?t[r]:"")}const wu=Object.assign,Da=e=>typeof e=="string",Km=e=>e!==null&&typeof e=="object";function Tu(e,t=""){return e.reduce((n,r,s)=>s===0?n+r:n+t+r,"")}const gi={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Gm={[gi.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function qm(e,t,...n){const r=Su(Gm[e],...n||[]),s={message:String(r),code:e};return t&&(s.location=t),s}const Z={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},Ym={[Z.EXPECTED_TOKEN]:"Expected token: '{0}'",[Z.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[Z.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[Z.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[Z.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[Z.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[Z.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[Z.EMPTY_PLACEHOLDER]:"Empty placeholder",[Z.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[Z.INVALID_LINKED_FORMAT]:"Invalid linked format",[Z.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[Z.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[Z.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[Z.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[Z.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[Z.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function tr(e,t,n={}){const{domain:r,messages:s,args:o}=n,i=Su((s||Ym)[e]||"",...o||[]),a=new SyntaxError(String(i));return a.code=e,t&&(a.location=t),a.domain=r,a}function zm(e){throw e}const Mt=" ",Xm="\r",et=` +`,Jm="\u2028",Qm="\u2029";function Zm(e){const t=e;let n=0,r=1,s=1,o=0;const i=D=>t[D]===Xm&&t[D+1]===et,a=D=>t[D]===et,l=D=>t[D]===Qm,c=D=>t[D]===Jm,u=D=>i(D)||a(D)||l(D)||c(D),f=()=>n,d=()=>r,m=()=>s,E=()=>o,S=D=>i(D)||l(D)||c(D)?et:t[D],w=()=>S(n),R=()=>S(n+o);function x(){return o=0,u(n)&&(r++,s=0),i(n)&&n++,n++,s++,t[n]}function b(){return i(n+o)&&o++,o++,t[n+o]}function v(){n=0,r=1,s=1,o=0}function L(D=0){o=D}function O(){const D=n+o;for(;D!==n;)x();o=0}return{index:f,line:d,column:m,peekOffset:E,charAt:S,currentChar:w,currentPeek:R,next:x,peek:b,reset:v,resetPeek:L,skipToPeek:O}}const tn=void 0,eg=".",Ma="'",tg="tokenizer";function ng(e,t={}){const n=t.location!==!1,r=Zm(e),s=()=>r.index(),o=()=>Bm(r.line(),r.column(),r.index()),i=o(),a=s(),l={currentType:14,offset:a,startLoc:i,endLoc:i,lastType:14,lastOffset:a,lastStartLoc:i,lastEndLoc:i,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function f(p,h,C,...I){const K=c();if(h.column+=C,h.offset+=C,u){const H=n?ys(K.startLoc,h):null,T=tr(p,H,{domain:tg,args:I});u(T)}}function d(p,h,C){p.endLoc=o(),p.currentType=h;const I={type:h};return n&&(I.loc=ys(p.startLoc,p.endLoc)),C!=null&&(I.value=C),I}const m=p=>d(p,14);function E(p,h){return p.currentChar()===h?(p.next(),h):(f(Z.EXPECTED_TOKEN,o(),0,h),"")}function S(p){let h="";for(;p.currentPeek()===Mt||p.currentPeek()===et;)h+=p.currentPeek(),p.peek();return h}function w(p){const h=S(p);return p.skipToPeek(),h}function R(p){if(p===tn)return!1;const h=p.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h===95}function x(p){if(p===tn)return!1;const h=p.charCodeAt(0);return h>=48&&h<=57}function b(p,h){const{currentType:C}=h;if(C!==2)return!1;S(p);const I=R(p.currentPeek());return p.resetPeek(),I}function v(p,h){const{currentType:C}=h;if(C!==2)return!1;S(p);const I=p.currentPeek()==="-"?p.peek():p.currentPeek(),K=x(I);return p.resetPeek(),K}function L(p,h){const{currentType:C}=h;if(C!==2)return!1;S(p);const I=p.currentPeek()===Ma;return p.resetPeek(),I}function O(p,h){const{currentType:C}=h;if(C!==8)return!1;S(p);const I=p.currentPeek()===".";return p.resetPeek(),I}function D(p,h){const{currentType:C}=h;if(C!==9)return!1;S(p);const I=R(p.currentPeek());return p.resetPeek(),I}function $(p,h){const{currentType:C}=h;if(!(C===8||C===12))return!1;S(p);const I=p.currentPeek()===":";return p.resetPeek(),I}function A(p,h){const{currentType:C}=h;if(C!==10)return!1;const I=()=>{const H=p.currentPeek();return H==="{"?R(p.peek()):H==="@"||H==="%"||H==="|"||H===":"||H==="."||H===Mt||!H?!1:H===et?(p.peek(),I()):V(p,!1)},K=I();return p.resetPeek(),K}function Y(p){S(p);const h=p.currentPeek()==="|";return p.resetPeek(),h}function ee(p){const h=S(p),C=p.currentPeek()==="%"&&p.peek()==="{";return p.resetPeek(),{isModulo:C,hasSpace:h.length>0}}function V(p,h=!0){const C=(K=!1,H="",T=!1)=>{const k=p.currentPeek();return k==="{"?H==="%"?!1:K:k==="@"||!k?H==="%"?!0:K:k==="%"?(p.peek(),C(K,"%",!0)):k==="|"?H==="%"||T?!0:!(H===Mt||H===et):k===Mt?(p.peek(),C(!0,Mt,T)):k===et?(p.peek(),C(!0,et,T)):!0},I=C();return h&&p.resetPeek(),I}function Q(p,h){const C=p.currentChar();return C===tn?tn:h(C)?(p.next(),C):null}function ye(p){const h=p.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57||h===95||h===36}function Ne(p){return Q(p,ye)}function oe(p){const h=p.charCodeAt(0);return h>=97&&h<=122||h>=65&&h<=90||h>=48&&h<=57||h===95||h===36||h===45}function te(p){return Q(p,oe)}function ae(p){const h=p.charCodeAt(0);return h>=48&&h<=57}function Je(p){return Q(p,ae)}function nt(p){const h=p.charCodeAt(0);return h>=48&&h<=57||h>=65&&h<=70||h>=97&&h<=102}function Le(p){return Q(p,nt)}function Pe(p){let h="",C="";for(;h=Je(p);)C+=h;return C}function ft(p){w(p);const h=p.currentChar();return h!=="%"&&f(Z.EXPECTED_TOKEN,o(),0,h),p.next(),"%"}function at(p){let h="";for(;;){const C=p.currentChar();if(C==="{"||C==="}"||C==="@"||C==="|"||!C)break;if(C==="%")if(V(p))h+=C,p.next();else break;else if(C===Mt||C===et)if(V(p))h+=C,p.next();else{if(Y(p))break;h+=C,p.next()}else h+=C,p.next()}return h}function Tt(p){w(p);let h="",C="";for(;h=te(p);)C+=h;return p.currentChar()===tn&&f(Z.UNTERMINATED_CLOSING_BRACE,o(),0),C}function Fe(p){w(p);let h="";return p.currentChar()==="-"?(p.next(),h+=`-${Pe(p)}`):h+=Pe(p),p.currentChar()===tn&&f(Z.UNTERMINATED_CLOSING_BRACE,o(),0),h}function M(p){return p!==Ma&&p!==et}function q(p){w(p),E(p,"'");let h="",C="";for(;h=Q(p,M);)h==="\\"?C+=j(p):C+=h;const I=p.currentChar();return I===et||I===tn?(f(Z.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,o(),0),I===et&&(p.next(),E(p,"'")),C):(E(p,"'"),C)}function j(p){const h=p.currentChar();switch(h){case"\\":case"'":return p.next(),`\\${h}`;case"u":return z(p,h,4);case"U":return z(p,h,6);default:return f(Z.UNKNOWN_ESCAPE_SEQUENCE,o(),0,h),""}}function z(p,h,C){E(p,h);let I="";for(let K=0;K{const I=p.currentChar();return I==="{"||I==="%"||I==="@"||I==="|"||I==="("||I===")"||!I||I===Mt?C:(C+=I,p.next(),h(C))};return h("")}function P(p){w(p);const h=E(p,"|");return w(p),h}function U(p,h){let C=null;switch(p.currentChar()){case"{":return h.braceNest>=1&&f(Z.NOT_ALLOW_NEST_PLACEHOLDER,o(),0),p.next(),C=d(h,2,"{"),w(p),h.braceNest++,C;case"}":return h.braceNest>0&&h.currentType===2&&f(Z.EMPTY_PLACEHOLDER,o(),0),p.next(),C=d(h,3,"}"),h.braceNest--,h.braceNest>0&&w(p),h.inLinked&&h.braceNest===0&&(h.inLinked=!1),C;case"@":return h.braceNest>0&&f(Z.UNTERMINATED_CLOSING_BRACE,o(),0),C=F(p,h)||m(h),h.braceNest=0,C;default:{let K=!0,H=!0,T=!0;if(Y(p))return h.braceNest>0&&f(Z.UNTERMINATED_CLOSING_BRACE,o(),0),C=d(h,1,P(p)),h.braceNest=0,h.inLinked=!1,C;if(h.braceNest>0&&(h.currentType===5||h.currentType===6||h.currentType===7))return f(Z.UNTERMINATED_CLOSING_BRACE,o(),0),h.braceNest=0,B(p,h);if(K=b(p,h))return C=d(h,5,Tt(p)),w(p),C;if(H=v(p,h))return C=d(h,6,Fe(p)),w(p),C;if(T=L(p,h))return C=d(h,7,q(p)),w(p),C;if(!K&&!H&&!T)return C=d(h,13,g(p)),f(Z.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,C.value),w(p),C;break}}return C}function F(p,h){const{currentType:C}=h;let I=null;const K=p.currentChar();switch((C===8||C===9||C===12||C===10)&&(K===et||K===Mt)&&f(Z.INVALID_LINKED_FORMAT,o(),0),K){case"@":return p.next(),I=d(h,8,"@"),h.inLinked=!0,I;case".":return w(p),p.next(),d(h,9,".");case":":return w(p),p.next(),d(h,10,":");default:return Y(p)?(I=d(h,1,P(p)),h.braceNest=0,h.inLinked=!1,I):O(p,h)||$(p,h)?(w(p),F(p,h)):D(p,h)?(w(p),d(h,12,y(p))):A(p,h)?(w(p),K==="{"?U(p,h)||I:d(h,11,_(p))):(C===8&&f(Z.INVALID_LINKED_FORMAT,o(),0),h.braceNest=0,h.inLinked=!1,B(p,h))}}function B(p,h){let C={type:14};if(h.braceNest>0)return U(p,h)||m(h);if(h.inLinked)return F(p,h)||m(h);switch(p.currentChar()){case"{":return U(p,h)||m(h);case"}":return f(Z.UNBALANCED_CLOSING_BRACE,o(),0),p.next(),d(h,3,"}");case"@":return F(p,h)||m(h);default:{if(Y(p))return C=d(h,1,P(p)),h.braceNest=0,h.inLinked=!1,C;const{isModulo:K,hasSpace:H}=ee(p);if(K)return H?d(h,0,at(p)):d(h,4,ft(p));if(V(p))return d(h,0,at(p));break}}return C}function W(){const{currentType:p,offset:h,startLoc:C,endLoc:I}=l;return l.lastType=p,l.lastOffset=h,l.lastStartLoc=C,l.lastEndLoc=I,l.offset=s(),l.startLoc=o(),r.currentChar()===tn?d(l,14):B(r,l)}return{nextToken:W,currentOffset:s,currentPosition:o,context:c}}const rg="parser",sg=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function og(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const r=parseInt(t||n,16);return r<=55295||r>=57344?String.fromCodePoint(r):"�"}}}function ig(e={}){const t=e.location!==!1,{onError:n,onWarn:r}=e;function s(b,v,L,O,...D){const $=b.currentPosition();if($.offset+=O,$.column+=O,n){const A=t?ys(L,$):null,Y=tr(v,A,{domain:rg,args:D});n(Y)}}function o(b,v,L,O,...D){const $=b.currentPosition();if($.offset+=O,$.column+=O,r){const A=t?ys(L,$):null;r(qm(v,A,D))}}function i(b,v,L){const O={type:b};return t&&(O.start=v,O.end=v,O.loc={start:L,end:L}),O}function a(b,v,L,O){t&&(b.end=v,b.loc&&(b.loc.end=L))}function l(b,v){const L=b.context(),O=i(3,L.offset,L.startLoc);return O.value=v,a(O,b.currentOffset(),b.currentPosition()),O}function c(b,v){const L=b.context(),{lastOffset:O,lastStartLoc:D}=L,$=i(5,O,D);return $.index=parseInt(v,10),b.nextToken(),a($,b.currentOffset(),b.currentPosition()),$}function u(b,v,L){const O=b.context(),{lastOffset:D,lastStartLoc:$}=O,A=i(4,D,$);return A.key=v,L===!0&&(A.modulo=!0),b.nextToken(),a(A,b.currentOffset(),b.currentPosition()),A}function f(b,v){const L=b.context(),{lastOffset:O,lastStartLoc:D}=L,$=i(9,O,D);return $.value=v.replace(sg,og),b.nextToken(),a($,b.currentOffset(),b.currentPosition()),$}function d(b){const v=b.nextToken(),L=b.context(),{lastOffset:O,lastStartLoc:D}=L,$=i(8,O,D);return v.type!==12?(s(b,Z.UNEXPECTED_EMPTY_LINKED_MODIFIER,L.lastStartLoc,0),$.value="",a($,O,D),{nextConsumeToken:v,node:$}):(v.value==null&&s(b,Z.UNEXPECTED_LEXICAL_ANALYSIS,L.lastStartLoc,0,gt(v)),$.value=v.value||"",a($,b.currentOffset(),b.currentPosition()),{node:$})}function m(b,v){const L=b.context(),O=i(7,L.offset,L.startLoc);return O.value=v,a(O,b.currentOffset(),b.currentPosition()),O}function E(b){const v=b.context(),L=i(6,v.offset,v.startLoc);let O=b.nextToken();if(O.type===9){const D=d(b);L.modifier=D.node,O=D.nextConsumeToken||b.nextToken()}switch(O.type!==10&&s(b,Z.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,gt(O)),O=b.nextToken(),O.type===2&&(O=b.nextToken()),O.type){case 11:O.value==null&&s(b,Z.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,gt(O)),L.key=m(b,O.value||"");break;case 5:O.value==null&&s(b,Z.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,gt(O)),L.key=u(b,O.value||"");break;case 6:O.value==null&&s(b,Z.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,gt(O)),L.key=c(b,O.value||"");break;case 7:O.value==null&&s(b,Z.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,gt(O)),L.key=f(b,O.value||"");break;default:{s(b,Z.UNEXPECTED_EMPTY_LINKED_KEY,v.lastStartLoc,0);const D=b.context(),$=i(7,D.offset,D.startLoc);return $.value="",a($,D.offset,D.startLoc),L.key=$,a(L,D.offset,D.startLoc),{nextConsumeToken:O,node:L}}}return a(L,b.currentOffset(),b.currentPosition()),{node:L}}function S(b){const v=b.context(),L=v.currentType===1?b.currentOffset():v.offset,O=v.currentType===1?v.endLoc:v.startLoc,D=i(2,L,O);D.items=[];let $=null,A=null;do{const V=$||b.nextToken();switch($=null,V.type){case 0:V.value==null&&s(b,Z.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,gt(V)),D.items.push(l(b,V.value||""));break;case 6:V.value==null&&s(b,Z.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,gt(V)),D.items.push(c(b,V.value||""));break;case 4:A=!0;break;case 5:V.value==null&&s(b,Z.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,gt(V)),D.items.push(u(b,V.value||"",!!A)),A&&(o(b,gi.USE_MODULO_SYNTAX,v.lastStartLoc,0,gt(V)),A=null);break;case 7:V.value==null&&s(b,Z.UNEXPECTED_LEXICAL_ANALYSIS,v.lastStartLoc,0,gt(V)),D.items.push(f(b,V.value||""));break;case 8:{const Q=E(b);D.items.push(Q.node),$=Q.nextConsumeToken||null;break}}}while(v.currentType!==14&&v.currentType!==1);const Y=v.currentType===1?v.lastOffset:b.currentOffset(),ee=v.currentType===1?v.lastEndLoc:b.currentPosition();return a(D,Y,ee),D}function w(b,v,L,O){const D=b.context();let $=O.items.length===0;const A=i(1,v,L);A.cases=[],A.cases.push(O);do{const Y=S(b);$||($=Y.items.length===0),A.cases.push(Y)}while(D.currentType!==14);return $&&s(b,Z.MUST_HAVE_MESSAGES_IN_PLURAL,L,0),a(A,b.currentOffset(),b.currentPosition()),A}function R(b){const v=b.context(),{offset:L,startLoc:O}=v,D=S(b);return v.currentType===14?D:w(b,L,O,D)}function x(b){const v=ng(b,wu({},e)),L=v.context(),O=i(0,L.offset,L.startLoc);return t&&O.loc&&(O.loc.source=b),O.body=R(v),e.onCacheKey&&(O.cacheKey=e.onCacheKey(b)),L.currentType!==14&&s(v,Z.UNEXPECTED_LEXICAL_ANALYSIS,L.lastStartLoc,0,b[L.offset]||""),a(O,v.currentOffset(),v.currentPosition()),O}return{parse:x}}function gt(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function ag(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:o=>(n.helpers.add(o),o)}}function Ua(e,t){for(let n=0;n$a(n)),e}function $a(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;ni;function l(S,w){i.code+=S}function c(S,w=!0){const R=w?r:"";l(s?R+" ".repeat(S):R)}function u(S=!0){const w=++i.indentLevel;S&&c(w)}function f(S=!0){const w=--i.indentLevel;S&&c(w)}function d(){c(i.indentLevel)}return{context:a,push:l,indent:u,deindent:f,newline:d,helper:S=>`_${S}`,needIndent:()=>i.needIndent}}function pg(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),Xn(e,t.key),t.modifier?(e.push(", "),Xn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function hg(e,t){const{helper:n,needIndent:r}=e;e.push(`${n("normalize")}([`),e.indent(r());const s=t.items.length;for(let o=0;o1){e.push(`${n("plural")}([`),e.indent(r());const s=t.cases.length;for(let o=0;o{const n=Da(t.mode)?t.mode:"normal",r=Da(t.filename)?t.filename:"message.intl";t.sourceMap;const s=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` +`,o=t.needIndent?t.needIndent:n!=="arrow",i=e.helpers||[],a=dg(e,{filename:r,breakLineCode:s,needIndent:o});a.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(o),i.length>0&&(a.push(`const { ${Tu(i.map(u=>`${u}: _${u}`),", ")} } = ctx`),a.newline()),a.push("return "),Xn(a,e),a.deindent(o),a.push("}"),delete e.helpers;const{code:l,map:c}=a.context();return{ast:e,code:l,map:c?c.toJSON():void 0}};function yg(e,t={}){const n=wu({},t),r=!!n.jit,s=!!n.minify,o=n.optimize==null?!0:n.optimize,a=ig(n).parse(e);return r?(o&&cg(a),s&&Vn(a),{ast:a,code:""}):(lg(a,n),_g(a,n))}/*! + * core-base v9.14.5 + * (c) 2025 kazuya kawaguchi + * Released under the MIT License. + */function bg(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function kt(e){return fe(e)&&yi(e)===0&&(_t(e,"b")||_t(e,"body"))}const Cu=["b","body"];function Eg(e){return yn(e,Cu)}const Lu=["c","cases"];function vg(e){return yn(e,Lu,[])}const Pu=["s","static"];function Sg(e){return yn(e,Pu)}const Au=["i","items"];function wg(e){return yn(e,Au,[])}const Ru=["t","type"];function yi(e){return yn(e,Ru)}const Ou=["v","value"];function Qr(e,t){const n=yn(e,Ou);if(n!=null)return n;throw Nr(t)}const Nu=["m","modifier"];function Tg(e){return yn(e,Nu)}const Iu=["k","key"];function Cg(e){const t=yn(e,Iu);if(t)return t;throw Nr(6)}function yn(e,t,n){for(let r=0;r{i===void 0?i=a:i+=a},d[1]=()=>{i!==void 0&&(t.push(i),i=void 0)},d[2]=()=>{d[0](),s++},d[3]=()=>{if(s>0)s--,r=4,d[0]();else{if(s=0,i===void 0||(i=Og(i),i===!1))return!1;d[1]()}};function m(){const E=e[n+1];if(r===5&&E==="'"||r===6&&E==='"')return n++,a="\\"+E,d[0](),!0}for(;r!==null;)if(n++,o=e[n],!(o==="\\"&&m())){if(l=Rg(o),f=bn[r],c=f[l]||f.l||8,c===8||(r=c[0],c[1]!==void 0&&(u=d[c[1]],u&&(a=o,u()===!1))))return;if(r===7)return t}}const Va=new Map;function Ig(e,t){return fe(e)?e[t]:null}function xg(e,t){if(!fe(e))return null;let n=Va.get(t);if(n||(n=Ng(t),n&&Va.set(t,n)),!n)return null;const r=n.length;let s=e,o=0;for(;oe,Fg=e=>"",Dg="text",Mg=e=>e.length===0?"":Wm(e),Ug=Hm;function Ha(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function $g(e){const t=Ie(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Ie(e.named.count)||Ie(e.named.n))?Ie(e.named.count)?e.named.count:Ie(e.named.n)?e.named.n:t:t}function Vg(e,t){t.count||(t.count=e),t.n||(t.n=e)}function Hg(e={}){const t=e.locale,n=$g(e),r=fe(e.pluralRules)&&G(t)&&Ee(e.pluralRules[t])?e.pluralRules[t]:Ha,s=fe(e.pluralRules)&&G(t)&&Ee(e.pluralRules[t])?Ha:void 0,o=R=>R[r(n,R.length,s)],i=e.list||[],a=R=>i[R],l=e.named||he();Ie(e.pluralIndex)&&Vg(n,l);const c=R=>l[R];function u(R){const x=Ee(e.messages)?e.messages(R):fe(e.messages)?e.messages[R]:!1;return x||(e.parent?e.parent.message(R):Fg)}const f=R=>e.modifiers?e.modifiers[R]:kg,d=re(e.processor)&&Ee(e.processor.normalize)?e.processor.normalize:Mg,m=re(e.processor)&&Ee(e.processor.interpolate)?e.processor.interpolate:Ug,E=re(e.processor)&&G(e.processor.type)?e.processor.type:Dg,w={list:a,named:c,plural:o,linked:(R,...x)=>{const[b,v]=x;let L="text",O="";x.length===1?fe(b)?(O=b.modifier||O,L=b.type||L):G(b)&&(O=b||O):x.length===2&&(G(b)&&(O=b||O),G(v)&&(L=v||L));const D=u(R)(w),$=L==="vnode"&&we(D)&&O?D[0]:D;return O?f(O)($,L):$},message:u,type:E,interpolate:m,normalize:d,values:je(he(),i,l)};return w}let Ir=null;function Wg(e){Ir=e}function Bg(e,t,n){Ir&&Ir.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const jg=Kg("function:translate");function Kg(e){return t=>Ir&&Ir.emit(e,t)}const Gg=gi.__EXTEND_POINT__,Tn=Ms(Gg),qg={FALLBACK_TO_TRANSLATE:Tn(),CANNOT_FORMAT_NUMBER:Tn(),FALLBACK_TO_NUMBER_FORMAT:Tn(),CANNOT_FORMAT_DATE:Tn(),FALLBACK_TO_DATE_FORMAT:Tn(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Tn(),__EXTEND_POINT__:Tn()},ku=Z.__EXTEND_POINT__,Cn=Ms(ku),yt={INVALID_ARGUMENT:ku,INVALID_DATE_ARGUMENT:Cn(),INVALID_ISO_DATE_ARGUMENT:Cn(),NOT_SUPPORT_NON_STRING_MESSAGE:Cn(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Cn(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Cn(),NOT_SUPPORT_LOCALE_TYPE:Cn(),__EXTEND_POINT__:Cn()};function It(e){return tr(e,null,void 0)}function bi(e,t){return t.locale!=null?Wa(t.locale):Wa(e.locale)}let uo;function Wa(e){if(G(e))return e;if(Ee(e)){if(e.resolvedOnce&&uo!=null)return uo;if(e.constructor.name==="Function"){const t=e();if(Vm(t))throw It(yt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return uo=t}else throw It(yt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw It(yt.NOT_SUPPORT_LOCALE_TYPE)}function Yg(e,t,n){return[...new Set([n,...we(t)?t:fe(t)?Object.keys(t):G(t)?[t]:[n]])]}function Fu(e,t,n){const r=G(n)?n:Jn,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let o=s.__localeChainCache.get(r);if(!o){o=[];let i=[n];for(;we(i);)i=Ba(o,i,t);const a=we(t)||!re(t)?t:t.default?t.default:null;i=G(a)?[a]:a,we(i)&&Ba(o,i,!1),s.__localeChainCache.set(r,o)}return o}function Ba(e,t,n){let r=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Qg(){return{upper:(e,t)=>t==="text"&&G(e)?e.toUpperCase():t==="vnode"&&fe(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&G(e)?e.toLowerCase():t==="vnode"&&fe(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&G(e)?Ka(e):t==="vnode"&&fe(e)&&"__v_isVNode"in e?Ka(e.children):e}}let Du;function Ga(e){Du=e}let Mu;function Zg(e){Mu=e}let Uu;function e_(e){Uu=e}let $u=null;const t_=e=>{$u=e},n_=()=>$u;let Vu=null;const qa=e=>{Vu=e},r_=()=>Vu;let Ya=0;function s_(e={}){const t=Ee(e.onWarn)?e.onWarn:xm,n=G(e.version)?e.version:Jg,r=G(e.locale)||Ee(e.locale)?e.locale:Jn,s=Ee(r)?Jn:r,o=we(e.fallbackLocale)||re(e.fallbackLocale)||G(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,i=re(e.messages)?e.messages:fo(s),a=re(e.datetimeFormats)?e.datetimeFormats:fo(s),l=re(e.numberFormats)?e.numberFormats:fo(s),c=je(he(),e.modifiers,Qg()),u=e.pluralRules||he(),f=Ee(e.missing)?e.missing:null,d=ie(e.missingWarn)||mn(e.missingWarn)?e.missingWarn:!0,m=ie(e.fallbackWarn)||mn(e.fallbackWarn)?e.fallbackWarn:!0,E=!!e.fallbackFormat,S=!!e.unresolving,w=Ee(e.postTranslation)?e.postTranslation:null,R=re(e.processor)?e.processor:null,x=ie(e.warnHtmlMessage)?e.warnHtmlMessage:!0,b=!!e.escapeParameter,v=Ee(e.messageCompiler)?e.messageCompiler:Du,L=Ee(e.messageResolver)?e.messageResolver:Mu||Ig,O=Ee(e.localeFallbacker)?e.localeFallbacker:Uu||Yg,D=fe(e.fallbackContext)?e.fallbackContext:void 0,$=e,A=fe($.__datetimeFormatters)?$.__datetimeFormatters:new Map,Y=fe($.__numberFormatters)?$.__numberFormatters:new Map,ee=fe($.__meta)?$.__meta:{};Ya++;const V={version:n,cid:Ya,locale:r,fallbackLocale:o,messages:i,modifiers:c,pluralRules:u,missing:f,missingWarn:d,fallbackWarn:m,fallbackFormat:E,unresolving:S,postTranslation:w,processor:R,warnHtmlMessage:x,escapeParameter:b,messageCompiler:v,messageResolver:L,localeFallbacker:O,fallbackContext:D,onWarn:t,__meta:ee};return V.datetimeFormats=a,V.numberFormats=l,V.__datetimeFormatters=A,V.__numberFormatters=Y,__INTLIFY_PROD_DEVTOOLS__&&Bg(V,n,ee),V}const fo=e=>({[e]:he()});function Ei(e,t,n,r,s){const{missing:o,onWarn:i}=e;if(o!==null){const a=o(e,n,t,s);return G(a)?a:t}else return t}function ar(e,t,n){const r=e;r.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function o_(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function i_(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let r=n+1;ra_(n,e)}function a_(e,t){const n=Eg(t);if(n==null)throw Nr(0);if(yi(n)===1){const o=vg(n);return e.plural(o.reduce((i,a)=>[...i,za(e,a)],[]))}else return za(e,n)}function za(e,t){const n=Sg(t);if(n!=null)return e.type==="text"?n:e.normalize([n]);{const r=wg(t).reduce((s,o)=>[...s,xo(e,o)],[]);return e.normalize(r)}}function xo(e,t){const n=yi(t);switch(n){case 3:return Qr(t,n);case 9:return Qr(t,n);case 4:{const r=t;if(_t(r,"k")&&r.k)return e.interpolate(e.named(r.k));if(_t(r,"key")&&r.key)return e.interpolate(e.named(r.key));throw Nr(n)}case 5:{const r=t;if(_t(r,"i")&&Ie(r.i))return e.interpolate(e.list(r.i));if(_t(r,"index")&&Ie(r.index))return e.interpolate(e.list(r.index));throw Nr(n)}case 6:{const r=t,s=Tg(r),o=Cg(r);return e.linked(xo(e,o),s?xo(e,s):void 0,e.type)}case 7:return Qr(t,n);case 8:return Qr(t,n);default:throw new Error(`unhandled node on format message part: ${n}`)}}const Hu=e=>e;let Hn=he();function Wu(e,t={}){let n=!1;const r=t.onError||zm;return t.onError=s=>{n=!0,r(s)},{...yg(e,t),detectError:n}}const l_=(e,t)=>{if(!G(e))throw It(yt.NOT_SUPPORT_NON_STRING_MESSAGE);{ie(t.warnHtmlMessage)&&t.warnHtmlMessage;const r=(t.onCacheKey||Hu)(e),s=Hn[r];if(s)return s;const{code:o,detectError:i}=Wu(e,t),a=new Function(`return ${o}`)();return i?a:Hn[r]=a}};function c_(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&G(e)){ie(t.warnHtmlMessage)&&t.warnHtmlMessage;const r=(t.onCacheKey||Hu)(e),s=Hn[r];if(s)return s;const{ast:o,detectError:i}=Wu(e,{...t,location:!1,jit:!0}),a=po(o);return i?a:Hn[r]=a}else{const n=e.cacheKey;if(n){const r=Hn[n];return r||(Hn[n]=po(e))}else return po(e)}}const Xa=()=>"",pt=e=>Ee(e);function Ja(e,...t){const{fallbackFormat:n,postTranslation:r,unresolving:s,messageCompiler:o,fallbackLocale:i,messages:a}=e,[l,c]=ko(...t),u=ie(c.missingWarn)?c.missingWarn:e.missingWarn,f=ie(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,d=ie(c.escapeParameter)?c.escapeParameter:e.escapeParameter,m=!!c.resolvedMessage,E=G(c.default)||ie(c.default)?ie(c.default)?o?l:()=>l:c.default:n?o?l:()=>l:"",S=n||E!=="",w=bi(e,c);d&&u_(c);let[R,x,b]=m?[l,w,a[w]||he()]:Bu(e,l,w,i,f,u),v=R,L=l;if(!m&&!(G(v)||kt(v)||pt(v))&&S&&(v=E,L=v),!m&&(!(G(v)||kt(v)||pt(v))||!G(x)))return s?Us:l;let O=!1;const D=()=>{O=!0},$=pt(v)?v:ju(e,l,x,v,L,D);if(O)return v;const A=p_(e,x,b,c),Y=Hg(A),ee=f_(e,$,Y);let V=r?r(ee,l):ee;if(d&&G(V)&&(V=Um(V)),__INTLIFY_PROD_DEVTOOLS__){const Q={timestamp:Date.now(),key:G(l)?l:pt(v)?v.key:"",locale:x||(pt(v)?v.locale:""),format:G(v)?v:pt(v)?v.source:"",message:V};Q.meta=je({},e.__meta,n_()||{}),jg(Q)}return V}function u_(e){we(e.list)?e.list=e.list.map(t=>G(t)?ka(t):t):fe(e.named)&&Object.keys(e.named).forEach(t=>{G(e.named[t])&&(e.named[t]=ka(e.named[t]))})}function Bu(e,t,n,r,s,o){const{messages:i,onWarn:a,messageResolver:l,localeFallbacker:c}=e,u=c(e,r,n);let f=he(),d,m=null;const E="translate";for(let S=0;Sr);return c.locale=n,c.key=t,c}const l=i(r,d_(e,n,s,r,a,o));return l.locale=n,l.key=t,l.source=r,l}function f_(e,t,n){return t(n)}function ko(...e){const[t,n,r]=e,s=he();if(!G(t)&&!Ie(t)&&!pt(t)&&!kt(t))throw It(yt.INVALID_ARGUMENT);const o=Ie(t)?String(t):(pt(t),t);return Ie(n)?s.plural=n:G(n)?s.default=n:re(n)&&!Ds(n)?s.named=n:we(n)&&(s.list=n),Ie(r)?s.plural=r:G(r)?s.default=r:re(r)&&je(s,r),[o,s]}function d_(e,t,n,r,s,o){return{locale:t,key:n,warnHtmlMessage:s,onError:i=>{throw o&&o(i),i},onCacheKey:i=>km(t,n,i)}}function p_(e,t,n,r){const{modifiers:s,pluralRules:o,messageResolver:i,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,d={locale:t,modifiers:s,pluralRules:o,messages:m=>{let E=i(n,m);if(E==null&&u){const[,,S]=Bu(u,m,t,a,l,c);E=i(S,m)}if(G(E)||kt(E)){let S=!1;const R=ju(e,m,t,E,m,()=>{S=!0});return S?Xa:R}else return pt(E)?E:Xa}};return e.processor&&(d.processor=e.processor),r.list&&(d.list=r.list),r.named&&(d.named=r.named),Ie(r.plural)&&(d.pluralIndex=r.plural),d}function Qa(e,...t){const{datetimeFormats:n,unresolving:r,fallbackLocale:s,onWarn:o,localeFallbacker:i}=e,{__datetimeFormatters:a}=e,[l,c,u,f]=Fo(...t),d=ie(u.missingWarn)?u.missingWarn:e.missingWarn;ie(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,E=bi(e,u),S=i(e,s,E);if(!G(l)||l==="")return new Intl.DateTimeFormat(E,f).format(c);let w={},R,x=null;const b="datetime format";for(let O=0;O{Ku.includes(l)?i[l]=n[l]:o[l]=n[l]}),G(r)?o.locale=r:re(r)&&(i=r),re(s)&&(i=s),[o.key||"",a,o,i]}function Za(e,t,n){const r=e;for(const s in n){const o=`${t}__${s}`;r.__datetimeFormatters.has(o)&&r.__datetimeFormatters.delete(o)}}function el(e,...t){const{numberFormats:n,unresolving:r,fallbackLocale:s,onWarn:o,localeFallbacker:i}=e,{__numberFormatters:a}=e,[l,c,u,f]=Do(...t),d=ie(u.missingWarn)?u.missingWarn:e.missingWarn;ie(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,E=bi(e,u),S=i(e,s,E);if(!G(l)||l==="")return new Intl.NumberFormat(E,f).format(c);let w={},R,x=null;const b="number format";for(let O=0;O{Gu.includes(l)?i[l]=n[l]:o[l]=n[l]}),G(r)?o.locale=r:re(r)&&(i=r),re(s)&&(i=s),[o.key||"",a,o,i]}function tl(e,t,n){const r=e;for(const s in n){const o=`${t}__${s}`;r.__numberFormatters.has(o)&&r.__numberFormatters.delete(o)}}bg();/*! + * vue-i18n v9.14.5 + * (c) 2025 kazuya kawaguchi + * Released under the MIT License. + */const h_="9.14.5";function m_(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Bt().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Bt().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Bt().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Bt().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Bt().__INTLIFY_PROD_DEVTOOLS__=!1)}const g_=qg.__EXTEND_POINT__,Ut=Ms(g_);Ut(),Ut(),Ut(),Ut(),Ut(),Ut(),Ut(),Ut(),Ut();const qu=yt.__EXTEND_POINT__,rt=Ms(qu),xe={UNEXPECTED_RETURN_TYPE:qu,INVALID_ARGUMENT:rt(),MUST_BE_CALL_SETUP_TOP:rt(),NOT_INSTALLED:rt(),NOT_AVAILABLE_IN_LEGACY_MODE:rt(),REQUIRED_VALUE:rt(),INVALID_VALUE:rt(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:rt(),NOT_INSTALLED_WITH_PROVIDE:rt(),UNEXPECTED_ERROR:rt(),NOT_COMPATIBLE_LEGACY_VUE_I18N:rt(),BRIDGE_SUPPORT_VUE_2_ONLY:rt(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:rt(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:rt(),__EXTEND_POINT__:rt()};function Me(e,...t){return tr(e,null,void 0)}const Mo=_n("__translateVNode"),Uo=_n("__datetimeParts"),$o=_n("__numberParts"),Yu=_n("__setPluralRules"),zu=_n("__injectWithOption"),Vo=_n("__dispose");function xr(e){if(!fe(e)||kt(e))return e;for(const t in e)if(_t(e,t))if(!t.includes("."))fe(e[t])&&xr(e[t]);else{const n=t.split("."),r=n.length-1;let s=e,o=!1;for(let i=0;i{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(i[l]=i[l]||he(),ns(c,i[l])):ns(c,i)}else G(a)&&ns(JSON.parse(a),i)}),s==null&&o)for(const a in i)_t(i,a)&&xr(i[a]);return i}function Xu(e){return e.type}function Ju(e,t,n){let r=fe(t.messages)?t.messages:he();"__i18nGlobal"in n&&(r=$s(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const s=Object.keys(r);s.length&&s.forEach(o=>{e.mergeLocaleMessage(o,r[o])});{if(fe(t.datetimeFormats)){const o=Object.keys(t.datetimeFormats);o.length&&o.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(fe(t.numberFormats)){const o=Object.keys(t.numberFormats);o.length&&o.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function nl(e){return Ae($r,null,e,0)}const rl="__INTLIFY_META__",sl=()=>[],__=()=>!1;let ol=0;function il(e){return((t,n,r,s)=>e(n,r,zt()||void 0,s))}const y_=()=>{const e=zt();let t=null;return e&&(t=Xu(e)[rl])?{[rl]:t}:null};function vi(e={},t){const{__root:n,__injectWithOption:r}=e,s=n===void 0,o=e.flatJson,i=_s?st:li,a=!!e.translateExistCompatible;let l=ie(e.inheritLocale)?e.inheritLocale:!0;const c=i(n&&l?n.locale.value:G(e.locale)?e.locale:Jn),u=i(n&&l?n.fallbackLocale.value:G(e.fallbackLocale)||we(e.fallbackLocale)||re(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=i($s(c.value,e)),d=i(re(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),m=i(re(e.numberFormats)?e.numberFormats:{[c.value]:{}});let E=n?n.missingWarn:ie(e.missingWarn)||mn(e.missingWarn)?e.missingWarn:!0,S=n?n.fallbackWarn:ie(e.fallbackWarn)||mn(e.fallbackWarn)?e.fallbackWarn:!0,w=n?n.fallbackRoot:ie(e.fallbackRoot)?e.fallbackRoot:!0,R=!!e.fallbackFormat,x=Ee(e.missing)?e.missing:null,b=Ee(e.missing)?il(e.missing):null,v=Ee(e.postTranslation)?e.postTranslation:null,L=n?n.warnHtmlMessage:ie(e.warnHtmlMessage)?e.warnHtmlMessage:!0,O=!!e.escapeParameter;const D=n?n.modifiers:re(e.modifiers)?e.modifiers:{};let $=e.pluralRules||n&&n.pluralRules,A;A=(()=>{s&&qa(null);const T={version:h_,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:D,pluralRules:$,missing:b===null?void 0:b,missingWarn:E,fallbackWarn:S,fallbackFormat:R,unresolving:!0,postTranslation:v===null?void 0:v,warnHtmlMessage:L,escapeParameter:O,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};T.datetimeFormats=d.value,T.numberFormats=m.value,T.__datetimeFormatters=re(A)?A.__datetimeFormatters:void 0,T.__numberFormatters=re(A)?A.__numberFormatters:void 0;const k=s_(T);return s&&qa(k),k})(),ar(A,c.value,u.value);function ee(){return[c.value,u.value,f.value,d.value,m.value]}const V=_e({get:()=>c.value,set:T=>{c.value=T,A.locale=c.value}}),Q=_e({get:()=>u.value,set:T=>{u.value=T,A.fallbackLocale=u.value,ar(A,c.value,T)}}),ye=_e(()=>f.value),Ne=_e(()=>d.value),oe=_e(()=>m.value);function te(){return Ee(v)?v:null}function ae(T){v=T,A.postTranslation=T}function Je(){return x}function nt(T){T!==null&&(b=il(T)),x=T,A.missing=b}const Le=(T,k,X,le,Ce,Qe)=>{ee();let Ue;try{__INTLIFY_PROD_DEVTOOLS__,s||(A.fallbackContext=n?r_():void 0),Ue=T(A)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(A.fallbackContext=void 0)}if(X!=="translate exists"&&Ie(Ue)&&Ue===Us||X==="translate exists"&&!Ue){const[En,qs]=k();return n&&w?le(n):Ce(En)}else{if(Qe(Ue))return Ue;throw Me(xe.UNEXPECTED_RETURN_TYPE)}};function Pe(...T){return Le(k=>Reflect.apply(Ja,null,[k,...T]),()=>ko(...T),"translate",k=>Reflect.apply(k.t,k,[...T]),k=>k,k=>G(k))}function ft(...T){const[k,X,le]=T;if(le&&!fe(le))throw Me(xe.INVALID_ARGUMENT);return Pe(k,X,je({resolvedMessage:!0},le||{}))}function at(...T){return Le(k=>Reflect.apply(Qa,null,[k,...T]),()=>Fo(...T),"datetime format",k=>Reflect.apply(k.d,k,[...T]),()=>ja,k=>G(k))}function Tt(...T){return Le(k=>Reflect.apply(el,null,[k,...T]),()=>Do(...T),"number format",k=>Reflect.apply(k.n,k,[...T]),()=>ja,k=>G(k))}function Fe(T){return T.map(k=>G(k)||Ie(k)||ie(k)?nl(String(k)):k)}const q={normalize:Fe,interpolate:T=>T,type:"vnode"};function j(...T){return Le(k=>{let X;const le=k;try{le.processor=q,X=Reflect.apply(Ja,null,[le,...T])}finally{le.processor=null}return X},()=>ko(...T),"translate",k=>k[Mo](...T),k=>[nl(k)],k=>we(k))}function z(...T){return Le(k=>Reflect.apply(el,null,[k,...T]),()=>Do(...T),"number format",k=>k[$o](...T),sl,k=>G(k)||we(k))}function ue(...T){return Le(k=>Reflect.apply(Qa,null,[k,...T]),()=>Fo(...T),"datetime format",k=>k[Uo](...T),sl,k=>G(k)||we(k))}function g(T){$=T,A.pluralRules=$}function y(T,k){return Le(()=>{if(!T)return!1;const X=G(k)?k:c.value,le=U(X),Ce=A.messageResolver(le,T);return a?Ce!=null:kt(Ce)||pt(Ce)||G(Ce)},()=>[T],"translate exists",X=>Reflect.apply(X.te,X,[T,k]),__,X=>ie(X))}function _(T){let k=null;const X=Fu(A,u.value,c.value);for(let le=0;le{l&&(c.value=T,A.locale=T,ar(A,c.value,u.value))}),un(n.fallbackLocale,T=>{l&&(u.value=T,A.fallbackLocale=T,ar(A,c.value,u.value))}));const H={id:ol,locale:V,fallbackLocale:Q,get inheritLocale(){return l},set inheritLocale(T){l=T,T&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,ar(A,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:ye,get modifiers(){return D},get pluralRules(){return $||{}},get isGlobal(){return s},get missingWarn(){return E},set missingWarn(T){E=T,A.missingWarn=E},get fallbackWarn(){return S},set fallbackWarn(T){S=T,A.fallbackWarn=S},get fallbackRoot(){return w},set fallbackRoot(T){w=T},get fallbackFormat(){return R},set fallbackFormat(T){R=T,A.fallbackFormat=R},get warnHtmlMessage(){return L},set warnHtmlMessage(T){L=T,A.warnHtmlMessage=T},get escapeParameter(){return O},set escapeParameter(T){O=T,A.escapeParameter=T},t:Pe,getLocaleMessage:U,setLocaleMessage:F,mergeLocaleMessage:B,getPostTranslationHandler:te,setPostTranslationHandler:ae,getMissingHandler:Je,setMissingHandler:nt,[Yu]:g};return H.datetimeFormats=Ne,H.numberFormats=oe,H.rt=ft,H.te=y,H.tm=P,H.d=at,H.n=Tt,H.getDateTimeFormat=W,H.setDateTimeFormat=p,H.mergeDateTimeFormat=h,H.getNumberFormat=C,H.setNumberFormat=I,H.mergeNumberFormat=K,H[zu]=r,H[Mo]=j,H[Uo]=ue,H[$o]=z,H}function b_(e){const t=G(e.locale)?e.locale:Jn,n=G(e.fallbackLocale)||we(e.fallbackLocale)||re(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,r=Ee(e.missing)?e.missing:void 0,s=ie(e.silentTranslationWarn)||mn(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,o=ie(e.silentFallbackWarn)||mn(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,i=ie(e.fallbackRoot)?e.fallbackRoot:!0,a=!!e.formatFallbackMessages,l=re(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=Ee(e.postTranslation)?e.postTranslation:void 0,f=G(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,d=!!e.escapeParameterHtml,m=ie(e.sync)?e.sync:!0;let E=e.messages;if(re(e.sharedMessages)){const O=e.sharedMessages;E=Object.keys(O).reduce(($,A)=>{const Y=$[A]||($[A]={});return je(Y,O[A]),$},E||{})}const{__i18n:S,__root:w,__injectWithOption:R}=e,x=e.datetimeFormats,b=e.numberFormats,v=e.flatJson,L=e.translateExistCompatible;return{locale:t,fallbackLocale:n,messages:E,flatJson:v,datetimeFormats:x,numberFormats:b,missing:r,missingWarn:s,fallbackWarn:o,fallbackRoot:i,fallbackFormat:a,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:d,messageResolver:e.messageResolver,inheritLocale:m,translateExistCompatible:L,__i18n:S,__root:w,__injectWithOption:R}}function Ho(e={},t){{const n=vi(b_(e)),{__extender:r}=e,s={id:n.id,get locale(){return n.locale.value},set locale(o){n.locale.value=o},get fallbackLocale(){return n.fallbackLocale.value},set fallbackLocale(o){n.fallbackLocale.value=o},get messages(){return n.messages.value},get datetimeFormats(){return n.datetimeFormats.value},get numberFormats(){return n.numberFormats.value},get availableLocales(){return n.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(o){},get missing(){return n.getMissingHandler()},set missing(o){n.setMissingHandler(o)},get silentTranslationWarn(){return ie(n.missingWarn)?!n.missingWarn:n.missingWarn},set silentTranslationWarn(o){n.missingWarn=ie(o)?!o:o},get silentFallbackWarn(){return ie(n.fallbackWarn)?!n.fallbackWarn:n.fallbackWarn},set silentFallbackWarn(o){n.fallbackWarn=ie(o)?!o:o},get modifiers(){return n.modifiers},get formatFallbackMessages(){return n.fallbackFormat},set formatFallbackMessages(o){n.fallbackFormat=o},get postTranslation(){return n.getPostTranslationHandler()},set postTranslation(o){n.setPostTranslationHandler(o)},get sync(){return n.inheritLocale},set sync(o){n.inheritLocale=o},get warnHtmlInMessage(){return n.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(o){n.warnHtmlMessage=o!=="off"},get escapeParameterHtml(){return n.escapeParameter},set escapeParameterHtml(o){n.escapeParameter=o},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(o){},get pluralizationRules(){return n.pluralRules||{}},__composer:n,t(...o){const[i,a,l]=o,c={};let u=null,f=null;if(!G(i))throw Me(xe.INVALID_ARGUMENT);const d=i;return G(a)?c.locale=a:we(a)?u=a:re(a)&&(f=a),we(l)?u=l:re(l)&&(f=l),Reflect.apply(n.t,n,[d,u||f||{},c])},rt(...o){return Reflect.apply(n.rt,n,[...o])},tc(...o){const[i,a,l]=o,c={plural:1};let u=null,f=null;if(!G(i))throw Me(xe.INVALID_ARGUMENT);const d=i;return G(a)?c.locale=a:Ie(a)?c.plural=a:we(a)?u=a:re(a)&&(f=a),G(l)?c.locale=l:we(l)?u=l:re(l)&&(f=l),Reflect.apply(n.t,n,[d,u||f||{},c])},te(o,i){return n.te(o,i)},tm(o){return n.tm(o)},getLocaleMessage(o){return n.getLocaleMessage(o)},setLocaleMessage(o,i){n.setLocaleMessage(o,i)},mergeLocaleMessage(o,i){n.mergeLocaleMessage(o,i)},d(...o){return Reflect.apply(n.d,n,[...o])},getDateTimeFormat(o){return n.getDateTimeFormat(o)},setDateTimeFormat(o,i){n.setDateTimeFormat(o,i)},mergeDateTimeFormat(o,i){n.mergeDateTimeFormat(o,i)},n(...o){return Reflect.apply(n.n,n,[...o])},getNumberFormat(o){return n.getNumberFormat(o)},setNumberFormat(o,i){n.setNumberFormat(o,i)},mergeNumberFormat(o,i){n.mergeNumberFormat(o,i)},getChoiceIndex(o,i){return-1}};return s.__extender=r,s}}const Si={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function E_({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((r,s)=>[...r,...s.type===De?s.children:[s]],[]):t.reduce((n,r)=>{const s=e[r];return s&&(n[r]=s()),n},he())}function Qu(e){return De}const v_=Xt({name:"i18n-t",props:je({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ie(e)||!isNaN(e)}},Si),setup(e,t){const{slots:n,attrs:r}=t,s=e.i18n||Hr({useScope:e.scope,__useComponent:!0});return()=>{const o=Object.keys(n).filter(f=>f!=="_"),i=he();e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=G(e.plural)?+e.plural:e.plural);const a=E_(t,o),l=s[Mo](e.keypath,a,i),c=je(he(),r),u=G(e.tag)||fe(e.tag)?e.tag:Qu();return hn(u,c,l)}}}),al=v_;function S_(e){return we(e)&&!G(e[0])}function Zu(e,t,n,r){const{slots:s,attrs:o}=t;return()=>{const i={part:!0};let a=he();e.locale&&(i.locale=e.locale),G(e.format)?i.key=e.format:fe(e.format)&&(G(e.format.key)&&(i.key=e.format.key),a=Object.keys(e.format).reduce((d,m)=>n.includes(m)?je(he(),d,{[m]:e.format[m]}):d,he()));const l=r(e.value,i,a);let c=[i.key];we(l)?c=l.map((d,m)=>{const E=s[d.type],S=E?E({[d.type]:d.value,index:m,parts:l}):[d.value];return S_(S)&&(S[0].key=`${d.type}-${m}`),S}):G(l)&&(c=[l]);const u=je(he(),o),f=G(e.tag)||fe(e.tag)?e.tag:Qu();return hn(f,u,c)}}const w_=Xt({name:"i18n-n",props:je({value:{type:Number,required:!0},format:{type:[String,Object]}},Si),setup(e,t){const n=e.i18n||Hr({useScope:e.scope,__useComponent:!0});return Zu(e,t,Gu,(...r)=>n[$o](...r))}}),ll=w_,T_=Xt({name:"i18n-d",props:je({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Si),setup(e,t){const n=e.i18n||Hr({useScope:e.scope,__useComponent:!0});return Zu(e,t,Ku,(...r)=>n[Uo](...r))}}),cl=T_;function C_(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return r!=null?r.__composer:e.global.__composer}}function L_(e){const t=i=>{const{instance:a,modifiers:l,value:c}=i;if(!a||!a.$)throw Me(xe.UNEXPECTED_ERROR);const u=C_(e,a.$),f=ul(c);return[Reflect.apply(u.t,u,[...fl(f)]),u]};return{created:(i,a)=>{const[l,c]=t(a);_s&&e.global===c&&(i.__i18nWatcher=un(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),i.__composer=c,i.textContent=l},unmounted:i=>{_s&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:a})=>{if(i.__composer){const l=i.__composer,c=ul(a);i.textContent=Reflect.apply(l.t,l,[...fl(c)])}},getSSRProps:i=>{const[a]=t(i);return{textContent:a}}}}function ul(e){if(G(e))return{path:e};if(re(e)){if(!("path"in e))throw Me(xe.REQUIRED_VALUE,"path");return e}else throw Me(xe.INVALID_VALUE)}function fl(e){const{path:t,locale:n,args:r,choice:s,plural:o}=e,i={},a=r||{};return G(n)&&(i.locale=n),Ie(s)&&(i.plural=s),Ie(o)&&(i.plural=o),[t,a,i]}function P_(e,t,...n){const r=re(n[0])?n[0]:{},s=!!r.useI18nComponentName;(ie(r.globalInstall)?r.globalInstall:!0)&&([s?"i18n":al.name,"I18nT"].forEach(i=>e.component(i,al)),[ll.name,"I18nN"].forEach(i=>e.component(i,ll)),[cl.name,"I18nD"].forEach(i=>e.component(i,cl))),e.directive("t",L_(t))}function A_(e,t,n){return{beforeCreate(){const r=zt();if(!r)throw Me(xe.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const o=s.i18n;if(s.__i18n&&(o.__i18n=s.__i18n),o.__root=t,this===this.$root)this.$i18n=dl(e,o);else{o.__injectWithOption=!0,o.__extender=n.__vueI18nExtend,this.$i18n=Ho(o);const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=dl(e,s);else{this.$i18n=Ho({__i18n:s.__i18n,__injectWithOption:!0,__extender:n.__vueI18nExtend,__root:t});const o=this.$i18n;o.__extender&&(o.__disposer=o.__extender(this.$i18n))}else this.$i18n=e;s.__i18nGlobal&&Ju(t,s,s),this.$t=(...o)=>this.$i18n.t(...o),this.$rt=(...o)=>this.$i18n.rt(...o),this.$tc=(...o)=>this.$i18n.tc(...o),this.$te=(o,i)=>this.$i18n.te(o,i),this.$d=(...o)=>this.$i18n.d(...o),this.$n=(...o)=>this.$i18n.n(...o),this.$tm=o=>this.$i18n.tm(o),n.__setInstance(r,this.$i18n)},mounted(){},unmounted(){const r=zt();if(!r)throw Me(xe.UNEXPECTED_ERROR);const s=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),n.__deleteInstance(r),delete this.$i18n}}}function dl(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Yu](t.pluralizationRules||e.pluralizationRules);const n=$s(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(n).forEach(r=>e.mergeLocaleMessage(r,n[r])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(r=>e.mergeDateTimeFormat(r,t.datetimeFormats[r])),t.numberFormats&&Object.keys(t.numberFormats).forEach(r=>e.mergeNumberFormat(r,t.numberFormats[r])),e}const R_=_n("global-vue-i18n");function O_(e={},t){const n=__VUE_I18N_LEGACY_API__&&ie(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,r=ie(e.globalInjection)?e.globalInjection:!0,s=__VUE_I18N_LEGACY_API__&&n?!!e.allowComposition:!0,o=new Map,[i,a]=N_(e,n),l=_n("");function c(d){return o.get(d)||null}function u(d,m){o.set(d,m)}function f(d){o.delete(d)}{const d={get mode(){return __VUE_I18N_LEGACY_API__&&n?"legacy":"composition"},get allowComposition(){return s},async install(m,...E){if(m.__VUE_I18N_SYMBOL__=l,m.provide(m.__VUE_I18N_SYMBOL__,d),re(E[0])){const R=E[0];d.__composerExtend=R.__composerExtend,d.__vueI18nExtend=R.__vueI18nExtend}let S=null;!n&&r&&(S=V_(m,d.global)),__VUE_I18N_FULL_INSTALL__&&P_(m,d,...E),__VUE_I18N_LEGACY_API__&&n&&m.mixin(A_(a,a.__composer,d));const w=m.unmount;m.unmount=()=>{S&&S(),d.dispose(),w()}},get global(){return a},dispose(){i.stop()},__instances:o,__getInstance:c,__setInstance:u,__deleteInstance:f};return d}}function Hr(e={}){const t=zt();if(t==null)throw Me(xe.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw Me(xe.NOT_INSTALLED);const n=I_(t),r=k_(n),s=Xu(t),o=x_(e,s);if(__VUE_I18N_LEGACY_API__&&n.mode==="legacy"&&!e.__useComponent){if(!n.allowComposition)throw Me(xe.NOT_AVAILABLE_IN_LEGACY_MODE);return U_(t,o,r,e)}if(o==="global")return Ju(r,e,s),r;if(o==="parent"){let l=F_(n,t,e.__useComponent);return l==null&&(l=r),l}const i=n;let a=i.__getInstance(t);if(a==null){const l=je({},e);"__i18n"in s&&(l.__i18n=s.__i18n),r&&(l.__root=r),a=vi(l),i.__composerExtend&&(a[Vo]=i.__composerExtend(a)),M_(i,t,a),i.__setInstance(t,a)}return a}function N_(e,t,n){const r=Zo();{const s=__VUE_I18N_LEGACY_API__&&t?r.run(()=>Ho(e)):r.run(()=>vi(e));if(s==null)throw Me(xe.UNEXPECTED_ERROR);return[r,s]}}function I_(e){{const t=Xe(e.isCE?R_:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw Me(e.isCE?xe.NOT_INSTALLED_WITH_PROVIDE:xe.UNEXPECTED_ERROR);return t}}function x_(e,t){return Ds(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function k_(e){return e.mode==="composition"?e.global:e.global.__composer}function F_(e,t,n=!1){let r=null;const s=t.root;let o=D_(t,n);for(;o!=null;){const i=e;if(e.mode==="composition")r=i.__getInstance(o);else if(__VUE_I18N_LEGACY_API__){const a=i.__getInstance(o);a!=null&&(r=a.__composer,n&&r&&!r[zu]&&(r=null))}if(r!=null||s===o)break;o=o.parent}return r}function D_(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function M_(e,t,n){Zn(()=>{},t),er(()=>{const r=n;e.__deleteInstance(t);const s=r[Vo];s&&(s(),delete r[Vo])},t)}function U_(e,t,n,r={}){const s=t==="local",o=li(null);if(s&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw Me(xe.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=ie(r.inheritLocale)?r.inheritLocale:!G(r.locale),a=st(!s||i?n.locale.value:G(r.locale)?r.locale:Jn),l=st(!s||i?n.fallbackLocale.value:G(r.fallbackLocale)||we(r.fallbackLocale)||re(r.fallbackLocale)||r.fallbackLocale===!1?r.fallbackLocale:a.value),c=st($s(a.value,r)),u=st(re(r.datetimeFormats)?r.datetimeFormats:{[a.value]:{}}),f=st(re(r.numberFormats)?r.numberFormats:{[a.value]:{}}),d=s?n.missingWarn:ie(r.missingWarn)||mn(r.missingWarn)?r.missingWarn:!0,m=s?n.fallbackWarn:ie(r.fallbackWarn)||mn(r.fallbackWarn)?r.fallbackWarn:!0,E=s?n.fallbackRoot:ie(r.fallbackRoot)?r.fallbackRoot:!0,S=!!r.fallbackFormat,w=Ee(r.missing)?r.missing:null,R=Ee(r.postTranslation)?r.postTranslation:null,x=s?n.warnHtmlMessage:ie(r.warnHtmlMessage)?r.warnHtmlMessage:!0,b=!!r.escapeParameter,v=s?n.modifiers:re(r.modifiers)?r.modifiers:{},L=r.pluralRules||s&&n.pluralRules;function O(){return[a.value,l.value,c.value,u.value,f.value]}const D=_e({get:()=>o.value?o.value.locale.value:a.value,set:_=>{o.value&&(o.value.locale.value=_),a.value=_}}),$=_e({get:()=>o.value?o.value.fallbackLocale.value:l.value,set:_=>{o.value&&(o.value.fallbackLocale.value=_),l.value=_}}),A=_e(()=>o.value?o.value.messages.value:c.value),Y=_e(()=>u.value),ee=_e(()=>f.value);function V(){return o.value?o.value.getPostTranslationHandler():R}function Q(_){o.value&&o.value.setPostTranslationHandler(_)}function ye(){return o.value?o.value.getMissingHandler():w}function Ne(_){o.value&&o.value.setMissingHandler(_)}function oe(_){return O(),_()}function te(..._){return o.value?oe(()=>Reflect.apply(o.value.t,null,[..._])):oe(()=>"")}function ae(..._){return o.value?Reflect.apply(o.value.rt,null,[..._]):""}function Je(..._){return o.value?oe(()=>Reflect.apply(o.value.d,null,[..._])):oe(()=>"")}function nt(..._){return o.value?oe(()=>Reflect.apply(o.value.n,null,[..._])):oe(()=>"")}function Le(_){return o.value?o.value.tm(_):{}}function Pe(_,P){return o.value?o.value.te(_,P):!1}function ft(_){return o.value?o.value.getLocaleMessage(_):{}}function at(_,P){o.value&&(o.value.setLocaleMessage(_,P),c.value[_]=P)}function Tt(_,P){o.value&&o.value.mergeLocaleMessage(_,P)}function Fe(_){return o.value?o.value.getDateTimeFormat(_):{}}function M(_,P){o.value&&(o.value.setDateTimeFormat(_,P),u.value[_]=P)}function q(_,P){o.value&&o.value.mergeDateTimeFormat(_,P)}function j(_){return o.value?o.value.getNumberFormat(_):{}}function z(_,P){o.value&&(o.value.setNumberFormat(_,P),f.value[_]=P)}function ue(_,P){o.value&&o.value.mergeNumberFormat(_,P)}const g={get id(){return o.value?o.value.id:-1},locale:D,fallbackLocale:$,messages:A,datetimeFormats:Y,numberFormats:ee,get inheritLocale(){return o.value?o.value.inheritLocale:i},set inheritLocale(_){o.value&&(o.value.inheritLocale=_)},get availableLocales(){return o.value?o.value.availableLocales:Object.keys(c.value)},get modifiers(){return o.value?o.value.modifiers:v},get pluralRules(){return o.value?o.value.pluralRules:L},get isGlobal(){return o.value?o.value.isGlobal:!1},get missingWarn(){return o.value?o.value.missingWarn:d},set missingWarn(_){o.value&&(o.value.missingWarn=_)},get fallbackWarn(){return o.value?o.value.fallbackWarn:m},set fallbackWarn(_){o.value&&(o.value.missingWarn=_)},get fallbackRoot(){return o.value?o.value.fallbackRoot:E},set fallbackRoot(_){o.value&&(o.value.fallbackRoot=_)},get fallbackFormat(){return o.value?o.value.fallbackFormat:S},set fallbackFormat(_){o.value&&(o.value.fallbackFormat=_)},get warnHtmlMessage(){return o.value?o.value.warnHtmlMessage:x},set warnHtmlMessage(_){o.value&&(o.value.warnHtmlMessage=_)},get escapeParameter(){return o.value?o.value.escapeParameter:b},set escapeParameter(_){o.value&&(o.value.escapeParameter=_)},t:te,getPostTranslationHandler:V,setPostTranslationHandler:Q,getMissingHandler:ye,setMissingHandler:Ne,rt:ae,d:Je,n:nt,tm:Le,te:Pe,getLocaleMessage:ft,setLocaleMessage:at,mergeLocaleMessage:Tt,getDateTimeFormat:Fe,setDateTimeFormat:M,mergeDateTimeFormat:q,getNumberFormat:j,setNumberFormat:z,mergeNumberFormat:ue};function y(_){_.locale.value=a.value,_.fallbackLocale.value=l.value,Object.keys(c.value).forEach(P=>{_.mergeLocaleMessage(P,c.value[P])}),Object.keys(u.value).forEach(P=>{_.mergeDateTimeFormat(P,u.value[P])}),Object.keys(f.value).forEach(P=>{_.mergeNumberFormat(P,f.value[P])}),_.escapeParameter=b,_.fallbackFormat=S,_.fallbackRoot=E,_.fallbackWarn=m,_.missingWarn=d,_.warnHtmlMessage=x}return _c(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw Me(xe.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const _=o.value=e.proxy.$i18n.__composer;t==="global"?(a.value=_.locale.value,l.value=_.fallbackLocale.value,c.value=_.messages.value,u.value=_.datetimeFormats.value,f.value=_.numberFormats.value):s&&y(_)}),g}const $_=["locale","fallbackLocale","availableLocales"],pl=["t","rt","d","n","tm","te"];function V_(e,t){const n=Object.create(null);return $_.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o)throw Me(xe.UNEXPECTED_ERROR);const i=Te(o.value)?{get(){return o.value.value},set(a){o.value.value=a}}:{get(){return o.get&&o.get()}};Object.defineProperty(n,s,i)}),e.config.globalProperties.$i18n=n,pl.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o||!o.value)throw Me(xe.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,o)}),()=>{delete e.config.globalProperties.$i18n,pl.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}m_();__INTLIFY_JIT_COMPILATION__?Ga(c_):Ga(l_);Zg(xg);e_(Fu);if(__INTLIFY_PROD_DEVTOOLS__){const e=Bt();e.__INTLIFY__=!0,Wg(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const H_={common:{confirm:"确认",cancel:"取消",close:"关闭",delete:"删除",edit:"编辑",save:"保存",add:"添加",back:"返回",next:"下一页",previous:"上一页",loading:"加载中...",success:"成功",error:"错误",warning:"警告",info:"信息",search:"搜索",copy:"复制",uploadSuccess:"上传成功",uploadFailed:"上传失败",copySuccess:"复制成功",copyFailed:"复制失败",deleteSuccess:"删除成功",deleteFailed:"删除失败",downloadSuccess:"下载成功",downloadFailed:"下载失败",shareSuccess:"分享成功",shareFailed:"分享失败",expiredFile:"文件已过期",fileNotFound:"文件不存在",networkError:"网络错误",unknownError:"未知错误",invalidFileType:"不支持的文件类型",fileTooLarge:"文件过大",uploadCanceled:"上传已取消",processing:"处理中...",pleaseWait:"请稍候...",fileDetails:"文件详情",enabled:"已开启",disabled:"已关闭",minute:"分钟",files:"个文件",second:"秒",hour:"小时",day:"天",times:"次",appName:"文件快递柜 - FileCodeBox",appDescription:"开箱即用的文件快传系统"},admin:{dashboard:{title:"仪表盘",totalFiles:"总文件数",storageSpace:"存储空间",activeUsers:"活跃用户",systemStatus:"系统状态",yesterday:"昨天:",today:"今天:",weeklyChange:"↓ 5% 较上周",normal:"正常",serverUptime:"服务器运行时间:",version:"版本 v2.2.1 更新时间:2025-09-04"},fileManage:{title:"文件管理"},settings:{title:"系统设置",basicSettings:"基本设置",websiteInfo:"网站基本信息",websiteName:"网站名称",websiteDescription:"网站描述",siteName:"网站名称",adminPassword:"管理员密码",passwordPlaceholder:"如需修改请输入新密码",passwordNote:"不修改请留空",keywords:"SEO 关键词",themeSelection:"界面主题",robotsFile:"Robots.txt 配置",notificationSettings:"通知设置",notificationTitle:"公告标题",notificationContent:"公告内容",storageSettings:"存储配置",storagePath:"文件存储路径",storagePathPlaceholder:"使用默认路径可留空",storageMethod:"存储方式",localStorage:"本地存储",s3Storage:"S3 对象存储",webdavStorage:"WebDAV 存储",chunkUploadNote:"分片上传(实验性功能,大文件上传更稳定)",s3AccessKeyId:"Access Key ID",s3SecretAccessKey:"Secret Access Key",s3BucketName:"存储桶名称",s3EndpointUrl:"服务端点 URL",s3RegionName:"区域名称",s3SignatureVersion:"签名版本",s3Hostname:"自定义域名",s3v2:"S3v2",s3v4:"S3v4",autoPlaceholder:"自动识别",enabled:"已启用",disabled:"已禁用",webdavUrl:"输入 WebDAV 服务地址",webdavUsername:"输入 WebDAV 用户名",webdavPassword:"输入 WebDAV 密码",webdavUrlPlaceholder:"输入 WebDAV 服务地址",webdavUsernamePlaceholder:"输入 WebDAV 用户名",webdavPasswordPlaceholder:"输入 WebDAV 密码",enableProxy:"启用下载代理",uploadLimits:"上传设置",uploadRateLimit:"限流时间窗口(在此时间内限制上传次数)",uploadPerMinute:"限流时间窗口(在此时间内限制上传次数)",minute:"分钟",uploadCountLimit:"允许上传文件数(限流窗口内最多上传几个文件)",files:"个文件",fileSizeLimit:"单文件大小上限",expirationMethod:"过期方式",expirationType:"过期方式",expiration:{day:"按天数",hour:"按小时",minute:"按分钟",forever:"永久有效",count:"按下载次数"},maxSaveTime:"文件最长保存时间",timeUnits:{second:"秒",minute:"分钟",hour:"小时",day:"天"},guestUpload:"允许游客上传",errorLimits:"访问保护",errorRateLimit:"检测时间窗口(在此时间内统计错误次数)",errorPerMinute:"检测时间窗口(在此时间内统计错误次数)",errorCountLimit:"允许错误次数(超过后临时封禁)",times:"次",saveChanges:"保存设置",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"}}},nav:{sendFile:"发送文件",retrieveFile:"取件",fileRecords:"取件记录"},retrieve:{title:"文件取件",codeInput:{placeholder:"请输入5位取件码",label:"取件码"},submit:"取件",needSendFile:"需要发送文件?点击这里",recordsDrawer:"取件记录",messages:{invalidCode:"请输入5位取件码",retrieveSuccess:"文件获取成功",invalidCodeError:"无效的取件码",retrieveFailure:"获取文件失败:",networkError:"取件失败,请稍后重试:",unknownError:"未知错误"}},send:{title:"文件发送",sendText:"发送文本",fileDetails:"文件详情",expirationMethod:"过期方式",uploadArea:{dragText:"拖拽文件到此处或",clickText:"点击选择文件",textInput:"在此输入要发送的文本...",placeholder:"点击或拖放文件到此处上传",description:"支持各种常见格式"},submit:"安全寄送",submitting:"发送中...",needRetrieveFile:"需要取件?点击这里",sendRecords:"发件记录",secureEncryption:"安全加密",fileDetail:{title:"文件详情",content:"文件内容",previewContent:"预览内容",download:"点击下载",qrCode:"取件二维码",scanQrCode:"扫描二维码快速取件"},contentPreview:{title:"内容预览"},fileManage:{title:"文件管理",searchPlaceholder:"搜索文件名称、描述...",allFiles:"所有文件",editFileInfo:"编辑文件信息",saveChanges:"保存更改",headers:{code:"取件码",name:"名称",size:"大小",description:"描述",expiration:"过期时间",actions:"操作"},form:{code:"取件码",codePlaceholder:"输入取件码",filename:"文件名称",filenamePlaceholder:"输入文件名称",suffix:"文件后缀",suffixPlaceholder:"输入文件后缀",downloadLimit:"下载次数限制",downloadLimitPlaceholder:"输入下载次数限制"}},expiration:{label:"过期时间",placeholders:{days:"输入天数",hours:"输入小时数",minutes:"输入分钟数",count:"输入查看次数",forever:"永久",default:"输入值"},units:{days:"天",hours:"小时",minutes:"分钟",times:"次",forever:"永久"}},time:{day:"按天",hour:"按小时",minute:"按分钟",forever:"永久",count:"按次数"},messages:{selectFile:"请选择要上传的文件",enterText:"请输入要发送的文本",enterExpirationValue:"请输入过期值",expirationTooLong:"过期时间不能超过{days}天",sendSuccess:"文件发送成功!取件码:{code}",initChunkUploadFailed:"初始化切片上传失败",chunkUploadFailed:"切片 {index} 上传失败",completeUploadFailed:"完成上传失败",uploadFailed:"上传失败,请稍后重试",guestUploadDisabled:"游客上传功能已关闭",fileSizeExceeded:"文件大小超过限制 ({size})",serverError:"服务器响应异常",sendFailed:"发送失败,请稍后重试",expiresAfterCount:"{count}次后过期",expiresAt:"{date}过期",emptyFileError:"无法读取空文件",fileAddedFromClipboard:"已从剪贴板添加文件:{filename}",fileProcessingFailed:"文件处理失败",expiresAfter:"{value}{unit}后过期"}},fileManage:{title:"文件管理",searchPlaceholder:"搜索文件名称、描述...",allFiles:"所有文件",editFileInfo:"编辑文件信息",saveChanges:"保存更改",viewText:"查看",textPreview:"文本预览",copyText:"复制文本",copySuccess:"文本已复制到剪贴板",copyFailed:"复制失败,请重试",charCount:"共 {count} 个字符",headers:{code:"取件码",name:"名称",size:"大小",description:"描述",expiration:"过期时间",actions:"操作"},form:{code:"取件码",codePlaceholder:"输入取件码",filename:"文件名称",filenamePlaceholder:"输入文件名称",suffix:"文件后缀",suffixPlaceholder:"输入文件后缀",downloadLimit:"下载次数限制",downloadLimitPlaceholder:"输入下载次数限制"}},fileRecord:{filename:"文件名",size:"文件大小",date:"取件日期",code:"取件码",actions:"操作",download:"下载",viewDetails:"查看详情",deleteRecord:"删除记录",preview:"预览",copyContent:"复制内容",contentCopied:"内容已复制到剪贴板",copyFailed:"复制失败,请重试"},fileDetail:{title:"文件详情",content:"文件内容",previewContent:"预览内容",download:"点击下载",qrCode:"取件二维码",scanQrCode:"扫描二维码快速取件"},contentPreview:{title:"内容预览"},drawer:{noRecords:"暂无记录"},fileSize:{bytes:"Bytes",kb:"KB",mb:"MB",gb:"GB",tb:"TB"},manage:{settings:{title:"系统设置",basicSettings:"基本设置",siteName:"网站名称",adminPassword:"管理员密码",passwordPlaceholder:"如需修改请输入新密码",passwordNote:"不修改请留空",keywords:"SEO 关键词",themeSelection:"界面主题",robotsFile:"Robots.txt 配置",notificationSettings:"通知设置",notificationTitle:"公告标题",notificationContent:"公告内容",storageSettings:"存储配置",storagePath:"文件存储路径",storagePathPlaceholder:"使用默认路径可留空",storageMethod:"存储方式",localStorage:"本地存储",s3Storage:"S3 对象存储",webdavStorage:"WebDAV 存储",chunkUploadNote:"分片上传(实验性功能,大文件上传更稳定)",uploadLimits:"上传设置",uploadPerMinute:"限流时间窗口(在此时间内限制上传次数)",uploadCountLimit:"允许上传文件数(限流窗口内最多上传几个文件)",fileSizeLimit:"单文件大小上限",expiration:{day:"按天数",hour:"按小时",minute:"按分钟",forever:"永久有效",count:"按下载次数"},maxSaveTime:"文件最长保存时间",s3AccessKeyId:"Access Key ID",s3SecretAccessKey:"Secret Access Key",s3BucketName:"存储桶名称",s3EndpointUrl:"服务端点 URL",s3RegionName:"区域名称",s3SignatureVersion:"签名版本",s3Hostname:"自定义域名",s3v2:"S3v2",s3v4:"S3v4",autoPlaceholder:"自动识别",enableProxy:"启用下载代理",webdavUrlPlaceholder:"输入 WebDAV 服务地址",webdavUsernamePlaceholder:"输入 WebDAV 用户名",webdavPasswordPlaceholder:"输入 WebDAV 密码",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"},expirationType:"过期方式",guestUpload:"允许游客上传",errorLimits:"访问保护",errorPerMinute:"检测时间窗口(在此时间内统计错误次数)",errorCountLimit:"允许错误次数(超过后临时封禁)",saveChanges:"保存设置"},dashboard:{title:"仪表盘",totalFiles:"总文件数",storageSpace:"存储空间",activeUsers:"活跃用户",systemStatus:"系统状态",yesterday:"昨天:",today:"今天:",weeklyChange:"↓ 5% 较上周",normal:"正常",serverUptime:"服务器运行时间:",version:"版本 v2.2.1 更新时间:2025-09-04"},fileManage:{title:"文件管理",searchPlaceholder:"搜索文件名称、描述...",allFiles:"所有文件",editFileInfo:"编辑文件信息",saveChanges:"保存更改",headers:{code:"取件码",name:"名称",size:"大小",description:"描述",expiration:"过期时间",actions:"操作"},form:{code:"取件码",codePlaceholder:"输入取件码",filename:"文件名称",filenamePlaceholder:"输入文件名称",suffix:"文件后缀",suffixPlaceholder:"输入文件后缀",downloadLimit:"下载次数限制",downloadLimitPlaceholder:"输入下载次数限制"},updateFailed:"更新失败",deleteFailed:"删除失败",loadFileListFailed:"加载文件列表失败"},systemSettings:{title:"系统设置",basicSettings:"基本设置",websiteInfo:"网站基本信息",websiteName:"网站名称",websiteDescription:"网站描述",adminPassword:"管理员密码",passwordPlaceholder:"如需修改请输入新密码",passwordNote:"不修改请留空",keywords:"SEO 关键词",themeSelection:"界面主题",notificationSettings:"通知设置",notificationTitle:"公告标题",notificationContent:"公告内容",storageSettings:"存储配置",storagePath:"文件存储路径",storagePathPlaceholder:"使用默认路径可留空",storageMethod:"存储方式",localStorage:"本地存储",s3Storage:"S3 对象存储",webdavStorage:"WebDAV 存储",chunkUploadNote:"分片上传(实验性功能,大文件上传更稳定)",enabled:"已启用",disabled:"已禁用",webdavUrl:"输入 WebDAV 服务地址",webdavUsername:"输入 WebDAV 用户名",webdavPassword:"输入 WebDAV 密码",enableProxy:"启用下载代理",uploadLimits:"上传设置",uploadRateLimit:"限流时间窗口(在此时间内限制上传次数)",minute:"分钟",uploadCountLimit:"允许上传文件数(限流窗口内最多上传几个文件)",files:"个文件",fileSizeLimit:"单文件大小上限",expirationMethod:"过期方式",expirationMethods:{day:"按天数",hour:"按小时",minute:"按分钟",forever:"永久有效",count:"按下载次数"},expiration:{day:"按天数",hour:"按小时",minute:"按分钟",forever:"永久有效",count:"按下载次数"},maxSaveTime:"文件最长保存时间",timeUnits:{second:"秒",minute:"分钟",hour:"小时",day:"天"},guestUpload:"允许游客上传",errorLimits:"访问保护",errorRateLimit:"检测时间窗口(在此时间内统计错误次数)",errorCountLimit:"允许错误次数(超过后临时封禁)",times:"次",saveSettings:"保存设置",saveSuccess:"设置已保存",saveFailed:"保存失败,请重试",getConfigFailed:"获取配置失败,请刷新页面"},login:{title:"登录",password:"密码",passwordPlaceholder:"密码",loginButton:"登录",loggingIn:"登录中...",invalidPassword:"无效的密码",passwordTooShort:"密码长度至少为6位",loginFailed:"登录失败",noValidToken:"登录失败:未获取到有效令牌"}},utils:{common:{formatTime:"格式化时间戳为可读格式",formatFileSize:"格式化文件大小",formatDuration:"格式化持续时间",time:{forever:"永久",day:"天",hour:"小时",minute:"分钟",second:"秒"},copyToClipboard:"复制文本到剪贴板",copyFailed:"复制失败:",debounce:"防抖函数",throttle:"节流函数",validateEmail:"验证邮箱格式",validateUrl:"验证URL格式",generateRandomString:"生成随机字符串",deepClone:"深度克隆对象",getFileExtension:"获取文件扩展名",isMobileDevice:"检查是否为移动设备",formatNumber:"格式化数字,添加千分位分隔符"},clipboard:{title:"剪贴板工具函数",copyText:"复制文本到剪贴板",copySuccess:"复制成功",copyFailed:"复制失败,请手动复制"}},components:{pagination:{showing:"显示第",to:"到",of:"条,共",total:"条",previous:"上一页",next:"下一页"},languageSwitcher:{clickOutsideToClose:"点击外部关闭下拉菜单"},borderProgressBar:{borderWidth:"边框宽度",cornerRadius:"拐角半径",createGradient:"创建渐变",drawBackground:"绘制背景",calculateProgress:"计算进度",drawProgress:"绘制进度"}},misc:{emptyFileError:"无法读取空文件",fileAddedFromClipboard:"已从剪贴板添加文件:",fileProcessFailed:"文件处理失败",chunkSize:"保持 2MB 的切片大小用于计算哈希",secureContext:"如果不是安全上下文(HTTP),则返回一个基于文件信息的替代哈希",cryptoFallback:"如果 crypto.subtle.digest 失败,使用替代方案",generateAlternativeHash:"生成替代哈希的函数",fileInfoHash:"使用文件名、大小和最后修改时间生成一个简单的哈希",convertToHex:"转换为16进制字符串并填充到64位",defaultChunkSize:"默认切片大小为5MB",initChunkUpload:"1. 初始化切片上传",uploadChunk:"2. 上传切片",completeUpload:"3. 完成上传",chunkUploadFailed:"切片上传失败:",uploadProgressListener:"添加上传进度监听",noLimitCheck:"如果没有限制,直接返回true",expirationValidation:"添加过期时间验证",chunkUploadReplacement:"使用切片上传替代原来的直接上传",textUploadUnchanged:"文本上传保持不变",addSendRecord:"添加新的发送记录",permanent:"永久",sendSuccessMessage:"显示发送成功消息",resetForm:"重置表单 - 只重置文件和文本内容,保留过期信息",showDetails:"显示详情",autoCopyLink:"自动复制取件码链接",delayedLoading:"使用 onMounted 钩子延迟加载一些非关键资源或初始化",nonCriticalInit:"这里可以放置一些非立即需要的初始化代码"}},W_={common:{confirm:"Confirm",cancel:"Cancel",close:"Close",delete:"Delete",edit:"Edit",save:"Save",add:"Add",back:"Back",next:"Next",previous:"Previous",loading:"Loading...",noData:"No Data",success:"Success",error:"Error",warning:"Warning",info:"Information",search:"Search",copy:"Copy",uploadSuccess:"Upload successful",uploadFailed:"Upload failed",copySuccess:"Copy successful",copyFailed:"Copy failed",deleteSuccess:"Delete successful",deleteFailed:"Delete failed",downloadSuccess:"Download successful",downloadFailed:"Download failed",shareSuccess:"Share successful",shareFailed:"Share failed",expiredFile:"File has expired",fileNotFound:"File not found",networkError:"Network error",unknownError:"Unknown error",invalidFileType:"Invalid file type",fileTooLarge:"File too large",uploadCanceled:"Upload canceled",processing:"Processing",pleaseWait:"Please wait",fileDetails:"File Details",enabled:"Enabled",disabled:"Disabled",minute:"minute",files:"files",second:"second",hour:"hour",day:"day",times:"times",appName:"FileCodeBox - File Transfer",appDescription:"Ready-to-use file transfer system"},admin:{dashboard:{title:"Dashboard",totalFiles:"Total Files",storageSpace:"Storage Space",activeUsers:"Active Users",systemStatus:"System Status",yesterday:"Yesterday:",today:"Today:",weeklyChange:"↓ 5% from last week",normal:"Normal",serverUptime:"Server Uptime:",version:"Version v2.2.1 Updated: 2025-09-04"},fileManage:{title:"File Management"},settings:{title:"System Settings",basicSettings:"General",websiteInfo:"Site Information",websiteName:"Site Name",websiteDescription:"Site Description",siteName:"Site Name",adminPassword:"Admin Password",passwordPlaceholder:"Enter new password to change",passwordNote:"Leave empty to keep current",keywords:"SEO Keywords",themeSelection:"Theme",robotsFile:"Robots.txt Configuration",notificationSettings:"Notifications",notificationTitle:"Announcement Title",notificationContent:"Announcement Content",storageSettings:"Storage",storagePath:"Storage Path",storagePathPlaceholder:"Leave empty for default path",storageMethod:"Storage Type",localStorage:"Local Storage",s3Storage:"S3 Object Storage",webdavStorage:"WebDAV Storage",chunkUploadNote:"Chunked Upload (experimental, better for large files)",s3AccessKeyId:"Access Key ID",s3SecretAccessKey:"Secret Access Key",s3BucketName:"Bucket Name",s3EndpointUrl:"Endpoint URL",s3RegionName:"Region Name",s3SignatureVersion:"Signature Version",s3Hostname:"Custom Domain",s3v2:"S3v2",s3v4:"S3v4",autoPlaceholder:"Auto-detect",enabled:"Enabled",disabled:"Disabled",webdavUrl:"Enter WebDAV server URL",webdavUsername:"Enter WebDAV username",webdavPassword:"Enter WebDAV password",webdavUrlPlaceholder:"Enter WebDAV server URL",webdavUsernamePlaceholder:"Enter WebDAV username",webdavPasswordPlaceholder:"Enter WebDAV password",enableProxy:"Enable Download Proxy",uploadLimits:"Upload Settings",uploadRateLimit:"Time Window (limit uploads within this period)",uploadPerMinute:"Time Window (limit uploads within this period)",minute:"min",uploadCountLimit:"Max Files Allowed (within the time window)",files:"files",fileSizeLimit:"Max File Size",expirationMethod:"Expiration Options",expirationType:"Expiration Options",expiration:{day:"Days",hour:"Hours",minute:"Minutes",forever:"Never Expire",count:"Download Count"},maxSaveTime:"Max Retention Period",timeUnits:{second:"sec",minute:"min",hour:"hr",day:"day"},guestUpload:"Allow Guest Uploads",errorLimits:"Access Protection",errorRateLimit:"Detection Window (count errors within this period)",errorPerMinute:"Detection Window (count errors within this period)",errorCountLimit:"Max Errors Allowed (block after exceeding)",times:"times",saveChanges:"Save Settings",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"}}},nav:{sendFile:"Send File",retrieveFile:"Retrieve",fileRecords:"File Records"},retrieve:{title:"File Retrieval",codeInput:{placeholder:"Enter 5-digit retrieval code",label:"Retrieval Code"},submit:"Retrieve",needSendFile:"Need to send a file? Click here",recordsDrawer:"Retrieval Records",messages:{invalidCode:"Please enter a 5-digit retrieval code",retrieveSuccess:"File retrieved successfully",invalidCodeError:"Invalid retrieval code",retrieveFailure:"Failed to retrieve file: ",networkError:"Retrieval failed, please try again later: ",unknownError:"Unknown error"}},send:{title:"File Send",sendText:"Send Text",uploadArea:{dragText:"Drag files here or",clickText:"click to select files",textInput:"Enter text to send here...",placeholder:"Click or drag files here to upload",description:"Supports various common formats"},submit:"Secure Send",submitting:"Sending...",needRetrieveFile:"Need to retrieve? Click here",sendRecords:"Send Records",secureEncryption:"Secure Encryption",fileDetails:"File Details",expirationMethod:"Expiration Method",expiration:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count",label:"Expiration Time",placeholders:{days:"Enter days",hours:"Enter hours",minutes:"Enter minutes",count:"Enter view count",forever:"Forever",default:"Enter value"},units:{days:"days",hours:"hours",minutes:"minutes",times:"times",forever:"Forever"}},time:{day:"By Day",hour:"By Hour",minute:"By Minute",forever:"Forever",count:"By Count"},messages:{selectFile:"Please select a file to upload",enterText:"Please enter text to send",enterExpirationValue:"Please enter expiration value",expirationTooLong:"Expiration time cannot exceed {days} days",sendSuccess:"File sent successfully! Retrieve code: {code}",initChunkUploadFailed:"Failed to initialize chunk upload",chunkUploadFailed:"Chunk {index} upload failed",completeUploadFailed:"Failed to complete upload",uploadFailed:"Upload failed, please try again later",guestUploadDisabled:"Guest upload feature is disabled",fileSizeExceeded:"File size exceeds limit ({size})",serverError:"Server response error",sendFailed:"Send failed, please try again later",expiresAfterCount:"Expires after {count} times",expiresAt:"Expires at {date}",emptyFileError:"Cannot read empty file",fileAddedFromClipboard:"File added from clipboard: {filename}",fileProcessingFailed:"File processing failed",expiresAfter:"Expires after {value} {unit}"}},fileRecord:{filename:"Filename",size:"Size",date:"Date",code:"Code",actions:"Actions",download:"Download",viewDetails:"View Details",deleteRecord:"Delete Record",preview:"Preview",copyContent:"Copy Content",contentCopied:"Content copied to clipboard",copyFailed:"Copy failed, please try again"},fileDetail:{title:"File Details",content:"File Content",previewContent:"Preview Content",download:"Click to Download",qrCode:"Retrieve QR Code",scanQrCode:"Scan QR code for quick retrieval"},contentPreview:{title:"Content Preview"},fileManage:{title:"File Management",searchPlaceholder:"Search file name, description...",allFiles:"All Files",editFileInfo:"Edit File Information",saveChanges:"Save Changes",viewText:"View",textPreview:"Text Preview",copyText:"Copy Text",copySuccess:"Text copied to clipboard",copyFailed:"Copy failed, please try again",charCount:"{count} characters",headers:{code:"Retrieve Code",name:"Name",size:"Size",description:"Description",expiration:"Expiration",actions:"Actions"},form:{code:"Retrieve Code",codePlaceholder:"Enter retrieve code",filename:"File Name",filenamePlaceholder:"Enter file name",suffix:"File Extension",suffixPlaceholder:"Enter file extension",downloadLimit:"Download Limit",downloadLimitPlaceholder:"Enter download limit"}},drawer:{noRecords:"No records"},manage:{settings:{title:"System Settings",basicSettings:"General",websiteInfo:"Site Information",websiteName:"Site Name",websiteDescription:"Site Description",siteName:"Site Name",adminPassword:"Admin Password",passwordPlaceholder:"Enter new password to change",passwordNote:"Leave empty to keep current",keywords:"SEO Keywords",themeSelection:"Theme",notificationSettings:"Notifications",notificationTitle:"Announcement Title",notificationContent:"Announcement Content",storageSettings:"Storage",storagePath:"Storage Path",storagePathPlaceholder:"Leave empty for default path",storageMethod:"Storage Type",localStorage:"Local Storage",s3Storage:"S3 Object Storage",webdavStorage:"WebDAV Storage",chunkUploadNote:"Chunked Upload (experimental, better for large files)",enabled:"Enabled",disabled:"Disabled",webdavUrl:"Enter WebDAV server URL",webdavUsername:"Enter WebDAV username",webdavPassword:"Enter WebDAV password",webdavUrlPlaceholder:"Enter WebDAV server URL",webdavUsernamePlaceholder:"Enter WebDAV username",webdavPasswordPlaceholder:"Enter WebDAV password",enableProxy:"Enable Download Proxy",uploadLimits:"Upload Settings",uploadRateLimit:"Time Window (limit uploads within this period)",uploadPerMinute:"Time Window (limit uploads within this period)",minute:"min",uploadCountLimit:"Max Files Allowed (within the time window)",files:"files",fileSizeLimit:"Max File Size",expirationMethod:"Expiration Options",expirationType:"Expiration Options",expiration:{day:"Days",hour:"Hours",minute:"Minutes",forever:"Never Expire",count:"Download Count"},maxSaveTime:"Max Retention Period",timeUnits:{second:"sec",minute:"min",hour:"hr",day:"day"},guestUpload:"Allow Guest Uploads",errorLimits:"Access Protection",errorRateLimit:"Detection Window (count errors within this period)",errorPerMinute:"Detection Window (count errors within this period)",errorCountLimit:"Max Errors Allowed (block after exceeding)",times:"times",fileSizeUnits:{kb:"KB",mb:"MB",gb:"GB"},saveChanges:"Save Settings"},systemSettings:{title:"System Settings",basicSettings:"General",websiteInfo:"Site Information",websiteName:"Site Name",websiteDescription:"Site Description",adminPassword:"Admin Password",passwordPlaceholder:"Enter new password to change",passwordNote:"Leave empty to keep current",keywords:"SEO Keywords",themeSelection:"Theme",notificationSettings:"Notifications",notificationTitle:"Announcement Title",notificationContent:"Announcement Content",storageSettings:"Storage",storagePath:"Storage Path",storagePathPlaceholder:"Leave empty for default path",storageMethod:"Storage Type",localStorage:"Local Storage",s3Storage:"S3 Object Storage",webdavStorage:"WebDAV Storage",chunkUploadNote:"Chunked Upload (experimental, better for large files)",enabled:"Enabled",disabled:"Disabled",webdavUrl:"Enter WebDAV server URL",webdavUsername:"Enter WebDAV username",webdavPassword:"Enter WebDAV password",enableProxy:"Enable Download Proxy",uploadLimits:"Upload Settings",uploadRateLimit:"Time Window (limit uploads within this period)",minute:"min",uploadCountLimit:"Max Files Allowed (within the time window)",files:"files",fileSizeLimit:"Max File Size",expirationMethod:"Expiration Options",expirationMethods:{day:"Days",hour:"Hours",minute:"Minutes",forever:"Never Expire",count:"Download Count"},expiration:{day:"Days",hour:"Hours",minute:"Minutes",forever:"Never Expire",count:"Download Count"},maxSaveTime:"Max Retention Period",timeUnits:{second:"sec",minute:"min",hour:"hr",day:"day"},guestUpload:"Allow Guest Uploads",errorLimits:"Access Protection",errorRateLimit:"Detection Window (count errors within this period)",errorCountLimit:"Max Errors Allowed (block after exceeding)",times:"times",saveSettings:"Save Settings",saveSuccess:"Settings saved successfully",saveFailed:"Failed to save, please try again",getConfigFailed:"Failed to load settings, please refresh"},dashboard:{title:"Dashboard",totalFiles:"Total Files",storageSpace:"Storage Space",activeUsers:"Active Users",systemStatus:"System Status",yesterday:"Yesterday:",today:"Today:",weeklyChange:"↓ 5% from last week",normal:"Normal",serverUptime:"Server Uptime:",version:"Version v2.2.1 Updated: 2025-09-04"},fileManage:{title:"File Management",searchPlaceholder:"Search file name, description...",allFiles:"All Files",editFileInfo:"Edit File Info",saveChanges:"Save Changes",headers:{code:"Code",name:"Name",size:"Size",description:"Description",expiration:"Expiration",actions:"Actions"},form:{code:"Code",codePlaceholder:"Enter code",filename:"File Name",filenamePlaceholder:"Enter file name",suffix:"File Suffix",suffixPlaceholder:"Enter file suffix",downloadLimit:"Download Limit",downloadLimitPlaceholder:"Enter download limit"},updateFailed:"Update failed",deleteFailed:"Delete failed",loadFileListFailed:"Failed to load file list"},login:{title:"Login",password:"Password",passwordPlaceholder:"Password",loginButton:"Login",loggingIn:"Logging in...",invalidPassword:"Invalid password",passwordTooShort:"Password must be at least 6 characters",loginFailed:"Login failed",noValidToken:"Login failed: No valid token received"}},fileSize:{bytes:"Bytes",kb:"KB",mb:"MB",gb:"GB",tb:"TB"},utils:{formatTime:"Format timestamp to readable format",formatFileSize:"Format file size",formatDuration:"Format duration",time:{forever:"Forever",day:"day",hour:"hour",minute:"minute",second:"second"},copyToClipboard:"Copy text to clipboard",copyFailed:"Copy failed:",debounce:"Debounce function",throttle:"Throttle function",validateEmail:"Validate email format",validateUrl:"Validate URL format",generateRandomString:"Generate random string",deepClone:"Deep clone object",getFileExtension:"Get file extension",isMobileDevice:"Check if mobile device",formatNumber:"Format number with thousand separators",clipboard:{title:"Clipboard utility functions",copyText:"Copy text to clipboard",copySuccess:"Copy successful",copyFailed:"Copy failed, please copy manually"}},components:{pagination:{showing:"Showing",to:"to",of:"of",total:"total",previous:"Previous",next:"Next"},languageSwitcher:{clickOutsideToClose:"Click outside to close dropdown menu"},borderProgressBar:{borderWidth:"Border width",cornerRadius:"Corner radius",createGradient:"Create gradient",drawBackground:"Draw background",calculateProgress:"Calculate progress",drawProgress:"Draw progress"}},misc:{emptyFileError:"Cannot read empty file",fileAddedFromClipboard:"File added from clipboard: ",fileProcessFailed:"File processing failed",chunkSize:"Keep 2MB chunk size for hash calculation",secureContext:"If not in secure context (HTTP), return an alternative hash based on file info",cryptoFallback:"If crypto.subtle.digest fails, use fallback method",generateAlternativeHash:"Function to generate alternative hash",fileInfoHash:"Generate simple hash using filename, size and last modified time",convertToHex:"Convert to hex string and pad to 64 bits",defaultChunkSize:"Default chunk size is 5MB",initChunkUpload:"1. Initialize chunk upload",uploadChunk:"2. Upload chunk",completeUpload:"3. Complete upload",chunkUploadFailed:"Chunk upload failed: ",uploadProgressListener:"Add upload progress listener",noLimitCheck:"If no limit, return true directly",expirationValidation:"Add expiration time validation",chunkUploadReplacement:"Use chunk upload to replace direct upload",textUploadUnchanged:"Text upload remains unchanged",addSendRecord:"Add new send record",permanent:"Permanent",sendSuccessMessage:"Show send success message",resetForm:"Reset form - only reset file and text content, keep expiration info",showDetails:"Show details",autoCopyLink:"Auto copy retrieve code link",delayedLoading:"Use onMounted hook to delay load non-critical resources or initialization",nonCriticalInit:"Place non-immediately needed initialization code here"}},B_=()=>{const e=localStorage.getItem("locale");return e||(navigator.language.toLowerCase().startsWith("zh")?"zh-CN":"en-US")},j_={"zh-CN":H_,"en-US":W_},ef=O_({legacy:!1,locale:B_(),fallbackLocale:"zh-CN",messages:j_,globalInjection:!0}),K_=e=>{ef.global.locale.value=e,localStorage.setItem("locale",e),document.documentElement.lang=e},ho=[{code:"zh-CN",name:"中文"},{code:"en-US",name:"English"}],G_={class:"relative"},q_={class:"text-sm font-medium"},Y_={class:"py-1"},z_=["onClick"],X_=Xt({__name:"LanguageSwitcher",setup(e){const{locale:t}=Hr(),n=Xe("isDarkMode"),r=st(!1),s=_e(()=>t.value),o=_e(()=>ho.find(c=>c.code===s.value)||ho[0]),i=()=>{r.value=!r.value},a=c=>{K_(c),r.value=!1},l=c=>{c.target.closest(".relative")||(r.value=!1)};return Zn(()=>{document.addEventListener("click",l)}),er(()=>{document.removeEventListener("click",l)}),(c,u)=>(Be(),jt("div",G_,[Ve("button",{onClick:i,class:Nt(["flex items-center space-x-2 px-3 py-2 rounded-lg transition-all duration-200",Se(n)?"bg-gray-800/60 hover:bg-gray-700/80 text-gray-300 hover:text-white":"bg-gray-100 hover:bg-gray-200 text-gray-700 hover:text-gray-900"])},[Ae(Se(Lm),{class:"w-4 h-4"}),Ve("span",q_,br(o.value.name),1),Ae(Se(wm),{class:Nt(["w-4 h-4 transition-transform duration-200",{"rotate-180":r.value}])},null,8,["class"])],2),Ae(Jc,{"enter-active-class":"transition ease-out duration-200","enter-from-class":"opacity-0 scale-95","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition ease-in duration-150","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-95"},{default:wr(()=>[r.value?(Be(),jt("div",{key:0,class:Nt(["absolute right-0 mt-2 w-32 rounded-lg shadow-lg ring-1 ring-black ring-opacity-5 z-50",Se(n)?"bg-gray-800 border border-gray-700":"bg-white border border-gray-200"])},[Ve("div",Y_,[(Be(!0),jt(De,null,Tc(Se(ho),f=>(Be(),jt("button",{key:f.code,onClick:d=>a(f.code),class:Nt(["w-full text-left px-4 py-2 text-sm transition-colors duration-150",s.value===f.code?Se(n)?"bg-indigo-600 text-white":"bg-indigo-50 text-indigo-600":Se(n)?"text-gray-300 hover:bg-gray-700 hover:text-white":"text-gray-700 hover:bg-gray-100"])},br(f.name),11,z_))),128))])],2)):Kc("",!0)]),_:1})]))}}),hl={COLOR_MODE:"colorMode",ADMIN_PASSWORD:"adminPassword",TOKEN:"token",CONFIG:"config",NOTIFY:"notify"},$e={LIGHT:"light",DARK:"dark",SYSTEM:"system"},rE={IDLE:"idle",UPLOADING:"uploading",SUCCESS:"success",ERROR:"error"},sE={MAX_FILE_SIZE:100*1024*1024},tf={ALERT_DURATION:5e3,REQUEST_TIMEOUT:3e8},nf=dh("alert",{state:()=>({alerts:[]}),actions:{showAlert(e,t="info",n=tf.ALERT_DURATION){const r=Date.now(),s=Date.now();this.alerts.push({id:r,message:e,type:t,progress:100,duration:n,startTime:s}),setTimeout(()=>this.removeAlert(r),n)},removeAlert(e){const t=this.alerts.findIndex(n=>n.id===e);t>-1&&this.alerts.splice(t,1)},updateAlertProgress(e){const t=this.alerts.find(n=>n.id===e);if(t){const r=100-(Date.now()-t.startTime)/t.duration*100;t.progress=Math.max(0,r),t.progress<=0&&this.removeAlert(e)}}}}),J_={class:"p-4"},Q_={class:"flex items-start"},Z_={class:"flex-shrink-0"},ey={class:"ml-3 flex-1 pt-0.5"},ty={class:"text-sm font-medium text-white"},ny={class:"ml-4 flex-shrink-0 flex"},ry=["onClick"],sy={class:"sr-only"},oy={class:"h-1 bg-white bg-opacity-25"},iy=Xt({__name:"AlertComponent",setup(e){const{t}=Hr(),n=nf(),{alerts:r}=ph(n),{removeAlert:s,updateAlertProgress:o}=n,i={success:"from-green-500 to-green-600",error:"from-red-500 to-red-600",warning:"from-yellow-500 to-yellow-600",info:"from-blue-500 to-blue-600"},a={success:Cm,error:Om,warning:Tm,info:Pm};let l;return Zn(()=>{l=setInterval(()=>{r.value.forEach(c=>{o(c.id)})},100)}),er(()=>{clearInterval(l)}),(c,u)=>(Be(),dn(Gp,{name:"alert-fade",tag:"div",class:"fixed top-4 left-4 z-50 w-full sm:max-w-sm md:max-w-md space-y-4 px-4 sm:px-0"},{default:wr(()=>[(Be(!0),jt(De,null,Tc(Se(r),f=>(Be(),jt("div",{key:f.id,class:Nt(["w-full rounded-lg shadow-xl overflow-hidden","bg-gradient-to-r",i[f.type]])},[Ve("div",J_,[Ve("div",Q_,[Ve("div",Z_,[(Be(),dn(Sc(a[f.type]),{class:"h-6 w-6 text-white"}))]),Ve("div",ey,[Ve("p",ty,br(f.message),1)]),Ve("div",ny,[Ve("button",{onClick:d=>Se(s)(f.id),class:"inline-flex text-white hover:text-gray-200 focus:outline-none transition-colors duration-200"},[Ve("span",sy,br(Se(t)("common.close")),1),Ae(Se(Nm),{class:"h-5 w-5"})],8,ry)])])]),Ve("div",oy,[Ve("div",{class:"h-full bg-white transition-all duration-100 ease-out",style:Cs({width:`${f.progress}%`})},null,4)])],2))),128))]),_:1}))}}),ay=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},ly=ay(iy,[["__scopeId","data-v-59f86e5f"]]);function rf(e,t){return function(){return e.apply(t,arguments)}}const{toString:cy}=Object.prototype,{getPrototypeOf:wi}=Object,{iterator:Vs,toStringTag:sf}=Symbol,Hs=(e=>t=>{const n=cy.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),wt=e=>(e=e.toLowerCase(),t=>Hs(t)===e),Ws=e=>t=>typeof t===e,{isArray:nr}=Array,kr=Ws("undefined");function Wr(e){return e!==null&&!kr(e)&&e.constructor!==null&&!kr(e.constructor)&&ot(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const of=wt("ArrayBuffer");function uy(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&of(e.buffer),t}const fy=Ws("string"),ot=Ws("function"),af=Ws("number"),Br=e=>e!==null&&typeof e=="object",dy=e=>e===!0||e===!1,rs=e=>{if(Hs(e)!=="object")return!1;const t=wi(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(sf in e)&&!(Vs in e)},py=e=>{if(!Br(e)||Wr(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},hy=wt("Date"),my=wt("File"),gy=wt("Blob"),_y=wt("FileList"),yy=e=>Br(e)&&ot(e.pipe),by=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||ot(e.append)&&((t=Hs(e))==="formdata"||t==="object"&&ot(e.toString)&&e.toString()==="[object FormData]"))},Ey=wt("URLSearchParams"),[vy,Sy,wy,Ty]=["ReadableStream","Request","Response","Headers"].map(wt),Cy=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function jr(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,s;if(typeof e!="object"&&(e=[e]),nr(e))for(r=0,s=e.length;r0;)if(s=n[r],t===s.toLowerCase())return s;return null}const Rn=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,cf=e=>!kr(e)&&e!==Rn;function Wo(){const{caseless:e}=cf(this)&&this||{},t={},n=(r,s)=>{const o=e&&lf(t,s)||s;rs(t[o])&&rs(r)?t[o]=Wo(t[o],r):rs(r)?t[o]=Wo({},r):nr(r)?t[o]=r.slice():t[o]=r};for(let r=0,s=arguments.length;r(jr(t,(s,o)=>{n&&ot(s)?e[o]=rf(s,n):e[o]=s},{allOwnKeys:r}),e),Py=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Ay=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},Ry=(e,t,n,r)=>{let s,o,i;const a={};if(t=t||{},e==null)return t;do{for(s=Object.getOwnPropertyNames(e),o=s.length;o-- >0;)i=s[o],(!r||r(i,e,t))&&!a[i]&&(t[i]=e[i],a[i]=!0);e=n!==!1&&wi(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Oy=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},Ny=e=>{if(!e)return null;if(nr(e))return e;let t=e.length;if(!af(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},Iy=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&wi(Uint8Array)),xy=(e,t)=>{const r=(e&&e[Vs]).call(e);let s;for(;(s=r.next())&&!s.done;){const o=s.value;t.call(e,o[0],o[1])}},ky=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Fy=wt("HTMLFormElement"),Dy=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,s){return r.toUpperCase()+s}),ml=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),My=wt("RegExp"),uf=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};jr(n,(s,o)=>{let i;(i=t(s,o,e))!==!1&&(r[o]=i||s)}),Object.defineProperties(e,r)},Uy=e=>{uf(e,(t,n)=>{if(ot(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(ot(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},$y=(e,t)=>{const n={},r=s=>{s.forEach(o=>{n[o]=!0})};return nr(e)?r(e):r(String(e).split(t)),n},Vy=()=>{},Hy=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Wy(e){return!!(e&&ot(e.append)&&e[sf]==="FormData"&&e[Vs])}const By=e=>{const t=new Array(10),n=(r,s)=>{if(Br(r)){if(t.indexOf(r)>=0)return;if(Wr(r))return r;if(!("toJSON"in r)){t[s]=r;const o=nr(r)?[]:{};return jr(r,(i,a)=>{const l=n(i,s+1);!kr(l)&&(o[a]=l)}),t[s]=void 0,o}}return r};return n(e,0)},jy=wt("AsyncFunction"),Ky=e=>e&&(Br(e)||ot(e))&&ot(e.then)&&ot(e.catch),ff=((e,t)=>e?setImmediate:t?((n,r)=>(Rn.addEventListener("message",({source:s,data:o})=>{s===Rn&&o===n&&r.length&&r.shift()()},!1),s=>{r.push(s),Rn.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",ot(Rn.postMessage)),Gy=typeof queueMicrotask<"u"?queueMicrotask.bind(Rn):typeof process<"u"&&process.nextTick||ff,qy=e=>e!=null&&ot(e[Vs]),N={isArray:nr,isArrayBuffer:of,isBuffer:Wr,isFormData:by,isArrayBufferView:uy,isString:fy,isNumber:af,isBoolean:dy,isObject:Br,isPlainObject:rs,isEmptyObject:py,isReadableStream:vy,isRequest:Sy,isResponse:wy,isHeaders:Ty,isUndefined:kr,isDate:hy,isFile:my,isBlob:gy,isRegExp:My,isFunction:ot,isStream:yy,isURLSearchParams:Ey,isTypedArray:Iy,isFileList:_y,forEach:jr,merge:Wo,extend:Ly,trim:Cy,stripBOM:Py,inherits:Ay,toFlatObject:Ry,kindOf:Hs,kindOfTest:wt,endsWith:Oy,toArray:Ny,forEachEntry:xy,matchAll:ky,isHTMLForm:Fy,hasOwnProperty:ml,hasOwnProp:ml,reduceDescriptors:uf,freezeMethods:Uy,toObjectSet:$y,toCamelCase:Dy,noop:Vy,toFiniteNumber:Hy,findKey:lf,global:Rn,isContextDefined:cf,isSpecCompliantForm:Wy,toJSONObject:By,isAsyncFn:jy,isThenable:Ky,setImmediate:ff,asap:Gy,isIterable:qy};function se(e,t,n,r,s){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),s&&(this.response=s,this.status=s.status?s.status:null)}N.inherits(se,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:N.toJSONObject(this.config),code:this.code,status:this.status}}});const df=se.prototype,pf={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{pf[e]={value:e}});Object.defineProperties(se,pf);Object.defineProperty(df,"isAxiosError",{value:!0});se.from=(e,t,n,r,s,o)=>{const i=Object.create(df);return N.toFlatObject(e,i,function(l){return l!==Error.prototype},a=>a!=="isAxiosError"),se.call(i,e.message,t,n,r,s),i.cause=e,i.name=e.name,o&&Object.assign(i,o),i};const Yy=null;function Bo(e){return N.isPlainObject(e)||N.isArray(e)}function hf(e){return N.endsWith(e,"[]")?e.slice(0,-2):e}function gl(e,t,n){return e?e.concat(t).map(function(s,o){return s=hf(s),!n&&o?"["+s+"]":s}).join(n?".":""):t}function zy(e){return N.isArray(e)&&!e.some(Bo)}const Xy=N.toFlatObject(N,{},null,function(t){return/^is[A-Z]/.test(t)});function Bs(e,t,n){if(!N.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=N.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(S,w){return!N.isUndefined(w[S])});const r=n.metaTokens,s=n.visitor||u,o=n.dots,i=n.indexes,l=(n.Blob||typeof Blob<"u"&&Blob)&&N.isSpecCompliantForm(t);if(!N.isFunction(s))throw new TypeError("visitor must be a function");function c(E){if(E===null)return"";if(N.isDate(E))return E.toISOString();if(N.isBoolean(E))return E.toString();if(!l&&N.isBlob(E))throw new se("Blob is not supported. Use a Buffer instead.");return N.isArrayBuffer(E)||N.isTypedArray(E)?l&&typeof Blob=="function"?new Blob([E]):Buffer.from(E):E}function u(E,S,w){let R=E;if(E&&!w&&typeof E=="object"){if(N.endsWith(S,"{}"))S=r?S:S.slice(0,-2),E=JSON.stringify(E);else if(N.isArray(E)&&zy(E)||(N.isFileList(E)||N.endsWith(S,"[]"))&&(R=N.toArray(E)))return S=hf(S),R.forEach(function(b,v){!(N.isUndefined(b)||b===null)&&t.append(i===!0?gl([S],v,o):i===null?S:S+"[]",c(b))}),!1}return Bo(E)?!0:(t.append(gl(w,S,o),c(E)),!1)}const f=[],d=Object.assign(Xy,{defaultVisitor:u,convertValue:c,isVisitable:Bo});function m(E,S){if(!N.isUndefined(E)){if(f.indexOf(E)!==-1)throw Error("Circular reference detected in "+S.join("."));f.push(E),N.forEach(E,function(R,x){(!(N.isUndefined(R)||R===null)&&s.call(t,R,N.isString(x)?x.trim():x,S,d))===!0&&m(R,S?S.concat(x):[x])}),f.pop()}}if(!N.isObject(e))throw new TypeError("data must be an object");return m(e),t}function _l(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function Ti(e,t){this._pairs=[],e&&Bs(e,this,t)}const mf=Ti.prototype;mf.append=function(t,n){this._pairs.push([t,n])};mf.toString=function(t){const n=t?function(r){return t.call(this,r,_l)}:_l;return this._pairs.map(function(s){return n(s[0])+"="+n(s[1])},"").join("&")};function Jy(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function gf(e,t,n){if(!t)return e;const r=n&&n.encode||Jy;N.isFunction(n)&&(n={serialize:n});const s=n&&n.serialize;let o;if(s?o=s(t,n):o=N.isURLSearchParams(t)?t.toString():new Ti(t,n).toString(r),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class yl{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){N.forEach(this.handlers,function(r){r!==null&&t(r)})}}const _f={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Qy=typeof URLSearchParams<"u"?URLSearchParams:Ti,Zy=typeof FormData<"u"?FormData:null,eb=typeof Blob<"u"?Blob:null,tb={isBrowser:!0,classes:{URLSearchParams:Qy,FormData:Zy,Blob:eb},protocols:["http","https","file","blob","url","data"]},Ci=typeof window<"u"&&typeof document<"u",jo=typeof navigator=="object"&&navigator||void 0,nb=Ci&&(!jo||["ReactNative","NativeScript","NS"].indexOf(jo.product)<0),rb=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",sb=Ci&&window.location.href||"http://localhost",ob=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ci,hasStandardBrowserEnv:nb,hasStandardBrowserWebWorkerEnv:rb,navigator:jo,origin:sb},Symbol.toStringTag,{value:"Module"})),ze={...ob,...tb};function ib(e,t){return Bs(e,new ze.classes.URLSearchParams,{visitor:function(n,r,s,o){return ze.isNode&&N.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function ab(e){return N.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function lb(e){const t={},n=Object.keys(e);let r;const s=n.length;let o;for(r=0;r=n.length;return i=!i&&N.isArray(s)?s.length:i,l?(N.hasOwnProp(s,i)?s[i]=[s[i],r]:s[i]=r,!a):((!s[i]||!N.isObject(s[i]))&&(s[i]=[]),t(n,r,s[i],o)&&N.isArray(s[i])&&(s[i]=lb(s[i])),!a)}if(N.isFormData(e)&&N.isFunction(e.entries)){const n={};return N.forEachEntry(e,(r,s)=>{t(ab(r),s,n,0)}),n}return null}function cb(e,t,n){if(N.isString(e))try{return(t||JSON.parse)(e),N.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Kr={transitional:_f,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",s=r.indexOf("application/json")>-1,o=N.isObject(t);if(o&&N.isHTMLForm(t)&&(t=new FormData(t)),N.isFormData(t))return s?JSON.stringify(yf(t)):t;if(N.isArrayBuffer(t)||N.isBuffer(t)||N.isStream(t)||N.isFile(t)||N.isBlob(t)||N.isReadableStream(t))return t;if(N.isArrayBufferView(t))return t.buffer;if(N.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let a;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return ib(t,this.formSerializer).toString();if((a=N.isFileList(t))||r.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return Bs(a?{"files[]":t}:t,l&&new l,this.formSerializer)}}return o||s?(n.setContentType("application/json",!1),cb(t)):t}],transformResponse:[function(t){const n=this.transitional||Kr.transitional,r=n&&n.forcedJSONParsing,s=this.responseType==="json";if(N.isResponse(t)||N.isReadableStream(t))return t;if(t&&N.isString(t)&&(r&&!this.responseType||s)){const i=!(n&&n.silentJSONParsing)&&s;try{return JSON.parse(t)}catch(a){if(i)throw a.name==="SyntaxError"?se.from(a,se.ERR_BAD_RESPONSE,this,null,this.response):a}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ze.classes.FormData,Blob:ze.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};N.forEach(["delete","get","head","post","put","patch"],e=>{Kr.headers[e]={}});const ub=N.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),fb=e=>{const t={};let n,r,s;return e&&e.split(` +`).forEach(function(i){s=i.indexOf(":"),n=i.substring(0,s).trim().toLowerCase(),r=i.substring(s+1).trim(),!(!n||t[n]&&ub[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},bl=Symbol("internals");function lr(e){return e&&String(e).trim().toLowerCase()}function ss(e){return e===!1||e==null?e:N.isArray(e)?e.map(ss):String(e)}function db(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const pb=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function mo(e,t,n,r,s){if(N.isFunction(r))return r.call(this,t,n);if(s&&(t=n),!!N.isString(t)){if(N.isString(r))return t.indexOf(r)!==-1;if(N.isRegExp(r))return r.test(t)}}function hb(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function mb(e,t){const n=N.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(s,o,i){return this[r].call(this,t,s,o,i)},configurable:!0})})}let it=class{constructor(t){t&&this.set(t)}set(t,n,r){const s=this;function o(a,l,c){const u=lr(l);if(!u)throw new Error("header name must be a non-empty string");const f=N.findKey(s,u);(!f||s[f]===void 0||c===!0||c===void 0&&s[f]!==!1)&&(s[f||l]=ss(a))}const i=(a,l)=>N.forEach(a,(c,u)=>o(c,u,l));if(N.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(N.isString(t)&&(t=t.trim())&&!pb(t))i(fb(t),n);else if(N.isObject(t)&&N.isIterable(t)){let a={},l,c;for(const u of t){if(!N.isArray(u))throw TypeError("Object iterator must return a key-value pair");a[c=u[0]]=(l=a[c])?N.isArray(l)?[...l,u[1]]:[l,u[1]]:u[1]}i(a,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=lr(t),t){const r=N.findKey(this,t);if(r){const s=this[r];if(!n)return s;if(n===!0)return db(s);if(N.isFunction(n))return n.call(this,s,r);if(N.isRegExp(n))return n.exec(s);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=lr(t),t){const r=N.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||mo(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let s=!1;function o(i){if(i=lr(i),i){const a=N.findKey(r,i);a&&(!n||mo(r,r[a],a,n))&&(delete r[a],s=!0)}}return N.isArray(t)?t.forEach(o):o(t),s}clear(t){const n=Object.keys(this);let r=n.length,s=!1;for(;r--;){const o=n[r];(!t||mo(this,this[o],o,t,!0))&&(delete this[o],s=!0)}return s}normalize(t){const n=this,r={};return N.forEach(this,(s,o)=>{const i=N.findKey(r,o);if(i){n[i]=ss(s),delete n[o];return}const a=t?hb(o):String(o).trim();a!==o&&delete n[o],n[a]=ss(s),r[a]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return N.forEach(this,(r,s)=>{r!=null&&r!==!1&&(n[s]=t&&N.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[bl]=this[bl]={accessors:{}}).accessors,s=this.prototype;function o(i){const a=lr(i);r[a]||(mb(s,i),r[a]=!0)}return N.isArray(t)?t.forEach(o):o(t),this}};it.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);N.reduceDescriptors(it.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});N.freezeMethods(it);function go(e,t){const n=this||Kr,r=t||n,s=it.from(r.headers);let o=r.data;return N.forEach(e,function(a){o=a.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function bf(e){return!!(e&&e.__CANCEL__)}function rr(e,t,n){se.call(this,e??"canceled",se.ERR_CANCELED,t,n),this.name="CanceledError"}N.inherits(rr,se,{__CANCEL__:!0});function Ef(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new se("Request failed with status code "+n.status,[se.ERR_BAD_REQUEST,se.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function gb(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function _b(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(l){const c=Date.now(),u=r[o];i||(i=c),n[s]=l,r[s]=c;let f=o,d=0;for(;f!==s;)d+=n[f++],f=f%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),c-i{n=u,s=null,o&&(clearTimeout(o),o=null),e(...c)};return[(...c)=>{const u=Date.now(),f=u-n;f>=r?i(c,u):(s=c,o||(o=setTimeout(()=>{o=null,i(s)},r-f)))},()=>s&&i(s)]}const bs=(e,t,n=3)=>{let r=0;const s=_b(50,250);return yb(o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,l=i-r,c=s(l),u=i<=a;r=i;const f={loaded:i,total:a,progress:a?i/a:void 0,bytes:l,rate:c||void 0,estimated:c&&a&&u?(a-i)/c:void 0,event:o,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(f)},n)},El=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},vl=e=>(...t)=>N.asap(()=>e(...t)),bb=ze.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,ze.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(ze.origin),ze.navigator&&/(msie|trident)/i.test(ze.navigator.userAgent)):()=>!0,Eb=ze.hasStandardBrowserEnv?{write(e,t,n,r,s,o){const i=[e+"="+encodeURIComponent(t)];N.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),N.isString(r)&&i.push("path="+r),N.isString(s)&&i.push("domain="+s),o===!0&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function vb(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Sb(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function vf(e,t,n){let r=!vb(t);return e&&(r||n==!1)?Sb(e,t):t}const Sl=e=>e instanceof it?{...e}:e;function Fn(e,t){t=t||{};const n={};function r(c,u,f,d){return N.isPlainObject(c)&&N.isPlainObject(u)?N.merge.call({caseless:d},c,u):N.isPlainObject(u)?N.merge({},u):N.isArray(u)?u.slice():u}function s(c,u,f,d){if(N.isUndefined(u)){if(!N.isUndefined(c))return r(void 0,c,f,d)}else return r(c,u,f,d)}function o(c,u){if(!N.isUndefined(u))return r(void 0,u)}function i(c,u){if(N.isUndefined(u)){if(!N.isUndefined(c))return r(void 0,c)}else return r(void 0,u)}function a(c,u,f){if(f in t)return r(c,u);if(f in e)return r(void 0,c)}const l={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(c,u,f)=>s(Sl(c),Sl(u),f,!0)};return N.forEach(Object.keys({...e,...t}),function(u){const f=l[u]||s,d=f(e[u],t[u],u);N.isUndefined(d)&&f!==a||(n[u]=d)}),n}const Sf=e=>{const t=Fn({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:a}=t;t.headers=i=it.from(i),t.url=gf(vf(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),a&&i.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):"")));let l;if(N.isFormData(n)){if(ze.hasStandardBrowserEnv||ze.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if((l=i.getContentType())!==!1){const[c,...u]=l?l.split(";").map(f=>f.trim()).filter(Boolean):[];i.setContentType([c||"multipart/form-data",...u].join("; "))}}if(ze.hasStandardBrowserEnv&&(r&&N.isFunction(r)&&(r=r(t)),r||r!==!1&&bb(t.url))){const c=s&&o&&Eb.read(o);c&&i.set(s,c)}return t},wb=typeof XMLHttpRequest<"u",Tb=wb&&function(e){return new Promise(function(n,r){const s=Sf(e);let o=s.data;const i=it.from(s.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:c}=s,u,f,d,m,E;function S(){m&&m(),E&&E(),s.cancelToken&&s.cancelToken.unsubscribe(u),s.signal&&s.signal.removeEventListener("abort",u)}let w=new XMLHttpRequest;w.open(s.method.toUpperCase(),s.url,!0),w.timeout=s.timeout;function R(){if(!w)return;const b=it.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),L={data:!a||a==="text"||a==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:b,config:e,request:w};Ef(function(D){n(D),S()},function(D){r(D),S()},L),w=null}"onloadend"in w?w.onloadend=R:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout(R)},w.onabort=function(){w&&(r(new se("Request aborted",se.ECONNABORTED,e,w)),w=null)},w.onerror=function(){r(new se("Network Error",se.ERR_NETWORK,e,w)),w=null},w.ontimeout=function(){let v=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const L=s.transitional||_f;s.timeoutErrorMessage&&(v=s.timeoutErrorMessage),r(new se(v,L.clarifyTimeoutError?se.ETIMEDOUT:se.ECONNABORTED,e,w)),w=null},o===void 0&&i.setContentType(null),"setRequestHeader"in w&&N.forEach(i.toJSON(),function(v,L){w.setRequestHeader(L,v)}),N.isUndefined(s.withCredentials)||(w.withCredentials=!!s.withCredentials),a&&a!=="json"&&(w.responseType=s.responseType),c&&([d,E]=bs(c,!0),w.addEventListener("progress",d)),l&&w.upload&&([f,m]=bs(l),w.upload.addEventListener("progress",f),w.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(u=b=>{w&&(r(!b||b.type?new rr(null,e,w):b),w.abort(),w=null)},s.cancelToken&&s.cancelToken.subscribe(u),s.signal&&(s.signal.aborted?u():s.signal.addEventListener("abort",u)));const x=gb(s.url);if(x&&ze.protocols.indexOf(x)===-1){r(new se("Unsupported protocol "+x+":",se.ERR_BAD_REQUEST,e));return}w.send(o||null)})},Cb=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(c){if(!s){s=!0,a();const u=c instanceof Error?c:this.reason;r.abort(u instanceof se?u:new rr(u instanceof Error?u.message:u))}};let i=t&&setTimeout(()=>{i=null,o(new se(`timeout ${t} of ms exceeded`,se.ETIMEDOUT))},t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(o):c.removeEventListener("abort",o)}),e=null)};e.forEach(c=>c.addEventListener("abort",o));const{signal:l}=r;return l.unsubscribe=()=>N.asap(a),l}},Lb=function*(e,t){let n=e.byteLength;if(n{const s=Pb(e,t);let o=0,i,a=l=>{i||(i=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:c,value:u}=await s.next();if(c){a(),l.close();return}let f=u.byteLength;if(n){let d=o+=f;n(d)}l.enqueue(new Uint8Array(u))}catch(c){throw a(c),c}},cancel(l){return a(l),s.return()}},{highWaterMark:2})},js=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",wf=js&&typeof ReadableStream=="function",Rb=js&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),Tf=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Ob=wf&&Tf(()=>{let e=!1;const t=new Request(ze.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),Tl=64*1024,Ko=wf&&Tf(()=>N.isReadableStream(new Response("").body)),Es={stream:Ko&&(e=>e.body)};js&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!Es[t]&&(Es[t]=N.isFunction(e[t])?n=>n[t]():(n,r)=>{throw new se(`Response type '${t}' is not supported`,se.ERR_NOT_SUPPORT,r)})})})(new Response);const Nb=async e=>{if(e==null)return 0;if(N.isBlob(e))return e.size;if(N.isSpecCompliantForm(e))return(await new Request(ze.origin,{method:"POST",body:e}).arrayBuffer()).byteLength;if(N.isArrayBufferView(e)||N.isArrayBuffer(e))return e.byteLength;if(N.isURLSearchParams(e)&&(e=e+""),N.isString(e))return(await Rb(e)).byteLength},Ib=async(e,t)=>{const n=N.toFiniteNumber(e.getContentLength());return n??Nb(t)},xb=js&&(async e=>{let{url:t,method:n,data:r,signal:s,cancelToken:o,timeout:i,onDownloadProgress:a,onUploadProgress:l,responseType:c,headers:u,withCredentials:f="same-origin",fetchOptions:d}=Sf(e);c=c?(c+"").toLowerCase():"text";let m=Cb([s,o&&o.toAbortSignal()],i),E;const S=m&&m.unsubscribe&&(()=>{m.unsubscribe()});let w;try{if(l&&Ob&&n!=="get"&&n!=="head"&&(w=await Ib(u,r))!==0){let L=new Request(t,{method:"POST",body:r,duplex:"half"}),O;if(N.isFormData(r)&&(O=L.headers.get("content-type"))&&u.setContentType(O),L.body){const[D,$]=El(w,bs(vl(l)));r=wl(L.body,Tl,D,$)}}N.isString(f)||(f=f?"include":"omit");const R="credentials"in Request.prototype;E=new Request(t,{...d,signal:m,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:r,duplex:"half",credentials:R?f:void 0});let x=await fetch(E,d);const b=Ko&&(c==="stream"||c==="response");if(Ko&&(a||b&&S)){const L={};["status","statusText","headers"].forEach(A=>{L[A]=x[A]});const O=N.toFiniteNumber(x.headers.get("content-length")),[D,$]=a&&El(O,bs(vl(a),!0))||[];x=new Response(wl(x.body,Tl,D,()=>{$&&$(),S&&S()}),L)}c=c||"text";let v=await Es[N.findKey(Es,c)||"text"](x,e);return!b&&S&&S(),await new Promise((L,O)=>{Ef(L,O,{data:v,headers:it.from(x.headers),status:x.status,statusText:x.statusText,config:e,request:E})})}catch(R){throw S&&S(),R&&R.name==="TypeError"&&/Load failed|fetch/i.test(R.message)?Object.assign(new se("Network Error",se.ERR_NETWORK,e,E),{cause:R.cause||R}):se.from(R,R&&R.code,e,E)}}),Go={http:Yy,xhr:Tb,fetch:xb};N.forEach(Go,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Cl=e=>`- ${e}`,kb=e=>N.isFunction(e)||e===null||e===!1,Cf={getAdapter:e=>{e=N.isArray(e)?e:[e];const{length:t}=e;let n,r;const s={};for(let o=0;o`adapter ${a} `+(l===!1?"is not supported by the environment":"is not available in the build"));let i=t?o.length>1?`since : +`+o.map(Cl).join(` +`):" "+Cl(o[0]):"as no adapter specified";throw new se("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return r},adapters:Go};function _o(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new rr(null,e)}function Ll(e){return _o(e),e.headers=it.from(e.headers),e.data=go.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Cf.getAdapter(e.adapter||Kr.adapter)(e).then(function(r){return _o(e),r.data=go.call(e,e.transformResponse,r),r.headers=it.from(r.headers),r},function(r){return bf(r)||(_o(e),r&&r.response&&(r.response.data=go.call(e,e.transformResponse,r.response),r.response.headers=it.from(r.response.headers))),Promise.reject(r)})}const Lf="1.11.0",Ks={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ks[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Pl={};Ks.transitional=function(t,n,r){function s(o,i){return"[Axios v"+Lf+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,a)=>{if(t===!1)throw new se(s(i," has been removed"+(n?" in "+n:"")),se.ERR_DEPRECATED);return n&&!Pl[i]&&(Pl[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,a):!0}};Ks.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Fb(e,t,n){if(typeof e!="object")throw new se("options must be an object",se.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const a=e[o],l=a===void 0||i(a,o,e);if(l!==!0)throw new se("option "+o+" must be "+l,se.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new se("Unknown option "+o,se.ERR_BAD_OPTION)}}const os={assertOptions:Fb,validators:Ks},Pt=os.validators;let xn=class{constructor(t){this.defaults=t||{},this.interceptors={request:new yl,response:new yl}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Fn(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&os.assertOptions(r,{silentJSONParsing:Pt.transitional(Pt.boolean),forcedJSONParsing:Pt.transitional(Pt.boolean),clarifyTimeoutError:Pt.transitional(Pt.boolean)},!1),s!=null&&(N.isFunction(s)?n.paramsSerializer={serialize:s}:os.assertOptions(s,{encode:Pt.function,serialize:Pt.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),os.assertOptions(n,{baseUrl:Pt.spelling("baseURL"),withXsrfToken:Pt.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&N.merge(o.common,o[n.method]);o&&N.forEach(["delete","get","head","post","put","patch","common"],E=>{delete o[E]}),n.headers=it.concat(i,o);const a=[];let l=!0;this.interceptors.request.forEach(function(S){typeof S.runWhen=="function"&&S.runWhen(n)===!1||(l=l&&S.synchronous,a.unshift(S.fulfilled,S.rejected))});const c=[];this.interceptors.response.forEach(function(S){c.push(S.fulfilled,S.rejected)});let u,f=0,d;if(!l){const E=[Ll.bind(this),void 0];for(E.unshift(...a),E.push(...c),d=E.length,u=Promise.resolve(n);f{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(a=>{r.subscribe(a),o=a}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,a){r.reason||(r.reason=new rr(o,i,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Pf(function(s){t=s}),cancel:t}}};function Mb(e){return function(n){return e.apply(null,n)}}function Ub(e){return N.isObject(e)&&e.isAxiosError===!0}const qo={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(qo).forEach(([e,t])=>{qo[t]=e});function Af(e){const t=new xn(e),n=rf(xn.prototype.request,t);return N.extend(n,xn.prototype,t,{allOwnKeys:!0}),N.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Af(Fn(e,s))},n}const Oe=Af(Kr);Oe.Axios=xn;Oe.CanceledError=rr;Oe.CancelToken=Db;Oe.isCancel=bf;Oe.VERSION=Lf;Oe.toFormData=Bs;Oe.AxiosError=se;Oe.Cancel=Oe.CanceledError;Oe.all=function(t){return Promise.all(t)};Oe.spread=Mb;Oe.isAxiosError=Ub;Oe.mergeConfig=Fn;Oe.AxiosHeaders=it;Oe.formToJSON=e=>yf(N.isHTMLForm(e)?new FormData(e):e);Oe.getAdapter=Cf.getAdapter;Oe.HttpStatusCode=qo;Oe.default=Oe;const{Axios:aE,AxiosError:lE,CanceledError:cE,isCancel:uE,CancelToken:fE,VERSION:dE,all:pE,Cancel:hE,isAxiosError:mE,spread:gE,toFormData:_E,AxiosHeaders:yE,HttpStatusCode:bE,formToJSON:EE,getAdapter:vE,mergeConfig:SE}=Oe,$b="",Rf=$b,ve=Oe.create({baseURL:Rf,timeout:tf.REQUEST_TIMEOUT,headers:{"Content-Type":"application/json"}});ve.interceptors.request.use(e=>{const t=localStorage.getItem("token");return t&&(e.headers.Authorization=`Bearer ${t}`),e.url&&!e.url.startsWith("http")&&(e.url=`${Rf}/${e.url.replace(/^\//,"")}`),e},e=>Promise.reject(e));ve.interceptors.response.use(e=>e.data,e=>{if(e.response){const{status:t}=e.response;switch(t){case 401:localStorage.removeItem("token"),window.location.hash!=="#/login"&&(window.location.href="/#/login");break}}else e.request;return Promise.reject(e)});class Vb{static async getConfig(){return ve.get("/admin/config/get")}static async getUserConfig(){return ve.post("/")}static async updateConfig(t){return ve.patch("/admin/config/update",t)}}class wE{static async uploadFile(t,n){const r=new FormData;return r.append("file",t),ve.post("/share/file/",r,{headers:{"Content-Type":"multipart/form-data"},timeout:0,onUploadProgress:s=>{if(n&&s.total){const o={loaded:s.loaded,total:s.total,percentage:Math.round(s.loaded*100/s.total)};n(o)}}})}static async uploadText(t){return ve.post("/share/text/",{content:t})}static async getFile(t){return ve.get(`/file/${t}`)}static async downloadFile(t){return(await ve.get(`/download/${t}`,{responseType:"blob"})).data}static async deleteFile(t){return ve.post("/admin/file/delete",{id:t})}static async getFileList(t=1,n=10){return ve.get("/admin/file/list",{params:{page:t,size:n}})}static async getAdminFileList(t){return ve.get("/admin/file/list",{params:t})}static async updateFile(t){return ve.patch("/admin/file/update",t)}static async deleteAdminFile(t){return ve.delete("/admin/file/delete",{data:{id:t}})}static async downloadAdminFile(t){return ve.get("/admin/file/download",{params:{id:t},responseType:"blob"})}}class TE{static async login(t){return ve.post("/admin/login",{password:t})}static async logout(){return ve.post("/admin/logout")}static async verifyToken(){return ve.get("/admin/verify")}}class CE{static async getDashboardStats(){return ve.get("/admin/dashboard")}static async getDashboard(){return ve.get("/admin/dashboard")}}class LE{static async initUpload(t){return ve.post("/presign/upload/init",t)}static async proxyUpload(t,n,r){const s=new FormData;return s.append("file",n),ve.put(`/presign/upload/proxy/${t}`,s,{headers:{"Content-Type":"multipart/form-data"},timeout:0,onUploadProgress:o=>{if(r&&o.total){const i={loaded:o.loaded,total:o.total,percentage:Math.round(o.loaded*100/o.total)};r(i)}}})}static async confirmUpload(t,n){return ve.post(`/presign/upload/confirm/${t}`,n||{})}static async getUploadStatus(t){return ve.get(`/presign/upload/status/${t}`)}static async cancelUpload(t){return ve.delete(`/presign/upload/${t}`)}static async directUploadToS3(t,n,r){try{return await Oe.put(t,n,{headers:{"Content-Type":"application/octet-stream"},timeout:0,onUploadProgress:s=>{if(r&&s.total){const o={loaded:s.loaded,total:s.total,percentage:Math.round(s.loaded*100/s.total)};r(o)}}}),!0}catch{return!1}}}function Hb(){const e=st(!1),t=st($e.SYSTEM),n=()=>window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches,r=()=>{const f=localStorage.getItem(hl.COLOR_MODE);return f&&Object.values($e).includes(f)?f:null},s=f=>{t.value=f,localStorage.setItem(hl.COLOR_MODE,f),f===$e.SYSTEM?e.value=n():e.value=f===$e.DARK,o()},o=()=>{const f=document.documentElement;e.value?f.classList.add("dark"):f.classList.remove("dark")},i=()=>{t.value===$e.LIGHT?s($e.DARK):t.value===$e.DARK?s($e.SYSTEM):s($e.LIGHT)},a=()=>{if(window.matchMedia){const f=window.matchMedia("(prefers-color-scheme: dark)"),d=m=>{t.value===$e.SYSTEM&&(e.value=m.matches,o())};return f.addEventListener("change",d),()=>{f.removeEventListener("change",d)}}return()=>{}},l=()=>{const f=r();return s(f||$e.SYSTEM),a()},c=_e(()=>{switch(t.value){case $e.LIGHT:return"sun";case $e.DARK:return"moon";case $e.SYSTEM:return"monitor";default:return"monitor"}}),u=_e(()=>{switch(t.value){case $e.LIGHT:return"浅色模式";case $e.DARK:return"深色模式";case $e.SYSTEM:return"跟随系统";default:return"跟随系统"}});return{isDarkMode:e,themeMode:t,themeIcon:c,themeLabel:u,setThemeMode:s,toggleTheme:i,initTheme:l,checkSystemColorScheme:n}}const Wb={class:"fixed top-4 right-4 z-50 flex items-center space-x-3"},Bb={key:0,class:"loading-overlay"},jb=Xt({__name:"App",setup(e){const t=st(!1),n=_m(),r=ym(),s=nf(),{isDarkMode:o,toggleTheme:i,initTheme:a}=Hb();let l=null;return Zn(()=>{l=a(),Vb.getUserConfig().then(c=>{c.code===200&&c.detail&&(localStorage.setItem("config",JSON.stringify(c.detail)),c.detail.notify_title&&c.detail.notify_content&&localStorage.getItem("notify")!==c.detail.notify_title+c.detail.notify_content&&(localStorage.setItem("notify",c.detail.notify_title+c.detail.notify_content),s.showAlert(c.detail.notify_title+": "+c.detail.notify_content,"success")))})}),er(()=>{l&&l()}),n.beforeEach((c,u,f)=>{t.value=!0,f()}),n.afterEach(()=>{setTimeout(()=>{t.value=!1},200)}),In("isDarkMode",o),In("toggleTheme",i),In("isLoading",t),(c,u)=>(Be(),jt("div",{class:Nt(["app-container",Se(o)?"dark":"light"])},[Ve("div",Wb,[Ae(X_),Ae(Im,{modelValue:Se(o),"onUpdate:modelValue":u[0]||(u[0]=f=>Te(o)?o.value=f:null)},null,8,["modelValue"])]),t.value?(Be(),jt("div",Bb,[...u[1]||(u[1]=[Ve("div",{class:"loading-spinner"},null,-1)])])):Kc("",!0),Ae(Se(bu),null,{default:wr(({Component:f})=>[Ae(Jc,{name:"fade",mode:"out-in"},{default:wr(()=>[(Be(),dn(Sc(f),{key:Se(r).fullPath}))]),_:2},1024)]),_:1}),Ae(ly)],2))}}),Kb="modulepreload",Gb=function(e){return"/"+e},Al={},Pn=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let l=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const i=document.querySelector("meta[property=csp-nonce]"),a=i?.nonce||i?.getAttribute("nonce");s=l(n.map(c=>{if(c=Gb(c),c in Al)return;Al[c]=!0;const u=c.endsWith(".css"),f=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${f}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":Kb,u||(d.as="script"),d.crossOrigin="",d.href=c,a&&d.setAttribute("nonce",a),document.head.appendChild(d),u)return new Promise((m,E)=>{d.addEventListener("load",m),d.addEventListener("error",()=>E(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return s.then(i=>{for(const a of i||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})},qb=()=>Pn(()=>import("./SendFileView-C_jTXUIX.js"),__vite__mapDeps([0,1,2,3,4,5,6])),Yb=mm({history:Kh("/"),routes:[{path:"/",name:"Retrieve",component:()=>Pn(()=>import("./RetrievewFileView-DKpM6_j2.js"),__vite__mapDeps([7,1,2,3,4,8,5,9,10]))},{path:"/send",name:"Send",component:qb},{path:"/admin",name:"Manage",component:()=>Pn(()=>import("./AdminLayout-DFagHGxu.js"),__vite__mapDeps([11,2,12])),redirect:"/admin/dashboard",children:[{path:"/admin/dashboard",name:"Dashboard",component:()=>Pn(()=>import("./DashboardView-DneIu2Zw.js"),__vite__mapDeps([13,4,8]))},{path:"/admin/files",name:"FileManage",component:()=>Pn(()=>import("./FileManageView-Bevef92J.js"),__vite__mapDeps([14,9,4,5,15]))},{path:"/admin/settings",name:"Settings",component:()=>Pn(()=>import("./SystemSettingsView-CqFKOfSv.js"),[])}]},{path:"/login",name:"Login",component:()=>Pn(()=>import("./LoginView-CyitXin1.js"),__vite__mapDeps([16,2,17]))}]}),Gs=rh(jb);Gs.use(ih());Gs.use(Yb);Gs.use(ef);Gs.mount("#app");export{Vb as $,eE as A,Cs as B,Cm as C,Tc as D,fp as E,sE as F,Xb as G,Gp as H,_m as I,ve as J,Jb as K,ph as L,ym as M,hn as N,yc as O,LE as P,dh as Q,er as R,hl as S,Jc as T,rE as U,Mr as V,CE as W,Nm as X,nE as Y,wE as Z,ay as _,jt as a,Zb as a0,TE as a1,Ve as b,Qt as c,Xt as d,Se as e,Zn as f,_e as g,tE as h,Xe as i,Kc as j,dn as k,Ae as l,Sc as m,Nt as n,Be as o,nf as p,ec as q,st as r,Oe as s,br as t,Hr as u,wr as v,un as w,zb as x,De as y,Qb as z}; diff --git a/themes/2024/assets/index-BXCbdTRh.css b/themes/2024/assets/index-BXCbdTRh.css deleted file mode 100644 index 2aee6f9..0000000 --- a/themes/2024/assets/index-BXCbdTRh.css +++ /dev/null @@ -1 +0,0 @@ -*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-invert{--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.-inset-2{inset:-.5rem}.inset-0{inset:0}.inset-1{inset:.25rem}.inset-y-0{top:0;bottom:0}.-bottom-0\.5{bottom:-.125rem}.-top-2{top:-.5rem}.left-0{left:0}.left-2{left:.5rem}.left-3{left:.75rem}.left-4{left:1rem}.right-0{right:0}.right-2{right:.5rem}.right-28{right:7rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-3{top:.75rem}.top-4{top:1rem}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[85vh\]{max-height:85vh}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-16{width:4rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-\[200px\]{max-width:200px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize-none{resize:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.-space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(-1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(-1px * var(--tw-space-y-reverse))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.divide-gray-700>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(55 65 81 / var(--tw-divide-opacity, 1))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-current{border-color:currentColor}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-gray-700\/50{border-color:#37415180}.border-gray-700\/60{border-color:#37415199}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-green-300{--tw-border-opacity: 1;border-color:rgb(134 239 172 / var(--tw-border-opacity, 1))}.border-green-500\/50{border-color:#22c55e80}.border-indigo-500{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.border-indigo-600{--tw-border-opacity: 1;border-color:rgb(79 70 229 / var(--tw-border-opacity, 1))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-red-500\/50{border-color:#ef444480}.border-transparent{border-color:transparent}.border-t-transparent{border-top-color:transparent}.border-opacity-20{--tw-border-opacity: .2}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/60{background-color:#0009}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-900{--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.bg-blue-900\/20{background-color:#1e3a8a33}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-gray-700\/50{background-color:#37415180}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-800\/50{background-color:#1f293780}.bg-gray-800\/60{background-color:#1f293799}.bg-gray-800\/95{background-color:#1f2937f2}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-gray-900\/50{background-color:#11182780}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-green-900{--tw-bg-opacity: 1;background-color:rgb(20 83 45 / var(--tw-bg-opacity, 1))}.bg-green-900\/30{background-color:#14532d4d}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-indigo-500\/10{background-color:#6366f11a}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-indigo-900{--tw-bg-opacity: 1;background-color:rgb(49 46 129 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-900{--tw-bg-opacity: 1;background-color:rgb(88 28 135 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-red-900\/20{background-color:#7f1d1d33}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/50{background-color:#ffffff80}.bg-white\/70{background-color:#ffffffb3}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-900\/30{background-color:#713f124d}.bg-opacity-10{--tw-bg-opacity: .1}.bg-opacity-20{--tw-bg-opacity: .2}.bg-opacity-25{--tw-bg-opacity: .25}.bg-opacity-50{--tw-bg-opacity: .5}.bg-opacity-70{--tw-bg-opacity: .7}.bg-opacity-90{--tw-bg-opacity: .9}.bg-opacity-95{--tw-bg-opacity: .95}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from: #eff6ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-cyan-500{--tw-gradient-from: #06b6d4 var(--tw-gradient-from-position);--tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-cyan-600{--tw-gradient-from: #0891b2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(8 145 178 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-50{--tw-gradient-from: #f9fafb var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 250 251 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-800\/50{--tw-gradient-from: rgb(31 41 55 / .5) var(--tw-gradient-from-position);--tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-900{--tw-gradient-from: #111827 var(--tw-gradient-from-position);--tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-900\/90{--tw-gradient-from: rgb(17 24 39 / .9) var(--tw-gradient-from-position);--tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #22c55e var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-300{--tw-gradient-from: #a5b4fc var(--tw-gradient-from-position);--tw-gradient-to: rgb(165 180 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-600{--tw-gradient-from: #4f46e5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-pink-500{--tw-gradient-from: #ec4899 var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 72 153 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-yellow-500{--tw-gradient-from: #eab308 var(--tw-gradient-from-position);--tw-gradient-to: rgb(234 179 8 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-indigo-50{--tw-gradient-to: rgb(238 242 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #eef2ff var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-indigo-900{--tw-gradient-to: rgb(49 46 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #312e81 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-purple-300{--tw-gradient-to: rgb(216 180 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #d8b4fe var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-purple-500{--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #a855f7 var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-black\/90{--tw-gradient-to: rgb(0 0 0 / .9) var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to: #2563eb var(--tw-gradient-to-position)}.to-gray-700\/50{--tw-gradient-to: rgb(55 65 81 / .5) var(--tw-gradient-to-position)}.to-gray-800{--tw-gradient-to: #1f2937 var(--tw-gradient-to-position)}.to-green-600{--tw-gradient-to: #16a34a var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.to-pink-300{--tw-gradient-to: #f9a8d4 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to: #dc2626 var(--tw-gradient-to-position)}.to-white{--tw-gradient-to: #fff var(--tw-gradient-to-position)}.to-yellow-600{--tw-gradient-to: #ca8a04 var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-right{background-position:right}.bg-no-repeat{background-repeat:no-repeat}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pr-10{padding-right:2.5rem}.pr-3{padding-right:.75rem}.pr-32{padding-right:8rem}.pr-4{padding-right:1rem}.pr-9{padding-right:2.25rem}.pt-0\.5{padding-top:.125rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-6{line-height:1.5rem}.tracking-wider{letter-spacing:.05em}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity, 1))}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-300{--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-indigo-500\/25{--tw-shadow-color: rgb(99 102 241 / .25);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1))}.ring-red-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.ring-opacity-5{--tw-ring-opacity: .05}.blur-md{--tw-blur: blur(12px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-lg{--tw-backdrop-blur: blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}@font-face{font-family:DingTalk;src:url(/assets/DingTalk-CT5a5scH.ttf) format("truetype")}*{font-family:DingTalk,sans-serif!important}.hover\:rotate-180:hover{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:rotate-90:hover{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-gray-400:hover{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.hover\:border-gray-500:hover{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.hover\:border-indigo-500:hover{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.hover\:bg-black:hover{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-100:hover{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-400:hover{--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-900\/30:hover{background-color:#1e3a8a4d}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-600:hover{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-600\/50:hover{background-color:#4b556380}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-700\/60:hover{background-color:#37415199}.hover\:bg-gray-700\/80:hover{background-color:#374151cc}.hover\:bg-green-100:hover{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.hover\:bg-green-400:hover{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-100:hover{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-400:hover{--tw-bg-opacity: 1;background-color:rgb(129 140 248 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-500:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-600:hover{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity: 1;background-color:rgb(67 56 202 / var(--tw-bg-opacity, 1))}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-400:hover{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-red-900\/30:hover{background-color:#7f1d1d4d}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-opacity-10:hover{--tw-bg-opacity: .1}.hover\:bg-opacity-20:hover{--tw-bg-opacity: .2}.hover\:bg-opacity-50:hover{--tw-bg-opacity: .5}.hover\:from-cyan-600:hover{--tw-gradient-from: #0891b2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(8 145 178 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-cyan-700:hover{--tw-gradient-from: #0e7490 var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 116 144 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-indigo-500:hover{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-indigo-600:hover{--tw-gradient-from: #4f46e5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:via-purple-600:hover{--tw-gradient-to: rgb(147 51 234 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #9333ea var(--tw-gradient-via-position), var(--tw-gradient-to)}.hover\:to-indigo-600:hover{--tw-gradient-to: #4f46e5 var(--tw-gradient-to-position)}.hover\:to-pink-600:hover{--tw-gradient-to: #db2777 var(--tw-gradient-to-position)}.hover\:to-purple-600:hover{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.hover\:to-purple-700:hover{--tw-gradient-to: #7e22ce var(--tw-gradient-to-position)}.hover\:text-gray-200:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.hover\:text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.hover\:text-gray-500:hover{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:text-indigo-300:hover{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-cyan-500\/50:hover{--tw-shadow-color: rgb(6 182 212 / .5);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-indigo-500\/35:hover{--tw-shadow-color: rgb(99 102 241 / .35);--tw-shadow: var(--tw-shadow-colored)}.focus\:z-10:focus{z-index:10}.focus\:border-cyan-500:focus{--tw-border-opacity: 1;border-color:rgb(6 182 212 / var(--tw-border-opacity, 1))}.focus\:border-indigo-500:focus{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.focus\:border-red-500:focus{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-inset:focus{--tw-ring-inset: inset}.focus\:ring-cyan-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity, 1))}.focus\:ring-gray-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity, 1))}.focus\:ring-green-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1))}.focus\:ring-indigo-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1))}.focus\:ring-indigo-500\/50:focus{--tw-ring-color: rgb(99 102 241 / .5)}.focus\:ring-indigo-500\/60:focus{--tw-ring-color: rgb(99 102 241 / .6)}.focus\:ring-indigo-500\/80:focus{--tw-ring-color: rgb(99 102 241 / .8)}.focus\:ring-purple-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity, 1))}.focus\:ring-red-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.focus\:ring-opacity-50:focus{--tw-ring-opacity: .5}.focus\:ring-offset-0:focus{--tw-ring-offset-width: 0px}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:focus-within .group-focus-within\:bg-indigo-500\/30{background-color:#6366f14d}.group:focus-within .group-focus-within\:bg-indigo-500\/50{background-color:#6366f180}.group:focus-within .group-focus-within\:text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.group:focus-within .group-focus-within\:text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.group:focus-within .group-focus-within\:opacity-100{opacity:1}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.group:hover .group-hover\:border-gray-600\/80{border-color:#4b5563cc}.group:hover .group-hover\:text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-20{opacity:.2}.group:hover .group-hover\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\:shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\:shadow-gray-200\/50{--tw-shadow-color: rgb(229 231 235 / .5);--tw-shadow: var(--tw-shadow-colored)}.group:hover .group-hover\:shadow-gray-900\/20{--tw-shadow-color: rgb(17 24 39 / .2);--tw-shadow: var(--tw-shadow-colored)}@media(min-width:640px){.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:ml-4{margin-left:1rem}.sm\:mr-2{margin-right:.5rem}.sm\:h-4{height:1rem}.sm\:h-5{height:1.25rem}.sm\:h-6{height:1.5rem}.sm\:h-\[160px\]{height:160px}.sm\:w-4{width:1rem}.sm\:w-5{width:1.25rem}.sm\:w-6{width:1.5rem}.sm\:w-\[160px\]{width:160px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-xl{max-width:36rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.sm\:p-0{padding:0}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}.sm\:py-4{padding-top:1rem;padding-bottom:1rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media(min-width:768px){.md\:max-w-md{max-width:28rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\:relative{position:relative}.lg\:hidden{display:none}.lg\:h-screen{height:100vh}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media(prefers-color-scheme:dark){.dark\:hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none}.alert-fade-enter-active[data-v-59f86e5f],.alert-fade-leave-active[data-v-59f86e5f]{transition:all .5s cubic-bezier(.68,-.55,.265,1.55)}.alert-fade-enter-from[data-v-59f86e5f],.alert-fade-leave-to[data-v-59f86e5f]{opacity:0;transform:translate(-50px) scale(.95)}.app-container{min-height:100vh;width:100%;transition:background-color .5s ease}.light{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #eff6ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(238 242 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #eef2ff var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: #fff var(--tw-gradient-to-position)}.dark{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #111827 var(--tw-gradient-from-position);--tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(49 46 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #312e81 var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: #000 var(--tw-gradient-to-position)}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999}.loading-spinner{width:50px;height:50px;border:3px solid #fff;border-top:3px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}} diff --git a/themes/2024/assets/index-Xt5VatQo.css b/themes/2024/assets/index-Xt5VatQo.css new file mode 100644 index 0000000..65fc8fd --- /dev/null +++ b/themes/2024/assets/index-Xt5VatQo.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose-invert{--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.-inset-2{inset:-.5rem}.inset-0{inset:0}.inset-1{inset:.25rem}.inset-y-0{top:0;bottom:0}.-bottom-0\.5{bottom:-.125rem}.-top-2{top:-.5rem}.left-0{left:0}.left-2{left:.5rem}.left-3{left:.75rem}.left-4{left:1rem}.right-0{right:0}.right-2{right:.5rem}.right-28{right:7rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\/2{top:50%}.top-3{top:.75rem}.top-4{top:1rem}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\[60vh\]{max-height:60vh}.max-h-\[85vh\]{max-height:85vh}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-16{width:4rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-\[200px\]{max-width:200px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-x-full{--tw-translate-x: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize-none{resize:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.-space-y-px>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(-1px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(-1px * var(--tw-space-y-reverse))}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity, 1))}.divide-gray-700>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(55 65 81 / var(--tw-divide-opacity, 1))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-r-2xl{border-top-right-radius:1rem;border-bottom-right-radius:1rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-current{border-color:currentColor}.border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.border-gray-700{--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.border-gray-700\/50{border-color:#37415180}.border-gray-700\/60{border-color:#37415199}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-green-300{--tw-border-opacity: 1;border-color:rgb(134 239 172 / var(--tw-border-opacity, 1))}.border-green-500\/50{border-color:#22c55e80}.border-indigo-500{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.border-indigo-600{--tw-border-opacity: 1;border-color:rgb(79 70 229 / var(--tw-border-opacity, 1))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-red-500\/50{border-color:#ef444480}.border-transparent{border-color:transparent}.border-t-transparent{border-top-color:transparent}.border-opacity-20{--tw-border-opacity: .2}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/60{background-color:#0009}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-900{--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.bg-blue-900\/20{background-color:#1e3a8a33}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-700{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.bg-gray-700\/50{background-color:#37415180}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-gray-800\/50{background-color:#1f293780}.bg-gray-800\/60{background-color:#1f293799}.bg-gray-800\/95{background-color:#1f2937f2}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-gray-900\/50{background-color:#11182780}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-green-900{--tw-bg-opacity: 1;background-color:rgb(20 83 45 / var(--tw-bg-opacity, 1))}.bg-green-900\/30{background-color:#14532d4d}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-500{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.bg-indigo-500\/10{background-color:#6366f11a}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-indigo-900{--tw-bg-opacity: 1;background-color:rgb(49 46 129 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-900{--tw-bg-opacity: 1;background-color:rgb(88 28 135 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-red-900\/20{background-color:#7f1d1d33}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/50{background-color:#ffffff80}.bg-white\/70{background-color:#ffffffb3}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-900\/30{background-color:#713f124d}.bg-opacity-10{--tw-bg-opacity: .1}.bg-opacity-20{--tw-bg-opacity: .2}.bg-opacity-25{--tw-bg-opacity: .25}.bg-opacity-50{--tw-bg-opacity: .5}.bg-opacity-70{--tw-bg-opacity: .7}.bg-opacity-90{--tw-bg-opacity: .9}.bg-opacity-95{--tw-bg-opacity: .95}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from: #eff6ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-cyan-500{--tw-gradient-from: #06b6d4 var(--tw-gradient-from-position);--tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-cyan-600{--tw-gradient-from: #0891b2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(8 145 178 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-50{--tw-gradient-from: #f9fafb var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 250 251 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-800\/50{--tw-gradient-from: rgb(31 41 55 / .5) var(--tw-gradient-from-position);--tw-gradient-to: rgb(31 41 55 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-900{--tw-gradient-from: #111827 var(--tw-gradient-from-position);--tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-gray-900\/90{--tw-gradient-from: rgb(17 24 39 / .9) var(--tw-gradient-from-position);--tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #22c55e var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-300{--tw-gradient-from: #a5b4fc var(--tw-gradient-from-position);--tw-gradient-to: rgb(165 180 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-600{--tw-gradient-from: #4f46e5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-pink-500{--tw-gradient-from: #ec4899 var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 72 153 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-yellow-500{--tw-gradient-from: #eab308 var(--tw-gradient-from-position);--tw-gradient-to: rgb(234 179 8 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-indigo-50{--tw-gradient-to: rgb(238 242 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #eef2ff var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-indigo-900{--tw-gradient-to: rgb(49 46 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #312e81 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-purple-300{--tw-gradient-to: rgb(216 180 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #d8b4fe var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-purple-500{--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #a855f7 var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-black\/90{--tw-gradient-to: rgb(0 0 0 / .9) var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to: #2563eb var(--tw-gradient-to-position)}.to-gray-700\/50{--tw-gradient-to: rgb(55 65 81 / .5) var(--tw-gradient-to-position)}.to-gray-800{--tw-gradient-to: #1f2937 var(--tw-gradient-to-position)}.to-green-600{--tw-gradient-to: #16a34a var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.to-pink-300{--tw-gradient-to: #f9a8d4 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to: #dc2626 var(--tw-gradient-to-position)}.to-white{--tw-gradient-to: #fff var(--tw-gradient-to-position)}.to-yellow-600{--tw-gradient-to: #ca8a04 var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-right{background-position:right}.bg-no-repeat{background-repeat:no-repeat}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.pb-4{padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pr-10{padding-right:2.5rem}.pr-3{padding-right:.75rem}.pr-32{padding-right:8rem}.pr-4{padding-right:1rem}.pr-9{padding-right:2.25rem}.pt-0\.5{padding-top:.125rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-6{line-height:1.5rem}.tracking-wider{letter-spacing:.05em}.text-blue-400{--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-cyan-600{--tw-text-opacity: 1;color:rgb(8 145 178 / var(--tw-text-opacity, 1))}.text-gray-100{--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.text-gray-200{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-400{--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.text-indigo-500{--tw-text-opacity: 1;color:rgb(99 102 241 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-purple-400{--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-300{--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-500::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-500::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-indigo-500\/25{--tw-shadow-color: rgb(99 102 241 / .25);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1))}.ring-red-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.ring-opacity-5{--tw-ring-opacity: .05}.blur-md{--tw-blur: blur(12px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-lg{--tw-backdrop-blur: blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.\[appearance\:textfield\]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}@font-face{font-family:DingTalk;src:url(/assets/DingTalk-CT5a5scH.ttf) format("truetype")}*{font-family:DingTalk,sans-serif!important}.hover\:rotate-180:hover{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:rotate-90:hover{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-gray-400:hover{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.hover\:border-gray-500:hover{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.hover\:border-indigo-500:hover{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.hover\:bg-black:hover{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-100:hover{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-400:hover{--tw-bg-opacity: 1;background-color:rgb(96 165 250 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-900\/30:hover{background-color:#1e3a8a4d}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-50:hover{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-600:hover{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-600\/50:hover{background-color:#4b556380}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-700\/60:hover{background-color:#37415199}.hover\:bg-gray-700\/80:hover{background-color:#374151cc}.hover\:bg-green-100:hover{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.hover\:bg-green-400:hover{--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-100:hover{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-400:hover{--tw-bg-opacity: 1;background-color:rgb(129 140 248 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-500:hover{--tw-bg-opacity: 1;background-color:rgb(99 102 241 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-600:hover{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-700:hover{--tw-bg-opacity: 1;background-color:rgb(67 56 202 / var(--tw-bg-opacity, 1))}.hover\:bg-red-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.hover\:bg-red-400:hover{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-red-900\/30:hover{background-color:#7f1d1d4d}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-opacity-10:hover{--tw-bg-opacity: .1}.hover\:bg-opacity-20:hover{--tw-bg-opacity: .2}.hover\:bg-opacity-50:hover{--tw-bg-opacity: .5}.hover\:from-cyan-600:hover{--tw-gradient-from: #0891b2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(8 145 178 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-cyan-700:hover{--tw-gradient-from: #0e7490 var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 116 144 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-indigo-500:hover{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-indigo-600:hover{--tw-gradient-from: #4f46e5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:via-purple-600:hover{--tw-gradient-to: rgb(147 51 234 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #9333ea var(--tw-gradient-via-position), var(--tw-gradient-to)}.hover\:to-indigo-600:hover{--tw-gradient-to: #4f46e5 var(--tw-gradient-to-position)}.hover\:to-pink-600:hover{--tw-gradient-to: #db2777 var(--tw-gradient-to-position)}.hover\:to-purple-600:hover{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.hover\:to-purple-700:hover{--tw-gradient-to: #7e22ce var(--tw-gradient-to-position)}.hover\:text-gray-200:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.hover\:text-gray-300:hover{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.hover\:text-gray-500:hover{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.hover\:text-gray-700:hover{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.hover\:text-gray-900:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.hover\:text-indigo-300:hover{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-cyan-500\/50:hover{--tw-shadow-color: rgb(6 182 212 / .5);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-indigo-500\/35:hover{--tw-shadow-color: rgb(99 102 241 / .35);--tw-shadow: var(--tw-shadow-colored)}.focus\:z-10:focus{z-index:10}.focus\:border-cyan-500:focus{--tw-border-opacity: 1;border-color:rgb(6 182 212 / var(--tw-border-opacity, 1))}.focus\:border-indigo-500:focus{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.focus\:border-red-500:focus{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-inset:focus{--tw-ring-inset: inset}.focus\:ring-cyan-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(6 182 212 / var(--tw-ring-opacity, 1))}.focus\:ring-gray-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity, 1))}.focus\:ring-green-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity, 1))}.focus\:ring-indigo-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1))}.focus\:ring-indigo-500\/50:focus{--tw-ring-color: rgb(99 102 241 / .5)}.focus\:ring-indigo-500\/60:focus{--tw-ring-color: rgb(99 102 241 / .6)}.focus\:ring-indigo-500\/80:focus{--tw-ring-color: rgb(99 102 241 / .8)}.focus\:ring-purple-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity, 1))}.focus\:ring-red-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.focus\:ring-opacity-50:focus{--tw-ring-opacity: .5}.focus\:ring-offset-0:focus{--tw-ring-offset-width: 0px}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.disabled\:transform-none:disabled{transform:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:scale-100:hover:disabled{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:focus-within .group-focus-within\:bg-indigo-500\/30{background-color:#6366f14d}.group:focus-within .group-focus-within\:bg-indigo-500\/50{background-color:#6366f180}.group:focus-within .group-focus-within\:text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.group:focus-within .group-focus-within\:text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.group:focus-within .group-focus-within\:opacity-100{opacity:1}.group:hover .group-hover\:translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.group:hover .group-hover\:border-gray-600\/80{border-color:#4b5563cc}.group:hover .group-hover\:text-indigo-400{--tw-text-opacity: 1;color:rgb(129 140 248 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-20{opacity:.2}.group:hover .group-hover\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\:shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\:shadow-gray-200\/50{--tw-shadow-color: rgb(229 231 235 / .5);--tw-shadow: var(--tw-shadow-colored)}.group:hover .group-hover\:shadow-gray-900\/20{--tw-shadow-color: rgb(17 24 39 / .2);--tw-shadow: var(--tw-shadow-colored)}@media (min-width: 640px){.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:ml-4{margin-left:1rem}.sm\:mr-2{margin-right:.5rem}.sm\:h-4{height:1rem}.sm\:h-5{height:1.25rem}.sm\:h-6{height:1.5rem}.sm\:h-\[160px\]{height:160px}.sm\:w-4{width:1rem}.sm\:w-5{width:1.25rem}.sm\:w-6{width:1.5rem}.sm\:w-\[160px\]{width:160px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-sm{max-width:24rem}.sm\:max-w-xl{max-width:36rem}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.sm\:p-0{padding:0}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}.sm\:py-4{padding-top:1rem;padding-bottom:1rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 768px){.md\:max-w-md{max-width:28rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:relative{position:relative}.lg\:hidden{display:none}.lg\:h-screen{height:100vh}.lg\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme: dark){.dark\:hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-gray-800:hover{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}}.\[\&\:\:-webkit-inner-spin-button\]\:appearance-none::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none}.\[\&\:\:-webkit-outer-spin-button\]\:appearance-none::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none}.alert-fade-enter-active[data-v-59f86e5f],.alert-fade-leave-active[data-v-59f86e5f]{transition:all .5s cubic-bezier(.68,-.55,.265,1.55)}.alert-fade-enter-from[data-v-59f86e5f],.alert-fade-leave-to[data-v-59f86e5f]{opacity:0;transform:translate(-50px) scale(.95)}.app-container{min-height:100vh;width:100%;transition:background-color .5s ease}.light{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #eff6ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(238 242 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #eef2ff var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: #fff var(--tw-gradient-to-position)}.dark{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #111827 var(--tw-gradient-from-position);--tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(49 46 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #312e81 var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: #000 var(--tw-gradient-to-position)}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.loading-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999}.loading-spinner{width:50px;height:50px;border:3px solid #fff;border-top:3px solid #3498db;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}} diff --git a/themes/2024/assets/trash-CdDjPTBr.js b/themes/2024/assets/trash-CdDjPTBr.js deleted file mode 100644 index 7b0a69c..0000000 --- a/themes/2024/assets/trash-CdDjPTBr.js +++ /dev/null @@ -1 +0,0 @@ -import{c as a}from"./index-B3zfsvgW.js";const c=a("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);const t=a("trash",[["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);export{c as E,t as T}; diff --git a/themes/2024/assets/trash-DPD8vC5o.js b/themes/2024/assets/trash-DPD8vC5o.js new file mode 100644 index 0000000..06a8fd6 --- /dev/null +++ b/themes/2024/assets/trash-DPD8vC5o.js @@ -0,0 +1,11 @@ +import{c as a}from"./index-B9FIg8c4.js";/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const c=a("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/** + * @license lucide-vue-next v0.535.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const t=a("trash",[["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);export{c as E,t as T}; diff --git a/themes/2024/index.html b/themes/2024/index.html index a05a5e6..ac7f9c0 100644 --- a/themes/2024/index.html +++ b/themes/2024/index.html @@ -13,8 +13,8 @@ {{title}} - - + +
    From 3074d9ba2e661deb6f2c2fdb7a630d940078fed2 Mon Sep 17 00:00:00 2001 From: Lan Date: Wed, 7 Jan 2026 20:36:59 +0800 Subject: [PATCH 4/4] =?UTF-8?q?feat:=20https://github.com/vastsa/FileCodeB?= =?UTF-8?q?ox/issues/442=20=E5=AF=86=E7=A0=81=E8=BF=9B=E8=A1=8Chash?= =?UTF-8?q?=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/services.py | 4 ++++ apps/admin/views.py | 6 ++--- core/utils.py | 52 +++++++++++++++++++++++++++++++++++++----- main.py | 22 ++++++++++++++++-- 4 files changed, 72 insertions(+), 12 deletions(-) diff --git a/apps/admin/services.py b/apps/admin/services.py index 2c647e3..015558c 100644 --- a/apps/admin/services.py +++ b/apps/admin/services.py @@ -8,6 +8,7 @@ from apps.base.models import FileCodes, KeyValue from apps.base.utils import get_expire_info, get_file_path_name from fastapi import HTTPException from core.settings import data_root +from core.utils import hash_password, is_password_hashed class FileService: @@ -76,6 +77,9 @@ class ConfigService: if admin_token is None or admin_token == "": raise HTTPException(status_code=400, detail="管理员密码不能为空") + if not is_password_hashed(admin_token): + data["admin_token"] = hash_password(admin_token) + for key, value in data.items(): if key not in settings.default_config: continue diff --git a/apps/admin/views.py b/apps/admin/views.py index bbcc0c2..b531453 100644 --- a/apps/admin/views.py +++ b/apps/admin/views.py @@ -17,18 +17,16 @@ from core.response import APIResponse from apps.base.models import FileCodes, KeyValue from apps.admin.dependencies import create_token from core.settings import settings -from core.utils import get_now +from core.utils import get_now, verify_password admin_api = APIRouter(prefix="/admin", tags=["管理"]) @admin_api.post("/login") async def login(data: LoginData): - # 验证管理员密码 - if data.password != settings.admin_token: + if not verify_password(data.password, settings.admin_token): raise HTTPException(status_code=401, detail="密码错误") - # 生成包含管理员身份的token token = create_token({"is_admin": True}) return APIResponse(detail={"token": token, "token_type": "Bearer"}) diff --git a/core/utils.py b/core/utils.py index 8abe2d9..0aca619 100644 --- a/core/utils.py +++ b/core/utils.py @@ -47,7 +47,9 @@ async def get_select_token(code: str): :return: """ token = settings.admin_token - return hashlib.sha256(f"{code}{int(time.time() / 1000)}000{token}".encode()).hexdigest() + return hashlib.sha256( + f"{code}{int(time.time() / 1000)}000{token}".encode() + ).hexdigest() async def get_file_url(code: str): @@ -95,6 +97,44 @@ async def max_save_times_desc(max_save_seconds: int): return desc_zh, desc_en +def hash_password(password: str) -> str: + """ + 使用 SHA256 + salt 哈希密码 + 返回格式: sha256$$ + """ + salt = os.urandom(16).hex() + password_hash = hashlib.sha256(f"{salt}{password}".encode()).hexdigest() + return f"sha256${salt}${password_hash}" + + +def verify_password(password: str, hashed: str) -> bool: + """ + 验证密码是否匹配 + 支持新格式 (sha256$salt$hash) 和旧格式 (明文) + """ + if not hashed: + return False + + # 新格式: sha256$salt$hash + if hashed.startswith("sha256$"): + parts = hashed.split("$") + if len(parts) != 3: + return False + _, salt, stored_hash = parts + password_hash = hashlib.sha256(f"{salt}{password}".encode()).hexdigest() + return password_hash == stored_hash + + # 旧格式: 明文比较 (兼容迁移前的数据) + return password == hashed + + +def is_password_hashed(password: str) -> bool: + """ + 检查密码是否已经是哈希格式 + """ + return password.startswith("sha256$") and len(password.split("$")) == 3 + + async def sanitize_filename(filename: str) -> str: """ 安全处理文件名: @@ -105,15 +145,15 @@ async def sanitize_filename(filename: str) -> str: filename = os.path.basename(filename) illegal_chars = r'[\\/*?:"<>|\x00-\x1F]' # 包含控制字符 # 替换非法字符为下划线 - cleaned = re.sub(illegal_chars, '_', filename) + cleaned = re.sub(illegal_chars, "_", filename) # 处理空格(可选替换为_) - cleaned = cleaned.replace(' ', '_') + cleaned = cleaned.replace(" ", "_") # 处理连续下划线 - cleaned = re.sub(r'_+', '_', cleaned) + cleaned = re.sub(r"_+", "_", cleaned) # 处理首尾特殊字符 - cleaned = cleaned.strip('._') + cleaned = cleaned.strip("._") # 处理空文件名情况 if not cleaned: - cleaned = 'unnamed_file' + cleaned = "unnamed_file" # 长度限制(按需调整) return cleaned[:255] diff --git a/main.py b/main.py index a4ae4f4..051bb4a 100644 --- a/main.py +++ b/main.py @@ -22,6 +22,7 @@ from core.logger import logger from core.response import APIResponse from core.settings import data_root, settings, BASE_DIR, DEFAULT_CONFIG from core.tasks import delete_expire_files, clean_incomplete_uploads +from core.utils import hash_password, is_password_hashed @asynccontextmanager @@ -63,13 +64,26 @@ async def load_config(): key="sys_start", defaults={"value": int(time.time() * 1000)} ) settings.user_config = user_config.value - # 更新 ip_limit 配置 + + await migrate_password_to_hash() + ip_limit["error"].minutes = settings.errorMinute ip_limit["error"].count = settings.errorCount ip_limit["upload"].minutes = settings.uploadMinute ip_limit["upload"].count = settings.uploadCount +async def migrate_password_to_hash(): + if not is_password_hashed(settings.admin_token): + hashed = hash_password(settings.admin_token) + settings.admin_token = hashed + config_record = await KeyValue.filter(key="settings").first() + if config_record and config_record.value: + config_record.value["admin_token"] = hashed + await config_record.save() + logger.info("已将管理员密码迁移为哈希存储") + + app = FastAPI(lifespan=lifespan) app.add_middleware( @@ -149,5 +163,9 @@ if __name__ == "__main__": import uvicorn uvicorn.run( - app="main:app", host=settings.serverHost, port=settings.serverPort, reload=False, workers=settings.serverWorkers + app="main:app", + host=settings.serverHost, + port=settings.serverPort, + reload=False, + workers=settings.serverWorkers, )