diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 5bd76698..958f39c2 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -4,7 +4,6 @@ import { defineConfig } from 'vitepress' export default defineConfig({ title: 'FileCodeBox', description: '简单高效的文件分享工具', - base: '/FileCodeBox/', lang: 'zh-CN', lastUpdated: true, locales: { @@ -19,6 +18,7 @@ export default defineConfig({ { text: '首页', link: '/' }, { text: '指南', link: '/guide/getting-started' }, { text: 'API', link: '/api/' }, + { text: 'Demo', link: 'https://share.lanol.cn' }, { text: '了解更多', items: [ @@ -96,6 +96,7 @@ export default defineConfig({ { text: 'Home', link: '/en/' }, { text: 'Guide', link: '/en/guide/getting-started' }, { text: 'API', link: '/en/api/' }, + { text: 'Demo', link: 'https://share.lanol.cn' }, { text: 'More', items: [ diff --git a/docs/.vitepress/dist/404.html b/docs/.vitepress/dist/404.html deleted file mode 100644 index 86f0df99..00000000 --- a/docs/.vitepress/dist/404.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - 404 | FileCodeBox - - - - - - - - - - - -
- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/api/index.html b/docs/.vitepress/dist/api/index.html deleted file mode 100644 index f2382879..00000000 --- a/docs/.vitepress/dist/api/index.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - FileCodeBox API 文档 | FileCodeBox - - - - - - - - - - - - - - -
Skip to content

FileCodeBox API 文档

API 版本: 2.1.0

目录

认证

部分接口需要在请求头中携带 Authorization 进行认证:

Authorization: Bearer <token>

分享接口

分享文本

POST /share/text/

分享文本内容,获取分享码。

请求参数:

参数名类型必填默认值描述
textstring-要分享的文本内容
expire_valueinteger1过期时间值
expire_stylestring"day"过期时间单位(day/hour/minute)

响应示例:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "text.txt"
-  }
-}

分享文件

POST /share/file/

上传并分享文件,获取分享码。

请求参数:

参数名类型必填默认值描述
filefile-要上传的文件
expire_valueinteger1过期时间值
expire_stylestring"day"过期时间单位(day/hour/minute)

响应示例:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "example.txt"
-  }
-}

获取文件信息

GET /share/select/

通过分享码获取文件信息。

请求参数:

参数名类型必填描述
codestring文件分享码

响应示例:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "example.txt",
-    "size": 1024,
-    "text": "文件内容或下载链接"
-  }
-}

选择文件

POST /share/select/

通过分享码选择文件。

请求参数:

参数名类型必填描述
codestring文件分享码

响应示例:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "example.txt",
-    "size": 1024,
-    "text": "文件内容或下载链接"
-  }
-}

下载文件

GET /share/download

下载分享的文件。

请求参数:

参数名类型必填描述
keystring下载密钥
codestring文件分享码

管理接口

管理员登录

POST /admin/login

管理员登录获取token。

请求参数:

参数名类型必填描述
passwordstring管理员密码

仪表盘数据

GET /admin/dashboard

获取系统仪表盘数据。

响应示例:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "totalFiles": 100,
-    "storageUsed": "1.5GB",
-    "sysUptime": "10天",
-    "yesterdayCount": 50,
-    "yesterdaySize": "500MB",
-    "todayCount": 30,
-    "todaySize": "300MB"
-  }
-}

文件列表

GET /admin/file/list

获取系统中的文件列表。

请求参数:

参数名类型必填默认值描述
pageinteger1当前页码
sizeinteger10每页数量
keywordstring""搜索关键词

响应示例:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "page": 1,
-    "size": 10,
-    "total": 100,
-    "data": [
-      {
-        "id": 1,
-        "name": "example.txt",
-        "size": 1024,
-        "created_at": "2024-01-01 12:00:00"
-      }
-    ]
-  }
-}

删除文件

DELETE /admin/file/delete

删除系统中的文件。

请求参数:

参数名类型必填描述
idinteger文件ID

获取配置

GET /admin/config/get

获取系统配置信息。

更新配置

PATCH /admin/config/update

更新系统配置信息。

错误响应

当发生错误时,API会返回对应的错误信息:

json
{
-  "code": 422,
-  "detail": [
-    {
-      "loc": ["body", "password"],
-      "msg": "密码不能为空",
-      "type": "value_error"
-    }
-  ]
-}

状态码说明

  • 200: 请求成功
  • 401: 未授权
  • 403: 禁止访问
  • 404: 资源不存在
  • 422: 请求参数验证错误
  • 500: 服务器内部错误

基于 LGPL 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/assets/api_index.md.qG09VB3V.js b/docs/.vitepress/dist/assets/api_index.md.qG09VB3V.js deleted file mode 100644 index 07cf976f..00000000 --- a/docs/.vitepress/dist/assets/api_index.md.qG09VB3V.js +++ /dev/null @@ -1,70 +0,0 @@ -import{_ as i,c as a,o as t,ag as n}from"./chunks/framework.BmLMQRXF.js";const o=JSON.parse('{"title":"FileCodeBox API 文档","description":"","frontmatter":{},"headers":[],"relativePath":"api/index.md","filePath":"api/index.md","lastUpdated":1739330962000}'),h={name:"api/index.md"};function l(p,s,e,k,d,E){return t(),a("div",null,s[0]||(s[0]=[n(`

FileCodeBox API 文档

API 版本: 2.1.0

目录

认证

部分接口需要在请求头中携带 Authorization 进行认证:

Authorization: Bearer <token>

分享接口

分享文本

POST /share/text/

分享文本内容,获取分享码。

请求参数:

参数名类型必填默认值描述
textstring-要分享的文本内容
expire_valueinteger1过期时间值
expire_stylestring"day"过期时间单位(day/hour/minute)

响应示例:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "text.txt"
-  }
-}

分享文件

POST /share/file/

上传并分享文件,获取分享码。

请求参数:

参数名类型必填默认值描述
filefile-要上传的文件
expire_valueinteger1过期时间值
expire_stylestring"day"过期时间单位(day/hour/minute)

响应示例:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "example.txt"
-  }
-}

获取文件信息

GET /share/select/

通过分享码获取文件信息。

请求参数:

参数名类型必填描述
codestring文件分享码

响应示例:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "example.txt",
-    "size": 1024,
-    "text": "文件内容或下载链接"
-  }
-}

选择文件

POST /share/select/

通过分享码选择文件。

请求参数:

参数名类型必填描述
codestring文件分享码

响应示例:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "example.txt",
-    "size": 1024,
-    "text": "文件内容或下载链接"
-  }
-}

下载文件

GET /share/download

下载分享的文件。

请求参数:

参数名类型必填描述
keystring下载密钥
codestring文件分享码

管理接口

管理员登录

POST /admin/login

管理员登录获取token。

请求参数:

参数名类型必填描述
passwordstring管理员密码

仪表盘数据

GET /admin/dashboard

获取系统仪表盘数据。

响应示例:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "totalFiles": 100,
-    "storageUsed": "1.5GB",
-    "sysUptime": "10天",
-    "yesterdayCount": 50,
-    "yesterdaySize": "500MB",
-    "todayCount": 30,
-    "todaySize": "300MB"
-  }
-}

文件列表

GET /admin/file/list

获取系统中的文件列表。

请求参数:

参数名类型必填默认值描述
pageinteger1当前页码
sizeinteger10每页数量
keywordstring""搜索关键词

响应示例:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "page": 1,
-    "size": 10,
-    "total": 100,
-    "data": [
-      {
-        "id": 1,
-        "name": "example.txt",
-        "size": 1024,
-        "created_at": "2024-01-01 12:00:00"
-      }
-    ]
-  }
-}

删除文件

DELETE /admin/file/delete

删除系统中的文件。

请求参数:

参数名类型必填描述
idinteger文件ID

获取配置

GET /admin/config/get

获取系统配置信息。

更新配置

PATCH /admin/config/update

更新系统配置信息。

错误响应

当发生错误时,API会返回对应的错误信息:

json
{
-  "code": 422,
-  "detail": [
-    {
-      "loc": ["body", "password"],
-      "msg": "密码不能为空",
-      "type": "value_error"
-    }
-  ]
-}

状态码说明

`,75)]))}const g=i(h,[["render",l]]);export{o as __pageData,g as default}; diff --git a/docs/.vitepress/dist/assets/api_index.md.qG09VB3V.lean.js b/docs/.vitepress/dist/assets/api_index.md.qG09VB3V.lean.js deleted file mode 100644 index 71be335c..00000000 --- a/docs/.vitepress/dist/assets/api_index.md.qG09VB3V.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as i,c as a,o as t,ag as n}from"./chunks/framework.BmLMQRXF.js";const o=JSON.parse('{"title":"FileCodeBox API 文档","description":"","frontmatter":{},"headers":[],"relativePath":"api/index.md","filePath":"api/index.md","lastUpdated":1739330962000}'),h={name:"api/index.md"};function l(p,s,e,k,d,E){return t(),a("div",null,s[0]||(s[0]=[n("",75)]))}const g=i(h,[["render",l]]);export{o as __pageData,g as default}; diff --git a/docs/.vitepress/dist/assets/app._8rCwCso.js b/docs/.vitepress/dist/assets/app._8rCwCso.js deleted file mode 100644 index dcce4c8c..00000000 --- a/docs/.vitepress/dist/assets/app._8rCwCso.js +++ /dev/null @@ -1 +0,0 @@ -import{t as p}from"./chunks/theme.BNBC0yme.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.BmLMQRXF.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp}; diff --git a/docs/.vitepress/dist/assets/changelog.md.C8aI6QEN.js b/docs/.vitepress/dist/assets/changelog.md.C8aI6QEN.js deleted file mode 100644 index 666a93d1..00000000 --- a/docs/.vitepress/dist/assets/changelog.md.C8aI6QEN.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const i=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"changelog.md","filePath":"changelog.md","lastUpdated":1739330962000}'),o={name:"changelog.md"};function c(n,r,s,d,l,p){return a(),t("div")}const g=e(o,[["render",c]]);export{i as __pageData,g as default}; diff --git a/docs/.vitepress/dist/assets/changelog.md.C8aI6QEN.lean.js b/docs/.vitepress/dist/assets/changelog.md.C8aI6QEN.lean.js deleted file mode 100644 index 666a93d1..00000000 --- a/docs/.vitepress/dist/assets/changelog.md.C8aI6QEN.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const i=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"changelog.md","filePath":"changelog.md","lastUpdated":1739330962000}'),o={name:"changelog.md"};function c(n,r,s,d,l,p){return a(),t("div")}const g=e(o,[["render",c]]);export{i as __pageData,g as default}; diff --git a/docs/.vitepress/dist/assets/chunks/@localSearchIndexen.CIWkF5hn.js b/docs/.vitepress/dist/assets/chunks/@localSearchIndexen.CIWkF5hn.js deleted file mode 100644 index ace87211..00000000 --- a/docs/.vitepress/dist/assets/chunks/@localSearchIndexen.CIWkF5hn.js +++ /dev/null @@ -1 +0,0 @@ -const e='{"documentCount":49,"nextId":49,"documentIds":{"0":"/en/api/#filecodebox-api-documentation","1":"/en/api/#api-version-2-1-0","2":"/en/api/#table-of-contents","3":"/en/api/#authentication","4":"/en/api/#share-api","5":"/en/api/#share-text","6":"/en/api/#share-file","7":"/en/api/#get-file-info","8":"/en/api/#select-file","9":"/en/api/#download-file","10":"/en/api/#admin-api","11":"/en/api/#admin-login","12":"/en/api/#dashboard-data","13":"/en/api/#file-list","14":"/en/api/#delete-file","15":"/en/api/#get-config","16":"/en/api/#update-config","17":"/en/api/#error-response","18":"/en/api/#status-codes","19":"/en/guide/getting-started.html#getting-started","20":"/en/guide/getting-started.html#introduction","21":"/en/guide/getting-started.html#features","22":"/en/guide/getting-started.html#deployment-methods","23":"/en/guide/getting-started.html#docker-deployment-recommended","24":"/en/guide/getting-started.html#manual-deployment","25":"/en/guide/getting-started.html#usage","26":"/en/guide/getting-started.html#next-steps","27":"/en/guide/introduction.html#📝-introduction","28":"/en/guide/introduction.html#🖼️-preview","29":"/en/guide/introduction.html#🎯-use-cases","30":"/en/guide/introduction.html#✨-core-features","31":"/en/guide/introduction.html#🚀-quick-start","32":"/en/guide/introduction.html#docker-deployment","33":"/en/guide/introduction.html#manual-deployment","34":"/en/guide/introduction.html#📖-usage-guide","35":"/en/guide/introduction.html#share-files","36":"/en/guide/introduction.html#retrieve-files","37":"/en/guide/introduction.html#admin-panel","38":"/en/guide/introduction.html#🛠-development-guide","39":"/en/guide/introduction.html#project-structure","40":"/en/guide/introduction.html#development-environment","41":"/en/guide/introduction.html#local-development","42":"/en/guide/introduction.html#🤝-contributing","43":"/en/guide/introduction.html#❓-faq","44":"/en/guide/introduction.html#q-how-to-modify-upload-size-limit","45":"/en/guide/introduction.html#q-how-to-configure-storage-engine","46":"/en/guide/introduction.html#q-how-to-backup-data","47":"/en/guide/introduction.html#😀-project-statistics-and-analytics","48":"/en/guide/introduction.html#📜-disclaimer"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[3,1,1],"1":[5,3,1],"2":[3,3,5],"3":[1,3,11],"4":[2,3,1],"5":[2,4,43],"6":[2,4,44],"7":[3,4,35],"8":[2,4,34],"9":[2,4,17],"10":[2,3,1],"11":[2,4,16],"12":[2,4,31],"13":[2,4,47],"14":[2,4,18],"15":[2,4,8],"16":[2,4,8],"17":[2,3,25],"18":[2,3,16],"19":[2,1,1],"20":[1,2,23],"21":[1,2,50],"22":[2,2,1],"23":[4,4,14],"24":[2,4,25],"25":[1,2,48],"26":[2,2,19],"27":[2,1,37],"28":[2,1,2],"29":[3,1,42],"30":[3,1,82],"31":[3,1,1],"32":[2,3,16],"33":[2,3,25],"34":[3,1,1],"35":[2,3,19],"36":[2,3,13],"37":[2,3,9],"38":[3,1,1],"39":[2,3,22],"40":[2,3,9],"41":[2,3,14],"42":[2,1,25],"43":[2,1,1],"44":[8,2,7],"45":[7,2,11],"46":[6,2,11],"47":[5,1,1],"48":[2,1,31]},"averageFieldLength":[2.5510204081632657,2.5714285714285707,18.836734693877553],"storedFields":{"0":{"title":"FileCodeBox API Documentation","titles":[]},"1":{"title":"API Version: 2.1.0","titles":["FileCodeBox API Documentation"]},"2":{"title":"Table of Contents","titles":["FileCodeBox API Documentation"]},"3":{"title":"Authentication","titles":["FileCodeBox API Documentation"]},"4":{"title":"Share API","titles":["FileCodeBox API Documentation"]},"5":{"title":"Share Text","titles":["FileCodeBox API Documentation","Share API"]},"6":{"title":"Share File","titles":["FileCodeBox API Documentation","Share API"]},"7":{"title":"Get File Info","titles":["FileCodeBox API Documentation","Share API"]},"8":{"title":"Select File","titles":["FileCodeBox API Documentation","Share API"]},"9":{"title":"Download File","titles":["FileCodeBox API Documentation","Share API"]},"10":{"title":"Admin API","titles":["FileCodeBox API Documentation"]},"11":{"title":"Admin Login","titles":["FileCodeBox API Documentation","Admin API"]},"12":{"title":"Dashboard Data","titles":["FileCodeBox API Documentation","Admin API"]},"13":{"title":"File List","titles":["FileCodeBox API Documentation","Admin API"]},"14":{"title":"Delete File","titles":["FileCodeBox API Documentation","Admin API"]},"15":{"title":"Get Config","titles":["FileCodeBox API Documentation","Admin API"]},"16":{"title":"Update Config","titles":["FileCodeBox API Documentation","Admin API"]},"17":{"title":"Error Response","titles":["FileCodeBox API Documentation"]},"18":{"title":"Status Codes","titles":["FileCodeBox API Documentation"]},"19":{"title":"Getting Started","titles":[]},"20":{"title":"Introduction","titles":["Getting Started"]},"21":{"title":"Features","titles":["Getting Started"]},"22":{"title":"Deployment Methods","titles":["Getting Started"]},"23":{"title":"Docker Deployment (Recommended)","titles":["Getting Started","Deployment Methods"]},"24":{"title":"Manual Deployment","titles":["Getting Started","Deployment Methods"]},"25":{"title":"Usage","titles":["Getting Started"]},"26":{"title":"Next Steps","titles":["Getting Started"]},"27":{"title":"📝 Introduction","titles":[]},"28":{"title":"🖼️ Preview","titles":[]},"29":{"title":"🎯 Use Cases","titles":[]},"30":{"title":"✨ Core Features","titles":[]},"31":{"title":"🚀 Quick Start","titles":[]},"32":{"title":"Docker Deployment","titles":["🚀 Quick Start"]},"33":{"title":"Manual Deployment","titles":["🚀 Quick Start"]},"34":{"title":"📖 Usage Guide","titles":[]},"35":{"title":"Share Files","titles":["📖 Usage Guide"]},"36":{"title":"Retrieve Files","titles":["📖 Usage Guide"]},"37":{"title":"Admin Panel","titles":["📖 Usage Guide"]},"38":{"title":"🛠 Development Guide","titles":[]},"39":{"title":"Project Structure","titles":["🛠 Development Guide"]},"40":{"title":"Development Environment","titles":["🛠 Development Guide"]},"41":{"title":"Local Development","titles":["🛠 Development Guide"]},"42":{"title":"🤝 Contributing","titles":[]},"43":{"title":"❓ FAQ","titles":[]},"44":{"title":"Q: How to modify upload size limit?","titles":["❓ FAQ"]},"45":{"title":"Q: How to configure storage engine?","titles":["❓ FAQ"]},"46":{"title":"Q: How to backup data?","titles":["❓ FAQ"]},"47":{"title":"😀 Project Statistics and Analytics","titles":[]},"48":{"title":"📜 Disclaimer","titles":[]}},"dirtCount":0,"index":[["q",{"0":{"44":1,"45":1,"46":1}}],["questions",{"2":{"46":1}}],["quick",{"0":{"31":1},"1":{"32":1,"33":1},"2":{"21":1,"29":3}}],["quickly",{"2":{"20":1}}],["quot",{"2":{"5":2,"6":2,"13":2,"35":2}}],["❓",{"0":{"43":1},"1":{"44":1,"45":1,"46":1}}],["xxx",{"2":{"42":3}}],["x3c",{"2":{"3":1}}],["🤝",{"0":{"42":1}}],["8+",{"2":{"40":1}}],["3",{"2":{"40":2}}],["300mb",{"2":{"12":1}}],["30",{"2":{"12":1}}],["└──",{"2":{"39":2}}],["│",{"2":{"39":2}}],["├──",{"2":{"39":4}}],["✨",{"0":{"30":1}}],["🎭",{"2":{"30":1}}],["🌍",{"2":{"30":1}}],["🎫",{"2":{"30":1}}],["🌐",{"2":{"29":1}}],["🎯",{"0":{"29":1}}],["js",{"2":{"40":1}}],["json",{"2":{"5":1,"6":1,"7":1,"8":1,"12":1,"13":1,"17":1}}],["just",{"2":{"27":1}}],["+",{"2":{"27":1,"30":3}}],["random",{"2":{"30":1}}],["r",{"2":{"24":1,"33":1}}],["run",{"2":{"23":1,"32":1,"41":1}}],["request",{"2":{"42":1}}],["requirements",{"2":{"24":1,"33":1}}],["requires",{"2":{"21":1}}],["required",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"11":1,"13":1,"14":1,"30":1}}],["require",{"2":{"3":1}}],["repository",{"2":{"33":1}}],["restart=always",{"2":{"32":1}}],["responsible",{"2":{"48":1}}],["responsive",{"2":{"21":1,"30":1}}],["response",{"0":{"17":1},"2":{"5":1,"6":1,"7":1,"8":1,"12":1,"13":1}}],["registration",{"2":{"29":1,"30":1}}],["retain",{"2":{"48":1}}],["retrieve",{"0":{"36":1},"2":{"27":1,"36":1}}],["return",{"2":{"17":1}}],["recipients",{"2":{"27":1}}],["recommended",{"0":{"23":1}}],["reliable",{"2":{"21":1}}],["⏱️",{"2":{"21":1}}],["📜",{"0":{"48":1}}],["😀",{"0":{"47":1}}],["📖",{"0":{"34":1},"1":{"35":1,"36":1,"37":1}}],["💻",{"2":{"30":1}}],["🐳",{"2":{"30":1}}],["🛠",{"0":{"38":1},"1":{"39":1,"40":1,"41":1},"2":{"30":1}}],["📦",{"2":{"30":1}}],["📤",{"2":{"30":1}}],["🔄",{"2":{"29":1}}],["💾",{"2":{"29":1,"30":1}}],["🕶️",{"2":{"29":1}}],["📁",{"2":{"29":1}}],["📝",{"0":{"27":1},"2":{"29":1}}],["📱",{"2":{"21":1,"30":1}}],["🖼️",{"0":{"28":1},"2":{"21":1}}],["📊",{"2":{"21":1}}],["🔒",{"2":{"21":1,"30":1}}],["🚀",{"0":{"31":1},"1":{"32":1,"33":1},"2":{"21":1,"30":1}}],["your",{"2":{"29":1,"42":2}}],["you",{"2":{"20":1}}],["yesterdaysize",{"2":{"12":1}}],["yesterdaycount",{"2":{"12":1}}],["yes",{"2":{"5":1,"6":1,"7":1,"8":1,"9":2,"11":1,"14":1}}],["git",{"2":{"24":1,"33":1,"42":3}}],["github",{"2":{"24":1,"33":1}}],["guide",{"0":{"34":1,"38":1},"1":{"35":1,"36":1,"37":1,"39":1,"40":1,"41":1},"2":{"20":1}}],["getting",{"0":{"19":1},"1":{"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1}}],["get",{"0":{"7":1,"15":1},"2":{"5":1,"6":1,"7":2,"9":1,"11":1,"12":2,"13":2,"15":3,"25":1,"35":1}}],["404",{"2":{"18":1}}],["403",{"2":{"18":1}}],["401",{"2":{"18":1}}],["422",{"2":{"17":1,"18":1}}],["website",{"2":{"35":1,"36":1}}],["where",{"2":{"27":1}}],["when",{"2":{"17":1,"48":1}}],["wiki",{"2":{"46":1}}],["without",{"2":{"29":1}}],["with",{"2":{"27":1,"29":1,"30":1}}],["will",{"2":{"17":1,"20":1}}],["easy",{"2":{"30":1}}],["easily",{"2":{"27":1}}],["elementui",{"2":{"30":1}}],["engine",{"0":{"45":1},"2":{"45":1}}],["english",{"2":{"30":1}}],["environment",{"0":{"40":1}}],["enhance",{"2":{"26":1}}],["enter",{"2":{"25":3,"36":1,"37":1}}],["etc",{"2":{"25":1}}],["efficient",{"2":{"20":1}}],["empty",{"2":{"17":1}}],["error",{"0":{"17":1},"2":{"17":3,"18":2,"30":1}}],["extraction",{"2":{"21":1,"25":2}}],["example",{"2":{"5":1,"6":2,"7":2,"8":2,"12":1,"13":2}}],["expiration",{"2":{"5":2,"6":2,"21":1,"25":1,"29":1,"30":1,"35":1}}],["expire",{"2":{"5":2,"6":2}}],["illegal",{"2":{"48":1}}],["ip",{"2":{"30":1}}],["it",{"2":{"27":1,"48":2}}],["images",{"2":{"21":1}}],["is",{"2":{"20":1,"27":1,"48":2}}],["id",{"2":{"13":1,"14":2}}],["in",{"2":{"44":1,"45":1}}],["install",{"2":{"24":2,"33":2,"41":1}}],["introduction",{"0":{"20":1,"27":1}}],["integrate",{"2":{"26":1}}],["integer",{"2":{"5":1,"6":1,"13":2,"14":1}}],["internal",{"2":{"18":1}}],["information",{"2":{"7":1,"25":1,"48":1}}],["info",{"0":{"7":1}}],["change",{"2":{"44":1}}],["changes",{"2":{"42":1}}],["checkout",{"2":{"42":1}}],["chinese",{"2":{"30":2}}],["customizable",{"2":{"30":1}}],["current",{"2":{"13":1}}],["create",{"2":{"42":1}}],["created",{"2":{"13":1}}],["cross",{"2":{"29":1}}],["cases",{"0":{"29":1}}],["can",{"2":{"21":1}}],["cannot",{"2":{"17":1}}],["cd",{"2":{"24":1}}],["cli",{"2":{"30":1}}],["click",{"2":{"21":1,"25":1,"30":1,"35":1,"36":1}}],["clone",{"2":{"24":2,"33":2}}],["count",{"2":{"35":1}}],["copyright",{"2":{"48":1}}],["copy",{"2":{"30":1}}],["core",{"0":{"30":1},"2":{"39":2}}],["corresponding",{"2":{"17":1}}],["commit",{"2":{"42":2}}],["command",{"2":{"30":1}}],["com",{"2":{"24":1,"33":1}}],["consequences",{"2":{"48":1}}],["contributing",{"0":{"42":1}}],["control",{"2":{"21":1}}],["content",{"2":{"5":2,"7":1,"8":1,"29":1}}],["contents",{"0":{"2":1}}],["configure",{"0":{"45":1},"2":{"26":1,"45":1}}],["configuration",{"2":{"15":1,"16":1,"26":1}}],["config",{"0":{"15":1,"16":1},"2":{"15":1,"16":1}}],["codes",{"0":{"18":1},"2":{"30":1}}],["code",{"2":{"5":3,"6":3,"7":5,"8":5,"9":2,"12":1,"13":1,"17":1,"21":1,"25":2,"29":1,"39":2}}],["500",{"2":{"18":1}}],["500mb",{"2":{"12":1}}],["50",{"2":{"12":1}}],["5gb",{"2":{"12":1}}],["lanol",{"2":{"32":1}}],["language",{"2":{"30":1}}],["learning",{"2":{"48":1}}],["learn",{"2":{"26":3}}],["local",{"0":{"41":1},"2":{"30":1}}],["localhost",{"2":{"25":2}}],["locker",{"2":{"27":1}}],["loc",{"2":{"17":1}}],["login",{"0":{"11":1},"2":{"11":2}}],["line",{"2":{"30":1}}],["link",{"2":{"7":1,"8":1,"25":2}}],["like",{"2":{"27":1}}],["lightweight",{"2":{"27":1,"30":1}}],["limits",{"2":{"30":3}}],["limit",{"0":{"44":1},"2":{"21":2,"25":1}}],["list",{"0":{"13":1},"2":{"13":2,"25":1}}],["keyword",{"2":{"13":2}}],["key",{"2":{"9":2}}],["opt",{"2":{"32":1}}],["options",{"2":{"30":1}}],["open",{"2":{"25":1,"35":1,"36":1,"42":1,"48":1}}],["own",{"2":{"29":1}}],["on",{"2":{"30":1}}],["only",{"2":{"27":1,"48":1}}],["onedrive",{"2":{"30":1}}],["one",{"2":{"21":1,"30":1}}],["other",{"2":{"21":1}}],["occurs",{"2":{"17":1}}],["origin",{"2":{"42":1}}],["or",{"2":{"7":1,"8":1,"25":1,"35":1,"36":1}}],["of",{"0":{"2":1},"2":{"21":1}}],["b",{"2":{"42":1}}],["branch",{"2":{"42":2}}],["browser",{"2":{"25":1}}],["backup",{"0":{"46":1},"2":{"46":1}}],["backend",{"2":{"39":1,"41":1}}],["base",{"2":{"39":2}}],["based",{"2":{"30":1}}],["bashcd",{"2":{"33":1,"41":1}}],["bashpython",{"2":{"24":1,"33":1,"41":1}}],["bashpip",{"2":{"24":1}}],["bashgit",{"2":{"24":1,"33":1}}],["bashdocker",{"2":{"23":1,"32":1}}],["build",{"2":{"29":1}}],["button",{"2":{"25":1}}],["beta",{"2":{"32":1}}],["between",{"2":{"29":1}}],["be",{"2":{"17":1,"48":1}}],["bearer",{"2":{"3":1}}],["body",{"2":{"17":1}}],["by",{"2":{"7":1,"8":1}}],["using",{"2":{"48":1}}],["usage",{"0":{"25":1,"34":1},"1":{"35":1,"36":1,"37":1}}],["used",{"2":{"48":1}}],["users",{"2":{"27":1}}],["user",{"2":{"25":1}}],["use",{"0":{"29":1},"2":{"20":1}}],["unauthorized",{"2":{"18":1}}],["unit",{"2":{"5":1,"6":1}}],["up",{"2":{"27":1}}],["update",{"0":{"16":1},"2":{"16":2}}],["uploadsize",{"2":{"44":1}}],["upload",{"0":{"44":1},"2":{"6":2,"25":3,"30":2}}],["npm",{"2":{"41":2}}],["nbsp",{"2":{"28":3}}],["need",{"2":{"27":1}}],["next",{"0":{"26":1}}],["name",{"2":{"5":1,"6":1,"7":1,"8":1,"13":1,"23":1,"32":1}}],["node",{"2":{"40":1}}],["not",{"2":{"18":1,"48":2}}],["no",{"2":{"5":2,"6":2,"13":3,"30":1}}],["more",{"2":{"46":1}}],["modify",{"0":{"44":1}}],["mobile",{"2":{"21":1,"30":1}}],["m",{"2":{"42":1}}],["multi",{"2":{"30":1}}],["multiple",{"2":{"30":1}}],["main",{"2":{"24":1,"33":1,"41":1}}],["manage",{"2":{"37":1}}],["management",{"2":{"20":1,"25":1,"30":1}}],["manual",{"0":{"24":1,"33":1}}],["methods",{"0":{"22":1},"1":{"23":1,"24":1},"2":{"26":1}}],["message",{"2":{"17":1}}],["msg",{"2":{"5":1,"6":1,"7":1,"8":1,"12":1,"13":1,"17":1}}],["minute",{"2":{"5":1,"6":1}}],["how",{"0":{"44":1,"45":1,"46":1},"2":{"26":3}}],["hour",{"2":{"5":1,"6":1}}],["http",{"2":{"25":2}}],["https",{"2":{"24":1,"33":1}}],["help",{"2":{"20":1}}],["header",{"2":{"3":1}}],["vue",{"2":{"40":1}}],["vue3",{"2":{"27":1,"30":1}}],["view",{"2":{"25":1,"36":1}}],["visit",{"2":{"25":3,"37":1,"46":1}}],["videos",{"2":{"21":1}}],["various",{"2":{"30":1}}],["vastsa",{"2":{"23":1,"24":1,"33":1}}],["validation",{"2":{"18":1}}],["value",{"2":{"5":2,"6":2,"17":1}}],["v",{"2":{"23":1,"32":1}}],["version",{"0":{"1":1}}],["disclaimer",{"0":{"48":1}}],["directory",{"2":{"39":1,"46":1}}],["different",{"2":{"26":1}}],["drop",{"2":{"30":1}}],["drag",{"2":{"25":1,"30":1,"35":1}}],["d",{"2":{"23":1,"32":1}}],["data",{"0":{"12":1,"46":1},"2":{"12":1,"13":1,"23":2,"32":1,"39":2,"46":1}}],["dashboard",{"0":{"12":1},"2":{"12":2}}],["days",{"2":{"12":1}}],["day",{"2":{"5":2,"6":2}}],["docker",{"0":{"23":1,"32":1},"2":{"21":1,"30":1}}],["documentation",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"26":1}}],["download",{"0":{"9":1},"2":{"7":1,"8":1,"9":3,"21":2,"25":3,"30":1,"36":1}}],["dev",{"2":{"41":1}}],["development",{"0":{"38":1,"40":1,"41":1},"1":{"39":1,"40":1,"41":1},"2":{"41":2}}],["developed",{"2":{"27":1}}],["devices",{"2":{"29":1}}],["delivery",{"2":{"27":1}}],["delete",{"0":{"14":1},"2":{"14":3}}],["dependencies",{"2":{"24":1,"33":1}}],["deployment",{"0":{"22":1,"23":1,"24":1,"32":1,"33":1},"1":{"23":1,"24":1},"2":{"21":2,"30":1}}],["deploy",{"2":{"20":1}}],["desktop",{"2":{"21":1}}],["design",{"2":{"21":1,"30":1}}],["description",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"11":1,"13":1,"14":1}}],["detail",{"2":{"5":1,"6":1,"7":1,"8":1,"12":1,"13":1,"17":1}}],["default",{"2":{"5":1,"6":1,"13":1}}],["please",{"2":{"48":1}}],["platform",{"2":{"29":1}}],["purposes",{"2":{"48":2}}],["pull",{"2":{"42":1}}],["push",{"2":{"42":2}}],["pip",{"2":{"33":1}}],["picking",{"2":{"27":1}}],["python",{"2":{"40":1}}],["py",{"2":{"24":1,"33":1,"41":1}}],["private",{"2":{"29":1}}],["privacy",{"2":{"29":1}}],["protected",{"2":{"29":1}}],["project",{"0":{"39":1,"47":1},"2":{"24":1,"42":1,"48":2}}],["preview",{"0":{"28":1},"2":{"21":2}}],["p",{"2":{"23":1,"32":1}}],["perfect",{"2":{"21":1}}],["paste",{"2":{"30":1}}],["passcode",{"2":{"27":1,"30":1,"35":1,"36":1}}],["password",{"2":{"11":2,"17":2,"25":1,"37":1}}],["package",{"2":{"27":1}}],["panel",{"0":{"37":1},"2":{"25":2,"30":1,"44":1,"45":1}}],["path",{"2":{"23":1}}],["patch",{"2":{"16":1}}],["page",{"2":{"13":4}}],["parameter",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"11":1,"13":1,"14":1}}],["parameters",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"11":1,"13":1,"14":1,"45":1}}],["post",{"2":{"5":1,"6":1,"8":1,"11":1}}],["traditional",{"2":{"30":1}}],["transfer",{"2":{"20":1,"29":4}}],["temporary",{"2":{"20":1,"29":2}}],["text",{"0":{"5":1},"2":{"5":5,"7":1,"8":1,"27":1,"29":2,"30":1,"36":1}}],["through",{"2":{"26":1}}],["this",{"2":{"20":1,"48":1}}],["that",{"2":{"20":1}}],["the",{"2":{"17":1,"24":1,"25":1,"27":1,"33":2,"35":2,"36":1,"42":2,"46":1,"48":2}}],["txt",{"2":{"5":1,"6":1,"7":1,"8":1,"13":1,"24":1,"33":1}}],["times",{"2":{"21":1}}],["time",{"2":{"5":2,"6":2,"21":2,"25":1,"29":1,"35":1}}],["tool",{"2":{"20":1,"27":1}}],["total",{"2":{"13":1}}],["totalfiles",{"2":{"12":1}}],["todaysize",{"2":{"12":1}}],["todaycount",{"2":{"12":1}}],["token",{"2":{"11":1}}],["token>",{"2":{"3":1}}],["to",{"0":{"44":1,"45":1,"46":1},"2":{"5":1,"6":1,"11":1,"23":1,"25":1,"26":3,"27":2,"42":1}}],["types",{"2":{"30":2}}],["type",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"11":1,"13":1,"14":1,"17":1}}],["table",{"0":{"2":1}}],["faq",{"0":{"43":1},"1":{"44":1,"45":1,"46":1}}],["fastapi",{"2":{"27":1,"30":1,"40":1}}],["feature",{"2":{"42":3}}],["features",{"0":{"21":1,"30":1}}],["fcb",{"2":{"39":1,"41":1}}],["functions",{"2":{"39":2}}],["frontend",{"2":{"39":1,"41":1}}],["fronted",{"2":{"39":1,"41":1}}],["from",{"2":{"14":1,"27":1}}],["friendly",{"2":{"30":1}}],["found",{"2":{"18":1}}],["fork",{"2":{"42":1}}],["formats",{"2":{"21":1}}],["forbidden",{"2":{"18":1}}],["for",{"2":{"3":1,"21":1,"30":1,"46":1,"48":3}}],["files",{"0":{"35":1,"36":1},"2":{"25":3,"27":2,"35":1,"37":1}}],["file",{"0":{"6":1,"7":1,"8":1,"9":1,"13":1,"14":1},"2":{"6":5,"7":3,"8":3,"9":2,"13":2,"14":3,"20":2,"21":4,"25":3,"27":1,"29":6,"30":3,"35":1,"36":1}}],["filecodebox2023",{"2":{"25":1}}],["filecodebox",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"20":2,"23":2,"24":2,"27":1,"32":3,"33":2,"39":1}}],["should",{"2":{"48":1}}],["sharing",{"2":{"20":2,"27":1,"29":4,"30":1}}],["shared",{"2":{"9":1}}],["share",{"0":{"4":1,"5":1,"6":1,"35":1},"1":{"5":1,"6":1,"7":1,"8":1,"9":1},"2":{"2":1,"5":4,"6":3,"7":3,"8":3,"9":2,"25":2,"27":1,"29":2,"35":1}}],["source",{"2":{"48":1}}],["some",{"2":{"3":1}}],["s3",{"2":{"30":1}}],["sqlite3",{"2":{"30":1}}],["snippets",{"2":{"29":1}}],["support",{"2":{"21":3,"30":5}}],["supports",{"2":{"20":1}}],["success",{"2":{"5":1,"6":1,"7":1,"8":1,"12":1,"13":1,"18":1}}],["simplified",{"2":{"30":1}}],["simple",{"2":{"20":1}}],["size",{"0":{"44":1},"2":{"7":1,"8":1,"13":4}}],["security",{"2":{"26":2,"30":1}}],["secure",{"2":{"21":1}}],["set",{"2":{"25":1,"35":1}}],["settings",{"2":{"26":1,"37":1}}],["setting",{"2":{"21":1}}],["service",{"2":{"24":1,"29":2,"33":1}}],["server",{"2":{"18":1}}],["search",{"2":{"13":1}}],["select",{"0":{"8":1},"2":{"7":1,"8":2,"35":1,"45":1}}],["sysuptime",{"2":{"12":1}}],["system",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"25":2,"26":1,"30":1}}],["structure",{"0":{"39":1}}],["string",{"2":{"5":2,"6":1,"7":1,"8":1,"9":2,"11":1,"13":1}}],["storage",{"0":{"45":1},"2":{"26":2,"29":2,"30":1,"45":1}}],["storageused",{"2":{"12":1}}],["steps",{"0":{"26":1}}],["statistics",{"0":{"47":1}}],["status",{"0":{"18":1}}],["start",{"0":{"31":1},"1":{"32":1,"33":1},"2":{"24":1,"33":1}}],["started",{"0":{"19":1},"1":{"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1}}],["style",{"2":{"5":1,"6":1}}],["allows",{"2":{"27":1}}],["area",{"2":{"25":1}}],["application",{"2":{"39":1}}],["apps",{"2":{"39":1}}],["app",{"2":{"23":1,"32":1}}],["apis",{"2":{"3":1}}],["api",{"0":{"0":1,"1":1,"4":1,"10":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":2,"6":2,"7":2,"8":2,"9":2,"10":1,"11":2,"12":2,"13":2,"14":2,"15":2,"16":2,"17":1,"18":1},"2":{"2":2,"17":1,"26":2}}],["address",{"2":{"48":1}}],["add",{"2":{"42":1}}],["adaptation",{"2":{"21":1}}],["admin",{"0":{"10":1,"11":1,"37":1},"1":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1},"2":{"2":1,"11":3,"12":1,"13":1,"14":1,"15":1,"16":1,"25":4,"30":1,"37":2,"39":2,"44":1,"45":1}}],["audio",{"2":{"21":1}}],["author",{"2":{"48":1}}],["authorization",{"2":{"3":2}}],["authentication",{"0":{"3":1},"2":{"2":1,"3":1}}],["access",{"2":{"21":1,"25":1}}],["amp",{"2":{"21":1}}],["any",{"2":{"48":2}}],["analytics",{"0":{"47":1}}],["anonymous",{"2":{"29":1,"30":1}}],["an",{"2":{"17":1}}],["and",{"0":{"47":1},"2":{"5":1,"6":1,"20":3,"21":2,"25":3,"27":1,"29":1,"30":4,"35":1,"37":1,"45":1,"48":1}}],["attempt",{"2":{"30":1}}],["at",{"2":{"13":1}}],["abc123",{"2":{"5":1,"6":1,"7":1,"8":1}}],["a",{"2":{"5":1,"6":2,"20":1,"27":4,"42":1,"44":1,"45":1,"46":1}}],["00",{"2":{"13":2}}],["01",{"2":{"13":2}}],["0",{"0":{"1":1}}],["14+",{"2":{"40":1}}],["12345",{"2":{"23":2,"25":2,"32":2}}],["12",{"2":{"13":1}}],["10",{"2":{"12":1,"13":2}}],["100",{"2":{"12":1,"13":1}}],["1024",{"2":{"7":1,"8":1,"13":1}}],["1",{"0":{"1":1},"2":{"5":1,"6":1,"12":1,"13":3}}],["2024",{"2":{"13":1}}],["200",{"2":{"5":1,"6":1,"7":1,"8":1,"12":1,"13":1,"18":1}}],["2",{"0":{"1":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.B_6o4xXK.js b/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.B_6o4xXK.js deleted file mode 100644 index 8697087f..00000000 --- a/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.B_6o4xXK.js +++ /dev/null @@ -1 +0,0 @@ -const t='{"documentCount":49,"nextId":49,"documentIds":{"0":"/api/#filecodebox-api-文档","1":"/api/#api-版本-2-1-0","2":"/api/#目录","3":"/api/#认证","4":"/api/#分享接口","5":"/api/#分享文本","6":"/api/#分享文件","7":"/api/#获取文件信息","8":"/api/#选择文件","9":"/api/#下载文件","10":"/api/#管理接口","11":"/api/#管理员登录","12":"/api/#仪表盘数据","13":"/api/#文件列表","14":"/api/#删除文件","15":"/api/#获取配置","16":"/api/#更新配置","17":"/api/#错误响应","18":"/api/#状态码说明","19":"/guide/getting-started.html#快速开始","20":"/guide/getting-started.html#简介","21":"/guide/getting-started.html#特性","22":"/guide/getting-started.html#部署方式","23":"/guide/getting-started.html#docker-部署-推荐","24":"/guide/getting-started.html#手动部署","25":"/guide/getting-started.html#使用方法","26":"/guide/getting-started.html#下一步","27":"/guide/introduction.html#🚀-更新计划","28":"/guide/introduction.html#📝-项目简介","29":"/guide/introduction.html#🎯-应用场景","30":"/guide/introduction.html#✨-核心特性","31":"/guide/introduction.html#🚀-快速开始","32":"/guide/introduction.html#docker-部署","33":"/guide/introduction.html#手动部署","34":"/guide/introduction.html#📖-使用说明","35":"/guide/introduction.html#分享文件","36":"/guide/introduction.html#获取文件","37":"/guide/introduction.html#管理面板","38":"/guide/introduction.html#🛠-开发指南","39":"/guide/introduction.html#项目结构","40":"/guide/introduction.html#开发环境","41":"/guide/introduction.html#本地开发","42":"/guide/introduction.html#🤝-贡献指南","43":"/guide/introduction.html#❓-常见问题","44":"/guide/introduction.html#q-如何修改上传大小限制","45":"/guide/introduction.html#q-如何配置存储引擎","46":"/guide/introduction.html#q-如何备份数据","47":"/guide/introduction.html#📊-项目统计","48":"/guide/introduction.html#📜-免责声明"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[3,1,1],"1":[5,3,1],"2":[1,3,4],"3":[1,3,7],"4":[1,3,1],"5":[1,4,37],"6":[1,4,38],"7":[1,4,28],"8":[1,4,28],"9":[1,4,16],"10":[1,3,1],"11":[1,4,14],"12":[1,4,27],"13":[1,4,45],"14":[1,4,15],"15":[1,4,6],"16":[1,4,6],"17":[1,3,15],"18":[1,3,13],"19":[1,1,1],"20":[1,1,6],"21":[1,1,23],"22":[1,1,1],"23":[4,2,14],"24":[1,2,21],"25":[1,1,22],"26":[1,1,9],"27":[2,1,11],"28":[2,1,10],"29":[2,1,21],"30":[2,1,58],"31":[2,1,1],"32":[2,2,16],"33":[1,2,21],"34":[2,1,1],"35":[1,2,8],"36":[1,2,5],"37":[1,2,5],"38":[2,1,1],"39":[1,2,18],"40":[1,2,9],"41":[1,2,13],"42":[2,1,19],"43":[2,1,1],"44":[3,2,4],"45":[3,2,3],"46":[3,2,7],"47":[2,1,1],"48":[2,1,6]},"averageFieldLength":[1.5510204081632653,2.2244897959183674,13.040816326530612],"storedFields":{"0":{"title":"FileCodeBox API 文档","titles":[]},"1":{"title":"API 版本: 2.1.0","titles":["FileCodeBox API 文档"]},"2":{"title":"目录","titles":["FileCodeBox API 文档"]},"3":{"title":"认证","titles":["FileCodeBox API 文档"]},"4":{"title":"分享接口","titles":["FileCodeBox API 文档"]},"5":{"title":"分享文本","titles":["FileCodeBox API 文档","分享接口"]},"6":{"title":"分享文件","titles":["FileCodeBox API 文档","分享接口"]},"7":{"title":"获取文件信息","titles":["FileCodeBox API 文档","分享接口"]},"8":{"title":"选择文件","titles":["FileCodeBox API 文档","分享接口"]},"9":{"title":"下载文件","titles":["FileCodeBox API 文档","分享接口"]},"10":{"title":"管理接口","titles":["FileCodeBox API 文档"]},"11":{"title":"管理员登录","titles":["FileCodeBox API 文档","管理接口"]},"12":{"title":"仪表盘数据","titles":["FileCodeBox API 文档","管理接口"]},"13":{"title":"文件列表","titles":["FileCodeBox API 文档","管理接口"]},"14":{"title":"删除文件","titles":["FileCodeBox API 文档","管理接口"]},"15":{"title":"获取配置","titles":["FileCodeBox API 文档","管理接口"]},"16":{"title":"更新配置","titles":["FileCodeBox API 文档","管理接口"]},"17":{"title":"错误响应","titles":["FileCodeBox API 文档"]},"18":{"title":"状态码说明","titles":["FileCodeBox API 文档"]},"19":{"title":"快速开始","titles":[]},"20":{"title":"简介","titles":["快速开始"]},"21":{"title":"特性","titles":["快速开始"]},"22":{"title":"部署方式","titles":["快速开始"]},"23":{"title":"Docker 部署(推荐)","titles":["快速开始","部署方式"]},"24":{"title":"手动部署","titles":["快速开始","部署方式"]},"25":{"title":"使用方法","titles":["快速开始"]},"26":{"title":"下一步","titles":["快速开始"]},"27":{"title":"🚀 更新计划","titles":[]},"28":{"title":"📝 项目简介","titles":[]},"29":{"title":"🎯 应用场景","titles":[]},"30":{"title":"✨ 核心特性","titles":[]},"31":{"title":"🚀 快速开始","titles":[]},"32":{"title":"Docker 部署","titles":["🚀 快速开始"]},"33":{"title":"手动部署","titles":["🚀 快速开始"]},"34":{"title":"📖 使用说明","titles":[]},"35":{"title":"分享文件","titles":["📖 使用说明"]},"36":{"title":"获取文件","titles":["📖 使用说明"]},"37":{"title":"管理面板","titles":["📖 使用说明"]},"38":{"title":"🛠 开发指南","titles":[]},"39":{"title":"项目结构","titles":["🛠 开发指南"]},"40":{"title":"开发环境","titles":["🛠 开发指南"]},"41":{"title":"本地开发","titles":["🛠 开发指南"]},"42":{"title":"🤝 贡献指南","titles":[]},"43":{"title":"❓ 常见问题","titles":[]},"44":{"title":"Q: 如何修改上传大小限制?","titles":["❓ 常见问题"]},"45":{"title":"Q: 如何配置存储引擎?","titles":["❓ 常见问题"]},"46":{"title":"Q: 如何备份数据?","titles":["❓ 常见问题"]},"47":{"title":"📊 项目统计","titles":[]},"48":{"title":"📜 免责声明","titles":[]}},"dirtCount":0,"index":[["与作者无关",{"2":{"48":1}}],["不得用于任何违法用途",{"2":{"48":1}}],["不修改昵称为uuid",{"2":{"27":1}}],["免责声明",{"0":{"48":1}}],["wiki",{"2":{"46":1}}],["webdav存储",{"2":{"27":1}}],["更多问题请访问",{"2":{"46":1}}],["更新计划",{"0":{"27":1}}],["更新系统配置信息",{"2":{"16":1}}],["更新配置",{"0":{"16":1}}],["备份",{"2":{"46":1}}],["如何备份数据",{"0":{"46":1}}],["如何配置存储引擎",{"0":{"45":1}}],["如何修改上传大小限制",{"0":{"44":1}}],["uploadsize",{"2":{"44":1}}],["update",{"2":{"16":1}}],["在管理面板中选择存储引擎并配置相应参数",{"2":{"45":1}}],["在管理面板中修改配置项",{"2":{"44":1}}],["在不同设备间快速传输文件",{"2":{"29":1}}],["q",{"0":{"44":1,"45":1,"46":1}}],["quot",{"2":{"5":2,"6":2,"13":2,"35":2}}],["常见问题",{"0":{"43":1},"1":{"44":1,"45":1,"46":1}}],["❓",{"0":{"43":1},"1":{"44":1,"45":1,"46":1}}],["推送到分支",{"2":{"42":1}}],["推荐",{"0":{"23":1}}],["提交",{"2":{"42":1}}],["提交更改",{"2":{"42":1}}],["提取码分享",{"2":{"30":1}}],["创建新分支",{"2":{"42":1}}],["贡献指南",{"0":{"42":1}}],["🤝",{"0":{"42":1}}],["前端开发",{"2":{"41":1}}],["前端代码",{"2":{"39":1}}],["后端开发",{"2":{"41":1}}],["后台管理",{"2":{"25":1}}],["本项目开源仅供学习使用",{"2":{"48":1}}],["本项目",{"2":{"42":1}}],["本地开发",{"0":{"41":1}}],["本指南将帮助您快速部署和使用",{"2":{"20":1}}],["js",{"2":{"40":1}}],["json",{"2":{"5":1,"6":1,"7":1,"8":1,"12":1,"13":1,"17":1}}],["npm",{"2":{"41":2}}],["node",{"2":{"40":1}}],["name",{"2":{"5":1,"6":1,"7":1,"8":1,"13":1,"23":1,"32":1}}],["8+",{"2":{"40":1}}],["3",{"2":{"40":2}}],["300mb",{"2":{"12":1}}],["30",{"2":{"12":1}}],["数据目录",{"2":{"39":1}}],["核心功能",{"2":{"39":1}}],["核心特性",{"0":{"30":1}}],["基础功能",{"2":{"39":1}}],["基于",{"2":{"30":1}}],["└──",{"2":{"39":2}}],["│",{"2":{"39":2}}],["应用代码",{"2":{"39":1}}],["应用场景",{"0":{"29":1}}],["├──",{"2":{"39":4}}],["项目统计",{"0":{"47":1}}],["项目结构",{"0":{"39":1}}],["项目简介",{"0":{"28":1}}],["开发环境",{"0":{"40":1}}],["开发指南",{"0":{"38":1},"1":{"39":1,"40":1,"41":1}}],["开发的轻量级文件分享工具",{"2":{"28":1}}],["设置过期时间和次数",{"2":{"35":1}}],["设置文件有效期和下载次数限制",{"2":{"25":1}}],["选择或拖拽文件",{"2":{"35":1}}],["选择文件",{"0":{"8":1}}],["点击获取",{"2":{"36":1}}],["点击",{"2":{"35":1}}],["点击上传按钮或拖拽文件到上传区域",{"2":{"25":1}}],["打开网页",{"2":{"35":1,"36":1}}],["打开浏览器访问",{"2":{"25":1}}],["使用时请保留项目地址和版权信息",{"2":{"48":1}}],["使用说明",{"0":{"34":1},"1":{"35":1,"36":1,"37":1}}],["使用方法",{"0":{"25":1}}],["origin",{"2":{"42":1}}],["opt",{"2":{"32":1}}],["onedrive",{"2":{"30":1}}],["终端支持",{"2":{"30":1}}],["等",{"2":{"30":1}}],["协议",{"2":{"30":1}}],["容器部署",{"2":{"30":1}}],["保护隐私",{"2":{"30":1}}],["保护隐私的文件传输方式",{"2":{"29":1}}],["匿名分享",{"2":{"30":1}}],["匿名文件传输",{"2":{"29":1}}],["繁体及英文",{"2":{"30":1}}],["多语言支持",{"2":{"30":1}}],["多种类型",{"2":{"30":1}}],["可自定义次数及有效期",{"2":{"30":1}}],["可限制文件下载次数",{"2":{"21":1}}],["随机提取码",{"2":{"30":1}}],["错误次数限制",{"2":{"30":1}}],["错误响应",{"0":{"17":1}}],["限制上传次数",{"2":{"30":1}}],["操作简单直观",{"2":{"30":1}}],["拖拽上传",{"2":{"30":1}}],["便捷上传",{"2":{"30":1}}],["性能出色",{"2":{"30":1}}],["轻量简洁",{"2":{"30":1}}],["✨",{"0":{"30":1}}],["搭建私有的文件分享服务",{"2":{"29":1}}],["小型分享服务",{"2":{"29":1}}],["🎭",{"2":{"30":1}}],["🌍",{"2":{"30":1}}],["🎫",{"2":{"30":1}}],["🌐",{"2":{"29":1}}],["🎯",{"0":{"29":1}}],["跨平台传输",{"2":{"29":1}}],["临时文件存储",{"2":{"29":1}}],["临时文件分享",{"2":{"29":1}}],["无需注册登录",{"2":{"29":1,"30":1}}],["就像从快递柜取出快递一样简单",{"2":{"28":1}}],["接收者只需要一个提取码就可以取得文件",{"2":{"28":1}}],["它允许用户通过简单的方式分享文本和文件",{"2":{"28":1}}],["+",{"2":{"28":1,"30":3}}],["feature",{"2":{"42":2}}],["fork",{"2":{"42":1}}],["fronted",{"2":{"39":1,"41":1}}],["fcb",{"2":{"39":1,"41":1}}],["fastapi",{"2":{"28":1,"30":1,"40":1}}],["file",{"2":{"6":3,"13":1,"14":1}}],["filecodebox2023",{"2":{"25":1}}],["filecodebox",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"20":2,"23":2,"24":2,"28":1,"32":3,"33":2,"39":1}}],["新建目录",{"2":{"27":1}}],["存储扩展",{"2":{"30":1}}],["存储支持自定义路径",{"2":{"27":1}}],["存储配置",{"2":{"26":1}}],["xxx",{"2":{"42":3}}],["x",{"2":{"27":3}}],["x3c",{"2":{"3":1}}],["用户登录重构",{"2":{"27":1}}],["用户管理等",{"2":{"25":1}}],["断点续传",{"2":{"27":1}}],["同文件秒传",{"2":{"27":1}}],["切片上传",{"2":{"27":1}}],["集成",{"2":{"26":1}}],["了解如何通过",{"2":{"26":1}}],["了解如何增强系统安全性",{"2":{"26":1}}],["了解如何配置不同的存储方式",{"2":{"26":1}}],["下一步",{"0":{"26":1}}],["下载限制",{"2":{"21":1}}],["下载密钥",{"2":{"9":1}}],["下载分享的文件",{"2":{"9":1}}],["下载文件或查看文本",{"2":{"36":1}}],["下载文件",{"0":{"9":1},"2":{"25":2}}],["查看系统信息",{"2":{"25":1}}],["进入后台管理页面",{"2":{"25":1}}],["进行认证",{"2":{"3":1}}],["输入管理员密码",{"2":{"25":1,"37":1}}],["输入提取码",{"2":{"25":1,"36":1}}],["访问",{"2":{"25":1,"37":1}}],["访问分享链接",{"2":{"25":1}}],["访问系统",{"2":{"25":1}}],["上传文件",{"2":{"25":1}}],["上传并分享文件",{"2":{"6":1}}],["启动服务",{"2":{"24":1,"33":1}}],["request",{"2":{"42":1}}],["requirements",{"2":{"24":1,"33":1}}],["restart=always",{"2":{"32":1}}],["r",{"2":{"24":1,"33":1}}],["run",{"2":{"23":1,"32":1,"41":1}}],["安全机制",{"2":{"30":1}}],["安全设置",{"2":{"26":1}}],["安全可靠",{"2":{"21":1}}],["安装依赖",{"2":{"24":1,"33":1}}],["git",{"2":{"24":1,"33":1,"42":3}}],["github",{"2":{"24":1,"33":1}}],["get",{"2":{"7":1,"9":1,"12":1,"13":1,"15":2}}],["http",{"2":{"25":2}}],["https",{"2":{"24":1,"33":1}}],["hour",{"2":{"5":1,"6":1}}],["克隆项目",{"2":{"24":1,"33":1}}],["手动部署",{"0":{"24":1,"33":1}}],["vue",{"2":{"40":1}}],["vue3",{"2":{"28":1,"30":1}}],["vastsa",{"2":{"23":1,"24":1,"33":1}}],["value",{"2":{"5":1,"6":1,"17":1}}],["v",{"2":{"23":1,"32":1}}],["部署简单",{"2":{"30":1}}],["部署",{"0":{"23":1,"32":1}}],["部署方式",{"0":{"22":1},"1":{"23":1,"24":1}}],["部分接口需要在请求头中携带",{"2":{"3":1}}],["完美适配移动端和桌面端",{"2":{"21":1}}],["响应式设计",{"2":{"21":1,"30":1}}],["响应示例",{"2":{"5":1,"6":1,"7":1,"8":1,"12":1,"13":1}}],["音频等多种格式预览",{"2":{"21":1}}],["视频",{"2":{"21":1}}],["时效控制",{"2":{"21":1}}],["⏱️",{"2":{"21":1}}],["📜",{"0":{"48":1}}],["📖",{"0":{"34":1},"1":{"35":1,"36":1,"37":1}}],["💻",{"2":{"30":1}}],["🐳",{"2":{"30":1}}],["🛠",{"0":{"38":1},"1":{"39":1,"40":1,"41":1},"2":{"30":1}}],["📦",{"2":{"30":1}}],["📤",{"2":{"30":1}}],["🔄",{"2":{"29":1}}],["💾",{"2":{"29":1,"30":1}}],["🕶️",{"2":{"29":1}}],["📁",{"2":{"29":1}}],["📝",{"0":{"28":1},"2":{"29":1}}],["📱",{"2":{"21":1,"30":1}}],["🖼️",{"2":{"21":1}}],["📊",{"0":{"47":1},"2":{"21":1}}],["🔒",{"2":{"21":1,"30":1}}],["🚀",{"0":{"27":1,"31":1},"1":{"32":1,"33":1},"2":{"21":1,"30":1}}],["一键部署",{"2":{"21":1,"30":1}}],["支持命令行下载",{"2":{"30":1}}],["支持移动端访问",{"2":{"30":1}}],["支持本地存储",{"2":{"30":1}}],["支持中文简体",{"2":{"30":1}}],["支持文本和各类文件的分享",{"2":{"30":1}}],["支持文件临时中转",{"2":{"20":1}}],["支持复制粘贴",{"2":{"30":1}}],["支持设置过期时间的文件存储",{"2":{"29":1}}],["支持设置文件有效期",{"2":{"21":1}}],["支持图片",{"2":{"21":1}}],["支持",{"2":{"21":1,"30":1}}],["快速分享单个文件",{"2":{"29":1}}],["快速部署",{"2":{"21":1}}],["快速开始",{"0":{"19":1,"31":1},"1":{"20":1,"21":1,"22":1,"23":1,"24":1,"25":1,"26":1,"32":1,"33":1}}],["特性",{"0":{"21":1}}],["简介",{"0":{"20":1}}],["服务器内部错误",{"2":{"18":1}}],["资源不存在",{"2":{"18":1}}],["禁止访问",{"2":{"18":1}}],["未授权",{"2":{"18":1}}],["404",{"2":{"18":1}}],["403",{"2":{"18":1}}],["401",{"2":{"18":1}}],["422",{"2":{"17":1,"18":1}}],["请求成功",{"2":{"18":1}}],["请求参数验证错误",{"2":{"18":1}}],["请求参数",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"11":1,"13":1,"14":1}}],["状态码说明",{"0":{"18":1}}],["elementui",{"2":{"30":1}}],["error",{"2":{"17":1}}],["example",{"2":{"6":1,"7":1,"8":1,"13":1}}],["expire",{"2":{"5":2,"6":2}}],["密码不能为空",{"2":{"17":1}}],["b",{"2":{"42":1}}],["base",{"2":{"39":1}}],["bashcd",{"2":{"33":1,"41":1}}],["bashpython",{"2":{"24":1,"33":1,"41":1}}],["bashpip",{"2":{"24":1}}],["bashgit",{"2":{"24":1,"33":1}}],["bashdocker",{"2":{"23":1,"32":1}}],["beta",{"2":{"32":1}}],["bearer",{"2":{"3":1}}],["body",{"2":{"17":1}}],["当发生错误时",{"2":{"17":1}}],["当前页码",{"2":{"13":1}}],["删除系统中的文件",{"2":{"14":1}}],["删除文件",{"0":{"14":1}}],["checkout",{"2":{"42":1}}],["cd",{"2":{"24":1}}],["clone",{"2":{"24":1,"33":1}}],["core",{"2":{"39":1}}],["commit",{"2":{"42":1}}],["com",{"2":{"24":1,"33":1}}],["config",{"2":{"15":1,"16":1}}],["code",{"2":{"5":2,"6":2,"7":3,"8":3,"9":1,"12":1,"13":1,"17":1}}],["created",{"2":{"13":1}}],["ip",{"2":{"30":1}}],["install",{"2":{"24":1,"33":1,"41":1}}],["integer",{"2":{"5":1,"6":1,"13":2,"14":1}}],["id",{"2":{"13":1,"14":1}}],["搜索关键词",{"2":{"13":1}}],["每页数量",{"2":{"13":1}}],["lanol",{"2":{"32":1}}],["localhost",{"2":{"25":2}}],["loc",{"2":{"17":1}}],["login",{"2":{"11":1}}],["list",{"2":{"13":1}}],["yesterdaysize",{"2":{"12":1}}],["yesterdaycount",{"2":{"12":1}}],["500",{"2":{"18":1}}],["500mb",{"2":{"12":1}}],["50",{"2":{"12":1}}],["5gb",{"2":{"12":1}}],["仪表盘数据",{"0":{"12":1}}],["pull",{"2":{"42":1}}],["push",{"2":{"42":1}}],["pip",{"2":{"33":1}}],["python",{"2":{"40":1}}],["py",{"2":{"24":1,"33":1,"41":1}}],["p",{"2":{"23":1,"32":1}}],["path",{"2":{"23":1}}],["patch",{"2":{"16":1}}],["page",{"2":{"13":2}}],["password",{"2":{"11":1,"17":1}}],["post",{"2":{"5":1,"6":1,"8":1,"11":1}}],["管理后台",{"2":{"39":1}}],["管理文件和配置",{"2":{"37":1}}],["管理面板",{"0":{"37":1},"2":{"30":1}}],["管理员密码",{"2":{"11":1}}],["管理员登录获取token",{"2":{"11":1}}],["管理员登录",{"0":{"11":1}}],["管理接口",{"0":{"10":1},"1":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1},"2":{"2":1}}],["keyword",{"2":{"13":1}}],["key",{"2":{"9":1}}],["通过分享码选择文件",{"2":{"8":1}}],["通过分享码获取文件信息",{"2":{"7":1}}],["文本内容等",{"2":{"29":1}}],["文本快速分享",{"2":{"29":1}}],["文件管理和系统配置",{"2":{"30":1}}],["文件过期机制",{"2":{"30":1}}],["文件预览",{"2":{"21":1}}],["文件访问需要提取码",{"2":{"21":1}}],["文件id",{"2":{"14":1}}],["文件列表",{"0":{"13":1},"2":{"25":1}}],["文件内容或下载链接",{"2":{"7":1,"8":1}}],["文件分享码",{"2":{"7":1,"8":1,"9":1}}],["文档",{"0":{"0":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"26":1}}],["获取文件",{"0":{"36":1}}],["获取文件信息",{"0":{"7":1}}],["获取提取码",{"2":{"35":1}}],["获取分享链接和提取码",{"2":{"25":1}}],["获取分享码",{"2":{"5":1,"6":1}}],["获取配置",{"0":{"15":1}}],["获取系统配置信息",{"2":{"15":1}}],["获取系统中的文件列表",{"2":{"13":1}}],["获取系统仪表盘数据",{"2":{"12":1}}],["要上传的文件",{"2":{"6":1}}],["要分享的文本内容",{"2":{"5":1}}],["d",{"2":{"23":1,"32":1}}],["docker",{"0":{"23":1,"32":1},"2":{"21":1,"30":1}}],["download",{"2":{"9":1}}],["dev",{"2":{"41":1}}],["delete",{"2":{"14":2}}],["detail",{"2":{"5":1,"6":1,"7":1,"8":1,"12":1,"13":1,"17":1}}],["data",{"2":{"13":1,"23":2,"32":1,"39":1,"46":1}}],["dashboard",{"2":{"12":1}}],["day",{"2":{"5":2,"6":2}}],["m",{"2":{"42":1}}],["main",{"2":{"24":1,"33":1,"41":1}}],["msg",{"2":{"5":1,"6":1,"7":1,"8":1,"12":1,"13":1,"17":1}}],["minute",{"2":{"5":1,"6":1}}],["过期时间单位",{"2":{"5":1,"6":1}}],["过期时间值",{"2":{"5":1,"6":1}}],["否则后果自负",{"2":{"48":1}}],["否",{"2":{"5":2,"6":2,"13":3}}],["是一个基于",{"2":{"28":1}}],["是一个简单高效的文件分享工具",{"2":{"20":1}}],["是",{"2":{"5":1,"6":1,"7":1,"8":1,"9":2,"11":1,"14":1}}],["s3",{"2":{"30":1}}],["s3优化",{"2":{"27":1}}],["sqlite3",{"2":{"30":1}}],["sysuptime",{"2":{"12":1}}],["size",{"2":{"7":1,"8":1,"13":3}}],["select",{"2":{"7":1,"8":1}}],["success",{"2":{"5":1,"6":1,"7":1,"8":1,"12":1,"13":1}}],["storageused",{"2":{"12":1}}],["style",{"2":{"5":1,"6":1}}],["string",{"2":{"5":2,"6":1,"7":1,"8":1,"9":2,"11":1,"13":1}}],["share",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1}}],["描述",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"11":1,"13":1,"14":1}}],["默认值",{"2":{"5":1,"6":1,"13":1}}],["必填",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"11":1,"13":1,"14":1}}],["类型",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"11":1,"13":1,"14":1}}],["参数名",{"2":{"5":1,"6":1,"7":1,"8":1,"9":1,"11":1,"13":1,"14":1}}],["type",{"2":{"17":1}}],["to",{"2":{"23":1}}],["total",{"2":{"13":1}}],["totalfiles",{"2":{"12":1}}],["todaysize",{"2":{"12":1}}],["todaycount",{"2":{"12":1}}],["token>",{"2":{"3":1}}],["txt",{"2":{"5":1,"6":1,"7":1,"8":1,"13":1,"24":1,"33":1}}],["text",{"2":{"5":3,"7":1,"8":1}}],["分享代码片段",{"2":{"29":1}}],["分享和管理",{"2":{"20":1}}],["分享文件",{"0":{"6":1,"35":1},"2":{"35":1}}],["分享文本内容",{"2":{"5":1}}],["分享文本",{"0":{"5":1}}],["分享接口",{"0":{"4":1},"1":{"5":1,"6":1,"7":1,"8":1,"9":1},"2":{"2":1}}],["a",{"2":{"44":1,"45":1,"46":1}}],["add",{"2":{"42":1}}],["admin",{"2":{"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"25":1,"37":1,"39":1}}],["apps",{"2":{"39":1}}],["app",{"2":{"23":1,"32":1}}],["api会返回对应的错误信息",{"2":{"17":1}}],["api",{"0":{"0":1,"1":1},"1":{"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":1,"14":1,"15":1,"16":1,"17":1,"18":1},"2":{"26":2}}],["at",{"2":{"13":1}}],["abc123",{"2":{"5":1,"6":1,"7":1,"8":1}}],["authorization",{"2":{"3":2}}],["认证",{"0":{"3":1},"2":{"2":1}}],["目录即可",{"2":{"46":1}}],["目录",{"0":{"2":1}}],["00",{"2":{"13":2}}],["01",{"2":{"13":2}}],["0",{"0":{"1":1}}],["14+",{"2":{"40":1}}],["12345",{"2":{"23":2,"25":2,"32":2}}],["12",{"2":{"13":1}}],["10",{"2":{"13":2}}],["10天",{"2":{"12":1}}],["100",{"2":{"12":1,"13":1}}],["1024",{"2":{"7":1,"8":1,"13":1}}],["1",{"0":{"1":1},"2":{"5":1,"6":1,"12":1,"13":3}}],["2024",{"2":{"13":1}}],["200",{"2":{"5":1,"6":1,"7":1,"8":1,"12":1,"13":1,"18":1}}],["2",{"0":{"1":1}}],["版本",{"0":{"1":1}}]],"serializationVersion":2}';export{t as default}; diff --git a/docs/.vitepress/dist/assets/chunks/VPLocalSearchBox.CXWeCdCl.js b/docs/.vitepress/dist/assets/chunks/VPLocalSearchBox.CXWeCdCl.js deleted file mode 100644 index 25b2e9cd..00000000 --- a/docs/.vitepress/dist/assets/chunks/VPLocalSearchBox.CXWeCdCl.js +++ /dev/null @@ -1,8 +0,0 @@ -var Ft=Object.defineProperty;var Rt=(a,e,t)=>e in a?Ft(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var Ae=(a,e,t)=>Rt(a,typeof e!="symbol"?e+"":e,t);import{V as tt,p as ie,h as ve,ah as nt,ai as Ct,aj as At,ak as Mt,q as $e,al as Lt,d as Dt,D as xe,am as st,an as zt,ao as Pt,s as jt,ap as Vt,v as Me,P as fe,O as _e,aq as $t,ar as Bt,W as Wt,R as Kt,$ as Jt,b as qt,o as H,j as _,a0 as Ut,as as Gt,k as L,at as Ht,au as Qt,c as Z,e as Se,n as it,B as rt,F as at,a as he,t as pe,av as Yt,aw as ot,ax as Zt,a5 as Xt,aa as en,ay as tn,_ as nn}from"./framework.BmLMQRXF.js";import{u as sn,c as rn}from"./theme.BNBC0yme.js";const an={root:()=>tt(()=>import("./@localSearchIndexroot.B_6o4xXK.js"),[]),en:()=>tt(()=>import("./@localSearchIndexen.CIWkF5hn.js"),[])};/*! -* tabbable 6.2.0 -* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE -*/var gt=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Ne=gt.join(","),bt=typeof Element>"u",ae=bt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Oe=!bt&&Element.prototype.getRootNode?function(a){var e;return a==null||(e=a.getRootNode)===null||e===void 0?void 0:e.call(a)}:function(a){return a==null?void 0:a.ownerDocument},Fe=function a(e,t){var n;t===void 0&&(t=!0);var s=e==null||(n=e.getAttribute)===null||n===void 0?void 0:n.call(e,"inert"),r=s===""||s==="true",i=r||t&&e&&a(e.parentNode);return i},on=function(e){var t,n=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return n===""||n==="true"},yt=function(e,t,n){if(Fe(e))return[];var s=Array.prototype.slice.apply(e.querySelectorAll(Ne));return t&&ae.call(e,Ne)&&s.unshift(e),s=s.filter(n),s},wt=function a(e,t,n){for(var s=[],r=Array.from(e);r.length;){var i=r.shift();if(!Fe(i,!1))if(i.tagName==="SLOT"){var o=i.assignedElements(),l=o.length?o:i.children,c=a(l,!0,n);n.flatten?s.push.apply(s,c):s.push({scopeParent:i,candidates:c})}else{var f=ae.call(i,Ne);f&&n.filter(i)&&(t||!e.includes(i))&&s.push(i);var v=i.shadowRoot||typeof n.getShadowRoot=="function"&&n.getShadowRoot(i),h=!Fe(v,!1)&&(!n.shadowRootFilter||n.shadowRootFilter(i));if(v&&h){var b=a(v===!0?i.children:v.children,!0,n);n.flatten?s.push.apply(s,b):s.push({scopeParent:i,candidates:b})}else r.unshift.apply(r,i.children)}}return s},xt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},re=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||on(e))&&!xt(e)?0:e.tabIndex},ln=function(e,t){var n=re(e);return n<0&&t&&!xt(e)?0:n},cn=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},_t=function(e){return e.tagName==="INPUT"},un=function(e){return _t(e)&&e.type==="hidden"},dn=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(n){return n.tagName==="SUMMARY"});return t},fn=function(e,t){for(var n=0;nsummary:first-of-type"),i=r?e.parentElement:e;if(ae.call(i,"details:not([open]) *"))return!0;if(!n||n==="full"||n==="legacy-full"){if(typeof s=="function"){for(var o=e;e;){var l=e.parentElement,c=Oe(e);if(l&&!l.shadowRoot&&s(l)===!0)return lt(e);e.assignedSlot?e=e.assignedSlot:!l&&c!==e.ownerDocument?e=c.host:e=l}e=o}if(vn(e))return!e.getClientRects().length;if(n!=="legacy-full")return!0}else if(n==="non-zero-area")return lt(e);return!1},bn=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var n=0;n=0)},wn=function a(e){var t=[],n=[];return e.forEach(function(s,r){var i=!!s.scopeParent,o=i?s.scopeParent:s,l=ln(o,i),c=i?a(s.candidates):o;l===0?i?t.push.apply(t,c):t.push(o):n.push({documentOrder:r,tabIndex:l,item:s,isScope:i,content:c})}),n.sort(cn).reduce(function(s,r){return r.isScope?s.push.apply(s,r.content):s.push(r.content),s},[]).concat(t)},xn=function(e,t){t=t||{};var n;return t.getShadowRoot?n=wt([e],t.includeContainer,{filter:Be.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:yn}):n=yt(e,t.includeContainer,Be.bind(null,t)),wn(n)},_n=function(e,t){t=t||{};var n;return t.getShadowRoot?n=wt([e],t.includeContainer,{filter:Re.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):n=yt(e,t.includeContainer,Re.bind(null,t)),n},oe=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,Ne)===!1?!1:Be(t,e)},Sn=gt.concat("iframe").join(","),Le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ae.call(e,Sn)===!1?!1:Re(t,e)};/*! -* focus-trap 7.6.4 -* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE -*/function We(a,e){(e==null||e>a.length)&&(e=a.length);for(var t=0,n=Array(e);t0){var n=e[e.length-1];n!==t&&n._setPausedState(!0)}var s=e.indexOf(t);s===-1||e.splice(s,1),e.push(t)},deactivateTrap:function(e,t){var n=e.indexOf(t);n!==-1&&e.splice(n,1),e.length>0&&!e[e.length-1]._isManuallyPaused()&&e[e.length-1]._setPausedState(!1)}},Cn=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},An=function(e){return(e==null?void 0:e.key)==="Escape"||(e==null?void 0:e.key)==="Esc"||(e==null?void 0:e.keyCode)===27},ge=function(e){return(e==null?void 0:e.key)==="Tab"||(e==null?void 0:e.keyCode)===9},Mn=function(e){return ge(e)&&!e.shiftKey},Ln=function(e){return ge(e)&&e.shiftKey},ft=function(e){return setTimeout(e,0)},me=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),s=1;s1&&arguments[1]!==void 0?arguments[1]:{},g=d.hasFallback,E=g===void 0?!1:g,T=d.params,O=T===void 0?[]:T,S=r[u];if(typeof S=="function"&&(S=S.apply(void 0,Nn(O))),S===!0&&(S=void 0),!S){if(S===void 0||S===!1)return S;throw new Error("`".concat(u,"` was specified but was not a node, or did not return a node"))}var R=S;if(typeof S=="string"){try{R=n.querySelector(S)}catch(m){throw new Error("`".concat(u,'` appears to be an invalid selector; error="').concat(m.message,'"'))}if(!R&&!E)throw new Error("`".concat(u,"` as selector refers to no known node"))}return R},v=function(){var u=f("initialFocus",{hasFallback:!0});if(u===!1)return!1;if(u===void 0||u&&!Le(u,r.tabbableOptions))if(c(n.activeElement)>=0)u=n.activeElement;else{var d=i.tabbableGroups[0],g=d&&d.firstTabbableNode;u=g||f("fallbackFocus")}else u===null&&(u=f("fallbackFocus"));if(!u)throw new Error("Your focus-trap needs to have at least one focusable element");return u},h=function(){if(i.containerGroups=i.containers.map(function(u){var d=xn(u,r.tabbableOptions),g=_n(u,r.tabbableOptions),E=d.length>0?d[0]:void 0,T=d.length>0?d[d.length-1]:void 0,O=g.find(function(m){return oe(m)}),S=g.slice().reverse().find(function(m){return oe(m)}),R=!!d.find(function(m){return re(m)>0});return{container:u,tabbableNodes:d,focusableNodes:g,posTabIndexesFound:R,firstTabbableNode:E,lastTabbableNode:T,firstDomTabbableNode:O,lastDomTabbableNode:S,nextTabbableNode:function(p){var I=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,F=d.indexOf(p);return F<0?I?g.slice(g.indexOf(p)+1).find(function(z){return oe(z)}):g.slice(0,g.indexOf(p)).reverse().find(function(z){return oe(z)}):d[F+(I?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(u){return u.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!f("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(u){return u.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},b=function(u){var d=u.activeElement;if(d)return d.shadowRoot&&d.shadowRoot.activeElement!==null?b(d.shadowRoot):d},y=function(u){if(u!==!1&&u!==b(document)){if(!u||!u.focus){y(v());return}u.focus({preventScroll:!!r.preventScroll}),i.mostRecentlyFocusedNode=u,Cn(u)&&u.select()}},x=function(u){var d=f("setReturnFocus",{params:[u]});return d||(d===!1?!1:u)},w=function(u){var d=u.target,g=u.event,E=u.isBackward,T=E===void 0?!1:E;d=d||Ee(g),h();var O=null;if(i.tabbableGroups.length>0){var S=c(d,g),R=S>=0?i.containerGroups[S]:void 0;if(S<0)T?O=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:O=i.tabbableGroups[0].firstTabbableNode;else if(T){var m=i.tabbableGroups.findIndex(function(j){var k=j.firstTabbableNode;return d===k});if(m<0&&(R.container===d||Le(d,r.tabbableOptions)&&!oe(d,r.tabbableOptions)&&!R.nextTabbableNode(d,!1))&&(m=S),m>=0){var p=m===0?i.tabbableGroups.length-1:m-1,I=i.tabbableGroups[p];O=re(d)>=0?I.lastTabbableNode:I.lastDomTabbableNode}else ge(g)||(O=R.nextTabbableNode(d,!1))}else{var F=i.tabbableGroups.findIndex(function(j){var k=j.lastTabbableNode;return d===k});if(F<0&&(R.container===d||Le(d,r.tabbableOptions)&&!oe(d,r.tabbableOptions)&&!R.nextTabbableNode(d))&&(F=S),F>=0){var z=F===i.tabbableGroups.length-1?0:F+1,P=i.tabbableGroups[z];O=re(d)>=0?P.firstTabbableNode:P.firstDomTabbableNode}else ge(g)||(O=R.nextTabbableNode(d))}}else O=f("fallbackFocus");return O},C=function(u){var d=Ee(u);if(!(c(d,u)>=0)){if(me(r.clickOutsideDeactivates,u)){o.deactivate({returnFocus:r.returnFocusOnDeactivate});return}me(r.allowOutsideClick,u)||u.preventDefault()}},A=function(u){var d=Ee(u),g=c(d,u)>=0;if(g||d instanceof Document)g&&(i.mostRecentlyFocusedNode=d);else{u.stopImmediatePropagation();var E,T=!0;if(i.mostRecentlyFocusedNode)if(re(i.mostRecentlyFocusedNode)>0){var O=c(i.mostRecentlyFocusedNode),S=i.containerGroups[O].tabbableNodes;if(S.length>0){var R=S.findIndex(function(m){return m===i.mostRecentlyFocusedNode});R>=0&&(r.isKeyForward(i.recentNavEvent)?R+1=0&&(E=S[R-1],T=!1))}}else i.containerGroups.some(function(m){return m.tabbableNodes.some(function(p){return re(p)>0})})||(T=!1);else T=!1;T&&(E=w({target:i.mostRecentlyFocusedNode,isBackward:r.isKeyBackward(i.recentNavEvent)})),y(E||i.mostRecentlyFocusedNode||v())}i.recentNavEvent=void 0},J=function(u){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=u;var g=w({event:u,isBackward:d});g&&(ge(u)&&u.preventDefault(),y(g))},Q=function(u){(r.isKeyForward(u)||r.isKeyBackward(u))&&J(u,r.isKeyBackward(u))},W=function(u){An(u)&&me(r.escapeDeactivates,u)!==!1&&(u.preventDefault(),o.deactivate())},V=function(u){var d=Ee(u);c(d,u)>=0||me(r.clickOutsideDeactivates,u)||me(r.allowOutsideClick,u)||(u.preventDefault(),u.stopImmediatePropagation())},$=function(){if(i.active)return dt.activateTrap(s,o),i.delayInitialFocusTimer=r.delayInitialFocus?ft(function(){y(v())}):y(v()),n.addEventListener("focusin",A,!0),n.addEventListener("mousedown",C,{capture:!0,passive:!1}),n.addEventListener("touchstart",C,{capture:!0,passive:!1}),n.addEventListener("click",V,{capture:!0,passive:!1}),n.addEventListener("keydown",Q,{capture:!0,passive:!1}),n.addEventListener("keydown",W),o},be=function(){if(i.active)return n.removeEventListener("focusin",A,!0),n.removeEventListener("mousedown",C,!0),n.removeEventListener("touchstart",C,!0),n.removeEventListener("click",V,!0),n.removeEventListener("keydown",Q,!0),n.removeEventListener("keydown",W),o},M=function(u){var d=u.some(function(g){var E=Array.from(g.removedNodes);return E.some(function(T){return T===i.mostRecentlyFocusedNode})});d&&y(v())},q=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(M):void 0,U=function(){q&&(q.disconnect(),i.active&&!i.paused&&i.containers.map(function(u){q.observe(u,{subtree:!0,childList:!0})}))};return o={get active(){return i.active},get paused(){return i.paused},activate:function(u){if(i.active)return this;var d=l(u,"onActivate"),g=l(u,"onPostActivate"),E=l(u,"checkCanFocusTrap");E||h(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=n.activeElement,d==null||d();var T=function(){E&&h(),$(),U(),g==null||g()};return E?(E(i.containers.concat()).then(T,T),this):(T(),this)},deactivate:function(u){if(!i.active)return this;var d=ut({onDeactivate:r.onDeactivate,onPostDeactivate:r.onPostDeactivate,checkCanReturnFocus:r.checkCanReturnFocus},u);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,be(),i.active=!1,i.paused=!1,U(),dt.deactivateTrap(s,o);var g=l(d,"onDeactivate"),E=l(d,"onPostDeactivate"),T=l(d,"checkCanReturnFocus"),O=l(d,"returnFocus","returnFocusOnDeactivate");g==null||g();var S=function(){ft(function(){O&&y(x(i.nodeFocusedBeforeActivation)),E==null||E()})};return O&&T?(T(x(i.nodeFocusedBeforeActivation)).then(S,S),this):(S(),this)},pause:function(u){return i.active?(i.manuallyPaused=!0,this._setPausedState(!0,u)):this},unpause:function(u){return i.active?(i.manuallyPaused=!1,s[s.length-1]!==this?this:this._setPausedState(!1,u)):this},updateContainerElements:function(u){var d=[].concat(u).filter(Boolean);return i.containers=d.map(function(g){return typeof g=="string"?n.querySelector(g):g}),i.active&&h(),U(),this}},Object.defineProperties(o,{_isManuallyPaused:{value:function(){return i.manuallyPaused}},_setPausedState:{value:function(u,d){if(i.paused===u)return this;if(i.paused=u,u){var g=l(d,"onPause"),E=l(d,"onPostPause");g==null||g(),be(),U(),E==null||E()}else{var T=l(d,"onUnpause"),O=l(d,"onPostUnpause");T==null||T(),h(),$(),U(),O==null||O()}return this}}}),o.updateContainerElements(e),o};function Pn(a,e={}){let t;const{immediate:n,...s}=e,r=ie(!1),i=ie(!1),o=h=>t&&t.activate(h),l=h=>t&&t.deactivate(h),c=()=>{t&&(t.pause(),i.value=!0)},f=()=>{t&&(t.unpause(),i.value=!1)},v=ve(()=>{const h=nt(a);return Ct(h).map(b=>{const y=nt(b);return typeof y=="string"?y:At(y)}).filter(Mt)});return $e(v,h=>{h.length&&(t=zn(h,{...s,onActivate(){r.value=!0,e.onActivate&&e.onActivate()},onDeactivate(){r.value=!1,e.onDeactivate&&e.onDeactivate()}}),n&&o())},{flush:"post"}),Lt(()=>l()),{hasFocus:r,isPaused:i,activate:o,deactivate:l,pause:c,unpause:f}}class ce{constructor(e,t=!0,n=[],s=5e3){this.ctx=e,this.iframes=t,this.exclude=n,this.iframesTimeout=s}static matches(e,t){const n=typeof t=="string"?[t]:t,s=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(s){let r=!1;return n.every(i=>s.call(e,i)?(r=!0,!1):!0),r}else return!1}getContexts(){let e,t=[];return typeof this.ctx>"u"||!this.ctx?e=[]:NodeList.prototype.isPrototypeOf(this.ctx)?e=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?e=this.ctx:typeof this.ctx=="string"?e=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):e=[this.ctx],e.forEach(n=>{const s=t.filter(r=>r.contains(n)).length>0;t.indexOf(n)===-1&&!s&&t.push(n)}),t}getIframeContents(e,t,n=()=>{}){let s;try{const r=e.contentWindow;if(s=r.document,!r||!s)throw new Error("iframe inaccessible")}catch{n()}s&&t(s)}isIframeBlank(e){const t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}observeIframeLoad(e,t,n){let s=!1,r=null;const i=()=>{if(!s){s=!0,clearTimeout(r);try{this.isIframeBlank(e)||(e.removeEventListener("load",i),this.getIframeContents(e,t,n))}catch{n()}}};e.addEventListener("load",i),r=setTimeout(i,this.iframesTimeout)}onIframeReady(e,t,n){try{e.contentWindow.document.readyState==="complete"?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch{n()}}waitForIframes(e,t){let n=0;this.forEachIframe(e,()=>!0,s=>{n++,this.waitForIframes(s.querySelector("html"),()=>{--n||t()})},s=>{s||t()})}forEachIframe(e,t,n,s=()=>{}){let r=e.querySelectorAll("iframe"),i=r.length,o=0;r=Array.prototype.slice.call(r);const l=()=>{--i<=0&&s(o)};i||l(),r.forEach(c=>{ce.matches(c,this.exclude)?l():this.onIframeReady(c,f=>{t(c)&&(o++,n(f)),l()},l)})}createIterator(e,t,n){return document.createNodeIterator(e,t,n,!1)}createInstanceOnIframe(e){return new ce(e.querySelector("html"),this.iframes)}compareNodeIframe(e,t,n){const s=e.compareDocumentPosition(n),r=Node.DOCUMENT_POSITION_PRECEDING;if(s&r)if(t!==null){const i=t.compareDocumentPosition(n),o=Node.DOCUMENT_POSITION_FOLLOWING;if(i&o)return!0}else return!0;return!1}getIteratorNode(e){const t=e.previousNode();let n;return t===null?n=e.nextNode():n=e.nextNode()&&e.nextNode(),{prevNode:t,node:n}}checkIframeFilter(e,t,n,s){let r=!1,i=!1;return s.forEach((o,l)=>{o.val===n&&(r=l,i=o.handled)}),this.compareNodeIframe(e,t,n)?(r===!1&&!i?s.push({val:n,handled:!0}):r!==!1&&!i&&(s[r].handled=!0),!0):(r===!1&&s.push({val:n,handled:!1}),!1)}handleOpenIframes(e,t,n,s){e.forEach(r=>{r.handled||this.getIframeContents(r.val,i=>{this.createInstanceOnIframe(i).forEachNode(t,n,s)})})}iterateThroughNodes(e,t,n,s,r){const i=this.createIterator(t,e,s);let o=[],l=[],c,f,v=()=>({prevNode:f,node:c}=this.getIteratorNode(i),c);for(;v();)this.iframes&&this.forEachIframe(t,h=>this.checkIframeFilter(c,f,h,o),h=>{this.createInstanceOnIframe(h).forEachNode(e,b=>l.push(b),s)}),l.push(c);l.forEach(h=>{n(h)}),this.iframes&&this.handleOpenIframes(o,e,n,s),r()}forEachNode(e,t,n,s=()=>{}){const r=this.getContexts();let i=r.length;i||s(),r.forEach(o=>{const l=()=>{this.iterateThroughNodes(e,o,t,n,()=>{--i<=0&&s()})};this.iframes?this.waitForIframes(o,l):l()})}}let jn=class{constructor(e){this.ctx=e,this.ie=!1;const t=window.navigator.userAgent;(t.indexOf("MSIE")>-1||t.indexOf("Trident")>-1)&&(this.ie=!0)}set opt(e){this._opt=Object.assign({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:()=>{},noMatch:()=>{},filter:()=>!0,done:()=>{},debug:!1,log:window.console},e)}get opt(){return this._opt}get iterator(){return new ce(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}log(e,t="debug"){const n=this.opt.log;this.opt.debug&&typeof n=="object"&&typeof n[t]=="function"&&n[t](`mark.js: ${e}`)}escapeStr(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}createRegExp(e){return this.opt.wildcards!=="disabled"&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),this.opt.wildcards!=="disabled"&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),e}createSynonymsRegExp(e){const t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",s=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(let r in t)if(t.hasOwnProperty(r)){const i=t[r],o=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(r):this.escapeStr(r),l=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(i):this.escapeStr(i);o!==""&&l!==""&&(e=e.replace(new RegExp(`(${this.escapeStr(o)}|${this.escapeStr(l)})`,`gm${n}`),s+`(${this.processSynomyms(o)}|${this.processSynomyms(l)})`+s))}return e}processSynomyms(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}setupWildcardsRegExp(e){return e=e.replace(/(?:\\)*\?/g,t=>t.charAt(0)==="\\"?"?":""),e.replace(/(?:\\)*\*/g,t=>t.charAt(0)==="\\"?"*":"")}createWildcardsRegExp(e){let t=this.opt.wildcards==="withSpaces";return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}setupIgnoreJoinersRegExp(e){return e.replace(/[^(|)\\]/g,(t,n,s)=>{let r=s.charAt(n+1);return/[(|)\\]/.test(r)||r===""?t:t+"\0"})}createJoinersRegExp(e){let t=[];const n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join(`[${t.join("")}]*`):e}createDiacriticsRegExp(e){const t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"];let s=[];return e.split("").forEach(r=>{n.every(i=>{if(i.indexOf(r)!==-1){if(s.indexOf(i)>-1)return!1;e=e.replace(new RegExp(`[${i}]`,`gm${t}`),`[${i}]`),s.push(i)}return!0})}),e}createMergedBlanksRegExp(e){return e.replace(/[\s]+/gmi,"[\\s]+")}createAccuracyRegExp(e){const t="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿";let n=this.opt.accuracy,s=typeof n=="string"?n:n.value,r=typeof n=="string"?[]:n.limiters,i="";switch(r.forEach(o=>{i+=`|${this.escapeStr(o)}`}),s){case"partially":default:return`()(${e})`;case"complementary":return i="\\s"+(i||this.escapeStr(t)),`()([^${i}]*${e}[^${i}]*)`;case"exactly":return`(^|\\s${i})(${e})(?=$|\\s${i})`}}getSeparatedKeywords(e){let t=[];return e.forEach(n=>{this.opt.separateWordSearch?n.split(" ").forEach(s=>{s.trim()&&t.indexOf(s)===-1&&t.push(s)}):n.trim()&&t.indexOf(n)===-1&&t.push(n)}),{keywords:t.sort((n,s)=>s.length-n.length),length:t.length}}isNumeric(e){return Number(parseFloat(e))==e}checkRanges(e){if(!Array.isArray(e)||Object.prototype.toString.call(e[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];const t=[];let n=0;return e.sort((s,r)=>s.start-r.start).forEach(s=>{let{start:r,end:i,valid:o}=this.callNoMatchOnInvalidRanges(s,n);o&&(s.start=r,s.length=i-r,t.push(s),n=i)}),t}callNoMatchOnInvalidRanges(e,t){let n,s,r=!1;return e&&typeof e.start<"u"?(n=parseInt(e.start,10),s=n+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&s-t>0&&s-n>0?r=!0:(this.log(`Ignoring invalid or overlapping range: ${JSON.stringify(e)}`),this.opt.noMatch(e))):(this.log(`Ignoring invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)),{start:n,end:s,valid:r}}checkWhitespaceRanges(e,t,n){let s,r=!0,i=n.length,o=t-i,l=parseInt(e.start,10)-o;return l=l>i?i:l,s=l+parseInt(e.length,10),s>i&&(s=i,this.log(`End range automatically set to the max value of ${i}`)),l<0||s-l<0||l>i||s>i?(r=!1,this.log(`Invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)):n.substring(l,s).replace(/\s+/g,"")===""&&(r=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:l,end:s,valid:r}}getTextNodes(e){let t="",n=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,s=>{n.push({start:t.length,end:(t+=s.textContent).length,node:s})},s=>this.matchesExclude(s.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT,()=>{e({value:t,nodes:n})})}matchesExclude(e){return ce.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}wrapRangeInTextNode(e,t,n){const s=this.opt.element?this.opt.element:"mark",r=e.splitText(t),i=r.splitText(n-t);let o=document.createElement(s);return o.setAttribute("data-markjs","true"),this.opt.className&&o.setAttribute("class",this.opt.className),o.textContent=r.textContent,r.parentNode.replaceChild(o,r),i}wrapRangeInMappedTextNode(e,t,n,s,r){e.nodes.every((i,o)=>{const l=e.nodes[o+1];if(typeof l>"u"||l.start>t){if(!s(i.node))return!1;const c=t-i.start,f=(n>i.end?i.end:n)-i.start,v=e.value.substr(0,i.start),h=e.value.substr(f+i.start);if(i.node=this.wrapRangeInTextNode(i.node,c,f),e.value=v+h,e.nodes.forEach((b,y)=>{y>=o&&(e.nodes[y].start>0&&y!==o&&(e.nodes[y].start-=f),e.nodes[y].end-=f)}),n-=f,r(i.node.previousSibling,i.start),n>i.end)t=i.end;else return!1}return!0})}wrapMatches(e,t,n,s,r){const i=t===0?0:t+1;this.getTextNodes(o=>{o.nodes.forEach(l=>{l=l.node;let c;for(;(c=e.exec(l.textContent))!==null&&c[i]!=="";){if(!n(c[i],l))continue;let f=c.index;if(i!==0)for(let v=1;v{let l;for(;(l=e.exec(o.value))!==null&&l[i]!=="";){let c=l.index;if(i!==0)for(let v=1;vn(l[i],v),(v,h)=>{e.lastIndex=h,s(v)})}r()})}wrapRangeFromIndex(e,t,n,s){this.getTextNodes(r=>{const i=r.value.length;e.forEach((o,l)=>{let{start:c,end:f,valid:v}=this.checkWhitespaceRanges(o,i,r.value);v&&this.wrapRangeInMappedTextNode(r,c,f,h=>t(h,o,r.value.substring(c,f),l),h=>{n(h,o)})}),s()})}unwrapMatches(e){const t=e.parentNode;let n=document.createDocumentFragment();for(;e.firstChild;)n.appendChild(e.removeChild(e.firstChild));t.replaceChild(n,e),this.ie?this.normalizeTextNode(t):t.normalize()}normalizeTextNode(e){if(e){if(e.nodeType===3)for(;e.nextSibling&&e.nextSibling.nodeType===3;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}markRegExp(e,t){this.opt=t,this.log(`Searching with expression "${e}"`);let n=0,s="wrapMatches";const r=i=>{n++,this.opt.each(i)};this.opt.acrossElements&&(s="wrapMatchesAcrossElements"),this[s](e,this.opt.ignoreGroups,(i,o)=>this.opt.filter(o,i,n),r,()=>{n===0&&this.opt.noMatch(e),this.opt.done(n)})}mark(e,t){this.opt=t;let n=0,s="wrapMatches";const{keywords:r,length:i}=this.getSeparatedKeywords(typeof e=="string"?[e]:e),o=this.opt.caseSensitive?"":"i",l=c=>{let f=new RegExp(this.createRegExp(c),`gm${o}`),v=0;this.log(`Searching with expression "${f}"`),this[s](f,1,(h,b)=>this.opt.filter(b,c,n,v),h=>{v++,n++,this.opt.each(h)},()=>{v===0&&this.opt.noMatch(c),r[i-1]===c?this.opt.done(n):l(r[r.indexOf(c)+1])})};this.opt.acrossElements&&(s="wrapMatchesAcrossElements"),i===0?this.opt.done(n):l(r[0])}markRanges(e,t){this.opt=t;let n=0,s=this.checkRanges(e);s&&s.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(s)),this.wrapRangeFromIndex(s,(r,i,o,l)=>this.opt.filter(r,i,o,l),(r,i)=>{n++,this.opt.each(r,i)},()=>{this.opt.done(n)})):this.opt.done(n)}unmark(e){this.opt=e;let t=this.opt.element?this.opt.element:"*";t+="[data-markjs]",this.opt.className&&(t+=`.${this.opt.className}`),this.log(`Removal selector "${t}"`),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,n=>{this.unwrapMatches(n)},n=>{const s=ce.matches(n,t),r=this.matchesExclude(n);return!s||r?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},this.opt.done)}};function Vn(a){const e=new jn(a);return this.mark=(t,n)=>(e.mark(t,n),this),this.markRegExp=(t,n)=>(e.markRegExp(t,n),this),this.markRanges=(t,n)=>(e.markRanges(t,n),this),this.unmark=t=>(e.unmark(t),this),this}function ke(a,e,t,n){function s(r){return r instanceof t?r:new t(function(i){i(r)})}return new(t||(t=Promise))(function(r,i){function o(f){try{c(n.next(f))}catch(v){i(v)}}function l(f){try{c(n.throw(f))}catch(v){i(v)}}function c(f){f.done?r(f.value):s(f.value).then(o,l)}c((n=n.apply(a,[])).next())})}const $n="ENTRIES",St="KEYS",Et="VALUES",D="";class De{constructor(e,t){const n=e._tree,s=Array.from(n.keys());this.set=e,this._type=t,this._path=s.length>0?[{node:n,keys:s}]:[]}next(){const e=this.dive();return this.backtrack(),e}dive(){if(this._path.length===0)return{done:!0,value:void 0};const{node:e,keys:t}=le(this._path);if(le(t)===D)return{done:!1,value:this.result()};const n=e.get(le(t));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()}backtrack(){if(this._path.length===0)return;const e=le(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}key(){return this.set._prefix+this._path.map(({keys:e})=>le(e)).filter(e=>e!==D).join("")}value(){return le(this._path).node.get(D)}result(){switch(this._type){case Et:return this.value();case St:return this.key();default:return[this.key(),this.value()]}}[Symbol.iterator](){return this}}const le=a=>a[a.length-1],Bn=(a,e,t)=>{const n=new Map;if(e===void 0)return n;const s=e.length+1,r=s+t,i=new Uint8Array(r*s).fill(t+1);for(let o=0;o{const l=r*i;e:for(const c of a.keys())if(c===D){const f=s[l-1];f<=t&&n.set(o,[a.get(c),f])}else{let f=r;for(let v=0;vt)continue e}Tt(a.get(c),e,t,n,s,f,i,o+c)}};class X{constructor(e=new Map,t=""){this._size=void 0,this._tree=e,this._prefix=t}atPrefix(e){if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");const[t,n]=Ce(this._tree,e.slice(this._prefix.length));if(t===void 0){const[s,r]=Ue(n);for(const i of s.keys())if(i!==D&&i.startsWith(r)){const o=new Map;return o.set(i.slice(r.length),s.get(i)),new X(o,e)}}return new X(t,e)}clear(){this._size=void 0,this._tree.clear()}delete(e){return this._size=void 0,Wn(this._tree,e)}entries(){return new De(this,$n)}forEach(e){for(const[t,n]of this)e(t,n,this)}fuzzyGet(e,t){return Bn(this._tree,e,t)}get(e){const t=Ke(this._tree,e);return t!==void 0?t.get(D):void 0}has(e){const t=Ke(this._tree,e);return t!==void 0&&t.has(D)}keys(){return new De(this,St)}set(e,t){if(typeof e!="string")throw new Error("key must be a string");return this._size=void 0,ze(this._tree,e).set(D,t),this}get size(){if(this._size)return this._size;this._size=0;const e=this.entries();for(;!e.next().done;)this._size+=1;return this._size}update(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const n=ze(this._tree,e);return n.set(D,t(n.get(D))),this}fetch(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;const n=ze(this._tree,e);let s=n.get(D);return s===void 0&&n.set(D,s=t()),s}values(){return new De(this,Et)}[Symbol.iterator](){return this.entries()}static from(e){const t=new X;for(const[n,s]of e)t.set(n,s);return t}static fromObject(e){return X.from(Object.entries(e))}}const Ce=(a,e,t=[])=>{if(e.length===0||a==null)return[a,t];for(const n of a.keys())if(n!==D&&e.startsWith(n))return t.push([a,n]),Ce(a.get(n),e.slice(n.length),t);return t.push([a,e]),Ce(void 0,"",t)},Ke=(a,e)=>{if(e.length===0||a==null)return a;for(const t of a.keys())if(t!==D&&e.startsWith(t))return Ke(a.get(t),e.slice(t.length))},ze=(a,e)=>{const t=e.length;e:for(let n=0;a&&n{const[t,n]=Ce(a,e);if(t!==void 0){if(t.delete(D),t.size===0)It(n);else if(t.size===1){const[s,r]=t.entries().next().value;kt(n,s,r)}}},It=a=>{if(a.length===0)return;const[e,t]=Ue(a);if(e.delete(t),e.size===0)It(a.slice(0,-1));else if(e.size===1){const[n,s]=e.entries().next().value;n!==D&&kt(a.slice(0,-1),n,s)}},kt=(a,e,t)=>{if(a.length===0)return;const[n,s]=Ue(a);n.set(s+e,t),n.delete(s)},Ue=a=>a[a.length-1],Ge="or",Nt="and",Kn="and_not";class ue{constructor(e){if((e==null?void 0:e.fields)==null)throw new Error('MiniSearch: option "fields" must be provided');const t=e.autoVacuum==null||e.autoVacuum===!0?Ve:e.autoVacuum;this._options=Object.assign(Object.assign(Object.assign({},je),e),{autoVacuum:t,searchOptions:Object.assign(Object.assign({},ht),e.searchOptions||{}),autoSuggestOptions:Object.assign(Object.assign({},Hn),e.autoSuggestOptions||{})}),this._index=new X,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldIds={},this._fieldLength=new Map,this._avgFieldLength=[],this._nextId=0,this._storedFields=new Map,this._dirtCount=0,this._currentVacuum=null,this._enqueuedVacuum=null,this._enqueuedVacuumConditions=qe,this.addFields(this._options.fields)}add(e){const{extractField:t,tokenize:n,processTerm:s,fields:r,idField:i}=this._options,o=t(e,i);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${i}"`);if(this._idToShortId.has(o))throw new Error(`MiniSearch: duplicate ID ${o}`);const l=this.addDocumentId(o);this.saveStoredFields(l,e);for(const c of r){const f=t(e,c);if(f==null)continue;const v=n(f.toString(),c),h=this._fieldIds[c],b=new Set(v).size;this.addFieldLength(l,h,this._documentCount-1,b);for(const y of v){const x=s(y,c);if(Array.isArray(x))for(const w of x)this.addTerm(h,l,w);else x&&this.addTerm(h,l,x)}}}addAll(e){for(const t of e)this.add(t)}addAllAsync(e,t={}){const{chunkSize:n=10}=t,s={chunk:[],promise:Promise.resolve()},{chunk:r,promise:i}=e.reduce(({chunk:o,promise:l},c,f)=>(o.push(c),(f+1)%n===0?{chunk:[],promise:l.then(()=>new Promise(v=>setTimeout(v,0))).then(()=>this.addAll(o))}:{chunk:o,promise:l}),s);return i.then(()=>this.addAll(r))}remove(e){const{tokenize:t,processTerm:n,extractField:s,fields:r,idField:i}=this._options,o=s(e,i);if(o==null)throw new Error(`MiniSearch: document does not have ID field "${i}"`);const l=this._idToShortId.get(o);if(l==null)throw new Error(`MiniSearch: cannot remove document with ID ${o}: it is not in the index`);for(const c of r){const f=s(e,c);if(f==null)continue;const v=t(f.toString(),c),h=this._fieldIds[c],b=new Set(v).size;this.removeFieldLength(l,h,this._documentCount,b);for(const y of v){const x=n(y,c);if(Array.isArray(x))for(const w of x)this.removeTerm(h,l,w);else x&&this.removeTerm(h,l,x)}}this._storedFields.delete(l),this._documentIds.delete(l),this._idToShortId.delete(o),this._fieldLength.delete(l),this._documentCount-=1}removeAll(e){if(e)for(const t of e)this.remove(t);else{if(arguments.length>0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new X,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}}discard(e){const t=this._idToShortId.get(e);if(t==null)throw new Error(`MiniSearch: cannot discard document with ID ${e}: it is not in the index`);this._idToShortId.delete(e),this._documentIds.delete(t),this._storedFields.delete(t),(this._fieldLength.get(t)||[]).forEach((n,s)=>{this.removeFieldLength(t,s,this._documentCount,n)}),this._fieldLength.delete(t),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()}maybeAutoVacuum(){if(this._options.autoVacuum===!1)return;const{minDirtFactor:e,minDirtCount:t,batchSize:n,batchWait:s}=this._options.autoVacuum;this.conditionalVacuum({batchSize:n,batchWait:s},{minDirtCount:t,minDirtFactor:e})}discardAll(e){const t=this._options.autoVacuum;try{this._options.autoVacuum=!1;for(const n of e)this.discard(n)}finally{this._options.autoVacuum=t}this.maybeAutoVacuum()}replace(e){const{idField:t,extractField:n}=this._options,s=n(e,t);this.discard(s),this.add(e)}vacuum(e={}){return this.conditionalVacuum(e)}conditionalVacuum(e,t){return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(()=>{const n=this._enqueuedVacuumConditions;return this._enqueuedVacuumConditions=qe,this.performVacuuming(e,n)}),this._enqueuedVacuum)):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)}performVacuuming(e,t){return ke(this,void 0,void 0,function*(){const n=this._dirtCount;if(this.vacuumConditionsMet(t)){const s=e.batchSize||Je.batchSize,r=e.batchWait||Je.batchWait;let i=1;for(const[o,l]of this._index){for(const[c,f]of l)for(const[v]of f)this._documentIds.has(v)||(f.size<=1?l.delete(c):f.delete(v));this._index.get(o).size===0&&this._index.delete(o),i%s===0&&(yield new Promise(c=>setTimeout(c,r))),i+=1}this._dirtCount-=n}yield null,this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null})}vacuumConditionsMet(e){if(e==null)return!0;let{minDirtCount:t,minDirtFactor:n}=e;return t=t||Ve.minDirtCount,n=n||Ve.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=n}get isVacuuming(){return this._currentVacuum!=null}get dirtCount(){return this._dirtCount}get dirtFactor(){return this._dirtCount/(1+this._documentCount+this._dirtCount)}has(e){return this._idToShortId.has(e)}getStoredFields(e){const t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)}search(e,t={}){const{searchOptions:n}=this._options,s=Object.assign(Object.assign({},n),t),r=this.executeQuery(e,t),i=[];for(const[o,{score:l,terms:c,match:f}]of r){const v=c.length||1,h={id:this._documentIds.get(o),score:l*v,terms:Object.keys(f),queryTerms:c,match:f};Object.assign(h,this._storedFields.get(o)),(s.filter==null||s.filter(h))&&i.push(h)}return e===ue.wildcard&&s.boostDocument==null||i.sort(mt),i}autoSuggest(e,t={}){t=Object.assign(Object.assign({},this._options.autoSuggestOptions),t);const n=new Map;for(const{score:r,terms:i}of this.search(e,t)){const o=i.join(" "),l=n.get(o);l!=null?(l.score+=r,l.count+=1):n.set(o,{score:r,terms:i,count:1})}const s=[];for(const[r,{score:i,terms:o,count:l}]of n)s.push({suggestion:r,terms:o,score:i/l});return s.sort(mt),s}get documentCount(){return this._documentCount}get termCount(){return this._index.size}static loadJSON(e,t){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),t)}static loadJSONAsync(e,t){return ke(this,void 0,void 0,function*(){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJSAsync(JSON.parse(e),t)})}static getDefault(e){if(je.hasOwnProperty(e))return Pe(je,e);throw new Error(`MiniSearch: unknown option "${e}"`)}static loadJS(e,t){const{index:n,documentIds:s,fieldLength:r,storedFields:i,serializationVersion:o}=e,l=this.instantiateMiniSearch(e,t);l._documentIds=Te(s),l._fieldLength=Te(r),l._storedFields=Te(i);for(const[c,f]of l._documentIds)l._idToShortId.set(f,c);for(const[c,f]of n){const v=new Map;for(const h of Object.keys(f)){let b=f[h];o===1&&(b=b.ds),v.set(parseInt(h,10),Te(b))}l._index.set(c,v)}return l}static loadJSAsync(e,t){return ke(this,void 0,void 0,function*(){const{index:n,documentIds:s,fieldLength:r,storedFields:i,serializationVersion:o}=e,l=this.instantiateMiniSearch(e,t);l._documentIds=yield Ie(s),l._fieldLength=yield Ie(r),l._storedFields=yield Ie(i);for(const[f,v]of l._documentIds)l._idToShortId.set(v,f);let c=0;for(const[f,v]of n){const h=new Map;for(const b of Object.keys(v)){let y=v[b];o===1&&(y=y.ds),h.set(parseInt(b,10),yield Ie(y))}++c%1e3===0&&(yield Ot(0)),l._index.set(f,h)}return l})}static instantiateMiniSearch(e,t){const{documentCount:n,nextId:s,fieldIds:r,averageFieldLength:i,dirtCount:o,serializationVersion:l}=e;if(l!==1&&l!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");const c=new ue(t);return c._documentCount=n,c._nextId=s,c._idToShortId=new Map,c._fieldIds=r,c._avgFieldLength=i,c._dirtCount=o||0,c._index=new X,c}executeQuery(e,t={}){if(e===ue.wildcard)return this.executeWildcardQuery(t);if(typeof e!="string"){const h=Object.assign(Object.assign(Object.assign({},t),e),{queries:void 0}),b=e.queries.map(y=>this.executeQuery(y,h));return this.combineResults(b,h.combineWith)}const{tokenize:n,processTerm:s,searchOptions:r}=this._options,i=Object.assign(Object.assign({tokenize:n,processTerm:s},r),t),{tokenize:o,processTerm:l}=i,v=o(e).flatMap(h=>l(h)).filter(h=>!!h).map(Gn(i)).map(h=>this.executeQuerySpec(h,i));return this.combineResults(v,i.combineWith)}executeQuerySpec(e,t){const n=Object.assign(Object.assign({},this._options.searchOptions),t),s=(n.fields||this._options.fields).reduce((x,w)=>Object.assign(Object.assign({},x),{[w]:Pe(n.boost,w)||1}),{}),{boostDocument:r,weights:i,maxFuzzy:o,bm25:l}=n,{fuzzy:c,prefix:f}=Object.assign(Object.assign({},ht.weights),i),v=this._index.get(e.term),h=this.termResults(e.term,e.term,1,e.termBoost,v,s,r,l);let b,y;if(e.prefix&&(b=this._index.atPrefix(e.term)),e.fuzzy){const x=e.fuzzy===!0?.2:e.fuzzy,w=x<1?Math.min(o,Math.round(e.term.length*x)):x;w&&(y=this._index.fuzzyGet(e.term,w))}if(b)for(const[x,w]of b){const C=x.length-e.term.length;if(!C)continue;y==null||y.delete(x);const A=f*x.length/(x.length+.3*C);this.termResults(e.term,x,A,e.termBoost,w,s,r,l,h)}if(y)for(const x of y.keys()){const[w,C]=y.get(x);if(!C)continue;const A=c*x.length/(x.length+C);this.termResults(e.term,x,A,e.termBoost,w,s,r,l,h)}return h}executeWildcardQuery(e){const t=new Map,n=Object.assign(Object.assign({},this._options.searchOptions),e);for(const[s,r]of this._documentIds){const i=n.boostDocument?n.boostDocument(r,"",this._storedFields.get(s)):1;t.set(s,{score:i,terms:[],match:{}})}return t}combineResults(e,t=Ge){if(e.length===0)return new Map;const n=t.toLowerCase(),s=Jn[n];if(!s)throw new Error(`Invalid combination operator: ${t}`);return e.reduce(s)||new Map}toJSON(){const e=[];for(const[t,n]of this._index){const s={};for(const[r,i]of n)s[r]=Object.fromEntries(i);e.push([t,s])}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:e,serializationVersion:2}}termResults(e,t,n,s,r,i,o,l,c=new Map){if(r==null)return c;for(const f of Object.keys(i)){const v=i[f],h=this._fieldIds[f],b=r.get(h);if(b==null)continue;let y=b.size;const x=this._avgFieldLength[h];for(const w of b.keys()){if(!this._documentIds.has(w)){this.removeTerm(h,w,t),y-=1;continue}const C=o?o(this._documentIds.get(w),t,this._storedFields.get(w)):1;if(!C)continue;const A=b.get(w),J=this._fieldLength.get(w)[h],Q=Un(A,y,this._documentCount,J,x,l),W=n*s*v*C*Q,V=c.get(w);if(V){V.score+=W,Qn(V.terms,e);const $=Pe(V.match,t);$?$.push(f):V.match[t]=[f]}else c.set(w,{score:W,terms:[e],match:{[t]:[f]}})}}return c}addTerm(e,t,n){const s=this._index.fetch(n,vt);let r=s.get(e);if(r==null)r=new Map,r.set(t,1),s.set(e,r);else{const i=r.get(t);r.set(t,(i||0)+1)}}removeTerm(e,t,n){if(!this._index.has(n)){this.warnDocumentChanged(t,e,n);return}const s=this._index.fetch(n,vt),r=s.get(e);r==null||r.get(t)==null?this.warnDocumentChanged(t,e,n):r.get(t)<=1?r.size<=1?s.delete(e):r.delete(t):r.set(t,r.get(t)-1),this._index.get(n).size===0&&this._index.delete(n)}warnDocumentChanged(e,t,n){for(const s of Object.keys(this._fieldIds))if(this._fieldIds[s]===t){this._options.logger("warn",`MiniSearch: document with ID ${this._documentIds.get(e)} has changed before removal: term "${n}" was not present in field "${s}". Removing a document after it has changed can corrupt the index!`,"version_conflict");return}}addDocumentId(e){const t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t}addFields(e){for(let t=0;tObject.prototype.hasOwnProperty.call(a,e)?a[e]:void 0,Jn={[Ge]:(a,e)=>{for(const t of e.keys()){const n=a.get(t);if(n==null)a.set(t,e.get(t));else{const{score:s,terms:r,match:i}=e.get(t);n.score=n.score+s,n.match=Object.assign(n.match,i),pt(n.terms,r)}}return a},[Nt]:(a,e)=>{const t=new Map;for(const n of e.keys()){const s=a.get(n);if(s==null)continue;const{score:r,terms:i,match:o}=e.get(n);pt(s.terms,i),t.set(n,{score:s.score+r,terms:s.terms,match:Object.assign(s.match,o)})}return t},[Kn]:(a,e)=>{for(const t of e.keys())a.delete(t);return a}},qn={k:1.2,b:.7,d:.5},Un=(a,e,t,n,s,r)=>{const{k:i,b:o,d:l}=r;return Math.log(1+(t-e+.5)/(e+.5))*(l+a*(i+1)/(a+i*(1-o+o*n/s)))},Gn=a=>(e,t,n)=>{const s=typeof a.fuzzy=="function"?a.fuzzy(e,t,n):a.fuzzy||!1,r=typeof a.prefix=="function"?a.prefix(e,t,n):a.prefix===!0,i=typeof a.boostTerm=="function"?a.boostTerm(e,t,n):1;return{term:e,fuzzy:s,prefix:r,termBoost:i}},je={idField:"id",extractField:(a,e)=>a[e],tokenize:a=>a.split(Yn),processTerm:a=>a.toLowerCase(),fields:void 0,searchOptions:void 0,storeFields:[],logger:(a,e)=>{typeof(console==null?void 0:console[a])=="function"&&console[a](e)},autoVacuum:!0},ht={combineWith:Ge,prefix:!1,fuzzy:!1,maxFuzzy:6,boost:{},weights:{fuzzy:.45,prefix:.375},bm25:qn},Hn={combineWith:Nt,prefix:(a,e,t)=>e===t.length-1},Je={batchSize:1e3,batchWait:10},qe={minDirtFactor:.1,minDirtCount:20},Ve=Object.assign(Object.assign({},Je),qe),Qn=(a,e)=>{a.includes(e)||a.push(e)},pt=(a,e)=>{for(const t of e)a.includes(t)||a.push(t)},mt=({score:a},{score:e})=>e-a,vt=()=>new Map,Te=a=>{const e=new Map;for(const t of Object.keys(a))e.set(parseInt(t,10),a[t]);return e},Ie=a=>ke(void 0,void 0,void 0,function*(){const e=new Map;let t=0;for(const n of Object.keys(a))e.set(parseInt(n,10),a[n]),++t%1e3===0&&(yield Ot(0));return e}),Ot=a=>new Promise(e=>setTimeout(e,a)),Yn=/[\n\r\p{Z}\p{P}]+/u;class Zn{constructor(e=10){Ae(this,"max");Ae(this,"cache");this.max=e,this.cache=new Map}get(e){let t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){this.cache.has(e)?this.cache.delete(e):this.cache.size===this.max&&this.cache.delete(this.first()),this.cache.set(e,t)}first(){return this.cache.keys().next().value}clear(){this.cache.clear()}}const Xn=["aria-owns"],es={class:"shell"},ts=["title"],ns={class:"search-actions before"},ss=["title"],is=["aria-activedescendant","aria-controls","placeholder"],rs={class:"search-actions"},as=["title"],os=["disabled","title"],ls=["id","role","aria-labelledby"],cs=["id","aria-selected"],us=["href","aria-label","onMouseenter","onFocusin","data-index"],ds={class:"titles"},fs=["innerHTML"],hs={class:"title main"},ps=["innerHTML"],ms={key:0,class:"excerpt-wrapper"},vs={key:0,class:"excerpt",inert:""},gs=["innerHTML"],bs={key:0,class:"no-results"},ys={class:"search-keyboard-shortcuts"},ws=["aria-label"],xs=["aria-label"],_s=["aria-label"],Ss=["aria-label"],Es=Dt({__name:"VPLocalSearchBox",emits:["close"],setup(a,{emit:e}){var S,R;const t=e,n=xe(),s=xe(),r=xe(an),i=sn(),{activate:o}=Pn(n,{immediate:!0,allowOutsideClick:!0,clickOutsideDeactivates:!0,escapeDeactivates:!0}),{localeIndex:l,theme:c}=i,f=st(async()=>{var m,p,I,F,z,P,j,k,K;return ot(ue.loadJSON((I=await((p=(m=r.value)[l.value])==null?void 0:p.call(m)))==null?void 0:I.default,{fields:["title","titles","text"],storeFields:["title","titles"],searchOptions:{fuzzy:.2,prefix:!0,boost:{title:4,text:2,titles:1},...((F=c.value.search)==null?void 0:F.provider)==="local"&&((P=(z=c.value.search.options)==null?void 0:z.miniSearch)==null?void 0:P.searchOptions)},...((j=c.value.search)==null?void 0:j.provider)==="local"&&((K=(k=c.value.search.options)==null?void 0:k.miniSearch)==null?void 0:K.options)}))}),h=ve(()=>{var m,p;return((m=c.value.search)==null?void 0:m.provider)==="local"&&((p=c.value.search.options)==null?void 0:p.disableQueryPersistence)===!0}).value?ie(""):zt("vitepress:local-search-filter",""),b=Pt("vitepress:local-search-detailed-list",((S=c.value.search)==null?void 0:S.provider)==="local"&&((R=c.value.search.options)==null?void 0:R.detailedView)===!0),y=ve(()=>{var m,p,I;return((m=c.value.search)==null?void 0:m.provider)==="local"&&(((p=c.value.search.options)==null?void 0:p.disableDetailedView)===!0||((I=c.value.search.options)==null?void 0:I.detailedView)===!1)}),x=ve(()=>{var p,I,F,z,P,j,k;const m=((p=c.value.search)==null?void 0:p.options)??c.value.algolia;return((P=(z=(F=(I=m==null?void 0:m.locales)==null?void 0:I[l.value])==null?void 0:F.translations)==null?void 0:z.button)==null?void 0:P.buttonText)||((k=(j=m==null?void 0:m.translations)==null?void 0:j.button)==null?void 0:k.buttonText)||"Search"});jt(()=>{y.value&&(b.value=!1)});const w=xe([]),C=ie(!1);$e(h,()=>{C.value=!1});const A=st(async()=>{if(s.value)return ot(new Vn(s.value))},null),J=new Zn(16);Vt(()=>[f.value,h.value,b.value],async([m,p,I],F,z)=>{var ee,ye,He,Qe;(F==null?void 0:F[0])!==m&&J.clear();let P=!1;if(z(()=>{P=!0}),!m)return;w.value=m.search(p).slice(0,16),C.value=!0;const j=I?await Promise.all(w.value.map(B=>Q(B.id))):[];if(P)return;for(const{id:B,mod:te}of j){const ne=B.slice(0,B.indexOf("#"));let Y=J.get(ne);if(Y)continue;Y=new Map,J.set(ne,Y);const G=te.default??te;if(G!=null&&G.render||G!=null&&G.setup){const se=Zt(G);se.config.warnHandler=()=>{},se.provide(Xt,i),Object.defineProperties(se.config.globalProperties,{$frontmatter:{get(){return i.frontmatter.value}},$params:{get(){return i.page.value.params}}});const Ye=document.createElement("div");se.mount(Ye),Ye.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(de=>{var et;const we=(et=de.querySelector("a"))==null?void 0:et.getAttribute("href"),Ze=(we==null?void 0:we.startsWith("#"))&&we.slice(1);if(!Ze)return;let Xe="";for(;(de=de.nextElementSibling)&&!/^h[1-6]$/i.test(de.tagName);)Xe+=de.outerHTML;Y.set(Ze,Xe)}),se.unmount()}if(P)return}const k=new Set;if(w.value=w.value.map(B=>{const[te,ne]=B.id.split("#"),Y=J.get(te),G=(Y==null?void 0:Y.get(ne))??"";for(const se in B.match)k.add(se);return{...B,text:G}}),await fe(),P)return;await new Promise(B=>{var te;(te=A.value)==null||te.unmark({done:()=>{var ne;(ne=A.value)==null||ne.markRegExp(T(k),{done:B})}})});const K=((ee=n.value)==null?void 0:ee.querySelectorAll(".result .excerpt"))??[];for(const B of K)(ye=B.querySelector('mark[data-markjs="true"]'))==null||ye.scrollIntoView({block:"center"});(Qe=(He=s.value)==null?void 0:He.firstElementChild)==null||Qe.scrollIntoView({block:"start"})},{debounce:200,immediate:!0});async function Q(m){const p=en(m.slice(0,m.indexOf("#")));try{if(!p)throw new Error(`Cannot find file for id: ${m}`);return{id:m,mod:await import(p)}}catch(I){return console.error(I),{id:m,mod:{}}}}const W=ie(),V=ve(()=>{var m;return((m=h.value)==null?void 0:m.length)<=0});function $(m=!0){var p,I;(p=W.value)==null||p.focus(),m&&((I=W.value)==null||I.select())}Me(()=>{$()});function be(m){m.pointerType==="mouse"&&$()}const M=ie(-1),q=ie(!0);$e(w,m=>{M.value=m.length?0:-1,U()});function U(){fe(()=>{const m=document.querySelector(".result.selected");m==null||m.scrollIntoView({block:"nearest"})})}_e("ArrowUp",m=>{m.preventDefault(),M.value--,M.value<0&&(M.value=w.value.length-1),q.value=!0,U()}),_e("ArrowDown",m=>{m.preventDefault(),M.value++,M.value>=w.value.length&&(M.value=0),q.value=!0,U()});const N=$t();_e("Enter",m=>{if(m.isComposing||m.target instanceof HTMLButtonElement&&m.target.type!=="submit")return;const p=w.value[M.value];if(m.target instanceof HTMLInputElement&&!p){m.preventDefault();return}p&&(N.go(p.id),t("close"))}),_e("Escape",()=>{t("close")});const d=rn({modal:{displayDetails:"Display detailed list",resetButtonTitle:"Reset search",backButtonTitle:"Close search",noResultsText:"No results for",footer:{selectText:"to select",selectKeyAriaLabel:"enter",navigateText:"to navigate",navigateUpKeyAriaLabel:"up arrow",navigateDownKeyAriaLabel:"down arrow",closeText:"to close",closeKeyAriaLabel:"escape"}}});Me(()=>{window.history.pushState(null,"",null)}),Bt("popstate",m=>{m.preventDefault(),t("close")});const g=Wt(Kt?document.body:null);Me(()=>{fe(()=>{g.value=!0,fe().then(()=>o())})}),Jt(()=>{g.value=!1});function E(){h.value="",fe().then(()=>$(!1))}function T(m){return new RegExp([...m].sort((p,I)=>I.length-p.length).map(p=>`(${tn(p)})`).join("|"),"gi")}function O(m){var F;if(!q.value)return;const p=(F=m.target)==null?void 0:F.closest(".result"),I=Number.parseInt(p==null?void 0:p.dataset.index);I>=0&&I!==M.value&&(M.value=I),q.value=!1}return(m,p)=>{var I,F,z,P,j;return H(),qt(Yt,{to:"body"},[_("div",{ref_key:"el",ref:n,role:"button","aria-owns":(I=w.value)!=null&&I.length?"localsearch-list":void 0,"aria-expanded":"true","aria-haspopup":"listbox","aria-labelledby":"localsearch-label",class:"VPLocalSearchBox"},[_("div",{class:"backdrop",onClick:p[0]||(p[0]=k=>m.$emit("close"))}),_("div",es,[_("form",{class:"search-bar",onPointerup:p[4]||(p[4]=k=>be(k)),onSubmit:p[5]||(p[5]=Ut(()=>{},["prevent"]))},[_("label",{title:x.value,id:"localsearch-label",for:"localsearch-input"},p[7]||(p[7]=[_("span",{"aria-hidden":"true",class:"vpi-search search-icon local-search-icon"},null,-1)]),8,ts),_("div",ns,[_("button",{class:"back-button",title:L(d)("modal.backButtonTitle"),onClick:p[1]||(p[1]=k=>m.$emit("close"))},p[8]||(p[8]=[_("span",{class:"vpi-arrow-left local-search-icon"},null,-1)]),8,ss)]),Gt(_("input",{ref_key:"searchInput",ref:W,"onUpdate:modelValue":p[2]||(p[2]=k=>Qt(h)?h.value=k:null),"aria-activedescendant":M.value>-1?"localsearch-item-"+M.value:void 0,"aria-autocomplete":"both","aria-controls":(F=w.value)!=null&&F.length?"localsearch-list":void 0,"aria-labelledby":"localsearch-label",autocapitalize:"off",autocomplete:"off",autocorrect:"off",class:"search-input",id:"localsearch-input",enterkeyhint:"go",maxlength:"64",placeholder:x.value,spellcheck:"false",type:"search"},null,8,is),[[Ht,L(h)]]),_("div",rs,[y.value?Se("",!0):(H(),Z("button",{key:0,class:it(["toggle-layout-button",{"detailed-list":L(b)}]),type:"button",title:L(d)("modal.displayDetails"),onClick:p[3]||(p[3]=k=>M.value>-1&&(b.value=!L(b)))},p[9]||(p[9]=[_("span",{class:"vpi-layout-list local-search-icon"},null,-1)]),10,as)),_("button",{class:"clear-button",type:"reset",disabled:V.value,title:L(d)("modal.resetButtonTitle"),onClick:E},p[10]||(p[10]=[_("span",{class:"vpi-delete local-search-icon"},null,-1)]),8,os)])],32),_("ul",{ref_key:"resultsEl",ref:s,id:(z=w.value)!=null&&z.length?"localsearch-list":void 0,role:(P=w.value)!=null&&P.length?"listbox":void 0,"aria-labelledby":(j=w.value)!=null&&j.length?"localsearch-label":void 0,class:"results",onMousemove:O},[(H(!0),Z(at,null,rt(w.value,(k,K)=>(H(),Z("li",{key:k.id,id:"localsearch-item-"+K,"aria-selected":M.value===K?"true":"false",role:"option"},[_("a",{href:k.id,class:it(["result",{selected:M.value===K}]),"aria-label":[...k.titles,k.title].join(" > "),onMouseenter:ee=>!q.value&&(M.value=K),onFocusin:ee=>M.value=K,onClick:p[6]||(p[6]=ee=>m.$emit("close")),"data-index":K},[_("div",null,[_("div",ds,[p[12]||(p[12]=_("span",{class:"title-icon"},"#",-1)),(H(!0),Z(at,null,rt(k.titles,(ee,ye)=>(H(),Z("span",{key:ye,class:"title"},[_("span",{class:"text",innerHTML:ee},null,8,fs),p[11]||(p[11]=_("span",{class:"vpi-chevron-right local-search-icon"},null,-1))]))),128)),_("span",hs,[_("span",{class:"text",innerHTML:k.title},null,8,ps)])]),L(b)?(H(),Z("div",ms,[k.text?(H(),Z("div",vs,[_("div",{class:"vp-doc",innerHTML:k.text},null,8,gs)])):Se("",!0),p[13]||(p[13]=_("div",{class:"excerpt-gradient-bottom"},null,-1)),p[14]||(p[14]=_("div",{class:"excerpt-gradient-top"},null,-1))])):Se("",!0)])],42,us)],8,cs))),128)),L(h)&&!w.value.length&&C.value?(H(),Z("li",bs,[he(pe(L(d)("modal.noResultsText"))+' "',1),_("strong",null,pe(L(h)),1),p[15]||(p[15]=he('" '))])):Se("",!0)],40,ls),_("div",ys,[_("span",null,[_("kbd",{"aria-label":L(d)("modal.footer.navigateUpKeyAriaLabel")},p[16]||(p[16]=[_("span",{class:"vpi-arrow-up navigate-icon"},null,-1)]),8,ws),_("kbd",{"aria-label":L(d)("modal.footer.navigateDownKeyAriaLabel")},p[17]||(p[17]=[_("span",{class:"vpi-arrow-down navigate-icon"},null,-1)]),8,xs),he(" "+pe(L(d)("modal.footer.navigateText")),1)]),_("span",null,[_("kbd",{"aria-label":L(d)("modal.footer.selectKeyAriaLabel")},p[18]||(p[18]=[_("span",{class:"vpi-corner-down-left navigate-icon"},null,-1)]),8,_s),he(" "+pe(L(d)("modal.footer.selectText")),1)]),_("span",null,[_("kbd",{"aria-label":L(d)("modal.footer.closeKeyAriaLabel")},"esc",8,Ss),he(" "+pe(L(d)("modal.footer.closeText")),1)])])])],8,Xn)])}}}),Fs=nn(Es,[["__scopeId","data-v-689dcdfa"]]);export{Fs as default}; diff --git a/docs/.vitepress/dist/assets/chunks/framework.BmLMQRXF.js b/docs/.vitepress/dist/assets/chunks/framework.BmLMQRXF.js deleted file mode 100644 index 49e81889..00000000 --- a/docs/.vitepress/dist/assets/chunks/framework.BmLMQRXF.js +++ /dev/null @@ -1,18 +0,0 @@ -/** -* @vue/shared v3.5.13 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function $s(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ee={},Rt=[],We=()=>{},zo=()=>!1,tn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),js=e=>e.startsWith("onUpdate:"),pe=Object.assign,Vs=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Qo=Object.prototype.hasOwnProperty,Q=(e,t)=>Qo.call(e,t),K=Array.isArray,Mt=e=>Fn(e)==="[object Map]",ci=e=>Fn(e)==="[object Set]",q=e=>typeof e=="function",oe=e=>typeof e=="string",Je=e=>typeof e=="symbol",se=e=>e!==null&&typeof e=="object",ai=e=>(se(e)||q(e))&&q(e.then)&&q(e.catch),fi=Object.prototype.toString,Fn=e=>fi.call(e),Zo=e=>Fn(e).slice(8,-1),ui=e=>Fn(e)==="[object Object]",ks=e=>oe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ot=$s(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Hn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},el=/-(\w)/g,Ne=Hn(e=>e.replace(el,(t,n)=>n?n.toUpperCase():"")),tl=/\B([A-Z])/g,it=Hn(e=>e.replace(tl,"-$1").toLowerCase()),Dn=Hn(e=>e.charAt(0).toUpperCase()+e.slice(1)),wn=Hn(e=>e?`on${Dn(e)}`:""),nt=(e,t)=>!Object.is(e,t),Sn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:s,value:n})},Ss=e=>{const t=parseFloat(e);return isNaN(t)?e:t},nl=e=>{const t=oe(e)?Number(e):NaN;return isNaN(t)?e:t};let ur;const $n=()=>ur||(ur=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Us(e){if(K(e)){const t={};for(let n=0;n{if(n){const s=n.split(rl);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Ws(e){let t="";if(oe(e))t=e;else if(K(e))for(let n=0;n!!(e&&e.__v_isRef===!0),al=e=>oe(e)?e:e==null?"":K(e)||se(e)&&(e.toString===fi||!q(e.toString))?pi(e)?al(e.value):JSON.stringify(e,gi,2):String(e),gi=(e,t)=>pi(t)?gi(e,t.value):Mt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r],i)=>(n[Zn(s,i)+" =>"]=r,n),{})}:ci(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Zn(n))}:Je(t)?Zn(t):se(t)&&!K(t)&&!ui(t)?String(t):t,Zn=(e,t="")=>{var n;return Je(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** -* @vue/reactivity v3.5.13 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Se;class fl{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=Se,!t&&Se&&(this.index=(Se.scopes||(Se.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)return;if(kt){let t=kt;for(kt=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Vt;){let t=Vt;for(Vt=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(s){e||(e=s)}t=n}}if(e)throw e}function _i(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function wi(e){let t,n=e.depsTail,s=n;for(;s;){const r=s.prevDep;s.version===-1?(s===n&&(n=r),qs(s),dl(s)):t=s,s.dep.activeLink=s.prevActiveLink,s.prevActiveLink=void 0,s=r}e.deps=t,e.depsTail=n}function Ts(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Si(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Si(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Gt))return;e.globalVersion=Gt;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!Ts(e)){e.flags&=-3;return}const n=ne,s=He;ne=e,He=!0;try{_i(e);const r=e.fn(e._value);(t.version===0||nt(r,e._value))&&(e._value=r,t.version++)}catch(r){throw t.version++,r}finally{ne=n,He=s,wi(e),e.flags&=-3}}function qs(e,t=!1){const{dep:n,prevSub:s,nextSub:r}=e;if(s&&(s.nextSub=r,e.prevSub=void 0),r&&(r.prevSub=s,e.nextSub=void 0),n.subs===e&&(n.subs=s,!s&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)qs(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function dl(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let He=!0;const Ti=[];function ot(){Ti.push(He),He=!1}function lt(){const e=Ti.pop();He=e===void 0?!0:e}function dr(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=ne;ne=void 0;try{t()}finally{ne=n}}}let Gt=0;class hl{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 jn{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}track(t){if(!ne||!He||ne===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==ne)n=this.activeLink=new hl(ne,this),ne.deps?(n.prevDep=ne.depsTail,ne.depsTail.nextDep=n,ne.depsTail=n):ne.deps=ne.depsTail=n,xi(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const s=n.nextDep;s.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=s),n.prevDep=ne.depsTail,n.nextDep=void 0,ne.depsTail.nextDep=n,ne.depsTail=n,ne.deps===n&&(ne.deps=s)}return n}trigger(t){this.version++,Gt++,this.notify(t)}notify(t){Bs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Ks()}}}function xi(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let s=t.deps;s;s=s.nextDep)xi(s)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Rn=new WeakMap,pt=Symbol(""),xs=Symbol(""),Xt=Symbol("");function ve(e,t,n){if(He&&ne){let s=Rn.get(e);s||Rn.set(e,s=new Map);let r=s.get(n);r||(s.set(n,r=new jn),r.map=s,r.key=n),r.track()}}function Ge(e,t,n,s,r,i){const o=Rn.get(e);if(!o){Gt++;return}const l=c=>{c&&c.trigger()};if(Bs(),t==="clear")o.forEach(l);else{const c=K(e),f=c&&ks(n);if(c&&n==="length"){const a=Number(s);o.forEach((d,m)=>{(m==="length"||m===Xt||!Je(m)&&m>=a)&&l(d)})}else switch((n!==void 0||o.has(void 0))&&l(o.get(n)),f&&l(o.get(Xt)),t){case"add":c?f&&l(o.get("length")):(l(o.get(pt)),Mt(e)&&l(o.get(xs)));break;case"delete":c||(l(o.get(pt)),Mt(e)&&l(o.get(xs)));break;case"set":Mt(e)&&l(o.get(pt));break}}Ks()}function pl(e,t){const n=Rn.get(e);return n&&n.get(t)}function Tt(e){const t=z(e);return t===e?t:(ve(t,"iterate",Xt),Le(e)?t:t.map(ye))}function Vn(e){return ve(e=z(e),"iterate",Xt),e}const gl={__proto__:null,[Symbol.iterator](){return ts(this,Symbol.iterator,ye)},concat(...e){return Tt(this).concat(...e.map(t=>K(t)?Tt(t):t))},entries(){return ts(this,"entries",e=>(e[1]=ye(e[1]),e))},every(e,t){return Be(this,"every",e,t,void 0,arguments)},filter(e,t){return Be(this,"filter",e,t,n=>n.map(ye),arguments)},find(e,t){return Be(this,"find",e,t,ye,arguments)},findIndex(e,t){return Be(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Be(this,"findLast",e,t,ye,arguments)},findLastIndex(e,t){return Be(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Be(this,"forEach",e,t,void 0,arguments)},includes(...e){return ns(this,"includes",e)},indexOf(...e){return ns(this,"indexOf",e)},join(e){return Tt(this).join(e)},lastIndexOf(...e){return ns(this,"lastIndexOf",e)},map(e,t){return Be(this,"map",e,t,void 0,arguments)},pop(){return Dt(this,"pop")},push(...e){return Dt(this,"push",e)},reduce(e,...t){return hr(this,"reduce",e,t)},reduceRight(e,...t){return hr(this,"reduceRight",e,t)},shift(){return Dt(this,"shift")},some(e,t){return Be(this,"some",e,t,void 0,arguments)},splice(...e){return Dt(this,"splice",e)},toReversed(){return Tt(this).toReversed()},toSorted(e){return Tt(this).toSorted(e)},toSpliced(...e){return Tt(this).toSpliced(...e)},unshift(...e){return Dt(this,"unshift",e)},values(){return ts(this,"values",ye)}};function ts(e,t,n){const s=Vn(e),r=s[t]();return s!==e&&!Le(e)&&(r._next=r.next,r.next=()=>{const i=r._next();return i.value&&(i.value=n(i.value)),i}),r}const ml=Array.prototype;function Be(e,t,n,s,r,i){const o=Vn(e),l=o!==e&&!Le(e),c=o[t];if(c!==ml[t]){const d=c.apply(e,i);return l?ye(d):d}let f=n;o!==e&&(l?f=function(d,m){return n.call(this,ye(d),m,e)}:n.length>2&&(f=function(d,m){return n.call(this,d,m,e)}));const a=c.call(o,f,s);return l&&r?r(a):a}function hr(e,t,n,s){const r=Vn(e);let i=n;return r!==e&&(Le(e)?n.length>3&&(i=function(o,l,c){return n.call(this,o,l,c,e)}):i=function(o,l,c){return n.call(this,o,ye(l),c,e)}),r[t](i,...s)}function ns(e,t,n){const s=z(e);ve(s,"iterate",Xt);const r=s[t](...n);return(r===-1||r===!1)&&Ys(n[0])?(n[0]=z(n[0]),s[t](...n)):r}function Dt(e,t,n=[]){ot(),Bs();const s=z(e)[t].apply(e,n);return Ks(),lt(),s}const vl=$s("__proto__,__v_isRef,__isVue"),Ei=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Je));function yl(e){Je(e)||(e=String(e));const t=z(this);return ve(t,"has",e),t.hasOwnProperty(e)}class Ci{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,s){if(n==="__v_skip")return t.__v_skip;const r=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return i;if(n==="__v_raw")return s===(r?i?Rl:Oi:i?Mi:Ri).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(s)?t:void 0;const o=K(t);if(!r){let c;if(o&&(c=gl[n]))return c;if(n==="hasOwnProperty")return yl}const l=Reflect.get(t,n,ue(t)?t:s);return(Je(n)?Ei.has(n):vl(n))||(r||ve(t,"get",n),i)?l:ue(l)?o&&ks(n)?l:l.value:se(l)?r?kn(l):Lt(l):l}}class Ai extends Ci{constructor(t=!1){super(!1,t)}set(t,n,s,r){let i=t[n];if(!this._isShallow){const c=wt(i);if(!Le(s)&&!wt(s)&&(i=z(i),s=z(s)),!K(t)&&ue(i)&&!ue(s))return c?!1:(i.value=s,!0)}const o=K(t)&&ks(n)?Number(n)e,fn=e=>Reflect.getPrototypeOf(e);function Tl(e,t,n){return function(...s){const r=this.__v_raw,i=z(r),o=Mt(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,f=r[e](...s),a=n?Es:t?Cs:ye;return!t&&ve(i,"iterate",c?xs:pt),{next(){const{value:d,done:m}=f.next();return m?{value:d,done:m}:{value:l?[a(d[0]),a(d[1])]:a(d),done:m}},[Symbol.iterator](){return this}}}}function un(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function xl(e,t){const n={get(r){const i=this.__v_raw,o=z(i),l=z(r);e||(nt(r,l)&&ve(o,"get",r),ve(o,"get",l));const{has:c}=fn(o),f=t?Es:e?Cs:ye;if(c.call(o,r))return f(i.get(r));if(c.call(o,l))return f(i.get(l));i!==o&&i.get(r)},get size(){const r=this.__v_raw;return!e&&ve(z(r),"iterate",pt),Reflect.get(r,"size",r)},has(r){const i=this.__v_raw,o=z(i),l=z(r);return e||(nt(r,l)&&ve(o,"has",r),ve(o,"has",l)),r===l?i.has(r):i.has(r)||i.has(l)},forEach(r,i){const o=this,l=o.__v_raw,c=z(l),f=t?Es:e?Cs:ye;return!e&&ve(c,"iterate",pt),l.forEach((a,d)=>r.call(i,f(a),f(d),o))}};return pe(n,e?{add:un("add"),set:un("set"),delete:un("delete"),clear:un("clear")}:{add(r){!t&&!Le(r)&&!wt(r)&&(r=z(r));const i=z(this);return fn(i).has.call(i,r)||(i.add(r),Ge(i,"add",r,r)),this},set(r,i){!t&&!Le(i)&&!wt(i)&&(i=z(i));const o=z(this),{has:l,get:c}=fn(o);let f=l.call(o,r);f||(r=z(r),f=l.call(o,r));const a=c.call(o,r);return o.set(r,i),f?nt(i,a)&&Ge(o,"set",r,i):Ge(o,"add",r,i),this},delete(r){const i=z(this),{has:o,get:l}=fn(i);let c=o.call(i,r);c||(r=z(r),c=o.call(i,r)),l&&l.call(i,r);const f=i.delete(r);return c&&Ge(i,"delete",r,void 0),f},clear(){const r=z(this),i=r.size!==0,o=r.clear();return i&&Ge(r,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=Tl(r,e,t)}),n}function Gs(e,t){const n=xl(e,t);return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(Q(n,r)&&r in s?n:s,r,i)}const El={get:Gs(!1,!1)},Cl={get:Gs(!1,!0)},Al={get:Gs(!0,!1)};const Ri=new WeakMap,Mi=new WeakMap,Oi=new WeakMap,Rl=new WeakMap;function Ml(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Ol(e){return e.__v_skip||!Object.isExtensible(e)?0:Ml(Zo(e))}function Lt(e){return wt(e)?e:Xs(e,!1,_l,El,Ri)}function Pl(e){return Xs(e,!1,Sl,Cl,Mi)}function kn(e){return Xs(e,!0,wl,Al,Oi)}function Xs(e,t,n,s,r){if(!se(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=Ol(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function gt(e){return wt(e)?gt(e.__v_raw):!!(e&&e.__v_isReactive)}function wt(e){return!!(e&&e.__v_isReadonly)}function Le(e){return!!(e&&e.__v_isShallow)}function Ys(e){return e?!!e.__v_raw:!1}function z(e){const t=e&&e.__v_raw;return t?z(t):e}function Tn(e){return!Q(e,"__v_skip")&&Object.isExtensible(e)&&di(e,"__v_skip",!0),e}const ye=e=>se(e)?Lt(e):e,Cs=e=>se(e)?kn(e):e;function ue(e){return e?e.__v_isRef===!0:!1}function le(e){return Pi(e,!1)}function Un(e){return Pi(e,!0)}function Pi(e,t){return ue(e)?e:new Ll(e,t)}class Ll{constructor(t,n){this.dep=new jn,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:z(t),this._value=n?t:ye(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,s=this.__v_isShallow||Le(t)||wt(t);t=s?t:z(t),nt(t,n)&&(this._rawValue=t,this._value=s?t:ye(t),this.dep.trigger())}}function Js(e){return ue(e)?e.value:e}function ce(e){return q(e)?e():Js(e)}const Il={get:(e,t,n)=>t==="__v_raw"?e:Js(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return ue(r)&&!ue(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Li(e){return gt(e)?e:new Proxy(e,Il)}class Nl{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new jn,{get:s,set:r}=t(n.track.bind(n),n.trigger.bind(n));this._get=s,this._set=r}get value(){return this._value=this._get()}set value(t){this._set(t)}}function Fl(e){return new Nl(e)}class Hl{constructor(t,n,s){this._object=t,this._key=n,this._defaultValue=s,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 pl(z(this._object),this._key)}}class Dl{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 $l(e,t,n){return ue(e)?e:q(e)?new Dl(e):se(e)&&arguments.length>1?jl(e,t,n):le(e)}function jl(e,t,n){const s=e[t];return ue(s)?s:new Hl(e,t,n)}class Vl{constructor(t,n,s){this.fn=t,this.setter=n,this._value=void 0,this.dep=new jn(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Gt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=s}notify(){if(this.flags|=16,!(this.flags&8)&&ne!==this)return bi(this,!0),!0}get value(){const t=this.dep.track();return Si(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function kl(e,t,n=!1){let s,r;return q(e)?s=e:(s=e.get,r=e.set),new Vl(s,r,n)}const dn={},Mn=new WeakMap;let dt;function Ul(e,t=!1,n=dt){if(n){let s=Mn.get(n);s||Mn.set(n,s=[]),s.push(e)}}function Wl(e,t,n=ee){const{immediate:s,deep:r,once:i,scheduler:o,augmentJob:l,call:c}=n,f=g=>r?g:Le(g)||r===!1||r===0?Xe(g,1):Xe(g);let a,d,m,v,_=!1,b=!1;if(ue(e)?(d=()=>e.value,_=Le(e)):gt(e)?(d=()=>f(e),_=!0):K(e)?(b=!0,_=e.some(g=>gt(g)||Le(g)),d=()=>e.map(g=>{if(ue(g))return g.value;if(gt(g))return f(g);if(q(g))return c?c(g,2):g()})):q(e)?t?d=c?()=>c(e,2):e:d=()=>{if(m){ot();try{m()}finally{lt()}}const g=dt;dt=a;try{return c?c(e,3,[v]):e(v)}finally{dt=g}}:d=We,t&&r){const g=d,O=r===!0?1/0:r;d=()=>Xe(g(),O)}const k=mi(),P=()=>{a.stop(),k&&k.active&&Vs(k.effects,a)};if(i&&t){const g=t;t=(...O)=>{g(...O),P()}}let D=b?new Array(e.length).fill(dn):dn;const p=g=>{if(!(!(a.flags&1)||!a.dirty&&!g))if(t){const O=a.run();if(r||_||(b?O.some(($,R)=>nt($,D[R])):nt(O,D))){m&&m();const $=dt;dt=a;try{const R=[O,D===dn?void 0:b&&D[0]===dn?[]:D,v];c?c(t,3,R):t(...R),D=O}finally{dt=$}}}else a.run()};return l&&l(p),a=new vi(d),a.scheduler=o?()=>o(p,!1):p,v=g=>Ul(g,!1,a),m=a.onStop=()=>{const g=Mn.get(a);if(g){if(c)c(g,4);else for(const O of g)O();Mn.delete(a)}},t?s?p(!0):D=a.run():o?o(p.bind(null,!0),!0):a.run(),P.pause=a.pause.bind(a),P.resume=a.resume.bind(a),P.stop=P,P}function Xe(e,t=1/0,n){if(t<=0||!se(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,ue(e))Xe(e.value,t,n);else if(K(e))for(let s=0;s{Xe(s,t,n)});else if(ui(e)){for(const s in e)Xe(e[s],t,n);for(const s of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,s)&&Xe(e[s],t,n)}return e}/** -* @vue/runtime-core v3.5.13 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function nn(e,t,n,s){try{return s?e(...s):e()}catch(r){sn(r,t,n)}}function De(e,t,n,s){if(q(e)){const r=nn(e,t,n,s);return r&&ai(r)&&r.catch(i=>{sn(i,t,n)}),r}if(K(e)){const r=[];for(let i=0;i>>1,r=Te[s],i=Yt(r);i=Yt(n)?Te.push(e):Te.splice(Kl(t),0,e),e.flags|=1,Ni()}}function Ni(){On||(On=Ii.then(Fi))}function ql(e){K(e)?Pt.push(...e):Ze&&e.id===-1?Ze.splice(Et+1,0,e):e.flags&1||(Pt.push(e),e.flags|=1),Ni()}function pr(e,t,n=ke+1){for(;nYt(n)-Yt(s));if(Pt.length=0,Ze){Ze.push(...t);return}for(Ze=t,Et=0;Ete.id==null?e.flags&2?-1:1/0:e.id;function Fi(e){try{for(ke=0;ke{s._d&&Mr(-1);const i=Ln(t);let o;try{o=e(...r)}finally{Ln(i),s._d&&Mr(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function Pf(e,t){if(he===null)return e;const n=Xn(he),s=e.dirs||(e.dirs=[]);for(let r=0;re.__isTeleport,Ut=e=>e&&(e.disabled||e.disabled===""),gr=e=>e&&(e.defer||e.defer===""),mr=e=>typeof SVGElement<"u"&&e instanceof SVGElement,vr=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,As=(e,t)=>{const n=e&&e.to;return oe(n)?t?t(n):null:n},ji={name:"Teleport",__isTeleport:!0,process(e,t,n,s,r,i,o,l,c,f){const{mc:a,pc:d,pbc:m,o:{insert:v,querySelector:_,createText:b,createComment:k}}=f,P=Ut(t.props);let{shapeFlag:D,children:p,dynamicChildren:g}=t;if(e==null){const O=t.el=b(""),$=t.anchor=b("");v(O,n,s),v($,n,s);const R=(T,M)=>{D&16&&(r&&r.isCE&&(r.ce._teleportTarget=T),a(p,T,M,r,i,o,l,c))},j=()=>{const T=t.target=As(t.props,_),M=Vi(T,t,b,v);T&&(o!=="svg"&&mr(T)?o="svg":o!=="mathml"&&vr(T)&&(o="mathml"),P||(R(T,M),xn(t,!1)))};P&&(R(n,$),xn(t,!0)),gr(t.props)?we(()=>{j(),t.el.__isMounted=!0},i):j()}else{if(gr(t.props)&&!e.el.__isMounted){we(()=>{ji.process(e,t,n,s,r,i,o,l,c,f),delete e.el.__isMounted},i);return}t.el=e.el,t.targetStart=e.targetStart;const O=t.anchor=e.anchor,$=t.target=e.target,R=t.targetAnchor=e.targetAnchor,j=Ut(e.props),T=j?n:$,M=j?O:R;if(o==="svg"||mr($)?o="svg":(o==="mathml"||vr($))&&(o="mathml"),g?(m(e.dynamicChildren,g,T,r,i,o,l),tr(e,t,!0)):c||d(e,t,T,M,r,i,o,l,!1),P)j?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):hn(t,n,O,f,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const A=t.target=As(t.props,_);A&&hn(t,A,null,f,0)}else j&&hn(t,$,R,f,1);xn(t,P)}},remove(e,t,n,{um:s,o:{remove:r}},i){const{shapeFlag:o,children:l,anchor:c,targetStart:f,targetAnchor:a,target:d,props:m}=e;if(d&&(r(f),r(a)),i&&r(c),o&16){const v=i||!Ut(m);for(let _=0;_{e.isMounted=!0}),Gi(()=>{e.isUnmounting=!0}),e}const Me=[Function,Array],ki={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Me,onEnter:Me,onAfterEnter:Me,onEnterCancelled:Me,onBeforeLeave:Me,onLeave:Me,onAfterLeave:Me,onLeaveCancelled:Me,onBeforeAppear:Me,onAppear:Me,onAfterAppear:Me,onAppearCancelled:Me},Ui=e=>{const t=e.subTree;return t.component?Ui(t.component):t},Jl={name:"BaseTransition",props:ki,setup(e,{slots:t}){const n=on(),s=Yl();return()=>{const r=t.default&&Ki(t.default(),!0);if(!r||!r.length)return;const i=Wi(r),o=z(e),{mode:l}=o;if(s.isLeaving)return ss(i);const c=yr(i);if(!c)return ss(i);let f=Rs(c,o,s,n,d=>f=d);c.type!==be&&Jt(c,f);let a=n.subTree&&yr(n.subTree);if(a&&a.type!==be&&!ht(c,a)&&Ui(n).type!==be){let d=Rs(a,o,s,n);if(Jt(a,d),l==="out-in"&&c.type!==be)return s.isLeaving=!0,d.afterLeave=()=>{s.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,a=void 0},ss(i);l==="in-out"&&c.type!==be?d.delayLeave=(m,v,_)=>{const b=Bi(s,a);b[String(a.key)]=a,m[et]=()=>{v(),m[et]=void 0,delete f.delayedLeave,a=void 0},f.delayedLeave=()=>{_(),delete f.delayedLeave,a=void 0}}:a=void 0}else a&&(a=void 0);return i}}};function Wi(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==be){t=n;break}}return t}const zl=Jl;function Bi(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Rs(e,t,n,s,r){const{appear:i,mode:o,persisted:l=!1,onBeforeEnter:c,onEnter:f,onAfterEnter:a,onEnterCancelled:d,onBeforeLeave:m,onLeave:v,onAfterLeave:_,onLeaveCancelled:b,onBeforeAppear:k,onAppear:P,onAfterAppear:D,onAppearCancelled:p}=t,g=String(e.key),O=Bi(n,e),$=(T,M)=>{T&&De(T,s,9,M)},R=(T,M)=>{const A=M[1];$(T,M),K(T)?T.every(w=>w.length<=1)&&A():T.length<=1&&A()},j={mode:o,persisted:l,beforeEnter(T){let M=c;if(!n.isMounted)if(i)M=k||c;else return;T[et]&&T[et](!0);const A=O[g];A&&ht(e,A)&&A.el[et]&&A.el[et](),$(M,[T])},enter(T){let M=f,A=a,w=d;if(!n.isMounted)if(i)M=P||f,A=D||a,w=p||d;else return;let F=!1;const Y=T[pn]=ie=>{F||(F=!0,ie?$(w,[T]):$(A,[T]),j.delayedLeave&&j.delayedLeave(),T[pn]=void 0)};M?R(M,[T,Y]):Y()},leave(T,M){const A=String(e.key);if(T[pn]&&T[pn](!0),n.isUnmounting)return M();$(m,[T]);let w=!1;const F=T[et]=Y=>{w||(w=!0,M(),Y?$(b,[T]):$(_,[T]),T[et]=void 0,O[A]===e&&delete O[A])};O[A]=e,v?R(v,[T,F]):F()},clone(T){const M=Rs(T,t,n,s,r);return r&&r(M),M}};return j}function ss(e){if(rn(e))return e=st(e),e.children=null,e}function yr(e){if(!rn(e))return $i(e.type)&&e.children?Wi(e.children):e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&q(n.default))return n.default()}}function Jt(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Jt(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 Ki(e,t=!1,n){let s=[],r=0;for(let i=0;i1)for(let i=0;izt(_,t&&(K(t)?t[b]:t),n,s,r));return}if(mt(s)&&!r){s.shapeFlag&512&&s.type.__asyncResolved&&s.component.subTree.component&&zt(e,t,n,s.component.subTree);return}const i=s.shapeFlag&4?Xn(s.component):s.el,o=r?null:i,{i:l,r:c}=e,f=t&&t.r,a=l.refs===ee?l.refs={}:l.refs,d=l.setupState,m=z(d),v=d===ee?()=>!1:_=>Q(m,_);if(f!=null&&f!==c&&(oe(f)?(a[f]=null,v(f)&&(d[f]=null)):ue(f)&&(f.value=null)),q(c))nn(c,l,12,[o,a]);else{const _=oe(c),b=ue(c);if(_||b){const k=()=>{if(e.f){const P=_?v(c)?d[c]:a[c]:c.value;r?K(P)&&Vs(P,i):K(P)?P.includes(i)||P.push(i):_?(a[c]=[i],v(c)&&(d[c]=a[c])):(c.value=[i],e.k&&(a[e.k]=c.value))}else _?(a[c]=o,v(c)&&(d[c]=o)):b&&(c.value=o,e.k&&(a[e.k]=o))};o?(k.id=-1,we(k,n)):k()}}}let br=!1;const xt=()=>{br||(console.error("Hydration completed but contains mismatches."),br=!0)},Ql=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",Zl=e=>e.namespaceURI.includes("MathML"),gn=e=>{if(e.nodeType===1){if(Ql(e))return"svg";if(Zl(e))return"mathml"}},At=e=>e.nodeType===8;function ec(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:f}}=e,a=(p,g)=>{if(!g.hasChildNodes()){n(null,p,g),Pn(),g._vnode=p;return}d(g.firstChild,p,null,null,null),Pn(),g._vnode=p},d=(p,g,O,$,R,j=!1)=>{j=j||!!g.dynamicChildren;const T=At(p)&&p.data==="[",M=()=>b(p,g,O,$,R,T),{type:A,ref:w,shapeFlag:F,patchFlag:Y}=g;let ie=p.nodeType;g.el=p,Y===-2&&(j=!1,g.dynamicChildren=null);let U=null;switch(A){case bt:ie!==3?g.children===""?(c(g.el=r(""),o(p),p),U=p):U=M():(p.data!==g.children&&(xt(),p.data=g.children),U=i(p));break;case be:D(p)?(U=i(p),P(g.el=p.content.firstChild,p,O)):ie!==8||T?U=M():U=i(p);break;case Bt:if(T&&(p=i(p),ie=p.nodeType),ie===1||ie===3){U=p;const X=!g.children.length;for(let V=0;V{j=j||!!g.dynamicChildren;const{type:T,props:M,patchFlag:A,shapeFlag:w,dirs:F,transition:Y}=g,ie=T==="input"||T==="option";if(ie||A!==-1){F&&Ue(g,null,O,"created");let U=!1;if(D(p)){U=ho(null,Y)&&O&&O.vnode.props&&O.vnode.props.appear;const V=p.content.firstChild;U&&Y.beforeEnter(V),P(V,p,O),g.el=p=V}if(w&16&&!(M&&(M.innerHTML||M.textContent))){let V=v(p.firstChild,g,p,O,$,R,j);for(;V;){mn(p,1)||xt();const fe=V;V=V.nextSibling,l(fe)}}else if(w&8){let V=g.children;V[0]===` -`&&(p.tagName==="PRE"||p.tagName==="TEXTAREA")&&(V=V.slice(1)),p.textContent!==V&&(mn(p,0)||xt(),p.textContent=g.children)}if(M){if(ie||!j||A&48){const V=p.tagName.includes("-");for(const fe in M)(ie&&(fe.endsWith("value")||fe==="indeterminate")||tn(fe)&&!Ot(fe)||fe[0]==="."||V)&&s(p,fe,null,M[fe],void 0,O)}else if(M.onClick)s(p,"onClick",null,M.onClick,void 0,O);else if(A&4&>(M.style))for(const V in M.style)M.style[V]}let X;(X=M&&M.onVnodeBeforeMount)&&Oe(X,O,g),F&&Ue(g,null,O,"beforeMount"),((X=M&&M.onVnodeMounted)||F||U)&&bo(()=>{X&&Oe(X,O,g),U&&Y.enter(p),F&&Ue(g,null,O,"mounted")},$)}return p.nextSibling},v=(p,g,O,$,R,j,T)=>{T=T||!!g.dynamicChildren;const M=g.children,A=M.length;for(let w=0;w{const{slotScopeIds:T}=g;T&&(R=R?R.concat(T):T);const M=o(p),A=v(i(p),g,M,O,$,R,j);return A&&At(A)&&A.data==="]"?i(g.anchor=A):(xt(),c(g.anchor=f("]"),M,A),A)},b=(p,g,O,$,R,j)=>{if(mn(p.parentElement,1)||xt(),g.el=null,j){const A=k(p);for(;;){const w=i(p);if(w&&w!==A)l(w);else break}}const T=i(p),M=o(p);return l(p),n(null,g,M,T,O,$,gn(M),R),O&&(O.vnode.el=g.el,vo(O,g.el)),T},k=(p,g="[",O="]")=>{let $=0;for(;p;)if(p=i(p),p&&At(p)&&(p.data===g&&$++,p.data===O)){if($===0)return i(p);$--}return p},P=(p,g,O)=>{const $=g.parentNode;$&&$.replaceChild(p,g);let R=O;for(;R;)R.vnode.el===g&&(R.vnode.el=R.subTree.el=p),R=R.parent},D=p=>p.nodeType===1&&p.tagName==="TEMPLATE";return[a,d]}const _r="data-allow-mismatch",tc={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function mn(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(_r);)e=e.parentElement;const n=e&&e.getAttribute(_r);if(n==null)return!1;if(n==="")return!0;{const s=n.split(",");return t===0&&s.includes("children")?!0:n.split(",").includes(tc[t])}}$n().requestIdleCallback;$n().cancelIdleCallback;function nc(e,t){if(At(e)&&e.data==="["){let n=1,s=e.nextSibling;for(;s;){if(s.nodeType===1){if(t(s)===!1)break}else if(At(s))if(s.data==="]"){if(--n===0)break}else s.data==="["&&n++;s=s.nextSibling}}else t(e)}const mt=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function If(e){q(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:s,delay:r=200,hydrate:i,timeout:o,suspensible:l=!0,onError:c}=e;let f=null,a,d=0;const m=()=>(d++,f=null,v()),v=()=>{let _;return f||(_=f=t().catch(b=>{if(b=b instanceof Error?b:new Error(String(b)),c)return new Promise((k,P)=>{c(b,()=>k(m()),()=>P(b),d+1)});throw b}).then(b=>_!==f&&f?f:(b&&(b.__esModule||b[Symbol.toStringTag]==="Module")&&(b=b.default),a=b,b)))};return Qs({name:"AsyncComponentWrapper",__asyncLoader:v,__asyncHydrate(_,b,k){const P=i?()=>{const D=i(k,p=>nc(_,p));D&&(b.bum||(b.bum=[])).push(D)}:k;a?P():v().then(()=>!b.isUnmounted&&P())},get __asyncResolved(){return a},setup(){const _=de;if(Zs(_),a)return()=>rs(a,_);const b=p=>{f=null,sn(p,_,13,!s)};if(l&&_.suspense||It)return v().then(p=>()=>rs(p,_)).catch(p=>(b(p),()=>s?ae(s,{error:p}):null));const k=le(!1),P=le(),D=le(!!r);return r&&setTimeout(()=>{D.value=!1},r),o!=null&&setTimeout(()=>{if(!k.value&&!P.value){const p=new Error(`Async component timed out after ${o}ms.`);b(p),P.value=p}},o),v().then(()=>{k.value=!0,_.parent&&rn(_.parent.vnode)&&_.parent.update()}).catch(p=>{b(p),P.value=p}),()=>{if(k.value&&a)return rs(a,_);if(P.value&&s)return ae(s,{error:P.value});if(n&&!D.value)return ae(n)}}})}function rs(e,t){const{ref:n,props:s,children:r,ce:i}=t.vnode,o=ae(e,s,r);return o.ref=n,o.ce=i,delete t.vnode.ce,o}const rn=e=>e.type.__isKeepAlive;function sc(e,t){qi(e,"a",t)}function rc(e,t){qi(e,"da",t)}function qi(e,t,n=de){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Bn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)rn(r.parent.vnode)&&ic(s,t,n,r),r=r.parent}}function ic(e,t,n,s){const r=Bn(t,e,s,!0);Kn(()=>{Vs(s[t],r)},n)}function Bn(e,t,n=de,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{ot();const l=ln(n),c=De(t,n,e,o);return l(),lt(),c});return s?r.unshift(i):r.push(i),i}}const ze=e=>(t,n=de)=>{(!It||e==="sp")&&Bn(e,(...s)=>t(...s),n)},oc=ze("bm"),Nt=ze("m"),lc=ze("bu"),cc=ze("u"),Gi=ze("bum"),Kn=ze("um"),ac=ze("sp"),fc=ze("rtg"),uc=ze("rtc");function dc(e,t=de){Bn("ec",e,t)}const Xi="components";function Nf(e,t){return Ji(Xi,e,!0,t)||e}const Yi=Symbol.for("v-ndc");function Ff(e){return oe(e)?Ji(Xi,e,!1)||e:e||Yi}function Ji(e,t,n=!0,s=!1){const r=he||de;if(r){const i=r.type;{const l=Jc(i,!1);if(l&&(l===t||l===Ne(t)||l===Dn(Ne(t))))return i}const o=wr(r[e]||i[e],t)||wr(r.appContext[e],t);return!o&&s?i:o}}function wr(e,t){return e&&(e[t]||e[Ne(t)]||e[Dn(Ne(t))])}function Hf(e,t,n,s){let r;const i=n,o=K(e);if(o||oe(e)){const l=o&>(e);let c=!1;l&&(c=!Le(e),e=Vn(e)),r=new Array(e.length);for(let f=0,a=e.length;ft(l,c,void 0,i));else{const l=Object.keys(e);r=new Array(l.length);for(let c=0,f=l.length;cZt(t)?!(t.type===be||t.type===xe&&!zi(t.children)):!0)?e:null}function $f(e,t){const n={};for(const s in e)n[/[A-Z]/.test(s)?`on:${s}`:wn(s)]=e[s];return n}const Ms=e=>e?xo(e)?Xn(e):Ms(e.parent):null,Wt=pe(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=>Ms(e.parent),$root:e=>Ms(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Zi(e),$forceUpdate:e=>e.f||(e.f=()=>{zs(e.update)}),$nextTick:e=>e.n||(e.n=Wn.bind(e.proxy)),$watch:e=>Nc.bind(e)}),is=(e,t)=>e!==ee&&!e.__isScriptSetup&&Q(e,t),hc={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let f;if(t[0]!=="$"){const v=o[t];if(v!==void 0)switch(v){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(is(s,t))return o[t]=1,s[t];if(r!==ee&&Q(r,t))return o[t]=2,r[t];if((f=e.propsOptions[0])&&Q(f,t))return o[t]=3,i[t];if(n!==ee&&Q(n,t))return o[t]=4,n[t];Os&&(o[t]=0)}}const a=Wt[t];let d,m;if(a)return t==="$attrs"&&ve(e.attrs,"get",""),a(e);if((d=l.__cssModules)&&(d=d[t]))return d;if(n!==ee&&Q(n,t))return o[t]=4,n[t];if(m=c.config.globalProperties,Q(m,t))return m[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return is(r,t)?(r[t]=n,!0):s!==ee&&Q(s,t)?(s[t]=n,!0):Q(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:i}},o){let l;return!!n[o]||e!==ee&&Q(e,o)||is(t,o)||(l=i[0])&&Q(l,o)||Q(s,o)||Q(Wt,o)||Q(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Q(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function jf(){return pc().slots}function pc(){const e=on();return e.setupContext||(e.setupContext=Co(e))}function Sr(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Os=!0;function gc(e){const t=Zi(e),n=e.proxy,s=e.ctx;Os=!1,t.beforeCreate&&Tr(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:f,created:a,beforeMount:d,mounted:m,beforeUpdate:v,updated:_,activated:b,deactivated:k,beforeDestroy:P,beforeUnmount:D,destroyed:p,unmounted:g,render:O,renderTracked:$,renderTriggered:R,errorCaptured:j,serverPrefetch:T,expose:M,inheritAttrs:A,components:w,directives:F,filters:Y}=t;if(f&&mc(f,s,null),o)for(const X in o){const V=o[X];q(V)&&(s[X]=V.bind(n))}if(r){const X=r.call(n,n);se(X)&&(e.data=Lt(X))}if(Os=!0,i)for(const X in i){const V=i[X],fe=q(V)?V.bind(n,n):q(V.get)?V.get.bind(n,n):We,cn=!q(V)&&q(V.set)?V.set.bind(n):We,ct=re({get:fe,set:cn});Object.defineProperty(s,X,{enumerable:!0,configurable:!0,get:()=>ct.value,set:je=>ct.value=je})}if(l)for(const X in l)Qi(l[X],s,n,X);if(c){const X=q(c)?c.call(n):c;Reflect.ownKeys(X).forEach(V=>{Sc(V,X[V])})}a&&Tr(a,e,"c");function U(X,V){K(V)?V.forEach(fe=>X(fe.bind(n))):V&&X(V.bind(n))}if(U(oc,d),U(Nt,m),U(lc,v),U(cc,_),U(sc,b),U(rc,k),U(dc,j),U(uc,$),U(fc,R),U(Gi,D),U(Kn,g),U(ac,T),K(M))if(M.length){const X=e.exposed||(e.exposed={});M.forEach(V=>{Object.defineProperty(X,V,{get:()=>n[V],set:fe=>n[V]=fe})})}else e.exposed||(e.exposed={});O&&e.render===We&&(e.render=O),A!=null&&(e.inheritAttrs=A),w&&(e.components=w),F&&(e.directives=F),T&&Zs(e)}function mc(e,t,n=We){K(e)&&(e=Ps(e));for(const s in e){const r=e[s];let i;se(r)?"default"in r?i=yt(r.from||s,r.default,!0):i=yt(r.from||s):i=yt(r),ue(i)?Object.defineProperty(t,s,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[s]=i}}function Tr(e,t,n){De(K(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Qi(e,t,n,s){let r=s.includes(".")?go(n,s):()=>n[s];if(oe(e)){const i=t[e];q(i)&&Ie(r,i)}else if(q(e))Ie(r,e.bind(n));else if(se(e))if(K(e))e.forEach(i=>Qi(i,t,n,s));else{const i=q(e.handler)?e.handler.bind(n):t[e.handler];q(i)&&Ie(r,i,e)}}function Zi(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(f=>In(c,f,o,!0)),In(c,t,o)),se(t)&&i.set(t,c),c}function In(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&In(e,i,n,!0),r&&r.forEach(o=>In(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=vc[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const vc={data:xr,props:Er,emits:Er,methods:jt,computed:jt,beforeCreate:_e,created:_e,beforeMount:_e,mounted:_e,beforeUpdate:_e,updated:_e,beforeDestroy:_e,beforeUnmount:_e,destroyed:_e,unmounted:_e,activated:_e,deactivated:_e,errorCaptured:_e,serverPrefetch:_e,components:jt,directives:jt,watch:bc,provide:xr,inject:yc};function xr(e,t){return t?e?function(){return pe(q(e)?e.call(this,this):e,q(t)?t.call(this,this):t)}:t:e}function yc(e,t){return jt(Ps(e),Ps(t))}function Ps(e){if(K(e)){const t={};for(let n=0;n1)return n&&q(t)?t.call(s&&s.proxy):t}}function to(){return!!(de||he||vt)}const no={},so=()=>Object.create(no),ro=e=>Object.getPrototypeOf(e)===no;function Tc(e,t,n,s=!1){const r={},i=so();e.propsDefaults=Object.create(null),io(e,t,r,i);for(const o in e.propsOptions[0])o in r||(r[o]=void 0);n?e.props=s?r:Pl(r):e.type.props?e.props=r:e.props=i,e.attrs=i}function xc(e,t,n,s){const{props:r,attrs:i,vnode:{patchFlag:o}}=e,l=z(r),[c]=e.propsOptions;let f=!1;if((s||o>0)&&!(o&16)){if(o&8){const a=e.vnode.dynamicProps;for(let d=0;d{c=!0;const[m,v]=oo(d,t,!0);pe(o,m),v&&l.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}if(!i&&!c)return se(e)&&s.set(e,Rt),Rt;if(K(i))for(let a=0;ae[0]==="_"||e==="$stable",er=e=>K(e)?e.map(Pe):[Pe(e)],Cc=(e,t,n)=>{if(t._n)return t;const s=Gl((...r)=>er(t(...r)),n);return s._c=!1,s},co=(e,t,n)=>{const s=e._ctx;for(const r in e){if(lo(r))continue;const i=e[r];if(q(i))t[r]=Cc(r,i,s);else if(i!=null){const o=er(i);t[r]=()=>o}}},ao=(e,t)=>{const n=er(t);e.slots.default=()=>n},fo=(e,t,n)=>{for(const s in t)(n||s!=="_")&&(e[s]=t[s])},Ac=(e,t,n)=>{const s=e.slots=so();if(e.vnode.shapeFlag&32){const r=t._;r?(fo(s,t,n),n&&di(s,"_",r,!0)):co(t,s)}else t&&ao(e,t)},Rc=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=ee;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:fo(r,t,n):(i=!t.$stable,co(t,r)),o=t}else t&&(ao(e,t),o={default:1});if(i)for(const l in r)!lo(l)&&o[l]==null&&delete r[l]},we=bo;function Mc(e){return uo(e)}function Oc(e){return uo(e,ec)}function uo(e,t){const n=$n();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:f,setElementText:a,parentNode:d,nextSibling:m,setScopeId:v=We,insertStaticContent:_}=e,b=(u,h,y,E=null,S=null,x=null,N=void 0,I=null,L=!!h.dynamicChildren)=>{if(u===h)return;u&&!ht(u,h)&&(E=an(u),je(u,S,x,!0),u=null),h.patchFlag===-2&&(L=!1,h.dynamicChildren=null);const{type:C,ref:B,shapeFlag:H}=h;switch(C){case bt:k(u,h,y,E);break;case be:P(u,h,y,E);break;case Bt:u==null&&D(h,y,E,N);break;case xe:w(u,h,y,E,S,x,N,I,L);break;default:H&1?O(u,h,y,E,S,x,N,I,L):H&6?F(u,h,y,E,S,x,N,I,L):(H&64||H&128)&&C.process(u,h,y,E,S,x,N,I,L,St)}B!=null&&S&&zt(B,u&&u.ref,x,h||u,!h)},k=(u,h,y,E)=>{if(u==null)s(h.el=l(h.children),y,E);else{const S=h.el=u.el;h.children!==u.children&&f(S,h.children)}},P=(u,h,y,E)=>{u==null?s(h.el=c(h.children||""),y,E):h.el=u.el},D=(u,h,y,E)=>{[u.el,u.anchor]=_(u.children,h,y,E,u.el,u.anchor)},p=({el:u,anchor:h},y,E)=>{let S;for(;u&&u!==h;)S=m(u),s(u,y,E),u=S;s(h,y,E)},g=({el:u,anchor:h})=>{let y;for(;u&&u!==h;)y=m(u),r(u),u=y;r(h)},O=(u,h,y,E,S,x,N,I,L)=>{h.type==="svg"?N="svg":h.type==="math"&&(N="mathml"),u==null?$(h,y,E,S,x,N,I,L):T(u,h,S,x,N,I,L)},$=(u,h,y,E,S,x,N,I)=>{let L,C;const{props:B,shapeFlag:H,transition:W,dirs:G}=u;if(L=u.el=o(u.type,x,B&&B.is,B),H&8?a(L,u.children):H&16&&j(u.children,L,null,E,S,os(u,x),N,I),G&&Ue(u,null,E,"created"),R(L,u,u.scopeId,N,E),B){for(const te in B)te!=="value"&&!Ot(te)&&i(L,te,null,B[te],x,E);"value"in B&&i(L,"value",null,B.value,x),(C=B.onVnodeBeforeMount)&&Oe(C,E,u)}G&&Ue(u,null,E,"beforeMount");const J=ho(S,W);J&&W.beforeEnter(L),s(L,h,y),((C=B&&B.onVnodeMounted)||J||G)&&we(()=>{C&&Oe(C,E,u),J&&W.enter(L),G&&Ue(u,null,E,"mounted")},S)},R=(u,h,y,E,S)=>{if(y&&v(u,y),E)for(let x=0;x{for(let C=L;C{const I=h.el=u.el;let{patchFlag:L,dynamicChildren:C,dirs:B}=h;L|=u.patchFlag&16;const H=u.props||ee,W=h.props||ee;let G;if(y&&at(y,!1),(G=W.onVnodeBeforeUpdate)&&Oe(G,y,h,u),B&&Ue(h,u,y,"beforeUpdate"),y&&at(y,!0),(H.innerHTML&&W.innerHTML==null||H.textContent&&W.textContent==null)&&a(I,""),C?M(u.dynamicChildren,C,I,y,E,os(h,S),x):N||V(u,h,I,null,y,E,os(h,S),x,!1),L>0){if(L&16)A(I,H,W,y,S);else if(L&2&&H.class!==W.class&&i(I,"class",null,W.class,S),L&4&&i(I,"style",H.style,W.style,S),L&8){const J=h.dynamicProps;for(let te=0;te{G&&Oe(G,y,h,u),B&&Ue(h,u,y,"updated")},E)},M=(u,h,y,E,S,x,N)=>{for(let I=0;I{if(h!==y){if(h!==ee)for(const x in h)!Ot(x)&&!(x in y)&&i(u,x,h[x],null,S,E);for(const x in y){if(Ot(x))continue;const N=y[x],I=h[x];N!==I&&x!=="value"&&i(u,x,I,N,S,E)}"value"in y&&i(u,"value",h.value,y.value,S)}},w=(u,h,y,E,S,x,N,I,L)=>{const C=h.el=u?u.el:l(""),B=h.anchor=u?u.anchor:l("");let{patchFlag:H,dynamicChildren:W,slotScopeIds:G}=h;G&&(I=I?I.concat(G):G),u==null?(s(C,y,E),s(B,y,E),j(h.children||[],y,B,S,x,N,I,L)):H>0&&H&64&&W&&u.dynamicChildren?(M(u.dynamicChildren,W,y,S,x,N,I),(h.key!=null||S&&h===S.subTree)&&tr(u,h,!0)):V(u,h,y,B,S,x,N,I,L)},F=(u,h,y,E,S,x,N,I,L)=>{h.slotScopeIds=I,u==null?h.shapeFlag&512?S.ctx.activate(h,y,E,N,L):Y(h,y,E,S,x,N,L):ie(u,h,L)},Y=(u,h,y,E,S,x,N)=>{const I=u.component=qc(u,E,S);if(rn(u)&&(I.ctx.renderer=St),Gc(I,!1,N),I.asyncDep){if(S&&S.registerDep(I,U,N),!u.el){const L=I.subTree=ae(be);P(null,L,h,y)}}else U(I,u,h,y,S,x,N)},ie=(u,h,y)=>{const E=h.component=u.component;if(jc(u,h,y))if(E.asyncDep&&!E.asyncResolved){X(E,h,y);return}else E.next=h,E.update();else h.el=u.el,E.vnode=h},U=(u,h,y,E,S,x,N)=>{const I=()=>{if(u.isMounted){let{next:H,bu:W,u:G,parent:J,vnode:te}=u;{const Ce=po(u);if(Ce){H&&(H.el=te.el,X(u,H,N)),Ce.asyncDep.then(()=>{u.isUnmounted||I()});return}}let Z=H,Ee;at(u,!1),H?(H.el=te.el,X(u,H,N)):H=te,W&&Sn(W),(Ee=H.props&&H.props.onVnodeBeforeUpdate)&&Oe(Ee,J,H,te),at(u,!0);const ge=ls(u),Fe=u.subTree;u.subTree=ge,b(Fe,ge,d(Fe.el),an(Fe),u,S,x),H.el=ge.el,Z===null&&vo(u,ge.el),G&&we(G,S),(Ee=H.props&&H.props.onVnodeUpdated)&&we(()=>Oe(Ee,J,H,te),S)}else{let H;const{el:W,props:G}=h,{bm:J,m:te,parent:Z,root:Ee,type:ge}=u,Fe=mt(h);if(at(u,!1),J&&Sn(J),!Fe&&(H=G&&G.onVnodeBeforeMount)&&Oe(H,Z,h),at(u,!0),W&&Qn){const Ce=()=>{u.subTree=ls(u),Qn(W,u.subTree,u,S,null)};Fe&&ge.__asyncHydrate?ge.__asyncHydrate(W,u,Ce):Ce()}else{Ee.ce&&Ee.ce._injectChildStyle(ge);const Ce=u.subTree=ls(u);b(null,Ce,y,E,u,S,x),h.el=Ce.el}if(te&&we(te,S),!Fe&&(H=G&&G.onVnodeMounted)){const Ce=h;we(()=>Oe(H,Z,Ce),S)}(h.shapeFlag&256||Z&&mt(Z.vnode)&&Z.vnode.shapeFlag&256)&&u.a&&we(u.a,S),u.isMounted=!0,h=y=E=null}};u.scope.on();const L=u.effect=new vi(I);u.scope.off();const C=u.update=L.run.bind(L),B=u.job=L.runIfDirty.bind(L);B.i=u,B.id=u.uid,L.scheduler=()=>zs(B),at(u,!0),C()},X=(u,h,y)=>{h.component=u;const E=u.vnode.props;u.vnode=h,u.next=null,xc(u,h.props,E,y),Rc(u,h.children,y),ot(),pr(u),lt()},V=(u,h,y,E,S,x,N,I,L=!1)=>{const C=u&&u.children,B=u?u.shapeFlag:0,H=h.children,{patchFlag:W,shapeFlag:G}=h;if(W>0){if(W&128){cn(C,H,y,E,S,x,N,I,L);return}else if(W&256){fe(C,H,y,E,S,x,N,I,L);return}}G&8?(B&16&&Ft(C,S,x),H!==C&&a(y,H)):B&16?G&16?cn(C,H,y,E,S,x,N,I,L):Ft(C,S,x,!0):(B&8&&a(y,""),G&16&&j(H,y,E,S,x,N,I,L))},fe=(u,h,y,E,S,x,N,I,L)=>{u=u||Rt,h=h||Rt;const C=u.length,B=h.length,H=Math.min(C,B);let W;for(W=0;WB?Ft(u,S,x,!0,!1,H):j(h,y,E,S,x,N,I,L,H)},cn=(u,h,y,E,S,x,N,I,L)=>{let C=0;const B=h.length;let H=u.length-1,W=B-1;for(;C<=H&&C<=W;){const G=u[C],J=h[C]=L?tt(h[C]):Pe(h[C]);if(ht(G,J))b(G,J,y,null,S,x,N,I,L);else break;C++}for(;C<=H&&C<=W;){const G=u[H],J=h[W]=L?tt(h[W]):Pe(h[W]);if(ht(G,J))b(G,J,y,null,S,x,N,I,L);else break;H--,W--}if(C>H){if(C<=W){const G=W+1,J=GW)for(;C<=H;)je(u[C],S,x,!0),C++;else{const G=C,J=C,te=new Map;for(C=J;C<=W;C++){const Ae=h[C]=L?tt(h[C]):Pe(h[C]);Ae.key!=null&&te.set(Ae.key,C)}let Z,Ee=0;const ge=W-J+1;let Fe=!1,Ce=0;const Ht=new Array(ge);for(C=0;C=ge){je(Ae,S,x,!0);continue}let Ve;if(Ae.key!=null)Ve=te.get(Ae.key);else for(Z=J;Z<=W;Z++)if(Ht[Z-J]===0&&ht(Ae,h[Z])){Ve=Z;break}Ve===void 0?je(Ae,S,x,!0):(Ht[Ve-J]=C+1,Ve>=Ce?Ce=Ve:Fe=!0,b(Ae,h[Ve],y,null,S,x,N,I,L),Ee++)}const ar=Fe?Pc(Ht):Rt;for(Z=ar.length-1,C=ge-1;C>=0;C--){const Ae=J+C,Ve=h[Ae],fr=Ae+1{const{el:x,type:N,transition:I,children:L,shapeFlag:C}=u;if(C&6){ct(u.component.subTree,h,y,E);return}if(C&128){u.suspense.move(h,y,E);return}if(C&64){N.move(u,h,y,St);return}if(N===xe){s(x,h,y);for(let H=0;HI.enter(x),S);else{const{leave:H,delayLeave:W,afterLeave:G}=I,J=()=>s(x,h,y),te=()=>{H(x,()=>{J(),G&&G()})};W?W(x,J,te):te()}else s(x,h,y)},je=(u,h,y,E=!1,S=!1)=>{const{type:x,props:N,ref:I,children:L,dynamicChildren:C,shapeFlag:B,patchFlag:H,dirs:W,cacheIndex:G}=u;if(H===-2&&(S=!1),I!=null&&zt(I,null,y,u,!0),G!=null&&(h.renderCache[G]=void 0),B&256){h.ctx.deactivate(u);return}const J=B&1&&W,te=!mt(u);let Z;if(te&&(Z=N&&N.onVnodeBeforeUnmount)&&Oe(Z,h,u),B&6)Jo(u.component,y,E);else{if(B&128){u.suspense.unmount(y,E);return}J&&Ue(u,null,h,"beforeUnmount"),B&64?u.type.remove(u,h,y,St,E):C&&!C.hasOnce&&(x!==xe||H>0&&H&64)?Ft(C,h,y,!1,!0):(x===xe&&H&384||!S&&B&16)&&Ft(L,h,y),E&&lr(u)}(te&&(Z=N&&N.onVnodeUnmounted)||J)&&we(()=>{Z&&Oe(Z,h,u),J&&Ue(u,null,h,"unmounted")},y)},lr=u=>{const{type:h,el:y,anchor:E,transition:S}=u;if(h===xe){Yo(y,E);return}if(h===Bt){g(u);return}const x=()=>{r(y),S&&!S.persisted&&S.afterLeave&&S.afterLeave()};if(u.shapeFlag&1&&S&&!S.persisted){const{leave:N,delayLeave:I}=S,L=()=>N(y,x);I?I(u.el,x,L):L()}else x()},Yo=(u,h)=>{let y;for(;u!==h;)y=m(u),r(u),u=y;r(h)},Jo=(u,h,y)=>{const{bum:E,scope:S,job:x,subTree:N,um:I,m:L,a:C}=u;Ar(L),Ar(C),E&&Sn(E),S.stop(),x&&(x.flags|=8,je(N,u,h,y)),I&&we(I,h),we(()=>{u.isUnmounted=!0},h),h&&h.pendingBranch&&!h.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===h.pendingId&&(h.deps--,h.deps===0&&h.resolve())},Ft=(u,h,y,E=!1,S=!1,x=0)=>{for(let N=x;N{if(u.shapeFlag&6)return an(u.component.subTree);if(u.shapeFlag&128)return u.suspense.next();const h=m(u.anchor||u.el),y=h&&h[Di];return y?m(y):h};let Jn=!1;const cr=(u,h,y)=>{u==null?h._vnode&&je(h._vnode,null,null,!0):b(h._vnode||null,u,h,null,null,null,y),h._vnode=u,Jn||(Jn=!0,pr(),Pn(),Jn=!1)},St={p:b,um:je,m:ct,r:lr,mt:Y,mc:j,pc:V,pbc:M,n:an,o:e};let zn,Qn;return t&&([zn,Qn]=t(St)),{render:cr,hydrate:zn,createApp:wc(cr,zn)}}function os({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 at({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function ho(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function tr(e,t,n=!1){const s=e.children,r=t.children;if(K(s)&&K(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function po(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:po(t)}function Ar(e){if(e)for(let t=0;tyt(Lc);function nr(e,t){return qn(e,null,t)}function Vf(e,t){return qn(e,null,{flush:"post"})}function Ie(e,t,n){return qn(e,t,n)}function qn(e,t,n=ee){const{immediate:s,deep:r,flush:i,once:o}=n,l=pe({},n),c=t&&s||!t&&i!=="post";let f;if(It){if(i==="sync"){const v=Ic();f=v.__watcherHandles||(v.__watcherHandles=[])}else if(!c){const v=()=>{};return v.stop=We,v.resume=We,v.pause=We,v}}const a=de;l.call=(v,_,b)=>De(v,a,_,b);let d=!1;i==="post"?l.scheduler=v=>{we(v,a&&a.suspense)}:i!=="sync"&&(d=!0,l.scheduler=(v,_)=>{_?v():zs(v)}),l.augmentJob=v=>{t&&(v.flags|=4),d&&(v.flags|=2,a&&(v.id=a.uid,v.i=a))};const m=Wl(e,t,l);return It&&(f?f.push(m):c&&m()),m}function Nc(e,t,n){const s=this.proxy,r=oe(e)?e.includes(".")?go(s,e):()=>s[e]:e.bind(s,s);let i;q(t)?i=t:(i=t.handler,n=t);const o=ln(this),l=qn(r,i.bind(s),n);return o(),l}function go(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;rt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Ne(t)}Modifiers`]||e[`${it(t)}Modifiers`];function Hc(e,t,...n){if(e.isUnmounted)return;const s=e.vnode.props||ee;let r=n;const i=t.startsWith("update:"),o=i&&Fc(s,t.slice(7));o&&(o.trim&&(r=n.map(a=>oe(a)?a.trim():a)),o.number&&(r=n.map(Ss)));let l,c=s[l=wn(t)]||s[l=wn(Ne(t))];!c&&i&&(c=s[l=wn(it(t))]),c&&De(c,e,6,r);const f=s[l+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,De(f,e,6,r)}}function mo(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!q(e)){const c=f=>{const a=mo(f,t,!0);a&&(l=!0,pe(o,a))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(se(e)&&s.set(e,null),null):(K(i)?i.forEach(c=>o[c]=null):pe(o,i),se(e)&&s.set(e,o),o)}function Gn(e,t){return!e||!tn(t)?!1:(t=t.slice(2).replace(/Once$/,""),Q(e,t[0].toLowerCase()+t.slice(1))||Q(e,it(t))||Q(e,t))}function ls(e){const{type:t,vnode:n,proxy:s,withProxy:r,propsOptions:[i],slots:o,attrs:l,emit:c,render:f,renderCache:a,props:d,data:m,setupState:v,ctx:_,inheritAttrs:b}=e,k=Ln(e);let P,D;try{if(n.shapeFlag&4){const g=r||s,O=g;P=Pe(f.call(O,g,a,d,v,m,_)),D=l}else{const g=t;P=Pe(g.length>1?g(d,{attrs:l,slots:o,emit:c}):g(d,null)),D=t.props?l:Dc(l)}}catch(g){Kt.length=0,sn(g,e,1),P=ae(be)}let p=P;if(D&&b!==!1){const g=Object.keys(D),{shapeFlag:O}=p;g.length&&O&7&&(i&&g.some(js)&&(D=$c(D,i)),p=st(p,D,!1,!0))}return n.dirs&&(p=st(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&Jt(p,n.transition),P=p,Ln(k),P}const Dc=e=>{let t;for(const n in e)(n==="class"||n==="style"||tn(n))&&((t||(t={}))[n]=e[n]);return t},$c=(e,t)=>{const n={};for(const s in e)(!js(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function jc(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Rr(s,o,f):!!o;if(c&8){const a=t.dynamicProps;for(let d=0;de.__isSuspense;function bo(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):ql(e)}const xe=Symbol.for("v-fgt"),bt=Symbol.for("v-txt"),be=Symbol.for("v-cmt"),Bt=Symbol.for("v-stc"),Kt=[];let Re=null;function Is(e=!1){Kt.push(Re=e?null:[])}function Vc(){Kt.pop(),Re=Kt[Kt.length-1]||null}let Qt=1;function Mr(e,t=!1){Qt+=e,e<0&&Re&&t&&(Re.hasOnce=!0)}function _o(e){return e.dynamicChildren=Qt>0?Re||Rt:null,Vc(),Qt>0&&Re&&Re.push(e),e}function kf(e,t,n,s,r,i){return _o(So(e,t,n,s,r,i,!0))}function Ns(e,t,n,s,r){return _o(ae(e,t,n,s,r,!0))}function Zt(e){return e?e.__v_isVNode===!0:!1}function ht(e,t){return e.type===t.type&&e.key===t.key}const wo=({key:e})=>e??null,En=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?oe(e)||ue(e)||q(e)?{i:he,r:e,k:t,f:!!n}:e:null);function So(e,t=null,n=null,s=0,r=null,i=e===xe?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&wo(t),ref:t&&En(t),scopeId:Hi,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:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:he};return l?(sr(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=oe(n)?8:16),Qt>0&&!o&&Re&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Re.push(c),c}const ae=kc;function kc(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===Yi)&&(e=be),Zt(e)){const l=st(e,t,!0);return n&&sr(l,n),Qt>0&&!i&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag=-2,l}if(zc(e)&&(e=e.__vccOpts),t){t=Uc(t);let{class:l,style:c}=t;l&&!oe(l)&&(t.class=Ws(l)),se(c)&&(Ys(c)&&!K(c)&&(c=pe({},c)),t.style=Us(c))}const o=oe(e)?1:yo(e)?128:$i(e)?64:se(e)?4:q(e)?2:0;return So(e,t,n,s,r,o,i,!0)}function Uc(e){return e?Ys(e)||ro(e)?pe({},e):e:null}function st(e,t,n=!1,s=!1){const{props:r,ref:i,patchFlag:o,children:l,transition:c}=e,f=t?Wc(r||{},t):r,a={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&wo(f),ref:t&&t.ref?n&&i?K(i)?i.concat(En(t)):[i,En(t)]:En(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==xe?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&st(e.ssContent),ssFallback:e.ssFallback&&st(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&s&&Jt(a,c.clone(a)),a}function To(e=" ",t=0){return ae(bt,null,e,t)}function Uf(e,t){const n=ae(Bt,null,e);return n.staticCount=t,n}function Wf(e="",t=!1){return t?(Is(),Ns(be,null,e)):ae(be,null,e)}function Pe(e){return e==null||typeof e=="boolean"?ae(be):K(e)?ae(xe,null,e.slice()):Zt(e)?tt(e):ae(bt,null,String(e))}function tt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:st(e)}function sr(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),sr(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!ro(t)?t._ctx=he:r===3&&he&&(he.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else q(t)?(t={default:t,_ctx:he},n=32):(t=String(t),s&64?(n=16,t=[To(t)]):n=8);e.children=t,e.shapeFlag|=n}function Wc(...e){const t={};for(let n=0;nde||he;let Nn,Fs;{const e=$n(),t=(n,s)=>{let r;return(r=e[n])||(r=e[n]=[]),r.push(s),i=>{r.length>1?r.forEach(o=>o(i)):r[0](i)}};Nn=t("__VUE_INSTANCE_SETTERS__",n=>de=n),Fs=t("__VUE_SSR_SETTERS__",n=>It=n)}const ln=e=>{const t=de;return Nn(e),e.scope.on(),()=>{e.scope.off(),Nn(t)}},Or=()=>{de&&de.scope.off(),Nn(null)};function xo(e){return e.vnode.shapeFlag&4}let It=!1;function Gc(e,t=!1,n=!1){t&&Fs(t);const{props:s,children:r}=e.vnode,i=xo(e);Tc(e,s,i,t),Ac(e,r,n);const o=i?Xc(e,t):void 0;return t&&Fs(!1),o}function Xc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,hc);const{setup:s}=n;if(s){ot();const r=e.setupContext=s.length>1?Co(e):null,i=ln(e),o=nn(s,e,0,[e.props,r]),l=ai(o);if(lt(),i(),(l||e.sp)&&!mt(e)&&Zs(e),l){if(o.then(Or,Or),t)return o.then(c=>{Pr(e,c)}).catch(c=>{sn(c,e,0)});e.asyncDep=o}else Pr(e,o)}else Eo(e)}function Pr(e,t,n){q(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:se(t)&&(e.setupState=Li(t)),Eo(e)}function Eo(e,t,n){const s=e.type;e.render||(e.render=s.render||We);{const r=ln(e);ot();try{gc(e)}finally{lt(),r()}}}const Yc={get(e,t){return ve(e,"get",""),e[t]}};function Co(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Yc),slots:e.slots,emit:e.emit,expose:t}}function Xn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Li(Tn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Wt)return Wt[n](e)},has(t,n){return n in t||n in Wt}})):e.proxy}function Jc(e,t=!0){return q(e)?e.displayName||e.name:e.name||t&&e.__name}function zc(e){return q(e)&&"__vccOpts"in e}const re=(e,t)=>kl(e,t,It);function Hs(e,t,n){const s=arguments.length;return s===2?se(t)&&!K(t)?Zt(t)?ae(e,null,[t]):ae(e,t):ae(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Zt(n)&&(n=[n]),ae(e,t,n))}const Qc="3.5.13";/** -* @vue/runtime-dom v3.5.13 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let Ds;const Lr=typeof window<"u"&&window.trustedTypes;if(Lr)try{Ds=Lr.createPolicy("vue",{createHTML:e=>e})}catch{}const Ao=Ds?e=>Ds.createHTML(e):e=>e,Zc="http://www.w3.org/2000/svg",ea="http://www.w3.org/1998/Math/MathML",qe=typeof document<"u"?document:null,Ir=qe&&qe.createElement("template"),ta={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t==="svg"?qe.createElementNS(Zc,e):t==="mathml"?qe.createElementNS(ea,e):n?qe.createElement(e,{is:n}):qe.createElement(e);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>qe.createTextNode(e),createComment:e=>qe.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>qe.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{Ir.innerHTML=Ao(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const l=Ir.content;if(s==="svg"||s==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Qe="transition",$t="animation",en=Symbol("_vtc"),Ro={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},na=pe({},ki,Ro),sa=e=>(e.displayName="Transition",e.props=na,e),Bf=sa((e,{slots:t})=>Hs(zl,ra(e),t)),ft=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},Nr=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function ra(e){const t={};for(const w in e)w in Ro||(t[w]=e[w]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:f=o,appearToClass:a=l,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,_=ia(r),b=_&&_[0],k=_&&_[1],{onBeforeEnter:P,onEnter:D,onEnterCancelled:p,onLeave:g,onLeaveCancelled:O,onBeforeAppear:$=P,onAppear:R=D,onAppearCancelled:j=p}=t,T=(w,F,Y,ie)=>{w._enterCancelled=ie,ut(w,F?a:l),ut(w,F?f:o),Y&&Y()},M=(w,F)=>{w._isLeaving=!1,ut(w,d),ut(w,v),ut(w,m),F&&F()},A=w=>(F,Y)=>{const ie=w?R:D,U=()=>T(F,w,Y);ft(ie,[F,U]),Fr(()=>{ut(F,w?c:i),Ke(F,w?a:l),Nr(ie)||Hr(F,s,b,U)})};return pe(t,{onBeforeEnter(w){ft(P,[w]),Ke(w,i),Ke(w,o)},onBeforeAppear(w){ft($,[w]),Ke(w,c),Ke(w,f)},onEnter:A(!1),onAppear:A(!0),onLeave(w,F){w._isLeaving=!0;const Y=()=>M(w,F);Ke(w,d),w._enterCancelled?(Ke(w,m),jr()):(jr(),Ke(w,m)),Fr(()=>{w._isLeaving&&(ut(w,d),Ke(w,v),Nr(g)||Hr(w,s,k,Y))}),ft(g,[w,Y])},onEnterCancelled(w){T(w,!1,void 0,!0),ft(p,[w])},onAppearCancelled(w){T(w,!0,void 0,!0),ft(j,[w])},onLeaveCancelled(w){M(w),ft(O,[w])}})}function ia(e){if(e==null)return null;if(se(e))return[cs(e.enter),cs(e.leave)];{const t=cs(e);return[t,t]}}function cs(e){return nl(e)}function Ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[en]||(e[en]=new Set)).add(t)}function ut(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[en];n&&(n.delete(t),n.size||(e[en]=void 0))}function Fr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let oa=0;function Hr(e,t,n,s){const r=e._endId=++oa,i=()=>{r===e._endId&&s()};if(n!=null)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=la(e,t);if(!o)return s();const f=o+"end";let a=0;const d=()=>{e.removeEventListener(f,m),i()},m=v=>{v.target===e&&++a>=c&&d()};setTimeout(()=>{a(n[_]||"").split(", "),r=s(`${Qe}Delay`),i=s(`${Qe}Duration`),o=Dr(r,i),l=s(`${$t}Delay`),c=s(`${$t}Duration`),f=Dr(l,c);let a=null,d=0,m=0;t===Qe?o>0&&(a=Qe,d=o,m=i.length):t===$t?f>0&&(a=$t,d=f,m=c.length):(d=Math.max(o,f),a=d>0?o>f?Qe:$t:null,m=a?a===Qe?i.length:c.length:0);const v=a===Qe&&/\b(transform|all)(,|$)/.test(s(`${Qe}Property`).toString());return{type:a,timeout:d,propCount:m,hasTransform:v}}function Dr(e,t){for(;e.length$r(n)+$r(e[s])))}function $r(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function jr(){return document.body.offsetHeight}function ca(e,t,n){const s=e[en];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Vr=Symbol("_vod"),aa=Symbol("_vsh"),fa=Symbol(""),ua=/(^|;)\s*display\s*:/;function da(e,t,n){const s=e.style,r=oe(n);let i=!1;if(n&&!r){if(t)if(oe(t))for(const o of t.split(";")){const l=o.slice(0,o.indexOf(":")).trim();n[l]==null&&Cn(s,l,"")}else for(const o in t)n[o]==null&&Cn(s,o,"");for(const o in n)o==="display"&&(i=!0),Cn(s,o,n[o])}else if(r){if(t!==n){const o=s[fa];o&&(n+=";"+o),s.cssText=n,i=ua.test(n)}}else t&&e.removeAttribute("style");Vr in e&&(e[Vr]=i?s.display:"",e[aa]&&(s.display="none"))}const kr=/\s*!important$/;function Cn(e,t,n){if(K(n))n.forEach(s=>Cn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=ha(e,t);kr.test(n)?e.setProperty(it(s),n.replace(kr,""),"important"):e[s]=n}}const Ur=["Webkit","Moz","ms"],as={};function ha(e,t){const n=as[t];if(n)return n;let s=Ne(t);if(s!=="filter"&&s in e)return as[t]=s;s=Dn(s);for(let r=0;rfs||(va.then(()=>fs=0),fs=Date.now());function ba(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;De(_a(s,n.value),t,5,[s])};return n.value=e,n.attached=ya(),n}function _a(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Xr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,wa=(e,t,n,s,r,i)=>{const o=r==="svg";t==="class"?ca(e,s,o):t==="style"?da(e,n,s):tn(t)?js(t)||ga(e,t,n,s,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Sa(e,t,s,o))?(Kr(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Br(e,t,s,o,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!oe(s))?Kr(e,Ne(t),s,i,t):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),Br(e,t,s,o))};function Sa(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&Xr(t)&&q(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const r=e.tagName;if(r==="IMG"||r==="VIDEO"||r==="CANVAS"||r==="SOURCE")return!1}return Xr(t)&&oe(n)?!1:t in e}const Yr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>Sn(t,n):t};function Ta(e){e.target.composing=!0}function Jr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const us=Symbol("_assign"),Kf={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e[us]=Yr(r);const i=s||r.props&&r.props.type==="number";Ct(e,t?"change":"input",o=>{if(o.target.composing)return;let l=e.value;n&&(l=l.trim()),i&&(l=Ss(l)),e[us](l)}),n&&Ct(e,"change",()=>{e.value=e.value.trim()}),t||(Ct(e,"compositionstart",Ta),Ct(e,"compositionend",Jr),Ct(e,"change",Jr))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:s,trim:r,number:i}},o){if(e[us]=Yr(o),e.composing)return;const l=(i||e.type==="number")&&!/^0\d/.test(e.value)?Ss(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(s&&t===n||r&&e.value.trim()===c)||(e.value=c))}},xa=["ctrl","shift","alt","meta"],Ea={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)=>xa.some(n=>e[`${n}Key`]&&!t.includes(n))},qf=(e,t)=>{const n=e._withMods||(e._withMods={}),s=t.join(".");return n[s]||(n[s]=(r,...i)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),s=t.join(".");return n[s]||(n[s]=r=>{if(!("key"in r))return;const i=it(r.key);if(t.some(o=>o===i||Ca[o]===i))return e(r)})},Mo=pe({patchProp:wa},ta);let qt,zr=!1;function Aa(){return qt||(qt=Mc(Mo))}function Ra(){return qt=zr?qt:Oc(Mo),zr=!0,qt}const Xf=(...e)=>{const t=Aa().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Po(s);if(!r)return;const i=t._component;!q(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent="");const o=n(r,!1,Oo(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),o},t},Yf=(...e)=>{const t=Ra().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=Po(s);if(r)return n(r,!0,Oo(r))},t};function Oo(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Po(e){return oe(e)?document.querySelector(e):e}const Ma=window.__VP_SITE_DATA__;function Lo(e){return mi()?(ul(e),!0):!1}const ds=new WeakMap,Oa=(...e)=>{var t;const n=e[0],s=(t=on())==null?void 0:t.proxy;if(s==null&&!to())throw new Error("injectLocal must be called in setup");return s&&ds.has(s)&&n in ds.get(s)?ds.get(s)[n]:yt(...e)},Io=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Jf=e=>e!=null,Pa=Object.prototype.toString,La=e=>Pa.call(e)==="[object Object]",rt=()=>{},Qr=Ia();function Ia(){var e,t;return Io&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function rr(e,t){function n(...s){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,s),{fn:t,thisArg:this,args:s})).then(r).catch(i)})}return n}const No=e=>e();function Fo(e,t={}){let n,s,r=rt;const i=c=>{clearTimeout(c),r(),r=rt};let o;return c=>{const f=ce(e),a=ce(t.maxWait);return n&&i(n),f<=0||a!==void 0&&a<=0?(s&&(i(s),s=null),Promise.resolve(c())):new Promise((d,m)=>{r=t.rejectOnCancel?m:d,o=c,a&&!s&&(s=setTimeout(()=>{n&&i(n),s=null,d(o())},a)),n=setTimeout(()=>{s&&i(s),s=null,d(c())},f)})}}function Na(...e){let t=0,n,s=!0,r=rt,i,o,l,c,f;!ue(e[0])&&typeof e[0]=="object"?{delay:o,trailing:l=!0,leading:c=!0,rejectOnCancel:f=!1}=e[0]:[o,l=!0,c=!0,f=!1]=e;const a=()=>{n&&(clearTimeout(n),n=void 0,r(),r=rt)};return m=>{const v=ce(o),_=Date.now()-t,b=()=>i=m();return a(),v<=0?(t=Date.now(),b()):(_>v&&(c||!s)?(t=Date.now(),b()):l&&(i=new Promise((k,P)=>{r=f?P:k,n=setTimeout(()=>{t=Date.now(),s=!0,k(b()),a()},Math.max(0,v-_))})),!c&&!n&&(n=setTimeout(()=>s=!0,v)),s=!1,i)}}function Fa(e=No){const t=le(!0);function n(){t.value=!1}function s(){t.value=!0}const r=(...i)=>{t.value&&e(...i)};return{isActive:kn(t),pause:n,resume:s,eventFilter:r}}function Zr(e){return e.endsWith("rem")?Number.parseFloat(e)*16:Number.parseFloat(e)}function Ha(e){return on()}function hs(e){return Array.isArray(e)?e:[e]}function Ho(...e){if(e.length!==1)return $l(...e);const t=e[0];return typeof t=="function"?kn(Fl(()=>({get:t,set:rt}))):le(t)}function Da(e,t=200,n={}){return rr(Fo(t,n),e)}function $a(e,t=200,n=!1,s=!0,r=!1){return rr(Na(t,n,s,r),e)}function Do(e,t,n={}){const{eventFilter:s=No,...r}=n;return Ie(e,rr(s,t),r)}function ja(e,t,n={}){const{eventFilter:s,...r}=n,{eventFilter:i,pause:o,resume:l,isActive:c}=Fa(s);return{stop:Do(e,t,{...r,eventFilter:i}),pause:o,resume:l,isActive:c}}function Yn(e,t=!0,n){Ha()?Nt(e,n):t?e():Wn(e)}function zf(e,t,n={}){const{debounce:s=0,maxWait:r=void 0,...i}=n;return Do(e,t,{...i,eventFilter:Fo(s,{maxWait:r})})}function Va(e,t,n){return Ie(e,t,{...n,immediate:!0})}function Qf(e,t,n){let s;ue(n)?s={evaluating:n}:s={};const{lazy:r=!1,evaluating:i=void 0,shallow:o=!0,onError:l=rt}=s,c=le(!r),f=o?Un(t):le(t);let a=0;return nr(async d=>{if(!c.value)return;a++;const m=a;let v=!1;i&&Promise.resolve().then(()=>{i.value=!0});try{const _=await e(b=>{d(()=>{i&&(i.value=!1),v||b()})});m===a&&(f.value=_)}catch(_){l(_)}finally{i&&m===a&&(i.value=!1),v=!0}}),r?re(()=>(c.value=!0,f.value)):f}const $e=Io?window:void 0;function ir(e){var t;const n=ce(e);return(t=n==null?void 0:n.$el)!=null?t:n}function Ye(...e){const t=[],n=()=>{t.forEach(l=>l()),t.length=0},s=(l,c,f,a)=>(l.addEventListener(c,f,a),()=>l.removeEventListener(c,f,a)),r=re(()=>{const l=hs(ce(e[0])).filter(c=>c!=null);return l.every(c=>typeof c!="string")?l:void 0}),i=Va(()=>{var l,c;return[(c=(l=r.value)==null?void 0:l.map(f=>ir(f)))!=null?c:[$e].filter(f=>f!=null),hs(ce(r.value?e[1]:e[0])),hs(Js(r.value?e[2]:e[1])),ce(r.value?e[3]:e[2])]},([l,c,f,a])=>{if(n(),!(l!=null&&l.length)||!(c!=null&&c.length)||!(f!=null&&f.length))return;const d=La(a)?{...a}:a;t.push(...l.flatMap(m=>c.flatMap(v=>f.map(_=>s(m,v,_,d)))))},{flush:"post"}),o=()=>{i(),n()};return Lo(n),o}function ka(){const e=le(!1),t=on();return t&&Nt(()=>{e.value=!0},t),e}function Ua(e){const t=ka();return re(()=>(t.value,!!e()))}function Wa(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Zf(...e){let t,n,s={};e.length===3?(t=e[0],n=e[1],s=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],s=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:r=$e,eventName:i="keydown",passive:o=!1,dedupe:l=!1}=s,c=Wa(t);return Ye(r,i,a=>{a.repeat&&ce(l)||c(a)&&n(a)},o)}const Ba=Symbol("vueuse-ssr-width");function Ka(){const e=to()?Oa(Ba,null):null;return typeof e=="number"?e:void 0}function $o(e,t={}){const{window:n=$e,ssrWidth:s=Ka()}=t,r=Ua(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function"),i=le(typeof s=="number"),o=Un(),l=le(!1),c=f=>{l.value=f.matches};return nr(()=>{if(i.value){i.value=!r.value;const f=ce(e).split(",");l.value=f.some(a=>{const d=a.includes("not all"),m=a.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),v=a.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let _=!!(m||v);return m&&_&&(_=s>=Zr(m[1])),v&&_&&(_=s<=Zr(v[1])),d?!_:_});return}r.value&&(o.value=n.matchMedia(ce(e)),l.value=o.value.matches)}),Ye(o,"change",c,{passive:!0}),re(()=>l.value)}const vn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},yn="__vueuse_ssr_handlers__",qa=Ga();function Ga(){return yn in vn||(vn[yn]=vn[yn]||{}),vn[yn]}function jo(e,t){return qa[e]||t}function Vo(e){return $o("(prefers-color-scheme: dark)",e)}function Xa(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Ya={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},ei="vueuse-storage";function or(e,t,n,s={}){var r;const{flush:i="pre",deep:o=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:f=!1,shallow:a,window:d=$e,eventFilter:m,onError:v=A=>{console.error(A)},initOnMounted:_}=s,b=(a?Un:le)(typeof t=="function"?t():t),k=re(()=>ce(e));if(!n)try{n=jo("getDefaultStorage",()=>{var A;return(A=$e)==null?void 0:A.localStorage})()}catch(A){v(A)}if(!n)return b;const P=ce(t),D=Xa(P),p=(r=s.serializer)!=null?r:Ya[D],{pause:g,resume:O}=ja(b,()=>R(b.value),{flush:i,deep:o,eventFilter:m});Ie(k,()=>T(),{flush:i}),d&&l&&Yn(()=>{n instanceof Storage?Ye(d,"storage",T,{passive:!0}):Ye(d,ei,M),_&&T()}),_||T();function $(A,w){if(d){const F={key:k.value,oldValue:A,newValue:w,storageArea:n};d.dispatchEvent(n instanceof Storage?new StorageEvent("storage",F):new CustomEvent(ei,{detail:F}))}}function R(A){try{const w=n.getItem(k.value);if(A==null)$(w,null),n.removeItem(k.value);else{const F=p.write(A);w!==F&&(n.setItem(k.value,F),$(w,F))}}catch(w){v(w)}}function j(A){const w=A?A.newValue:n.getItem(k.value);if(w==null)return c&&P!=null&&n.setItem(k.value,p.write(P)),P;if(!A&&f){const F=p.read(w);return typeof f=="function"?f(F,P):D==="object"&&!Array.isArray(F)?{...P,...F}:F}else return typeof w!="string"?w:p.read(w)}function T(A){if(!(A&&A.storageArea!==n)){if(A&&A.key==null){b.value=P;return}if(!(A&&A.key!==k.value)){g();try{(A==null?void 0:A.newValue)!==p.write(b.value)&&(b.value=j(A))}catch(w){v(w)}finally{A?Wn(O):O()}}}}function M(A){T(A.detail)}return b}const Ja="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function za(e={}){const{selector:t="html",attribute:n="class",initialValue:s="auto",window:r=$e,storage:i,storageKey:o="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:f,disableTransition:a=!0}=e,d={auto:"",light:"light",dark:"dark",...e.modes||{}},m=Vo({window:r}),v=re(()=>m.value?"dark":"light"),_=c||(o==null?Ho(s):or(o,s,i,{window:r,listenToStorageChanges:l})),b=re(()=>_.value==="auto"?v.value:_.value),k=jo("updateHTMLAttrs",(g,O,$)=>{const R=typeof g=="string"?r==null?void 0:r.document.querySelector(g):ir(g);if(!R)return;const j=new Set,T=new Set;let M=null;if(O==="class"){const w=$.split(/\s/g);Object.values(d).flatMap(F=>(F||"").split(/\s/g)).filter(Boolean).forEach(F=>{w.includes(F)?j.add(F):T.add(F)})}else M={key:O,value:$};if(j.size===0&&T.size===0&&M===null)return;let A;a&&(A=r.document.createElement("style"),A.appendChild(document.createTextNode(Ja)),r.document.head.appendChild(A));for(const w of j)R.classList.add(w);for(const w of T)R.classList.remove(w);M&&R.setAttribute(M.key,M.value),a&&(r.getComputedStyle(A).opacity,document.head.removeChild(A))});function P(g){var O;k(t,n,(O=d[g])!=null?O:g)}function D(g){e.onChanged?e.onChanged(g,P):P(g)}Ie(b,D,{flush:"post",immediate:!0}),Yn(()=>D(b.value));const p=re({get(){return f?_.value:b.value},set(g){_.value=g}});return Object.assign(p,{store:_,system:v,state:b})}function Qa(e={}){const{valueDark:t="dark",valueLight:n=""}=e,s=za({...e,onChanged:(o,l)=>{var c;e.onChanged?(c=e.onChanged)==null||c.call(e,o==="dark",l,o):l(o)},modes:{dark:t,light:n}}),r=re(()=>s.system.value);return re({get(){return s.value==="dark"},set(o){const l=o?"dark":"light";r.value===l?s.value="auto":s.value=l}})}function ps(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}const ti=1;function Za(e,t={}){const{throttle:n=0,idle:s=200,onStop:r=rt,onScroll:i=rt,offset:o={left:0,right:0,top:0,bottom:0},eventListenerOptions:l={capture:!1,passive:!0},behavior:c="auto",window:f=$e,onError:a=R=>{console.error(R)}}=t,d=le(0),m=le(0),v=re({get(){return d.value},set(R){b(R,void 0)}}),_=re({get(){return m.value},set(R){b(void 0,R)}});function b(R,j){var T,M,A,w;if(!f)return;const F=ce(e);if(!F)return;(A=F instanceof Document?f.document.body:F)==null||A.scrollTo({top:(T=ce(j))!=null?T:_.value,left:(M=ce(R))!=null?M:v.value,behavior:ce(c)});const Y=((w=F==null?void 0:F.document)==null?void 0:w.documentElement)||(F==null?void 0:F.documentElement)||F;v!=null&&(d.value=Y.scrollLeft),_!=null&&(m.value=Y.scrollTop)}const k=le(!1),P=Lt({left:!0,right:!1,top:!0,bottom:!1}),D=Lt({left:!1,right:!1,top:!1,bottom:!1}),p=R=>{k.value&&(k.value=!1,D.left=!1,D.right=!1,D.top=!1,D.bottom=!1,r(R))},g=Da(p,n+s),O=R=>{var j;if(!f)return;const T=((j=R==null?void 0:R.document)==null?void 0:j.documentElement)||(R==null?void 0:R.documentElement)||ir(R),{display:M,flexDirection:A,direction:w}=getComputedStyle(T),F=w==="rtl"?-1:1,Y=T.scrollLeft;D.left=Yd.value;const ie=Y*F<=(o.left||0),U=Y*F+T.clientWidth>=T.scrollWidth-(o.right||0)-ti;M==="flex"&&A==="row-reverse"?(P.left=U,P.right=ie):(P.left=ie,P.right=U),d.value=Y;let X=T.scrollTop;R===f.document&&!X&&(X=f.document.body.scrollTop),D.top=Xm.value;const V=X<=(o.top||0),fe=X+T.clientHeight>=T.scrollHeight-(o.bottom||0)-ti;M==="flex"&&A==="column-reverse"?(P.top=fe,P.bottom=V):(P.top=V,P.bottom=fe),m.value=X},$=R=>{var j;if(!f)return;const T=(j=R.target.documentElement)!=null?j:R.target;O(T),k.value=!0,g(R),i(R)};return Ye(e,"scroll",n?$a($,n,!0,!1):$,l),Yn(()=>{try{const R=ce(e);if(!R)return;O(R)}catch(R){a(R)}}),Ye(e,"scrollend",p,l),{x:v,y:_,isScrolling:k,arrivedState:P,directions:D,measure(){const R=ce(e);f&&R&&O(R)}}}function eu(e,t,n={}){const{window:s=$e}=n;return or(e,t,s==null?void 0:s.localStorage,n)}function ko(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const gs=new WeakMap;function tu(e,t=!1){const n=le(t);let s=null,r="";Ie(Ho(e),l=>{const c=ps(ce(l));if(c){const f=c;if(gs.get(f)||gs.set(f,f.style.overflow),f.style.overflow!=="hidden"&&(r=f.style.overflow),f.style.overflow==="hidden")return n.value=!0;if(n.value)return f.style.overflow="hidden"}},{immediate:!0});const i=()=>{const l=ps(ce(e));!l||n.value||(Qr&&(s=Ye(l,"touchmove",c=>{ef(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},o=()=>{const l=ps(ce(e));!l||!n.value||(Qr&&(s==null||s()),l.style.overflow=r,gs.delete(l),n.value=!1)};return Lo(o),re({get(){return n.value},set(l){l?i():o()}})}function nu(e,t,n={}){const{window:s=$e}=n;return or(e,t,s==null?void 0:s.sessionStorage,n)}function su(e={}){const{window:t=$e,...n}=e;return Za(t,n)}function ru(e={}){const{window:t=$e,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:s=Number.POSITIVE_INFINITY,listenOrientation:r=!0,includeScrollbar:i=!0,type:o="inner"}=e,l=le(n),c=le(s),f=()=>{if(t)if(o==="outer")l.value=t.outerWidth,c.value=t.outerHeight;else if(o==="visual"&&t.visualViewport){const{width:d,height:m,scale:v}=t.visualViewport;l.value=Math.round(d*v),c.value=Math.round(m*v)}else i?(l.value=t.innerWidth,c.value=t.innerHeight):(l.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight)};f(),Yn(f);const a={passive:!0};if(Ye("resize",f,a),t&&o==="visual"&&t.visualViewport&&Ye(t.visualViewport,"resize",f,a),r){const d=$o("(orientation: portrait)");Ie(d,()=>f())}return{width:l,height:c}}const ms={};var vs={};const Uo=/^(?:[a-z]+:|\/\/)/i,tf="vitepress-theme-appearance",nf=/#.*$/,sf=/[?#].*$/,rf=/(?:(^|\/)index)?\.(?:md|html)$/,me=typeof document<"u",Wo={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function of(e,t,n=!1){if(t===void 0)return!1;if(e=ni(`/${e}`),n)return new RegExp(t).test(e);if(ni(t)!==e)return!1;const s=t.match(nf);return s?(me?location.hash:"")===s[0]:!0}function ni(e){return decodeURI(e).replace(sf,"").replace(rf,"$1")}function lf(e){return Uo.test(e)}function cf(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!lf(n)&&of(t,`/${n}/`,!0))||"root"}function af(e,t){var s,r,i,o,l,c,f;const n=cf(e,t);return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Ko(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(f=e.locales[n])==null?void 0:f.themeConfig}})}function Bo(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=ff(e.title,s);return n===r.slice(3)?n:`${n}${r}`}function ff(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function uf(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function Ko(e,t){return[...e.filter(n=>!uf(t,n)),...t]}const df=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,hf=/^[a-z]:/i;function si(e){const t=hf.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(df,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const ys=new Set;function pf(e){if(ys.size===0){const n=typeof process=="object"&&(vs==null?void 0:vs.VITE_EXTRA_EXTENSIONS)||(ms==null?void 0:ms.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(s=>ys.add(s))}const t=e.split(".").pop();return t==null||!ys.has(t.toLowerCase())}function iu(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const gf=Symbol(),_t=Un(Ma);function ou(e){const t=re(()=>af(_t.value,e.data.relativePath)),n=t.value.appearance,s=n==="force-dark"?le(!0):n==="force-auto"?Vo():n?Qa({storageKey:tf,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):le(!1),r=le(me?location.hash:"");return me&&window.addEventListener("hashchange",()=>{r.value=location.hash}),Ie(()=>e.data,()=>{r.value=me?location.hash:""}),{site:t,theme:re(()=>t.value.themeConfig),page:re(()=>e.data),frontmatter:re(()=>e.data.frontmatter),params:re(()=>e.data.params),lang:re(()=>t.value.lang),dir:re(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:re(()=>t.value.localeIndex||"root"),title:re(()=>Bo(t.value,e.data)),description:re(()=>e.data.description||t.value.description),isDark:s,hash:re(()=>r.value)}}function mf(){const e=yt(gf);if(!e)throw new Error("vitepress data not properly injected in app");return e}function vf(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function ri(e){return Uo.test(e)||!e.startsWith("/")?e:vf(_t.value.base,e)}function yf(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),me){const n="/";t=si(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];if(s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),!s)return null;t=`${n}assets/${t}.${s}.js`}else t=`./${si(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let An=[];function lu(e){An.push(e),Kn(()=>{An=An.filter(t=>t!==e)})}function bf(){let e=_t.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=ii(e,n);else if(Array.isArray(e))for(const s of e){const r=ii(s,n);if(r){t=r;break}}return t}function ii(e,t){const n=document.querySelector(e);if(!n)return 0;const s=n.getBoundingClientRect().bottom;return s<0?0:s+t}const _f=Symbol(),qo="http://a.com",wf=()=>({path:"/",component:null,data:Wo});function cu(e,t){const n=Lt(wf()),s={route:n,go:r};async function r(l=me?location.href:"/"){var c,f;l=bs(l),await((c=s.onBeforeRouteChange)==null?void 0:c.call(s,l))!==!1&&(me&&l!==bs(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await o(l),await((f=s.onAfterRouteChange??s.onAfterRouteChanged)==null?void 0:f(l)))}let i=null;async function o(l,c=0,f=!1){var m,v;if(await((m=s.onBeforePageLoad)==null?void 0:m.call(s,l))===!1)return;const a=new URL(l,qo),d=i=a.pathname;try{let _=await e(d);if(!_)throw new Error(`Page not found: ${d}`);if(i===d){i=null;const{default:b,__pageData:k}=_;if(!b)throw new Error(`Invalid route component: ${b}`);await((v=s.onAfterPageLoad)==null?void 0:v.call(s,l)),n.path=me?d:ri(d),n.component=Tn(b),n.data=Tn(k),me&&Wn(()=>{let P=_t.value.base+k.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!_t.value.cleanUrls&&!P.endsWith("/")&&(P+=".html"),P!==a.pathname&&(a.pathname=P,l=P+a.search+a.hash,history.replaceState({},"",l)),a.hash&&!c){let D=null;try{D=document.getElementById(decodeURIComponent(a.hash).slice(1))}catch(p){console.warn(p)}if(D){oi(D,a.hash);return}}window.scrollTo(0,c)})}}catch(_){if(!/fetch|Page not found/.test(_.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(_),!f)try{const b=await fetch(_t.value.base+"hashmap.json");window.__VP_HASH_MAP__=await b.json(),await o(l,c,!0);return}catch{}if(i===d){i=null,n.path=me?d:ri(d),n.component=t?Tn(t):null;const b=me?d.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...Wo,relativePath:b}}}}return me&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const f=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(f==null)return;const{href:a,origin:d,pathname:m,hash:v,search:_}=new URL(f,c.baseURI),b=new URL(location.href);d===b.origin&&pf(m)&&(l.preventDefault(),m===b.pathname&&_===b.search?(v!==b.hash&&(history.pushState({},"",a),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:b.href,newURL:a}))),v?oi(c,v,c.classList.contains("header-anchor")):window.scrollTo(0,0)):r(a))},{capture:!0}),window.addEventListener("popstate",async l=>{var f;if(l.state===null)return;const c=bs(location.href);await o(c,l.state&&l.state.scrollPosition||0),await((f=s.onAfterRouteChange??s.onAfterRouteChanged)==null?void 0:f(c))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function Sf(){const e=yt(_f);if(!e)throw new Error("useRouter() is called without provider.");return e}function Go(){return Sf().route}function oi(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(r){console.warn(r)}if(s){let r=function(){!n||Math.abs(o-window.scrollY)>window.innerHeight?window.scrollTo(0,o):window.scrollTo({left:0,top:o,behavior:"smooth"})};const i=parseInt(window.getComputedStyle(s).paddingTop,10),o=window.scrollY+s.getBoundingClientRect().top-bf()+i;requestAnimationFrame(r)}}function bs(e){const t=new URL(e,qo);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),_t.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const bn=()=>An.forEach(e=>e()),au=Qs({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Go(),{frontmatter:n,site:s}=mf();return Ie(n,bn,{deep:!0,flush:"post"}),()=>Hs(e.as,s.value.contentProps??{style:{position:"relative"}},[t.component?Hs(t.component,{onVnodeMounted:bn,onVnodeUpdated:bn,onVnodeUnmounted:bn}):"404 Page Not Found"])}}),fu=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},Tf="modulepreload",xf=function(e){return"/"+e},li={},uu=function(t,n,s){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),l=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));r=Promise.allSettled(n.map(c=>{if(c=xf(c),c in li)return;li[c]=!0;const f=c.endsWith(".css"),a=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${a}`))return;const d=document.createElement("link");if(d.rel=f?"stylesheet":Tf,f||(d.as="script"),d.crossOrigin="",d.href=c,l&&d.setAttribute("nonce",l),document.head.appendChild(d),f)return new Promise((m,v)=>{d.addEventListener("load",m),d.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${c}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return r.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})},du=Qs({setup(e,{slots:t}){const n=le(!1);return Nt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function hu(){me&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const s=(n=t.parentElement)==null?void 0:n.parentElement;if(!s)return;const r=Array.from(s.querySelectorAll("input")).indexOf(t);if(r<0)return;const i=s.querySelector(".blocks");if(!i)return;const o=Array.from(i.children).find(f=>f.classList.contains("active"));if(!o)return;const l=i.children[r];if(!l||o===l)return;o.classList.remove("active"),l.classList.add("active");const c=s==null?void 0:s.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function pu(){if(me){const e=new WeakMap;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className),l=[".vp-copy-ignore",".diff.remove"],c=i.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(a=>a.remove());let f=c.textContent||"";o&&(f=f.replace(/^ *(\$|>) /gm,"").trim()),Ef(f).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const a=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,a)})}})}}async function Ef(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function gu(e,t){let n=!0,s=[];const r=i=>{if(n){n=!1,i.forEach(l=>{const c=_s(l);for(const f of document.head.children)if(f.isEqualNode(c)){s.push(f);return}});return}const o=i.map(_s);s.forEach((l,c)=>{const f=o.findIndex(a=>a==null?void 0:a.isEqualNode(l??null));f!==-1?delete o[f]:(l==null||l.remove(),delete s[c])}),o.forEach(l=>l&&document.head.appendChild(l)),s=[...s,...o].filter(Boolean)};nr(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[],f=Bo(o,i);f!==document.title&&(document.title=f);const a=l||o.description;let d=document.querySelector("meta[name=description]");d?d.getAttribute("content")!==a&&d.setAttribute("content",a):_s(["meta",{name:"description",content:a}]),r(Ko(o.head,Af(c)))})}function _s([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),e==="script"&&t.async==null&&(s.async=!1),s}function Cf(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function Af(e){return e.filter(t=>!Cf(t))}const ws=new Set,Xo=()=>document.createElement("link"),Rf=e=>{const t=Xo();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Mf=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let _n;const Of=me&&(_n=Xo())&&_n.relList&&_n.relList.supports&&_n.relList.supports("prefetch")?Rf:Mf;function mu(){if(!me||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!ws.has(c)){ws.add(c);const f=yf(c);f&&Of(f)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{hostname:o,pathname:l}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||i.target!=="_blank"&&o===location.hostname&&(l!==location.pathname?n.observe(i):ws.add(l))})})};Nt(s);const r=Go();Ie(()=>r.path,s),Kn(()=>{n&&n.disconnect()})}export{Gi as $,bf as A,Hf as B,Nf as C,Un as D,lu as E,xe as F,ae as G,Ff as H,Uo as I,Go as J,Wc as K,yt as L,ru as M,Us as N,Zf as O,Wn as P,su as Q,me as R,kn as S,Bf as T,If as U,uu as V,tu as W,Sc as X,$f as Y,Gf as Z,fu as _,To as a,qf as a0,jf as a1,gu as a2,_f as a3,ou as a4,gf as a5,au as a6,du as a7,_t as a8,cu as a9,yf as aa,Yf as ab,mu as ac,pu as ad,hu as ae,Hs as af,Uf as ag,ce as ah,hs as ai,ir as aj,Jf as ak,Lo as al,Qf as am,nu as an,eu as ao,zf as ap,Sf as aq,Ye as ar,Pf as as,Kf as at,ue as au,Lf as av,Tn as aw,Xf as ax,iu as ay,Ns as b,kf as c,Qs as d,Wf as e,pf as f,ri as g,re as h,lf as i,So as j,Js as k,of as l,$o as m,Ws as n,Is as o,le as p,Ie as q,Df as r,nr as s,al as t,mf as u,Nt as v,Gl as w,Kn as x,Vf as y,cc as z}; diff --git a/docs/.vitepress/dist/assets/chunks/theme.BNBC0yme.js b/docs/.vitepress/dist/assets/chunks/theme.BNBC0yme.js deleted file mode 100644 index 7f5b190f..00000000 --- a/docs/.vitepress/dist/assets/chunks/theme.BNBC0yme.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.CXWeCdCl.js","assets/chunks/framework.BmLMQRXF.js"])))=>i.map(i=>d[i]); -import{d as m,c as u,r as c,n as M,o as a,a as z,t as I,b as k,w as f,T as ue,e as h,_ as g,u as He,i as Be,f as Ee,g as de,h as y,j as d,k as r,l as W,m as ae,p as T,q as D,s as Y,v as j,x as ve,y as pe,z as Fe,A as De,F as w,B as H,C as K,D as $e,E as Q,G as _,H as E,I as ye,J as Z,K as U,L as x,M as Oe,N as Pe,O as re,P as Le,Q as Ve,R as ee,S as Ge,U as Ue,V as je,W as Se,X as Te,Y as ze,Z as We,$ as Ke,a0 as qe,a1 as Re}from"./framework.BmLMQRXF.js";const Je=m({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(s){return(e,t)=>(a(),u("span",{class:M(["VPBadge",e.type])},[c(e.$slots,"default",{},()=>[z(I(e.text),1)])],2))}}),Xe={key:0,class:"VPBackdrop"},Ye=m({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(s){return(e,t)=>(a(),k(ue,{name:"fade"},{default:f(()=>[e.show?(a(),u("div",Xe)):h("",!0)]),_:1}))}}),Qe=g(Ye,[["__scopeId","data-v-e66c7a30"]]),L=He;function Ze(s,e){let t,o=!1;return()=>{t&&clearTimeout(t),o?t=setTimeout(s,e):(s(),(o=!0)&&setTimeout(()=>o=!1,e))}}function ie(s){return s.startsWith("/")?s:`/${s}`}function fe(s){const{pathname:e,search:t,hash:o,protocol:n}=new URL(s,"http://a.com");if(Be(s)||s.startsWith("#")||!n.startsWith("http")||!Ee(e))return s;const{site:i}=L(),l=e.endsWith("/")||e.endsWith(".html")?s:s.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${o}`);return de(l)}function R({correspondingLink:s=!1}={}){const{site:e,localeIndex:t,page:o,theme:n,hash:i}=L(),l=y(()=>{var p,$;return{label:(p=e.value.locales[t.value])==null?void 0:p.label,link:(($=e.value.locales[t.value])==null?void 0:$.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:y(()=>Object.entries(e.value.locales).flatMap(([p,$])=>l.value.label===$.label?[]:{text:$.label,link:xe($.link||(p==="root"?"/":`/${p}/`),n.value.i18nRouting!==!1&&s,o.value.relativePath.slice(l.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:l}}function xe(s,e,t,o){return e?s.replace(/\/$/,"")+ie(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,o?".html":"")):s}const et={class:"NotFound"},tt={class:"code"},nt={class:"title"},ot={class:"quote"},st={class:"action"},at=["href","aria-label"],rt=m({__name:"NotFound",setup(s){const{theme:e}=L(),{currentLang:t}=R();return(o,n)=>{var i,l,v,p,$;return a(),u("div",et,[d("p",tt,I(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),d("h1",nt,I(((l=r(e).notFound)==null?void 0:l.title)??"PAGE NOT FOUND"),1),n[0]||(n[0]=d("div",{class:"divider"},null,-1)),d("blockquote",ot,I(((v=r(e).notFound)==null?void 0:v.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),d("div",st,[d("a",{class:"link",href:r(de)(r(t).link),"aria-label":((p=r(e).notFound)==null?void 0:p.linkLabel)??"go to home"},I((($=r(e).notFound)==null?void 0:$.linkText)??"Take me home"),9,at)])])}}}),it=g(rt,[["__scopeId","data-v-060e6fc3"]]);function Ne(s,e){if(Array.isArray(s))return J(s);if(s==null)return[];e=ie(e);const t=Object.keys(s).sort((n,i)=>i.split("/").length-n.split("/").length).find(n=>e.startsWith(ie(n))),o=t?s[t]:[];return Array.isArray(o)?J(o):J(o.items,o.base)}function lt(s){const e=[];let t=0;for(const o in s){const n=s[o];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function ct(s){const e=[];function t(o){for(const n of o)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.items)}return t(s),e}function le(s,e){return Array.isArray(e)?e.some(t=>le(s,t)):W(s,e.link)?!0:e.items?le(s,e.items):!1}function J(s,e){return[...s].map(t=>{const o={...t},n=o.base||e;return n&&o.link&&(o.link=n+o.link),o.items&&(o.items=J(o.items,n)),o})}function O(){const{frontmatter:s,page:e,theme:t}=L(),o=ae("(min-width: 960px)"),n=T(!1),i=y(()=>{const C=t.value.sidebar,S=e.value.relativePath;return C?Ne(C,S):[]}),l=T(i.value);D(i,(C,S)=>{JSON.stringify(C)!==JSON.stringify(S)&&(l.value=i.value)});const v=y(()=>s.value.sidebar!==!1&&l.value.length>0&&s.value.layout!=="home"),p=y(()=>$?s.value.aside==null?t.value.aside==="left":s.value.aside==="left":!1),$=y(()=>s.value.layout==="home"?!1:s.value.aside!=null?!!s.value.aside:t.value.aside!==!1),V=y(()=>v.value&&o.value),b=y(()=>v.value?lt(l.value):[]);function P(){n.value=!0}function N(){n.value=!1}function A(){n.value?N():P()}return{isOpen:n,sidebar:l,sidebarGroups:b,hasSidebar:v,hasAside:$,leftAside:p,isSidebarEnabled:V,open:P,close:N,toggle:A}}function ut(s,e){let t;Y(()=>{t=s.value?document.activeElement:void 0}),j(()=>{window.addEventListener("keyup",o)}),ve(()=>{window.removeEventListener("keyup",o)});function o(n){n.key==="Escape"&&s.value&&(e(),t==null||t.focus())}}function dt(s){const{page:e,hash:t}=L(),o=T(!1),n=y(()=>s.value.collapsed!=null),i=y(()=>!!s.value.link),l=T(!1),v=()=>{l.value=W(e.value.relativePath,s.value.link)};D([e,s,t],v),j(v);const p=y(()=>l.value?!0:s.value.items?le(e.value.relativePath,s.value.items):!1),$=y(()=>!!(s.value.items&&s.value.items.length));Y(()=>{o.value=!!(n.value&&s.value.collapsed)}),pe(()=>{(l.value||p.value)&&(o.value=!1)});function V(){n.value&&(o.value=!o.value)}return{collapsed:o,collapsible:n,isLink:i,isActiveLink:l,hasActiveLink:p,hasChildren:$,toggle:V}}function vt(){const{hasSidebar:s}=O(),e=ae("(min-width: 960px)"),t=ae("(min-width: 1280px)");return{isAsideEnabled:y(()=>!t.value&&!e.value?!1:s.value?t.value:e.value)}}const pt=/\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/,ce=[];function Me(s){return typeof s.outline=="object"&&!Array.isArray(s.outline)&&s.outline.label||s.outlineTitle||"On this page"}function he(s){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const o=Number(t.tagName[1]);return{element:t,title:ft(t),link:"#"+t.id,level:o}});return ht(e,s)}function ft(s){let e="";for(const t of s.childNodes)if(t.nodeType===1){if(pt.test(t.className))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function ht(s,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[o,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;return kt(s,o,n)}function mt(s,e){const{isAsideEnabled:t}=vt(),o=Ze(i,100);let n=null;j(()=>{requestAnimationFrame(i),window.addEventListener("scroll",o)}),Fe(()=>{l(location.hash)}),ve(()=>{window.removeEventListener("scroll",o)});function i(){if(!t.value)return;const v=window.scrollY,p=window.innerHeight,$=document.body.offsetHeight,V=Math.abs(v+p-$)<1,b=ce.map(({element:N,link:A})=>({link:A,top:_t(N)})).filter(({top:N})=>!Number.isNaN(N)).sort((N,A)=>N.top-A.top);if(!b.length){l(null);return}if(v<1){l(null);return}if(V){l(b[b.length-1].link);return}let P=null;for(const{link:N,top:A}of b){if(A>v+De()+4)break;P=N}l(P)}function l(v){n&&n.classList.remove("active"),v==null?n=null:n=s.value.querySelector(`a[href="${decodeURIComponent(v)}"]`);const p=n;p?(p.classList.add("active"),e.value.style.top=p.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function _t(s){let e=0;for(;s!==document.body;){if(s===null)return NaN;e+=s.offsetTop,s=s.offsetParent}return e}function kt(s,e,t){ce.length=0;const o=[],n=[];return s.forEach(i=>{const l={...i,children:[]};let v=n[n.length-1];for(;v&&v.level>=l.level;)n.pop(),v=n[n.length-1];if(l.element.classList.contains("ignore-header")||v&&"shouldIgnore"in v){n.push({level:l.level,shouldIgnore:!0});return}l.level>t||l.level{const n=K("VPDocOutlineItem",!0);return a(),u("ul",{class:M(["VPDocOutlineItem",t.root?"root":"nested"])},[(a(!0),u(w,null,H(t.headers,({children:i,link:l,title:v})=>(a(),u("li",null,[d("a",{class:"outline-link",href:l,onClick:e,title:v},I(v),9,bt),i!=null&&i.length?(a(),k(n,{key:0,headers:i},null,8,["headers"])):h("",!0)]))),256))],2)}}}),Ie=g(gt,[["__scopeId","data-v-697bcd1c"]]),$t={class:"content"},yt={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Pt=m({__name:"VPDocAsideOutline",setup(s){const{frontmatter:e,theme:t}=L(),o=$e([]);Q(()=>{o.value=he(e.value.outline??t.value.outline)});const n=T(),i=T();return mt(n,i),(l,v)=>(a(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:M(["VPDocAsideOutline",{"has-outline":o.value.length>0}]),ref_key:"container",ref:n},[d("div",$t,[d("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),d("div",yt,I(r(Me)(r(t))),1),_(Ie,{headers:o.value,root:!0},null,8,["headers"])])],2))}}),Lt=g(Pt,[["__scopeId","data-v-30bc7595"]]),Vt={class:"VPDocAsideCarbonAds"},St=m({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(s){const e=()=>null;return(t,o)=>(a(),u("div",Vt,[_(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),Tt={class:"VPDocAside"},Nt=m({__name:"VPDocAside",setup(s){const{theme:e}=L();return(t,o)=>(a(),u("div",Tt,[c(t.$slots,"aside-top",{},void 0,!0),c(t.$slots,"aside-outline-before",{},void 0,!0),_(Lt),c(t.$slots,"aside-outline-after",{},void 0,!0),o[0]||(o[0]=d("div",{class:"spacer"},null,-1)),c(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(a(),k(St,{key:0,"carbon-ads":r(e).carbonAds},null,8,["carbon-ads"])):h("",!0),c(t.$slots,"aside-ads-after",{},void 0,!0),c(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Mt=g(Nt,[["__scopeId","data-v-a7c337e5"]]);function It(){const{theme:s,page:e}=L();return y(()=>{const{text:t="Edit this page",pattern:o=""}=s.value.editLink||{};let n;return typeof o=="function"?n=o(e.value):n=o.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function wt(){const{page:s,theme:e,frontmatter:t}=L();return y(()=>{var $,V,b,P,N,A,C,S;const o=Ne(e.value.sidebar,s.value.relativePath),n=ct(o),i=At(n,B=>B.link.replace(/[?#].*$/,"")),l=i.findIndex(B=>W(s.value.relativePath,B.link)),v=(($=e.value.docFooter)==null?void 0:$.prev)===!1&&!t.value.prev||t.value.prev===!1,p=((V=e.value.docFooter)==null?void 0:V.next)===!1&&!t.value.next||t.value.next===!1;return{prev:v?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??((b=i[l-1])==null?void 0:b.docFooterText)??((P=i[l-1])==null?void 0:P.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((N=i[l-1])==null?void 0:N.link)},next:p?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((A=i[l+1])==null?void 0:A.docFooterText)??((C=i[l+1])==null?void 0:C.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((S=i[l+1])==null?void 0:S.link)}}})}function At(s,e){const t=new Set;return s.filter(o=>{const n=e(o);return t.has(n)?!1:t.add(n)})}const F=m({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(s){const e=s,t=y(()=>e.tag??(e.href?"a":"span")),o=y(()=>e.href&&ye.test(e.href)||e.target==="_blank");return(n,i)=>(a(),k(E(t.value),{class:M(["VPLink",{link:n.href,"vp-external-link-icon":o.value,"no-icon":n.noIcon}]),href:n.href?r(fe)(n.href):void 0,target:n.target??(o.value?"_blank":void 0),rel:n.rel??(o.value?"noreferrer":void 0)},{default:f(()=>[c(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Ct={class:"VPLastUpdated"},Ht=["datetime"],Bt=m({__name:"VPDocFooterLastUpdated",setup(s){const{theme:e,page:t,lang:o}=L(),n=y(()=>new Date(t.value.lastUpdated)),i=y(()=>n.value.toISOString()),l=T("");return j(()=>{Y(()=>{var v,p,$;l.value=new Intl.DateTimeFormat((p=(v=e.value.lastUpdated)==null?void 0:v.formatOptions)!=null&&p.forceLocale?o.value:void 0,(($=e.value.lastUpdated)==null?void 0:$.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(v,p)=>{var $;return a(),u("p",Ct,[z(I((($=r(e).lastUpdated)==null?void 0:$.text)||r(e).lastUpdatedText||"Last updated")+": ",1),d("time",{datetime:i.value},I(l.value),9,Ht)])}}}),Et=g(Bt,[["__scopeId","data-v-afb38d82"]]),Ft={key:0,class:"VPDocFooter"},Dt={key:0,class:"edit-info"},Ot={key:0,class:"edit-link"},Gt={key:1,class:"last-updated"},Ut={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},jt={class:"pager"},zt=["innerHTML"],Wt=["innerHTML"],Kt={class:"pager"},qt=["innerHTML"],Rt=["innerHTML"],Jt=m({__name:"VPDocFooter",setup(s){const{theme:e,page:t,frontmatter:o}=L(),n=It(),i=wt(),l=y(()=>e.value.editLink&&o.value.editLink!==!1),v=y(()=>t.value.lastUpdated),p=y(()=>l.value||v.value||i.value.prev||i.value.next);return($,V)=>{var b,P,N,A;return p.value?(a(),u("footer",Ft,[c($.$slots,"doc-footer-before",{},void 0,!0),l.value||v.value?(a(),u("div",Dt,[l.value?(a(),u("div",Ot,[_(F,{class:"edit-link-button",href:r(n).url,"no-icon":!0},{default:f(()=>[V[0]||(V[0]=d("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),z(" "+I(r(n).text),1)]),_:1},8,["href"])])):h("",!0),v.value?(a(),u("div",Gt,[_(Et)])):h("",!0)])):h("",!0),(b=r(i).prev)!=null&&b.link||(P=r(i).next)!=null&&P.link?(a(),u("nav",Ut,[V[1]||(V[1]=d("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),d("div",jt,[(N=r(i).prev)!=null&&N.link?(a(),k(F,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:f(()=>{var C;return[d("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.prev)||"Previous page"},null,8,zt),d("span",{class:"title",innerHTML:r(i).prev.text},null,8,Wt)]}),_:1},8,["href"])):h("",!0)]),d("div",Kt,[(A=r(i).next)!=null&&A.link?(a(),k(F,{key:0,class:"pager-link next",href:r(i).next.link},{default:f(()=>{var C;return[d("span",{class:"desc",innerHTML:((C=r(e).docFooter)==null?void 0:C.next)||"Next page"},null,8,qt),d("span",{class:"title",innerHTML:r(i).next.text},null,8,Rt)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),Xt=g(Jt,[["__scopeId","data-v-2dcb78e4"]]),Yt={class:"container"},Qt={class:"aside-container"},Zt={class:"aside-content"},xt={class:"content"},en={class:"content-container"},tn={class:"main"},nn=m({__name:"VPDoc",setup(s){const{theme:e}=L(),t=Z(),{hasSidebar:o,hasAside:n,leftAside:i}=O(),l=y(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(v,p)=>{const $=K("Content");return a(),u("div",{class:M(["VPDoc",{"has-sidebar":r(o),"has-aside":r(n)}])},[c(v.$slots,"doc-top",{},void 0,!0),d("div",Yt,[r(n)?(a(),u("div",{key:0,class:M(["aside",{"left-aside":r(i)}])},[p[0]||(p[0]=d("div",{class:"aside-curtain"},null,-1)),d("div",Qt,[d("div",Zt,[_(Mt,null,{"aside-top":f(()=>[c(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),d("div",xt,[d("div",en,[c(v.$slots,"doc-before",{},void 0,!0),d("main",tn,[_($,{class:M(["vp-doc",[l.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),_(Xt,null,{"doc-footer-before":f(()=>[c(v.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),c(v.$slots,"doc-after",{},void 0,!0)])])]),c(v.$slots,"doc-bottom",{},void 0,!0)],2)}}}),on=g(nn,[["__scopeId","data-v-c7e25d19"]]),sn=m({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(s){const e=s,t=y(()=>e.href&&ye.test(e.href)),o=y(()=>e.tag||(e.href?"a":"button"));return(n,i)=>(a(),k(E(o.value),{class:M(["VPButton",[n.size,n.theme]]),href:n.href?r(fe)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:f(()=>[z(I(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),an=g(sn,[["__scopeId","data-v-f410c593"]]),rn=["src","alt"],ln=m({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(s){return(e,t)=>{const o=K("VPImage",!0);return e.image?(a(),u(w,{key:0},[typeof e.image=="string"||"src"in e.image?(a(),u("img",U({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(de)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,rn)):(a(),u(w,{key:1},[_(o,U({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),_(o,U({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),X=g(ln,[["__scopeId","data-v-1499dcbc"]]),cn={class:"container"},un={class:"main"},dn={class:"heading"},vn=["innerHTML"],pn=["innerHTML"],fn=["innerHTML"],hn={key:0,class:"actions"},mn={key:0,class:"image"},_n={class:"image-container"},kn=m({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(s){const e=x("hero-image-slot-exists");return(t,o)=>(a(),u("div",{class:M(["VPHero",{"has-image":t.image||r(e)}])},[d("div",cn,[d("div",un,[c(t.$slots,"home-hero-info-before",{},void 0,!0),c(t.$slots,"home-hero-info",{},()=>[d("h1",dn,[t.name?(a(),u("span",{key:0,innerHTML:t.name,class:"name clip"},null,8,vn)):h("",!0),t.text?(a(),u("span",{key:1,innerHTML:t.text,class:"text"},null,8,pn)):h("",!0)]),t.tagline?(a(),u("p",{key:0,innerHTML:t.tagline,class:"tagline"},null,8,fn)):h("",!0)],!0),c(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(a(),u("div",hn,[(a(!0),u(w,null,H(t.actions,n=>(a(),u("div",{key:n.link,class:"action"},[_(an,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),c(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(a(),u("div",mn,[d("div",_n,[o[0]||(o[0]=d("div",{class:"image-bg"},null,-1)),c(t.$slots,"home-hero-image",{},()=>[t.image?(a(),k(X,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),bn=g(kn,[["__scopeId","data-v-6a430a27"]]),gn=m({__name:"VPHomeHero",setup(s){const{frontmatter:e}=L();return(t,o)=>r(e).hero?(a(),k(bn,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":f(()=>[c(t.$slots,"home-hero-info-before")]),"home-hero-info":f(()=>[c(t.$slots,"home-hero-info")]),"home-hero-info-after":f(()=>[c(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":f(()=>[c(t.$slots,"home-hero-actions-after")]),"home-hero-image":f(()=>[c(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),$n={class:"box"},yn={key:0,class:"icon"},Pn=["innerHTML"],Ln=["innerHTML"],Vn=["innerHTML"],Sn={key:4,class:"link-text"},Tn={class:"link-text-value"},Nn=m({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(s){return(e,t)=>(a(),k(F,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:f(()=>[d("article",$n,[typeof e.icon=="object"&&e.icon.wrap?(a(),u("div",yn,[_(X,{image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])])):typeof e.icon=="object"?(a(),k(X,{key:1,image:e.icon,alt:e.icon.alt,height:e.icon.height||48,width:e.icon.width||48},null,8,["image","alt","height","width"])):e.icon?(a(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Pn)):h("",!0),d("h2",{class:"title",innerHTML:e.title},null,8,Ln),e.details?(a(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,Vn)):h("",!0),e.linkText?(a(),u("div",Sn,[d("p",Tn,[z(I(e.linkText)+" ",1),t[0]||(t[0]=d("span",{class:"vpi-arrow-right link-text-icon"},null,-1))])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Mn=g(Nn,[["__scopeId","data-v-2a3ec06d"]]),In={key:0,class:"VPFeatures"},wn={class:"container"},An={class:"items"},Cn=m({__name:"VPFeatures",props:{features:{}},setup(s){const e=s,t=y(()=>{const o=e.features.length;if(o){if(o===2)return"grid-2";if(o===3)return"grid-3";if(o%3===0)return"grid-6";if(o>3)return"grid-4"}else return});return(o,n)=>o.features?(a(),u("div",In,[d("div",wn,[d("div",An,[(a(!0),u(w,null,H(o.features,i=>(a(),u("div",{key:i.title,class:M(["item",[t.value]])},[_(Mn,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),Hn=g(Cn,[["__scopeId","data-v-f77cedad"]]),Bn=m({__name:"VPHomeFeatures",setup(s){const{frontmatter:e}=L();return(t,o)=>r(e).features?(a(),k(Hn,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):h("",!0)}}),En=m({__name:"VPHomeContent",setup(s){const{width:e}=Oe({initialWidth:0,includeScrollbar:!1});return(t,o)=>(a(),u("div",{class:"vp-doc container",style:Pe(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[c(t.$slots,"default",{},void 0,!0)],4))}}),Fn=g(En,[["__scopeId","data-v-805abeb6"]]),Dn=m({__name:"VPHome",setup(s){const{frontmatter:e,theme:t}=L();return(o,n)=>{const i=K("Content");return a(),u("div",{class:M(["VPHome",{"external-link-icon-enabled":r(t).externalLinkIcon}])},[c(o.$slots,"home-hero-before",{},void 0,!0),_(gn,null,{"home-hero-info-before":f(()=>[c(o.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(o.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(o.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(o.$slots,"home-hero-image",{},void 0,!0)]),_:3}),c(o.$slots,"home-hero-after",{},void 0,!0),c(o.$slots,"home-features-before",{},void 0,!0),_(Bn),c(o.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(a(),k(Fn,{key:0},{default:f(()=>[_(i)]),_:1})):(a(),k(i,{key:1}))],2)}}}),On=g(Dn,[["__scopeId","data-v-6934af0f"]]),Gn={},Un={class:"VPPage"};function jn(s,e){const t=K("Content");return a(),u("div",Un,[c(s.$slots,"page-top"),_(t),c(s.$slots,"page-bottom")])}const zn=g(Gn,[["render",jn]]),Wn=m({__name:"VPContent",setup(s){const{page:e,frontmatter:t}=L(),{hasSidebar:o}=O();return(n,i)=>(a(),u("div",{class:M(["VPContent",{"has-sidebar":r(o),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?c(n.$slots,"not-found",{key:0},()=>[_(it)],!0):r(t).layout==="page"?(a(),k(zn,{key:1},{"page-top":f(()=>[c(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(a(),k(On,{key:2},{"home-hero-before":f(()=>[c(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(a(),k(E(r(t).layout),{key:3})):(a(),k(on,{key:4},{"doc-top":f(()=>[c(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":f(()=>[c(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":f(()=>[c(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":f(()=>[c(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":f(()=>[c(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Kn=g(Wn,[["__scopeId","data-v-62f80edf"]]),qn={class:"container"},Rn=["innerHTML"],Jn=["innerHTML"],Xn=m({__name:"VPFooter",setup(s){const{theme:e,frontmatter:t}=L(),{hasSidebar:o}=O();return(n,i)=>r(e).footer&&r(t).footer!==!1?(a(),u("footer",{key:0,class:M(["VPFooter",{"has-sidebar":r(o)}])},[d("div",qn,[r(e).footer.message?(a(),u("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,Rn)):h("",!0),r(e).footer.copyright?(a(),u("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,Jn)):h("",!0)])],2)):h("",!0)}}),Yn=g(Xn,[["__scopeId","data-v-22dc8f31"]]);function Qn(){const{theme:s,frontmatter:e}=L(),t=$e([]),o=y(()=>t.value.length>0);return Q(()=>{t.value=he(e.value.outline??s.value.outline)}),{headers:t,hasLocalNav:o}}const Zn={class:"menu-text"},xn={class:"header"},eo={class:"outline"},to=m({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(s){const e=s,{theme:t}=L(),o=T(!1),n=T(0),i=T(),l=T();function v(b){var P;(P=i.value)!=null&&P.contains(b.target)||(o.value=!1)}D(o,b=>{if(b){document.addEventListener("click",v);return}document.removeEventListener("click",v)}),re("Escape",()=>{o.value=!1}),Q(()=>{o.value=!1});function p(){o.value=!o.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function $(b){b.target.classList.contains("outline-link")&&(l.value&&(l.value.style.transition="none"),Le(()=>{o.value=!1}))}function V(){o.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return(b,P)=>(a(),u("div",{class:"VPLocalNavOutlineDropdown",style:Pe({"--vp-vh":n.value+"px"}),ref_key:"main",ref:i},[b.headers.length>0?(a(),u("button",{key:0,onClick:p,class:M({open:o.value})},[d("span",Zn,I(r(Me)(r(t))),1),P[0]||(P[0]=d("span",{class:"vpi-chevron-right icon"},null,-1))],2)):(a(),u("button",{key:1,onClick:V},I(r(t).returnToTopLabel||"Return to top"),1)),_(ue,{name:"flyout"},{default:f(()=>[o.value?(a(),u("div",{key:0,ref_key:"items",ref:l,class:"items",onClick:$},[d("div",xn,[d("a",{class:"top-link",href:"#",onClick:V},I(r(t).returnToTopLabel||"Return to top"),1)]),d("div",eo,[_(Ie,{headers:b.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),no=g(to,[["__scopeId","data-v-b4822720"]]),oo={class:"container"},so=["aria-expanded"],ao={class:"menu-text"},ro=m({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(s){const{theme:e,frontmatter:t}=L(),{hasSidebar:o}=O(),{headers:n}=Qn(),{y:i}=Ve(),l=T(0);j(()=>{l.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),Q(()=>{n.value=he(t.value.outline??e.value.outline)});const v=y(()=>n.value.length===0),p=y(()=>v.value&&!o.value),$=y(()=>({VPLocalNav:!0,"has-sidebar":o.value,empty:v.value,fixed:p.value}));return(V,b)=>r(t).layout!=="home"&&(!p.value||r(i)>=l.value)?(a(),u("div",{key:0,class:M($.value)},[d("div",oo,[r(o)?(a(),u("button",{key:0,class:"menu","aria-expanded":V.open,"aria-controls":"VPSidebarNav",onClick:b[0]||(b[0]=P=>V.$emit("open-menu"))},[b[1]||(b[1]=d("span",{class:"vpi-align-left menu-icon"},null,-1)),d("span",ao,I(r(e).sidebarMenuLabel||"Menu"),1)],8,so)):h("",!0),_(no,{headers:r(n),navHeight:l.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),io=g(ro,[["__scopeId","data-v-3ab135ad"]]);function lo(){const s=T(!1);function e(){s.value=!0,window.addEventListener("resize",n)}function t(){s.value=!1,window.removeEventListener("resize",n)}function o(){s.value?t():e()}function n(){window.outerWidth>=768&&t()}const i=Z();return D(()=>i.path,t),{isScreenOpen:s,openScreen:e,closeScreen:t,toggleScreen:o}}const co={},uo={class:"VPSwitch",type:"button",role:"switch"},vo={class:"check"},po={key:0,class:"icon"};function fo(s,e){return a(),u("button",uo,[d("span",vo,[s.$slots.default?(a(),u("span",po,[c(s.$slots,"default",{},void 0,!0)])):h("",!0)])])}const ho=g(co,[["render",fo],["__scopeId","data-v-8e683565"]]),mo=m({__name:"VPSwitchAppearance",setup(s){const{isDark:e,theme:t}=L(),o=x("toggle-appearance",()=>{e.value=!e.value}),n=T("");return pe(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,l)=>(a(),k(ho,{title:n.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(o)},{default:f(()=>l[0]||(l[0]=[d("span",{class:"vpi-sun sun"},null,-1),d("span",{class:"vpi-moon moon"},null,-1)])),_:1},8,["title","aria-checked","onClick"]))}}),me=g(mo,[["__scopeId","data-v-2fc9caea"]]),_o={key:0,class:"VPNavBarAppearance"},ko=m({__name:"VPNavBarAppearance",setup(s){const{site:e}=L();return(t,o)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",_o,[_(me)])):h("",!0)}}),bo=g(ko,[["__scopeId","data-v-7e6f0956"]]),_e=T();let we=!1,se=0;function go(s){const e=T(!1);if(ee){!we&&$o(),se++;const t=D(_e,o=>{var n,i,l;o===s.el.value||(n=s.el.value)!=null&&n.contains(o)?(e.value=!0,(i=s.onFocus)==null||i.call(s)):(e.value=!1,(l=s.onBlur)==null||l.call(s))});ve(()=>{t(),se--,se||yo()})}return Ge(e)}function $o(){document.addEventListener("focusin",Ae),we=!0,_e.value=document.activeElement}function yo(){document.removeEventListener("focusin",Ae)}function Ae(){_e.value=document.activeElement}const Po={class:"VPMenuLink"},Lo=["innerHTML"],Vo=m({__name:"VPMenuLink",props:{item:{}},setup(s){const{page:e}=L();return(t,o)=>(a(),u("div",Po,[_(F,{class:M({active:r(W)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon},{default:f(()=>[d("span",{innerHTML:t.item.text},null,8,Lo)]),_:1},8,["class","href","target","rel","no-icon"])]))}}),te=g(Vo,[["__scopeId","data-v-b04e260a"]]),So={class:"VPMenuGroup"},To={key:0,class:"title"},No=m({__name:"VPMenuGroup",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),u("div",So,[e.text?(a(),u("p",To,I(e.text),1)):h("",!0),(a(!0),u(w,null,H(e.items,o=>(a(),u(w,null,["link"in o?(a(),k(te,{key:0,item:o},null,8,["item"])):h("",!0)],64))),256))]))}}),Mo=g(No,[["__scopeId","data-v-f5175996"]]),Io={class:"VPMenu"},wo={key:0,class:"items"},Ao=m({__name:"VPMenu",props:{items:{}},setup(s){return(e,t)=>(a(),u("div",Io,[e.items?(a(),u("div",wo,[(a(!0),u(w,null,H(e.items,o=>(a(),u(w,{key:JSON.stringify(o)},["link"in o?(a(),k(te,{key:0,item:o},null,8,["item"])):"component"in o?(a(),k(E(o.component),U({key:1,ref_for:!0},o.props),null,16)):(a(),k(Mo,{key:2,text:o.text,items:o.items},null,8,["text","items"]))],64))),128))])):h("",!0),c(e.$slots,"default",{},void 0,!0)]))}}),Co=g(Ao,[["__scopeId","data-v-2b491744"]]),Ho=["aria-expanded","aria-label"],Bo={key:0,class:"text"},Eo=["innerHTML"],Fo={key:1,class:"vpi-more-horizontal icon"},Do={class:"menu"},Oo=m({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(s){const e=T(!1),t=T();go({el:t,onBlur:o});function o(){e.value=!1}return(n,i)=>(a(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=l=>e.value=!0),onMouseleave:i[2]||(i[2]=l=>e.value=!1)},[d("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:i[0]||(i[0]=l=>e.value=!e.value)},[n.button||n.icon?(a(),u("span",Bo,[n.icon?(a(),u("span",{key:0,class:M([n.icon,"option-icon"])},null,2)):h("",!0),n.button?(a(),u("span",{key:1,innerHTML:n.button},null,8,Eo)):h("",!0),i[3]||(i[3]=d("span",{class:"vpi-chevron-down text-icon"},null,-1))])):(a(),u("span",Fo))],8,Ho),d("div",Do,[_(Co,{items:n.items},{default:f(()=>[c(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),ke=g(Oo,[["__scopeId","data-v-839a11df"]]),Go=["href","aria-label","innerHTML"],Uo=m({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(s){const e=s,t=T();j(async()=>{var i;await Le();const n=(i=t.value)==null?void 0:i.children[0];n instanceof HTMLElement&&n.className.startsWith("vpi-social-")&&(getComputedStyle(n).maskImage||getComputedStyle(n).webkitMaskImage)==="none"&&n.style.setProperty("--icon",`url('https://api.iconify.design/simple-icons/${e.icon}.svg')`)});const o=y(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,i)=>(a(),u("a",{ref_key:"el",ref:t,class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:o.value},null,8,Go))}}),jo=g(Uo,[["__scopeId","data-v-84a70180"]]),zo={class:"VPSocialLinks"},Wo=m({__name:"VPSocialLinks",props:{links:{}},setup(s){return(e,t)=>(a(),u("div",zo,[(a(!0),u(w,null,H(e.links,({link:o,icon:n,ariaLabel:i})=>(a(),k(jo,{key:o,icon:n,link:o,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),be=g(Wo,[["__scopeId","data-v-607f35a4"]]),Ko={key:0,class:"group translations"},qo={class:"trans-title"},Ro={key:1,class:"group"},Jo={class:"item appearance"},Xo={class:"label"},Yo={class:"appearance-action"},Qo={key:2,class:"group"},Zo={class:"item social-links"},xo=m({__name:"VPNavBarExtra",setup(s){const{site:e,theme:t}=L(),{localeLinks:o,currentLang:n}=R({correspondingLink:!0}),i=y(()=>o.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(l,v)=>i.value?(a(),k(ke,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:f(()=>[r(o).length&&r(n).label?(a(),u("div",Ko,[d("p",qo,I(r(n).label),1),(a(!0),u(w,null,H(r(o),p=>(a(),k(te,{key:p.link,item:p},null,8,["item"]))),128))])):h("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Ro,[d("div",Jo,[d("p",Xo,I(r(t).darkModeSwitchLabel||"Appearance"),1),d("div",Yo,[_(me)])])])):h("",!0),r(t).socialLinks?(a(),u("div",Qo,[d("div",Zo,[_(be,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),es=g(xo,[["__scopeId","data-v-c6f77877"]]),ts=["aria-expanded"],ns=m({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(s){return(e,t)=>(a(),u("button",{type:"button",class:M(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=o=>e.$emit("click"))},t[1]||(t[1]=[d("span",{class:"container"},[d("span",{class:"top"}),d("span",{class:"middle"}),d("span",{class:"bottom"})],-1)]),10,ts))}}),os=g(ns,[["__scopeId","data-v-ab6fcae6"]]),ss=["innerHTML"],as=m({__name:"VPNavBarMenuLink",props:{item:{}},setup(s){const{page:e}=L();return(t,o)=>(a(),k(F,{class:M({VPNavBarMenuLink:!0,active:r(W)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,tabindex:"0"},{default:f(()=>[d("span",{innerHTML:t.item.text},null,8,ss)]),_:1},8,["class","href","target","rel","no-icon"]))}}),rs=g(as,[["__scopeId","data-v-ee14b6c7"]]),is=m({__name:"VPNavBarMenuGroup",props:{item:{}},setup(s){const e=s,{page:t}=L(),o=i=>"component"in i?!1:"link"in i?W(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(o),n=y(()=>o(e.item));return(i,l)=>(a(),k(ke,{class:M({VPNavBarMenuGroup:!0,active:r(W)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||n.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),ls={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},cs=m({__name:"VPNavBarMenu",setup(s){const{theme:e}=L();return(t,o)=>r(e).nav?(a(),u("nav",ls,[o[0]||(o[0]=d("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),(a(!0),u(w,null,H(r(e).nav,n=>(a(),u(w,{key:JSON.stringify(n)},["link"in n?(a(),k(rs,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(E(n.component),U({key:1,ref_for:!0},n.props),null,16)):(a(),k(is,{key:2,item:n},null,8,["item"]))],64))),128))])):h("",!0)}}),us=g(cs,[["__scopeId","data-v-28279947"]]);function ds(s){const{localeIndex:e,theme:t}=L();function o(n){var A,C,S;const i=n.split("."),l=(A=t.value.search)==null?void 0:A.options,v=l&&typeof l=="object",p=v&&((S=(C=l.locales)==null?void 0:C[e.value])==null?void 0:S.translations)||null,$=v&&l.translations||null;let V=p,b=$,P=s;const N=i.pop();for(const B of i){let G=null;const q=P==null?void 0:P[B];q&&(G=P=q);const ne=b==null?void 0:b[B];ne&&(G=b=ne);const oe=V==null?void 0:V[B];oe&&(G=V=oe),q||(P=G),ne||(b=G),oe||(V=G)}return(V==null?void 0:V[N])??(b==null?void 0:b[N])??(P==null?void 0:P[N])??""}return o}const vs=["aria-label"],ps={class:"DocSearch-Button-Container"},fs={class:"DocSearch-Button-Placeholder"},ge=m({__name:"VPNavBarSearchButton",setup(s){const t=ds({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(o,n)=>(a(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[d("span",ps,[n[0]||(n[0]=d("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1)),d("span",fs,I(r(t)("button.buttonText")),1)]),n[1]||(n[1]=d("span",{class:"DocSearch-Button-Keys"},[d("kbd",{class:"DocSearch-Button-Key"}),d("kbd",{class:"DocSearch-Button-Key"},"K")],-1))],8,vs))}}),hs={class:"VPNavBarSearch"},ms={id:"local-search"},_s={key:1,id:"docsearch"},ks=m({__name:"VPNavBarSearch",setup(s){const e=Ue(()=>je(()=>import("./VPLocalSearchBox.CXWeCdCl.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:o}=L(),n=T(!1),i=T(!1);j(()=>{});function l(){n.value||(n.value=!0,setTimeout(v,16))}function v(){const b=new Event("keydown");b.key="k",b.metaKey=!0,window.dispatchEvent(b),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||v()},16)}function p(b){const P=b.target,N=P.tagName;return P.isContentEditable||N==="INPUT"||N==="SELECT"||N==="TEXTAREA"}const $=T(!1);re("k",b=>{(b.ctrlKey||b.metaKey)&&(b.preventDefault(),$.value=!0)}),re("/",b=>{p(b)||(b.preventDefault(),$.value=!0)});const V="local";return(b,P)=>{var N;return a(),u("div",hs,[r(V)==="local"?(a(),u(w,{key:0},[$.value?(a(),k(r(e),{key:0,onClose:P[0]||(P[0]=A=>$.value=!1)})):h("",!0),d("div",ms,[_(ge,{onClick:P[1]||(P[1]=A=>$.value=!0)})])],64)):r(V)==="algolia"?(a(),u(w,{key:1},[n.value?(a(),k(r(t),{key:0,algolia:((N=r(o).search)==null?void 0:N.options)??r(o).algolia,onVnodeBeforeMount:P[2]||(P[2]=A=>i.value=!0)},null,8,["algolia"])):h("",!0),i.value?h("",!0):(a(),u("div",_s,[_(ge,{onClick:l})]))],64)):h("",!0)])}}}),bs=m({__name:"VPNavBarSocialLinks",setup(s){const{theme:e}=L();return(t,o)=>r(e).socialLinks?(a(),k(be,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),gs=g(bs,[["__scopeId","data-v-91a2f046"]]),$s=["href","rel","target"],ys=["innerHTML"],Ps={key:2},Ls=m({__name:"VPNavBarTitle",setup(s){const{site:e,theme:t}=L(),{hasSidebar:o}=O(),{currentLang:n}=R(),i=y(()=>{var p;return typeof t.value.logoLink=="string"?t.value.logoLink:(p=t.value.logoLink)==null?void 0:p.link}),l=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.rel}),v=y(()=>{var p;return typeof t.value.logoLink=="string"||(p=t.value.logoLink)==null?void 0:p.target});return(p,$)=>(a(),u("div",{class:M(["VPNavBarTitle",{"has-sidebar":r(o)}])},[d("a",{class:"title",href:i.value??r(fe)(r(n).link),rel:l.value,target:v.value},[c(p.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(a(),k(X,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):h("",!0),r(t).siteTitle?(a(),u("span",{key:1,innerHTML:r(t).siteTitle},null,8,ys)):r(t).siteTitle===void 0?(a(),u("span",Ps,I(r(e).title),1)):h("",!0),c(p.$slots,"nav-bar-title-after",{},void 0,!0)],8,$s)],2))}}),Vs=g(Ls,[["__scopeId","data-v-0c6c2dd6"]]),Ss={class:"items"},Ts={class:"title"},Ns=m({__name:"VPNavBarTranslations",setup(s){const{theme:e}=L(),{localeLinks:t,currentLang:o}=R({correspondingLink:!0});return(n,i)=>r(t).length&&r(o).label?(a(),k(ke,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:f(()=>[d("div",Ss,[d("p",Ts,I(r(o).label),1),(a(!0),u(w,null,H(r(t),l=>(a(),k(te,{key:l.link,item:l},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),Ms=g(Ns,[["__scopeId","data-v-adf6da57"]]),Is={class:"wrapper"},ws={class:"container"},As={class:"title"},Cs={class:"content"},Hs={class:"content-body"},Bs=m({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(s){const e=s,{y:t}=Ve(),{hasSidebar:o}=O(),{frontmatter:n}=L(),i=T({});return pe(()=>{i.value={"has-sidebar":o.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(l,v)=>(a(),u("div",{class:M(["VPNavBar",i.value])},[d("div",Is,[d("div",ws,[d("div",As,[_(Vs,null,{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),d("div",Cs,[d("div",Hs,[c(l.$slots,"nav-bar-content-before",{},void 0,!0),_(ks,{class:"search"}),_(us,{class:"menu"}),_(Ms,{class:"translations"}),_(bo,{class:"appearance"}),_(gs,{class:"social-links"}),_(es,{class:"extra"}),c(l.$slots,"nav-bar-content-after",{},void 0,!0),_(os,{class:"hamburger",active:l.isScreenOpen,onClick:v[0]||(v[0]=p=>l.$emit("toggle-screen"))},null,8,["active"])])])])]),v[1]||(v[1]=d("div",{class:"divider"},[d("div",{class:"divider-line"})],-1))],2))}}),Es=g(Bs,[["__scopeId","data-v-79868b1d"]]),Fs={key:0,class:"VPNavScreenAppearance"},Ds={class:"text"},Os=m({__name:"VPNavScreenAppearance",setup(s){const{site:e,theme:t}=L();return(o,n)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(a(),u("div",Fs,[d("p",Ds,I(r(t).darkModeSwitchLabel||"Appearance"),1),_(me)])):h("",!0)}}),Gs=g(Os,[["__scopeId","data-v-8cdade10"]]),Us=["innerHTML"],js=m({__name:"VPNavScreenMenuLink",props:{item:{}},setup(s){const e=x("close-screen");return(t,o)=>(a(),k(F,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:r(e)},{default:f(()=>[d("span",{innerHTML:t.item.text},null,8,Us)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),zs=g(js,[["__scopeId","data-v-ad01ecaf"]]),Ws=["innerHTML"],Ks=m({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(s){const e=x("close-screen");return(t,o)=>(a(),k(F,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,"no-icon":t.item.noIcon,onClick:r(e)},{default:f(()=>[d("span",{innerHTML:t.item.text},null,8,Ws)]),_:1},8,["href","target","rel","no-icon","onClick"]))}}),Ce=g(Ks,[["__scopeId","data-v-7a16559a"]]),qs={class:"VPNavScreenMenuGroupSection"},Rs={key:0,class:"title"},Js=m({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(s){return(e,t)=>(a(),u("div",qs,[e.text?(a(),u("p",Rs,I(e.text),1)):h("",!0),(a(!0),u(w,null,H(e.items,o=>(a(),k(Ce,{key:o.text,item:o},null,8,["item"]))),128))]))}}),Xs=g(Js,[["__scopeId","data-v-04760db1"]]),Ys=["aria-controls","aria-expanded"],Qs=["innerHTML"],Zs=["id"],xs={key:0,class:"item"},ea={key:1,class:"item"},ta={key:2,class:"group"},na=m({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(s){const e=s,t=T(!1),o=y(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(i,l)=>(a(),u("div",{class:M(["VPNavScreenMenuGroup",{open:t.value}])},[d("button",{class:"button","aria-controls":o.value,"aria-expanded":t.value,onClick:n},[d("span",{class:"button-text",innerHTML:i.text},null,8,Qs),l[0]||(l[0]=d("span",{class:"vpi-plus button-icon"},null,-1))],8,Ys),d("div",{id:o.value,class:"items"},[(a(!0),u(w,null,H(i.items,v=>(a(),u(w,{key:JSON.stringify(v)},["link"in v?(a(),u("div",xs,[_(Ce,{item:v},null,8,["item"])])):"component"in v?(a(),u("div",ea,[(a(),k(E(v.component),U({ref_for:!0},v.props,{"screen-menu":""}),null,16))])):(a(),u("div",ta,[_(Xs,{text:v.text,items:v.items},null,8,["text","items"])]))],64))),128))],8,Zs)],2))}}),oa=g(na,[["__scopeId","data-v-ba0a0a67"]]),sa={key:0,class:"VPNavScreenMenu"},aa=m({__name:"VPNavScreenMenu",setup(s){const{theme:e}=L();return(t,o)=>r(e).nav?(a(),u("nav",sa,[(a(!0),u(w,null,H(r(e).nav,n=>(a(),u(w,{key:JSON.stringify(n)},["link"in n?(a(),k(zs,{key:0,item:n},null,8,["item"])):"component"in n?(a(),k(E(n.component),U({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(a(),k(oa,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),ra=m({__name:"VPNavScreenSocialLinks",setup(s){const{theme:e}=L();return(t,o)=>r(e).socialLinks?(a(),k(be,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),ia={class:"list"},la=m({__name:"VPNavScreenTranslations",setup(s){const{localeLinks:e,currentLang:t}=R({correspondingLink:!0}),o=T(!1);function n(){o.value=!o.value}return(i,l)=>r(e).length&&r(t).label?(a(),u("div",{key:0,class:M(["VPNavScreenTranslations",{open:o.value}])},[d("button",{class:"title",onClick:n},[l[0]||(l[0]=d("span",{class:"vpi-languages icon lang"},null,-1)),z(" "+I(r(t).label)+" ",1),l[1]||(l[1]=d("span",{class:"vpi-chevron-down icon chevron"},null,-1))]),d("ul",ia,[(a(!0),u(w,null,H(r(e),v=>(a(),u("li",{key:v.link,class:"item"},[_(F,{class:"link",href:v.link},{default:f(()=>[z(I(v.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),ca=g(la,[["__scopeId","data-v-abae4660"]]),ua={class:"container"},da=m({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(s){const e=T(null),t=Se(ee?document.body:null);return(o,n)=>(a(),k(ue,{name:"fade",onEnter:n[0]||(n[0]=i=>t.value=!0),onAfterLeave:n[1]||(n[1]=i=>t.value=!1)},{default:f(()=>[o.open?(a(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[d("div",ua,[c(o.$slots,"nav-screen-content-before",{},void 0,!0),_(aa,{class:"menu"}),_(ca,{class:"translations"}),_(Gs,{class:"appearance"}),_(ra,{class:"social-links"}),c(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),va=g(da,[["__scopeId","data-v-f4b27fb4"]]),pa={key:0,class:"VPNav"},fa=m({__name:"VPNav",setup(s){const{isScreenOpen:e,closeScreen:t,toggleScreen:o}=lo(),{frontmatter:n}=L(),i=y(()=>n.value.navbar!==!1);return Te("close-screen",t),Y(()=>{ee&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(l,v)=>i.value?(a(),u("header",pa,[_(Es,{"is-screen-open":r(e),onToggleScreen:r(o)},{"nav-bar-title-before":f(()=>[c(l.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(l.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(l.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(l.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),_(va,{open:r(e)},{"nav-screen-content-before":f(()=>[c(l.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(l.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),ha=g(fa,[["__scopeId","data-v-b6ac2530"]]),ma=["role","tabindex"],_a={key:1,class:"items"},ka=m({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(s){const e=s,{collapsed:t,collapsible:o,isLink:n,isActiveLink:i,hasActiveLink:l,hasChildren:v,toggle:p}=dt(y(()=>e.item)),$=y(()=>v.value?"section":"div"),V=y(()=>n.value?"a":"div"),b=y(()=>v.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),P=y(()=>n.value?void 0:"button"),N=y(()=>[[`level-${e.depth}`],{collapsible:o.value},{collapsed:t.value},{"is-link":n.value},{"is-active":i.value},{"has-active":l.value}]);function A(S){"key"in S&&S.key!=="Enter"||!e.item.link&&p()}function C(){e.item.link&&p()}return(S,B)=>{const G=K("VPSidebarItem",!0);return a(),k(E($.value),{class:M(["VPSidebarItem",N.value])},{default:f(()=>[S.item.text?(a(),u("div",U({key:0,class:"item",role:P.value},ze(S.item.items?{click:A,keydown:A}:{},!0),{tabindex:S.item.items&&0}),[B[1]||(B[1]=d("div",{class:"indicator"},null,-1)),S.item.link?(a(),k(F,{key:0,tag:V.value,class:"link",href:S.item.link,rel:S.item.rel,target:S.item.target},{default:f(()=>[(a(),k(E(b.value),{class:"text",innerHTML:S.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(a(),k(E(b.value),{key:1,class:"text",innerHTML:S.item.text},null,8,["innerHTML"])),S.item.collapsed!=null&&S.item.items&&S.item.items.length?(a(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:C,onKeydown:We(C,["enter"]),tabindex:"0"},B[0]||(B[0]=[d("span",{class:"vpi-chevron-right caret-icon"},null,-1)]),32)):h("",!0)],16,ma)):h("",!0),S.item.items&&S.item.items.length?(a(),u("div",_a,[S.depth<5?(a(!0),u(w,{key:0},H(S.item.items,q=>(a(),k(G,{key:q.text,item:q,depth:S.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),ba=g(ka,[["__scopeId","data-v-074d9f77"]]),ga=m({__name:"VPSidebarGroup",props:{items:{}},setup(s){const e=T(!0);let t=null;return j(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Ke(()=>{t!=null&&(clearTimeout(t),t=null)}),(o,n)=>(a(!0),u(w,null,H(o.items,i=>(a(),u("div",{key:i.text,class:M(["group",{"no-transition":e.value}])},[_(ba,{item:i,depth:0},null,8,["item"])],2))),128))}}),$a=g(ga,[["__scopeId","data-v-f4a843d6"]]),ya={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Pa=m({__name:"VPSidebar",props:{open:{type:Boolean}},setup(s){const{sidebarGroups:e,hasSidebar:t}=O(),o=s,n=T(null),i=Se(ee?document.body:null);D([o,n],()=>{var v;o.open?(i.value=!0,(v=n.value)==null||v.focus()):i.value=!1},{immediate:!0,flush:"post"});const l=T(0);return D(e,()=>{l.value+=1},{deep:!0}),(v,p)=>r(t)?(a(),u("aside",{key:0,class:M(["VPSidebar",{open:v.open}]),ref_key:"navEl",ref:n,onClick:p[0]||(p[0]=qe(()=>{},["stop"]))},[p[2]||(p[2]=d("div",{class:"curtain"},null,-1)),d("nav",ya,[p[1]||(p[1]=d("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),c(v.$slots,"sidebar-nav-before",{},void 0,!0),(a(),k($a,{items:r(e),key:l.value},null,8,["items"])),c(v.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),La=g(Pa,[["__scopeId","data-v-4cb10d83"]]),Va=m({__name:"VPSkipLink",setup(s){const{theme:e}=L(),t=Z(),o=T();D(()=>t.path,()=>o.value.focus());function n({target:i}){const l=document.getElementById(decodeURIComponent(i.hash).slice(1));if(l){const v=()=>{l.removeAttribute("tabindex"),l.removeEventListener("blur",v)};l.setAttribute("tabindex","-1"),l.addEventListener("blur",v),l.focus(),window.scrollTo(0,0)}}return(i,l)=>(a(),u(w,null,[d("span",{ref_key:"backToTop",ref:o,tabindex:"-1"},null,512),d("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n},I(r(e).skipToContentLabel||"Skip to content"),1)],64))}}),Sa=g(Va,[["__scopeId","data-v-efe7d6be"]]),Ta=m({__name:"Layout",setup(s){const{isOpen:e,open:t,close:o}=O(),n=Z();D(()=>n.path,o),ut(e,o);const{frontmatter:i}=L(),l=Re(),v=y(()=>!!l["home-hero-image"]);return Te("hero-image-slot-exists",v),(p,$)=>{const V=K("Content");return r(i).layout!==!1?(a(),u("div",{key:0,class:M(["Layout",r(i).pageClass])},[c(p.$slots,"layout-top",{},void 0,!0),_(Sa),_(Qe,{class:"backdrop",show:r(e),onClick:r(o)},null,8,["show","onClick"]),_(ha,null,{"nav-bar-title-before":f(()=>[c(p.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":f(()=>[c(p.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":f(()=>[c(p.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":f(()=>[c(p.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":f(()=>[c(p.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":f(()=>[c(p.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),_(io,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),_(La,{open:r(e)},{"sidebar-nav-before":f(()=>[c(p.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":f(()=>[c(p.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),_(Kn,null,{"page-top":f(()=>[c(p.$slots,"page-top",{},void 0,!0)]),"page-bottom":f(()=>[c(p.$slots,"page-bottom",{},void 0,!0)]),"not-found":f(()=>[c(p.$slots,"not-found",{},void 0,!0)]),"home-hero-before":f(()=>[c(p.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":f(()=>[c(p.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":f(()=>[c(p.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":f(()=>[c(p.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":f(()=>[c(p.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":f(()=>[c(p.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":f(()=>[c(p.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":f(()=>[c(p.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":f(()=>[c(p.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":f(()=>[c(p.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":f(()=>[c(p.$slots,"doc-before",{},void 0,!0)]),"doc-after":f(()=>[c(p.$slots,"doc-after",{},void 0,!0)]),"doc-top":f(()=>[c(p.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":f(()=>[c(p.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":f(()=>[c(p.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":f(()=>[c(p.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":f(()=>[c(p.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":f(()=>[c(p.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":f(()=>[c(p.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":f(()=>[c(p.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),_(Yn),c(p.$slots,"layout-bottom",{},void 0,!0)],2)):(a(),k(V,{key:1}))}}}),Na=g(Ta,[["__scopeId","data-v-b6c923d7"]]),Ia={Layout:Na,enhanceApp:({app:s})=>{s.component("Badge",Je)}};export{ds as c,Ia as t,L as u}; diff --git a/docs/.vitepress/dist/assets/contributing.md.k9HB5RBU.js b/docs/.vitepress/dist/assets/contributing.md.k9HB5RBU.js deleted file mode 100644 index 1b244e25..00000000 --- a/docs/.vitepress/dist/assets/contributing.md.k9HB5RBU.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as e,o as n}from"./chunks/framework.BmLMQRXF.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"contributing.md","filePath":"contributing.md","lastUpdated":1739330962000}'),a={name:"contributing.md"};function r(o,c,i,s,d,p){return n(),e("div")}const f=t(a,[["render",r]]);export{m as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/contributing.md.k9HB5RBU.lean.js b/docs/.vitepress/dist/assets/contributing.md.k9HB5RBU.lean.js deleted file mode 100644 index 1b244e25..00000000 --- a/docs/.vitepress/dist/assets/contributing.md.k9HB5RBU.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as e,o as n}from"./chunks/framework.BmLMQRXF.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"contributing.md","filePath":"contributing.md","lastUpdated":1739330962000}'),a={name:"contributing.md"};function r(o,c,i,s,d,p){return n(),e("div")}const f=t(a,[["render",r]]);export{m as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/en_api_index.md.DowD_P4F.js b/docs/.vitepress/dist/assets/en_api_index.md.DowD_P4F.js deleted file mode 100644 index 669b20bb..00000000 --- a/docs/.vitepress/dist/assets/en_api_index.md.DowD_P4F.js +++ /dev/null @@ -1,70 +0,0 @@ -import{_ as i,c as a,o as t,ag as n}from"./chunks/framework.BmLMQRXF.js";const E=JSON.parse('{"title":"FileCodeBox API Documentation","description":"","frontmatter":{},"headers":[],"relativePath":"en/api/index.md","filePath":"en/api/index.md","lastUpdated":1739330962000}'),e={name:"en/api/index.md"};function h(l,s,p,d,k,r){return t(),a("div",null,s[0]||(s[0]=[n(`

FileCodeBox API Documentation

API Version: 2.1.0

Table of Contents

Authentication

Some APIs require Authorization header for authentication:

Authorization: Bearer <token>

Share API

Share Text

POST /share/text/

Share text content and get a share code.

Parameters:

ParameterTypeRequiredDefaultDescription
textstringYes-Text content to share
expire_valueintegerNo1Expiration time value
expire_stylestringNo"day"Expiration time unit(day/hour/minute)

Response Example:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "text.txt"
-  }
-}

Share File

POST /share/file/

Upload and share a file, get a share code.

Parameters:

ParameterTypeRequiredDefaultDescription
filefileYes-File to upload
expire_valueintegerNo1Expiration time value
expire_stylestringNo"day"Expiration time unit(day/hour/minute)

Response Example:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "example.txt"
-  }
-}

Get File Info

GET /share/select/

Get file information by share code.

Parameters:

ParameterTypeRequiredDescription
codestringYesFile share code

Response Example:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "example.txt",
-    "size": 1024,
-    "text": "File content or download link"
-  }
-}

Select File

POST /share/select/

Select file by share code.

Parameters:

ParameterTypeRequiredDescription
codestringYesFile share code

Response Example:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "example.txt",
-    "size": 1024,
-    "text": "File content or download link"
-  }
-}

Download File

GET /share/download

Download shared file.

Parameters:

ParameterTypeRequiredDescription
keystringYesDownload key
codestringYesFile share code

Admin API

Admin Login

POST /admin/login

Admin login to get token.

Parameters:

ParameterTypeRequiredDescription
passwordstringYesAdmin password

Dashboard Data

GET /admin/dashboard

Get system dashboard data.

Response Example:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "totalFiles": 100,
-    "storageUsed": "1.5GB",
-    "sysUptime": "10 days",
-    "yesterdayCount": 50,
-    "yesterdaySize": "500MB",
-    "todayCount": 30,
-    "todaySize": "300MB"
-  }
-}

File List

GET /admin/file/list

Get system file list.

Parameters:

ParameterTypeRequiredDefaultDescription
pageintegerNo1Current page
sizeintegerNo10Page size
keywordstringNo""Search keyword

Response Example:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "page": 1,
-    "size": 10,
-    "total": 100,
-    "data": [
-      {
-        "id": 1,
-        "name": "example.txt",
-        "size": 1024,
-        "created_at": "2024-01-01 12:00:00"
-      }
-    ]
-  }
-}

Delete File

DELETE /admin/file/delete

Delete file from system.

Parameters:

ParameterTypeRequiredDescription
idintegerYesFile ID

Get Config

GET /admin/config/get

Get system configuration.

Update Config

PATCH /admin/config/update

Update system configuration.

Error Response

When an error occurs, the API will return corresponding error message:

json
{
-  "code": 422,
-  "detail": [
-    {
-      "loc": ["body", "password"],
-      "msg": "Password cannot be empty",
-      "type": "value_error"
-    }
-  ]
-}

Status Codes

  • 200: Success
  • 401: Unauthorized
  • 403: Forbidden
  • 404: Not Found
  • 422: Validation Error
  • 500: Internal Server Error
`,75)]))}const g=i(e,[["render",h]]);export{E as __pageData,g as default}; diff --git a/docs/.vitepress/dist/assets/en_api_index.md.DowD_P4F.lean.js b/docs/.vitepress/dist/assets/en_api_index.md.DowD_P4F.lean.js deleted file mode 100644 index 9eeb90c6..00000000 --- a/docs/.vitepress/dist/assets/en_api_index.md.DowD_P4F.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as i,c as a,o as t,ag as n}from"./chunks/framework.BmLMQRXF.js";const E=JSON.parse('{"title":"FileCodeBox API Documentation","description":"","frontmatter":{},"headers":[],"relativePath":"en/api/index.md","filePath":"en/api/index.md","lastUpdated":1739330962000}'),e={name:"en/api/index.md"};function h(l,s,p,d,k,r){return t(),a("div",null,s[0]||(s[0]=[n("",75)]))}const g=i(e,[["render",h]]);export{E as __pageData,g as default}; diff --git a/docs/.vitepress/dist/assets/en_changelog.md.BcADjzAG.js b/docs/.vitepress/dist/assets/en_changelog.md.BcADjzAG.js deleted file mode 100644 index b1782c02..00000000 --- a/docs/.vitepress/dist/assets/en_changelog.md.BcADjzAG.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const i=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/changelog.md","filePath":"en/changelog.md","lastUpdated":1739330962000}'),n={name:"en/changelog.md"};function o(c,r,s,d,l,p){return a(),t("div")}const g=e(n,[["render",o]]);export{i as __pageData,g as default}; diff --git a/docs/.vitepress/dist/assets/en_changelog.md.BcADjzAG.lean.js b/docs/.vitepress/dist/assets/en_changelog.md.BcADjzAG.lean.js deleted file mode 100644 index b1782c02..00000000 --- a/docs/.vitepress/dist/assets/en_changelog.md.BcADjzAG.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const i=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/changelog.md","filePath":"en/changelog.md","lastUpdated":1739330962000}'),n={name:"en/changelog.md"};function o(c,r,s,d,l,p){return a(),t("div")}const g=e(n,[["render",o]]);export{i as __pageData,g as default}; diff --git a/docs/.vitepress/dist/assets/en_contributing.md.PVT9OVBi.js b/docs/.vitepress/dist/assets/en_contributing.md.PVT9OVBi.js deleted file mode 100644 index 86a906f1..00000000 --- a/docs/.vitepress/dist/assets/en_contributing.md.PVT9OVBi.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as e,o as n}from"./chunks/framework.BmLMQRXF.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/contributing.md","filePath":"en/contributing.md","lastUpdated":1739330962000}'),a={name:"en/contributing.md"};function r(o,c,i,s,d,p){return n(),e("div")}const f=t(a,[["render",r]]);export{m as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/en_contributing.md.PVT9OVBi.lean.js b/docs/.vitepress/dist/assets/en_contributing.md.PVT9OVBi.lean.js deleted file mode 100644 index 86a906f1..00000000 --- a/docs/.vitepress/dist/assets/en_contributing.md.PVT9OVBi.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as e,o as n}from"./chunks/framework.BmLMQRXF.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/contributing.md","filePath":"en/contributing.md","lastUpdated":1739330962000}'),a={name:"en/contributing.md"};function r(o,c,i,s,d,p){return n(),e("div")}const f=t(a,[["render",r]]);export{m as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_configuration.md.B0l-oJMx.js b/docs/.vitepress/dist/assets/en_guide_configuration.md.B0l-oJMx.js deleted file mode 100644 index 7a263c66..00000000 --- a/docs/.vitepress/dist/assets/en_guide_configuration.md.B0l-oJMx.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/configuration.md","filePath":"en/guide/configuration.md","lastUpdated":1739330962000}'),n={name:"en/guide/configuration.md"};function o(r,i,c,s,d,f){return a(),t("div")}const _=e(n,[["render",o]]);export{u as __pageData,_ as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_configuration.md.B0l-oJMx.lean.js b/docs/.vitepress/dist/assets/en_guide_configuration.md.B0l-oJMx.lean.js deleted file mode 100644 index 7a263c66..00000000 --- a/docs/.vitepress/dist/assets/en_guide_configuration.md.B0l-oJMx.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/configuration.md","filePath":"en/guide/configuration.md","lastUpdated":1739330962000}'),n={name:"en/guide/configuration.md"};function o(r,i,c,s,d,f){return a(),t("div")}const _=e(n,[["render",o]]);export{u as __pageData,_ as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_getting-started.md.Dn8s1IIJ.js b/docs/.vitepress/dist/assets/en_guide_getting-started.md.Dn8s1IIJ.js deleted file mode 100644 index 029c123e..00000000 --- a/docs/.vitepress/dist/assets/en_guide_getting-started.md.Dn8s1IIJ.js +++ /dev/null @@ -1,6 +0,0 @@ -import{_ as i,c as a,o as t,ag as s}from"./chunks/framework.BmLMQRXF.js";const k=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/getting-started.md","filePath":"en/guide/getting-started.md","lastUpdated":1739330962000}'),l={name:"en/guide/getting-started.md"};function n(o,e,d,h,r,p){return t(),a("div",null,e[0]||(e[0]=[s(`

Getting Started

Introduction

FileCodeBox is a simple and efficient file sharing tool that supports temporary file transfer, sharing, and management. This guide will help you quickly deploy and use FileCodeBox.

Features

  • 🚀 Quick Deployment: Support Docker one-click deployment
  • 🔒 Secure & Reliable: File access requires extraction code
  • ⏱️ Time Control: Support setting file expiration time
  • 📊 Download Limit: Can limit file download times
  • 🖼️ File Preview: Support preview of images, videos, audio, and other formats
  • 📱 Responsive Design: Perfect adaptation for mobile and desktop

Deployment Methods

bash
docker run -d \\
-  --name filecodebox \\
-  -p 12345:12345 \\
-  -v /path/to/data:/app/data \\
-  vastsa/filecodebox

Manual Deployment

  1. Clone the project
bash
git clone https://github.com/vastsa/FileCodeBox.git
-cd FileCodeBox
  1. Install dependencies
bash
pip install -r requirements.txt
  1. Start service
bash
python main.py

Usage

  1. Access the System Open browser and visit http://localhost:12345

  2. Upload Files

    • Click upload button or drag files to upload area
    • Set file expiration time and download limit
    • Get share link and extraction code
  3. Download Files

    • Visit share link
    • Enter extraction code
    • Download file
  4. Admin Panel

    • Visit http://localhost:12345/admin
    • Enter admin password: FileCodeBox2023
    • Enter admin panel
    • View system information, file list, user management, etc.

Next Steps

`,19)]))}const u=i(l,[["render",n]]);export{k as __pageData,u as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_getting-started.md.Dn8s1IIJ.lean.js b/docs/.vitepress/dist/assets/en_guide_getting-started.md.Dn8s1IIJ.lean.js deleted file mode 100644 index 5c1171ce..00000000 --- a/docs/.vitepress/dist/assets/en_guide_getting-started.md.Dn8s1IIJ.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as i,c as a,o as t,ag as s}from"./chunks/framework.BmLMQRXF.js";const k=JSON.parse('{"title":"Getting Started","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/getting-started.md","filePath":"en/guide/getting-started.md","lastUpdated":1739330962000}'),l={name:"en/guide/getting-started.md"};function n(o,e,d,h,r,p){return t(),a("div",null,e[0]||(e[0]=[s("",19)]))}const u=i(l,[["render",n]]);export{k as __pageData,u as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_introduction.md.BD40RLpr.js b/docs/.vitepress/dist/assets/en_guide_introduction.md.BD40RLpr.js deleted file mode 100644 index 9072da4e..00000000 --- a/docs/.vitepress/dist/assets/en_guide_introduction.md.BD40RLpr.js +++ /dev/null @@ -1,10 +0,0 @@ -import{_ as a,c as i,o as t,ag as s}from"./chunks/framework.BmLMQRXF.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/introduction.md","filePath":"en/guide/introduction.md","lastUpdated":1739330962000}'),n={name:"en/guide/introduction.md"};function l(r,e,o,h,d,p){return t(),i("div",null,e[0]||(e[0]=[s(`
FileCodeBox Logo

Share text and files anonymously with a passcode, like picking up a package

GitHub starsGitHub forksGitHub issuesGitHub licenseQQ GroupPython VersionFastAPIVue Version

📝 Introduction

FileCodeBox is a lightweight file sharing tool developed with FastAPI + Vue3. It allows users to share text and files easily, where recipients only need a passcode to retrieve the files, just like picking up a package from a delivery locker.

🖼️ Preview

Frontend Repository     Demo Site

🎯 Use Cases

📁 Temporary File Sharing

Quick file sharing without registration

📝 Quick Text Sharing

Share code snippets and text content

🕶️ Anonymous Transfer

Privacy-protected file transfer

💾 Temporary Storage

File storage with expiration time

🔄 Cross-platform Transfer

Quick file transfer between devices

🌐 Private Share Service

Build your own file sharing service

✨ Core Features

🚀 Lightweight

Based on FastAPI + SQLite3 + Vue3 + ElementUI

📤 Easy Upload

Support copy-paste and drag-drop

📦 Multiple Types

Support text and various file types

🔒 Security

  • IP upload limits
  • Error attempt limits
  • File expiration

🎫 Passcode Sharing

Random codes with customizable limits

🌍 Multi-language

Support for Simplified Chinese, Traditional Chinese, and English

🎭 Anonymous

No registration required

🛠 Admin Panel

File and system management

🐳 Docker

One-click deployment

💾 Storage Options

Local, S3, OneDrive support

📱 Responsive

Mobile-friendly design

💻 CLI Support

Command-line download

🚀 Quick Start

Docker Deployment

bash
docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta

Manual Deployment

  1. Clone the repository
bash
git clone https://github.com/vastsa/FileCodeBox.git
  1. Install dependencies
bash
cd FileCodeBox
-pip install -r requirements.txt
  1. Start the service
bash
python main.py

📖 Usage Guide

Share Files

  1. Open the website, click "Share File"
  2. Select or drag files
  3. Set expiration time and count
  4. Get the passcode

Retrieve Files

  1. Open the website, enter passcode
  2. Click retrieve
  3. Download file or view text

Admin Panel

  1. Visit /admin
  2. Enter admin password
  3. Manage files and settings

🛠 Development Guide

Project Structure

FileCodeBox/
-├── apps/           # Application code
-│   ├── admin/     # Admin backend
-│   └── base/      # Base functions
-├── core/          # Core functions
-├── data/          # Data directory
-└── fcb-fronted/   # Frontend code

Development Environment

  • Python 3.8+
  • Node.js 14+
  • Vue 3
  • FastAPI

Local Development

  1. Backend development
bash
python main.py
  1. Frontend development
bash
cd fcb-fronted
-npm install
-npm run dev

🤝 Contributing

  1. Fork the project
  2. Create your feature branch git checkout -b feature/xxx
  3. Commit your changes git commit -m 'Add xxx'
  4. Push to the branch git push origin feature/xxx
  5. Open a Pull Request

❓ FAQ

Q: How to modify upload size limit?

A: Change uploadSize in admin panel

Q: How to configure storage engine?

A: Select storage engine and configure parameters in admin panel

Q: How to backup data?

A: Backup the data directory

For more questions, visit Wiki

😀 Project Statistics and Analytics

Featured|HelloGitHub

Repobeats

Star History

📜 Disclaimer

This project is open-source for learning purposes only. It should not be used for any illegal purposes. The author is not responsible for any consequences. Please retain the project address and copyright information when using it.

`,50)]))}const u=a(n,[["render",l]]);export{g as __pageData,u as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_introduction.md.BD40RLpr.lean.js b/docs/.vitepress/dist/assets/en_guide_introduction.md.BD40RLpr.lean.js deleted file mode 100644 index 6d2519b2..00000000 --- a/docs/.vitepress/dist/assets/en_guide_introduction.md.BD40RLpr.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as i,o as t,ag as s}from"./chunks/framework.BmLMQRXF.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/introduction.md","filePath":"en/guide/introduction.md","lastUpdated":1739330962000}'),n={name:"en/guide/introduction.md"};function l(r,e,o,h,d,p){return t(),i("div",null,e[0]||(e[0]=[s("",50)]))}const u=a(n,[["render",l]]);export{g as __pageData,u as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_management.md.B7zTh6Wx.js b/docs/.vitepress/dist/assets/en_guide_management.md.B7zTh6Wx.js deleted file mode 100644 index 4586d108..00000000 --- a/docs/.vitepress/dist/assets/en_guide_management.md.B7zTh6Wx.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/management.md","filePath":"en/guide/management.md","lastUpdated":1739330962000}'),n={name:"en/guide/management.md"};function r(m,o,s,c,d,i){return a(),t("div")}const f=e(n,[["render",r]]);export{_ as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_management.md.B7zTh6Wx.lean.js b/docs/.vitepress/dist/assets/en_guide_management.md.B7zTh6Wx.lean.js deleted file mode 100644 index 4586d108..00000000 --- a/docs/.vitepress/dist/assets/en_guide_management.md.B7zTh6Wx.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/management.md","filePath":"en/guide/management.md","lastUpdated":1739330962000}'),n={name:"en/guide/management.md"};function r(m,o,s,c,d,i){return a(),t("div")}const f=e(n,[["render",r]]);export{_ as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_security.md.Cviop6qN.js b/docs/.vitepress/dist/assets/en_guide_security.md.Cviop6qN.js deleted file mode 100644 index 52ef9abc..00000000 --- a/docs/.vitepress/dist/assets/en_guide_security.md.Cviop6qN.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/security.md","filePath":"en/guide/security.md","lastUpdated":1739330962000}'),r={name:"en/guide/security.md"};function s(c,n,i,o,d,p){return a(),t("div")}const m=e(r,[["render",s]]);export{_ as __pageData,m as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_security.md.Cviop6qN.lean.js b/docs/.vitepress/dist/assets/en_guide_security.md.Cviop6qN.lean.js deleted file mode 100644 index 52ef9abc..00000000 --- a/docs/.vitepress/dist/assets/en_guide_security.md.Cviop6qN.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/security.md","filePath":"en/guide/security.md","lastUpdated":1739330962000}'),r={name:"en/guide/security.md"};function s(c,n,i,o,d,p){return a(),t("div")}const m=e(r,[["render",s]]);export{_ as __pageData,m as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_share.md.76VwCXWs.js b/docs/.vitepress/dist/assets/en_guide_share.md.76VwCXWs.js deleted file mode 100644 index dad11c4e..00000000 --- a/docs/.vitepress/dist/assets/en_guide_share.md.76VwCXWs.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/share.md","filePath":"en/guide/share.md","lastUpdated":1739330962000}'),r={name:"en/guide/share.md"};function s(n,o,c,d,i,p){return a(),t("div")}const f=e(r,[["render",s]]);export{m as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_share.md.76VwCXWs.lean.js b/docs/.vitepress/dist/assets/en_guide_share.md.76VwCXWs.lean.js deleted file mode 100644 index dad11c4e..00000000 --- a/docs/.vitepress/dist/assets/en_guide_share.md.76VwCXWs.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/share.md","filePath":"en/guide/share.md","lastUpdated":1739330962000}'),r={name:"en/guide/share.md"};function s(n,o,c,d,i,p){return a(),t("div")}const f=e(r,[["render",s]]);export{m as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_storage.md.BYAxNGDy.js b/docs/.vitepress/dist/assets/en_guide_storage.md.BYAxNGDy.js deleted file mode 100644 index 2acc6f1e..00000000 --- a/docs/.vitepress/dist/assets/en_guide_storage.md.BYAxNGDy.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/storage.md","filePath":"en/guide/storage.md","lastUpdated":1739330962000}'),r={name:"en/guide/storage.md"};function o(s,n,c,d,i,p){return a(),t("div")}const f=e(r,[["render",o]]);export{m as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_storage.md.BYAxNGDy.lean.js b/docs/.vitepress/dist/assets/en_guide_storage.md.BYAxNGDy.lean.js deleted file mode 100644 index 2acc6f1e..00000000 --- a/docs/.vitepress/dist/assets/en_guide_storage.md.BYAxNGDy.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/storage.md","filePath":"en/guide/storage.md","lastUpdated":1739330962000}'),r={name:"en/guide/storage.md"};function o(s,n,c,d,i,p){return a(),t("div")}const f=e(r,[["render",o]]);export{m as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_upload copy.md.DjRt4QqF.js b/docs/.vitepress/dist/assets/en_guide_upload copy.md.DjRt4QqF.js deleted file mode 100644 index 986b7547..00000000 --- a/docs/.vitepress/dist/assets/en_guide_upload copy.md.DjRt4QqF.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/upload copy.md","filePath":"en/guide/upload copy.md","lastUpdated":1739330962000}'),o={name:"en/guide/upload copy.md"};function p(c,d,n,r,s,i){return a(),t("div")}const u=e(o,[["render",p]]);export{_ as __pageData,u as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_upload copy.md.DjRt4QqF.lean.js b/docs/.vitepress/dist/assets/en_guide_upload copy.md.DjRt4QqF.lean.js deleted file mode 100644 index 986b7547..00000000 --- a/docs/.vitepress/dist/assets/en_guide_upload copy.md.DjRt4QqF.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/upload copy.md","filePath":"en/guide/upload copy.md","lastUpdated":1739330962000}'),o={name:"en/guide/upload copy.md"};function p(c,d,n,r,s,i){return a(),t("div")}const u=e(o,[["render",p]]);export{_ as __pageData,u as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_upload.md.DUnZK1hP.js b/docs/.vitepress/dist/assets/en_guide_upload.md.DUnZK1hP.js deleted file mode 100644 index b065f85a..00000000 --- a/docs/.vitepress/dist/assets/en_guide_upload.md.DUnZK1hP.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/upload.md","filePath":"en/guide/upload.md","lastUpdated":1739330962000}'),o={name:"en/guide/upload.md"};function d(n,r,s,p,c,i){return a(),t("div")}const _=e(o,[["render",d]]);export{u as __pageData,_ as default}; diff --git a/docs/.vitepress/dist/assets/en_guide_upload.md.DUnZK1hP.lean.js b/docs/.vitepress/dist/assets/en_guide_upload.md.DUnZK1hP.lean.js deleted file mode 100644 index b065f85a..00000000 --- a/docs/.vitepress/dist/assets/en_guide_upload.md.DUnZK1hP.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/upload.md","filePath":"en/guide/upload.md","lastUpdated":1739330962000}'),o={name:"en/guide/upload.md"};function d(n,r,s,p,c,i){return a(),t("div")}const _=e(o,[["render",d]]);export{u as __pageData,_ as default}; diff --git a/docs/.vitepress/dist/assets/en_index.md.tZNBw7JM.js b/docs/.vitepress/dist/assets/en_index.md.tZNBw7JM.js deleted file mode 100644 index c8d7b48b..00000000 --- a/docs/.vitepress/dist/assets/en_index.md.tZNBw7JM.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"FileCodeBox","text":"File Express Box","tagline":"Share text and files anonymously with access codes, just like picking up a package","image":{"src":"/logo_small.png","alt":"FileCodeBox"},"actions":[{"theme":"brand","text":"Get Started","link":"/en/guide/getting-started"},{"theme":"alt","text":"View on GitHub","link":"https://github.com/vastsa/FileCodeBox"}]},"features":[{"icon":"🚀","title":"Quick Deployment","details":"Supports one-click Docker deployment, simple and fast, no complex configuration needed"},{"icon":"🔒","title":"Secure & Reliable","details":"File access requires an access code, supports expiration time and download limit settings"},{"icon":"💻","title":"Clean Interface","details":"Clean user interface with drag-and-drop upload support for excellent user experience"},{"icon":"🛠️","title":"Feature Rich","details":"Supports file preview, online playback, image processing, and many other features"},{"icon":"📦","title":"Storage Extensions","details":"Supports various storage methods including local storage and object storage"},{"icon":"🔌","title":"API Support","details":"Provides complete REST API for easy integration with other systems"}]},"headers":[],"relativePath":"en/index.md","filePath":"en/index.md","lastUpdated":1739330962000}'),i={name:"en/index.md"};function o(n,s,r,l,c,d){return a(),t("div")}const m=e(i,[["render",o]]);export{u as __pageData,m as default}; diff --git a/docs/.vitepress/dist/assets/en_index.md.tZNBw7JM.lean.js b/docs/.vitepress/dist/assets/en_index.md.tZNBw7JM.lean.js deleted file mode 100644 index c8d7b48b..00000000 --- a/docs/.vitepress/dist/assets/en_index.md.tZNBw7JM.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"FileCodeBox","text":"File Express Box","tagline":"Share text and files anonymously with access codes, just like picking up a package","image":{"src":"/logo_small.png","alt":"FileCodeBox"},"actions":[{"theme":"brand","text":"Get Started","link":"/en/guide/getting-started"},{"theme":"alt","text":"View on GitHub","link":"https://github.com/vastsa/FileCodeBox"}]},"features":[{"icon":"🚀","title":"Quick Deployment","details":"Supports one-click Docker deployment, simple and fast, no complex configuration needed"},{"icon":"🔒","title":"Secure & Reliable","details":"File access requires an access code, supports expiration time and download limit settings"},{"icon":"💻","title":"Clean Interface","details":"Clean user interface with drag-and-drop upload support for excellent user experience"},{"icon":"🛠️","title":"Feature Rich","details":"Supports file preview, online playback, image processing, and many other features"},{"icon":"📦","title":"Storage Extensions","details":"Supports various storage methods including local storage and object storage"},{"icon":"🔌","title":"API Support","details":"Provides complete REST API for easy integration with other systems"}]},"headers":[],"relativePath":"en/index.md","filePath":"en/index.md","lastUpdated":1739330962000}'),i={name:"en/index.md"};function o(n,s,r,l,c,d){return a(),t("div")}const m=e(i,[["render",o]]);export{u as __pageData,m as default}; diff --git a/docs/.vitepress/dist/assets/guide_configuration.md.BIXg2nLZ.js b/docs/.vitepress/dist/assets/guide_configuration.md.BIXg2nLZ.js deleted file mode 100644 index c321f3ae..00000000 --- a/docs/.vitepress/dist/assets/guide_configuration.md.BIXg2nLZ.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as e,o as a}from"./chunks/framework.BmLMQRXF.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/configuration.md","filePath":"guide/configuration.md","lastUpdated":1739330962000}'),o={name:"guide/configuration.md"};function n(r,i,c,s,d,f){return a(),e("div")}const _=t(o,[["render",n]]);export{u as __pageData,_ as default}; diff --git a/docs/.vitepress/dist/assets/guide_configuration.md.BIXg2nLZ.lean.js b/docs/.vitepress/dist/assets/guide_configuration.md.BIXg2nLZ.lean.js deleted file mode 100644 index c321f3ae..00000000 --- a/docs/.vitepress/dist/assets/guide_configuration.md.BIXg2nLZ.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as e,o as a}from"./chunks/framework.BmLMQRXF.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/configuration.md","filePath":"guide/configuration.md","lastUpdated":1739330962000}'),o={name:"guide/configuration.md"};function n(r,i,c,s,d,f){return a(),e("div")}const _=t(o,[["render",n]]);export{u as __pageData,_ as default}; diff --git a/docs/.vitepress/dist/assets/guide_getting-started.md.BG1qGt6J.js b/docs/.vitepress/dist/assets/guide_getting-started.md.BG1qGt6J.js deleted file mode 100644 index 5ed8df47..00000000 --- a/docs/.vitepress/dist/assets/guide_getting-started.md.BG1qGt6J.js +++ /dev/null @@ -1,6 +0,0 @@ -import{_ as a,c as s,o as l,ag as e}from"./chunks/framework.BmLMQRXF.js";const c=JSON.parse('{"title":"快速开始","description":"","frontmatter":{},"headers":[],"relativePath":"guide/getting-started.md","filePath":"guide/getting-started.md","lastUpdated":1739330962000}'),t={name:"guide/getting-started.md"};function h(n,i,p,d,o,r){return l(),s("div",null,i[0]||(i[0]=[e(`

快速开始

简介

FileCodeBox 是一个简单高效的文件分享工具,支持文件临时中转、分享和管理。本指南将帮助您快速部署和使用 FileCodeBox。

特性

  • 🚀 快速部署:支持 Docker 一键部署
  • 🔒 安全可靠:文件访问需要提取码
  • ⏱️ 时效控制:支持设置文件有效期
  • 📊 下载限制:可限制文件下载次数
  • 🖼️ 文件预览:支持图片、视频、音频等多种格式预览
  • 📱 响应式设计:完美适配移动端和桌面端

部署方式

Docker 部署(推荐)

bash
docker run -d \\
-  --name filecodebox \\
-  -p 12345:12345 \\
-  -v /path/to/data:/app/data \\
-  vastsa/filecodebox

手动部署

  1. 克隆项目
bash
git clone https://github.com/vastsa/FileCodeBox.git
-cd FileCodeBox
  1. 安装依赖
bash
pip install -r requirements.txt
  1. 启动服务
bash
python main.py

使用方法

  1. 访问系统 打开浏览器访问 http://localhost:12345

  2. 上传文件

    • 点击上传按钮或拖拽文件到上传区域
    • 设置文件有效期和下载次数限制
    • 获取分享链接和提取码
  3. 下载文件

    • 访问分享链接
    • 输入提取码
    • 下载文件
  4. 后台管理

    • 访问 http://localhost:12345/admin
    • 输入管理员密码:FileCodeBox2023
    • 进入后台管理页面
    • 查看系统信息、文件列表、用户管理等

下一步

`,19)]))}const g=a(t,[["render",h]]);export{c as __pageData,g as default}; diff --git a/docs/.vitepress/dist/assets/guide_getting-started.md.BG1qGt6J.lean.js b/docs/.vitepress/dist/assets/guide_getting-started.md.BG1qGt6J.lean.js deleted file mode 100644 index 0daa7f0d..00000000 --- a/docs/.vitepress/dist/assets/guide_getting-started.md.BG1qGt6J.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as s,o as l,ag as e}from"./chunks/framework.BmLMQRXF.js";const c=JSON.parse('{"title":"快速开始","description":"","frontmatter":{},"headers":[],"relativePath":"guide/getting-started.md","filePath":"guide/getting-started.md","lastUpdated":1739330962000}'),t={name:"guide/getting-started.md"};function h(n,i,p,d,o,r){return l(),s("div",null,i[0]||(i[0]=[e("",19)]))}const g=a(t,[["render",h]]);export{c as __pageData,g as default}; diff --git a/docs/.vitepress/dist/assets/guide_introduction.md.CebWHzyk.js b/docs/.vitepress/dist/assets/guide_introduction.md.CebWHzyk.js deleted file mode 100644 index 22c4c1fd..00000000 --- a/docs/.vitepress/dist/assets/guide_introduction.md.CebWHzyk.js +++ /dev/null @@ -1,10 +0,0 @@ -import{_ as i,c as e,o as s,ag as t}from"./chunks/framework.BmLMQRXF.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduction.md","filePath":"guide/introduction.md","lastUpdated":1739330962000}'),l={name:"guide/introduction.md"};function h(n,a,r,o,d,p){return s(),e("div",null,a[0]||(a[0]=[t(`
FileCodeBox Logo

匿名口令分享文本和文件,像拿快递一样取文件

GitHub starsGitHub forksGitHub issuesGitHub licenseQQ GroupPython VersionFastAPIVue Version

🚀 更新计划

  • [ ] 切片上传,同文件秒传,断点续传
  • [ ] 用户登录重构
  • [x] webdav存储
  • [x] 存储支持自定义路径
  • [x] s3优化,不修改昵称为uuid,新建目录

📝 项目简介

FileCodeBox 是一个基于 FastAPI + Vue3 开发的轻量级文件分享工具。它允许用户通过简单的方式分享文本和文件,接收者只需要一个提取码就可以取得文件,就像从快递柜取出快递一样简单。

🎯 应用场景

📁 临时文件分享

快速分享单个文件,无需注册登录

📝 文本快速分享

分享代码片段、文本内容等

🕶️ 匿名文件传输

保护隐私的文件传输方式

💾 临时文件存储

支持设置过期时间的文件存储

🔄 跨平台传输

在不同设备间快速传输文件

🌐 小型分享服务

搭建私有的文件分享服务

✨ 核心特性

🚀 轻量简洁

基于 FastAPI + SQLite3 + Vue3 + ElementUI,部署简单,性能出色

📤 便捷上传

支持复制粘贴、拖拽上传,操作简单直观

📦 多种类型

支持文本和各类文件的分享

🔒 安全机制

  • IP 限制上传次数
  • 错误次数限制
  • 文件过期机制

🎫 提取码分享

随机提取码,可自定义次数及有效期

🌍 多语言支持

支持中文简体、繁体及英文

🎭 匿名分享

无需注册登录,保护隐私

🛠 管理面板

文件管理和系统配置

🐳 容器部署

支持 Docker 一键部署

💾 存储扩展

支持本地存储、S3 协议、OneDrive 等

📱 响应式设计

支持移动端访问

💻 终端支持

支持命令行下载

🚀 快速开始

Docker 部署

bash
docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta

手动部署

  1. 克隆项目
bash
git clone https://github.com/vastsa/FileCodeBox.git
  1. 安装依赖
bash
cd FileCodeBox
-pip install -r requirements.txt
  1. 启动服务
bash
python main.py

📖 使用说明

分享文件

  1. 打开网页,点击"分享文件"
  2. 选择或拖拽文件
  3. 设置过期时间和次数
  4. 获取提取码

获取文件

  1. 打开网页,输入提取码
  2. 点击获取
  3. 下载文件或查看文本

管理面板

  1. 访问 /admin
  2. 输入管理员密码
  3. 管理文件和配置

🛠 开发指南

项目结构

FileCodeBox/
-├── apps/           # 应用代码
-│   ├── admin/     # 管理后台
-│   └── base/      # 基础功能
-├── core/          # 核心功能
-├── data/          # 数据目录
-└── fcb-fronted/   # 前端代码

开发环境

  • Python 3.8+
  • Node.js 14+
  • Vue 3
  • FastAPI

本地开发

  1. 后端开发
bash
python main.py
  1. 前端开发
bash
cd fcb-fronted
-npm install
-npm run dev

🤝 贡献指南

  1. Fork 本项目
  2. 创建新分支 git checkout -b feature/xxx
  3. 提交更改 git commit -m 'Add xxx'
  4. 推送到分支 git push origin feature/xxx
  5. 提交 Pull Request

❓ 常见问题

Q: 如何修改上传大小限制?

A: 在管理面板中修改配置项 uploadSize

Q: 如何配置存储引擎?

A: 在管理面板中选择存储引擎并配置相应参数

Q: 如何备份数据?

A: 备份 data 目录即可

更多问题请访问 Wiki

📊 项目统计

Featured|HelloGitHub

Repobeats

Star History

📜 免责声明

本项目开源仅供学习使用,不得用于任何违法用途,否则后果自负,与作者无关。使用时请保留项目地址和版权信息。

`,50)]))}const k=i(l,[["render",h]]);export{g as __pageData,k as default}; diff --git a/docs/.vitepress/dist/assets/guide_introduction.md.CebWHzyk.lean.js b/docs/.vitepress/dist/assets/guide_introduction.md.CebWHzyk.lean.js deleted file mode 100644 index c1831022..00000000 --- a/docs/.vitepress/dist/assets/guide_introduction.md.CebWHzyk.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as i,c as e,o as s,ag as t}from"./chunks/framework.BmLMQRXF.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/introduction.md","filePath":"guide/introduction.md","lastUpdated":1739330962000}'),l={name:"guide/introduction.md"};function h(n,a,r,o,d,p){return s(),e("div",null,a[0]||(a[0]=[t("",50)]))}const k=i(l,[["render",h]]);export{g as __pageData,k as default}; diff --git a/docs/.vitepress/dist/assets/guide_management.md.eUCTNsEJ.js b/docs/.vitepress/dist/assets/guide_management.md.eUCTNsEJ.js deleted file mode 100644 index 39bc02ed..00000000 --- a/docs/.vitepress/dist/assets/guide_management.md.eUCTNsEJ.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/management.md","filePath":"guide/management.md","lastUpdated":1739330962000}'),n={name:"guide/management.md"};function r(m,o,s,c,d,i){return a(),t("div")}const f=e(n,[["render",r]]);export{_ as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/guide_management.md.eUCTNsEJ.lean.js b/docs/.vitepress/dist/assets/guide_management.md.eUCTNsEJ.lean.js deleted file mode 100644 index 39bc02ed..00000000 --- a/docs/.vitepress/dist/assets/guide_management.md.eUCTNsEJ.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/management.md","filePath":"guide/management.md","lastUpdated":1739330962000}'),n={name:"guide/management.md"};function r(m,o,s,c,d,i){return a(),t("div")}const f=e(n,[["render",r]]);export{_ as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/guide_security.md.-P7VdlH3.js b/docs/.vitepress/dist/assets/guide_security.md.-P7VdlH3.js deleted file mode 100644 index ec668a1f..00000000 --- a/docs/.vitepress/dist/assets/guide_security.md.-P7VdlH3.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/security.md","filePath":"guide/security.md","lastUpdated":1739330962000}'),r={name:"guide/security.md"};function s(c,i,o,d,n,p){return a(),t("div")}const m=e(r,[["render",s]]);export{_ as __pageData,m as default}; diff --git a/docs/.vitepress/dist/assets/guide_security.md.-P7VdlH3.lean.js b/docs/.vitepress/dist/assets/guide_security.md.-P7VdlH3.lean.js deleted file mode 100644 index ec668a1f..00000000 --- a/docs/.vitepress/dist/assets/guide_security.md.-P7VdlH3.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/security.md","filePath":"guide/security.md","lastUpdated":1739330962000}'),r={name:"guide/security.md"};function s(c,i,o,d,n,p){return a(),t("div")}const m=e(r,[["render",s]]);export{_ as __pageData,m as default}; diff --git a/docs/.vitepress/dist/assets/guide_share.md.CQJMq2_v.js b/docs/.vitepress/dist/assets/guide_share.md.CQJMq2_v.js deleted file mode 100644 index cd7e3fd1..00000000 --- a/docs/.vitepress/dist/assets/guide_share.md.CQJMq2_v.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/share.md","filePath":"guide/share.md","lastUpdated":1739330962000}'),r={name:"guide/share.md"};function s(o,c,d,n,i,p){return a(),t("div")}const f=e(r,[["render",s]]);export{m as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/guide_share.md.CQJMq2_v.lean.js b/docs/.vitepress/dist/assets/guide_share.md.CQJMq2_v.lean.js deleted file mode 100644 index cd7e3fd1..00000000 --- a/docs/.vitepress/dist/assets/guide_share.md.CQJMq2_v.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/share.md","filePath":"guide/share.md","lastUpdated":1739330962000}'),r={name:"guide/share.md"};function s(o,c,d,n,i,p){return a(),t("div")}const f=e(r,[["render",s]]);export{m as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/guide_storage.md.OPzq4lQ1.js b/docs/.vitepress/dist/assets/guide_storage.md.OPzq4lQ1.js deleted file mode 100644 index e9d8b748..00000000 --- a/docs/.vitepress/dist/assets/guide_storage.md.OPzq4lQ1.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/storage.md","filePath":"guide/storage.md","lastUpdated":1739330962000}'),r={name:"guide/storage.md"};function o(s,c,d,n,i,p){return a(),t("div")}const f=e(r,[["render",o]]);export{m as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/guide_storage.md.OPzq4lQ1.lean.js b/docs/.vitepress/dist/assets/guide_storage.md.OPzq4lQ1.lean.js deleted file mode 100644 index e9d8b748..00000000 --- a/docs/.vitepress/dist/assets/guide_storage.md.OPzq4lQ1.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/storage.md","filePath":"guide/storage.md","lastUpdated":1739330962000}'),r={name:"guide/storage.md"};function o(s,c,d,n,i,p){return a(),t("div")}const f=e(r,[["render",o]]);export{m as __pageData,f as default}; diff --git a/docs/.vitepress/dist/assets/guide_upload.md.BGoSj7Ei.js b/docs/.vitepress/dist/assets/guide_upload.md.BGoSj7Ei.js deleted file mode 100644 index 4b67ff62..00000000 --- a/docs/.vitepress/dist/assets/guide_upload.md.BGoSj7Ei.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/upload.md","filePath":"guide/upload.md","lastUpdated":1739330962000}'),o={name:"guide/upload.md"};function d(r,s,p,c,n,i){return a(),t("div")}const _=e(o,[["render",d]]);export{u as __pageData,_ as default}; diff --git a/docs/.vitepress/dist/assets/guide_upload.md.BGoSj7Ei.lean.js b/docs/.vitepress/dist/assets/guide_upload.md.BGoSj7Ei.lean.js deleted file mode 100644 index 4b67ff62..00000000 --- a/docs/.vitepress/dist/assets/guide_upload.md.BGoSj7Ei.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as e,c as t,o as a}from"./chunks/framework.BmLMQRXF.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/upload.md","filePath":"guide/upload.md","lastUpdated":1739330962000}'),o={name:"guide/upload.md"};function d(r,s,p,c,n,i){return a(),t("div")}const _=e(o,[["render",d]]);export{u as __pageData,_ as default}; diff --git a/docs/.vitepress/dist/assets/index.md.BrsJo2Pg.js b/docs/.vitepress/dist/assets/index.md.BrsJo2Pg.js deleted file mode 100644 index 7abefb91..00000000 --- a/docs/.vitepress/dist/assets/index.md.BrsJo2Pg.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as e,o as i}from"./chunks/framework.BmLMQRXF.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"FileCodeBox","text":"文件快递柜","tagline":"匿名口令分享文本,文件,像拿快递一样取文件","image":{"src":"/logo_small.png","alt":"FileCodeBox"},"actions":[{"theme":"brand","text":"快速开始","link":"/guide/getting-started"},{"theme":"alt","text":"在 GitHub 上查看","link":"https://github.com/vastsa/FileCodeBox"}]},"features":[{"icon":"🚀","title":"快速部署","details":"支持 Docker 一键部署,简单快捷,无需复杂配置"},{"icon":"🔒","title":"安全可靠","details":"文件访问需要提取码,支持设置有效期和下载次数限制"},{"icon":"💻","title":"简洁界面","details":"清爽的用户界面,支持拖拽上传,使用体验极佳"},{"icon":"🛠️","title":"功能丰富","details":"支持文件预览、在线播放、图片处理等多种功能"},{"icon":"📦","title":"存储扩展","details":"支持本地存储、对象存储等多种存储方式"},{"icon":"🔌","title":"API 支持","details":"提供完整的 REST API,方便与其他系统集成"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1739330962000}'),a={name:"index.md"};function o(n,l,s,d,c,r){return i(),e("div")}const x=t(a,[["render",o]]);export{p as __pageData,x as default}; diff --git a/docs/.vitepress/dist/assets/index.md.BrsJo2Pg.lean.js b/docs/.vitepress/dist/assets/index.md.BrsJo2Pg.lean.js deleted file mode 100644 index 7abefb91..00000000 --- a/docs/.vitepress/dist/assets/index.md.BrsJo2Pg.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as t,c as e,o as i}from"./chunks/framework.BmLMQRXF.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"FileCodeBox","text":"文件快递柜","tagline":"匿名口令分享文本,文件,像拿快递一样取文件","image":{"src":"/logo_small.png","alt":"FileCodeBox"},"actions":[{"theme":"brand","text":"快速开始","link":"/guide/getting-started"},{"theme":"alt","text":"在 GitHub 上查看","link":"https://github.com/vastsa/FileCodeBox"}]},"features":[{"icon":"🚀","title":"快速部署","details":"支持 Docker 一键部署,简单快捷,无需复杂配置"},{"icon":"🔒","title":"安全可靠","details":"文件访问需要提取码,支持设置有效期和下载次数限制"},{"icon":"💻","title":"简洁界面","details":"清爽的用户界面,支持拖拽上传,使用体验极佳"},{"icon":"🛠️","title":"功能丰富","details":"支持文件预览、在线播放、图片处理等多种功能"},{"icon":"📦","title":"存储扩展","details":"支持本地存储、对象存储等多种存储方式"},{"icon":"🔌","title":"API 支持","details":"提供完整的 REST API,方便与其他系统集成"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1739330962000}'),a={name:"index.md"};function o(n,l,s,d,c,r){return i(),e("div")}const x=t(a,[["render",o]]);export{p as __pageData,x as default}; diff --git a/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 b/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 deleted file mode 100644 index b6b603d5..00000000 Binary files a/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 b/docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 deleted file mode 100644 index def40a4f..00000000 Binary files a/docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 b/docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 deleted file mode 100644 index e070c3d3..00000000 Binary files a/docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 b/docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 deleted file mode 100644 index a3c16ca4..00000000 Binary files a/docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 b/docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 deleted file mode 100644 index 2210a899..00000000 Binary files a/docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 b/docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 deleted file mode 100644 index 790d62dc..00000000 Binary files a/docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 b/docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 deleted file mode 100644 index 1eec0775..00000000 Binary files a/docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 b/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 deleted file mode 100644 index 2cfe6153..00000000 Binary files a/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 b/docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 deleted file mode 100644 index e3886dd1..00000000 Binary files a/docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 b/docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 deleted file mode 100644 index 36d67487..00000000 Binary files a/docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 b/docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 deleted file mode 100644 index 2bed1e85..00000000 Binary files a/docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 b/docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 deleted file mode 100644 index 9a8d1e2b..00000000 Binary files a/docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 b/docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 deleted file mode 100644 index 07d3c53a..00000000 Binary files a/docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 b/docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 deleted file mode 100644 index 57bdc22a..00000000 Binary files a/docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 and /dev/null differ diff --git a/docs/.vitepress/dist/assets/style.8SUn7xXl.css b/docs/.vitepress/dist/assets/style.8SUn7xXl.css deleted file mode 100644 index 2e660c04..00000000 --- a/docs/.vitepress/dist/assets/style.8SUn7xXl.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-cyrillic.C5lxZ8CY.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-greek-ext.CqjqNYQ-.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-greek.BBVDIX6e.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-vietnamese.BjW4sHH5.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-latin-ext.4ZJIpNVo.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-latin.Di8DUHzh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-cyrillic-ext.r48I6akx.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-cyrillic.By2_1cv3.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-greek-ext.1u6EdAuj.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-greek.DJ8dCoTZ.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-vietnamese.BSbpV94h.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-latin-ext.CN1xVJS-.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-latin.C2AdPX0b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Punctuation SC;font-weight:400;src:local("PingFang SC Regular"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:500;src:local("PingFang SC Medium"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:600;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:700;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: #3c3c43;--vp-c-text-2: #67676c;--vp-c-text-3: #929295}.dark{--vp-c-text-1: #dfdfd6;--vp-c-text-2: #98989f;--vp-c-text-3: #6a6a71}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:lang(es),:lang(pt){--vp-code-copy-copied-text-content: "Copiado"}:lang(fa){--vp-code-copy-copied-text-content: "کپی شد"}:lang(ko){--vp-code-copy-copied-text-content: "복사됨"}:lang(ru){--vp-code-copy-copied-text-content: "Скопировано"}:lang(zh){--vp-code-copy-copied-text-content: "已复制"}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath 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'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath 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'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc h4{margin:24px 0 0;letter-spacing:-.01em;line-height:24px;font-size:18px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s;color:var(--vp-c-text-2)}.vp-doc blockquote>p{margin:0;font-size:16px;transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code,.vp-doc h4>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;-webkit-user-select:none;user-select:none;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(:is(.no-icon,svg a,:has(img,svg))):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(:is(.no-icon,svg a,:has(img,svg))):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-e66c7a30]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-e66c7a30],.VPBackdrop.fade-leave-to[data-v-e66c7a30]{opacity:0}.VPBackdrop.fade-leave-active[data-v-e66c7a30]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-e66c7a30]{display:none}}.NotFound[data-v-060e6fc3]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-060e6fc3]{padding:96px 32px 168px}}.code[data-v-060e6fc3]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-060e6fc3]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-060e6fc3]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-060e6fc3]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-060e6fc3]{padding-top:20px}.link[data-v-060e6fc3]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-060e6fc3]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-697bcd1c]{position:relative;z-index:1}.nested[data-v-697bcd1c]{padding-right:16px;padding-left:16px}.outline-link[data-v-697bcd1c]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-697bcd1c]:hover,.outline-link.active[data-v-697bcd1c]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-697bcd1c]{padding-left:13px}.VPDocAsideOutline[data-v-30bc7595]{display:none}.VPDocAsideOutline.has-outline[data-v-30bc7595]{display:block}.content[data-v-30bc7595]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-30bc7595]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-30bc7595]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-a7c337e5]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-a7c337e5]{flex-grow:1}.VPDocAside[data-v-a7c337e5] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-a7c337e5] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-a7c337e5] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-afb38d82]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-afb38d82]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-2dcb78e4]{margin-top:64px}.edit-info[data-v-2dcb78e4]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-2dcb78e4]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-2dcb78e4]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-2dcb78e4]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-2dcb78e4]{margin-right:8px}.prev-next[data-v-2dcb78e4]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-2dcb78e4]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-2dcb78e4]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-2dcb78e4]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-2dcb78e4]{margin-left:auto;text-align:right}.desc[data-v-2dcb78e4]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-2dcb78e4]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-c7e25d19]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-c7e25d19]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-c7e25d19]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-c7e25d19]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-c7e25d19]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-c7e25d19]{display:flex;justify-content:center}.VPDoc .aside[data-v-c7e25d19]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-c7e25d19]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-c7e25d19]{max-width:1104px}}.container[data-v-c7e25d19]{margin:0 auto;width:100%}.aside[data-v-c7e25d19]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-c7e25d19]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-c7e25d19]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-c7e25d19]::-webkit-scrollbar{display:none}.aside-curtain[data-v-c7e25d19]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-c7e25d19]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-c7e25d19]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-c7e25d19]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-c7e25d19]{order:1;margin:0;min-width:640px}}.content-container[data-v-c7e25d19]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-c7e25d19]{max-width:688px}.VPButton[data-v-f410c593]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-f410c593]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-f410c593]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-f410c593]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-f410c593]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-f410c593]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-f410c593]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-f410c593]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-f410c593]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-f410c593]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-f410c593]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-f410c593]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-f410c593]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-1499dcbc]{display:none}.dark .VPImage.light[data-v-1499dcbc]{display:none}.VPHero[data-v-6a430a27]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-6a430a27]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-6a430a27]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-6a430a27]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-6a430a27]{flex-direction:row}}.main[data-v-6a430a27]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-6a430a27]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-6a430a27]{text-align:left}}@media (min-width: 960px){.main[data-v-6a430a27]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-6a430a27]{max-width:592px}}.heading[data-v-6a430a27]{display:flex;flex-direction:column}.name[data-v-6a430a27],.text[data-v-6a430a27]{width:fit-content;max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-6a430a27],.VPHero.has-image .text[data-v-6a430a27]{margin:0 auto}.name[data-v-6a430a27]{color:var(--vp-home-hero-name-color)}.clip[data-v-6a430a27]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-6a430a27],.text[data-v-6a430a27]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-6a430a27],.text[data-v-6a430a27]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-6a430a27],.VPHero.has-image .text[data-v-6a430a27]{margin:0}}.tagline[data-v-6a430a27]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-6a430a27]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-6a430a27]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-6a430a27]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-6a430a27]{margin:0}}.actions[data-v-6a430a27]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-6a430a27]{justify-content:center}@media (min-width: 640px){.actions[data-v-6a430a27]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-6a430a27]{justify-content:flex-start}}.action[data-v-6a430a27]{flex-shrink:0;padding:6px}.image[data-v-6a430a27]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-6a430a27]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-6a430a27]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-6a430a27]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-6a430a27]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-6a430a27]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-6a430a27]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-6a430a27]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-6a430a27]{width:320px;height:320px}}[data-v-6a430a27] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-6a430a27] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-6a430a27] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-2a3ec06d]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-2a3ec06d]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-2a3ec06d]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-2a3ec06d]>.VPImage{margin-bottom:20px}.icon[data-v-2a3ec06d]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-2a3ec06d]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-2a3ec06d]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-2a3ec06d]{padding-top:8px}.link-text-value[data-v-2a3ec06d]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-2a3ec06d]{margin-left:6px}.VPFeatures[data-v-f77cedad]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-f77cedad]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-f77cedad]{padding:0 64px}}.container[data-v-f77cedad]{margin:0 auto;max-width:1152px}.items[data-v-f77cedad]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-f77cedad]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-f77cedad],.item.grid-4[data-v-f77cedad],.item.grid-6[data-v-f77cedad]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-f77cedad],.item.grid-4[data-v-f77cedad]{width:50%}.item.grid-3[data-v-f77cedad],.item.grid-6[data-v-f77cedad]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-f77cedad]{width:25%}}.container[data-v-805abeb6]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-805abeb6]{padding:0 48px}}@media (min-width: 960px){.container[data-v-805abeb6]{width:100%;padding:0 64px}}.vp-doc[data-v-805abeb6] .VPHomeSponsors,.vp-doc[data-v-805abeb6] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-805abeb6] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-805abeb6] .VPHomeSponsors a,.vp-doc[data-v-805abeb6] .VPTeamPage a{text-decoration:none}.VPHome[data-v-6934af0f]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-6934af0f]{margin-bottom:128px}}.VPContent[data-v-62f80edf]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-62f80edf]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-62f80edf]{margin:0}@media (min-width: 960px){.VPContent[data-v-62f80edf]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-62f80edf]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-62f80edf]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-22dc8f31]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-22dc8f31]{display:none}.VPFooter[data-v-22dc8f31] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-22dc8f31] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-22dc8f31]{padding:32px}}.container[data-v-22dc8f31]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-22dc8f31],.copyright[data-v-22dc8f31]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-b4822720]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-b4822720]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-b4822720]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-b4822720]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-b4822720]{color:var(--vp-c-text-1)}.icon[data-v-b4822720]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-b4822720]{font-size:14px}.icon[data-v-b4822720]{font-size:16px}}.open>.icon[data-v-b4822720]{transform:rotate(90deg)}.items[data-v-b4822720]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-b4822720]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-b4822720]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-b4822720]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-b4822720]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-b4822720]{transition:all .2s ease-out}.flyout-leave-active[data-v-b4822720]{transition:all .15s ease-in}.flyout-enter-from[data-v-b4822720],.flyout-leave-to[data-v-b4822720]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-3ab135ad]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-3ab135ad]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-3ab135ad]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-3ab135ad]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-3ab135ad]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-3ab135ad]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-3ab135ad]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-3ab135ad]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-3ab135ad]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-3ab135ad]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-3ab135ad]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-3ab135ad]{display:none}}.menu-icon[data-v-3ab135ad]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-3ab135ad]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-3ab135ad]{padding:12px 32px 11px}}.VPSwitch[data-v-8e683565]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-8e683565]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-8e683565]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-8e683565]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-8e683565] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-8e683565] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-2fc9caea]{opacity:1}.moon[data-v-2fc9caea],.dark .sun[data-v-2fc9caea]{opacity:0}.dark .moon[data-v-2fc9caea]{opacity:1}.dark .VPSwitchAppearance[data-v-2fc9caea] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-7e6f0956]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-7e6f0956]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-b04e260a]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-b04e260a]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-b04e260a]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-b04e260a]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-f5175996]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-f5175996]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-f5175996]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-f5175996]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-2b491744]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-2b491744] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-2b491744] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-2b491744] .group:last-child{padding-bottom:0}.VPMenu[data-v-2b491744] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-2b491744] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-2b491744] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-2b491744] .action{padding-left:24px}.VPFlyout[data-v-839a11df]{position:relative}.VPFlyout[data-v-839a11df]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-839a11df]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-839a11df]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-839a11df]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-839a11df]{color:var(--vp-c-brand-2)}.button[aria-expanded=false]+.menu[data-v-839a11df]{opacity:0;visibility:hidden;transform:translateY(0)}.VPFlyout:hover .menu[data-v-839a11df],.button[aria-expanded=true]+.menu[data-v-839a11df]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-839a11df]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-839a11df]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-839a11df]{margin-right:0;font-size:16px}.text-icon[data-v-839a11df]{margin-left:4px;font-size:14px}.icon[data-v-839a11df]{font-size:20px;transition:fill .25s}.menu[data-v-839a11df]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-84a70180]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-84a70180]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-84a70180]>svg,.VPSocialLink[data-v-84a70180]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-607f35a4]{display:flex;justify-content:center}.VPNavBarExtra[data-v-c6f77877]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-c6f77877]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-c6f77877]{display:none}}.trans-title[data-v-c6f77877]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-c6f77877],.item.social-links[data-v-c6f77877]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-c6f77877]{min-width:176px}.appearance-action[data-v-c6f77877]{margin-right:-2px}.social-links-list[data-v-c6f77877]{margin:-4px -8px}.VPNavBarHamburger[data-v-ab6fcae6]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-ab6fcae6]{display:none}}.container[data-v-ab6fcae6]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-ab6fcae6]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-ab6fcae6]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-ab6fcae6]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-ab6fcae6]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-ab6fcae6]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-ab6fcae6]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-ab6fcae6],.VPNavBarHamburger.active:hover .middle[data-v-ab6fcae6],.VPNavBarHamburger.active:hover .bottom[data-v-ab6fcae6]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-ab6fcae6],.middle[data-v-ab6fcae6],.bottom[data-v-ab6fcae6]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-ab6fcae6]{top:0;left:0;transform:translate(0)}.middle[data-v-ab6fcae6]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-ab6fcae6]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-ee14b6c7]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-ee14b6c7],.VPNavBarMenuLink[data-v-ee14b6c7]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-28279947]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-28279947]{display:flex}}/*! @docsearch/css 3.8.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch-Button-Key--pressed{box-shadow:var(--docsearch-key-pressed-shadow);transform:translate3d(0,1px,0)}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button-Key--pressed{transform:none;box-shadow:none}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-91a2f046]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-91a2f046]{display:flex;align-items:center}}.title[data-v-0c6c2dd6]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-0c6c2dd6]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-0c6c2dd6]{border-bottom-color:var(--vp-c-divider)}}[data-v-0c6c2dd6] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-adf6da57]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-adf6da57]{display:flex;align-items:center}}.title[data-v-adf6da57]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-79868b1d]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .25s}.VPNavBar.screen-open[data-v-79868b1d]{transition:none;background-color:var(--vp-nav-bg-color);border-bottom:1px solid var(--vp-c-divider)}.VPNavBar[data-v-79868b1d]:not(.home){background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar[data-v-79868b1d]:not(.home){background-color:transparent}.VPNavBar[data-v-79868b1d]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-79868b1d]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-79868b1d]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-79868b1d]{padding:0}}.container[data-v-79868b1d]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-79868b1d],.container>.content[data-v-79868b1d]{pointer-events:none}.container[data-v-79868b1d] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-79868b1d]{max-width:100%}}.title[data-v-79868b1d]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-79868b1d]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-79868b1d]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-79868b1d]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-79868b1d]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-79868b1d]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-79868b1d]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.home.top) .content-body[data-v-79868b1d]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-79868b1d]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-79868b1d]{column-gap:.5rem}}.menu+.translations[data-v-79868b1d]:before,.menu+.appearance[data-v-79868b1d]:before,.menu+.social-links[data-v-79868b1d]:before,.translations+.appearance[data-v-79868b1d]:before,.appearance+.social-links[data-v-79868b1d]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-79868b1d]:before,.translations+.appearance[data-v-79868b1d]:before{margin-right:16px}.appearance+.social-links[data-v-79868b1d]:before{margin-left:16px}.social-links[data-v-79868b1d]{margin-right:-8px}.divider[data-v-79868b1d]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-79868b1d]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-79868b1d]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-79868b1d]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-79868b1d]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.home.top) .divider-line[data-v-79868b1d]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-79868b1d]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-8cdade10]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-8cdade10]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-ad01ecaf]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-ad01ecaf]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-7a16559a]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-7a16559a]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-04760db1]{display:block}.title[data-v-04760db1]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-ba0a0a67]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-ba0a0a67]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-ba0a0a67]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-ba0a0a67]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-ba0a0a67]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-ba0a0a67]{transform:rotate(45deg)}.button[data-v-ba0a0a67]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-ba0a0a67]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-ba0a0a67]{transition:transform .25s}.group[data-v-ba0a0a67]:first-child{padding-top:0}.group+.group[data-v-ba0a0a67],.group+.item[data-v-ba0a0a67]{padding-top:4px}.VPNavScreenTranslations[data-v-abae4660]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-abae4660]{height:auto}.title[data-v-abae4660]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-abae4660]{font-size:16px}.icon.lang[data-v-abae4660]{margin-right:8px}.icon.chevron[data-v-abae4660]{margin-left:4px}.list[data-v-abae4660]{padding:4px 0 0 24px}.link[data-v-abae4660]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-f4b27fb4]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px));right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .25s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-f4b27fb4],.VPNavScreen.fade-leave-active[data-v-f4b27fb4]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-f4b27fb4],.VPNavScreen.fade-leave-active .container[data-v-f4b27fb4]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-f4b27fb4],.VPNavScreen.fade-leave-to[data-v-f4b27fb4]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-f4b27fb4],.VPNavScreen.fade-leave-to .container[data-v-f4b27fb4]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-f4b27fb4]{display:none}}.container[data-v-f4b27fb4]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-f4b27fb4],.menu+.appearance[data-v-f4b27fb4],.translations+.appearance[data-v-f4b27fb4]{margin-top:24px}.menu+.social-links[data-v-f4b27fb4]{margin-top:16px}.appearance+.social-links[data-v-f4b27fb4]{margin-top:16px}.VPNav[data-v-b6ac2530]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-b6ac2530]{position:fixed}}.VPSidebarItem.level-0[data-v-074d9f77]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-074d9f77]{padding-bottom:10px}.item[data-v-074d9f77]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-074d9f77]{cursor:pointer}.indicator[data-v-074d9f77]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-074d9f77],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-074d9f77],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-074d9f77],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-074d9f77]{background-color:var(--vp-c-brand-1)}.link[data-v-074d9f77]{display:flex;align-items:center;flex-grow:1}.text[data-v-074d9f77]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-074d9f77]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-074d9f77],.VPSidebarItem.level-2 .text[data-v-074d9f77],.VPSidebarItem.level-3 .text[data-v-074d9f77],.VPSidebarItem.level-4 .text[data-v-074d9f77],.VPSidebarItem.level-5 .text[data-v-074d9f77]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-074d9f77],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-074d9f77],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-074d9f77],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-074d9f77],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-074d9f77],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-074d9f77]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-074d9f77],.VPSidebarItem.level-1.has-active>.item>.text[data-v-074d9f77],.VPSidebarItem.level-2.has-active>.item>.text[data-v-074d9f77],.VPSidebarItem.level-3.has-active>.item>.text[data-v-074d9f77],.VPSidebarItem.level-4.has-active>.item>.text[data-v-074d9f77],.VPSidebarItem.level-5.has-active>.item>.text[data-v-074d9f77],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-074d9f77],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-074d9f77],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-074d9f77],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-074d9f77],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-074d9f77],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-074d9f77]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-074d9f77],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-074d9f77],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-074d9f77],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-074d9f77],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-074d9f77],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-074d9f77]{color:var(--vp-c-brand-1)}.caret[data-v-074d9f77]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-074d9f77]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-074d9f77]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-074d9f77]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-074d9f77]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-074d9f77],.VPSidebarItem.level-2 .items[data-v-074d9f77],.VPSidebarItem.level-3 .items[data-v-074d9f77],.VPSidebarItem.level-4 .items[data-v-074d9f77],.VPSidebarItem.level-5 .items[data-v-074d9f77]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-074d9f77]{display:none}.no-transition[data-v-f4a843d6] .caret-icon{transition:none}.group+.group[data-v-f4a843d6]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-f4a843d6]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSidebar[data-v-4cb10d83]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-4cb10d83]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-4cb10d83]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-4cb10d83]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-4cb10d83]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-4cb10d83]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-4cb10d83]{outline:0}.VPSkipLink[data-v-efe7d6be]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-efe7d6be]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-efe7d6be]{top:14px;left:16px}}.Layout[data-v-b6c923d7]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-70879d7f]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-70879d7f]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-70879d7f]{margin:128px 0}}.VPHomeSponsors[data-v-70879d7f]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-70879d7f]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-70879d7f]{padding:0 64px}}.container[data-v-70879d7f]{margin:0 auto;max-width:1152px}.love[data-v-70879d7f]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-70879d7f]{display:inline-block}.message[data-v-70879d7f]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-70879d7f]{padding-top:32px}.action[data-v-70879d7f]{padding-top:40px;text-align:center}.VPTeamMembersItem[data-v-cad85b6d]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-cad85b6d]{padding:32px}.VPTeamMembersItem.small .data[data-v-cad85b6d]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-cad85b6d]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-cad85b6d]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-cad85b6d]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-cad85b6d]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-cad85b6d]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-cad85b6d]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-cad85b6d]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-cad85b6d]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-cad85b6d]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-cad85b6d]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-cad85b6d]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-cad85b6d]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-cad85b6d]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-cad85b6d]{text-align:center}.avatar[data-v-cad85b6d]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-cad85b6d]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-cad85b6d]{margin:0;font-weight:600}.affiliation[data-v-cad85b6d]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-cad85b6d]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-cad85b6d]:hover{color:var(--vp-c-brand-1)}.desc[data-v-cad85b6d]{margin:0 auto}.desc[data-v-cad85b6d] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-cad85b6d]{display:flex;justify-content:center;height:56px}.sp-link[data-v-cad85b6d]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-cad85b6d]:hover,.sp .sp-link.link[data-v-cad85b6d]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-cad85b6d]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-f42eee48]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-f42eee48]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-f42eee48]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-f42eee48]{max-width:876px}.VPTeamMembers.medium .container[data-v-f42eee48]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-f42eee48]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-f42eee48]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-f42eee48]{max-width:760px}.container[data-v-f42eee48]{display:grid;gap:24px;margin:0 auto;max-width:1152px}.VPTeamPage[data-v-c57b2fee]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-c57b2fee]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-c57b2fee-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-c57b2fee-s],.VPTeamMembers+.VPTeamPageSection[data-v-c57b2fee-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-c57b2fee-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-c57b2fee-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-c57b2fee-s],.VPTeamMembers+.VPTeamPageSection[data-v-c57b2fee-s]{margin-top:96px}}.VPTeamMembers[data-v-c57b2fee-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-c57b2fee-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-c57b2fee-s]{padding:0 64px}}.VPTeamPageSection[data-v-31300c2d]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-31300c2d]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-31300c2d]{padding:0 64px}}.title[data-v-31300c2d]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-31300c2d]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-31300c2d]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-31300c2d]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-31300c2d]{padding-top:40px}.VPTeamPageTitle[data-v-9a9f114a]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-9a9f114a]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-9a9f114a]{padding:80px 64px 48px}}.title[data-v-9a9f114a]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-9a9f114a]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-9a9f114a]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-9a9f114a]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPLocalSearchBox[data-v-689dcdfa]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-689dcdfa]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-689dcdfa]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media (max-width: 767px){.shell[data-v-689dcdfa]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-689dcdfa]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media (max-width: 767px){.search-bar[data-v-689dcdfa]{padding:0 8px}}.search-bar[data-v-689dcdfa]:focus-within{border-color:var(--vp-c-brand-1)}.local-search-icon[data-v-689dcdfa]{display:block;font-size:18px}.navigate-icon[data-v-689dcdfa]{display:block;font-size:14px}.search-icon[data-v-689dcdfa]{margin:8px}@media (max-width: 767px){.search-icon[data-v-689dcdfa]{display:none}}.search-input[data-v-689dcdfa]{padding:6px 12px;font-size:inherit;width:100%}@media (max-width: 767px){.search-input[data-v-689dcdfa]{padding:6px 4px}}.search-actions[data-v-689dcdfa]{display:flex;gap:4px}@media (any-pointer: coarse){.search-actions[data-v-689dcdfa]{gap:8px}}@media (min-width: 769px){.search-actions.before[data-v-689dcdfa]{display:none}}.search-actions button[data-v-689dcdfa]{padding:8px}.search-actions button[data-v-689dcdfa]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-689dcdfa]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-689dcdfa]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-689dcdfa]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-689dcdfa]{display:flex;align-items:center;gap:4px}@media (max-width: 767px){.search-keyboard-shortcuts[data-v-689dcdfa]{display:none}}.search-keyboard-shortcuts kbd[data-v-689dcdfa]{background:#8080801a;border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-689dcdfa]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-689dcdfa]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-689dcdfa]{margin:12px;width:100%;overflow:hidden}@media (max-width: 767px){.result>div[data-v-689dcdfa]{margin:8px}}.titles[data-v-689dcdfa]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-689dcdfa]{display:flex;align-items:center;gap:4px}.title.main[data-v-689dcdfa]{font-weight:500}.title-icon[data-v-689dcdfa]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-689dcdfa]{opacity:.5}.result.selected[data-v-689dcdfa]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-689dcdfa]{position:relative}.excerpt[data-v-689dcdfa]{opacity:50%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;margin-top:4px}.result.selected .excerpt[data-v-689dcdfa]{opacity:1}.excerpt[data-v-689dcdfa] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-689dcdfa] mark,.excerpt[data-v-689dcdfa] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-689dcdfa] .vp-code-group .tabs{display:none}.excerpt[data-v-689dcdfa] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-689dcdfa]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-689dcdfa]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-689dcdfa],.result.selected .title-icon[data-v-689dcdfa]{color:var(--vp-c-brand-1)!important}.no-results[data-v-689dcdfa]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-689dcdfa]{flex:none} diff --git a/docs/.vitepress/dist/changelog.html b/docs/.vitepress/dist/changelog.html deleted file mode 100644 index 6d1a15ec..00000000 --- a/docs/.vitepress/dist/changelog.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

Last updated:

基于 LGPL 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/contributing.html b/docs/.vitepress/dist/contributing.html deleted file mode 100644 index eef00997..00000000 --- a/docs/.vitepress/dist/contributing.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

Last updated:

基于 LGPL 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/en/api/index.html b/docs/.vitepress/dist/en/api/index.html deleted file mode 100644 index 627b0978..00000000 --- a/docs/.vitepress/dist/en/api/index.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - FileCodeBox API Documentation | FileCodeBox - - - - - - - - - - - - - - -
Skip to content

FileCodeBox API Documentation

API Version: 2.1.0

Table of Contents

Authentication

Some APIs require Authorization header for authentication:

Authorization: Bearer <token>

Share API

Share Text

POST /share/text/

Share text content and get a share code.

Parameters:

ParameterTypeRequiredDefaultDescription
textstringYes-Text content to share
expire_valueintegerNo1Expiration time value
expire_stylestringNo"day"Expiration time unit(day/hour/minute)

Response Example:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "text.txt"
-  }
-}

Share File

POST /share/file/

Upload and share a file, get a share code.

Parameters:

ParameterTypeRequiredDefaultDescription
filefileYes-File to upload
expire_valueintegerNo1Expiration time value
expire_stylestringNo"day"Expiration time unit(day/hour/minute)

Response Example:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "example.txt"
-  }
-}

Get File Info

GET /share/select/

Get file information by share code.

Parameters:

ParameterTypeRequiredDescription
codestringYesFile share code

Response Example:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "example.txt",
-    "size": 1024,
-    "text": "File content or download link"
-  }
-}

Select File

POST /share/select/

Select file by share code.

Parameters:

ParameterTypeRequiredDescription
codestringYesFile share code

Response Example:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "code": "abc123",
-    "name": "example.txt",
-    "size": 1024,
-    "text": "File content or download link"
-  }
-}

Download File

GET /share/download

Download shared file.

Parameters:

ParameterTypeRequiredDescription
keystringYesDownload key
codestringYesFile share code

Admin API

Admin Login

POST /admin/login

Admin login to get token.

Parameters:

ParameterTypeRequiredDescription
passwordstringYesAdmin password

Dashboard Data

GET /admin/dashboard

Get system dashboard data.

Response Example:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "totalFiles": 100,
-    "storageUsed": "1.5GB",
-    "sysUptime": "10 days",
-    "yesterdayCount": 50,
-    "yesterdaySize": "500MB",
-    "todayCount": 30,
-    "todaySize": "300MB"
-  }
-}

File List

GET /admin/file/list

Get system file list.

Parameters:

ParameterTypeRequiredDefaultDescription
pageintegerNo1Current page
sizeintegerNo10Page size
keywordstringNo""Search keyword

Response Example:

json
{
-  "code": 200,
-  "msg": "success",
-  "detail": {
-    "page": 1,
-    "size": 10,
-    "total": 100,
-    "data": [
-      {
-        "id": 1,
-        "name": "example.txt",
-        "size": 1024,
-        "created_at": "2024-01-01 12:00:00"
-      }
-    ]
-  }
-}

Delete File

DELETE /admin/file/delete

Delete file from system.

Parameters:

ParameterTypeRequiredDescription
idintegerYesFile ID

Get Config

GET /admin/config/get

Get system configuration.

Update Config

PATCH /admin/config/update

Update system configuration.

Error Response

When an error occurs, the API will return corresponding error message:

json
{
-  "code": 422,
-  "detail": [
-    {
-      "loc": ["body", "password"],
-      "msg": "Password cannot be empty",
-      "type": "value_error"
-    }
-  ]
-}

Status Codes

  • 200: Success
  • 401: Unauthorized
  • 403: Forbidden
  • 404: Not Found
  • 422: Validation Error
  • 500: Internal Server Error

基于 MIT 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/en/changelog.html b/docs/.vitepress/dist/en/changelog.html deleted file mode 100644 index c82c7355..00000000 --- a/docs/.vitepress/dist/en/changelog.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

Last updated:

基于 MIT 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/en/contributing.html b/docs/.vitepress/dist/en/contributing.html deleted file mode 100644 index e9903f86..00000000 --- a/docs/.vitepress/dist/en/contributing.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

Last updated:

基于 MIT 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/en/guide/configuration.html b/docs/.vitepress/dist/en/guide/configuration.html deleted file mode 100644 index 4958d2c7..00000000 --- a/docs/.vitepress/dist/en/guide/configuration.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

基于 MIT 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/en/guide/getting-started.html b/docs/.vitepress/dist/en/guide/getting-started.html deleted file mode 100644 index ea1beddd..00000000 --- a/docs/.vitepress/dist/en/guide/getting-started.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Getting Started | FileCodeBox - - - - - - - - - - - - - - -
Skip to content

Getting Started

Introduction

FileCodeBox is a simple and efficient file sharing tool that supports temporary file transfer, sharing, and management. This guide will help you quickly deploy and use FileCodeBox.

Features

  • 🚀 Quick Deployment: Support Docker one-click deployment
  • 🔒 Secure & Reliable: File access requires extraction code
  • ⏱️ Time Control: Support setting file expiration time
  • 📊 Download Limit: Can limit file download times
  • 🖼️ File Preview: Support preview of images, videos, audio, and other formats
  • 📱 Responsive Design: Perfect adaptation for mobile and desktop

Deployment Methods

bash
docker run -d \
-  --name filecodebox \
-  -p 12345:12345 \
-  -v /path/to/data:/app/data \
-  vastsa/filecodebox

Manual Deployment

  1. Clone the project
bash
git clone https://github.com/vastsa/FileCodeBox.git
-cd FileCodeBox
  1. Install dependencies
bash
pip install -r requirements.txt
  1. Start service
bash
python main.py

Usage

  1. Access the System Open browser and visit http://localhost:12345

  2. Upload Files

    • Click upload button or drag files to upload area
    • Set file expiration time and download limit
    • Get share link and extraction code
  3. Download Files

    • Visit share link
    • Enter extraction code
    • Download file
  4. Admin Panel

    • Visit http://localhost:12345/admin
    • Enter admin password: FileCodeBox2023
    • Enter admin panel
    • View system information, file list, user management, etc.

Next Steps

基于 MIT 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/en/guide/introduction.html b/docs/.vitepress/dist/en/guide/introduction.html deleted file mode 100644 index 3d6dbbe8..00000000 --- a/docs/.vitepress/dist/en/guide/introduction.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content
FileCodeBox Logo

Share text and files anonymously with a passcode, like picking up a package

GitHub starsGitHub forksGitHub issuesGitHub licenseQQ GroupPython VersionFastAPIVue Version

📝 Introduction

FileCodeBox is a lightweight file sharing tool developed with FastAPI + Vue3. It allows users to share text and files easily, where recipients only need a passcode to retrieve the files, just like picking up a package from a delivery locker.

🖼️ Preview

Frontend Repository     Demo Site

🎯 Use Cases

📁 Temporary File Sharing

Quick file sharing without registration

📝 Quick Text Sharing

Share code snippets and text content

🕶️ Anonymous Transfer

Privacy-protected file transfer

💾 Temporary Storage

File storage with expiration time

🔄 Cross-platform Transfer

Quick file transfer between devices

🌐 Private Share Service

Build your own file sharing service

✨ Core Features

🚀 Lightweight

Based on FastAPI + SQLite3 + Vue3 + ElementUI

📤 Easy Upload

Support copy-paste and drag-drop

📦 Multiple Types

Support text and various file types

🔒 Security

  • IP upload limits
  • Error attempt limits
  • File expiration

🎫 Passcode Sharing

Random codes with customizable limits

🌍 Multi-language

Support for Simplified Chinese, Traditional Chinese, and English

🎭 Anonymous

No registration required

🛠 Admin Panel

File and system management

🐳 Docker

One-click deployment

💾 Storage Options

Local, S3, OneDrive support

📱 Responsive

Mobile-friendly design

💻 CLI Support

Command-line download

🚀 Quick Start

Docker Deployment

bash
docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta

Manual Deployment

  1. Clone the repository
bash
git clone https://github.com/vastsa/FileCodeBox.git
  1. Install dependencies
bash
cd FileCodeBox
-pip install -r requirements.txt
  1. Start the service
bash
python main.py

📖 Usage Guide

Share Files

  1. Open the website, click "Share File"
  2. Select or drag files
  3. Set expiration time and count
  4. Get the passcode

Retrieve Files

  1. Open the website, enter passcode
  2. Click retrieve
  3. Download file or view text

Admin Panel

  1. Visit /admin
  2. Enter admin password
  3. Manage files and settings

🛠 Development Guide

Project Structure

FileCodeBox/
-├── apps/           # Application code
-│   ├── admin/     # Admin backend
-│   └── base/      # Base functions
-├── core/          # Core functions
-├── data/          # Data directory
-└── fcb-fronted/   # Frontend code

Development Environment

  • Python 3.8+
  • Node.js 14+
  • Vue 3
  • FastAPI

Local Development

  1. Backend development
bash
python main.py
  1. Frontend development
bash
cd fcb-fronted
-npm install
-npm run dev

🤝 Contributing

  1. Fork the project
  2. Create your feature branch git checkout -b feature/xxx
  3. Commit your changes git commit -m 'Add xxx'
  4. Push to the branch git push origin feature/xxx
  5. Open a Pull Request

❓ FAQ

Q: How to modify upload size limit?

A: Change uploadSize in admin panel

Q: How to configure storage engine?

A: Select storage engine and configure parameters in admin panel

Q: How to backup data?

A: Backup the data directory

For more questions, visit Wiki

😀 Project Statistics and Analytics

Featured|HelloGitHub

Repobeats

Star History

📜 Disclaimer

This project is open-source for learning purposes only. It should not be used for any illegal purposes. The author is not responsible for any consequences. Please retain the project address and copyright information when using it.

基于 MIT 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/en/guide/management.html b/docs/.vitepress/dist/en/guide/management.html deleted file mode 100644 index 1991e39a..00000000 --- a/docs/.vitepress/dist/en/guide/management.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

基于 MIT 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/en/guide/security.html b/docs/.vitepress/dist/en/guide/security.html deleted file mode 100644 index b13cec2d..00000000 --- a/docs/.vitepress/dist/en/guide/security.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

基于 MIT 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/en/guide/share.html b/docs/.vitepress/dist/en/guide/share.html deleted file mode 100644 index 3564907c..00000000 --- a/docs/.vitepress/dist/en/guide/share.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

基于 MIT 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/en/guide/storage.html b/docs/.vitepress/dist/en/guide/storage.html deleted file mode 100644 index 168a6a3c..00000000 --- a/docs/.vitepress/dist/en/guide/storage.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

基于 MIT 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/en/guide/upload copy.html b/docs/.vitepress/dist/en/guide/upload copy.html deleted file mode 100644 index 13681105..00000000 --- a/docs/.vitepress/dist/en/guide/upload copy.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

基于 MIT 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/en/guide/upload.html b/docs/.vitepress/dist/en/guide/upload.html deleted file mode 100644 index 8ec28611..00000000 --- a/docs/.vitepress/dist/en/guide/upload.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

基于 MIT 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/en/index.html b/docs/.vitepress/dist/en/index.html deleted file mode 100644 index 79c2fe24..00000000 --- a/docs/.vitepress/dist/en/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

FileCodeBoxFile Express Box

Share text and files anonymously with access codes, just like picking up a package

FileCodeBox

基于 MIT 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/configuration.html b/docs/.vitepress/dist/guide/configuration.html deleted file mode 100644 index b907e0b0..00000000 --- a/docs/.vitepress/dist/guide/configuration.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

基于 LGPL 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/getting-started.html b/docs/.vitepress/dist/guide/getting-started.html deleted file mode 100644 index 57310a25..00000000 --- a/docs/.vitepress/dist/guide/getting-started.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - 快速开始 | FileCodeBox - - - - - - - - - - - - - - -
Skip to content

快速开始

简介

FileCodeBox 是一个简单高效的文件分享工具,支持文件临时中转、分享和管理。本指南将帮助您快速部署和使用 FileCodeBox。

特性

  • 🚀 快速部署:支持 Docker 一键部署
  • 🔒 安全可靠:文件访问需要提取码
  • ⏱️ 时效控制:支持设置文件有效期
  • 📊 下载限制:可限制文件下载次数
  • 🖼️ 文件预览:支持图片、视频、音频等多种格式预览
  • 📱 响应式设计:完美适配移动端和桌面端

部署方式

Docker 部署(推荐)

bash
docker run -d \
-  --name filecodebox \
-  -p 12345:12345 \
-  -v /path/to/data:/app/data \
-  vastsa/filecodebox

手动部署

  1. 克隆项目
bash
git clone https://github.com/vastsa/FileCodeBox.git
-cd FileCodeBox
  1. 安装依赖
bash
pip install -r requirements.txt
  1. 启动服务
bash
python main.py

使用方法

  1. 访问系统 打开浏览器访问 http://localhost:12345

  2. 上传文件

    • 点击上传按钮或拖拽文件到上传区域
    • 设置文件有效期和下载次数限制
    • 获取分享链接和提取码
  3. 下载文件

    • 访问分享链接
    • 输入提取码
    • 下载文件
  4. 后台管理

    • 访问 http://localhost:12345/admin
    • 输入管理员密码:FileCodeBox2023
    • 进入后台管理页面
    • 查看系统信息、文件列表、用户管理等

下一步

基于 LGPL 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/introduction.html b/docs/.vitepress/dist/guide/introduction.html deleted file mode 100644 index 43c3a656..00000000 --- a/docs/.vitepress/dist/guide/introduction.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content
FileCodeBox Logo

匿名口令分享文本和文件,像拿快递一样取文件

GitHub starsGitHub forksGitHub issuesGitHub licenseQQ GroupPython VersionFastAPIVue Version

🚀 更新计划

  • [ ] 切片上传,同文件秒传,断点续传
  • [ ] 用户登录重构
  • [x] webdav存储
  • [x] 存储支持自定义路径
  • [x] s3优化,不修改昵称为uuid,新建目录

📝 项目简介

FileCodeBox 是一个基于 FastAPI + Vue3 开发的轻量级文件分享工具。它允许用户通过简单的方式分享文本和文件,接收者只需要一个提取码就可以取得文件,就像从快递柜取出快递一样简单。

🎯 应用场景

📁 临时文件分享

快速分享单个文件,无需注册登录

📝 文本快速分享

分享代码片段、文本内容等

🕶️ 匿名文件传输

保护隐私的文件传输方式

💾 临时文件存储

支持设置过期时间的文件存储

🔄 跨平台传输

在不同设备间快速传输文件

🌐 小型分享服务

搭建私有的文件分享服务

✨ 核心特性

🚀 轻量简洁

基于 FastAPI + SQLite3 + Vue3 + ElementUI,部署简单,性能出色

📤 便捷上传

支持复制粘贴、拖拽上传,操作简单直观

📦 多种类型

支持文本和各类文件的分享

🔒 安全机制

  • IP 限制上传次数
  • 错误次数限制
  • 文件过期机制

🎫 提取码分享

随机提取码,可自定义次数及有效期

🌍 多语言支持

支持中文简体、繁体及英文

🎭 匿名分享

无需注册登录,保护隐私

🛠 管理面板

文件管理和系统配置

🐳 容器部署

支持 Docker 一键部署

💾 存储扩展

支持本地存储、S3 协议、OneDrive 等

📱 响应式设计

支持移动端访问

💻 终端支持

支持命令行下载

🚀 快速开始

Docker 部署

bash
docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta

手动部署

  1. 克隆项目
bash
git clone https://github.com/vastsa/FileCodeBox.git
  1. 安装依赖
bash
cd FileCodeBox
-pip install -r requirements.txt
  1. 启动服务
bash
python main.py

📖 使用说明

分享文件

  1. 打开网页,点击"分享文件"
  2. 选择或拖拽文件
  3. 设置过期时间和次数
  4. 获取提取码

获取文件

  1. 打开网页,输入提取码
  2. 点击获取
  3. 下载文件或查看文本

管理面板

  1. 访问 /admin
  2. 输入管理员密码
  3. 管理文件和配置

🛠 开发指南

项目结构

FileCodeBox/
-├── apps/           # 应用代码
-│   ├── admin/     # 管理后台
-│   └── base/      # 基础功能
-├── core/          # 核心功能
-├── data/          # 数据目录
-└── fcb-fronted/   # 前端代码

开发环境

  • Python 3.8+
  • Node.js 14+
  • Vue 3
  • FastAPI

本地开发

  1. 后端开发
bash
python main.py
  1. 前端开发
bash
cd fcb-fronted
-npm install
-npm run dev

🤝 贡献指南

  1. Fork 本项目
  2. 创建新分支 git checkout -b feature/xxx
  3. 提交更改 git commit -m 'Add xxx'
  4. 推送到分支 git push origin feature/xxx
  5. 提交 Pull Request

❓ 常见问题

Q: 如何修改上传大小限制?

A: 在管理面板中修改配置项 uploadSize

Q: 如何配置存储引擎?

A: 在管理面板中选择存储引擎并配置相应参数

Q: 如何备份数据?

A: 备份 data 目录即可

更多问题请访问 Wiki

📊 项目统计

Featured|HelloGitHub

Repobeats

Star History

📜 免责声明

本项目开源仅供学习使用,不得用于任何违法用途,否则后果自负,与作者无关。使用时请保留项目地址和版权信息。

基于 LGPL 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/management.html b/docs/.vitepress/dist/guide/management.html deleted file mode 100644 index 5b298fb2..00000000 --- a/docs/.vitepress/dist/guide/management.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

基于 LGPL 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/security.html b/docs/.vitepress/dist/guide/security.html deleted file mode 100644 index 4148af50..00000000 --- a/docs/.vitepress/dist/guide/security.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

基于 LGPL 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/share.html b/docs/.vitepress/dist/guide/share.html deleted file mode 100644 index 746afcbe..00000000 --- a/docs/.vitepress/dist/guide/share.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

基于 LGPL 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/storage.html b/docs/.vitepress/dist/guide/storage.html deleted file mode 100644 index 0553f77c..00000000 --- a/docs/.vitepress/dist/guide/storage.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

基于 LGPL 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/guide/upload.html b/docs/.vitepress/dist/guide/upload.html deleted file mode 100644 index 79aff33a..00000000 --- a/docs/.vitepress/dist/guide/upload.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

基于 LGPL 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/hashmap.json b/docs/.vitepress/dist/hashmap.json deleted file mode 100644 index a2874510..00000000 --- a/docs/.vitepress/dist/hashmap.json +++ /dev/null @@ -1 +0,0 @@ -{"api_index.md":"qG09VB3V","changelog.md":"C8aI6QEN","contributing.md":"k9HB5RBU","en_api_index.md":"DowD_P4F","en_changelog.md":"BcADjzAG","en_contributing.md":"PVT9OVBi","en_guide_configuration.md":"B0l-oJMx","en_guide_getting-started.md":"Dn8s1IIJ","en_guide_introduction.md":"BD40RLpr","en_guide_management.md":"B7zTh6Wx","en_guide_security.md":"Cviop6qN","en_guide_share.md":"76VwCXWs","en_guide_storage.md":"BYAxNGDy","en_guide_upload copy.md":"DjRt4QqF","en_guide_upload.md":"DUnZK1hP","en_index.md":"tZNBw7JM","guide_configuration.md":"BIXg2nLZ","guide_getting-started.md":"BG1qGt6J","guide_introduction.md":"CebWHzyk","guide_management.md":"eUCTNsEJ","guide_security.md":"-P7VdlH3","guide_share.md":"CQJMq2_v","guide_storage.md":"OPzq4lQ1","guide_upload.md":"BGoSj7Ei","index.md":"BrsJo2Pg"} diff --git a/docs/.vitepress/dist/index.html b/docs/.vitepress/dist/index.html deleted file mode 100644 index bd885c65..00000000 --- a/docs/.vitepress/dist/index.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - FileCodeBox - - - - - - - - - - - - - - -
Skip to content

FileCodeBox文件快递柜

匿名口令分享文本,文件,像拿快递一样取文件

FileCodeBox

基于 LGPL 许可发布

- - - - \ No newline at end of file diff --git a/docs/.vitepress/dist/logo_small.png b/docs/.vitepress/dist/logo_small.png deleted file mode 100644 index 04bf2572..00000000 Binary files a/docs/.vitepress/dist/logo_small.png and /dev/null differ diff --git a/docs/.vitepress/dist/vp-icons.css b/docs/.vitepress/dist/vp-icons.css deleted file mode 100644 index ddc5bd8e..00000000 --- a/docs/.vitepress/dist/vp-icons.css +++ /dev/null @@ -1 +0,0 @@ -.vpi-social-github{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")} \ No newline at end of file diff --git a/docs/en/guide/getting-started.md b/docs/en/guide/getting-started.md index f1eabce4..0cb41c0c 100644 --- a/docs/en/guide/getting-started.md +++ b/docs/en/guide/getting-started.md @@ -15,33 +15,26 @@ FileCodeBox is a simple and efficient file sharing tool that supports temporary ## Deployment Methods -### Docker Deployment (Recommended) +### Docker Deployment ```bash -docker run -d \ - --name filecodebox \ - -p 12345:12345 \ - -v /path/to/data:/app/data \ - vastsa/filecodebox +docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta ``` ### Manual Deployment -1. Clone the project - +1. Clone the repository ```bash git clone https://github.com/vastsa/FileCodeBox.git -cd FileCodeBox ``` 2. Install dependencies - ```bash +cd FileCodeBox pip install -r requirements.txt ``` -3. Start service - +3. Start the service ```bash python main.py ``` @@ -62,7 +55,7 @@ python main.py - Download file 4. Admin Panel - - Visit `http://localhost:12345/admin` + - Visit `http://localhost:12345/#/admin` - Enter admin password: `FileCodeBox2023` - Enter admin panel - View system information, file list, user management, etc. diff --git a/docs/en/index.md b/docs/en/index.md index e1fefffc..7bd4a38d 100644 --- a/docs/en/index.md +++ b/docs/en/index.md @@ -12,6 +12,9 @@ hero: - theme: brand text: Get Started link: /en/guide/getting-started + - theme: alt + text: Live Demo + link: https://share.lanol.cn - theme: alt text: View on GitHub link: https://github.com/vastsa/FileCodeBox diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md index 597e38c6..fecc86d4 100644 --- a/docs/guide/getting-started.md +++ b/docs/guide/getting-started.md @@ -18,34 +18,28 @@ FileCodeBox 是一个简单高效的文件分享工具,支持文件临时中 ### Docker 部署(推荐) ```bash -docker run -d \ - --name filecodebox \ - -p 12345:12345 \ - -v /path/to/data:/app/data \ - vastsa/filecodebox +docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta ``` ### 手动部署 1. 克隆项目 - ```bash git clone https://github.com/vastsa/FileCodeBox.git -cd FileCodeBox ``` 2. 安装依赖 - ```bash +cd FileCodeBox pip install -r requirements.txt ``` 3. 启动服务 - ```bash python main.py ``` + ## 使用方法 1. 访问系统 @@ -62,7 +56,7 @@ python main.py - 下载文件 4. 后台管理 - - 访问 `http://localhost:12345/admin` + - 访问 `http://localhost:12345/#/admin` - 输入管理员密码:`FileCodeBox2023` - 进入后台管理页面 - 查看系统信息、文件列表、用户管理等 diff --git a/docs/index.md b/docs/index.md index efd38535..fae59fda 100644 --- a/docs/index.md +++ b/docs/index.md @@ -12,6 +12,9 @@ hero: - theme: brand text: 快速开始 link: /guide/getting-started + - theme: alt + text: 在线体验 + link: https://share.lanol.cn - theme: alt text: 在 GitHub 上查看 link: https://github.com/vastsa/FileCodeBox