From 308b6fe87257cd9dadf5d5f4d8b7f640f93a06a4 Mon Sep 17 00:00:00 2001 From: ruying408 <1877972603@qq.com> Date: Mon, 26 Aug 2024 23:28:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vitepress/dist/404.html | 4 ++-- .vitepress/dist/README.html | 6 +++--- .../dist/assets/{app.bs5_rkeZ.js => app.D99Lgx8N.js} | 2 +- .../assets/chunks/@localSearchIndexroot.BrJhscbg.js | 1 + .../assets/chunks/@localSearchIndexroot.pss0EvC3.js | 1 - ...rchBox.b52s9mCh.js => VPLocalSearchBox.Dni73aum.js} | 2 +- .../chunks/{theme.BmxJBezJ.js => theme.yhcfifJx.js} | 4 ++-- ...e.md.Bk48cILk.js => src_guide_cache.md.CFAfegzm.js} | 2 +- ...ILk.lean.js => src_guide_cache.md.CFAfegzm.lean.js} | 2 +- ...BoPbie2I.js => src_guide_controller.md.D6YeMkQu.js} | 2 +- ...ean.js => src_guide_controller.md.D6YeMkQu.lean.js} | 2 +- .../dist/assets/src_guide_lock.md.BRjhR2-1.lean.js | 1 - ...ck.md.BRjhR2-1.js => src_guide_lock.md.DE-VfeJh.js} | 2 +- .../dist/assets/src_guide_lock.md.DE-VfeJh.lean.js | 1 + .../assets/src_guide_uniqueIDGen.md.4q7nUR1p.lean.js | 1 - ...q7nUR1p.js => src_guide_uniqueIDGen.md.xLCPnQAi.js} | 2 +- .../assets/src_guide_uniqueIDGen.md.xLCPnQAi.lean.js | 1 + ...e.md.CBGgwTTC.js => src_todo_update.md.CM3yST2v.js} | 2 +- ...TTC.lean.js => src_todo_update.md.CM3yST2v.lean.js} | 2 +- .vitepress/dist/hashmap.json | 2 +- .vitepress/dist/index.html | 6 +++--- .vitepress/dist/src/about/index.html | 6 +++--- .vitepress/dist/src/guide/ai.html | 6 +++--- .vitepress/dist/src/guide/cache.html | 10 +++++----- .vitepress/dist/src/guide/controller.html | 10 +++++----- .vitepress/dist/src/guide/db.html | 6 +++--- .vitepress/dist/src/guide/deploy.html | 6 +++--- .vitepress/dist/src/guide/dev.html | 6 +++--- .vitepress/dist/src/guide/dir.html | 6 +++--- .vitepress/dist/src/guide/exception.html | 6 +++--- .vitepress/dist/src/guide/flow.html | 6 +++--- .vitepress/dist/src/guide/initData.html | 6 +++--- .vitepress/dist/src/guide/lock.html | 10 +++++----- .vitepress/dist/src/guide/plugin.html | 6 +++--- .vitepress/dist/src/guide/quick.html | 6 +++--- .vitepress/dist/src/guide/recordLog.html | 6 +++--- .vitepress/dist/src/guide/security.html | 6 +++--- .vitepress/dist/src/guide/service.html | 6 +++--- .vitepress/dist/src/guide/swagger.html | 6 +++--- .vitepress/dist/src/guide/uniqueIDGen.html | 10 +++++----- .vitepress/dist/src/guide/upload.html | 6 +++--- .vitepress/dist/src/introduce/index.html | 6 +++--- .vitepress/dist/src/introduce/show.html | 6 +++--- .vitepress/dist/src/introduce/src.html | 6 +++--- .vitepress/dist/src/question/common.html | 6 +++--- .vitepress/dist/src/todo/plan.html | 6 +++--- .vitepress/dist/src/todo/update.html | 10 +++++----- 47 files changed, 112 insertions(+), 112 deletions(-) rename .vitepress/dist/assets/{app.bs5_rkeZ.js => app.D99Lgx8N.js} (95%) create mode 100644 .vitepress/dist/assets/chunks/@localSearchIndexroot.BrJhscbg.js delete mode 100644 .vitepress/dist/assets/chunks/@localSearchIndexroot.pss0EvC3.js rename .vitepress/dist/assets/chunks/{VPLocalSearchBox.b52s9mCh.js => VPLocalSearchBox.Dni73aum.js} (99%) rename .vitepress/dist/assets/chunks/{theme.BmxJBezJ.js => theme.yhcfifJx.js} (99%) rename .vitepress/dist/assets/{src_guide_cache.md.Bk48cILk.js => src_guide_cache.md.CFAfegzm.js} (99%) rename .vitepress/dist/assets/{src_guide_cache.md.Bk48cILk.lean.js => src_guide_cache.md.CFAfegzm.lean.js} (84%) rename .vitepress/dist/assets/{src_guide_controller.md.BoPbie2I.js => src_guide_controller.md.D6YeMkQu.js} (99%) rename .vitepress/dist/assets/{src_guide_controller.md.BoPbie2I.lean.js => src_guide_controller.md.D6YeMkQu.lean.js} (85%) delete mode 100644 .vitepress/dist/assets/src_guide_lock.md.BRjhR2-1.lean.js rename .vitepress/dist/assets/{src_guide_lock.md.BRjhR2-1.js => src_guide_lock.md.DE-VfeJh.js} (90%) create mode 100644 .vitepress/dist/assets/src_guide_lock.md.DE-VfeJh.lean.js delete mode 100644 .vitepress/dist/assets/src_guide_uniqueIDGen.md.4q7nUR1p.lean.js rename .vitepress/dist/assets/{src_guide_uniqueIDGen.md.4q7nUR1p.js => src_guide_uniqueIDGen.md.xLCPnQAi.js} (85%) create mode 100644 .vitepress/dist/assets/src_guide_uniqueIDGen.md.xLCPnQAi.lean.js rename .vitepress/dist/assets/{src_todo_update.md.CBGgwTTC.js => src_todo_update.md.CM3yST2v.js} (97%) rename .vitepress/dist/assets/{src_todo_update.md.CBGgwTTC.lean.js => src_todo_update.md.CM3yST2v.lean.js} (84%) diff --git a/.vitepress/dist/404.html b/.vitepress/dist/404.html index 0c2381d..100dee0 100644 --- a/.vitepress/dist/404.html +++ b/.vitepress/dist/404.html @@ -8,14 +8,14 @@ - +
- + \ No newline at end of file diff --git a/.vitepress/dist/README.html b/.vitepress/dist/README.html index 3e6cd5d..b7d4495 100644 --- a/.vitepress/dist/README.html +++ b/.vitepress/dist/README.html @@ -8,17 +8,17 @@ - + - +
Skip to content

介绍 ​

这是 Cool Admin(Java 版)的在线文档仓库,我们会尽力完善文档。也希望广大开发者粉丝帮助完善文档,积极提交Pull requests,共同参与开源,你的贡献可能给其他人代码巨大的帮助

地址 ​

- + \ No newline at end of file diff --git a/.vitepress/dist/assets/app.bs5_rkeZ.js b/.vitepress/dist/assets/app.D99Lgx8N.js similarity index 95% rename from .vitepress/dist/assets/app.bs5_rkeZ.js rename to .vitepress/dist/assets/app.D99Lgx8N.js index 1e94da9..00fe22a 100644 --- a/.vitepress/dist/assets/app.bs5_rkeZ.js +++ b/.vitepress/dist/assets/app.D99Lgx8N.js @@ -1 +1 @@ -import{U as o,af as p,ag as u,ah as l,ai as c,aj as f,ak as d,al as m,am as h,an as g,ao as A,d as P,u as v,y,x as w,ap as C,aq as R,ar as b,as as E}from"./chunks/framework.C_oE5szm.js";import{R as S}from"./chunks/theme.BmxJBezJ.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),R(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function _(){globalThis.__VITEPRESS__=!0;const e=x(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,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}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(T)}function x(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&_().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{_ as createApp}; +import{U as o,af as p,ag as u,ah as l,ai as c,aj as f,ak as d,al as m,am as h,an as g,ao as A,d as P,u as v,y,x as w,ap as C,aq as R,ar as b,as as E}from"./chunks/framework.C_oE5szm.js";import{R as S}from"./chunks/theme.yhcfifJx.js";function i(e){if(e.extends){const a=i(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const s=i(S),T=P({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=v();return y(()=>{w(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&C(),R(),b(),s.setup&&s.setup(),()=>E(s.Layout)}});async function _(){globalThis.__VITEPRESS__=!0;const e=x(),a=j();a.provide(u,e);const t=l(e.route);return a.provide(c,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}}}),s.enhanceApp&&await s.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function j(){return h(T)}function x(){let e=o,a;return g(t=>{let n=A(t),r=null;return n&&(e&&(a=n),(e||a===n)&&(n=n.replace(/\.js$/,".lean.js")),r=import(n)),o&&(e=!1),r},s.NotFound)}o&&_().then(({app:e,router:a,data:t})=>{a.go().then(()=>{p(a.route,t.site),e.mount("#app")})});export{_ as createApp}; diff --git a/.vitepress/dist/assets/chunks/@localSearchIndexroot.BrJhscbg.js b/.vitepress/dist/assets/chunks/@localSearchIndexroot.BrJhscbg.js new file mode 100644 index 0000000..ca65fb9 --- /dev/null +++ b/.vitepress/dist/assets/chunks/@localSearchIndexroot.BrJhscbg.js @@ -0,0 +1 @@ +const e='{"documentCount":105,"nextId":105,"documentIds":{"0":"/README.html#介绍","1":"/README.html#地址","2":"/src/about/#交流合作","3":"/src/about/#微信","4":"/src/about/#抖音","5":"/src/about/#b-站","6":"/src/about/#公众号","7":"/src/guide/ai.html#ai-编码","8":"/src/guide/cache.html#缓存","9":"/src/guide/cache.html#使用","10":"/src/guide/cache.html#框架特有的通用工具类-coolcache","11":"/src/guide/cache.html#通过coolcache缓存模板-获取数据","12":"/src/guide/controller.html#控制器","13":"/src/guide/controller.html#示例","14":"/src/guide/controller.html#查询配置","15":"/src/guide/controller.html#请求参数","16":"/src/guide/controller.html#重写实现","17":"/src/guide/controller.html#原理","18":"/src/guide/controller.html#接口路由规则","19":"/src/guide/controller.html#自定义路由注解","20":"/src/guide/controller.html#重写-getmappingformethod","21":"/src/guide/db.html#数据库","22":"/src/guide/db.html#功能对比","23":"/src/guide/db.html#支持数据库","24":"/src/guide/db.html#自动建表","25":"/src/guide/deploy.html#项目部署","26":"/src/guide/deploy.html#普通方式","27":"/src/guide/deploy.html#_1、部署流程-以宝塔为例","28":"/src/guide/deploy.html#_2、推荐使用-pnpm-安装依赖","29":"/src/guide/deploy.html#_3、pm2-运行后端服务","30":"/src/guide/deploy.html#_4、nginx-配置示例","31":"/src/guide/deploy.html#docker-方式","32":"/src/guide/deploy.html#_1、部署流程-以宝塔为例-1","33":"/src/guide/deploy.html#_2、打包镜像","34":"/src/guide/deploy.html#_3、运行","35":"/src/guide/deploy.html#注意事项","36":"/src/guide/dev.html#开发方式","37":"/src/guide/dev.html#ai-全自动","38":"/src/guide/dev.html#半自动","39":"/src/guide/dir.html#目录结构","40":"/src/guide/dir.html#结构","41":"/src/guide/exception.html#统一异常处理","42":"/src/guide/exception.html#异常统一捕获","43":"/src/guide/flow.html#ai-流程编排","44":"/src/guide/initData.html#数据初始化","45":"/src/guide/lock.html#锁","46":"/src/guide/plugin.html#扩展插件","47":"/src/guide/plugin.html#使用插件","48":"/src/guide/plugin.html#_1、安装","49":"/src/guide/plugin.html#_2、调用","50":"/src/guide/plugin.html#_3、配置","51":"/src/guide/plugin.html#开发插件","52":"/src/guide/plugin.html#_1、脚手架","53":"/src/guide/plugin.html#_2、目录结构","54":"/src/guide/plugin.html#_3、开发过程","55":"/src/guide/plugin.html#_4、字段解释","56":"/src/guide/plugin.html#插件详解","57":"/src/guide/plugin.html#打包","58":"/src/guide/plugin.html#安装插件","59":"/src/guide/plugin.html#实现原理","60":"/src/guide/quick.html#快速开始","61":"/src/guide/quick.html#环境准备","62":"/src/guide/quick.html#运行系统","63":"/src/guide/quick.html#_1、拉取源码","64":"/src/guide/quick.html#_2、配置数据库","65":"/src/guide/quick.html#_3、启动后端服务","66":"/src/guide/quick.html#_4、启动前端服务","67":"/src/guide/recordLog.html#请求日志记录","68":"/src/guide/security.html#权限校验","69":"/src/guide/security.html#配置","70":"/src/guide/security.html#原理","71":"/src/guide/security.html#当前用户","72":"/src/guide/security.html#后端用户","73":"/src/guide/security.html#应用用户","74":"/src/guide/security.html#忽略-token","75":"/src/guide/security.html#方法上","76":"/src/guide/security.html#类上","77":"/src/guide/service.html#服务","78":"/src/guide/service.html#crud","79":"/src/guide/service.html#修改前后","80":"/src/guide/swagger.html#swagger-文档","81":"/src/guide/uniqueIDGen.html#唯一id","82":"/src/guide/upload.html#文件上传","83":"/src/guide/upload.html#使用","84":"/src/introduce/#简介","85":"/src/introduce/#技术选型","86":"/src/introduce/#一、环境要求","87":"/src/introduce/#二、后端框架","88":"/src/introduce/#三、前端框架","89":"/src/introduce/#为什么选择-cool-admin","90":"/src/introduce/#内置功能","91":"/src/introduce/show.html#演示","92":"/src/introduce/src.html#源码","93":"/src/introduce/src.html#后端-点个-star-哦","94":"/src/introduce/src.html#前端-点个-star-哦","95":"/src/introduce/src.html#文档-star-哦","96":"/src/question/common.html#常见问题","97":"/src/question/common.html#_1、找不到类似xxxtabledef文件","98":"/src/todo/plan.html#计划","99":"/src/todo/plan.html#完善插件","100":"/src/todo/update.html#更新","101":"/src/todo/update.html#v7-1-3-2024-08-25","102":"/src/todo/update.html#v7-1-2-2024-08-04","103":"/src/todo/update.html#v7-1-1-2024-07-15","104":"/src/todo/update.html#v7-1-0-2024-06-27"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,13],"1":[1,1,8],"2":[1,1,4],"3":[1,1,2],"4":[1,1,11],"5":[2,1,3],"6":[1,1,6],"7":[2,1,8],"8":[1,1,35],"9":[1,1,31],"10":[2,1,22],"11":[2,1,37],"12":[1,1,15],"13":[1,1,48],"14":[1,1,172],"15":[1,1,57],"16":[1,1,63],"17":[1,1,1],"18":[1,1,24],"19":[1,1,14],"20":[2,1,43],"21":[1,1,41],"22":[1,1,79],"23":[1,1,112],"24":[1,1,21],"25":[1,1,9],"26":[1,1,8],"27":[4,2,36],"28":[4,2,15],"29":[3,2,41],"30":[3,2,92],"31":[2,1,10],"32":[4,3,12],"33":[2,3,31],"34":[2,3,16],"35":[1,3,9],"36":[1,1,7],"37":[2,1,12],"38":[1,1,51],"39":[1,1,4],"40":[1,1,58],"41":[1,1,8],"42":[1,1,78],"43":[2,1,23],"44":[1,1,76],"45":[1,1,58],"46":[1,1,9],"47":[1,1,1],"48":[2,2,9],"49":[2,2,204],"50":[2,2,18],"51":[1,1,1],"52":[2,2,16],"53":[2,2,25],"54":[2,2,31],"55":[2,2,27],"56":[1,1,185],"57":[1,1,31],"58":[1,1,5],"59":[1,1,66],"60":[1,1,4],"61":[1,1,19],"62":[1,1,1],"63":[2,2,4],"64":[2,2,45],"65":[2,2,59],"66":[2,2,25],"67":[1,1,44],"68":[1,1,7],"69":[1,1,14],"70":[1,1,243],"71":[1,1,2],"72":[1,2,39],"73":[1,2,6],"74":[2,1,5],"75":[1,3,14],"76":[1,3,22],"77":[1,1,2],"78":[1,1,5],"79":[1,1,21],"80":[2,1,48],"81":[1,1,56],"82":[1,1,17],"83":[1,1,78],"84":[1,1,1],"85":[1,1,4],"86":[2,2,14],"87":[2,2,10],"88":[2,2,5],"89":[4,1,26],"90":[1,1,38],"91":[1,1,11],"92":[1,1,7],"93":[5,1,12],"94":[5,1,13],"95":[4,1,15],"96":[1,1,2],"97":[2,1,29],"98":[1,1,4],"99":[1,1,9],"100":[1,1,8],"101":[7,1,22],"102":[7,1,11],"103":[6,1,9],"104":[7,1,8]},"averageFieldLength":[1.7333333333333334,1.3047619047619048,30.380952380952372],"storedFields":{"0":{"title":"介绍","titles":[]},"1":{"title":"地址","titles":[]},"2":{"title":"交流合作","titles":[]},"3":{"title":"微信","titles":["交流合作"]},"4":{"title":"抖音","titles":["交流合作"]},"5":{"title":"B 站","titles":["交流合作"]},"6":{"title":"公众号","titles":["交流合作"]},"7":{"title":"Ai 编码","titles":[]},"8":{"title":"缓存","titles":[]},"9":{"title":"使用","titles":["缓存"]},"10":{"title":"框架特有的通用工具类,CoolCache","titles":["缓存"]},"11":{"title":"通过coolCache缓存模板,获取数据","titles":["缓存"]},"12":{"title":"控制器","titles":[]},"13":{"title":"示例","titles":["控制器"]},"14":{"title":"查询配置","titles":["控制器"]},"15":{"title":"请求参数","titles":["控制器"]},"16":{"title":"重写实现","titles":["控制器"]},"17":{"title":"原理","titles":[]},"18":{"title":"接口路由规则","titles":["原理"]},"19":{"title":"自定义路由注解","titles":["原理"]},"20":{"title":"重写 getMappingForMethod","titles":["原理"]},"21":{"title":"数据库","titles":[]},"22":{"title":"功能对比","titles":["数据库"]},"23":{"title":"支持数据库","titles":["数据库"]},"24":{"title":"自动建表","titles":["数据库"]},"25":{"title":"项目部署","titles":[]},"26":{"title":"普通方式","titles":["项目部署"]},"27":{"title":"1、部署流程(以宝塔为例):","titles":["项目部署","普通方式"]},"28":{"title":"2、推荐使用 pnpm 安装依赖","titles":["项目部署","普通方式"]},"29":{"title":"3、PM2 运行后端服务","titles":["项目部署","普通方式"]},"30":{"title":"4、nginx 配置示例","titles":["项目部署","普通方式"]},"31":{"title":"Docker 方式","titles":["项目部署"]},"32":{"title":"1、部署流程(以宝塔为例):","titles":["项目部署","Docker 方式"]},"33":{"title":"2、打包镜像","titles":["项目部署","Docker 方式"]},"34":{"title":"3、运行","titles":["项目部署","Docker 方式"]},"35":{"title":"注意事项","titles":["项目部署","Docker 方式"]},"36":{"title":"开发方式","titles":[]},"37":{"title":"Ai 全自动","titles":["开发方式"]},"38":{"title":"半自动","titles":["开发方式"]},"39":{"title":"目录结构","titles":[]},"40":{"title":"结构","titles":["目录结构"]},"41":{"title":"统一异常处理","titles":[]},"42":{"title":"异常统一捕获","titles":["统一异常处理"]},"43":{"title":"Ai 流程编排","titles":[]},"44":{"title":"数据初始化","titles":[]},"45":{"title":"锁","titles":[]},"46":{"title":"扩展插件","titles":[]},"47":{"title":"使用插件","titles":["扩展插件"]},"48":{"title":"1、安装","titles":["扩展插件","使用插件"]},"49":{"title":"2、调用","titles":["扩展插件","使用插件"]},"50":{"title":"3、配置","titles":["扩展插件","使用插件"]},"51":{"title":"开发插件","titles":["扩展插件"]},"52":{"title":"1、脚手架","titles":["扩展插件","开发插件"]},"53":{"title":"2、目录结构","titles":["扩展插件","开发插件"]},"54":{"title":"3、开发过程","titles":["扩展插件","开发插件"]},"55":{"title":"4、字段解释","titles":["扩展插件","开发插件"]},"56":{"title":"插件详解","titles":["扩展插件"]},"57":{"title":"打包","titles":["扩展插件"]},"58":{"title":"安装插件","titles":["扩展插件"]},"59":{"title":"实现原理","titles":["扩展插件"]},"60":{"title":"快速开始","titles":[]},"61":{"title":"环境准备","titles":["快速开始"]},"62":{"title":"运行系统","titles":["快速开始"]},"63":{"title":"1、拉取源码","titles":["快速开始","运行系统"]},"64":{"title":"2、配置数据库","titles":["快速开始","运行系统"]},"65":{"title":"3、启动后端服务","titles":["快速开始","运行系统"]},"66":{"title":"4、启动前端服务","titles":["快速开始","运行系统"]},"67":{"title":"请求日志记录","titles":[]},"68":{"title":"权限校验","titles":[]},"69":{"title":"配置","titles":["权限校验"]},"70":{"title":"原理","titles":["权限校验"]},"71":{"title":"当前用户","titles":["权限校验"]},"72":{"title":"后端用户","titles":["权限校验","当前用户"]},"73":{"title":"应用用户","titles":["权限校验","当前用户"]},"74":{"title":"忽略 token","titles":["权限校验"]},"75":{"title":"方法上","titles":["权限校验","忽略 token"]},"76":{"title":"类上","titles":["权限校验","忽略 token"]},"77":{"title":"服务","titles":[]},"78":{"title":"Crud","titles":["服务"]},"79":{"title":"修改前后","titles":["服务"]},"80":{"title":"swagger 文档","titles":[]},"81":{"title":"唯一id","titles":[]},"82":{"title":"文件上传","titles":[]},"83":{"title":"使用","titles":[]},"84":{"title":"简介","titles":[]},"85":{"title":"技术选型","titles":["简介"]},"86":{"title":"一、环境要求","titles":["简介","技术选型"]},"87":{"title":"二、后端框架","titles":["简介","技术选型"]},"88":{"title":"三、前端框架","titles":["简介","技术选型"]},"89":{"title":"为什么选择 Cool Admin?","titles":["简介"]},"90":{"title":"内置功能","titles":["简介"]},"91":{"title":"演示","titles":[]},"92":{"title":"源码","titles":[]},"93":{"title":"后端(点个 Star 哦)","titles":["源码"]},"94":{"title":"前端(点个 Star 哦)","titles":["源码"]},"95":{"title":"文档 (Star 哦)","titles":["源码"]},"96":{"title":"常见问题","titles":[]},"97":{"title":"1、找不到类似xxxTableDef文件","titles":["常见问题"]},"98":{"title":"计划","titles":[]},"99":{"title":"完善插件","titles":["计划"]},"100":{"title":"更新","titles":[]},"101":{"title":"v7.1.3(2024-08-25)","titles":["更新"]},"102":{"title":"v7.1.2(2024-08-04)","titles":["更新"]},"103":{"title":"v7.1.1(2024-07-15)","titles":["更新"]},"104":{"title":"v7.1.0(2024-06-27)","titles":["更新"]}},"dirtCount":0,"index":[["升级所有相关依赖到最新",{"2":{"104":1}}],["升级到",{"2":{"104":1}}],["移除插件jar文件落库",{"2":{"102":1}}],["移除锁",{"2":{"45":1}}],["鉴权调整兼容app端",{"2":{"102":1}}],["鉴权拦截配置",{"2":{"70":1}}],["指定id插入不生效问题",{"2":{"101":1}}],["修复",{"2":{"101":2,"102":1}}],["修改之后",{"2":{"79":2}}],["修改之前",{"2":{"79":2}}],["修改类型",{"2":{"79":2}}],["修改前后",{"0":{"79":1}}],["修改",{"2":{"13":1,"90":1}}],["图形验证码获取区分app和admin",{"2":{"101":1}}],["分布式id",{"2":{"101":1}}],["分布式id生成组件",{"2":{"101":1}}],["分页查询无",{"2":{"22":1}}],["分页查询之总量缓存",{"2":{"22":1}}],["分页查询配置",{"2":{"14":1}}],["分页查询",{"2":{"13":1,"22":1}}],["参考",{"2":{"101":4}}],["参数管理",{"2":{"90":1}}],["参数",{"2":{"49":1}}],["支付",{"2":{"103":1}}],["支付插件",{"2":{"99":1}}],["支持postgresql",{"2":{"102":1}}],["支持自定义返回结果类型",{"2":{"101":1}}],["支持动态安装",{"2":{"90":1}}],["支持回滚操作",{"2":{"90":1}}],["支持静态资源文件上传云端进行云管理",{"2":{"90":1}}],["支持很多数据库",{"2":{"23":1}}],["支持的数据库类型",{"2":{"23":1}}],["支持数据库",{"0":{"23":1}}],["支持多主键",{"2":{"22":1}}],["支持关联查询",{"2":{"21":1}}],["短信等功能可以通过安装插件的方式添加",{"2":{"103":1}}],["短信插件",{"2":{"99":1}}],["短信这类功能的插件可以通过后台动态安装卸载",{"2":{"89":1}}],["完善插件",{"0":{"99":1}}],["计划",{"0":{"98":1},"1":{"99":1}}],["找不到类似xxxtabledef文件",{"0":{"97":1}}],["常见问题",{"0":{"96":1},"1":{"97":1}}],["常用的技术进行选择",{"2":{"85":1}}],["常用命令",{"2":{"29":1}}],["您的贡献可能会给其他人来带巨大的帮助",{"2":{"95":1}}],["哦",{"0":{"93":1,"94":1,"95":1}}],["点个",{"0":{"93":1,"94":1}}],["点击前往前端项目详细文档",{"2":{"66":1,"94":1}}],["点击前往插件市场",{"2":{"46":1}}],["点击前往插件市场下载安装",{"2":{"43":1}}],["点击+按钮",{"2":{"48":1}}],["点击左侧菜单扩展管理",{"2":{"48":1}}],["源码",{"0":{"92":1},"1":{"93":1,"94":1,"95":1}}],["源码仓库",{"2":{"63":1}}],["演示",{"0":{"91":1}}],["卸载插件",{"2":{"90":1}}],["卸载和替换",{"2":{"59":2}}],["前后端插件",{"2":{"90":1}}],["前端",{"0":{"94":1}}],["前端框架",{"0":{"88":1}}],["前端会根据后端返回的上传模式进行本地上传或者云存储签名直传",{"2":{"82":1}}],["前端不需要特意写调用接口的",{"2":{"33":1}}],["前端打包完放这边",{"2":{"30":1}}],["前端访问后端的接口地址默认是前端根地址+",{"2":{"27":1}}],["前端接口",{"2":{"18":1}}],["天的保留",{"2":{"90":1}}],["任务调度包含执行结果日志",{"2":{"90":1}}],["添加",{"2":{"90":1}}],["定时任务",{"2":{"90":1}}],["定时任务模块",{"2":{"40":1}}],["便于问题排查",{"2":{"90":1}}],["设置角色按机构进行数据范围权限划分",{"2":{"90":1}}],["呈现公司组织部门树形结构",{"2":{"90":1}}],["内置功能",{"0":{"90":1}}],["代码简洁",{"2":{"89":1}}],["代理服务端地址",{"2":{"30":1}}],["灵活又不臃肿",{"2":{"89":1}}],["灵活性",{"2":{"59":1}}],["灵活性高",{"2":{"59":1}}],["专门为",{"2":{"89":1}}],["部分功能实现零代码",{"2":{"89":1}}],["部署",{"2":{"35":1}}],["部署的简单流程",{"2":{"31":1}}],["部署的配置方式可以参考普通的部署方式",{"2":{"31":1}}],["部署成功",{"2":{"27":1,"32":1}}],["部署流程",{"0":{"27":1,"32":1}}],["部署视频教程",{"2":{"26":1,"31":1}}],["从页面到后端代码",{"2":{"89":1}}],["从第三方",{"2":{"11":1}}],["特别是最近",{"2":{"89":1}}],["特别是跟",{"2":{"4":1}}],["三",{"0":{"88":1}}],["二",{"0":{"87":1}}],["环境要求",{"0":{"86":1}}],["环境准备",{"0":{"61":1}}],["减少技术栈的复杂度",{"2":{"85":1}}],["技术选型",{"0":{"85":1},"1":{"86":1,"87":1,"88":1}}],["技术分享",{"2":{"4":1,"6":1}}],["简单功能零代码实现",{"2":{"103":1}}],["简单锁的使用",{"2":{"45":1}}],["简介",{"0":{"84":1},"1":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1}}],["水印等处理",{"2":{"83":1}}],["裁剪",{"2":{"83":1}}],["条件允许的话尽量选择云存储上传",{"2":{"83":1}}],["动静分离有许多好处",{"2":{"83":1}}],["动态加载使得应用程序能够在不停机的情况下进行热更新",{"2":{"59":1}}],["动态加载允许应用程序在运行时根据需求加载",{"2":{"59":1}}],["动态加载",{"2":{"59":2}}],["动态",{"2":{"22":1}}],["动态表名",{"2":{"22":1}}],["线上环境请用nginx等静态服务器代理",{"2":{"83":1}}],["线上的数据库是需要本地传上去的",{"2":{"27":1}}],["七牛云等",{"2":{"82":1}}],["腾讯云",{"2":{"82":1}}],["云存储上传服务端值提供签名供前端直传到对应的云存储",{"2":{"82":1}}],["云存储",{"2":{"82":1}}],["直接上传到对应的云存储",{"2":{"82":1}}],["入参为key",{"2":{"81":1}}],["步长",{"2":{"81":1}}],["当前最大id",{"2":{"81":1}}],["当前用户",{"0":{"71":1},"1":{"72":1,"73":1}}],["基于表来完成分布式id生成",{"2":{"81":1}}],["基础模块",{"2":{"40":1}}],["唯一id分配",{"2":{"81":1}}],["唯一id",{"0":{"81":1}}],["操作日志",{"2":{"90":1}}],["操作权限标识等",{"2":{"90":1}}],["操作",{"2":{"78":1}}],["处理业务逻辑的代码应该被封装在服务中",{"2":{"77":1}}],["处理逻辑在以下方法",{"2":{"44":1}}],["都必须配合coolrestcontroller使用",{"2":{"76":1}}],["都继承自",{"2":{"12":1}}],["校验",{"2":{"74":1,"75":1}}],["应用用户",{"0":{"73":1}}],["应用必备",{"2":{"43":1}}],["类上",{"0":{"76":1}}],["类型",{"2":{"72":1}}],["类必须继承",{"2":{"49":1,"56":2}}],["类必须要有",{"2":{"49":1,"56":2}}],["允许网页iframe",{"2":{"70":1}}],["监控用户行为",{"2":{"70":1}}],["监听",{"2":{"22":1}}],["权限管理拦截器",{"2":{"70":1}}],["权限校验",{"0":{"68":1},"1":{"69":1,"70":1,"71":1,"72":1,"73":1,"74":1,"75":1,"76":1}}],["每次调用接口的时候spring",{"2":{"70":1}}],["每个插件的配置各不相同",{"2":{"55":1}}],["每个对象中的",{"2":{"44":1}}],["每个模块都有其特有的功能",{"2":{"39":1}}],["则返回给decide方法",{"2":{"70":1}}],["判定用户请求的url是否在权限表中",{"2":{"70":1}}],["判断",{"2":{"42":1}}],["刷新token过期时间",{"2":{"69":1}}],["半小时",{"2":{"69":1}}],["半自动",{"0":{"38":1}}],["秒",{"2":{"69":2}}],["单位",{"2":{"69":2}}],["单主键配置",{"2":{"22":1}}],["过期时间",{"2":{"69":1}}],["作为文档",{"2":{"80":1}}],["作为myaccessdecisionmanager类的decide的第三个参数",{"2":{"70":1}}],["作为框架安全与权限校验",{"2":{"68":1}}],["作者",{"2":{"54":1,"55":1}}],["采用",{"2":{"68":1}}],["忽略",{"0":{"74":1},"1":{"75":1,"76":1},"2":{"74":1}}],["忽略权限控制的地址",{"2":{"70":1}}],["忽略记录请求日志url配置",{"2":{"102":1}}],["忽略记录请求日志url",{"2":{"67":1}}],["忽略url",{"2":{"67":1}}],["记录日志",{"2":{"67":1}}],["记录接口请求日志入库",{"2":{"67":1}}],["密码版本号",{"2":{"72":1}}],["密码",{"2":{"66":1,"91":1}}],["账户",{"2":{"66":1,"91":1}}],["账户密码不正确",{"2":{"42":1}}],["执行",{"2":{"97":1}}],["执行命令",{"2":{"66":1}}],["执行的过程中",{"2":{"21":1}}],["同时如果个别接口需要忽略记录请求日志",{"2":{"67":1}}],["同级",{"2":{"66":1}}],["同样也可以对",{"2":{"16":1}}],["跟进nodejs",{"2":{"104":1}}],["跟",{"2":{"66":1}}],["跟分页查询一样",{"2":{"14":1}}],["端口",{"2":{"65":1}}],["服务",{"0":{"77":1},"1":{"78":1,"79":1}}],["服务启动成功",{"2":{"65":1}}],["服务器环境准备",{"2":{"27":1}}],["构建eps信息",{"2":{"65":1}}],["控制台打印出下面信息",{"2":{"65":1}}],["控制器",{"0":{"12":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"101":1}}],["驱动已经内置",{"2":{"64":1}}],["首次启动会自动初始化并导入数据",{"2":{"64":1}}],["首先下载插件包",{"2":{"48":1}}],["yamlcool",{"2":{"69":1,"83":1}}],["yaml",{"2":{"64":1}}],["yamlspring",{"2":{"8":1}}],["yml",{"2":{"64":1,"83":1}}],["拉取源码",{"0":{"63":1}}],["拉取前后端代码",{"2":{"27":1,"32":1}}],["9000",{"2":{"66":1}}],["941+08",{"2":{"65":1}}],["9",{"2":{"61":1}}],["7天",{"2":{"69":1}}],["7版本",{"2":{"64":1}}],["7",{"2":{"61":1,"86":1}}],["选择",{"2":{"61":1,"86":1}}],["选择插件包进行安装",{"2":{"48":1}}],["开启",{"2":{"97":1}}],["开放接口",{"2":{"74":1}}],["开始使用",{"2":{"60":1}}],["开发几乎不用写代码",{"2":{"89":1}}],["开发设计的",{"2":{"89":1}}],["开发过程",{"0":{"54":1}}],["开发过程只需点一点",{"2":{"37":1}}],["开发插件",{"0":{"51":1},"1":{"52":1,"53":1,"54":1,"55":1}}],["开发的时候无法调试",{"2":{"49":1}}],["开发的时候只是模拟",{"2":{"49":1}}],["开发的一个",{"2":{"8":1}}],["开发",{"2":{"43":1}}],["开发方式",{"0":{"36":1},"1":{"37":1,"38":1}}],["开发者可以从中方便的获取各种参数",{"2":{"15":1}}],["快速开始",{"0":{"60":1},"1":{"61":1,"62":1,"63":1,"64":1,"65":1,"66":1}}],["扩展性",{"2":{"59":1}}],["扩展插件",{"0":{"46":1},"1":{"47":1,"48":1,"49":1,"50":1,"51":1,"52":1,"53":1,"54":1,"55":1,"56":1,"57":1,"58":1,"59":1},"2":{"89":1}}],["大大提高了系统的可用性和稳定性",{"2":{"59":1}}],["热更新",{"2":{"59":1}}],["优化若干问题",{"2":{"104":1}}],["优化插件过大加载慢问题",{"2":{"102":1}}],["优化eps解析规则",{"2":{"101":1}}],["优化角色修改循环单个处理为批量处理",{"2":{"101":1}}],["优势",{"2":{"59":1}}],["优炫数据库",{"2":{"23":1}}],["远程服务器和",{"2":{"59":1}}],["它可以加载指定的",{"2":{"59":1}}],["标准库中提供的一个类加载器",{"2":{"59":1}}],["最终打出的包为",{"2":{"57":1}}],["里指定",{"2":{"57":1}}],["里面是个数组",{"2":{"44":1}}],["后台人员查询列表字段关联错误",{"2":{"101":1}}],["后端",{"0":{"93":1}}],["后端框架",{"0":{"87":1}}],["后端用户",{"0":{"72":1}}],["后端修改数据库配置",{"2":{"64":1}}],["后端接口",{"2":{"18":1}}],["后缀的文件",{"2":{"57":1}}],["避免打包结果过大",{"2":{"56":1}}],["避免插件过大不会在打入jar包中",{"2":{"56":1}}],["主应用以有这些依赖",{"2":{"56":1}}],["主应用项目已经有的依赖给排除掉",{"2":{"56":1}}],["主应用没有这些依赖",{"2":{"56":1}}],["主要特点",{"2":{"21":1,"89":1}}],["主要是做一些技术教程",{"2":{"4":1}}],["引入依赖",{"2":{"56":1}}],["可商用",{"2":{"92":1}}],["可插拔",{"2":{"89":1}}],["可选",{"2":{"83":1}}],["可维护性",{"2":{"59":1}}],["可控性强",{"2":{"59":1}}],["可在",{"2":{"57":1}}],["可使用",{"2":{"56":1}}],["可以重写modifybefore和modifyafter方法",{"2":{"79":1}}],["可以参考baseservice的实现",{"2":{"78":1}}],["可以轻松地添加新的功能模块或服务",{"2":{"59":1}}],["可以将应用程序的核心逻辑和配置分离",{"2":{"59":1}}],["可以通过代码控制加载",{"2":{"59":1}}],["可以通过插件的方式来扩展系统功能",{"2":{"46":1}}],["可以动态指定",{"2":{"59":1}}],["可以快速开发我们的插件",{"2":{"52":1}}],["可以大大节省开发时间",{"2":{"36":1}}],["可以大大简化代码",{"2":{"12":1}}],["可以考虑这个时间配置长一点",{"2":{"30":1}}],["可以自己指定数量",{"2":{"29":1}}],["可以自动创建表",{"2":{"24":1}}],["可以在yml文件中配置",{"2":{"67":1}}],["可以在打包日志中查看我们排除和引入了哪些包",{"2":{"56":1}}],["可以在",{"2":{"44":1}}],["可以在对应的",{"2":{"16":1}}],["可以在这边实现一下列表数据排序规则",{"2":{"13":1,"15":1,"16":1,"80":1}}],["可以选择你想使用的缓存",{"2":{"8":1}}],["满足以上条件",{"2":{"56":1}}],["拼音",{"2":{"56":1}}],["汉字",{"2":{"56":1}}],["汉字字符",{"2":{"56":1}}],["会持续不断地更新",{"2":{"100":1}}],["会展示在插件的详情中",{"2":{"55":1}}],["会更加简洁",{"2":{"42":1}}],["建议",{"2":{"64":1}}],["建议尺寸",{"2":{"55":1}}],["建议将缓存换成",{"2":{"35":1}}],["说明后端服务启动成功",{"2":{"65":1}}],["说明",{"2":{"55":1,"72":1}}],["测试",{"2":{"54":1}}],["测试curd",{"2":{"13":2,"14":2,"15":2,"16":2,"38":1,"80":2}}],["或",{"2":{"52":1,"93":2,"94":2,"95":1}}],["或者db",{"2":{"11":1}}],["脚手架源码仓库",{"2":{"52":1}}],["脚手架",{"0":{"52":1}}],["下",{"2":{"50":1}}],["下的",{"2":{"44":1}}],["范围在",{"2":{"50":1}}],["路径可以自己指定",{"2":{"50":1}}],["例如原本的配置文件是这样的",{"2":{"50":1}}],["其它的无效",{"2":{"76":1}}],["其中对应的包名称",{"2":{"57":1}}],["其中",{"2":{"50":1}}],["其中我们可以在插件包里通过",{"2":{"49":1}}],["其他数据库适配中",{"2":{"64":1}}],["其他部署方式也可以参考这个流程",{"2":{"26":1}}],["其他查询方式",{"2":{"14":2}}],["只需极少编码即可实现大部分需求",{"2":{"89":1}}],["只需拖一拖即可",{"2":{"89":1}}],["只需三步",{"2":{"38":1}}],["只有安装到cool",{"2":{"49":1}}],["获得用户信息",{"2":{"70":1,"72":1}}],["获得其他插件",{"2":{"49":1}}],["获取id",{"2":{"81":1}}],["获取当前用户信息",{"2":{"71":1}}],["获取启用的权限操作请求",{"2":{"70":1}}],["获取主应用resources下的",{"2":{"49":1}}],["获取主应用resources目录下的资源文件",{"2":{"49":1}}],["获取物流信息",{"2":{"11":1}}],["获取数据",{"0":{"11":1},"2":{"11":1}}],["注入service",{"2":{"81":1}}],["注解",{"2":{"49":2,"56":4}}],["注意事项",{"0":{"35":1}}],["注意",{"2":{"22":1,"23":1,"24":1,"25":1,"27":1,"33":1,"44":1,"61":1,"76":1}}],["注意如果该表有json字段",{"2":{"14":1}}],["||",{"2":{"49":7}}],["|",{"2":{"49":67}}],["一",{"0":{"86":1}}],["一个插件",{"2":{"56":1}}],["一个插件jar有且只能有一个类被",{"2":{"49":1,"56":1}}],["一个项目用cool就够了",{"2":{"49":2}}],["一般抛异常写法",{"2":{"42":1}}],["`",{"2":{"49":10}}],["`update",{"2":{"49":1}}],["`create",{"2":{"49":1}}],["`params`",{"2":{"49":1}}],["`ip`",{"2":{"49":1}}],["`action`",{"2":{"49":1}}],["`base",{"2":{"49":1}}],["500",{"2":{"81":2}}],["564+08",{"2":{"49":1}}],["556",{"2":{"65":1}}],["559+08",{"2":{"49":1}}],["558+08",{"2":{"49":1}}],["557+08",{"2":{"49":1}}],["554+08",{"2":{"49":1}}],["544+08",{"2":{"49":1}}],["543+08",{"2":{"49":2}}],["5",{"2":{"49":8,"56":6,"61":1,"86":1}}],["就是我们的插件包",{"2":{"57":1}}],["就可以在代码中调用插件的方法了",{"2":{"49":1}}],["就不需要在entity",{"2":{"14":1}}],["调整",{"2":{"101":4,"102":2}}],["调用其他插件",{"2":{"49":1}}],["调用其他插件aliyun",{"2":{"49":1}}],["调用主应用获取缓存",{"2":{"49":1}}],["调用主应用设置缓存",{"2":{"49":1}}],["调用主应用",{"2":{"49":3}}],["调用插件类",{"2":{"49":1}}],["调用",{"0":{"49":1}}],["调一调",{"2":{"37":1}}],["打开后台管理系统",{"2":{"48":1}}],["打包结果",{"2":{"57":1}}],["打包命令",{"2":{"57":1}}],["打包",{"0":{"57":1}}],["打包时可以排除",{"2":{"56":1}}],["打包前端镜像",{"2":{"33":1}}],["打包前后端代码",{"2":{"27":1}}],["打包后端镜像",{"2":{"33":1}}],["打包后端和前端镜像",{"2":{"32":1}}],["打包镜像之前",{"2":{"33":1}}],["打包镜像",{"0":{"33":1}}],["打包之前注意配置生产环境的数据库配置config",{"2":{"27":1}}],["然后在系统中安装插件包",{"2":{"48":1}}],["导致系统臃肿",{"2":{"46":1}}],["加载权限表中所有操作请求权限",{"2":{"70":1}}],["加载成功后文件名称将被当作唯一键标识",{"2":{"44":1}}],["加上",{"2":{"53":1}}],["加锁",{"2":{"45":1}}],["否则使用",{"2":{"45":1}}],["否则你将无法正常访问你的",{"2":{"33":1}}],["锁工具",{"2":{"101":2}}],["锁是基于redis",{"2":{"45":1}}],["锁",{"0":{"45":1}}],["要新增一个",{"2":{"44":1}}],["初始化数据",{"2":{"101":1}}],["初始化数据json文件",{"2":{"40":1}}],["初始化eps完成",{"2":{"65":1}}],["初始化菜单数据",{"2":{"44":1}}],["初始化自定义的数据",{"2":{"44":1}}],["富文本参数",{"2":{"44":1}}],["规范",{"2":{"44":1}}],["规则为",{"2":{"18":1}}],["数组里可以包含多个对象",{"2":{"44":1}}],["数据有",{"2":{"90":1}}],["数据回收站",{"2":{"90":1}}],["数据回收站模块",{"2":{"40":1}}],["数据初始化完成",{"2":{"44":1}}],["数据初始化",{"0":{"44":1},"2":{"81":1}}],["数据脱敏",{"2":{"22":1}}],["数据脱敏等等",{"2":{"21":1}}],["数据填充",{"2":{"21":1,"22":1}}],["数据库初始数据初始化",{"2":{"44":1}}],["数据库",{"0":{"21":1},"1":{"22":1,"23":1,"24":1},"2":{"23":32}}],["格式如下",{"2":{"44":1}}],["目录下",{"2":{"57":1}}],["目录下创建",{"2":{"44":1}}],["目录创建",{"2":{"44":1}}],["目录结构",{"0":{"39":1,"53":1},"1":{"40":1}}],["相关配置",{"2":{"69":1}}],["相关应用",{"2":{"43":1}}],["相关的技术发展",{"2":{"89":1}}],["相关的",{"2":{"4":1}}],["很容易就能完成一个",{"2":{"43":1}}],["很多应用希望接入",{"2":{"43":1}}],["结尾",{"2":{"44":1}}],["结合知识库",{"2":{"43":1}}],["结构",{"0":{"40":1}}],["做为后来者有后发优势",{"2":{"89":1}}],["做了一个",{"2":{"43":1}}],["做解析",{"2":{"20":1}}],["于是我们面向开发者和软件开发公司",{"2":{"43":1}}],["容易把我们累死",{"2":{"43":1}}],["随着技术不断地发展",{"2":{"89":1}}],["随着",{"2":{"43":1}}],["视频演示",{"2":{"43":1}}],["流程编排插件",{"2":{"99":1}}],["流程编排功能",{"2":{"43":1}}],["流程编排",{"0":{"43":1},"2":{"89":1}}],["异常信息为",{"2":{"42":1}}],["异常统一捕获",{"0":{"42":1}}],["即抛异常",{"2":{"42":1}}],["手动抛异常",{"2":{"42":1}}],["手动进行转换",{"2":{"14":1}}],["业务key",{"2":{"81":1}}],["业务校验的工具",{"2":{"42":1}}],["业务代码放在这边",{"2":{"40":1}}],["系统异常信息日志记录和查询",{"2":{"90":1}}],["系统正常操作日志记录和查询",{"2":{"90":1}}],["系统通用",{"2":{"83":2}}],["系统的文件上传就会自动替换成云存储上传的方式",{"2":{"82":1}}],["系统启动完成访问",{"2":{"80":1}}],["系统启动的时候",{"2":{"70":1}}],["系统会查询并向spring",{"2":{"70":1}}],["系统提供了",{"2":{"42":1}}],["系统用户",{"2":{"40":1}}],["请求日志",{"2":{"90":1}}],["请求日志记录",{"0":{"67":1}}],["请求过程中会解析",{"2":{"72":1}}],["请求参数",{"0":{"15":1},"2":{"79":2}}],["请勿重复操作",{"2":{"45":1}}],["请区分post",{"2":{"42":1}}],["不要吝啬你们免费的star哦",{"2":{"92":1}}],["不像一般代码生成器生成一堆冗余代码",{"2":{"89":1}}],["不经过服务器",{"2":{"82":1}}],["不然调用时会报错",{"2":{"56":1}}],["不带声调",{"2":{"56":1}}],["不同的插件有不同的配置",{"2":{"54":1}}],["不会重复初始化",{"2":{"44":1}}],["不支持该请求方式",{"2":{"42":1}}],["不用写一行代码",{"2":{"37":1}}],["已存在该记录",{"2":{"42":1}}],["统一异常处理",{"0":{"41":1},"1":{"42":1}}],["包或其内部的类和资源",{"2":{"59":1}}],["包或类",{"2":{"59":1}}],["包具有以下几个显著的优势",{"2":{"59":1}}],["包的位置和版本",{"2":{"59":1}}],["包括本地文件系统",{"2":{"59":1}}],["包括一些核心的组件工具",{"2":{"40":1}}],["包时会想该插件注入",{"2":{"49":1}}],["包下创建",{"2":{"40":1}}],["包",{"2":{"40":1,"59":3}}],["按照简单",{"2":{"85":1}}],["按上面的包结构新增即可",{"2":{"40":1}}],["按规则组装",{"2":{"20":1}}],["为什么选择",{"0":{"89":1}}],["为例",{"2":{"64":1}}],["为排除引入",{"2":{"56":1}}],["为引入",{"2":{"56":1}}],["为主应用",{"2":{"50":1}}],["为插件key",{"2":{"49":1}}],["为对应的值",{"2":{"44":1}}],["为表的字段",{"2":{"44":1}}],["为表的名称",{"2":{"44":1}}],["为业务模块",{"2":{"40":1}}],["为核心模块",{"2":{"40":1}}],["为了使项目能够持续",{"2":{"92":1}}],["为了开发插件如果引入了主应用已经有的maven依赖可以在下面的",{"2":{"56":2}}],["为了方便开发插件和统一插件开发规范",{"2":{"52":1}}],["为了方便获取参数",{"2":{"15":1}}],["为了丰富系统功能",{"2":{"46":1}}],["为了不过多依赖环境",{"2":{"8":1}}],["插件可以在打包的时候将在我们",{"2":{"56":1}}],["插件详解",{"0":{"56":1}}],["插件配置",{"2":{"55":1}}],["插件介绍",{"2":{"55":1}}],["插件",{"2":{"55":1,"99":1}}],["插件钩子",{"2":{"55":1}}],["插件唯一标识",{"2":{"55":1}}],["插件描述",{"2":{"54":1,"55":1}}],["插件运行测试类",{"2":{"53":1}}],["插件信息配置文件",{"2":{"53":1}}],["插件类放在这个包下",{"2":{"53":1}}],["插件包",{"2":{"53":1}}],["插件包可以通过官网下载插件",{"2":{"48":1}}],["插件方法",{"2":{"49":1,"56":1}}],["插件管理",{"2":{"48":1}}],["插件模块",{"2":{"40":1}}],["插件分享等",{"2":{"6":1}}],["插件分享等内容",{"2":{"4":1}}],["角色菜单权限分配",{"2":{"90":1}}],["角色管理",{"2":{"90":1}}],["角色数组",{"2":{"55":1,"72":1}}],["角色",{"2":{"40":1}}],["资源目录下的文件",{"2":{"50":1}}],["资源文件",{"2":{"40":1}}],["资源",{"2":{"40":1,"59":1}}],["菜单管理",{"2":{"90":1}}],["菜单",{"2":{"40":1}}],["└─",{"2":{"40":8,"53":7}}],["└──",{"2":{"18":6}}],["核心包",{"2":{"40":1,"53":1}}],["├─core",{"2":{"53":1}}],["├─",{"2":{"40":15,"53":3}}],["├──",{"2":{"18":1}}],["清晰明了便于管理",{"2":{"39":1}}],["组件会根据字段智能选择",{"2":{"38":1}}],["零代码开发",{"2":{"37":1}}],["全自动",{"0":{"37":1}}],["提高了代码的可维护性",{"2":{"59":1}}],["提高开发效率",{"2":{"36":1}}],["提示",{"2":{"40":1}}],["提供了极大的灵活性",{"2":{"59":1}}],["提供了简化的业务异常抛出工具",{"2":{"41":1}}],["提供了非常灵活的",{"2":{"21":1}}],["提供了一种高效且可靠的解决方案",{"2":{"8":1}}],["降低开发成本",{"2":{"36":1}}],["推荐",{"2":{"61":2,"97":1}}],["推荐两种快速开发方式",{"2":{"36":1}}],["推荐使用",{"0":{"28":1}}],["防止上传恶意文件等",{"2":{"83":1}}],["防止操作不当导致的数据丢失",{"2":{"35":1}}],["防止刷新404",{"2":{"30":1}}],["文件管理",{"2":{"90":1}}],["文件管理模块",{"2":{"40":1}}],["文件存放路径",{"2":{"83":1}}],["文件根地址",{"2":{"83":1}}],["文件等",{"2":{"59":1}}],["文件上传插件",{"2":{"99":1}}],["文件上传模式",{"2":{"83":1}}],["文件上传相关",{"2":{"83":1}}],["文件上传",{"0":{"82":1},"2":{"58":1,"83":1}}],["文件上传换成云存储",{"2":{"35":1}}],["文件内容",{"2":{"49":1}}],["文件后",{"2":{"44":1}}],["文件",{"2":{"38":1,"40":1,"44":2,"83":1}}],["文档",{"0":{"80":1,"95":1},"2":{"1":1}}],["运行系统",{"0":{"62":1},"1":{"63":1,"64":1,"65":1,"66":1}}],["运行结果",{"2":{"49":1}}],["运行代码生成器",{"2":{"38":1}}],["运行",{"0":{"34":1}}],["运行后端",{"2":{"34":2}}],["运行后端和前端",{"2":{"32":1}}],["运行后端服务",{"0":{"29":1}}],["让前端能够自动生成eps",{"2":{"33":1}}],["创建实体类生成表",{"2":{"38":1}}],["创建docker",{"2":{"33":1}}],["创建",{"2":{"32":1,"44":1}}],["持久化连接相关配置",{"2":{"30":1}}],["持续添加更多的数据库支持",{"2":{"23":1}}],["$",{"2":{"83":1}}],["$1",{"2":{"30":1}}],["$upstream",{"2":{"30":1}}],["$uri",{"2":{"30":2}}],["$http",{"2":{"30":2}}],["$host$request",{"2":{"30":1}}],["$host",{"2":{"30":2}}],["$proxy",{"2":{"30":2}}],["$remote",{"2":{"30":5}}],["访问http",{"2":{"66":1}}],["访问如果登录页正常出现验证码",{"2":{"32":1}}],["访问",{"2":{"30":1,"65":1}}],["访问域名",{"2":{"27":1}}],["8",{"2":{"49":1,"56":3,"61":1,"64":2}}],["80",{"2":{"34":2}}],["8001",{"2":{"30":1,"34":2,"49":5,"65":2,"80":1}}],["86400s",{"2":{"30":1}}],["8s",{"2":{"23":2}}],["403",{"2":{"70":1}}],["401",{"2":{"70":1}}],["46",{"2":{"65":1}}],["45",{"2":{"65":3}}],["4b57",{"2":{"56":1}}],["47ac",{"2":{"56":1}}],["4fd03504",{"2":{"56":1}}],["4",{"0":{"30":1,"55":1,"66":1},"2":{"56":2,"59":1,"70":1}}],["日志",{"2":{"29":1}}],["改成自己的应用名称",{"2":{"29":1}}],["表示访问服务端接口而不是静态资源",{"2":{"30":1}}],["表示",{"2":{"29":2}}],["表单",{"2":{"15":1}}],["方便一张图片使用在多种场景",{"2":{"83":1}}],["方式",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"31":1,"72":1}}],["方式启动",{"2":{"29":1}}],["方法上",{"0":{"75":1}}],["方法去调用主应用的一些对象方法",{"2":{"49":1}}],["方法第一个参数如果为",{"2":{"42":1}}],["方法",{"2":{"20":1,"49":5}}],["重启生成表",{"2":{"38":1}}],["重启",{"2":{"29":1}}],["重启某个服务",{"2":{"29":1}}],["重写",{"0":{"20":1}}],["重写逻辑",{"2":{"16":2}}],["重写实现",{"0":{"16":1}}],["停止某个服务",{"2":{"29":1}}],["启动",{"2":{"66":1}}],["启动前端服务",{"0":{"66":1}}],["启动文件",{"2":{"65":1}}],["启动后端服务",{"0":{"65":1}}],["启动一个服务",{"2":{"29":1}}],["启动服务",{"2":{"27":1}}],["命令行安装",{"2":{"29":1}}],["31908",{"2":{"65":4}}],["383+08",{"2":{"65":1}}],["382+08",{"2":{"65":1}}],["38",{"2":{"65":4}}],["3306",{"2":{"64":1}}],["32",{"2":{"56":1}}],["32615",{"2":{"49":8}}],["3c64059230d0",{"2":{"56":1}}],["3600s",{"2":{"30":3}}],["3",{"0":{"29":1,"34":1,"50":1,"54":1,"65":1,"101":1},"2":{"56":1,"59":1,"61":2,"65":1,"70":1,"86":1,"87":1}}],["3000s",{"2":{"30":2}}],["302",{"2":{"30":1}}],["301",{"2":{"30":1}}],["304",{"2":{"30":1}}],["30",{"2":{"11":1}}],["27",{"0":{"104":1}}],["25",{"0":{"101":1}}],["256x256",{"2":{"55":1}}],["2b8",{"2":{"64":1}}],["26",{"2":{"56":3}}],["20",{"2":{"81":1}}],["2024",{"0":{"101":1,"102":1,"103":1,"104":1},"2":{"49":8,"65":4}}],["200",{"2":{"30":1}}],["2",{"0":{"28":1,"33":1,"49":1,"53":1,"64":1,"102":1},"2":{"56":5,"59":2,"70":1}}],["到后端服务",{"2":{"27":1}}],["所以需要配置",{"2":{"27":1}}],["所有的",{"2":{"12":1}}],["安全考虑生产环境不会自动初始化数据库",{"2":{"27":1}}],["安装云存储插件",{"2":{"82":1}}],["安装插件将打包好的",{"2":{"58":1}}],["安装插件",{"0":{"58":1}}],["安装插件之后",{"2":{"49":1}}],["安装",{"0":{"48":1},"2":{"28":1}}],["安装依赖",{"0":{"28":1},"2":{"27":1,"66":1}}],["安装宝塔",{"2":{"27":1}}],["恭喜你",{"2":{"27":1,"32":1}}],["反向代理",{"2":{"27":2}}],["编写实体类",{"2":{"38":1}}],["编译打包后端服务",{"2":{"27":1}}],["编码",{"0":{"7":1},"2":{"89":1}}],["上传模式",{"2":{"83":1}}],["上传前后端代码到服务器",{"2":{"27":1}}],["上面只是个例子",{"2":{"54":1}}],["上加了这个注解后",{"2":{"20":1}}],["官方多环境配置文档",{"2":{"27":1}}],["官网文档",{"2":{"21":1}}],["官网",{"2":{"1":1,"28":1}}],["查看服务的输出日志",{"2":{"29":1}}],["查看",{"2":{"27":1}}],["查询该用户所具有的权限并缓存",{"2":{"70":1}}],["查询模式querymodeenum",{"2":{"14":1}}],["查询连表字段",{"2":{"14":1}}],["查询另一张表的字段",{"2":{"14":1}}],["查询配置",{"0":{"14":1}}],["查询列表",{"2":{"13":1}}],["查询条件过滤",{"2":{"13":1,"15":1,"16":1,"80":1}}],["本地上传配置",{"2":{"83":1}}],["本地上传",{"2":{"82":1}}],["本地配置完数据库运行",{"2":{"27":1,"32":1}}],["本部署教程以",{"2":{"26":1}}],["本身",{"2":{"21":1}}],["普通方式",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1}}],["以往的框架已经越来越不能满足现代化的开发需求",{"2":{"89":1}}],["以",{"2":{"64":1}}],["以下包会打入jar",{"2":{"56":1}}],["以下是我们的一些计划",{"2":{"98":1}}],["以下是",{"2":{"31":1}}],["以下教程以",{"2":{"25":1}}],["以宝塔为例",{"0":{"27":1,"32":1}}],["以上包在主应用已经引入",{"2":{"56":1}}],["以上内容来自第三方相关产品的官方文档或第三方平台",{"2":{"22":1}}],["以上是针对entity单表查询方式",{"2":{"14":1}}],["低价云服务器推荐",{"2":{"25":1}}],["🔥",{"2":{"25":1}}],["因为有你们的支持",{"2":{"100":1}}],["因为这可能会造成数据丢失",{"2":{"24":1}}],["因此如果你需要开发",{"2":{"43":1}}],["因此会带来指数级的性能增长",{"2":{"21":1}}],["因此会带来更高的自主性",{"2":{"21":1}}],["切勿在生产环境开启自动建表功能",{"2":{"24":1}}],["并异步进行刷新用户权限",{"2":{"101":1}}],["并可以在init方法中初始化返回字段类型及数据组装函数定义",{"2":{"101":1}}],["并将用户信息存在整个请求过程中的",{"2":{"72":1}}],["并实现",{"2":{"49":1,"56":1}}],["并实现值的插入",{"2":{"44":1}}],["并定义表数据",{"2":{"44":1}}],["并且支持表字段的修改",{"2":{"24":1}}],["并重写了",{"2":{"20":1}}],["节省了大量手动工作",{"2":{"24":1}}],["尤其是开发过程中频繁的新增表及变更表结构",{"2":{"24":1}}],["列出当前的服务",{"2":{"29":1}}],["列的配置",{"2":{"24":1}}],["列表查询",{"2":{"14":1}}],["而不用一味地堆功能",{"2":{"46":1}}],["而不需要关心数据库的表",{"2":{"24":1}}],["而是也非常不灵活",{"2":{"43":1}}],["而是对它做一层封装",{"2":{"20":1}}],["有且只能有一个类被",{"2":{"56":1}}],["有时候开发时的配置和生产环境的配置是不一样的",{"2":{"50":1}}],["有些功能模块上线时",{"2":{"44":1}}],["有了该文件",{"2":{"33":1}}],["有一项重要的能力就是表结构自动维护",{"2":{"24":1}}],["有兴趣的可以关注我们",{"2":{"4":1}}],["用法",{"2":{"81":1}}],["用来判定用户是否有此权限",{"2":{"70":1}}],["用configattribute的集合作为value",{"2":{"70":1}}],["用权限的path作为map的key",{"2":{"70":1}}],["用户是系统操作者",{"2":{"90":1}}],["用户管理",{"2":{"90":1}}],["用户管理模块",{"2":{"40":1}}],["用户",{"2":{"72":1}}],["用户详情",{"2":{"70":1}}],["用户名",{"2":{"72":1}}],["用户名不存在",{"2":{"70":1}}],["用户名已存在",{"2":{"41":1,"42":3}}],["用户登录",{"2":{"70":1}}],["用户id",{"2":{"14":1}}],["用过",{"2":{"24":1}}],["理论上你只需修改一些不兼容的代码就可以正常运行了",{"2":{"23":1}}],["那样工作量太大了",{"2":{"23":1}}],["是",{"2":{"59":1}}],["是插件的配置信息",{"2":{"54":1}}],["是具体的业务框架",{"2":{"23":1}}],["是否支持在微服务项目下进行",{"2":{"22":1}}],["但是每次都是用代码手搓",{"2":{"43":1}}],["但是它为我们提供了改造的可能",{"2":{"23":1}}],["但是",{"2":{"23":1}}],["虽然",{"2":{"23":1}}],["星瑞格数据库",{"2":{"23":1}}],["华为",{"2":{"23":1}}],["华库",{"2":{"23":1}}],["亚马逊",{"2":{"23":1}}],["行云数据库",{"2":{"23":1}}],["瀚高数据库",{"2":{"23":1}}],["神通数据库",{"2":{"23":1}}],["南大通用数据库",{"2":{"23":1}}],["南大通用",{"2":{"23":1}}],["人大金仓数据库",{"2":{"23":1}}],["kyi=",{"2":{"49":1}}],["kingbasees",{"2":{"23":1}}],["keyname",{"2":{"44":2}}],["keyword",{"2":{"14":1}}],["keywordlikefields",{"2":{"14":1}}],["key",{"2":{"9":1,"30":1,"44":1,"45":3,"49":4,"54":1,"55":1,"81":2}}],["虚谷数据库",{"2":{"23":1}}],["达梦数据库",{"2":{"23":1}}],["及以上数据库",{"2":{"23":1}}],["及以下数据库",{"2":{"23":1}}],["及更高性能",{"2":{"22":1}}],["描述",{"2":{"23":1,"81":1}}],["欢迎联系我们",{"2":{"98":1}}],["欢迎提交pr",{"2":{"95":1}}],["欢迎纠正",{"2":{"22":1}}],["欢迎加入我们大家庭一起讨论",{"2":{"2":1}}],["若有错误",{"2":{"22":1}}],["项目中常见的问题",{"2":{"96":1}}],["项目是开源免费",{"2":{"92":1}}],["项目是前后端分离的",{"2":{"63":1}}],["项目启动自动插入数据参考",{"2":{"81":1}}],["项目按照模块化的方式组织",{"2":{"39":1}}],["项目部署",{"0":{"25":1},"1":{"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1}}],["项目",{"2":{"22":1}}],["非低代码",{"2":{"37":1}}],["非",{"2":{"22":1}}],["quot",{"2":{"22":2,"41":2,"42":2}}],["querymodeenum",{"2":{"14":2}}],["querywrapper",{"2":{"14":6,"16":3,"21":1,"22":1}}],["query",{"2":{"11":1,"14":1}}],["和",{"2":{"22":1}}],["和传统的",{"2":{"16":1}}],["比如orderid",{"2":{"81":1}}],["比如替换系统的上传组件",{"2":{"55":1}}],["比如你有一个订单管理的模块",{"2":{"40":1}}],["比如",{"2":{"22":1,"44":1,"49":1}}],["借助其他框架或收费",{"2":{"22":1}}],["字典管理",{"2":{"90":1}}],["字典信息",{"2":{"76":1}}],["字典回写",{"2":{"22":1}}],["字段",{"2":{"55":1,"72":1}}],["字段解释",{"0":{"55":1}}],["字段模块",{"2":{"40":1}}],["字段加密",{"2":{"22":1}}],["字段权限",{"2":{"22":1}}],["字段的",{"2":{"22":1}}],["字段全匹配",{"2":{"14":1}}],["收费",{"2":{"22":4}}],["✔️",{"2":{"22":4}}],["审计",{"2":{"22":1}}],["乐观锁",{"2":{"22":1}}],["乐观锁更新",{"2":{"21":1}}],["未知",{"2":{"22":1}}],["传输",{"2":{"22":1}}],["无论是注解在方法还是类上",{"2":{"76":1}}],["无需授权的",{"2":{"92":1}}],["无需安装",{"2":{"64":1}}],["无需手动通过",{"2":{"42":1}}],["无需额外安装软件",{"2":{"8":1}}],["无法做到全部支持",{"2":{"23":1}}],["无其他第三方依赖",{"2":{"22":1}}],["配置完数据库直接启动",{"2":{"97":1}}],["配置系统菜单",{"2":{"90":1}}],["配置文件位于src",{"2":{"64":1}}],["配置数据库",{"0":{"64":1}}],["配置插件信息",{"2":{"54":1}}],["配置点3",{"2":{"30":1}}],["配置点2",{"2":{"30":1}}],["配置点1",{"2":{"30":1}}],["配置示例",{"0":{"30":1}}],["配置淘宝镜像",{"2":{"28":1}}],["配置",{"0":{"50":1,"69":1},"2":{"22":1,"27":1}}],["复合主键",{"2":{"22":1}}],["生成",{"2":{"38":1}}],["生成前端代码",{"2":{"38":1}}],["生成后端代码",{"2":{"38":1}}],["生成策略",{"2":{"22":1}}],["生成的路由前缀为",{"2":{"18":1}}],["解析设计",{"2":{"22":1}}],["❌",{"2":{"22":30}}],["✅",{"2":{"22":51}}],["功能",{"2":{"97":1}}],["功能几乎跟nodejs",{"2":{"91":1}}],["功能或特点",{"2":{"22":1}}],["功能对比",{"0":{"22":1}}],["拦截器",{"2":{"21":1}}],["没有可初始化的插件",{"2":{"65":1}}],["没有任何的",{"2":{"21":1}}],["没有任何",{"2":{"21":1}}],["没有设置astype",{"2":{"14":1}}],["高性能",{"2":{"21":1}}],["高效的缓存解决方案",{"2":{"8":1}}],["逻辑删除",{"2":{"21":1,"22":1}}],["多租户",{"2":{"22":1}}],["多数据源是否支持",{"2":{"22":2}}],["多数据源支持",{"2":{"22":1}}],["多种",{"2":{"22":1}}],["多张表",{"2":{"22":1}}],["多主键",{"2":{"21":1}}],["多表查询",{"2":{"21":1,"22":3}}],["稳定性越差",{"2":{"21":1}}],["依赖越多",{"2":{"21":1}}],["在线",{"2":{"90":1}}],["在线演示",{"2":{"7":1}}],["在修改数据之前或之后做一些处理",{"2":{"79":1}}],["在项目编译的时候会自动生成这些文件",{"2":{"97":1}}],["在项目根目录下",{"2":{"66":1}}],["在项目启动的时候会去加载该文件",{"2":{"44":1}}],["在后台插件管理页面",{"2":{"58":1}}],["在后台插件管理里可以动态修改",{"2":{"54":1}}],["在执行打包的过程",{"2":{"56":1}}],["在我们脚手架上你可以发现",{"2":{"56":1}}],["在开发过程中如果需要引入第三方类库",{"2":{"56":1}}],["在提供的插件脚手架中已经应用了常用的依赖如",{"2":{"56":1}}],["在插件导入时才能被识别到",{"2":{"56":1}}],["在打包的时候选择要打包的插件",{"2":{"53":1}}],["在加载",{"2":{"49":1}}],["在某个版本需要新增数据的话",{"2":{"44":1}}],["在新增功能模块时",{"2":{"40":1}}],["在",{"2":{"21":1,"40":2,"42":1,"44":1,"57":1,"59":1}}],["在任何一个系统中",{"2":{"21":1}}],["把控性和稳定性",{"2":{"21":1}}],["再无任何第三方依赖",{"2":{"21":1}}],["除了",{"2":{"21":1,"22":1,"23":1}}],["更新",{"0":{"100":1},"1":{"101":1,"102":1,"103":1,"104":1}}],["更灵活",{"2":{"21":1}}],["更轻量",{"2":{"21":1,"22":2}}],["更加强大的",{"2":{"21":1}}],["更加简洁",{"2":{"12":1}}],["详细用法请查看",{"2":{"21":1}}],["集成了比",{"2":{"21":1}}],["根据",{"2":{"24":1}}],["根据一定规则生成",{"2":{"20":1}}],["根据列表查询单个信息",{"2":{"13":1}}],["该功能主要完成系统用户配置",{"2":{"90":1}}],["该文件是前端自动扫描后端接口生成的",{"2":{"33":1}}],["该类继承了",{"2":{"20":1}}],["该父类已经实现了以下六个基础方法",{"2":{"12":1}}],["自动编码功能",{"2":{"103":1}}],["自动生成前端页面",{"2":{"38":1}}],["自动映射成数据库的表结构",{"2":{"24":1}}],["自动建表",{"0":{"24":1}}],["自带的注解",{"2":{"20":1}}],["自定义路由注解",{"0":{"19":1}}],["自定义类型默认为",{"2":{"14":1}}],["自定义场景主要使用在关联表查询插件",{"2":{"14":1}}],["自定义查询模式",{"2":{"14":1}}],["自定义的查询方式",{"2":{"14":1}}],["转成小写替换掉",{"2":{"18":1}}],["与前端紧密结合",{"2":{"82":1}}],["与",{"2":{"18":1,"68":1}}],["x26",{"2":{"64":2}}],["xml",{"2":{"40":1,"56":2,"57":2}}],["x",{"2":{"30":7,"49":1,"87":1,"104":1}}],["xcloud",{"2":{"23":1}}],["xugu",{"2":{"23":1}}],["xxxxx",{"2":{"50":2}}],["xxx",{"2":{"18":2,"49":2,"54":2}}],["x3c",{"2":{"13":1,"14":4,"15":1,"16":5,"20":1,"42":2,"49":1,"56":81,"57":4,"70":13,"80":1,"81":1}}],["模块化",{"2":{"59":1}}],["模块包",{"2":{"40":1}}],["模块名和",{"2":{"18":1}}],["模块名",{"2":{"18":2}}],["模块目录",{"2":{"18":1}}],["│─",{"2":{"53":1}}],["│",{"2":{"18":17,"40":36,"53":12}}],["原理参考美团点评分布式id",{"2":{"81":1}}],["原理",{"0":{"17":1,"70":1},"1":{"18":1,"19":1,"20":1}}],["原生",{"2":{"9":1}}],["接口的请求入参日志",{"2":{"90":1}}],["接口",{"2":{"18":1,"33":1}}],["接口路由规则",{"0":{"18":1}}],["接口到前端页面的一键生成",{"2":{"7":1,"37":1}}],["接下来我们看看实现的原理",{"2":{"16":1}}],["对系统中经常使用的一些较为固定的数据进行维护",{"2":{"90":1}}],["对系统动态配置常用参数",{"2":{"90":1}}],["对应实体",{"2":{"79":2}}],["对应插件内的方法",{"2":{"49":1}}],["对应请求参数中的",{"2":{"14":1}}],["对应请求参数中同名参数",{"2":{"14":1}}],["对",{"2":{"22":1}}],["对比一下是简化了不少",{"2":{"16":1}}],["进行重写",{"2":{"16":1}}],["中获得",{"2":{"72":1}}],["中实现动态加载",{"2":{"59":1}}],["中的",{"2":{"57":1}}],["中排除掉不打入jar",{"2":{"56":2}}],["中重写方法",{"2":{"16":1}}],["中加非存储数据库的字段",{"2":{"14":1}}],["rawpassword",{"2":{"70":4}}],["rich",{"2":{"44":1}}],["runtimeexception",{"2":{"56":1}}],["run",{"2":{"34":2,"44":1,"66":1}}],["roleids",{"2":{"70":3,"72":1}}],["root",{"2":{"29":1,"30":1,"64":1}}],["row",{"2":{"22":1}}],["rpc",{"2":{"22":1}}],["r",{"2":{"15":2,"16":1,"42":17,"72":1,"75":2,"83":4}}],["refreshtoken可以当token使用问题",{"2":{"102":1}}],["refreshexpire",{"2":{"69":1}}],["replace",{"2":{"70":1}}],["replaceall",{"2":{"70":1}}],["record",{"2":{"67":1}}],["recycle",{"2":{"40":1}}],["reentrantlock",{"2":{"45":1}}],["required",{"2":{"83":1}}],["requiredargsconstructor",{"2":{"44":1,"45":1,"49":2,"83":1}}],["requirenonnull",{"2":{"45":1}}],["requestpart",{"2":{"83":1}}],["requestparam",{"2":{"49":3}}],["requestparams",{"2":{"13":1,"14":2,"15":4,"16":5,"42":4,"67":1,"72":2,"79":4,"80":1}}],["requestmatchers",{"2":{"70":1}}],["requestmappinginfo",{"2":{"20":2}}],["requestmappinghandlermapping",{"2":{"20":2}}],["requestmapping",{"2":{"19":2,"49":1}}],["requestcontextholder",{"2":{"45":1}}],["requestattribute",{"2":{"15":1,"72":1}}],["request",{"2":{"13":1,"14":2,"15":1,"16":1,"45":2,"67":3,"70":2,"80":1,"83":2}}],["requests",{"2":{"0":1}}],["remark",{"2":{"44":2}}],["remote",{"2":{"30":2}}],["rewrite",{"2":{"30":1}}],["readme",{"2":{"54":2,"55":1}}],["readbytes",{"2":{"49":1}}],["read",{"2":{"30":2}}],["real",{"2":{"30":2}}],["registry",{"2":{"28":2}}],["redirect",{"2":{"30":1}}],["redis",{"2":{"8":6,"35":1}}],["redshift",{"2":{"23":2}}],["relationonetomany",{"2":{"14":2}}],["relations",{"2":{"14":2}}],["response",{"2":{"70":2}}],["responsebody",{"2":{"49":2}}],["restaccessdeniedhandler",{"2":{"70":3}}],["restart",{"2":{"29":2}}],["restcontrolleradvice",{"2":{"42":1}}],["result",{"2":{"11":3,"49":8}}],["resources",{"2":{"40":1,"44":1,"50":2,"53":1,"64":1}}],["resource",{"2":{"10":1,"67":1,"70":10}}],["return",{"2":{"9":1,"10":1,"11":3,"15":1,"16":2,"20":1,"42":8,"45":1,"49":2,"56":1,"70":13,"75":1,"83":2}}],["将由以下这个类实现自动配置模块路由",{"2":{"20":1}}],["将",{"2":{"15":1}}],["gt",{"2":{"61":3,"64":1,"86":3,"97":3}}],["grantedauthority>",{"2":{"70":1}}],["graalvm",{"2":{"61":1,"86":1}}],["groupid>org",{"2":{"56":1}}],["groupid>com",{"2":{"56":1}}],["groupid>cn",{"2":{"56":1}}],["groupid>",{"2":{"56":3}}],["greenplum",{"2":{"23":2}}],["gitcode",{"2":{"93":1,"94":1}}],["gitee",{"2":{"52":1,"93":1,"94":1,"95":1}}],["github",{"2":{"52":1,"93":1,"94":1,"95":1}}],["g",{"2":{"28":1,"29":1}}],["goal>",{"2":{"56":1}}],["goal>shade",{"2":{"56":1}}],["goals>",{"2":{"56":2}}],["goldilocks",{"2":{"23":2}}],["goodslist",{"2":{"14":1}}],["gbase",{"2":{"23":3}}],["gauss",{"2":{"23":2}}],["getbytes",{"2":{"70":2}}],["geturls",{"2":{"70":1}}],["getusername",{"2":{"42":4,"70":3}}],["getsecureobjectclass",{"2":{"70":1}}],["getstatus",{"2":{"70":2}}],["getstr",{"2":{"15":1}}],["getroles",{"2":{"70":1}}],["getresponse",{"2":{"70":1}}],["getresourceasstream",{"2":{"49":1}}],["getrequesturl",{"2":{"70":1}}],["getrequesturi",{"2":{"45":1}}],["getrequest",{"2":{"45":1,"70":1}}],["getrequestattributes",{"2":{"45":1}}],["getdepartmentidsbyroleids",{"2":{"70":1}}],["getperms",{"2":{"70":1}}],["getparent",{"2":{"49":1}}],["getparentresource",{"2":{"49":2}}],["getpasswordv",{"2":{"70":1}}],["getpassword",{"2":{"42":2,"70":1}}],["getapp",{"2":{"75":1}}],["getadminuserinfo",{"2":{"72":1}}],["getadminusername",{"2":{"72":1}}],["getauthenticationmanager",{"2":{"70":1}}],["getallconfigattributes",{"2":{"70":1}}],["getallperms",{"2":{"70":1}}],["getattributes",{"2":{"70":1}}],["getattribute",{"2":{"67":1}}],["getabsolutepath",{"2":{"59":1}}],["getannotationsbytype",{"2":{"20":1}}],["getinstance",{"2":{"49":1}}],["getid",{"2":{"42":2,"70":6}}],["getone",{"2":{"42":2,"70":1}}],["get等请求方式是否正确",{"2":{"42":1}}],["getmode",{"2":{"83":1}}],["getmapping",{"2":{"72":1,"75":1,"83":1}}],["getmappingformethod",{"0":{"20":1},"2":{"20":3}}],["getmessage",{"2":{"42":7}}],["getchain",{"2":{"70":1}}],["getcontextclassloader",{"2":{"59":1}}],["getcode",{"2":{"42":1}}],["getclassloader",{"2":{"49":1}}],["getclass",{"2":{"49":1}}],["getcurrentuserid",{"2":{"14":1,"45":1,"72":1,"73":1}}],["getter",{"2":{"14":1}}],["getnum",{"2":{"11":1}}],["getlogistics",{"2":{"11":1}}],["get",{"2":{"10":1,"11":2,"13":1,"14":2,"49":2,"56":1,"70":1}}],["订单id",{"2":{"81":1}}],["订单商品列表",{"2":{"14":1}}],["订单信息",{"2":{"14":1}}],["订单产品列表也一并查出",{"2":{"14":1}}],["关联查询用法参考",{"2":{"14":1}}],["如文件上传",{"2":{"103":1}}],["如支付",{"2":{"89":1}}],["如不占用主服务器带宽",{"2":{"83":1}}],["如阿里云",{"2":{"82":1}}],["如我们这边示例使用到了中文转拼音",{"2":{"56":1}}],["如",{"2":{"35":1,"82":1,"83":1}}],["如下防重复提交",{"2":{"45":1}}],["如下表格所示",{"2":{"23":1}}],["如下面这个订单查询",{"2":{"14":1}}],["如果方便请点下",{"2":{"100":1}}],["如果你有更好的建议",{"2":{"98":1}}],["如果你是自动化部署",{"2":{"33":1}}],["如果文档有缺失",{"2":{"95":1}}],["如果不在权限表中则放行",{"2":{"70":1}}],["如果不满足需求",{"2":{"16":1}}],["如果在权限表中",{"2":{"70":1}}],["如果在原文件直接修改将不生效",{"2":{"44":1}}],["如果项目中启用了redis",{"2":{"45":1}}],["如果同一张表历史已经有初始化过数据",{"2":{"44":1}}],["如果没效",{"2":{"30":1}}],["如果一切正常",{"2":{"27":1}}],["如果我们有需要连表查询",{"2":{"14":1}}],["如果我们的项目对你有用",{"2":{"2":1}}],["web",{"2":{"49":4}}],["wrappers",{"2":{"42":2,"70":1}}],["without",{"2":{"56":1}}],["with",{"2":{"14":1}}],["wuliu",{"2":{"11":1}}],["还可以对图片进行各种如压缩",{"2":{"83":1}}],["还可以了解到一些前沿的技术",{"2":{"4":1}}],["还有",{"2":{"14":1}}],["也可以注解在类上",{"2":{"76":1}}],["也可以使用别人开发的插件",{"2":{"46":1}}],["也可以自己定义vo",{"2":{"14":1}}],["也希望广大开发者粉丝帮助完善文档",{"2":{"0":1}}],["实际开发中可以根据自己的需求来配置",{"2":{"54":1}}],["实现功能可插拔",{"2":{"90":1}}],["实现应用程序的快速扩展和升级",{"2":{"59":1}}],["实现方法",{"2":{"59":1}}],["实现动态加载的技术方案",{"2":{"59":1}}],["实现原理",{"0":{"59":1}}],["实现",{"2":{"45":1}}],["实现简单功能从",{"2":{"7":1,"37":1}}],["实例数量",{"2":{"29":1}}],["实体需以",{"2":{"44":1}}],["实体中",{"2":{"14":1}}],["实体",{"2":{"14":1,"24":1}}],["默认集成springdoc",{"2":{"80":1}}],["默认忽略app端接口",{"2":{"67":1}}],["默认账户密码",{"2":{"66":1}}],["默认的日志位置",{"2":{"29":1}}],["默认实现了通用的六个接口方法",{"2":{"16":1}}],["默认实现了两种缓存",{"2":{"8":1}}],["默认为map",{"2":{"14":1}}],["默认为entity",{"2":{"14":1}}],["默认转成map",{"2":{"14":1}}],["连表查询",{"2":{"14":1}}],["utf",{"2":{"49":1}}],["util",{"2":{"49":4}}],["uniindex",{"2":{"81":1}}],["union",{"2":{"22":2}}],["unlock",{"2":{"45":1}}],["ui",{"2":{"38":1,"80":1,"88":1}}],["uploadmode",{"2":{"83":2}}],["upload",{"2":{"55":1,"83":3}}],["upgrade",{"2":{"30":6}}],["updates",{"2":{"49":1}}],["update",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"76":1,"80":1}}],["uri$is",{"2":{"30":1}}],["urlclassloader",{"2":{"59":2}}],["url",{"2":{"15":1,"59":3,"64":1,"70":2,"83":1}}],["uxdb",{"2":{"23":1}}],["useunicode=true",{"2":{"64":1}}],["useplugin",{"2":{"49":2}}],["usecache",{"2":{"49":2}}],["usestatus",{"2":{"14":1}}],["userinfo",{"2":{"70":1,"72":2}}],["userid",{"2":{"14":1,"72":2,"73":1}}],["userdetails",{"2":{"70":2}}],["userdetailsservice",{"2":{"70":4}}],["usernamepasswordauthenticationfilter",{"2":{"70":1}}],["usernamenotfoundexception",{"2":{"70":2}}],["username",{"2":{"64":1,"70":2,"72":2}}],["user",{"2":{"14":5,"15":2,"40":1}}],["element",{"2":{"88":1}}],["else",{"2":{"49":1}}],["encodedpassword",{"2":{"70":2}}],["encode",{"2":{"70":1}}],["entrypointunauthorizedhandler",{"2":{"70":3}}],["entity",{"2":{"14":8,"22":2,"40":2,"42":12,"44":1}}],["enablewebsecurity",{"2":{"70":1}}],["epsevent",{"2":{"65":1}}],["eps",{"2":{"65":2,"75":2}}],["error",{"2":{"42":10}}],["e",{"2":{"42":19,"56":2}}],["expression",{"2":{"56":2}}],["expire",{"2":{"69":1}}],["expiretime",{"2":{"45":1}}],["expires",{"2":{"30":1}}],["excluding",{"2":{"56":14}}],["exclude>cn",{"2":{"56":2}}],["exclude>jakarta",{"2":{"56":1}}],["exclude>io",{"2":{"56":4}}],["exclude>",{"2":{"56":16}}],["exclude>org",{"2":{"56":9}}],["excludes>",{"2":{"56":2}}],["exceptionhandling",{"2":{"70":1}}],["exceptionhandler",{"2":{"42":6}}],["exception",{"2":{"42":2,"56":1,"70":2}}],["execution",{"2":{"97":1}}],["execution>",{"2":{"56":2}}],["executions>",{"2":{"56":2}}],["exec",{"2":{"49":5}}],["extern",{"2":{"49":1}}],["extends",{"2":{"13":1,"14":3,"15":1,"16":2,"20":1,"49":1,"56":1,"70":1,"80":1,"81":1}}],["extractedmenu",{"2":{"44":1}}],["extracteddb",{"2":{"44":1}}],["equals",{"2":{"70":1}}],["eq",{"2":{"14":2,"42":2,"70":2}}],["针对这种场景",{"2":{"14":1}}],["zh",{"2":{"14":3}}],["false",{"2":{"83":1}}],["favicon",{"2":{"67":1}}],["frameoptionsconfig",{"2":{"70":1}}],["frameoptions",{"2":{"70":1}}],["front",{"2":{"30":1}}],["from",{"2":{"14":1,"22":1,"56":13}}],["form",{"2":{"83":1}}],["format",{"2":{"56":7}}],["for",{"2":{"30":4,"65":1,"70":2}}],["forwarded",{"2":{"30":4}}],["foreach",{"2":{"14":1}}],["fluent",{"2":{"22":1}}],["flex",{"2":{"14":3,"21":2,"22":1,"23":2,"87":1,"97":1}}],["fi",{"2":{"70":7}}],["filterconfig",{"2":{"70":2}}],["filterchain",{"2":{"67":3,"70":1}}],["filterinvocation",{"2":{"70":5}}],["filterinvocationsecuritymetadatasource",{"2":{"70":2}}],["filter",{"2":{"67":1,"70":1}}],["fileuploadstrategyfactory",{"2":{"83":4}}],["filepath",{"2":{"50":1,"83":1}}],["files",{"2":{"30":1,"83":2}}],["file",{"2":{"8":1,"59":2,"83":2}}],["finally",{"2":{"45":1,"70":1}}],["final",{"2":{"45":1,"81":1,"83":1}}],["firebird",{"2":{"23":2}}],["fieldeq",{"2":{"14":1}}],["具体看",{"2":{"14":2}}],["返回给",{"2":{"20":1}}],["返回字段",{"2":{"14":1}}],["返回哪些字段等",{"2":{"13":1,"15":1,"16":1,"80":1}}],["需要提取初始化到上面那个",{"2":{"81":1}}],["需要分别拉取前后端代码到本地",{"2":{"63":1}}],["需要初始化一些数据",{"2":{"44":1}}],["需要确保前端和后端在本地运行过一次",{"2":{"33":1}}],["需要通过下面的",{"2":{"14":1}}],["需要组装数据",{"2":{"14":1}}],["需要返回的字段分布在各个表里",{"2":{"14":1}}],["需要模糊查询的字段",{"2":{"14":1}}],["需安装",{"2":{"8":1}}],["个接口",{"2":{"13":1}}],["604800",{"2":{"69":1}}],["6",{"2":{"13":1,"56":12,"61":1,"86":1}}],["6379",{"2":{"8":1}}],["等包",{"2":{"40":1}}],["等待数据库初始化完成",{"2":{"27":1,"32":1}}],["等等",{"2":{"22":1}}],["等参数封装在了一个",{"2":{"15":1}}],["等",{"2":{"13":1,"22":1,"27":1,"38":1,"56":2}}],["删除某个服务",{"2":{"29":1}}],["删除",{"2":{"13":1,"90":1}}],["新增后台扩展插件",{"2":{"103":1}}],["新增一个",{"2":{"40":1}}],["新增",{"2":{"13":1,"101":4,"102":3,"103":1}}],["这将会给我们带来更多的动力",{"2":{"100":1}}],["这些方式都可以解决这个问题",{"2":{"97":1}}],["这边使用到了",{"2":{"56":1}}],["这会使得打包结果很臃肿",{"2":{"56":1}}],["这个可能会给你带来巨大的帮助",{"2":{"43":1}}],["这让我们可以可以专注于业务逻辑和实体",{"2":{"24":1}}],["这样就需要在entity加上另一张表的的字段",{"2":{"14":1}}],["这样就默认实现了以下六个接口",{"2":{"13":1}}],["这是",{"2":{"0":1}}],["v7",{"0":{"101":1,"102":1,"103":1,"104":1},"2":{"49":1}}],["vue3",{"2":{"88":1}}],["vue",{"2":{"33":1,"34":2,"94":3}}],["verify",{"2":{"56":1}}],["version>3",{"2":{"56":1}}],["version>2",{"2":{"56":1}}],["version>",{"2":{"56":3}}],["version>5",{"2":{"56":1}}],["version",{"2":{"30":2,"54":1,"55":1}}],["vertica",{"2":{"23":2}}],["valid",{"2":{"30":1}}],["values",{"2":{"49":1}}],["value",{"2":{"13":1,"14":2,"15":1,"16":1,"19":1,"44":1,"76":1,"80":1,"81":1,"83":4}}],["void",{"2":{"13":1,"14":2,"15":1,"16":1,"38":1,"44":1,"49":3,"67":1,"70":6,"79":2,"80":1}}],["n",{"2":{"90":1}}],["nio",{"2":{"49":5}}],["next",{"2":{"81":1}}],["net",{"2":{"56":4}}],["network",{"2":{"32":1,"33":2,"34":2}}],["new",{"2":{"38":2,"42":2,"56":2,"59":4,"70":12}}],["npm",{"2":{"29":1,"66":2}}],["npmmirror",{"2":{"28":1}}],["nginx",{"0":{"30":1},"2":{"27":3}}],["now",{"2":{"49":2}}],["norepeatsubmit",{"2":{"45":4}}],["norepeatsubmitaspect",{"2":{"45":1}}],["no",{"2":{"30":1}}],["node",{"2":{"26":1}}],["nodejs",{"2":{"25":1,"27":1}}],["notnull",{"2":{"14":1,"81":3}}],["name>",{"2":{"57":1}}],["name>my",{"2":{"57":1}}],["name",{"2":{"13":1,"14":3,"15":1,"16":1,"19":1,"29":1,"34":2,"44":2,"54":1,"55":1,"64":1,"80":1,"83":1}}],["null",{"2":{"11":1,"41":1,"42":2,"44":2,"49":1,"56":1,"70":3}}],["number",{"2":{"29":1}}],["num",{"2":{"11":4}}],["示例",{"0":{"13":1}}],["使得代码更加清晰",{"2":{"59":1}}],["使得可以在插件中获取主应用中的",{"2":{"49":1}}],["使得",{"2":{"12":1}}],["使用cool",{"2":{"49":1}}],["使用缓存",{"2":{"49":1}}],["使用插件",{"0":{"47":1},"1":{"48":1,"49":1,"50":1}}],["使用了关联查询",{"2":{"14":1}}],["使用",{"0":{"9":1,"83":1}}],["length",{"2":{"81":1}}],["leafallocentity>",{"2":{"81":1}}],["leafallocentity",{"2":{"81":1}}],["leaf",{"2":{"81":2}}],["lealone",{"2":{"23":2}}],["left",{"2":{"22":1}}],["leftjoin",{"2":{"14":2}}],["loaduserbyusername",{"2":{"70":1}}],["loadresourcedefine",{"2":{"70":2}}],["local",{"2":{"64":1,"83":2}}],["location",{"2":{"30":3}}],["lombok",{"2":{"49":2,"56":2}}],["logurls",{"2":{"67":1}}],["logo",{"2":{"54":2,"55":2}}],["log`",{"2":{"49":1}}],["log",{"2":{"42":5,"44":1}}],["logs",{"2":{"29":3}}],["logistics",{"2":{"11":2}}],["long",{"2":{"14":1,"42":2,"70":2,"72":4,"81":2}}],["list和page支持关联查询",{"2":{"101":1}}],["list",{"2":{"12":1,"13":1,"14":4,"15":1,"16":1,"29":1,"70":1,"76":1,"80":1}}],["jwtauthenticationtokenfilter",{"2":{"70":3}}],["jwtsecurityconfig",{"2":{"70":1}}],["jwtuser",{"2":{"70":6}}],["jwtuserdetailsserviceimpl",{"2":{"70":1}}],["jwt",{"2":{"68":1,"70":1}}],["jdbc",{"2":{"64":2}}],["jdk",{"2":{"61":1,"86":1}}],["jcl",{"2":{"56":2}}],["jakarta",{"2":{"56":3}}],["jarfilepath",{"2":{"59":1}}],["jarurl",{"2":{"59":2}}],["jar",{"2":{"49":1,"56":31,"59":9}}],["javalong",{"2":{"73":1}}],["javaurl",{"2":{"59":1}}],["javapackage",{"2":{"44":1,"49":2,"56":1}}],["javapublic",{"2":{"14":1,"19":1,"20":1,"38":1,"42":2,"67":1}}],["java",{"2":{"0":1,"1":1,"8":1,"9":1,"10":1,"11":1,"13":1,"14":2,"15":1,"16":2,"18":2,"24":1,"25":1,"38":2,"40":1,"42":1,"45":1,"49":10,"52":2,"53":2,"56":2,"57":1,"59":1,"61":1,"65":6,"70":4,"72":3,"75":1,"76":1,"79":2,"80":1,"81":1,"83":1,"86":1,"93":3,"95":2}}],["js",{"2":{"29":1,"67":1}}],["json参数",{"2":{"44":1}}],["json",{"2":{"44":7,"50":1,"53":1,"54":2,"56":2,"66":1,"81":1}}],["json也提交到代码仓库",{"2":{"33":1}}],["json文件",{"2":{"33":1,"44":1}}],["jsonobject",{"2":{"13":1,"14":2,"15":3,"16":3,"42":2,"67":1,"72":1,"79":2,"80":1}}],["jsonutil",{"2":{"11":1,"14":1}}],["jpa",{"2":{"24":2}}],["joinpoint",{"2":{"45":2}}],["join",{"2":{"22":2}}],[">",{"2":{"11":1,"14":2,"20":1,"56":5,"70":10}}],["物流单号",{"2":{"11":1}}],["通过在方法上加tokenignore注解可以的接口不会进行",{"2":{"75":1}}],["通过动态加载",{"2":{"59":2}}],["通过反射实现",{"2":{"49":1}}],["通过拖动配置",{"2":{"43":1}}],["通过",{"2":{"42":1,"59":1}}],["通过管理后台菜单管理的快速创建即可生成",{"2":{"38":1}}],["通过独特的架构",{"2":{"21":1}}],["通过这种方式",{"2":{"14":1}}],["通过coolcache缓存模板",{"0":{"11":1}}],["通过微调大模型学习框架特有写法",{"2":{"7":1,"37":1}}],["我是插件",{"2":{"56":1}}],["我们还引入了其他包",{"2":{"56":1}}],["我们还可以通过自定义方言的方式",{"2":{"23":1}}],["我们提供了插件脚手架",{"2":{"52":1}}],["我们提供了插件系统",{"2":{"46":1}}],["我们可以在运行时动态地加载外部的",{"2":{"59":1}}],["我们可以通过配置文件来实现",{"2":{"50":1}}],["我们可以使用",{"2":{"14":1}}],["我们正在适配",{"2":{"23":1}}],["我们不直接使用",{"2":{"20":1}}],["我们会尽力完善文档",{"2":{"0":1}}],["我被缓存了",{"2":{"9":1}}],["我被调用了",{"2":{"9":1}}],["ico",{"2":{"67":1}}],["img",{"2":{"56":1}}],["import",{"2":{"49":14,"56":6}}],["impala",{"2":{"23":2}}],["implements",{"2":{"9":1,"10":1,"16":1,"44":1,"67":1,"70":3}}],["ioexception",{"2":{"67":1,"70":2}}],["ioutil",{"2":{"49":2}}],["io",{"2":{"49":2,"56":2}}],["illegalargumentexception",{"2":{"42":2,"70":2}}],["ip",{"2":{"30":2}}],["i",{"2":{"29":2}}],["ignoredurlsproperties",{"2":{"70":3}}],["ignored",{"2":{"67":1}}],["ignore",{"2":{"14":2}}],["is",{"2":{"65":1}}],["isnotempty",{"2":{"14":1}}],["isempty",{"2":{"11":1,"49":1,"70":1}}],["if",{"2":{"11":1,"14":1,"42":2,"49":1,"70":2}}],["in",{"2":{"56":1}}],["including",{"2":{"56":2}}],["inputstream",{"2":{"49":4}}],["into",{"2":{"49":1}}],["interceptorstatustoken",{"2":{"70":1}}],["interface",{"2":{"19":1}}],["integer",{"2":{"10":1,"72":1,"81":1}}],["insert",{"2":{"49":4}}],["instances",{"2":{"29":1}}],["install",{"2":{"28":1,"29":1,"66":1}}],["inner",{"2":{"22":1}}],["index",{"2":{"14":1,"30":1,"80":1}}],["init",{"2":{"13":1,"14":2,"15":1,"16":1,"38":1,"65":1,"70":1,"80":1}}],["informix",{"2":{"23":2}}],["info",{"2":{"12":1,"13":1,"14":5,"15":1,"16":1,"18":2,"20":5,"44":1,"49":5,"56":15,"65":4,"76":1,"80":1}}],["invokeotherplugin",{"2":{"49":1}}],["invokemain",{"2":{"49":3,"56":1}}],["invokemethod",{"2":{"49":4}}],["invokeplugin",{"2":{"49":11,"56":2}}],["invoke",{"2":{"11":4,"70":2}}],["idea",{"2":{"97":1}}],["idgenservice",{"2":{"81":3}}],["id",{"2":{"9":1,"10":1,"14":4,"22":1,"72":1,"81":1}}],["obtainsecuritymetadatasource",{"2":{"70":1}}],["observation",{"2":{"56":3}}],["objutil",{"2":{"11":1,"14":1,"49":2}}],["objectutil",{"2":{"70":1}}],["object中包含用户请求request",{"2":{"70":1}}],["objects",{"2":{"45":1}}],["object",{"2":{"9":1,"10":1,"11":2,"16":1,"45":1,"49":4,"56":2,"70":1}}],["ossaccesskeyid=ltai5t8xtpd99yzsjqcc",{"2":{"49":1}}],["oss",{"2":{"35":1,"49":3,"82":1,"83":1}}],["oscar",{"2":{"23":1}}],["ofmillis",{"2":{"45":1}}],["ofminutes",{"2":{"11":1}}],["official",{"2":{"52":2,"93":2,"94":2,"95":2}}],["off",{"2":{"30":1}}],["operation",{"2":{"83":2}}],["openapi",{"2":{"65":1}}],["opengauss",{"2":{"23":2}}],["option",{"2":{"16":2}}],["oceanbase",{"2":{"23":2}}],["org",{"2":{"49":5,"56":8}}],["oracle12c",{"2":{"23":2}}],["oracle11g",{"2":{"23":1}}],["oracle",{"2":{"23":1}}],["ordergoodsentity>",{"2":{"14":1}}],["order",{"2":{"14":1,"40":2}}],["orderid",{"2":{"11":1,"14":1,"81":4}}],["orderinfoentity>",{"2":{"14":1}}],["orderinfoentity",{"2":{"11":1,"14":1}}],["ok",{"2":{"15":1,"75":1,"83":2}}],["o",{"2":{"14":2,"65":1,"70":3}}],["one",{"2":{"30":1}}],["on",{"2":{"14":1}}],["out",{"2":{"9":1,"15":1,"49":5,"56":1}}],["override",{"2":{"9":1,"10":1,"13":1,"14":1,"15":1,"16":3,"20":1,"44":1,"49":1,"56":1,"67":1,"70":11,"79":2,"80":1}}],["multipartfile",{"2":{"83":1}}],["multipart",{"2":{"83":1}}],["mutate",{"2":{"20":1}}],["mode",{"2":{"83":1}}],["modifyafter",{"2":{"79":1}}],["modifyenum",{"2":{"79":2}}],["modifybefore",{"2":{"79":1}}],["modules",{"2":{"18":1,"40":3}}],["ms",{"2":{"65":1}}],["mvn",{"2":{"57":1}}],["micrometer",{"2":{"56":12}}],["midway",{"2":{"27":1,"33":1,"34":2}}],["md",{"2":{"54":1}}],["md5digestashex",{"2":{"70":2}}],["md5",{"2":{"42":2}}],["m",{"2":{"49":6}}],["mediatype",{"2":{"83":2}}],["message",{"2":{"42":1}}],["method",{"2":{"20":3}}],["methodname",{"2":{"9":1,"49":3}}],["myaccessdecisionmanager",{"2":{"70":3}}],["myfiltersecurityinterceptor",{"2":{"70":1}}],["mysecuritymetadatasource",{"2":{"70":1}}],["mysql",{"2":{"23":3,"27":1,"61":1,"64":5,"86":1}}],["my",{"2":{"57":1}}],["mycoolplugintest",{"2":{"53":1}}],["mycoolplugin",{"2":{"49":1,"53":1}}],["mybatis",{"2":{"14":3,"21":5,"22":4,"23":2,"87":1}}],["matches",{"2":{"70":1}}],["maven",{"2":{"56":7,"61":1,"86":1,"97":1}}],["main",{"2":{"38":1,"40":1,"53":1,"65":3}}],["maxid",{"2":{"81":1}}],["max",{"2":{"29":2,"81":1}}],["mariadb",{"2":{"23":2}}],["market",{"2":{"14":7}}],["marketcouponuserentity>",{"2":{"14":1}}],["marketcouponuserservice",{"2":{"14":1}}],["mapper",{"2":{"38":1,"40":4}}],["map",{"2":{"14":9,"70":6}}],["manes",{"2":{"8":1}}],["+",{"2":{"9":2,"11":3,"22":1,"45":2,"49":2,"56":3,"59":2,"70":5}}],["tip",{"2":{"82":1}}],["time`",{"2":{"49":2}}],["timeout",{"2":{"30":6}}],["this",{"2":{"70":1}}],["thread",{"2":{"59":1,"65":1}}],["throwable",{"2":{"45":1}}],["throws",{"2":{"45":1,"67":1,"70":8}}],["throw",{"2":{"42":1,"56":1,"70":1}}],["the",{"2":{"56":14}}],["team",{"2":{"52":2,"93":3,"94":3,"95":2}}],["testplugin",{"2":{"49":2}}],["test",{"2":{"9":1,"10":1,"15":2,"30":1,"38":1,"49":2,"53":1}}],["txt",{"2":{"49":2,"50":2}}],["t",{"2":{"33":2,"79":6}}],["tsupstream",{"2":{"30":1}}],["ts",{"2":{"27":1}}],["tdengine",{"2":{"23":2}}],["trylock",{"2":{"45":1}}],["try",{"2":{"30":1,"45":1,"56":1,"70":1}}],["transparent",{"2":{"30":1}}],["transactiontemplate",{"2":{"22":1}}],["transactional",{"2":{"22":1}}],["transform",{"2":{"14":2}}],["true",{"2":{"14":2,"42":1,"70":1,"81":3}}],["toarray",{"2":{"70":1}}],["tokenignore",{"2":{"75":1,"76":1}}],["token",{"0":{"74":1},"1":{"75":1,"76":1},"2":{"69":2,"70":2,"72":1,"74":1,"75":1}}],["tohanyupinyinstring",{"2":{"56":1}}],["tone",{"2":{"56":1}}],["tostring",{"2":{"14":1}}],["tobean",{"2":{"14":1}}],["task",{"2":{"40":1,"49":3,"65":1}}],["target",{"2":{"57":2}}],["targetfield",{"2":{"14":1}}],["targetclass",{"2":{"9":1}}],["table",{"2":{"14":1,"24":1,"81":1,"87":1}}],["tag",{"2":{"13":1,"14":1,"15":1,"16":1,"80":1,"83":1}}],["typescript",{"2":{"88":1}}],["typehandler",{"2":{"22":1}}],["type",{"2":{"8":2,"79":4}}],["daoauthenticationprovider",{"2":{"70":2}}],["datasource",{"2":{"64":1}}],["database",{"2":{"8":1}}],["data",{"2":{"8":1,"40":1,"44":2,"83":1}}],["driver",{"2":{"64":2}}],["dynamicjarclassloader",{"2":{"59":3}}],["digestutils",{"2":{"70":2}}],["digesthex",{"2":{"42":2}}],["disable",{"2":{"70":2}}],["dict",{"2":{"40":1}}],["duplicatekeyexception",{"2":{"42":2}}],["duration",{"2":{"11":1,"45":1,"65":1}}],["docs",{"2":{"95":2}}],["docker",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"31":3,"32":2,"33":3,"34":2,"35":1}}],["dofilter",{"2":{"67":2,"70":2}}],["doris",{"2":{"23":2}}],["dm",{"2":{"23":1}}],["dbfromjsoninit",{"2":{"44":1}}],["db2",{"2":{"23":2}}],["db",{"2":{"22":1,"40":1,"44":2}}],["destroy",{"2":{"70":1}}],["description",{"2":{"13":1,"14":1,"15":1,"16":1,"54":1,"55":1,"80":1,"81":2,"83":2}}],["deployment",{"2":{"97":1}}],["department",{"2":{"70":1}}],["departmentids",{"2":{"70":2}}],["dependency>",{"2":{"56":4}}],["dev",{"2":{"66":1}}],["debug",{"2":{"49":3}}],["derby",{"2":{"23":2}}],["defaultvalue",{"2":{"81":2}}],["default",{"2":{"19":3,"56":1}}],["democoolplugin",{"2":{"56":1}}],["democacheservice",{"2":{"9":1,"10":1}}],["democacheserviceimpl",{"2":{"9":1,"10":1}}],["demov2",{"2":{"44":1}}],["demoentity",{"2":{"38":1}}],["demoentity>",{"2":{"13":1,"14":1,"15":1,"16":5,"80":1}}],["demo",{"2":{"18":3,"38":1,"44":4,"54":1}}],["demomapper",{"2":{"16":1}}],["demoserviceimpl",{"2":{"16":1}}],["demoservice",{"2":{"13":1,"14":1,"15":1,"16":2,"80":1}}],["delete",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"29":1,"76":1,"80":1}}],["sdk",{"2":{"99":1}}],["swagger",{"0":{"80":1},"2":{"80":1}}],["snapshot",{"2":{"57":1}}],["show",{"2":{"91":1}}],["shaded",{"2":{"56":14}}],["shade",{"2":{"56":6}}],["shellpm2",{"2":{"29":1}}],["shell",{"2":{"29":3,"33":1,"34":1,"66":1}}],["s",{"2":{"56":1}}],["sourceforge",{"2":{"56":4}}],["socket",{"2":{"30":3}}],["socket需额外配置",{"2":{"30":1}}],["summary",{"2":{"83":2}}],["supports",{"2":{"70":1}}],["super",{"2":{"16":2,"20":1,"42":2,"70":3}}],["success",{"2":{"49":1}}],["simplegrantedauthority",{"2":{"70":1}}],["signature=krlj0uv96tbliagpji",{"2":{"49":1}}],["sinodb",{"2":{"23":1}}],["slf4j",{"2":{"42":1,"44":1,"49":3,"56":4,"70":2}}],["split",{"2":{"70":1}}],["space",{"2":{"40":1}}],["springdoc",{"2":{"65":2}}],["springboot3",{"2":{"104":1}}],["springboot",{"2":{"59":1}}],["springframework",{"2":{"49":5,"56":14}}],["spring",{"2":{"20":3,"22":2,"56":13,"64":1,"68":1,"87":1}}],["spring方式",{"2":{"9":1}}],["springcache",{"2":{"8":1}}],["src",{"2":{"38":1,"65":1}}],["sap",{"2":{"23":1}}],["sysuserentity",{"2":{"70":14}}],["sys",{"2":{"49":4}}],["system",{"2":{"9":1,"15":1,"49":5,"56":1}}],["sybase",{"2":{"23":2}}],["schema",{"2":{"22":1}}],["sqlserver",{"2":{"23":2}}],["sqlserver2005",{"2":{"23":2}}],["sqlite",{"2":{"23":3}}],["sql",{"2":{"21":2,"22":2,"23":1}}],["step",{"2":{"81":2}}],["stereotype",{"2":{"49":1}}],["stream",{"2":{"70":1}}],["str",{"2":{"49":1}}],["strutil",{"2":{"49":2}}],["string",{"2":{"9":1,"10":1,"11":5,"15":1,"19":3,"38":1,"45":1,"49":7,"56":4,"70":12,"72":2,"81":2}}],["stop",{"2":{"29":1}}],["star",{"0":{"93":1,"94":1,"95":1},"2":{"100":1}}],["start",{"2":{"29":2}}],["stateless",{"2":{"70":1}}],["static",{"2":{"38":1}}],["status=200",{"2":{"49":1}}],["status",{"2":{"14":2,"30":1}}],["sessioncreationpolicy",{"2":{"70":2}}],["sessionmanagement",{"2":{"70":1}}],["securityfilterchain",{"2":{"70":2}}],["securitymetadatasource",{"2":{"70":3}}],["security权限拦截器校验当前用户权限",{"2":{"70":1}}],["securityconfig",{"2":{"70":1}}],["security加载所有设置的权限",{"2":{"70":1}}],["security",{"2":{"68":1,"72":1}}],["send",{"2":{"30":2}}],["servletexception",{"2":{"67":1,"70":3}}],["servletresponse",{"2":{"67":3,"70":1}}],["servletrequest",{"2":{"67":4,"70":1}}],["servletrequestattributes",{"2":{"45":1}}],["servertimezone=gmt",{"2":{"64":1}}],["server",{"2":{"30":2,"83":1}}],["service",{"2":{"9":1,"10":1,"16":3,"33":1,"38":2,"40":2,"65":1}}],["selffield",{"2":{"14":1}}],["select",{"2":{"14":2}}],["setuserdetailsservice",{"2":{"70":1}}],["setaccessdecisionmanager",{"2":{"70":1}}],["setmyaccessdecisionmanager",{"2":{"70":1}}],["setmodule",{"2":{"38":1}}],["setpasswordencoder",{"2":{"70":1}}],["setpassword",{"2":{"42":2}}],["setpageoption",{"2":{"14":2}}],["setentity",{"2":{"38":1}}],["setname",{"2":{"38":1}}],["settings",{"2":{"97":1}}],["settonetype",{"2":{"56":1}}],["settype",{"2":{"38":1}}],["setter",{"2":{"14":1}}],["setlistoption",{"2":{"14":1}}],["set",{"2":{"10":1,"28":1,"30":12,"49":2,"70":5}}],["=5",{"2":{"64":1}}],["==",{"2":{"49":1,"70":2}}],["==>",{"2":{"49":2}}],["=",{"2":{"9":2,"11":4,"13":4,"14":12,"15":4,"16":4,"19":2,"20":3,"38":2,"41":1,"42":5,"45":2,"49":8,"56":5,"59":2,"61":3,"67":1,"70":15,"72":3,"73":1,"76":2,"80":4,"81":13,"83":9,"86":3}}],["性能要求比较高或有分布式部署需求的建议配置成",{"2":{"8":1}}],["person",{"2":{"72":2}}],["permitall",{"2":{"70":1}}],["perm",{"2":{"70":5}}],["perms",{"2":{"70":4}}],["phase>",{"2":{"56":1}}],["phase>package",{"2":{"56":1}}],["phoenix",{"2":{"23":2}}],["phone",{"2":{"14":2}}],["pinyin",{"2":{"56":3}}],["pinyinhelper",{"2":{"56":2}}],["pinyin4j",{"2":{"56":5}}],["png",{"2":{"54":1}}],["pnpm",{"0":{"28":1},"2":{"27":1,"28":2}}],["plugins",{"2":{"56":1}}],["plugins>",{"2":{"56":2}}],["plugin>",{"2":{"56":2}}],["plugin",{"2":{"40":1,"49":6,"52":2,"53":3,"54":2,"56":8,"57":5,"65":1}}],["plus",{"2":{"21":1,"22":1}}],["p",{"2":{"34":2}}],["pm2将自动检测可用cpu的数量",{"2":{"29":1}}],["pm2",{"0":{"29":1},"2":{"29":11}}],["put",{"2":{"14":1,"42":2,"70":1}}],["public",{"2":{"9":2,"10":2,"11":1,"13":1,"14":2,"15":2,"16":3,"38":1,"42":7,"44":2,"45":2,"49":4,"56":2,"67":1,"70":22,"72":1,"75":1,"76":1,"79":2,"80":1,"81":1,"83":3}}],["pool",{"2":{"65":1}}],["pom",{"2":{"57":1}}],["policy=eyjlehb0wny0xm1qxmjowmto0oc41njvaiiwiy29uzgl0aw9ucyi6w1siy29udgvudc1szw5ndggtcmfuz2uildasnti0mjg4mdbdxx0=",{"2":{"49":1}}],["postgresql",{"2":{"23":3}}],["postmapping",{"2":{"15":1,"16":1,"49":2,"83":1}}],["post",{"2":{"13":5}}],["port",{"2":{"8":1,"83":1}}],["preparing",{"2":{"49":1}}],["project",{"2":{"97":2}}],["projectlombok",{"2":{"56":2}}],["properties>",{"2":{"57":2}}],["properties",{"2":{"57":1}}],["proceed",{"2":{"45":1}}],["proceedingjoinpoint",{"2":{"45":1}}],["proxy",{"2":{"30":28}}],["prod",{"2":{"27":1}}],["protected",{"2":{"13":1,"14":2,"15":1,"16":2,"20":1,"80":1}}],["private",{"2":{"14":2,"45":1,"49":3,"67":1,"70":11,"81":5,"83":1}}],["println",{"2":{"9":1,"15":1,"49":5,"56":1}}],["package",{"2":{"57":1,"66":1}}],["parentclassloader",{"2":{"49":2}}],["parameter",{"2":{"83":1}}],["parameters",{"2":{"49":1}}],["param",{"2":{"70":1,"79":6}}],["params",{"2":{"49":1,"56":2}}],["parse",{"2":{"21":1}}],["parseobj",{"2":{"11":1}}],["pass",{"2":{"30":2}}],["passwordencoder",{"2":{"70":4}}],["passwordversion",{"2":{"70":1,"72":1}}],["password",{"2":{"8":1,"64":1}}],["paths",{"2":{"20":1}}],["path",{"2":{"20":3}}],["page",{"2":{"12":1,"13":1,"14":1,"15":1,"16":9,"76":2,"80":1}}],["p0",{"2":{"9":1}}],["15",{"0":{"103":1}}],["15t14",{"2":{"65":4}}],["101+08",{"2":{"65":1}}],["17",{"2":{"61":1,"86":1}}],["13",{"2":{"56":1}}],["13t20",{"2":{"49":8}}],["1800",{"2":{"69":1}}],["18",{"2":{"49":8,"56":1}}],["123456",{"2":{"64":1,"66":1,"91":1}}],["12",{"2":{"56":2}}],["12h",{"2":{"30":1}}],["127",{"2":{"8":1,"30":1,"49":1,"64":1,"65":1,"66":1,"80":1,"83":1}}],["1h",{"2":{"30":1}}],["1",{"0":{"27":1,"32":1,"48":1,"52":1,"63":1,"97":1,"101":1,"102":1,"103":2,"104":1},"2":{"8":1,"10":1,"30":5,"33":2,"34":2,"49":2,"54":1,"56":11,"57":1,"59":2,"64":1,"65":3,"66":1,"70":3,"80":1,"81":2,"83":1}}],["06",{"0":{"104":1}}],["04",{"0":{"102":1}}],["08",{"0":{"101":1,"102":1}}],["00",{"2":{"49":8,"65":4}}],["01",{"2":{"49":8}}],["07",{"0":{"103":1},"2":{"49":8,"65":4}}],["0",{"0":{"104":1},"2":{"8":3,"30":2,"33":2,"34":2,"49":2,"54":2,"56":4,"57":1,"61":1,"64":3,"65":2,"66":2,"70":1,"80":2,"83":2}}],["hashmap",{"2":{"70":1}}],["hanyupinyintonetype",{"2":{"56":2}}],["hanyupinyinoutputformat",{"2":{"56":3}}],["hangzhou",{"2":{"49":1}}],["handleexception",{"2":{"42":1}}],["handleillegalargumentexception",{"2":{"42":1}}],["handlehttprequestmethodnotsupportedexception",{"2":{"42":1}}],["handlebadcredentialsexception",{"2":{"42":1}}],["handleduplicatekeyexception",{"2":{"42":1}}],["handlerrexception",{"2":{"42":1}}],["handlertype",{"2":{"20":3}}],["hana",{"2":{"23":2}}],["hello",{"2":{"49":4,"56":1}}],["headersconfigurer",{"2":{"70":1}}],["headers",{"2":{"70":1}}],["header",{"2":{"30":13}}],["hutool",{"2":{"49":3,"56":11,"87":1}}],["hook",{"2":{"54":1,"55":1}}],["home",{"2":{"30":1}}],["host=https",{"2":{"49":1}}],["host",{"2":{"8":1,"30":4}}],["hive",{"2":{"23":2}}],["highgo",{"2":{"23":1}}],["hbase",{"2":{"23":1}}],["hsql",{"2":{"23":2}}],["h2",{"2":{"23":2}}],["httprequestmethodnotsupportedexception",{"2":{"42":2}}],["http",{"2":{"30":4,"65":1,"80":1,"83":1}}],["httpsecurity",{"2":{"70":3}}],["httpservletrequest",{"2":{"13":1,"14":2,"15":1,"16":1,"45":1,"67":2,"80":1,"83":1}}],["https",{"2":{"1":2,"14":3,"28":1,"49":1,"52":2,"91":1,"93":3,"94":3,"95":2}}],["html",{"2":{"14":1,"30":1,"80":1}}],["html文档",{"2":{"14":2}}],["能够显著提升应用程序的性能和响应速度",{"2":{"8":1}}],["旨在提供高性能",{"2":{"8":1}}],["由该类统一执行初始化",{"2":{"44":1}}],["由",{"2":{"8":1}}],["cfg",{"2":{"70":3}}],["csrf",{"2":{"70":1}}],["css",{"2":{"67":1}}],["csiidb",{"2":{"23":2}}],["cj",{"2":{"64":1}}],["charsequence",{"2":{"70":2}}],["characterencoding=utf",{"2":{"64":1}}],["chain",{"2":{"70":2}}],["chinesechar",{"2":{"56":4}}],["check",{"2":{"41":2,"42":6,"45":1}}],["c",{"2":{"49":6,"65":3}}],["cn",{"2":{"49":4,"56":2}}],["c端用户",{"2":{"40":1}}],["currentthread",{"2":{"59":1}}],["cubrid",{"2":{"23":2}}],["custom",{"2":{"14":1}}],["clean",{"2":{"57":1}}],["cluster",{"2":{"29":1}}],["clickhouse",{"2":{"23":2}}],["classloader",{"2":{"49":4}}],["classpath",{"2":{"44":1}}],["class",{"2":{"9":1,"10":2,"13":1,"14":5,"15":1,"16":2,"19":2,"20":3,"38":2,"42":7,"44":1,"45":1,"49":2,"56":1,"64":1,"67":1,"70":8,"76":1,"80":1,"81":1,"83":1}}],["crud",{"0":{"78":1},"2":{"78":1}}],["crudoption",{"2":{"16":1}}],["create",{"2":{"14":2,"33":1,"42":2}}],["createop",{"2":{"14":3}}],["catch",{"2":{"56":1}}],["cachekey",{"2":{"11":2}}],["cacheable",{"2":{"9":1}}],["cachenames",{"2":{"9":1}}],["cacheconfig",{"2":{"9":1}}],["cache",{"2":{"8":3,"30":8,"49":2,"56":1}}],["caffeine",{"2":{"8":3}}],["collection",{"2":{"70":4}}],["column",{"2":{"14":1}}],["columndefine",{"2":{"14":1,"81":4}}],["columns",{"2":{"14":1}}],["core",{"2":{"40":2,"44":1,"49":12,"56":6,"65":2}}],["code",{"2":{"42":1}}],["codetypeenum",{"2":{"38":1}}],["codemodel",{"2":{"38":10}}],["codegenerator",{"2":{"38":7}}],["consumes",{"2":{"83":1}}],["conf",{"2":{"70":4}}],["configuration",{"2":{"70":1}}],["configuration>",{"2":{"56":2}}],["configattribute",{"2":{"70":1}}],["configattributes",{"2":{"70":4}}],["configattribute>",{"2":{"70":3}}],["configattribute>>",{"2":{"70":1}}],["config",{"2":{"27":1,"28":1,"54":2,"55":1,"70":7}}],["context",{"2":{"56":2}}],["controller",{"2":{"12":2,"16":1,"18":2,"20":1,"38":2,"40":2,"49":3,"72":1}}],["connection",{"2":{"30":2}}],["connect",{"2":{"30":2}}],["condition",{"2":{"14":3}}],["coupon",{"2":{"14":8}}],["compiler",{"2":{"97":1}}],["compile命令",{"2":{"97":1}}],["component",{"2":{"45":1,"70":3}}],["combine",{"2":{"20":1}}],["commons",{"2":{"56":3}}],["commoncontroller",{"2":{"49":1}}],["comment",{"2":{"14":2,"81":5}}],["comm",{"2":{"9":1}}],["com",{"2":{"1":2,"14":3,"28":1,"38":1,"40":1,"44":1,"49":12,"52":2,"53":2,"56":4,"64":1,"65":3,"91":1,"93":3,"94":3,"95":2}}],["cooleps",{"2":{"65":1,"75":1}}],["coolexception",{"2":{"42":3}}],["coolexceptionhandler",{"2":{"42":1}}],["coollock",{"2":{"45":4}}],["coolplugin注解",{"2":{"53":1}}],["coolplugin",{"2":{"49":4,"56":6}}],["coolpluginservice",{"2":{"49":1,"65":1}}],["coolplugininvokers",{"2":{"11":1,"49":4}}],["coolpreconditions",{"2":{"41":1,"42":2,"45":1}}],["coolapplication",{"2":{"40":1,"65":1}}],["cooladminjavaapplicationtests",{"2":{"38":1}}],["coolcodegeneratortest",{"2":{"38":1}}],["coolcache",{"0":{"10":1},"2":{"10":4,"11":1,"49":5,"56":1,"70":7}}],["coolsecurityutil",{"2":{"14":1,"45":1,"72":3,"73":1}}],["coolrestcontroller",{"2":{"13":1,"14":1,"15":1,"16":1,"19":1,"20":2,"76":1,"80":1,"83":1}}],["cool",{"0":{"89":1},"2":{"0":1,"1":2,"5":1,"6":1,"13":1,"14":1,"15":1,"16":1,"21":1,"23":1,"26":1,"29":3,"30":3,"31":1,"33":3,"34":4,"36":1,"38":1,"40":2,"44":3,"49":19,"52":4,"53":2,"56":5,"57":8,"58":1,"60":1,"64":1,"65":7,"80":1,"89":2,"91":1,"93":6,"94":6,"95":4,"100":1}}],["框架用到了mybatis",{"2":{"97":1}}],["框架自带两种文件上传方式本地上传与云存储",{"2":{"82":1}}],["框架自带基于",{"2":{"8":1}}],["框架集成了auto",{"2":{"24":1}}],["框架封装了一个请求属性",{"2":{"15":1}}],["框架特有的通用工具类",{"0":{"10":1}}],["框架更新",{"2":{"4":1,"6":1}}],["缓存数据模板",{"2":{"101":1}}],["缓存对象",{"2":{"49":1}}],["缓存结果",{"2":{"49":2}}],["缓存相关配置",{"2":{"30":1}}],["缓存库",{"2":{"8":1}}],["缓存",{"0":{"8":1},"1":{"9":1,"10":1,"11":1},"2":{"8":2,"101":1}}],["的build",{"2":{"97":1}}],["的mvn",{"2":{"97":1}}],["的核心流程",{"2":{"43":1}}],["的能力",{"2":{"43":1}}],["的火热",{"2":{"43":1}}],["的都知道",{"2":{"24":1}}],["的事务管理",{"2":{"22":1}}],["的基本增删改查",{"2":{"22":1}}],["的",{"2":{"20":1,"97":1}}],["的一些最新资讯",{"2":{"6":1}}],["的在线文档仓库",{"2":{"0":1}}],["公众号",{"0":{"6":1}}],["团队哔哩哔哩官方账户",{"2":{"5":1}}],["站视频教程",{"2":{"7":1,"37":1}}],["站",{"0":{"5":1}}],["b8e4",{"2":{"56":1}}],["bbb",{"2":{"54":1}}],["beforeinvocation",{"2":{"70":1}}],["belerweb",{"2":{"56":2}}],["beans",{"2":{"56":3}}],["bean",{"2":{"49":1,"70":4}}],["ben",{"2":{"8":1}}],["badhanyupinyinoutputformatcombination",{"2":{"56":2}}],["badcredentialsexception",{"2":{"42":2}}],["banner",{"2":{"49":2,"50":2}}],["bashpnpm",{"2":{"28":1}}],["bashnpm",{"2":{"28":1}}],["baselogfilter",{"2":{"67":1}}],["basecoolplugin",{"2":{"49":7,"56":4}}],["basecontroller",{"2":{"12":1,"13":1,"14":2,"15":1,"16":1,"80":1}}],["baseservice中集成了常用的",{"2":{"78":1}}],["baseserviceimpl",{"2":{"16":1}}],["basesysuserservice",{"2":{"70":3}}],["basesysuserentity>lambdaquery",{"2":{"42":2,"70":1}}],["basesysuserentity",{"2":{"42":6,"70":3}}],["basesyspermsservice",{"2":{"70":8}}],["basesyslogservice",{"2":{"67":3}}],["basesyslogmapper",{"2":{"49":3}}],["baseentity",{"2":{"14":1,"81":1}}],["base",{"2":{"14":3,"40":1,"49":1,"83":1}}],["break",{"2":{"30":1}}],["bind",{"2":{"30":1,"49":4}}],["bypass",{"2":{"30":1}}],["boot",{"2":{"87":1}}],["bootstrap",{"2":{"29":1}}],["boolean",{"2":{"70":2}}],["body",{"2":{"15":1}}],["build>",{"2":{"56":2}}],["build",{"2":{"20":1,"33":2,"70":1,"97":3}}],["b",{"0":{"5":1},"2":{"7":1,"37":1,"49":3}}],["afterinvocation",{"2":{"70":1}}],["abstracthttpconfigurer",{"2":{"70":1}}],["abstractsecurityinterceptor",{"2":{"70":1}}],["abstractopenapiresource",{"2":{"65":1}}],["accessdeniedhandler",{"2":{"70":1}}],["aclass",{"2":{"70":1}}],["action",{"2":{"49":1}}],["aop",{"2":{"56":2}}],["aaa",{"2":{"54":1}}],["authprovider",{"2":{"70":4}}],["authenticationconfiguration",{"2":{"70":1}}],["authenticationmanager",{"2":{"70":2}}],["authenticationprovider",{"2":{"70":2}}],["authenticationentrypoint",{"2":{"70":1}}],["authenticated",{"2":{"70":1}}],["authorizehttprequests",{"2":{"70":1}}],["authority",{"2":{"70":3}}],["author",{"2":{"54":1,"55":1}}],["automatically",{"2":{"97":1}}],["automatically自动编译功能",{"2":{"97":1}}],["auto",{"2":{"87":1}}],["autowired",{"2":{"70":1}}],["autoprefixurlmapping",{"2":{"20":1}}],["arraylist",{"2":{"70":3}}],["artifactset>",{"2":{"56":2}}],["artifactid>maven",{"2":{"56":1}}],["artifactid>pinyin4j",{"2":{"56":1}}],["artifactid>",{"2":{"56":3}}],["artifactid>hutool",{"2":{"56":1}}],["around",{"2":{"45":2}}],["args",{"2":{"38":1,"44":1}}],["args$args",{"2":{"30":1}}],["anyrequest",{"2":{"70":1}}],["annotations",{"2":{"20":1}}],["annotation",{"2":{"19":2,"40":1,"45":1,"49":5,"53":1,"56":5}}],["and",{"2":{"14":1}}],["aliyun",{"2":{"49":1}}],["aliyuncs",{"2":{"49":1}}],["aliasfor",{"2":{"19":2}}],["alloc",{"2":{"81":2}}],["all",{"2":{"14":1,"22":1,"56":1,"83":1}}],["assets",{"2":{"54":2}}],["aspect",{"2":{"45":1}}],["ase",{"2":{"23":1}}],["astype",{"2":{"14":1}}],["as",{"2":{"14":1}}],["apt",{"2":{"97":1}}],["apache",{"2":{"56":1}}],["app端手机密码登录和手机验证码登录",{"2":{"102":1}}],["app端访问参数配置接口",{"2":{"101":1}}],["appsecret",{"2":{"50":1}}],["appid",{"2":{"50":1}}],["application",{"2":{"64":1,"83":1}}],["applicationcontext",{"2":{"49":1}}],["applicationarguments",{"2":{"44":1}}],["applicationrunner",{"2":{"44":1}}],["appdemoinfocontroller",{"2":{"18":1}}],["app",{"2":{"18":4,"67":1}}],["appmarketcouponusercontroller",{"2":{"14":1}}],["api",{"2":{"7":1,"13":1,"14":1,"15":1,"16":1,"19":1,"27":2,"30":2,"33":1,"37":1,"56":4,"65":1,"76":1,"80":1}}],["age",{"2":{"14":1}}],["addfilterbefore",{"2":{"70":1}}],["addr",{"2":{"30":5}}],["add",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"30":3,"42":4,"70":2,"76":1,"80":1}}],["adminbasecommcontroller",{"2":{"83":1}}],["admindictinfocontroller",{"2":{"76":1}}],["admindemoinfocontroller",{"2":{"13":1,"14":1,"15":1,"16":1,"18":2,"80":1}}],["adminuserid",{"2":{"72":1}}],["admin中才能调试",{"2":{"49":1}}],["admin的缓存",{"2":{"49":1}}],["admin",{"0":{"89":1},"2":{"0":1,"1":2,"18":4,"21":1,"23":1,"26":1,"29":3,"31":1,"33":2,"34":2,"36":1,"38":1,"49":9,"52":2,"56":2,"57":1,"60":1,"65":4,"66":1,"70":6,"89":1,"91":2,"93":3,"94":3,"95":2,"100":1}}],["a",{"2":{"10":2,"49":2}}],["ai",{"0":{"7":1,"37":1,"43":1},"2":{"4":1,"43":6,"89":5,"99":1,"103":1}}],["你的项目",{"2":{"97":1}}],["你的star是我们最大的动力",{"2":{"92":1}}],["你的贡献可能给其他人代码巨大的帮助",{"2":{"0":1}}],["你将会看到后端的欢迎页面",{"2":{"65":1}}],["你可以这样做",{"2":{"97":1}}],["你可以自己开发插件",{"2":{"46":1}}],["你可以在这边了解到一些关于我们框架的最新动态",{"2":{"4":1}}],["你需要把生成的eps",{"2":{"33":1}}],["抖音",{"0":{"4":1}}],["扫一扫加入微信开发交流群",{"2":{"3":1}}],["微信",{"0":{"3":1},"2":{"99":1}}],["共创一些美好的事情",{"2":{"2":1}}],["共同参与开源",{"2":{"0":1}}],["交流合作",{"0":{"2":1},"1":{"3":1,"4":1,"5":1,"6":1}}],["地址",{"0":{"1":1}}],["积极提交pull",{"2":{"0":1}}],["版相关功能",{"2":{"104":1}}],["版本一致",{"2":{"91":1}}],["版本号",{"2":{"55":1}}],["版本+宝塔为例",{"2":{"26":1}}],["版本的也可以参考",{"2":{"25":1}}],["版本为例",{"2":{"25":1}}],["版",{"2":{"0":1}}],["介绍",{"0":{"0":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/.vitepress/dist/assets/chunks/@localSearchIndexroot.pss0EvC3.js b/.vitepress/dist/assets/chunks/@localSearchIndexroot.pss0EvC3.js deleted file mode 100644 index e0d5441..0000000 --- a/.vitepress/dist/assets/chunks/@localSearchIndexroot.pss0EvC3.js +++ /dev/null @@ -1 +0,0 @@ -const e='{"documentCount":105,"nextId":105,"documentIds":{"0":"/README.html#介绍","1":"/README.html#地址","2":"/src/about/#交流合作","3":"/src/about/#微信","4":"/src/about/#抖音","5":"/src/about/#b-站","6":"/src/about/#公众号","7":"/src/guide/ai.html#ai-编码","8":"/src/guide/cache.html#缓存","9":"/src/guide/cache.html#使用","10":"/src/guide/cache.html#框架特有的通用工具类-coolcache","11":"/src/guide/cache.html#通过coolcache缓存模板-获取数据","12":"/src/guide/controller.html#控制器","13":"/src/guide/controller.html#示例","14":"/src/guide/controller.html#查询配置","15":"/src/guide/controller.html#请求参数","16":"/src/guide/controller.html#重写实现","17":"/src/guide/controller.html#原理","18":"/src/guide/controller.html#接口路由规则","19":"/src/guide/controller.html#自定义路由注解","20":"/src/guide/controller.html#重写-getmappingformethod","21":"/src/guide/db.html#数据库","22":"/src/guide/db.html#功能对比","23":"/src/guide/db.html#支持数据库","24":"/src/guide/db.html#自动建表","25":"/src/guide/deploy.html#项目部署","26":"/src/guide/deploy.html#普通方式","27":"/src/guide/deploy.html#_1、部署流程-以宝塔为例","28":"/src/guide/deploy.html#_2、推荐使用-pnpm-安装依赖","29":"/src/guide/deploy.html#_3、pm2-运行后端服务","30":"/src/guide/deploy.html#_4、nginx-配置示例","31":"/src/guide/deploy.html#docker-方式","32":"/src/guide/deploy.html#_1、部署流程-以宝塔为例-1","33":"/src/guide/deploy.html#_2、打包镜像","34":"/src/guide/deploy.html#_3、运行","35":"/src/guide/deploy.html#注意事项","36":"/src/guide/dev.html#开发方式","37":"/src/guide/dev.html#ai-全自动","38":"/src/guide/dev.html#半自动","39":"/src/guide/dir.html#目录结构","40":"/src/guide/dir.html#结构","41":"/src/guide/exception.html#统一异常处理","42":"/src/guide/exception.html#异常统一捕获","43":"/src/guide/flow.html#ai-流程编排","44":"/src/guide/initData.html#数据初始化","45":"/src/guide/lock.html#锁","46":"/src/guide/recordLog.html#请求日志记录","47":"/src/guide/quick.html#快速开始","48":"/src/guide/quick.html#环境准备","49":"/src/guide/quick.html#运行系统","50":"/src/guide/quick.html#_1、拉取源码","51":"/src/guide/quick.html#_2、配置数据库","52":"/src/guide/quick.html#_3、启动后端服务","53":"/src/guide/quick.html#_4、启动前端服务","54":"/src/guide/plugin.html#扩展插件","55":"/src/guide/plugin.html#使用插件","56":"/src/guide/plugin.html#_1、安装","57":"/src/guide/plugin.html#_2、调用","58":"/src/guide/plugin.html#_3、配置","59":"/src/guide/plugin.html#开发插件","60":"/src/guide/plugin.html#_1、脚手架","61":"/src/guide/plugin.html#_2、目录结构","62":"/src/guide/plugin.html#_3、开发过程","63":"/src/guide/plugin.html#_4、字段解释","64":"/src/guide/plugin.html#插件详解","65":"/src/guide/plugin.html#打包","66":"/src/guide/plugin.html#安装插件","67":"/src/guide/plugin.html#实现原理","68":"/src/guide/service.html#服务","69":"/src/guide/service.html#crud","70":"/src/guide/service.html#修改前后","71":"/src/guide/security.html#权限校验","72":"/src/guide/security.html#配置","73":"/src/guide/security.html#原理","74":"/src/guide/security.html#当前用户","75":"/src/guide/security.html#后端用户","76":"/src/guide/security.html#应用用户","77":"/src/guide/security.html#忽略-token","78":"/src/guide/security.html#方法上","79":"/src/guide/security.html#类上","80":"/src/guide/swagger.html#swagger-文档","81":"/src/guide/uniqueIDGen.html#唯一id","82":"/src/guide/upload.html#文件上传","83":"/src/guide/upload.html#使用","84":"/src/introduce/#简介","85":"/src/introduce/#技术选型","86":"/src/introduce/#一、环境要求","87":"/src/introduce/#二、后端框架","88":"/src/introduce/#三、前端框架","89":"/src/introduce/#为什么选择-cool-admin","90":"/src/introduce/#内置功能","91":"/src/introduce/show.html#演示","92":"/src/introduce/src.html#源码","93":"/src/introduce/src.html#后端-点个-star-哦","94":"/src/introduce/src.html#前端-点个-star-哦","95":"/src/introduce/src.html#文档-star-哦","96":"/src/question/common.html#常见问题","97":"/src/question/common.html#_1、找不到类似xxxtabledef文件","98":"/src/todo/plan.html#计划","99":"/src/todo/plan.html#完善插件","100":"/src/todo/update.html#更新","101":"/src/todo/update.html#v7-1-3-2024-08-25","102":"/src/todo/update.html#v7-1-2-2024-08-04","103":"/src/todo/update.html#v7-1-1-2024-07-15","104":"/src/todo/update.html#v7-1-0-2024-06-27"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[1,1,13],"1":[1,1,8],"2":[1,1,4],"3":[1,1,2],"4":[1,1,11],"5":[2,1,3],"6":[1,1,6],"7":[2,1,8],"8":[1,1,35],"9":[1,1,31],"10":[2,1,22],"11":[2,1,37],"12":[1,1,15],"13":[1,1,48],"14":[1,1,172],"15":[1,1,57],"16":[1,1,63],"17":[1,1,1],"18":[1,1,24],"19":[1,1,14],"20":[2,1,43],"21":[1,1,41],"22":[1,1,79],"23":[1,1,112],"24":[1,1,21],"25":[1,1,9],"26":[1,1,8],"27":[4,2,36],"28":[4,2,15],"29":[3,2,41],"30":[3,2,92],"31":[2,1,10],"32":[4,3,12],"33":[2,3,31],"34":[2,3,16],"35":[1,3,9],"36":[1,1,7],"37":[2,1,12],"38":[1,1,51],"39":[1,1,4],"40":[1,1,58],"41":[1,1,8],"42":[1,1,78],"43":[2,1,23],"44":[1,1,76],"45":[1,1,58],"46":[1,1,44],"47":[1,1,4],"48":[1,1,19],"49":[1,1,1],"50":[2,2,4],"51":[2,2,45],"52":[2,2,59],"53":[2,2,25],"54":[1,1,9],"55":[1,1,1],"56":[2,2,9],"57":[2,2,204],"58":[2,2,18],"59":[1,1,1],"60":[2,2,16],"61":[2,2,25],"62":[2,2,31],"63":[2,2,27],"64":[1,1,185],"65":[1,1,31],"66":[1,1,5],"67":[1,1,66],"68":[1,1,2],"69":[1,1,5],"70":[1,1,21],"71":[1,1,7],"72":[1,1,14],"73":[1,1,243],"74":[1,1,2],"75":[1,2,39],"76":[1,2,6],"77":[2,1,5],"78":[1,3,14],"79":[1,3,22],"80":[2,1,48],"81":[1,1,56],"82":[1,1,17],"83":[1,1,78],"84":[1,1,1],"85":[1,1,4],"86":[2,2,14],"87":[2,2,10],"88":[2,2,5],"89":[4,1,26],"90":[1,1,38],"91":[1,1,11],"92":[1,1,7],"93":[5,1,12],"94":[5,1,13],"95":[4,1,15],"96":[1,1,2],"97":[2,1,29],"98":[1,1,4],"99":[1,1,9],"100":[1,1,8],"101":[7,1,22],"102":[7,1,11],"103":[6,1,9],"104":[7,1,8]},"averageFieldLength":[1.7333333333333334,1.3047619047619048,30.380952380952387],"storedFields":{"0":{"title":"介绍","titles":[]},"1":{"title":"地址","titles":[]},"2":{"title":"交流合作","titles":[]},"3":{"title":"微信","titles":["交流合作"]},"4":{"title":"抖音","titles":["交流合作"]},"5":{"title":"B 站","titles":["交流合作"]},"6":{"title":"公众号","titles":["交流合作"]},"7":{"title":"Ai 编码","titles":[]},"8":{"title":"缓存","titles":[]},"9":{"title":"使用","titles":["缓存"]},"10":{"title":"框架特有的通用工具类,CoolCache","titles":["缓存"]},"11":{"title":"通过coolCache缓存模板,获取数据","titles":["缓存"]},"12":{"title":"控制器","titles":[]},"13":{"title":"示例","titles":["控制器"]},"14":{"title":"查询配置","titles":["控制器"]},"15":{"title":"请求参数","titles":["控制器"]},"16":{"title":"重写实现","titles":["控制器"]},"17":{"title":"原理","titles":[]},"18":{"title":"接口路由规则","titles":["原理"]},"19":{"title":"自定义路由注解","titles":["原理"]},"20":{"title":"重写 getMappingForMethod","titles":["原理"]},"21":{"title":"数据库","titles":[]},"22":{"title":"功能对比","titles":["数据库"]},"23":{"title":"支持数据库","titles":["数据库"]},"24":{"title":"自动建表","titles":["数据库"]},"25":{"title":"项目部署","titles":[]},"26":{"title":"普通方式","titles":["项目部署"]},"27":{"title":"1、部署流程(以宝塔为例):","titles":["项目部署","普通方式"]},"28":{"title":"2、推荐使用 pnpm 安装依赖","titles":["项目部署","普通方式"]},"29":{"title":"3、PM2 运行后端服务","titles":["项目部署","普通方式"]},"30":{"title":"4、nginx 配置示例","titles":["项目部署","普通方式"]},"31":{"title":"Docker 方式","titles":["项目部署"]},"32":{"title":"1、部署流程(以宝塔为例):","titles":["项目部署","Docker 方式"]},"33":{"title":"2、打包镜像","titles":["项目部署","Docker 方式"]},"34":{"title":"3、运行","titles":["项目部署","Docker 方式"]},"35":{"title":"注意事项","titles":["项目部署","Docker 方式"]},"36":{"title":"开发方式","titles":[]},"37":{"title":"Ai 全自动","titles":["开发方式"]},"38":{"title":"半自动","titles":["开发方式"]},"39":{"title":"目录结构","titles":[]},"40":{"title":"结构","titles":["目录结构"]},"41":{"title":"统一异常处理","titles":[]},"42":{"title":"异常统一捕获","titles":["统一异常处理"]},"43":{"title":"Ai 流程编排","titles":[]},"44":{"title":"数据初始化","titles":[]},"45":{"title":"锁","titles":[]},"46":{"title":"请求日志记录","titles":[]},"47":{"title":"快速开始","titles":[]},"48":{"title":"环境准备","titles":["快速开始"]},"49":{"title":"运行系统","titles":["快速开始"]},"50":{"title":"1、拉取源码","titles":["快速开始","运行系统"]},"51":{"title":"2、配置数据库","titles":["快速开始","运行系统"]},"52":{"title":"3、启动后端服务","titles":["快速开始","运行系统"]},"53":{"title":"4、启动前端服务","titles":["快速开始","运行系统"]},"54":{"title":"扩展插件","titles":[]},"55":{"title":"使用插件","titles":["扩展插件"]},"56":{"title":"1、安装","titles":["扩展插件","使用插件"]},"57":{"title":"2、调用","titles":["扩展插件","使用插件"]},"58":{"title":"3、配置","titles":["扩展插件","使用插件"]},"59":{"title":"开发插件","titles":["扩展插件"]},"60":{"title":"1、脚手架","titles":["扩展插件","开发插件"]},"61":{"title":"2、目录结构","titles":["扩展插件","开发插件"]},"62":{"title":"3、开发过程","titles":["扩展插件","开发插件"]},"63":{"title":"4、字段解释","titles":["扩展插件","开发插件"]},"64":{"title":"插件详解","titles":["扩展插件"]},"65":{"title":"打包","titles":["扩展插件"]},"66":{"title":"安装插件","titles":["扩展插件"]},"67":{"title":"实现原理","titles":["扩展插件"]},"68":{"title":"服务","titles":[]},"69":{"title":"Crud","titles":["服务"]},"70":{"title":"修改前后","titles":["服务"]},"71":{"title":"权限校验","titles":[]},"72":{"title":"配置","titles":["权限校验"]},"73":{"title":"原理","titles":["权限校验"]},"74":{"title":"当前用户","titles":["权限校验"]},"75":{"title":"后端用户","titles":["权限校验","当前用户"]},"76":{"title":"应用用户","titles":["权限校验","当前用户"]},"77":{"title":"忽略 token","titles":["权限校验"]},"78":{"title":"方法上","titles":["权限校验","忽略 token"]},"79":{"title":"类上","titles":["权限校验","忽略 token"]},"80":{"title":"swagger 文档","titles":[]},"81":{"title":"唯一id","titles":[]},"82":{"title":"文件上传","titles":[]},"83":{"title":"使用","titles":[]},"84":{"title":"简介","titles":[]},"85":{"title":"技术选型","titles":["简介"]},"86":{"title":"一、环境要求","titles":["简介","技术选型"]},"87":{"title":"二、后端框架","titles":["简介","技术选型"]},"88":{"title":"三、前端框架","titles":["简介","技术选型"]},"89":{"title":"为什么选择 Cool Admin?","titles":["简介"]},"90":{"title":"内置功能","titles":["简介"]},"91":{"title":"演示","titles":[]},"92":{"title":"源码","titles":[]},"93":{"title":"后端(点个 Star 哦)","titles":["源码"]},"94":{"title":"前端(点个 Star 哦)","titles":["源码"]},"95":{"title":"文档 (Star 哦)","titles":["源码"]},"96":{"title":"常见问题","titles":[]},"97":{"title":"1、找不到类似xxxTableDef文件","titles":["常见问题"]},"98":{"title":"计划","titles":[]},"99":{"title":"完善插件","titles":["计划"]},"100":{"title":"更新","titles":[]},"101":{"title":"v7.1.3(2024-08-25)","titles":["更新"]},"102":{"title":"v7.1.2(2024-08-04)","titles":["更新"]},"103":{"title":"v7.1.1(2024-07-15)","titles":["更新"]},"104":{"title":"v7.1.0(2024-06-27)","titles":["更新"]}},"dirtCount":0,"index":[["升级所有相关依赖到最新",{"2":{"104":1}}],["升级到",{"2":{"104":1}}],["移除插件jar文件落库",{"2":{"102":1}}],["移除锁",{"2":{"45":1}}],["鉴权调整兼容app端",{"2":{"102":1}}],["鉴权拦截配置",{"2":{"73":1}}],["指定id插入不生效问题",{"2":{"101":1}}],["修复",{"2":{"101":2,"102":1}}],["修改之后",{"2":{"70":2}}],["修改之前",{"2":{"70":2}}],["修改类型",{"2":{"70":2}}],["修改前后",{"0":{"70":1}}],["修改",{"2":{"13":1,"90":1}}],["图形验证码获取区分app和admin",{"2":{"101":1}}],["分布式id",{"2":{"101":1}}],["分布式id生成组件",{"2":{"101":1}}],["分页查询无",{"2":{"22":1}}],["分页查询之总量缓存",{"2":{"22":1}}],["分页查询配置",{"2":{"14":1}}],["分页查询",{"2":{"13":1,"22":1}}],["参考",{"2":{"101":4}}],["参数管理",{"2":{"90":1}}],["参数",{"2":{"57":1}}],["支付",{"2":{"103":1}}],["支付插件",{"2":{"99":1}}],["支持postgresql",{"2":{"102":1}}],["支持自定义返回结果类型",{"2":{"101":1}}],["支持动态安装",{"2":{"90":1}}],["支持回滚操作",{"2":{"90":1}}],["支持静态资源文件上传云端进行云管理",{"2":{"90":1}}],["支持很多数据库",{"2":{"23":1}}],["支持的数据库类型",{"2":{"23":1}}],["支持数据库",{"0":{"23":1}}],["支持多主键",{"2":{"22":1}}],["支持关联查询",{"2":{"21":1}}],["短信等功能可以通过安装插件的方式添加",{"2":{"103":1}}],["短信插件",{"2":{"99":1}}],["短信这类功能的插件可以通过后台动态安装卸载",{"2":{"89":1}}],["完善插件",{"0":{"99":1}}],["计划",{"0":{"98":1},"1":{"99":1}}],["找不到类似xxxtabledef文件",{"0":{"97":1}}],["常见问题",{"0":{"96":1},"1":{"97":1}}],["常用的技术进行选择",{"2":{"85":1}}],["常用命令",{"2":{"29":1}}],["您的贡献可能会给其他人来带巨大的帮助",{"2":{"95":1}}],["哦",{"0":{"93":1,"94":1,"95":1}}],["点个",{"0":{"93":1,"94":1}}],["点击+按钮",{"2":{"56":1}}],["点击左侧菜单扩展管理",{"2":{"56":1}}],["点击前往插件市场",{"2":{"54":1}}],["点击前往插件市场下载安装",{"2":{"43":1}}],["点击前往前端项目详细文档",{"2":{"53":1,"94":1}}],["源码",{"0":{"92":1},"1":{"93":1,"94":1,"95":1}}],["源码仓库",{"2":{"50":1}}],["演示",{"0":{"91":1}}],["卸载插件",{"2":{"90":1}}],["卸载和替换",{"2":{"67":2}}],["前后端插件",{"2":{"90":1}}],["前端",{"0":{"94":1}}],["前端框架",{"0":{"88":1}}],["前端会根据后端返回的上传模式进行本地上传或者云存储签名直传",{"2":{"82":1}}],["前端不需要特意写调用接口的",{"2":{"33":1}}],["前端打包完放这边",{"2":{"30":1}}],["前端访问后端的接口地址默认是前端根地址+",{"2":{"27":1}}],["前端接口",{"2":{"18":1}}],["天的保留",{"2":{"90":1}}],["任务调度包含执行结果日志",{"2":{"90":1}}],["添加",{"2":{"90":1}}],["定时任务",{"2":{"90":1}}],["定时任务模块",{"2":{"40":1}}],["便于问题排查",{"2":{"90":1}}],["设置角色按机构进行数据范围权限划分",{"2":{"90":1}}],["呈现公司组织部门树形结构",{"2":{"90":1}}],["内置功能",{"0":{"90":1}}],["代码简洁",{"2":{"89":1}}],["代理服务端地址",{"2":{"30":1}}],["灵活又不臃肿",{"2":{"89":1}}],["灵活性",{"2":{"67":1}}],["灵活性高",{"2":{"67":1}}],["专门为",{"2":{"89":1}}],["部分功能实现零代码",{"2":{"89":1}}],["部署",{"2":{"35":1}}],["部署的简单流程",{"2":{"31":1}}],["部署的配置方式可以参考普通的部署方式",{"2":{"31":1}}],["部署成功",{"2":{"27":1,"32":1}}],["部署流程",{"0":{"27":1,"32":1}}],["部署视频教程",{"2":{"26":1,"31":1}}],["从页面到后端代码",{"2":{"89":1}}],["从第三方",{"2":{"11":1}}],["特别是最近",{"2":{"89":1}}],["特别是跟",{"2":{"4":1}}],["三",{"0":{"88":1}}],["二",{"0":{"87":1}}],["环境要求",{"0":{"86":1}}],["环境准备",{"0":{"48":1}}],["减少技术栈的复杂度",{"2":{"85":1}}],["技术选型",{"0":{"85":1},"1":{"86":1,"87":1,"88":1}}],["技术分享",{"2":{"4":1,"6":1}}],["简单功能零代码实现",{"2":{"103":1}}],["简单锁的使用",{"2":{"45":1}}],["简介",{"0":{"84":1},"1":{"85":1,"86":1,"87":1,"88":1,"89":1,"90":1}}],["水印等处理",{"2":{"83":1}}],["裁剪",{"2":{"83":1}}],["条件允许的话尽量选择云存储上传",{"2":{"83":1}}],["动静分离有许多好处",{"2":{"83":1}}],["动态加载使得应用程序能够在不停机的情况下进行热更新",{"2":{"67":1}}],["动态加载允许应用程序在运行时根据需求加载",{"2":{"67":1}}],["动态加载",{"2":{"67":2}}],["动态",{"2":{"22":1}}],["动态表名",{"2":{"22":1}}],["线上环境请用nginx等静态服务器代理",{"2":{"83":1}}],["线上的数据库是需要本地传上去的",{"2":{"27":1}}],["七牛云等",{"2":{"82":1}}],["腾讯云",{"2":{"82":1}}],["云存储上传服务端值提供签名供前端直传到对应的云存储",{"2":{"82":1}}],["云存储",{"2":{"82":1}}],["直接上传到对应的云存储",{"2":{"82":1}}],["入参为key",{"2":{"81":1}}],["步长",{"2":{"81":1}}],["当前最大id",{"2":{"81":1}}],["当前用户",{"0":{"74":1},"1":{"75":1,"76":1}}],["基于表来完成分布式id生成",{"2":{"81":1}}],["基础模块",{"2":{"40":1}}],["唯一id分配",{"2":{"81":1}}],["唯一id",{"0":{"81":1}}],["都必须配合coolrestcontroller使用",{"2":{"79":1}}],["都继承自",{"2":{"12":1}}],["校验",{"2":{"77":1,"78":1}}],["应用用户",{"0":{"76":1}}],["应用必备",{"2":{"43":1}}],["类上",{"0":{"79":1}}],["类型",{"2":{"75":1}}],["类必须继承",{"2":{"57":1,"64":2}}],["类必须要有",{"2":{"57":1,"64":2}}],["允许网页iframe",{"2":{"73":1}}],["监控用户行为",{"2":{"73":1}}],["监听",{"2":{"22":1}}],["权限管理拦截器",{"2":{"73":1}}],["权限校验",{"0":{"71":1},"1":{"72":1,"73":1,"74":1,"75":1,"76":1,"77":1,"78":1,"79":1}}],["每次调用接口的时候spring",{"2":{"73":1}}],["每个插件的配置各不相同",{"2":{"63":1}}],["每个对象中的",{"2":{"44":1}}],["每个模块都有其特有的功能",{"2":{"39":1}}],["则返回给decide方法",{"2":{"73":1}}],["判定用户请求的url是否在权限表中",{"2":{"73":1}}],["判断",{"2":{"42":1}}],["刷新token过期时间",{"2":{"72":1}}],["半小时",{"2":{"72":1}}],["半自动",{"0":{"38":1}}],["秒",{"2":{"72":2}}],["单位",{"2":{"72":2}}],["单主键配置",{"2":{"22":1}}],["过期时间",{"2":{"72":1}}],["作为文档",{"2":{"80":1}}],["作为myaccessdecisionmanager类的decide的第三个参数",{"2":{"73":1}}],["作为框架安全与权限校验",{"2":{"71":1}}],["作者",{"2":{"62":1,"63":1}}],["采用",{"2":{"71":1}}],["操作日志",{"2":{"90":1}}],["操作权限标识等",{"2":{"90":1}}],["操作",{"2":{"69":1}}],["处理业务逻辑的代码应该被封装在服务中",{"2":{"68":1}}],["处理逻辑在以下方法",{"2":{"44":1}}],["扩展性",{"2":{"67":1}}],["扩展插件",{"0":{"54":1},"1":{"55":1,"56":1,"57":1,"58":1,"59":1,"60":1,"61":1,"62":1,"63":1,"64":1,"65":1,"66":1,"67":1},"2":{"89":1}}],["大大提高了系统的可用性和稳定性",{"2":{"67":1}}],["热更新",{"2":{"67":1}}],["优化若干问题",{"2":{"104":1}}],["优化插件过大加载慢问题",{"2":{"102":1}}],["优化eps解析规则",{"2":{"101":1}}],["优化角色修改循环单个处理为批量处理",{"2":{"101":1}}],["优势",{"2":{"67":1}}],["优炫数据库",{"2":{"23":1}}],["远程服务器和",{"2":{"67":1}}],["它可以加载指定的",{"2":{"67":1}}],["标准库中提供的一个类加载器",{"2":{"67":1}}],["最终打出的包为",{"2":{"65":1}}],["里指定",{"2":{"65":1}}],["里面是个数组",{"2":{"44":1}}],["后台人员查询列表字段关联错误",{"2":{"101":1}}],["后缀的文件",{"2":{"65":1}}],["后端",{"0":{"93":1}}],["后端框架",{"0":{"87":1}}],["后端用户",{"0":{"75":1}}],["后端修改数据库配置",{"2":{"51":1}}],["后端接口",{"2":{"18":1}}],["避免打包结果过大",{"2":{"64":1}}],["避免插件过大不会在打入jar包中",{"2":{"64":1}}],["主应用以有这些依赖",{"2":{"64":1}}],["主应用项目已经有的依赖给排除掉",{"2":{"64":1}}],["主应用没有这些依赖",{"2":{"64":1}}],["主要特点",{"2":{"21":1,"89":1}}],["主要是做一些技术教程",{"2":{"4":1}}],["引入依赖",{"2":{"64":1}}],["可商用",{"2":{"92":1}}],["可插拔",{"2":{"89":1}}],["可选",{"2":{"83":1}}],["可维护性",{"2":{"67":1}}],["可控性强",{"2":{"67":1}}],["可在",{"2":{"65":1}}],["可使用",{"2":{"64":1}}],["可以重写modifybefore和modifyafter方法",{"2":{"70":1}}],["可以参考baseservice的实现",{"2":{"69":1}}],["可以轻松地添加新的功能模块或服务",{"2":{"67":1}}],["可以将应用程序的核心逻辑和配置分离",{"2":{"67":1}}],["可以通过代码控制加载",{"2":{"67":1}}],["可以通过插件的方式来扩展系统功能",{"2":{"54":1}}],["可以动态指定",{"2":{"67":1}}],["可以快速开发我们的插件",{"2":{"60":1}}],["可以大大节省开发时间",{"2":{"36":1}}],["可以大大简化代码",{"2":{"12":1}}],["可以考虑这个时间配置长一点",{"2":{"30":1}}],["可以自己指定数量",{"2":{"29":1}}],["可以自动创建表",{"2":{"24":1}}],["可以在打包日志中查看我们排除和引入了哪些包",{"2":{"64":1}}],["可以在yml文件中配置",{"2":{"46":1}}],["可以在",{"2":{"44":1}}],["可以在对应的",{"2":{"16":1}}],["可以在这边实现一下列表数据排序规则",{"2":{"13":1,"15":1,"16":1,"80":1}}],["可以选择你想使用的缓存",{"2":{"8":1}}],["满足以上条件",{"2":{"64":1}}],["拼音",{"2":{"64":1}}],["汉字",{"2":{"64":1}}],["汉字字符",{"2":{"64":1}}],["会持续不断地更新",{"2":{"100":1}}],["会展示在插件的详情中",{"2":{"63":1}}],["会更加简洁",{"2":{"42":1}}],["说明",{"2":{"63":1,"75":1}}],["说明后端服务启动成功",{"2":{"52":1}}],["测试",{"2":{"62":1}}],["测试curd",{"2":{"13":2,"14":2,"15":2,"16":2,"38":1,"80":2}}],["或",{"2":{"60":1,"93":2,"94":2,"95":1}}],["或者db",{"2":{"11":1}}],["脚手架源码仓库",{"2":{"60":1}}],["脚手架",{"0":{"60":1}}],["下",{"2":{"58":1}}],["下的",{"2":{"44":1}}],["范围在",{"2":{"58":1}}],["路径可以自己指定",{"2":{"58":1}}],["例如原本的配置文件是这样的",{"2":{"58":1}}],["其它的无效",{"2":{"79":1}}],["其中对应的包名称",{"2":{"65":1}}],["其中",{"2":{"58":1}}],["其中我们可以在插件包里通过",{"2":{"57":1}}],["其他数据库适配中",{"2":{"51":1}}],["其他部署方式也可以参考这个流程",{"2":{"26":1}}],["其他查询方式",{"2":{"14":2}}],["只需极少编码即可实现大部分需求",{"2":{"89":1}}],["只需拖一拖即可",{"2":{"89":1}}],["只需三步",{"2":{"38":1}}],["只有安装到cool",{"2":{"57":1}}],["获得用户信息",{"2":{"73":1,"75":1}}],["获得其他插件",{"2":{"57":1}}],["获取id",{"2":{"81":1}}],["获取当前用户信息",{"2":{"74":1}}],["获取启用的权限操作请求",{"2":{"73":1}}],["获取主应用resources下的",{"2":{"57":1}}],["获取主应用resources目录下的资源文件",{"2":{"57":1}}],["获取物流信息",{"2":{"11":1}}],["获取数据",{"0":{"11":1},"2":{"11":1}}],["注入service",{"2":{"81":1}}],["注解",{"2":{"57":2,"64":4}}],["注意事项",{"0":{"35":1}}],["注意",{"2":{"22":1,"23":1,"24":1,"25":1,"27":1,"33":1,"44":1,"48":1,"79":1}}],["注意如果该表有json字段",{"2":{"14":1}}],["||",{"2":{"57":7}}],["|",{"2":{"57":67}}],["一",{"0":{"86":1}}],["一个插件",{"2":{"64":1}}],["一个插件jar有且只能有一个类被",{"2":{"57":1,"64":1}}],["一个项目用cool就够了",{"2":{"57":2}}],["一般抛异常写法",{"2":{"42":1}}],["`",{"2":{"57":10}}],["`update",{"2":{"57":1}}],["`create",{"2":{"57":1}}],["`params`",{"2":{"57":1}}],["`ip`",{"2":{"57":1}}],["`action`",{"2":{"57":1}}],["`base",{"2":{"57":1}}],["就是我们的插件包",{"2":{"65":1}}],["就可以在代码中调用插件的方法了",{"2":{"57":1}}],["就不需要在entity",{"2":{"14":1}}],["调整",{"2":{"101":4,"102":2}}],["调用其他插件",{"2":{"57":1}}],["调用其他插件aliyun",{"2":{"57":1}}],["调用主应用获取缓存",{"2":{"57":1}}],["调用主应用设置缓存",{"2":{"57":1}}],["调用主应用",{"2":{"57":3}}],["调用插件类",{"2":{"57":1}}],["调用",{"0":{"57":1}}],["调一调",{"2":{"37":1}}],["打开后台管理系统",{"2":{"56":1}}],["打包结果",{"2":{"65":1}}],["打包命令",{"2":{"65":1}}],["打包",{"0":{"65":1}}],["打包时可以排除",{"2":{"64":1}}],["打包前端镜像",{"2":{"33":1}}],["打包前后端代码",{"2":{"27":1}}],["打包后端镜像",{"2":{"33":1}}],["打包后端和前端镜像",{"2":{"32":1}}],["打包镜像之前",{"2":{"33":1}}],["打包镜像",{"0":{"33":1}}],["打包之前注意配置生产环境的数据库配置config",{"2":{"27":1}}],["然后在系统中安装插件包",{"2":{"56":1}}],["首先下载插件包",{"2":{"56":1}}],["首次启动会自动初始化并导入数据",{"2":{"51":1}}],["导致系统臃肿",{"2":{"54":1}}],["密码版本号",{"2":{"75":1}}],["密码",{"2":{"53":1,"91":1}}],["账户",{"2":{"53":1,"91":1}}],["账户密码不正确",{"2":{"42":1}}],["执行",{"2":{"97":1}}],["执行命令",{"2":{"53":1}}],["执行的过程中",{"2":{"21":1}}],["跟进nodejs",{"2":{"104":1}}],["跟",{"2":{"53":1}}],["跟分页查询一样",{"2":{"14":1}}],["端口",{"2":{"52":1}}],["服务",{"0":{"68":1},"1":{"69":1,"70":1}}],["服务启动成功",{"2":{"52":1}}],["服务器环境准备",{"2":{"27":1}}],["构建eps信息",{"2":{"52":1}}],["控制台打印出下面信息",{"2":{"52":1}}],["控制器",{"0":{"12":1},"1":{"13":1,"14":1,"15":1,"16":1},"2":{"101":1}}],["驱动已经内置",{"2":{"51":1}}],["建议尺寸",{"2":{"63":1}}],["建议",{"2":{"51":1}}],["建议将缓存换成",{"2":{"35":1}}],["yamlcool",{"2":{"72":1,"83":1}}],["yaml",{"2":{"51":1}}],["yamlspring",{"2":{"8":1}}],["yml",{"2":{"51":1,"83":1}}],["拉取源码",{"0":{"50":1}}],["拉取前后端代码",{"2":{"27":1,"32":1}}],["9000",{"2":{"53":1}}],["941+08",{"2":{"52":1}}],["9",{"2":{"48":1}}],["7天",{"2":{"72":1}}],["7版本",{"2":{"51":1}}],["7",{"2":{"48":1,"86":1}}],["500",{"2":{"81":2}}],["564+08",{"2":{"57":1}}],["559+08",{"2":{"57":1}}],["558+08",{"2":{"57":1}}],["557+08",{"2":{"57":1}}],["554+08",{"2":{"57":1}}],["556",{"2":{"52":1}}],["544+08",{"2":{"57":1}}],["543+08",{"2":{"57":2}}],["5",{"2":{"48":1,"57":8,"64":6,"86":1}}],["选择插件包进行安装",{"2":{"56":1}}],["选择",{"2":{"48":1,"86":1}}],["开启",{"2":{"97":1}}],["开放接口",{"2":{"77":1}}],["开始使用",{"2":{"47":1}}],["开发几乎不用写代码",{"2":{"89":1}}],["开发设计的",{"2":{"89":1}}],["开发过程",{"0":{"62":1}}],["开发过程只需点一点",{"2":{"37":1}}],["开发插件",{"0":{"59":1},"1":{"60":1,"61":1,"62":1,"63":1}}],["开发的时候无法调试",{"2":{"57":1}}],["开发的时候只是模拟",{"2":{"57":1}}],["开发的一个",{"2":{"8":1}}],["开发",{"2":{"43":1}}],["开发方式",{"0":{"36":1},"1":{"37":1,"38":1}}],["开发者可以从中方便的获取各种参数",{"2":{"15":1}}],["快速开始",{"0":{"47":1},"1":{"48":1,"49":1,"50":1,"51":1,"52":1,"53":1}}],["忽略",{"0":{"77":1},"1":{"78":1,"79":1},"2":{"77":1}}],["忽略权限控制的地址",{"2":{"73":1}}],["忽略记录请求日志url配置",{"2":{"102":1}}],["忽略记录请求日志url",{"2":{"46":1}}],["忽略url",{"2":{"46":1}}],["同级",{"2":{"53":1}}],["同时如果个别接口需要忽略记录请求日志",{"2":{"46":1}}],["同样也可以对",{"2":{"16":1}}],["记录日志",{"2":{"46":1}}],["记录接口请求日志入库",{"2":{"46":1}}],["加载权限表中所有操作请求权限",{"2":{"73":1}}],["加载成功后文件名称将被当作唯一键标识",{"2":{"44":1}}],["加上",{"2":{"61":1}}],["加锁",{"2":{"45":1}}],["否则使用",{"2":{"45":1}}],["否则你将无法正常访问你的",{"2":{"33":1}}],["锁工具",{"2":{"101":2}}],["锁是基于redis",{"2":{"45":1}}],["锁",{"0":{"45":1}}],["要新增一个",{"2":{"44":1}}],["初始化数据",{"2":{"101":1}}],["初始化数据json文件",{"2":{"40":1}}],["初始化eps完成",{"2":{"52":1}}],["初始化菜单数据",{"2":{"44":1}}],["初始化自定义的数据",{"2":{"44":1}}],["富文本参数",{"2":{"44":1}}],["规范",{"2":{"44":1}}],["规则为",{"2":{"18":1}}],["数组里可以包含多个对象",{"2":{"44":1}}],["数据有",{"2":{"90":1}}],["数据回收站",{"2":{"90":1}}],["数据回收站模块",{"2":{"40":1}}],["数据初始化完成",{"2":{"44":1}}],["数据初始化",{"0":{"44":1},"2":{"81":1}}],["数据脱敏",{"2":{"22":1}}],["数据脱敏等等",{"2":{"21":1}}],["数据填充",{"2":{"21":1,"22":1}}],["数据库初始数据初始化",{"2":{"44":1}}],["数据库",{"0":{"21":1},"1":{"22":1,"23":1,"24":1},"2":{"23":32}}],["格式如下",{"2":{"44":1}}],["目录下",{"2":{"65":1}}],["目录下创建",{"2":{"44":1}}],["目录创建",{"2":{"44":1}}],["目录结构",{"0":{"39":1,"61":1},"1":{"40":1}}],["相关配置",{"2":{"72":1}}],["相关应用",{"2":{"43":1}}],["相关的技术发展",{"2":{"89":1}}],["相关的",{"2":{"4":1}}],["很容易就能完成一个",{"2":{"43":1}}],["很多应用希望接入",{"2":{"43":1}}],["结尾",{"2":{"44":1}}],["结合知识库",{"2":{"43":1}}],["结构",{"0":{"40":1}}],["做为后来者有后发优势",{"2":{"89":1}}],["做了一个",{"2":{"43":1}}],["做解析",{"2":{"20":1}}],["于是我们面向开发者和软件开发公司",{"2":{"43":1}}],["容易把我们累死",{"2":{"43":1}}],["随着技术不断地发展",{"2":{"89":1}}],["随着",{"2":{"43":1}}],["视频演示",{"2":{"43":1}}],["流程编排插件",{"2":{"99":1}}],["流程编排功能",{"2":{"43":1}}],["流程编排",{"0":{"43":1},"2":{"89":1}}],["异常信息为",{"2":{"42":1}}],["异常统一捕获",{"0":{"42":1}}],["即抛异常",{"2":{"42":1}}],["手动抛异常",{"2":{"42":1}}],["手动进行转换",{"2":{"14":1}}],["业务key",{"2":{"81":1}}],["业务校验的工具",{"2":{"42":1}}],["业务代码放在这边",{"2":{"40":1}}],["系统异常信息日志记录和查询",{"2":{"90":1}}],["系统正常操作日志记录和查询",{"2":{"90":1}}],["系统通用",{"2":{"83":2}}],["系统的文件上传就会自动替换成云存储上传的方式",{"2":{"82":1}}],["系统启动完成访问",{"2":{"80":1}}],["系统启动的时候",{"2":{"73":1}}],["系统会查询并向spring",{"2":{"73":1}}],["系统提供了",{"2":{"42":1}}],["系统用户",{"2":{"40":1}}],["请求日志",{"2":{"90":1}}],["请求日志记录",{"0":{"46":1}}],["请求过程中会解析",{"2":{"75":1}}],["请求参数",{"0":{"15":1},"2":{"70":2}}],["请勿重复操作",{"2":{"45":1}}],["请区分post",{"2":{"42":1}}],["不要吝啬你们免费的star哦",{"2":{"92":1}}],["不像一般代码生成器生成一堆冗余代码",{"2":{"89":1}}],["不经过服务器",{"2":{"82":1}}],["不然调用时会报错",{"2":{"64":1}}],["不带声调",{"2":{"64":1}}],["不同的插件有不同的配置",{"2":{"62":1}}],["不会重复初始化",{"2":{"44":1}}],["不支持该请求方式",{"2":{"42":1}}],["不用写一行代码",{"2":{"37":1}}],["已存在该记录",{"2":{"42":1}}],["统一异常处理",{"0":{"41":1},"1":{"42":1}}],["包或其内部的类和资源",{"2":{"67":1}}],["包或类",{"2":{"67":1}}],["包具有以下几个显著的优势",{"2":{"67":1}}],["包的位置和版本",{"2":{"67":1}}],["包括本地文件系统",{"2":{"67":1}}],["包括一些核心的组件工具",{"2":{"40":1}}],["包时会想该插件注入",{"2":{"57":1}}],["包下创建",{"2":{"40":1}}],["包",{"2":{"40":1,"67":3}}],["按照简单",{"2":{"85":1}}],["按上面的包结构新增即可",{"2":{"40":1}}],["按规则组装",{"2":{"20":1}}],["为什么选择",{"0":{"89":1}}],["为排除引入",{"2":{"64":1}}],["为引入",{"2":{"64":1}}],["为主应用",{"2":{"58":1}}],["为插件key",{"2":{"57":1}}],["为例",{"2":{"51":1}}],["为对应的值",{"2":{"44":1}}],["为表的字段",{"2":{"44":1}}],["为表的名称",{"2":{"44":1}}],["为业务模块",{"2":{"40":1}}],["为核心模块",{"2":{"40":1}}],["为了使项目能够持续",{"2":{"92":1}}],["为了开发插件如果引入了主应用已经有的maven依赖可以在下面的",{"2":{"64":2}}],["为了方便开发插件和统一插件开发规范",{"2":{"60":1}}],["为了方便获取参数",{"2":{"15":1}}],["为了丰富系统功能",{"2":{"54":1}}],["为了不过多依赖环境",{"2":{"8":1}}],["插件可以在打包的时候将在我们",{"2":{"64":1}}],["插件详解",{"0":{"64":1}}],["插件配置",{"2":{"63":1}}],["插件介绍",{"2":{"63":1}}],["插件",{"2":{"63":1,"99":1}}],["插件钩子",{"2":{"63":1}}],["插件唯一标识",{"2":{"63":1}}],["插件描述",{"2":{"62":1,"63":1}}],["插件运行测试类",{"2":{"61":1}}],["插件信息配置文件",{"2":{"61":1}}],["插件类放在这个包下",{"2":{"61":1}}],["插件包",{"2":{"61":1}}],["插件包可以通过官网下载插件",{"2":{"56":1}}],["插件方法",{"2":{"57":1,"64":1}}],["插件管理",{"2":{"56":1}}],["插件模块",{"2":{"40":1}}],["插件分享等",{"2":{"6":1}}],["插件分享等内容",{"2":{"4":1}}],["角色菜单权限分配",{"2":{"90":1}}],["角色管理",{"2":{"90":1}}],["角色数组",{"2":{"63":1,"75":1}}],["角色",{"2":{"40":1}}],["资源目录下的文件",{"2":{"58":1}}],["资源文件",{"2":{"40":1}}],["资源",{"2":{"40":1,"67":1}}],["菜单管理",{"2":{"90":1}}],["菜单",{"2":{"40":1}}],["└─",{"2":{"40":8,"61":7}}],["└──",{"2":{"18":6}}],["核心包",{"2":{"40":1,"61":1}}],["├─core",{"2":{"61":1}}],["├─",{"2":{"40":15,"61":3}}],["├──",{"2":{"18":1}}],["清晰明了便于管理",{"2":{"39":1}}],["组件会根据字段智能选择",{"2":{"38":1}}],["零代码开发",{"2":{"37":1}}],["全自动",{"0":{"37":1}}],["提高了代码的可维护性",{"2":{"67":1}}],["提高开发效率",{"2":{"36":1}}],["提示",{"2":{"40":1}}],["提供了极大的灵活性",{"2":{"67":1}}],["提供了简化的业务异常抛出工具",{"2":{"41":1}}],["提供了非常灵活的",{"2":{"21":1}}],["提供了一种高效且可靠的解决方案",{"2":{"8":1}}],["降低开发成本",{"2":{"36":1}}],["推荐",{"2":{"48":2,"97":1}}],["推荐两种快速开发方式",{"2":{"36":1}}],["推荐使用",{"0":{"28":1}}],["防止上传恶意文件等",{"2":{"83":1}}],["防止操作不当导致的数据丢失",{"2":{"35":1}}],["防止刷新404",{"2":{"30":1}}],["文件管理",{"2":{"90":1}}],["文件管理模块",{"2":{"40":1}}],["文件存放路径",{"2":{"83":1}}],["文件根地址",{"2":{"83":1}}],["文件等",{"2":{"67":1}}],["文件上传插件",{"2":{"99":1}}],["文件上传模式",{"2":{"83":1}}],["文件上传相关",{"2":{"83":1}}],["文件上传",{"0":{"82":1},"2":{"66":1,"83":1}}],["文件上传换成云存储",{"2":{"35":1}}],["文件内容",{"2":{"57":1}}],["文件后",{"2":{"44":1}}],["文件",{"2":{"38":1,"40":1,"44":2,"83":1}}],["文档",{"0":{"80":1,"95":1},"2":{"1":1}}],["运行结果",{"2":{"57":1}}],["运行系统",{"0":{"49":1},"1":{"50":1,"51":1,"52":1,"53":1}}],["运行代码生成器",{"2":{"38":1}}],["运行",{"0":{"34":1}}],["运行后端",{"2":{"34":2}}],["运行后端和前端",{"2":{"32":1}}],["运行后端服务",{"0":{"29":1}}],["让前端能够自动生成eps",{"2":{"33":1}}],["创建实体类生成表",{"2":{"38":1}}],["创建docker",{"2":{"33":1}}],["创建",{"2":{"32":1,"44":1}}],["持久化连接相关配置",{"2":{"30":1}}],["持续添加更多的数据库支持",{"2":{"23":1}}],["$",{"2":{"83":1}}],["$1",{"2":{"30":1}}],["$upstream",{"2":{"30":1}}],["$uri",{"2":{"30":2}}],["$http",{"2":{"30":2}}],["$host$request",{"2":{"30":1}}],["$host",{"2":{"30":2}}],["$proxy",{"2":{"30":2}}],["$remote",{"2":{"30":5}}],["访问http",{"2":{"53":1}}],["访问如果登录页正常出现验证码",{"2":{"32":1}}],["访问",{"2":{"30":1,"52":1}}],["访问域名",{"2":{"27":1}}],["8",{"2":{"48":1,"51":2,"57":1,"64":3}}],["80",{"2":{"34":2}}],["8001",{"2":{"30":1,"34":2,"52":2,"57":5,"80":1}}],["86400s",{"2":{"30":1}}],["8s",{"2":{"23":2}}],["403",{"2":{"73":1}}],["401",{"2":{"73":1}}],["4b57",{"2":{"64":1}}],["47ac",{"2":{"64":1}}],["4fd03504",{"2":{"64":1}}],["46",{"2":{"52":1}}],["45",{"2":{"52":3}}],["4",{"0":{"30":1,"53":1,"63":1},"2":{"64":2,"67":1,"73":1}}],["日志",{"2":{"29":1}}],["改成自己的应用名称",{"2":{"29":1}}],["表示访问服务端接口而不是静态资源",{"2":{"30":1}}],["表示",{"2":{"29":2}}],["表单",{"2":{"15":1}}],["方便一张图片使用在多种场景",{"2":{"83":1}}],["方式",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"31":1,"75":1}}],["方式启动",{"2":{"29":1}}],["方法上",{"0":{"78":1}}],["方法去调用主应用的一些对象方法",{"2":{"57":1}}],["方法第一个参数如果为",{"2":{"42":1}}],["方法",{"2":{"20":1,"57":5}}],["重启生成表",{"2":{"38":1}}],["重启",{"2":{"29":1}}],["重启某个服务",{"2":{"29":1}}],["重写",{"0":{"20":1}}],["重写逻辑",{"2":{"16":2}}],["重写实现",{"0":{"16":1}}],["停止某个服务",{"2":{"29":1}}],["启动",{"2":{"53":1}}],["启动前端服务",{"0":{"53":1}}],["启动文件",{"2":{"52":1}}],["启动后端服务",{"0":{"52":1}}],["启动一个服务",{"2":{"29":1}}],["启动服务",{"2":{"27":1}}],["命令行安装",{"2":{"29":1}}],["32",{"2":{"64":1}}],["32615",{"2":{"57":8}}],["3c64059230d0",{"2":{"64":1}}],["31908",{"2":{"52":4}}],["383+08",{"2":{"52":1}}],["382+08",{"2":{"52":1}}],["38",{"2":{"52":4}}],["3306",{"2":{"51":1}}],["3600s",{"2":{"30":3}}],["3",{"0":{"29":1,"34":1,"52":1,"58":1,"62":1,"101":1},"2":{"48":2,"52":1,"64":1,"67":1,"73":1,"86":1,"87":1}}],["3000s",{"2":{"30":2}}],["302",{"2":{"30":1}}],["301",{"2":{"30":1}}],["304",{"2":{"30":1}}],["30",{"2":{"11":1}}],["27",{"0":{"104":1}}],["25",{"0":{"101":1}}],["256x256",{"2":{"63":1}}],["26",{"2":{"64":3}}],["20",{"2":{"81":1}}],["2024",{"0":{"101":1,"102":1,"103":1,"104":1},"2":{"52":4,"57":8}}],["200",{"2":{"30":1}}],["2b8",{"2":{"51":1}}],["2",{"0":{"28":1,"33":1,"51":1,"57":1,"61":1,"102":1},"2":{"64":5,"67":2,"73":1}}],["到后端服务",{"2":{"27":1}}],["所以需要配置",{"2":{"27":1}}],["所有的",{"2":{"12":1}}],["安全考虑生产环境不会自动初始化数据库",{"2":{"27":1}}],["安装云存储插件",{"2":{"82":1}}],["安装插件将打包好的",{"2":{"66":1}}],["安装插件",{"0":{"66":1}}],["安装插件之后",{"2":{"57":1}}],["安装",{"0":{"56":1},"2":{"28":1}}],["安装依赖",{"0":{"28":1},"2":{"27":1,"53":1}}],["安装宝塔",{"2":{"27":1}}],["恭喜你",{"2":{"27":1,"32":1}}],["反向代理",{"2":{"27":2}}],["编写实体类",{"2":{"38":1}}],["编译打包后端服务",{"2":{"27":1}}],["编码",{"0":{"7":1},"2":{"89":1}}],["上传模式",{"2":{"83":1}}],["上传前后端代码到服务器",{"2":{"27":1}}],["上面只是个例子",{"2":{"62":1}}],["上加了这个注解后",{"2":{"20":1}}],["官方多环境配置文档",{"2":{"27":1}}],["官网文档",{"2":{"21":1}}],["官网",{"2":{"1":1,"28":1}}],["查看服务的输出日志",{"2":{"29":1}}],["查看",{"2":{"27":1}}],["查询该用户所具有的权限并缓存",{"2":{"73":1}}],["查询模式querymodeenum",{"2":{"14":1}}],["查询连表字段",{"2":{"14":1}}],["查询另一张表的字段",{"2":{"14":1}}],["查询配置",{"0":{"14":1}}],["查询列表",{"2":{"13":1}}],["查询条件过滤",{"2":{"13":1,"15":1,"16":1,"80":1}}],["本地上传配置",{"2":{"83":1}}],["本地上传",{"2":{"82":1}}],["本地配置完数据库运行",{"2":{"27":1,"32":1}}],["本部署教程以",{"2":{"26":1}}],["本身",{"2":{"21":1}}],["普通方式",{"0":{"26":1},"1":{"27":1,"28":1,"29":1,"30":1}}],["以往的框架已经越来越不能满足现代化的开发需求",{"2":{"89":1}}],["以",{"2":{"51":1}}],["以下包会打入jar",{"2":{"64":1}}],["以下是我们的一些计划",{"2":{"98":1}}],["以下是",{"2":{"31":1}}],["以下教程以",{"2":{"25":1}}],["以宝塔为例",{"0":{"27":1,"32":1}}],["以上包在主应用已经引入",{"2":{"64":1}}],["以上内容来自第三方相关产品的官方文档或第三方平台",{"2":{"22":1}}],["以上是针对entity单表查询方式",{"2":{"14":1}}],["低价云服务器推荐",{"2":{"25":1}}],["🔥",{"2":{"25":1}}],["因为有你们的支持",{"2":{"100":1}}],["因为这可能会造成数据丢失",{"2":{"24":1}}],["因此如果你需要开发",{"2":{"43":1}}],["因此会带来指数级的性能增长",{"2":{"21":1}}],["因此会带来更高的自主性",{"2":{"21":1}}],["切勿在生产环境开启自动建表功能",{"2":{"24":1}}],["并异步进行刷新用户权限",{"2":{"101":1}}],["并可以在init方法中初始化返回字段类型及数据组装函数定义",{"2":{"101":1}}],["并将用户信息存在整个请求过程中的",{"2":{"75":1}}],["并实现",{"2":{"57":1,"64":1}}],["并实现值的插入",{"2":{"44":1}}],["并定义表数据",{"2":{"44":1}}],["并且支持表字段的修改",{"2":{"24":1}}],["并重写了",{"2":{"20":1}}],["节省了大量手动工作",{"2":{"24":1}}],["尤其是开发过程中频繁的新增表及变更表结构",{"2":{"24":1}}],["列出当前的服务",{"2":{"29":1}}],["列的配置",{"2":{"24":1}}],["列表查询",{"2":{"14":1}}],["而不用一味地堆功能",{"2":{"54":1}}],["而不需要关心数据库的表",{"2":{"24":1}}],["而是也非常不灵活",{"2":{"43":1}}],["而是对它做一层封装",{"2":{"20":1}}],["有且只能有一个类被",{"2":{"64":1}}],["有时候开发时的配置和生产环境的配置是不一样的",{"2":{"58":1}}],["有些功能模块上线时",{"2":{"44":1}}],["有了该文件",{"2":{"33":1}}],["有一项重要的能力就是表结构自动维护",{"2":{"24":1}}],["有兴趣的可以关注我们",{"2":{"4":1}}],["用法",{"2":{"81":1}}],["用来判定用户是否有此权限",{"2":{"73":1}}],["用configattribute的集合作为value",{"2":{"73":1}}],["用权限的path作为map的key",{"2":{"73":1}}],["用户是系统操作者",{"2":{"90":1}}],["用户管理",{"2":{"90":1}}],["用户管理模块",{"2":{"40":1}}],["用户",{"2":{"75":1}}],["用户详情",{"2":{"73":1}}],["用户名",{"2":{"75":1}}],["用户名不存在",{"2":{"73":1}}],["用户名已存在",{"2":{"41":1,"42":3}}],["用户登录",{"2":{"73":1}}],["用户id",{"2":{"14":1}}],["用过",{"2":{"24":1}}],["理论上你只需修改一些不兼容的代码就可以正常运行了",{"2":{"23":1}}],["那样工作量太大了",{"2":{"23":1}}],["是",{"2":{"67":1}}],["是插件的配置信息",{"2":{"62":1}}],["是具体的业务框架",{"2":{"23":1}}],["是否支持在微服务项目下进行",{"2":{"22":1}}],["但是每次都是用代码手搓",{"2":{"43":1}}],["但是它为我们提供了改造的可能",{"2":{"23":1}}],["但是",{"2":{"23":1}}],["虽然",{"2":{"23":1}}],["星瑞格数据库",{"2":{"23":1}}],["华为",{"2":{"23":1}}],["华库",{"2":{"23":1}}],["亚马逊",{"2":{"23":1}}],["行云数据库",{"2":{"23":1}}],["瀚高数据库",{"2":{"23":1}}],["神通数据库",{"2":{"23":1}}],["南大通用数据库",{"2":{"23":1}}],["南大通用",{"2":{"23":1}}],["人大金仓数据库",{"2":{"23":1}}],["kyi=",{"2":{"57":1}}],["kingbasees",{"2":{"23":1}}],["keyname",{"2":{"44":2}}],["keyword",{"2":{"14":1}}],["keywordlikefields",{"2":{"14":1}}],["key",{"2":{"9":1,"30":1,"44":1,"45":3,"57":4,"62":1,"63":1,"81":2}}],["虚谷数据库",{"2":{"23":1}}],["达梦数据库",{"2":{"23":1}}],["及以上数据库",{"2":{"23":1}}],["及以下数据库",{"2":{"23":1}}],["及更高性能",{"2":{"22":1}}],["描述",{"2":{"23":1,"81":1}}],["欢迎联系我们",{"2":{"98":1}}],["欢迎提交pr",{"2":{"95":1}}],["欢迎纠正",{"2":{"22":1}}],["欢迎加入我们大家庭一起讨论",{"2":{"2":1}}],["若有错误",{"2":{"22":1}}],["项目中常见的问题",{"2":{"96":1}}],["项目是开源免费",{"2":{"92":1}}],["项目是前后端分离的",{"2":{"50":1}}],["项目启动自动插入数据参考",{"2":{"81":1}}],["项目按照模块化的方式组织",{"2":{"39":1}}],["项目部署",{"0":{"25":1},"1":{"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1}}],["项目",{"2":{"22":1}}],["非低代码",{"2":{"37":1}}],["非",{"2":{"22":1}}],["quot",{"2":{"22":2,"41":2,"42":2}}],["querymodeenum",{"2":{"14":2}}],["querywrapper",{"2":{"14":6,"16":3,"21":1,"22":1}}],["query",{"2":{"11":1,"14":1}}],["和",{"2":{"22":1}}],["和传统的",{"2":{"16":1}}],["比如orderid",{"2":{"81":1}}],["比如替换系统的上传组件",{"2":{"63":1}}],["比如你有一个订单管理的模块",{"2":{"40":1}}],["比如",{"2":{"22":1,"44":1,"57":1}}],["借助其他框架或收费",{"2":{"22":1}}],["字典管理",{"2":{"90":1}}],["字典信息",{"2":{"79":1}}],["字典回写",{"2":{"22":1}}],["字段",{"2":{"63":1,"75":1}}],["字段解释",{"0":{"63":1}}],["字段模块",{"2":{"40":1}}],["字段加密",{"2":{"22":1}}],["字段权限",{"2":{"22":1}}],["字段的",{"2":{"22":1}}],["字段全匹配",{"2":{"14":1}}],["收费",{"2":{"22":4}}],["✔️",{"2":{"22":4}}],["审计",{"2":{"22":1}}],["乐观锁",{"2":{"22":1}}],["乐观锁更新",{"2":{"21":1}}],["未知",{"2":{"22":1}}],["传输",{"2":{"22":1}}],["无论是注解在方法还是类上",{"2":{"79":1}}],["无需授权的",{"2":{"92":1}}],["无需安装",{"2":{"51":1}}],["无需手动通过",{"2":{"42":1}}],["无需额外安装软件",{"2":{"8":1}}],["无法做到全部支持",{"2":{"23":1}}],["无其他第三方依赖",{"2":{"22":1}}],["配置完数据库直接启动",{"2":{"97":1}}],["配置系统菜单",{"2":{"90":1}}],["配置插件信息",{"2":{"62":1}}],["配置文件位于src",{"2":{"51":1}}],["配置数据库",{"0":{"51":1}}],["配置点3",{"2":{"30":1}}],["配置点2",{"2":{"30":1}}],["配置点1",{"2":{"30":1}}],["配置示例",{"0":{"30":1}}],["配置淘宝镜像",{"2":{"28":1}}],["配置",{"0":{"58":1,"72":1},"2":{"22":1,"27":1}}],["复合主键",{"2":{"22":1}}],["生成",{"2":{"38":1}}],["生成前端代码",{"2":{"38":1}}],["生成后端代码",{"2":{"38":1}}],["生成策略",{"2":{"22":1}}],["生成的路由前缀为",{"2":{"18":1}}],["解析设计",{"2":{"22":1}}],["❌",{"2":{"22":30}}],["✅",{"2":{"22":51}}],["功能",{"2":{"97":1}}],["功能几乎跟nodejs",{"2":{"91":1}}],["功能或特点",{"2":{"22":1}}],["功能对比",{"0":{"22":1}}],["拦截器",{"2":{"21":1}}],["没有可初始化的插件",{"2":{"52":1}}],["没有任何的",{"2":{"21":1}}],["没有任何",{"2":{"21":1}}],["没有设置astype",{"2":{"14":1}}],["高性能",{"2":{"21":1}}],["高效的缓存解决方案",{"2":{"8":1}}],["逻辑删除",{"2":{"21":1,"22":1}}],["多租户",{"2":{"22":1}}],["多数据源是否支持",{"2":{"22":2}}],["多数据源支持",{"2":{"22":1}}],["多种",{"2":{"22":1}}],["多张表",{"2":{"22":1}}],["多主键",{"2":{"21":1}}],["多表查询",{"2":{"21":1,"22":3}}],["稳定性越差",{"2":{"21":1}}],["依赖越多",{"2":{"21":1}}],["在线",{"2":{"90":1}}],["在线演示",{"2":{"7":1}}],["在修改数据之前或之后做一些处理",{"2":{"70":1}}],["在后台插件管理页面",{"2":{"66":1}}],["在后台插件管理里可以动态修改",{"2":{"62":1}}],["在执行打包的过程",{"2":{"64":1}}],["在我们脚手架上你可以发现",{"2":{"64":1}}],["在开发过程中如果需要引入第三方类库",{"2":{"64":1}}],["在提供的插件脚手架中已经应用了常用的依赖如",{"2":{"64":1}}],["在插件导入时才能被识别到",{"2":{"64":1}}],["在打包的时候选择要打包的插件",{"2":{"61":1}}],["在加载",{"2":{"57":1}}],["在项目编译的时候会自动生成这些文件",{"2":{"97":1}}],["在项目根目录下",{"2":{"53":1}}],["在项目启动的时候会去加载该文件",{"2":{"44":1}}],["在某个版本需要新增数据的话",{"2":{"44":1}}],["在新增功能模块时",{"2":{"40":1}}],["在",{"2":{"21":1,"40":2,"42":1,"44":1,"65":1,"67":1}}],["在任何一个系统中",{"2":{"21":1}}],["把控性和稳定性",{"2":{"21":1}}],["再无任何第三方依赖",{"2":{"21":1}}],["除了",{"2":{"21":1,"22":1,"23":1}}],["更新",{"0":{"100":1},"1":{"101":1,"102":1,"103":1,"104":1}}],["更灵活",{"2":{"21":1}}],["更轻量",{"2":{"21":1,"22":2}}],["更加强大的",{"2":{"21":1}}],["更加简洁",{"2":{"12":1}}],["详细用法请查看",{"2":{"21":1}}],["集成了比",{"2":{"21":1}}],["根据",{"2":{"24":1}}],["根据一定规则生成",{"2":{"20":1}}],["根据列表查询单个信息",{"2":{"13":1}}],["该功能主要完成系统用户配置",{"2":{"90":1}}],["该文件是前端自动扫描后端接口生成的",{"2":{"33":1}}],["该类继承了",{"2":{"20":1}}],["该父类已经实现了以下六个基础方法",{"2":{"12":1}}],["自动编码功能",{"2":{"103":1}}],["自动生成前端页面",{"2":{"38":1}}],["自动映射成数据库的表结构",{"2":{"24":1}}],["自动建表",{"0":{"24":1}}],["自带的注解",{"2":{"20":1}}],["自定义路由注解",{"0":{"19":1}}],["自定义类型默认为",{"2":{"14":1}}],["自定义场景主要使用在关联表查询插件",{"2":{"14":1}}],["自定义查询模式",{"2":{"14":1}}],["自定义的查询方式",{"2":{"14":1}}],["转成小写替换掉",{"2":{"18":1}}],["与前端紧密结合",{"2":{"82":1}}],["与",{"2":{"18":1,"71":1}}],["x26",{"2":{"51":2}}],["xml",{"2":{"40":1,"64":2,"65":2}}],["x",{"2":{"30":7,"57":1,"87":1,"104":1}}],["xcloud",{"2":{"23":1}}],["xugu",{"2":{"23":1}}],["xxxxx",{"2":{"58":2}}],["xxx",{"2":{"18":2,"57":2,"62":2}}],["x3c",{"2":{"13":1,"14":4,"15":1,"16":5,"20":1,"42":2,"57":1,"64":81,"65":4,"73":13,"80":1,"81":1}}],["模块化",{"2":{"67":1}}],["模块包",{"2":{"40":1}}],["模块名和",{"2":{"18":1}}],["模块名",{"2":{"18":2}}],["模块目录",{"2":{"18":1}}],["│─",{"2":{"61":1}}],["│",{"2":{"18":17,"40":36,"61":12}}],["原理参考美团点评分布式id",{"2":{"81":1}}],["原理",{"0":{"17":1,"73":1},"1":{"18":1,"19":1,"20":1}}],["原生",{"2":{"9":1}}],["接口的请求入参日志",{"2":{"90":1}}],["接口",{"2":{"18":1,"33":1}}],["接口路由规则",{"0":{"18":1}}],["接口到前端页面的一键生成",{"2":{"7":1,"37":1}}],["接下来我们看看实现的原理",{"2":{"16":1}}],["对系统中经常使用的一些较为固定的数据进行维护",{"2":{"90":1}}],["对系统动态配置常用参数",{"2":{"90":1}}],["对应实体",{"2":{"70":2}}],["对应插件内的方法",{"2":{"57":1}}],["对应请求参数中的",{"2":{"14":1}}],["对应请求参数中同名参数",{"2":{"14":1}}],["对",{"2":{"22":1}}],["对比一下是简化了不少",{"2":{"16":1}}],["进行重写",{"2":{"16":1}}],["中获得",{"2":{"75":1}}],["中实现动态加载",{"2":{"67":1}}],["中的",{"2":{"65":1}}],["中排除掉不打入jar",{"2":{"64":2}}],["中重写方法",{"2":{"16":1}}],["中加非存储数据库的字段",{"2":{"14":1}}],["rawpassword",{"2":{"73":4}}],["rich",{"2":{"44":1}}],["runtimeexception",{"2":{"64":1}}],["run",{"2":{"34":2,"44":1,"53":1}}],["roleids",{"2":{"73":3,"75":1}}],["root",{"2":{"29":1,"30":1,"51":1}}],["row",{"2":{"22":1}}],["rpc",{"2":{"22":1}}],["r",{"2":{"15":2,"16":1,"42":17,"75":1,"78":2,"83":4}}],["refreshtoken可以当token使用问题",{"2":{"102":1}}],["refreshexpire",{"2":{"72":1}}],["replace",{"2":{"73":1}}],["replaceall",{"2":{"73":1}}],["record",{"2":{"46":1}}],["recycle",{"2":{"40":1}}],["reentrantlock",{"2":{"45":1}}],["required",{"2":{"83":1}}],["requiredargsconstructor",{"2":{"44":1,"45":1,"57":2,"83":1}}],["requirenonnull",{"2":{"45":1}}],["requestpart",{"2":{"83":1}}],["requestparam",{"2":{"57":3}}],["requestparams",{"2":{"13":1,"14":2,"15":4,"16":5,"42":4,"46":1,"70":4,"75":2,"80":1}}],["requestmatchers",{"2":{"73":1}}],["requestmappinginfo",{"2":{"20":2}}],["requestmappinghandlermapping",{"2":{"20":2}}],["requestmapping",{"2":{"19":2,"57":1}}],["requestcontextholder",{"2":{"45":1}}],["requestattribute",{"2":{"15":1,"75":1}}],["request",{"2":{"13":1,"14":2,"15":1,"16":1,"45":2,"46":3,"73":2,"80":1,"83":2}}],["requests",{"2":{"0":1}}],["remark",{"2":{"44":2}}],["remote",{"2":{"30":2}}],["rewrite",{"2":{"30":1}}],["readme",{"2":{"62":2,"63":1}}],["readbytes",{"2":{"57":1}}],["read",{"2":{"30":2}}],["real",{"2":{"30":2}}],["registry",{"2":{"28":2}}],["redirect",{"2":{"30":1}}],["redis",{"2":{"8":6,"35":1}}],["redshift",{"2":{"23":2}}],["relationonetomany",{"2":{"14":2}}],["relations",{"2":{"14":2}}],["response",{"2":{"73":2}}],["responsebody",{"2":{"57":2}}],["restaccessdeniedhandler",{"2":{"73":3}}],["restart",{"2":{"29":2}}],["restcontrolleradvice",{"2":{"42":1}}],["result",{"2":{"11":3,"57":8}}],["resources",{"2":{"40":1,"44":1,"51":1,"58":2,"61":1}}],["resource",{"2":{"10":1,"46":1,"73":10}}],["return",{"2":{"9":1,"10":1,"11":3,"15":1,"16":2,"20":1,"42":8,"45":1,"57":2,"64":1,"73":13,"78":1,"83":2}}],["将由以下这个类实现自动配置模块路由",{"2":{"20":1}}],["将",{"2":{"15":1}}],["gitcode",{"2":{"93":1,"94":1}}],["gitee",{"2":{"60":1,"93":1,"94":1,"95":1}}],["github",{"2":{"60":1,"93":1,"94":1,"95":1}}],["grantedauthority>",{"2":{"73":1}}],["graalvm",{"2":{"48":1,"86":1}}],["groupid>org",{"2":{"64":1}}],["groupid>com",{"2":{"64":1}}],["groupid>cn",{"2":{"64":1}}],["groupid>",{"2":{"64":3}}],["greenplum",{"2":{"23":2}}],["gt",{"2":{"48":3,"51":1,"86":3,"97":3}}],["g",{"2":{"28":1,"29":1}}],["goal>",{"2":{"64":1}}],["goal>shade",{"2":{"64":1}}],["goals>",{"2":{"64":2}}],["goldilocks",{"2":{"23":2}}],["goodslist",{"2":{"14":1}}],["gbase",{"2":{"23":3}}],["gauss",{"2":{"23":2}}],["getbytes",{"2":{"73":2}}],["geturls",{"2":{"73":1}}],["getusername",{"2":{"42":4,"73":3}}],["getsecureobjectclass",{"2":{"73":1}}],["getstatus",{"2":{"73":2}}],["getstr",{"2":{"15":1}}],["getroles",{"2":{"73":1}}],["getresponse",{"2":{"73":1}}],["getresourceasstream",{"2":{"57":1}}],["getrequesturl",{"2":{"73":1}}],["getrequesturi",{"2":{"45":1}}],["getrequest",{"2":{"45":1,"73":1}}],["getrequestattributes",{"2":{"45":1}}],["getdepartmentidsbyroleids",{"2":{"73":1}}],["getperms",{"2":{"73":1}}],["getparent",{"2":{"57":1}}],["getparentresource",{"2":{"57":2}}],["getpasswordv",{"2":{"73":1}}],["getpassword",{"2":{"42":2,"73":1}}],["getinstance",{"2":{"57":1}}],["getid",{"2":{"42":2,"73":6}}],["getapp",{"2":{"78":1}}],["getadminuserinfo",{"2":{"75":1}}],["getadminusername",{"2":{"75":1}}],["getauthenticationmanager",{"2":{"73":1}}],["getallconfigattributes",{"2":{"73":1}}],["getallperms",{"2":{"73":1}}],["getabsolutepath",{"2":{"67":1}}],["getattributes",{"2":{"73":1}}],["getattribute",{"2":{"46":1}}],["getannotationsbytype",{"2":{"20":1}}],["getone",{"2":{"42":2,"73":1}}],["get等请求方式是否正确",{"2":{"42":1}}],["getmode",{"2":{"83":1}}],["getmapping",{"2":{"75":1,"78":1,"83":1}}],["getmappingformethod",{"0":{"20":1},"2":{"20":3}}],["getmessage",{"2":{"42":7}}],["getchain",{"2":{"73":1}}],["getcontextclassloader",{"2":{"67":1}}],["getcode",{"2":{"42":1}}],["getclassloader",{"2":{"57":1}}],["getclass",{"2":{"57":1}}],["getcurrentuserid",{"2":{"14":1,"45":1,"75":1,"76":1}}],["getter",{"2":{"14":1}}],["getnum",{"2":{"11":1}}],["getlogistics",{"2":{"11":1}}],["get",{"2":{"10":1,"11":2,"13":1,"14":2,"57":2,"64":1,"73":1}}],["订单id",{"2":{"81":1}}],["订单商品列表",{"2":{"14":1}}],["订单信息",{"2":{"14":1}}],["订单产品列表也一并查出",{"2":{"14":1}}],["关联查询用法参考",{"2":{"14":1}}],["如文件上传",{"2":{"103":1}}],["如支付",{"2":{"89":1}}],["如不占用主服务器带宽",{"2":{"83":1}}],["如阿里云",{"2":{"82":1}}],["如我们这边示例使用到了中文转拼音",{"2":{"64":1}}],["如",{"2":{"35":1,"82":1,"83":1}}],["如下防重复提交",{"2":{"45":1}}],["如下表格所示",{"2":{"23":1}}],["如下面这个订单查询",{"2":{"14":1}}],["如果方便请点下",{"2":{"100":1}}],["如果你有更好的建议",{"2":{"98":1}}],["如果你是自动化部署",{"2":{"33":1}}],["如果文档有缺失",{"2":{"95":1}}],["如果不在权限表中则放行",{"2":{"73":1}}],["如果不满足需求",{"2":{"16":1}}],["如果在权限表中",{"2":{"73":1}}],["如果在原文件直接修改将不生效",{"2":{"44":1}}],["如果项目中启用了redis",{"2":{"45":1}}],["如果同一张表历史已经有初始化过数据",{"2":{"44":1}}],["如果没效",{"2":{"30":1}}],["如果一切正常",{"2":{"27":1}}],["如果我们有需要连表查询",{"2":{"14":1}}],["如果我们的项目对你有用",{"2":{"2":1}}],["web",{"2":{"57":4}}],["wrappers",{"2":{"42":2,"73":1}}],["without",{"2":{"64":1}}],["with",{"2":{"14":1}}],["wuliu",{"2":{"11":1}}],["还可以对图片进行各种如压缩",{"2":{"83":1}}],["还可以了解到一些前沿的技术",{"2":{"4":1}}],["还有",{"2":{"14":1}}],["也可以注解在类上",{"2":{"79":1}}],["也可以使用别人开发的插件",{"2":{"54":1}}],["也可以自己定义vo",{"2":{"14":1}}],["也希望广大开发者粉丝帮助完善文档",{"2":{"0":1}}],["实际开发中可以根据自己的需求来配置",{"2":{"62":1}}],["实现功能可插拔",{"2":{"90":1}}],["实现应用程序的快速扩展和升级",{"2":{"67":1}}],["实现方法",{"2":{"67":1}}],["实现动态加载的技术方案",{"2":{"67":1}}],["实现原理",{"0":{"67":1}}],["实现",{"2":{"45":1}}],["实现简单功能从",{"2":{"7":1,"37":1}}],["实例数量",{"2":{"29":1}}],["实体需以",{"2":{"44":1}}],["实体中",{"2":{"14":1}}],["实体",{"2":{"14":1,"24":1}}],["默认集成springdoc",{"2":{"80":1}}],["默认账户密码",{"2":{"53":1}}],["默认忽略app端接口",{"2":{"46":1}}],["默认的日志位置",{"2":{"29":1}}],["默认实现了通用的六个接口方法",{"2":{"16":1}}],["默认实现了两种缓存",{"2":{"8":1}}],["默认为map",{"2":{"14":1}}],["默认为entity",{"2":{"14":1}}],["默认转成map",{"2":{"14":1}}],["连表查询",{"2":{"14":1}}],["utf",{"2":{"57":1}}],["util",{"2":{"57":4}}],["uniindex",{"2":{"81":1}}],["union",{"2":{"22":2}}],["unlock",{"2":{"45":1}}],["ui",{"2":{"38":1,"80":1,"88":1}}],["uploadmode",{"2":{"83":2}}],["upload",{"2":{"63":1,"83":3}}],["upgrade",{"2":{"30":6}}],["updates",{"2":{"57":1}}],["update",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"79":1,"80":1}}],["uri$is",{"2":{"30":1}}],["urlclassloader",{"2":{"67":2}}],["url",{"2":{"15":1,"51":1,"67":3,"73":2,"83":1}}],["uxdb",{"2":{"23":1}}],["useplugin",{"2":{"57":2}}],["usecache",{"2":{"57":2}}],["useunicode=true",{"2":{"51":1}}],["usestatus",{"2":{"14":1}}],["userinfo",{"2":{"73":1,"75":2}}],["userid",{"2":{"14":1,"75":2,"76":1}}],["userdetails",{"2":{"73":2}}],["userdetailsservice",{"2":{"73":4}}],["usernamepasswordauthenticationfilter",{"2":{"73":1}}],["usernamenotfoundexception",{"2":{"73":2}}],["username",{"2":{"51":1,"73":2,"75":2}}],["user",{"2":{"14":5,"15":2,"40":1}}],["element",{"2":{"88":1}}],["else",{"2":{"57":1}}],["encodedpassword",{"2":{"73":2}}],["encode",{"2":{"73":1}}],["entrypointunauthorizedhandler",{"2":{"73":3}}],["entity",{"2":{"14":8,"22":2,"40":2,"42":12,"44":1}}],["enablewebsecurity",{"2":{"73":1}}],["epsevent",{"2":{"52":1}}],["eps",{"2":{"52":2,"78":2}}],["error",{"2":{"42":10}}],["e",{"2":{"42":19,"64":2}}],["expression",{"2":{"64":2}}],["expire",{"2":{"72":1}}],["expiretime",{"2":{"45":1}}],["expires",{"2":{"30":1}}],["excluding",{"2":{"64":14}}],["exclude>cn",{"2":{"64":2}}],["exclude>jakarta",{"2":{"64":1}}],["exclude>io",{"2":{"64":4}}],["exclude>",{"2":{"64":16}}],["exclude>org",{"2":{"64":9}}],["excludes>",{"2":{"64":2}}],["exceptionhandling",{"2":{"73":1}}],["exceptionhandler",{"2":{"42":6}}],["exception",{"2":{"42":2,"64":1,"73":2}}],["execution",{"2":{"97":1}}],["execution>",{"2":{"64":2}}],["executions>",{"2":{"64":2}}],["exec",{"2":{"57":5}}],["extern",{"2":{"57":1}}],["extends",{"2":{"13":1,"14":3,"15":1,"16":2,"20":1,"57":1,"64":1,"73":1,"80":1,"81":1}}],["extractedmenu",{"2":{"44":1}}],["extracteddb",{"2":{"44":1}}],["equals",{"2":{"73":1}}],["eq",{"2":{"14":2,"42":2,"73":2}}],["针对这种场景",{"2":{"14":1}}],["zh",{"2":{"14":3}}],["false",{"2":{"83":1}}],["favicon",{"2":{"46":1}}],["frameoptionsconfig",{"2":{"73":1}}],["frameoptions",{"2":{"73":1}}],["front",{"2":{"30":1}}],["from",{"2":{"14":1,"22":1,"64":13}}],["form",{"2":{"83":1}}],["format",{"2":{"64":7}}],["for",{"2":{"30":4,"52":1,"73":2}}],["forwarded",{"2":{"30":4}}],["foreach",{"2":{"14":1}}],["fluent",{"2":{"22":1}}],["flex",{"2":{"14":3,"21":2,"22":1,"23":2,"87":1,"97":1}}],["fi",{"2":{"73":7}}],["filterconfig",{"2":{"73":2}}],["filterchain",{"2":{"46":3,"73":1}}],["filterinvocation",{"2":{"73":5}}],["filterinvocationsecuritymetadatasource",{"2":{"73":2}}],["filter",{"2":{"46":1,"73":1}}],["fileuploadstrategyfactory",{"2":{"83":4}}],["filepath",{"2":{"58":1,"83":1}}],["files",{"2":{"30":1,"83":2}}],["file",{"2":{"8":1,"67":2,"83":2}}],["finally",{"2":{"45":1,"73":1}}],["final",{"2":{"45":1,"81":1,"83":1}}],["firebird",{"2":{"23":2}}],["fieldeq",{"2":{"14":1}}],["具体看",{"2":{"14":2}}],["返回给",{"2":{"20":1}}],["返回字段",{"2":{"14":1}}],["返回哪些字段等",{"2":{"13":1,"15":1,"16":1,"80":1}}],["需要提取初始化到上面那个",{"2":{"81":1}}],["需要分别拉取前后端代码到本地",{"2":{"50":1}}],["需要初始化一些数据",{"2":{"44":1}}],["需要确保前端和后端在本地运行过一次",{"2":{"33":1}}],["需要通过下面的",{"2":{"14":1}}],["需要组装数据",{"2":{"14":1}}],["需要返回的字段分布在各个表里",{"2":{"14":1}}],["需要模糊查询的字段",{"2":{"14":1}}],["需安装",{"2":{"8":1}}],["个接口",{"2":{"13":1}}],["604800",{"2":{"72":1}}],["6",{"2":{"13":1,"48":1,"64":12,"86":1}}],["6379",{"2":{"8":1}}],["等包",{"2":{"40":1}}],["等待数据库初始化完成",{"2":{"27":1,"32":1}}],["等等",{"2":{"22":1}}],["等参数封装在了一个",{"2":{"15":1}}],["等",{"2":{"13":1,"22":1,"27":1,"38":1,"64":2}}],["删除某个服务",{"2":{"29":1}}],["删除",{"2":{"13":1,"90":1}}],["新增后台扩展插件",{"2":{"103":1}}],["新增一个",{"2":{"40":1}}],["新增",{"2":{"13":1,"101":4,"102":3,"103":1}}],["这将会给我们带来更多的动力",{"2":{"100":1}}],["这些方式都可以解决这个问题",{"2":{"97":1}}],["这边使用到了",{"2":{"64":1}}],["这会使得打包结果很臃肿",{"2":{"64":1}}],["这个可能会给你带来巨大的帮助",{"2":{"43":1}}],["这让我们可以可以专注于业务逻辑和实体",{"2":{"24":1}}],["这样就需要在entity加上另一张表的的字段",{"2":{"14":1}}],["这样就默认实现了以下六个接口",{"2":{"13":1}}],["这是",{"2":{"0":1}}],["v7",{"0":{"101":1,"102":1,"103":1,"104":1},"2":{"57":1}}],["vue3",{"2":{"88":1}}],["vue",{"2":{"33":1,"34":2,"94":3}}],["verify",{"2":{"64":1}}],["version>3",{"2":{"64":1}}],["version>2",{"2":{"64":1}}],["version>",{"2":{"64":3}}],["version>5",{"2":{"64":1}}],["version",{"2":{"30":2,"62":1,"63":1}}],["vertica",{"2":{"23":2}}],["valid",{"2":{"30":1}}],["values",{"2":{"57":1}}],["value",{"2":{"13":1,"14":2,"15":1,"16":1,"19":1,"44":1,"79":1,"80":1,"81":1,"83":4}}],["void",{"2":{"13":1,"14":2,"15":1,"16":1,"38":1,"44":1,"46":1,"57":3,"70":2,"73":6,"80":1}}],["n",{"2":{"90":1}}],["nio",{"2":{"57":5}}],["next",{"2":{"81":1}}],["net",{"2":{"64":4}}],["network",{"2":{"32":1,"33":2,"34":2}}],["new",{"2":{"38":2,"42":2,"64":2,"67":4,"73":12}}],["npm",{"2":{"29":1,"53":2}}],["npmmirror",{"2":{"28":1}}],["nginx",{"0":{"30":1},"2":{"27":3}}],["now",{"2":{"57":2}}],["norepeatsubmit",{"2":{"45":4}}],["norepeatsubmitaspect",{"2":{"45":1}}],["no",{"2":{"30":1}}],["node",{"2":{"26":1}}],["nodejs",{"2":{"25":1,"27":1}}],["notnull",{"2":{"14":1,"81":3}}],["name>",{"2":{"65":1}}],["name>my",{"2":{"65":1}}],["name",{"2":{"13":1,"14":3,"15":1,"16":1,"19":1,"29":1,"34":2,"44":2,"51":1,"62":1,"63":1,"80":1,"83":1}}],["null",{"2":{"11":1,"41":1,"42":2,"44":2,"57":1,"64":1,"73":3}}],["number",{"2":{"29":1}}],["num",{"2":{"11":4}}],["示例",{"0":{"13":1}}],["使得代码更加清晰",{"2":{"67":1}}],["使得可以在插件中获取主应用中的",{"2":{"57":1}}],["使得",{"2":{"12":1}}],["使用cool",{"2":{"57":1}}],["使用缓存",{"2":{"57":1}}],["使用插件",{"0":{"55":1},"1":{"56":1,"57":1,"58":1}}],["使用了关联查询",{"2":{"14":1}}],["使用",{"0":{"9":1,"83":1}}],["length",{"2":{"81":1}}],["leafallocentity>",{"2":{"81":1}}],["leafallocentity",{"2":{"81":1}}],["leaf",{"2":{"81":2}}],["lealone",{"2":{"23":2}}],["left",{"2":{"22":1}}],["leftjoin",{"2":{"14":2}}],["loaduserbyusername",{"2":{"73":1}}],["loadresourcedefine",{"2":{"73":2}}],["lombok",{"2":{"57":2,"64":2}}],["local",{"2":{"51":1,"83":2}}],["location",{"2":{"30":3}}],["logo",{"2":{"62":2,"63":2}}],["log`",{"2":{"57":1}}],["logurls",{"2":{"46":1}}],["log",{"2":{"42":5,"44":1}}],["logs",{"2":{"29":3}}],["logistics",{"2":{"11":2}}],["long",{"2":{"14":1,"42":2,"73":2,"75":4,"81":2}}],["list和page支持关联查询",{"2":{"101":1}}],["list",{"2":{"12":1,"13":1,"14":4,"15":1,"16":1,"29":1,"73":1,"79":1,"80":1}}],["jwtauthenticationtokenfilter",{"2":{"73":3}}],["jwtsecurityconfig",{"2":{"73":1}}],["jwtuser",{"2":{"73":6}}],["jwtuserdetailsserviceimpl",{"2":{"73":1}}],["jwt",{"2":{"71":1,"73":1}}],["jcl",{"2":{"64":2}}],["jakarta",{"2":{"64":3}}],["jarfilepath",{"2":{"67":1}}],["jarurl",{"2":{"67":2}}],["jar",{"2":{"57":1,"64":31,"67":9}}],["javalong",{"2":{"76":1}}],["javaurl",{"2":{"67":1}}],["javapackage",{"2":{"44":1,"57":2,"64":1}}],["javapublic",{"2":{"14":1,"19":1,"20":1,"38":1,"42":2,"46":1}}],["java",{"2":{"0":1,"1":1,"8":1,"9":1,"10":1,"11":1,"13":1,"14":2,"15":1,"16":2,"18":2,"24":1,"25":1,"38":2,"40":1,"42":1,"45":1,"48":1,"52":6,"57":10,"60":2,"61":2,"64":2,"65":1,"67":1,"70":2,"73":4,"75":3,"78":1,"79":1,"80":1,"81":1,"83":1,"86":1,"93":3,"95":2}}],["jdbc",{"2":{"51":2}}],["jdk",{"2":{"48":1,"86":1}}],["js",{"2":{"29":1,"46":1}}],["json参数",{"2":{"44":1}}],["json",{"2":{"44":7,"53":1,"58":1,"61":1,"62":2,"64":2,"81":1}}],["json也提交到代码仓库",{"2":{"33":1}}],["json文件",{"2":{"33":1,"44":1}}],["jsonobject",{"2":{"13":1,"14":2,"15":3,"16":3,"42":2,"46":1,"70":2,"75":1,"80":1}}],["jsonutil",{"2":{"11":1,"14":1}}],["jpa",{"2":{"24":2}}],["joinpoint",{"2":{"45":2}}],["join",{"2":{"22":2}}],[">",{"2":{"11":1,"14":2,"20":1,"64":5,"73":10}}],["物流单号",{"2":{"11":1}}],["通过在方法上加tokenignore注解可以的接口不会进行",{"2":{"78":1}}],["通过动态加载",{"2":{"67":2}}],["通过反射实现",{"2":{"57":1}}],["通过拖动配置",{"2":{"43":1}}],["通过",{"2":{"42":1,"67":1}}],["通过管理后台菜单管理的快速创建即可生成",{"2":{"38":1}}],["通过独特的架构",{"2":{"21":1}}],["通过这种方式",{"2":{"14":1}}],["通过coolcache缓存模板",{"0":{"11":1}}],["通过微调大模型学习框架特有写法",{"2":{"7":1,"37":1}}],["我是插件",{"2":{"64":1}}],["我们还引入了其他包",{"2":{"64":1}}],["我们还可以通过自定义方言的方式",{"2":{"23":1}}],["我们提供了插件脚手架",{"2":{"60":1}}],["我们提供了插件系统",{"2":{"54":1}}],["我们可以在运行时动态地加载外部的",{"2":{"67":1}}],["我们可以通过配置文件来实现",{"2":{"58":1}}],["我们可以使用",{"2":{"14":1}}],["我们正在适配",{"2":{"23":1}}],["我们不直接使用",{"2":{"20":1}}],["我们会尽力完善文档",{"2":{"0":1}}],["我被缓存了",{"2":{"9":1}}],["我被调用了",{"2":{"9":1}}],["img",{"2":{"64":1}}],["import",{"2":{"57":14,"64":6}}],["impala",{"2":{"23":2}}],["implements",{"2":{"9":1,"10":1,"16":1,"44":1,"46":1,"73":3}}],["ioutil",{"2":{"57":2}}],["io",{"2":{"57":2,"64":2}}],["ioexception",{"2":{"46":1,"73":2}}],["ico",{"2":{"46":1}}],["illegalargumentexception",{"2":{"42":2,"73":2}}],["ip",{"2":{"30":2}}],["i",{"2":{"29":2}}],["ignoredurlsproperties",{"2":{"73":3}}],["ignored",{"2":{"46":1}}],["ignore",{"2":{"14":2}}],["is",{"2":{"52":1}}],["isnotempty",{"2":{"14":1}}],["isempty",{"2":{"11":1,"57":1,"73":1}}],["if",{"2":{"11":1,"14":1,"42":2,"57":1,"73":2}}],["in",{"2":{"64":1}}],["including",{"2":{"64":2}}],["inputstream",{"2":{"57":4}}],["into",{"2":{"57":1}}],["interceptorstatustoken",{"2":{"73":1}}],["interface",{"2":{"19":1}}],["integer",{"2":{"10":1,"75":1,"81":1}}],["insert",{"2":{"57":4}}],["instances",{"2":{"29":1}}],["install",{"2":{"28":1,"29":1,"53":1}}],["inner",{"2":{"22":1}}],["index",{"2":{"14":1,"30":1,"80":1}}],["init",{"2":{"13":1,"14":2,"15":1,"16":1,"38":1,"52":1,"73":1,"80":1}}],["informix",{"2":{"23":2}}],["info",{"2":{"12":1,"13":1,"14":5,"15":1,"16":1,"18":2,"20":5,"44":1,"52":4,"57":5,"64":15,"79":1,"80":1}}],["invokeotherplugin",{"2":{"57":1}}],["invokemain",{"2":{"57":3,"64":1}}],["invokemethod",{"2":{"57":4}}],["invokeplugin",{"2":{"57":11,"64":2}}],["invoke",{"2":{"11":4,"73":2}}],["idea",{"2":{"97":1}}],["idgenservice",{"2":{"81":3}}],["id",{"2":{"9":1,"10":1,"14":4,"22":1,"75":1,"81":1}}],["obtainsecuritymetadatasource",{"2":{"73":1}}],["observation",{"2":{"64":3}}],["objutil",{"2":{"11":1,"14":1,"57":2}}],["objectutil",{"2":{"73":1}}],["object中包含用户请求request",{"2":{"73":1}}],["objects",{"2":{"45":1}}],["object",{"2":{"9":1,"10":1,"11":2,"16":1,"45":1,"57":4,"64":2,"73":1}}],["ossaccesskeyid=ltai5t8xtpd99yzsjqcc",{"2":{"57":1}}],["oss",{"2":{"35":1,"57":3,"82":1,"83":1}}],["oscar",{"2":{"23":1}}],["ofmillis",{"2":{"45":1}}],["ofminutes",{"2":{"11":1}}],["official",{"2":{"60":2,"93":2,"94":2,"95":2}}],["off",{"2":{"30":1}}],["operation",{"2":{"83":2}}],["openapi",{"2":{"52":1}}],["opengauss",{"2":{"23":2}}],["option",{"2":{"16":2}}],["oceanbase",{"2":{"23":2}}],["org",{"2":{"57":5,"64":8}}],["oracle12c",{"2":{"23":2}}],["oracle11g",{"2":{"23":1}}],["oracle",{"2":{"23":1}}],["ordergoodsentity>",{"2":{"14":1}}],["order",{"2":{"14":1,"40":2}}],["orderid",{"2":{"11":1,"14":1,"81":4}}],["orderinfoentity>",{"2":{"14":1}}],["orderinfoentity",{"2":{"11":1,"14":1}}],["ok",{"2":{"15":1,"78":1,"83":2}}],["o",{"2":{"14":2,"52":1,"73":3}}],["one",{"2":{"30":1}}],["on",{"2":{"14":1}}],["out",{"2":{"9":1,"15":1,"57":5,"64":1}}],["override",{"2":{"9":1,"10":1,"13":1,"14":1,"15":1,"16":3,"20":1,"44":1,"46":1,"57":1,"64":1,"70":2,"73":11,"80":1}}],["multipartfile",{"2":{"83":1}}],["multipart",{"2":{"83":1}}],["mutate",{"2":{"20":1}}],["mode",{"2":{"83":1}}],["modifyafter",{"2":{"70":1}}],["modifyenum",{"2":{"70":2}}],["modifybefore",{"2":{"70":1}}],["modules",{"2":{"18":1,"40":3}}],["mvn",{"2":{"65":1}}],["micrometer",{"2":{"64":12}}],["midway",{"2":{"27":1,"33":1,"34":2}}],["md",{"2":{"62":1}}],["md5digestashex",{"2":{"73":2}}],["md5",{"2":{"42":2}}],["m",{"2":{"57":6}}],["ms",{"2":{"52":1}}],["mediatype",{"2":{"83":2}}],["message",{"2":{"42":1}}],["method",{"2":{"20":3}}],["methodname",{"2":{"9":1,"57":3}}],["myaccessdecisionmanager",{"2":{"73":3}}],["myfiltersecurityinterceptor",{"2":{"73":1}}],["mysecuritymetadatasource",{"2":{"73":1}}],["mysql",{"2":{"23":3,"27":1,"48":1,"51":5,"86":1}}],["my",{"2":{"65":1}}],["mycoolplugintest",{"2":{"61":1}}],["mycoolplugin",{"2":{"57":1,"61":1}}],["mybatis",{"2":{"14":3,"21":5,"22":4,"23":2,"87":1}}],["matches",{"2":{"73":1}}],["maven",{"2":{"48":1,"64":7,"86":1,"97":1}}],["main",{"2":{"38":1,"40":1,"52":3,"61":1}}],["maxid",{"2":{"81":1}}],["max",{"2":{"29":2,"81":1}}],["mariadb",{"2":{"23":2}}],["market",{"2":{"14":7}}],["marketcouponuserentity>",{"2":{"14":1}}],["marketcouponuserservice",{"2":{"14":1}}],["mapper",{"2":{"38":1,"40":4}}],["map",{"2":{"14":9,"73":6}}],["manes",{"2":{"8":1}}],["+",{"2":{"9":2,"11":3,"22":1,"45":2,"57":2,"64":3,"67":2,"73":5}}],["tip",{"2":{"82":1}}],["time`",{"2":{"57":2}}],["timeout",{"2":{"30":6}}],["this",{"2":{"73":1}}],["the",{"2":{"64":14}}],["thread",{"2":{"52":1,"67":1}}],["throwable",{"2":{"45":1}}],["throws",{"2":{"45":1,"46":1,"73":8}}],["throw",{"2":{"42":1,"64":1,"73":1}}],["team",{"2":{"60":2,"93":3,"94":3,"95":2}}],["testplugin",{"2":{"57":2}}],["test",{"2":{"9":1,"10":1,"15":2,"30":1,"38":1,"57":2,"61":1}}],["txt",{"2":{"57":2,"58":2}}],["t",{"2":{"33":2,"70":6}}],["tsupstream",{"2":{"30":1}}],["ts",{"2":{"27":1}}],["tdengine",{"2":{"23":2}}],["trylock",{"2":{"45":1}}],["try",{"2":{"30":1,"45":1,"64":1,"73":1}}],["transparent",{"2":{"30":1}}],["transactiontemplate",{"2":{"22":1}}],["transactional",{"2":{"22":1}}],["transform",{"2":{"14":2}}],["true",{"2":{"14":2,"42":1,"73":1,"81":3}}],["toarray",{"2":{"73":1}}],["tokenignore",{"2":{"78":1,"79":1}}],["token",{"0":{"77":1},"1":{"78":1,"79":1},"2":{"72":2,"73":2,"75":1,"77":1,"78":1}}],["tohanyupinyinstring",{"2":{"64":1}}],["tone",{"2":{"64":1}}],["tostring",{"2":{"14":1}}],["tobean",{"2":{"14":1}}],["task",{"2":{"40":1,"52":1,"57":3}}],["target",{"2":{"65":2}}],["targetfield",{"2":{"14":1}}],["targetclass",{"2":{"9":1}}],["table",{"2":{"14":1,"24":1,"81":1,"87":1}}],["tag",{"2":{"13":1,"14":1,"15":1,"16":1,"80":1,"83":1}}],["typescript",{"2":{"88":1}}],["typehandler",{"2":{"22":1}}],["type",{"2":{"8":2,"70":4}}],["daoauthenticationprovider",{"2":{"73":2}}],["datasource",{"2":{"51":1}}],["database",{"2":{"8":1}}],["data",{"2":{"8":1,"40":1,"44":2,"83":1}}],["dynamicjarclassloader",{"2":{"67":3}}],["driver",{"2":{"51":2}}],["digestutils",{"2":{"73":2}}],["digesthex",{"2":{"42":2}}],["disable",{"2":{"73":2}}],["dict",{"2":{"40":1}}],["duplicatekeyexception",{"2":{"42":2}}],["duration",{"2":{"11":1,"45":1,"52":1}}],["docs",{"2":{"95":2}}],["docker",{"0":{"31":1},"1":{"32":1,"33":1,"34":1,"35":1},"2":{"31":3,"32":2,"33":3,"34":2,"35":1}}],["dofilter",{"2":{"46":2,"73":2}}],["doris",{"2":{"23":2}}],["dm",{"2":{"23":1}}],["dbfromjsoninit",{"2":{"44":1}}],["db2",{"2":{"23":2}}],["db",{"2":{"22":1,"40":1,"44":2}}],["destroy",{"2":{"73":1}}],["description",{"2":{"13":1,"14":1,"15":1,"16":1,"62":1,"63":1,"80":1,"81":2,"83":2}}],["deployment",{"2":{"97":1}}],["department",{"2":{"73":1}}],["departmentids",{"2":{"73":2}}],["dependency>",{"2":{"64":4}}],["debug",{"2":{"57":3}}],["dev",{"2":{"53":1}}],["derby",{"2":{"23":2}}],["defaultvalue",{"2":{"81":2}}],["default",{"2":{"19":3,"64":1}}],["democoolplugin",{"2":{"64":1}}],["democacheservice",{"2":{"9":1,"10":1}}],["democacheserviceimpl",{"2":{"9":1,"10":1}}],["demov2",{"2":{"44":1}}],["demoentity",{"2":{"38":1}}],["demoentity>",{"2":{"13":1,"14":1,"15":1,"16":5,"80":1}}],["demo",{"2":{"18":3,"38":1,"44":4,"62":1}}],["demomapper",{"2":{"16":1}}],["demoserviceimpl",{"2":{"16":1}}],["demoservice",{"2":{"13":1,"14":1,"15":1,"16":2,"80":1}}],["delete",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"29":1,"79":1,"80":1}}],["sdk",{"2":{"99":1}}],["swagger",{"0":{"80":1},"2":{"80":1}}],["snapshot",{"2":{"65":1}}],["show",{"2":{"91":1}}],["shaded",{"2":{"64":14}}],["shade",{"2":{"64":6}}],["shellpm2",{"2":{"29":1}}],["shell",{"2":{"29":3,"33":1,"34":1,"53":1}}],["s",{"2":{"64":1}}],["sourceforge",{"2":{"64":4}}],["socket",{"2":{"30":3}}],["socket需额外配置",{"2":{"30":1}}],["summary",{"2":{"83":2}}],["supports",{"2":{"73":1}}],["super",{"2":{"16":2,"20":1,"42":2,"73":3}}],["success",{"2":{"57":1}}],["simplegrantedauthority",{"2":{"73":1}}],["signature=krlj0uv96tbliagpji",{"2":{"57":1}}],["sinodb",{"2":{"23":1}}],["slf4j",{"2":{"42":1,"44":1,"57":3,"64":4,"73":2}}],["split",{"2":{"73":1}}],["space",{"2":{"40":1}}],["springboot3",{"2":{"104":1}}],["springboot",{"2":{"67":1}}],["springframework",{"2":{"57":5,"64":14}}],["springdoc",{"2":{"52":2}}],["spring",{"2":{"20":3,"22":2,"51":1,"64":13,"71":1,"87":1}}],["spring方式",{"2":{"9":1}}],["springcache",{"2":{"8":1}}],["src",{"2":{"38":1,"52":1}}],["sap",{"2":{"23":1}}],["sysuserentity",{"2":{"73":14}}],["sys",{"2":{"57":4}}],["system",{"2":{"9":1,"15":1,"57":5,"64":1}}],["sybase",{"2":{"23":2}}],["schema",{"2":{"22":1}}],["sqlserver",{"2":{"23":2}}],["sqlserver2005",{"2":{"23":2}}],["sqlite",{"2":{"23":3}}],["sql",{"2":{"21":2,"22":2,"23":1}}],["step",{"2":{"81":2}}],["stereotype",{"2":{"57":1}}],["stream",{"2":{"73":1}}],["str",{"2":{"57":1}}],["strutil",{"2":{"57":2}}],["string",{"2":{"9":1,"10":1,"11":5,"15":1,"19":3,"38":1,"45":1,"57":7,"64":4,"73":12,"75":2,"81":2}}],["stop",{"2":{"29":1}}],["star",{"0":{"93":1,"94":1,"95":1},"2":{"100":1}}],["start",{"2":{"29":2}}],["stateless",{"2":{"73":1}}],["static",{"2":{"38":1}}],["status=200",{"2":{"57":1}}],["status",{"2":{"14":2,"30":1}}],["sessioncreationpolicy",{"2":{"73":2}}],["sessionmanagement",{"2":{"73":1}}],["securityfilterchain",{"2":{"73":2}}],["securitymetadatasource",{"2":{"73":3}}],["security权限拦截器校验当前用户权限",{"2":{"73":1}}],["securityconfig",{"2":{"73":1}}],["security加载所有设置的权限",{"2":{"73":1}}],["security",{"2":{"71":1,"75":1}}],["send",{"2":{"30":2}}],["servletexception",{"2":{"46":1,"73":3}}],["servletresponse",{"2":{"46":3,"73":1}}],["servletrequest",{"2":{"46":4,"73":1}}],["servletrequestattributes",{"2":{"45":1}}],["servertimezone=gmt",{"2":{"51":1}}],["server",{"2":{"30":2,"83":1}}],["service",{"2":{"9":1,"10":1,"16":3,"33":1,"38":2,"40":2,"52":1}}],["selffield",{"2":{"14":1}}],["select",{"2":{"14":2}}],["setuserdetailsservice",{"2":{"73":1}}],["setaccessdecisionmanager",{"2":{"73":1}}],["setmyaccessdecisionmanager",{"2":{"73":1}}],["setmodule",{"2":{"38":1}}],["setpasswordencoder",{"2":{"73":1}}],["setpassword",{"2":{"42":2}}],["setpageoption",{"2":{"14":2}}],["setentity",{"2":{"38":1}}],["setname",{"2":{"38":1}}],["settings",{"2":{"97":1}}],["settonetype",{"2":{"64":1}}],["settype",{"2":{"38":1}}],["setter",{"2":{"14":1}}],["setlistoption",{"2":{"14":1}}],["set",{"2":{"10":1,"28":1,"30":12,"57":2,"73":5}}],["==",{"2":{"57":1,"73":2}}],["==>",{"2":{"57":2}}],["=5",{"2":{"51":1}}],["=",{"2":{"9":2,"11":4,"13":4,"14":12,"15":4,"16":4,"19":2,"20":3,"38":2,"41":1,"42":5,"45":2,"46":1,"48":3,"57":8,"64":5,"67":2,"73":15,"75":3,"76":1,"79":2,"80":4,"81":13,"83":9,"86":3}}],["性能要求比较高或有分布式部署需求的建议配置成",{"2":{"8":1}}],["person",{"2":{"75":2}}],["permitall",{"2":{"73":1}}],["perm",{"2":{"73":5}}],["perms",{"2":{"73":4}}],["phase>",{"2":{"64":1}}],["phase>package",{"2":{"64":1}}],["phoenix",{"2":{"23":2}}],["phone",{"2":{"14":2}}],["pinyin",{"2":{"64":3}}],["pinyinhelper",{"2":{"64":2}}],["pinyin4j",{"2":{"64":5}}],["png",{"2":{"62":1}}],["pnpm",{"0":{"28":1},"2":{"27":1,"28":2}}],["plugins",{"2":{"64":1}}],["plugins>",{"2":{"64":2}}],["plugin>",{"2":{"64":2}}],["plugin",{"2":{"40":1,"52":1,"57":6,"60":2,"61":3,"62":2,"64":8,"65":5}}],["plus",{"2":{"21":1,"22":1}}],["p",{"2":{"34":2}}],["pm2将自动检测可用cpu的数量",{"2":{"29":1}}],["pm2",{"0":{"29":1},"2":{"29":11}}],["put",{"2":{"14":1,"42":2,"73":1}}],["public",{"2":{"9":2,"10":2,"11":1,"13":1,"14":2,"15":2,"16":3,"38":1,"42":7,"44":2,"45":2,"46":1,"57":4,"64":2,"70":2,"73":22,"75":1,"78":1,"79":1,"80":1,"81":1,"83":3}}],["pom",{"2":{"65":1}}],["policy=eyjlehb0wny0xm1qxmjowmto0oc41njvaiiwiy29uzgl0aw9ucyi6w1siy29udgvudc1szw5ndggtcmfuz2uildasnti0mjg4mdbdxx0=",{"2":{"57":1}}],["pool",{"2":{"52":1}}],["postgresql",{"2":{"23":3}}],["postmapping",{"2":{"15":1,"16":1,"57":2,"83":1}}],["post",{"2":{"13":5}}],["port",{"2":{"8":1,"83":1}}],["preparing",{"2":{"57":1}}],["project",{"2":{"97":2}}],["projectlombok",{"2":{"64":2}}],["properties>",{"2":{"65":2}}],["properties",{"2":{"65":1}}],["proceed",{"2":{"45":1}}],["proceedingjoinpoint",{"2":{"45":1}}],["proxy",{"2":{"30":28}}],["prod",{"2":{"27":1}}],["protected",{"2":{"13":1,"14":2,"15":1,"16":2,"20":1,"80":1}}],["private",{"2":{"14":2,"45":1,"46":1,"57":3,"73":11,"81":5,"83":1}}],["println",{"2":{"9":1,"15":1,"57":5,"64":1}}],["parentclassloader",{"2":{"57":2}}],["parameter",{"2":{"83":1}}],["parameters",{"2":{"57":1}}],["param",{"2":{"70":6,"73":1}}],["params",{"2":{"57":1,"64":2}}],["parse",{"2":{"21":1}}],["parseobj",{"2":{"11":1}}],["package",{"2":{"53":1,"65":1}}],["pass",{"2":{"30":2}}],["passwordencoder",{"2":{"73":4}}],["passwordversion",{"2":{"73":1,"75":1}}],["password",{"2":{"8":1,"51":1}}],["paths",{"2":{"20":1}}],["path",{"2":{"20":3}}],["page",{"2":{"12":1,"13":1,"14":1,"15":1,"16":9,"79":2,"80":1}}],["p0",{"2":{"9":1}}],["15",{"0":{"103":1}}],["15t14",{"2":{"52":4}}],["13",{"2":{"64":1}}],["13t20",{"2":{"57":8}}],["1800",{"2":{"72":1}}],["18",{"2":{"57":8,"64":1}}],["101+08",{"2":{"52":1}}],["17",{"2":{"48":1,"86":1}}],["12",{"2":{"64":2}}],["123456",{"2":{"51":1,"53":1,"91":1}}],["12h",{"2":{"30":1}}],["127",{"2":{"8":1,"30":1,"51":1,"52":1,"53":1,"57":1,"80":1,"83":1}}],["1h",{"2":{"30":1}}],["1",{"0":{"27":1,"32":1,"50":1,"56":1,"60":1,"97":1,"101":1,"102":1,"103":2,"104":1},"2":{"8":1,"10":1,"30":5,"33":2,"34":2,"51":1,"52":3,"53":1,"57":2,"62":1,"64":11,"65":1,"67":2,"73":3,"80":1,"81":2,"83":1}}],["06",{"0":{"104":1}}],["04",{"0":{"102":1}}],["08",{"0":{"101":1,"102":1}}],["01",{"2":{"57":8}}],["00",{"2":{"52":4,"57":8}}],["07",{"0":{"103":1},"2":{"52":4,"57":8}}],["0",{"0":{"104":1},"2":{"8":3,"30":2,"33":2,"34":2,"48":1,"51":3,"52":2,"53":2,"57":2,"62":2,"64":4,"65":1,"73":1,"80":2,"83":2}}],["hashmap",{"2":{"73":1}}],["hanyupinyintonetype",{"2":{"64":2}}],["hanyupinyinoutputformat",{"2":{"64":3}}],["hangzhou",{"2":{"57":1}}],["handleexception",{"2":{"42":1}}],["handleillegalargumentexception",{"2":{"42":1}}],["handlehttprequestmethodnotsupportedexception",{"2":{"42":1}}],["handlebadcredentialsexception",{"2":{"42":1}}],["handleduplicatekeyexception",{"2":{"42":1}}],["handlerrexception",{"2":{"42":1}}],["handlertype",{"2":{"20":3}}],["hana",{"2":{"23":2}}],["hello",{"2":{"57":4,"64":1}}],["headersconfigurer",{"2":{"73":1}}],["headers",{"2":{"73":1}}],["header",{"2":{"30":13}}],["hutool",{"2":{"57":3,"64":11,"87":1}}],["hook",{"2":{"62":1,"63":1}}],["home",{"2":{"30":1}}],["host=https",{"2":{"57":1}}],["host",{"2":{"8":1,"30":4}}],["hive",{"2":{"23":2}}],["highgo",{"2":{"23":1}}],["hbase",{"2":{"23":1}}],["hsql",{"2":{"23":2}}],["h2",{"2":{"23":2}}],["httprequestmethodnotsupportedexception",{"2":{"42":2}}],["http",{"2":{"30":4,"52":1,"80":1,"83":1}}],["httpsecurity",{"2":{"73":3}}],["httpservletrequest",{"2":{"13":1,"14":2,"15":1,"16":1,"45":1,"46":2,"80":1,"83":1}}],["https",{"2":{"1":2,"14":3,"28":1,"57":1,"60":2,"91":1,"93":3,"94":3,"95":2}}],["html",{"2":{"14":1,"30":1,"80":1}}],["html文档",{"2":{"14":2}}],["能够显著提升应用程序的性能和响应速度",{"2":{"8":1}}],["旨在提供高性能",{"2":{"8":1}}],["由该类统一执行初始化",{"2":{"44":1}}],["由",{"2":{"8":1}}],["cfg",{"2":{"73":3}}],["cn",{"2":{"57":4,"64":2}}],["c",{"2":{"52":3,"57":6}}],["cj",{"2":{"51":1}}],["charsequence",{"2":{"73":2}}],["characterencoding=utf",{"2":{"51":1}}],["chain",{"2":{"73":2}}],["chinesechar",{"2":{"64":4}}],["check",{"2":{"41":2,"42":6,"45":1}}],["csrf",{"2":{"73":1}}],["css",{"2":{"46":1}}],["csiidb",{"2":{"23":2}}],["c端用户",{"2":{"40":1}}],["currentthread",{"2":{"67":1}}],["cubrid",{"2":{"23":2}}],["custom",{"2":{"14":1}}],["clean",{"2":{"65":1}}],["cluster",{"2":{"29":1}}],["clickhouse",{"2":{"23":2}}],["classloader",{"2":{"57":4}}],["classpath",{"2":{"44":1}}],["class",{"2":{"9":1,"10":2,"13":1,"14":5,"15":1,"16":2,"19":2,"20":3,"38":2,"42":7,"44":1,"45":1,"46":1,"51":1,"57":2,"64":1,"73":8,"79":1,"80":1,"81":1,"83":1}}],["crud",{"0":{"69":1},"2":{"69":1}}],["crudoption",{"2":{"16":1}}],["create",{"2":{"14":2,"33":1,"42":2}}],["createop",{"2":{"14":3}}],["catch",{"2":{"64":1}}],["cachekey",{"2":{"11":2}}],["cacheable",{"2":{"9":1}}],["cachenames",{"2":{"9":1}}],["cacheconfig",{"2":{"9":1}}],["cache",{"2":{"8":3,"30":8,"57":2,"64":1}}],["caffeine",{"2":{"8":3}}],["collection",{"2":{"73":4}}],["column",{"2":{"14":1}}],["columndefine",{"2":{"14":1,"81":4}}],["columns",{"2":{"14":1}}],["core",{"2":{"40":2,"44":1,"52":2,"57":12,"64":6}}],["code",{"2":{"42":1}}],["codetypeenum",{"2":{"38":1}}],["codemodel",{"2":{"38":10}}],["codegenerator",{"2":{"38":7}}],["consumes",{"2":{"83":1}}],["conf",{"2":{"73":4}}],["configuration",{"2":{"73":1}}],["configuration>",{"2":{"64":2}}],["configattribute",{"2":{"73":1}}],["configattributes",{"2":{"73":4}}],["configattribute>",{"2":{"73":3}}],["configattribute>>",{"2":{"73":1}}],["config",{"2":{"27":1,"28":1,"62":2,"63":1,"73":7}}],["context",{"2":{"64":2}}],["controller",{"2":{"12":2,"16":1,"18":2,"20":1,"38":2,"40":2,"57":3,"75":1}}],["connection",{"2":{"30":2}}],["connect",{"2":{"30":2}}],["condition",{"2":{"14":3}}],["coupon",{"2":{"14":8}}],["compiler",{"2":{"97":1}}],["compile命令",{"2":{"97":1}}],["component",{"2":{"45":1,"73":3}}],["combine",{"2":{"20":1}}],["commons",{"2":{"64":3}}],["commoncontroller",{"2":{"57":1}}],["comment",{"2":{"14":2,"81":5}}],["comm",{"2":{"9":1}}],["com",{"2":{"1":2,"14":3,"28":1,"38":1,"40":1,"44":1,"51":1,"52":3,"57":12,"60":2,"61":2,"64":4,"91":1,"93":3,"94":3,"95":2}}],["cooleps",{"2":{"52":1,"78":1}}],["coolexception",{"2":{"42":3}}],["coolexceptionhandler",{"2":{"42":1}}],["coollock",{"2":{"45":4}}],["coolplugin注解",{"2":{"61":1}}],["coolplugin",{"2":{"57":4,"64":6}}],["coolpluginservice",{"2":{"52":1,"57":1}}],["coolplugininvokers",{"2":{"11":1,"57":4}}],["coolpreconditions",{"2":{"41":1,"42":2,"45":1}}],["coolapplication",{"2":{"40":1,"52":1}}],["cooladminjavaapplicationtests",{"2":{"38":1}}],["coolcodegeneratortest",{"2":{"38":1}}],["coolcache",{"0":{"10":1},"2":{"10":4,"11":1,"57":5,"64":1,"73":7}}],["coolsecurityutil",{"2":{"14":1,"45":1,"75":3,"76":1}}],["coolrestcontroller",{"2":{"13":1,"14":1,"15":1,"16":1,"19":1,"20":2,"79":1,"80":1,"83":1}}],["cool",{"0":{"89":1},"2":{"0":1,"1":2,"5":1,"6":1,"13":1,"14":1,"15":1,"16":1,"21":1,"23":1,"26":1,"29":3,"30":3,"31":1,"33":3,"34":4,"36":1,"38":1,"40":2,"44":3,"47":1,"51":1,"52":7,"57":19,"60":4,"61":2,"64":5,"65":8,"66":1,"80":1,"89":2,"91":1,"93":6,"94":6,"95":4,"100":1}}],["框架用到了mybatis",{"2":{"97":1}}],["框架自带两种文件上传方式本地上传与云存储",{"2":{"82":1}}],["框架自带基于",{"2":{"8":1}}],["框架集成了auto",{"2":{"24":1}}],["框架封装了一个请求属性",{"2":{"15":1}}],["框架特有的通用工具类",{"0":{"10":1}}],["框架更新",{"2":{"4":1,"6":1}}],["缓存数据模板",{"2":{"101":1}}],["缓存对象",{"2":{"57":1}}],["缓存结果",{"2":{"57":2}}],["缓存相关配置",{"2":{"30":1}}],["缓存库",{"2":{"8":1}}],["缓存",{"0":{"8":1},"1":{"9":1,"10":1,"11":1},"2":{"8":2,"101":1}}],["的build",{"2":{"97":1}}],["的mvn",{"2":{"97":1}}],["的核心流程",{"2":{"43":1}}],["的能力",{"2":{"43":1}}],["的火热",{"2":{"43":1}}],["的都知道",{"2":{"24":1}}],["的事务管理",{"2":{"22":1}}],["的基本增删改查",{"2":{"22":1}}],["的",{"2":{"20":1,"97":1}}],["的一些最新资讯",{"2":{"6":1}}],["的在线文档仓库",{"2":{"0":1}}],["公众号",{"0":{"6":1}}],["团队哔哩哔哩官方账户",{"2":{"5":1}}],["站视频教程",{"2":{"7":1,"37":1}}],["站",{"0":{"5":1}}],["b8e4",{"2":{"64":1}}],["bbb",{"2":{"62":1}}],["beforeinvocation",{"2":{"73":1}}],["belerweb",{"2":{"64":2}}],["beans",{"2":{"64":3}}],["bean",{"2":{"57":1,"73":4}}],["ben",{"2":{"8":1}}],["badhanyupinyinoutputformatcombination",{"2":{"64":2}}],["badcredentialsexception",{"2":{"42":2}}],["banner",{"2":{"57":2,"58":2}}],["bashpnpm",{"2":{"28":1}}],["bashnpm",{"2":{"28":1}}],["basecoolplugin",{"2":{"57":7,"64":4}}],["basecontroller",{"2":{"12":1,"13":1,"14":2,"15":1,"16":1,"80":1}}],["baselogfilter",{"2":{"46":1}}],["baseservice中集成了常用的",{"2":{"69":1}}],["baseserviceimpl",{"2":{"16":1}}],["basesysuserservice",{"2":{"73":3}}],["basesysuserentity>lambdaquery",{"2":{"42":2,"73":1}}],["basesysuserentity",{"2":{"42":6,"73":3}}],["basesyspermsservice",{"2":{"73":8}}],["basesyslogmapper",{"2":{"57":3}}],["basesyslogservice",{"2":{"46":3}}],["baseentity",{"2":{"14":1,"81":1}}],["base",{"2":{"14":3,"40":1,"57":1,"83":1}}],["break",{"2":{"30":1}}],["bind",{"2":{"30":1,"57":4}}],["bypass",{"2":{"30":1}}],["boot",{"2":{"87":1}}],["bootstrap",{"2":{"29":1}}],["boolean",{"2":{"73":2}}],["body",{"2":{"15":1}}],["build>",{"2":{"64":2}}],["build",{"2":{"20":1,"33":2,"73":1,"97":3}}],["b",{"0":{"5":1},"2":{"7":1,"37":1,"57":3}}],["afterinvocation",{"2":{"73":1}}],["abstracthttpconfigurer",{"2":{"73":1}}],["abstractsecurityinterceptor",{"2":{"73":1}}],["abstractopenapiresource",{"2":{"52":1}}],["accessdeniedhandler",{"2":{"73":1}}],["aclass",{"2":{"73":1}}],["action",{"2":{"57":1}}],["aop",{"2":{"64":2}}],["aaa",{"2":{"62":1}}],["authprovider",{"2":{"73":4}}],["authenticationconfiguration",{"2":{"73":1}}],["authenticationmanager",{"2":{"73":2}}],["authenticationprovider",{"2":{"73":2}}],["authenticationentrypoint",{"2":{"73":1}}],["authenticated",{"2":{"73":1}}],["authorizehttprequests",{"2":{"73":1}}],["authority",{"2":{"73":3}}],["author",{"2":{"62":1,"63":1}}],["automatically",{"2":{"97":1}}],["automatically自动编译功能",{"2":{"97":1}}],["auto",{"2":{"87":1}}],["autowired",{"2":{"73":1}}],["autoprefixurlmapping",{"2":{"20":1}}],["arraylist",{"2":{"73":3}}],["artifactset>",{"2":{"64":2}}],["artifactid>maven",{"2":{"64":1}}],["artifactid>pinyin4j",{"2":{"64":1}}],["artifactid>",{"2":{"64":3}}],["artifactid>hutool",{"2":{"64":1}}],["around",{"2":{"45":2}}],["args",{"2":{"38":1,"44":1}}],["args$args",{"2":{"30":1}}],["anyrequest",{"2":{"73":1}}],["annotations",{"2":{"20":1}}],["annotation",{"2":{"19":2,"40":1,"45":1,"57":5,"61":1,"64":5}}],["and",{"2":{"14":1}}],["aliyun",{"2":{"57":1}}],["aliyuncs",{"2":{"57":1}}],["aliasfor",{"2":{"19":2}}],["alloc",{"2":{"81":2}}],["all",{"2":{"14":1,"22":1,"64":1,"83":1}}],["assets",{"2":{"62":2}}],["aspect",{"2":{"45":1}}],["ase",{"2":{"23":1}}],["astype",{"2":{"14":1}}],["as",{"2":{"14":1}}],["apt",{"2":{"97":1}}],["apache",{"2":{"64":1}}],["app端手机密码登录和手机验证码登录",{"2":{"102":1}}],["app端访问参数配置接口",{"2":{"101":1}}],["appsecret",{"2":{"58":1}}],["appid",{"2":{"58":1}}],["applicationcontext",{"2":{"57":1}}],["application",{"2":{"51":1,"83":1}}],["applicationarguments",{"2":{"44":1}}],["applicationrunner",{"2":{"44":1}}],["appdemoinfocontroller",{"2":{"18":1}}],["app",{"2":{"18":4,"46":1}}],["appmarketcouponusercontroller",{"2":{"14":1}}],["api",{"2":{"7":1,"13":1,"14":1,"15":1,"16":1,"19":1,"27":2,"30":2,"33":1,"37":1,"52":1,"64":4,"79":1,"80":1}}],["age",{"2":{"14":1}}],["addfilterbefore",{"2":{"73":1}}],["addr",{"2":{"30":5}}],["add",{"2":{"12":1,"13":1,"14":1,"15":1,"16":1,"30":3,"42":4,"73":2,"79":1,"80":1}}],["adminbasecommcontroller",{"2":{"83":1}}],["admindictinfocontroller",{"2":{"79":1}}],["admindemoinfocontroller",{"2":{"13":1,"14":1,"15":1,"16":1,"18":2,"80":1}}],["adminuserid",{"2":{"75":1}}],["admin中才能调试",{"2":{"57":1}}],["admin的缓存",{"2":{"57":1}}],["admin",{"0":{"89":1},"2":{"0":1,"1":2,"18":4,"21":1,"23":1,"26":1,"29":3,"31":1,"33":2,"34":2,"36":1,"38":1,"47":1,"52":4,"53":1,"57":9,"60":2,"64":2,"65":1,"73":6,"89":1,"91":2,"93":3,"94":3,"95":2,"100":1}}],["a",{"2":{"10":2,"57":2}}],["ai",{"0":{"7":1,"37":1,"43":1},"2":{"4":1,"43":6,"89":5,"99":1,"103":1}}],["你的项目",{"2":{"97":1}}],["你的star是我们最大的动力",{"2":{"92":1}}],["你的贡献可能给其他人代码巨大的帮助",{"2":{"0":1}}],["你可以这样做",{"2":{"97":1}}],["你可以自己开发插件",{"2":{"54":1}}],["你可以在这边了解到一些关于我们框架的最新动态",{"2":{"4":1}}],["你将会看到后端的欢迎页面",{"2":{"52":1}}],["你需要把生成的eps",{"2":{"33":1}}],["抖音",{"0":{"4":1}}],["扫一扫加入微信开发交流群",{"2":{"3":1}}],["微信",{"0":{"3":1},"2":{"99":1}}],["共创一些美好的事情",{"2":{"2":1}}],["共同参与开源",{"2":{"0":1}}],["交流合作",{"0":{"2":1},"1":{"3":1,"4":1,"5":1,"6":1}}],["地址",{"0":{"1":1}}],["积极提交pull",{"2":{"0":1}}],["版相关功能",{"2":{"104":1}}],["版本一致",{"2":{"91":1}}],["版本号",{"2":{"63":1}}],["版本+宝塔为例",{"2":{"26":1}}],["版本的也可以参考",{"2":{"25":1}}],["版本为例",{"2":{"25":1}}],["版",{"2":{"0":1}}],["介绍",{"0":{"0":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/.vitepress/dist/assets/chunks/VPLocalSearchBox.b52s9mCh.js b/.vitepress/dist/assets/chunks/VPLocalSearchBox.Dni73aum.js similarity index 99% rename from .vitepress/dist/assets/chunks/VPLocalSearchBox.b52s9mCh.js rename to .vitepress/dist/assets/chunks/VPLocalSearchBox.Dni73aum.js index 09b8289..5a8e5fa 100644 --- a/.vitepress/dist/assets/chunks/VPLocalSearchBox.b52s9mCh.js +++ b/.vitepress/dist/assets/chunks/VPLocalSearchBox.Dni73aum.js @@ -1,4 +1,4 @@ -var Nt=Object.defineProperty;var It=(o,e,t)=>e in o?Nt(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>It(o,typeof e!="symbol"?e+"":e,t);import{X as Dt,s as oe,v as $e,at as kt,au as Ot,d as Rt,G as xe,av as tt,h as Fe,aw as _t,ax as Mt,x as Lt,ay as zt,y as Re,R as de,Q as Ee,az as Pt,aA as Bt,Y as Vt,U as $t,a1 as Wt,o as ee,b as Kt,j as k,a2 as Jt,k as j,aB as Ut,aC as jt,aD as Gt,c as re,n as rt,e as Se,E as at,F as nt,a as ve,t as pe,aE as Ht,p as Qt,l as qt,aF as it,aG as Yt,ai as Zt,ao as Xt,aH as er,_ as tr}from"./framework.C_oE5szm.js";import{u as rr,c as ar}from"./theme.BmxJBezJ.js";const nr={root:()=>Dt(()=>import("./@localSearchIndexroot.pss0EvC3.js"),[])};/*! +var Nt=Object.defineProperty;var It=(o,e,t)=>e in o?Nt(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var Oe=(o,e,t)=>It(o,typeof e!="symbol"?e+"":e,t);import{X as Dt,s as oe,v as $e,at as kt,au as Ot,d as Rt,G as xe,av as tt,h as Fe,aw as _t,ax as Mt,x as Lt,ay as zt,y as Re,R as de,Q as Ee,az as Pt,aA as Bt,Y as Vt,U as $t,a1 as Wt,o as ee,b as Kt,j as k,a2 as Jt,k as j,aB as Ut,aC as jt,aD as Gt,c as re,n as rt,e as Se,E as at,F as nt,a as ve,t as pe,aE as Ht,p as Qt,l as qt,aF as it,aG as Yt,ai as Zt,ao as Xt,aH as er,_ as tr}from"./framework.C_oE5szm.js";import{u as rr,c as ar}from"./theme.yhcfifJx.js";const nr={root:()=>Dt(()=>import("./@localSearchIndexroot.BrJhscbg.js"),[])};/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var yt=["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])"],Ce=yt.join(","),mt=typeof Element>"u",ue=mt?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ne=!mt&&Element.prototype.getRootNode?function(o){var e;return o==null||(e=o.getRootNode)===null||e===void 0?void 0:e.call(o)}:function(o){return o==null?void 0:o.ownerDocument},Ie=function o(e,t){var r;t===void 0&&(t=!0);var n=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),a=n===""||n==="true",i=a||t&&e&&o(e.parentNode);return i},ir=function(e){var t,r=e==null||(t=e.getAttribute)===null||t===void 0?void 0:t.call(e,"contenteditable");return r===""||r==="true"},gt=function(e,t,r){if(Ie(e))return[];var n=Array.prototype.slice.apply(e.querySelectorAll(Ce));return t&&ue.call(e,Ce)&&n.unshift(e),n=n.filter(r),n},bt=function o(e,t,r){for(var n=[],a=Array.from(e);a.length;){var i=a.shift();if(!Ie(i,!1))if(i.tagName==="SLOT"){var s=i.assignedElements(),u=s.length?s:i.children,l=o(u,!0,r);r.flatten?n.push.apply(n,l):n.push({scopeParent:i,candidates:l})}else{var h=ue.call(i,Ce);h&&r.filter(i)&&(t||!e.includes(i))&&n.push(i);var d=i.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(i),v=!Ie(d,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(d&&v){var y=o(d===!0?i.children:d.children,!0,r);r.flatten?n.push.apply(n,y):n.push({scopeParent:i,candidates:y})}else a.unshift.apply(a,i.children)}}return n},wt=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},se=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||ir(e))&&!wt(e)?0:e.tabIndex},or=function(e,t){var r=se(e);return r<0&&t&&!wt(e)?0:r},sr=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},xt=function(e){return e.tagName==="INPUT"},ur=function(e){return xt(e)&&e.type==="hidden"},lr=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return t},cr=function(e,t){for(var r=0;rsummary:first-of-type"),i=a?e.parentElement:e;if(ue.call(i,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof n=="function"){for(var s=e;e;){var u=e.parentElement,l=Ne(e);if(u&&!u.shadowRoot&&n(u)===!0)return ot(e);e.assignedSlot?e=e.assignedSlot:!u&&l!==e.ownerDocument?e=l.host:e=u}e=s}if(vr(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return ot(e);return!1},yr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var r=0;r=0)},gr=function o(e){var t=[],r=[];return e.forEach(function(n,a){var i=!!n.scopeParent,s=i?n.scopeParent:n,u=or(s,i),l=i?o(n.candidates):s;u===0?i?t.push.apply(t,l):t.push(s):r.push({documentOrder:a,tabIndex:u,item:n,isScope:i,content:l})}),r.sort(sr).reduce(function(n,a){return a.isScope?n.push.apply(n,a.content):n.push(a.content),n},[]).concat(t)},br=function(e,t){t=t||{};var r;return t.getShadowRoot?r=bt([e],t.includeContainer,{filter:We.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:mr}):r=gt(e,t.includeContainer,We.bind(null,t)),gr(r)},wr=function(e,t){t=t||{};var r;return t.getShadowRoot?r=bt([e],t.includeContainer,{filter:De.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):r=gt(e,t.includeContainer,De.bind(null,t)),r},le=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,Ce)===!1?!1:We(t,e)},xr=yt.concat("iframe").join(","),_e=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return ue.call(e,xr)===!1?!1:De(t,e)};/*! diff --git a/.vitepress/dist/assets/chunks/theme.BmxJBezJ.js b/.vitepress/dist/assets/chunks/theme.yhcfifJx.js similarity index 99% rename from .vitepress/dist/assets/chunks/theme.BmxJBezJ.js rename to .vitepress/dist/assets/chunks/theme.yhcfifJx.js index cb53b1b..0461be5 100644 --- a/.vitepress/dist/assets/chunks/theme.BmxJBezJ.js +++ b/.vitepress/dist/assets/chunks/theme.yhcfifJx.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.b52s9mCh.js","assets/chunks/framework.C_oE5szm.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.Dni73aum.js","assets/chunks/framework.C_oE5szm.js"])))=>i.map(i=>d[i]); import{d as _,o as s,c,r as l,n as M,a as te,t as z,b as k,w as p,e as h,T as Ae,_ as y,u as Vt,i as wt,f as Tt,g as Be,h as L,j as m,k as i,p as G,l as q,m as le,q as Ee,s as H,v as ee,x as $e,y as oe,z as Oe,A as Fe,B as It,C as Nt,D as ce,F as B,E as R,G as Ze,H as ye,I as b,J as Qe,K as Q,L as pe,M as re,N as Le,O as Et,P as xe,Q as Ce,R as et,S as tt,U as Pe,V as Ct,W as zt,X as Ht,Y as ot,Z as nt,$ as Mt,a0 as At,a1 as Bt,a2 as Ot,a3 as Ft,a4 as Dt}from"./framework.C_oE5szm.js";/*! medium-zoom 1.1.0 | MIT License | https://github.com/francoischalifour/medium-zoom */var ie=Object.assign||function(o){for(var e=1;e1&&arguments[1]!==void 0?arguments[1]:{},n=window.Promise||function(P){function w(){}P(w,w)},a=function(P){var w=P.target;if(w===fe){N();return}D.indexOf(w)!==-1&&F({target:w})},r=function(){if(!(Z||!f.original)){var P=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(We-P)>A.scrollOffset&&setTimeout(N,150)}},u=function(P){var w=P.key||P.keyCode;(w==="Escape"||w==="Esc"||w===27)&&N()},d=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=P;if(P.background&&(fe.style.background=P.background),P.container&&P.container instanceof Object&&(w.container=ie({},A.container,P.container)),P.template){var O=ge(P.template)?P.template:document.querySelector(P.template);w.template=O}return A=ie({},A,w),D.forEach(function(j){j.dispatchEvent(de("medium-zoom:update",{detail:{zoom:U}}))}),U},v=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return o(ie({},A,P))},g=function(){for(var P=arguments.length,w=Array(P),O=0;O0?w.reduce(function(T,K){return[].concat(T,Ye(K))},[]):D;return j.forEach(function(T){T.classList.remove("medium-zoom-image"),T.dispatchEvent(de("medium-zoom:detach",{detail:{zoom:U}}))}),D=D.filter(function(T){return j.indexOf(T)===-1}),U},$=function(P,w){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return D.forEach(function(j){j.addEventListener("medium-zoom:"+P,w,O)}),ae.push({type:"medium-zoom:"+P,listener:w,options:O}),U},S=function(P,w){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return D.forEach(function(j){j.removeEventListener("medium-zoom:"+P,w,O)}),ae=ae.filter(function(j){return!(j.type==="medium-zoom:"+P&&j.listener.toString()===w.toString())}),U},E=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=P.target,O=function(){var T={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},K=void 0,J=void 0;if(A.container)if(A.container instanceof Object)T=ie({},T,A.container),K=T.width-T.left-T.right-A.margin*2,J=T.height-T.top-T.bottom-A.margin*2;else{var ue=ge(A.container)?A.container:document.querySelector(A.container),se=ue.getBoundingClientRect(),Ve=se.width,ft=se.height,ht=se.left,_t=se.top;T=ie({},T,{width:Ve,height:ft,left:ht,top:_t})}K=K||T.width-A.margin*2,J=J||T.height-A.margin*2;var ve=f.zoomedHd||f.original,gt=Je(ve)?K:ve.naturalWidth||K,bt=Je(ve)?J:ve.naturalHeight||J,he=ve.getBoundingClientRect(),kt=he.top,$t=he.left,we=he.width,Te=he.height,yt=Math.min(Math.max(we,gt),K)/we,Lt=Math.min(Math.max(Te,bt),J)/Te,Ie=Math.min(yt,Lt),Pt=(-$t+(K-we)/2+A.margin+T.left)/Ie,St=(-kt+(J-Te)/2+A.margin+T.top)/Ie,Ke="scale("+Ie+") translate3d("+Pt+"px, "+St+"px, 0)";f.zoomed.style.transform=Ke,f.zoomedHd&&(f.zoomedHd.style.transform=Ke)};return new n(function(j){if(w&&D.indexOf(w)===-1){j(U);return}var T=function Ve(){Z=!1,f.zoomed.removeEventListener("transitionend",Ve),f.original.dispatchEvent(de("medium-zoom:opened",{detail:{zoom:U}})),j(U)};if(f.zoomed){j(U);return}if(w)f.original=w;else if(D.length>0){var K=D;f.original=K[0]}else{j(U);return}if(f.original.dispatchEvent(de("medium-zoom:open",{detail:{zoom:U}})),We=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,Z=!0,f.zoomed=Gt(f.original),document.body.appendChild(fe),A.template){var J=ge(A.template)?A.template:document.querySelector(A.template);f.template=document.createElement("div"),f.template.appendChild(J.content.cloneNode(!0)),document.body.appendChild(f.template)}if(f.original.parentElement&&f.original.parentElement.tagName==="PICTURE"&&f.original.currentSrc&&(f.zoomed.src=f.original.currentSrc),document.body.appendChild(f.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),f.original.classList.add("medium-zoom-image--hidden"),f.zoomed.classList.add("medium-zoom-image--opened"),f.zoomed.addEventListener("click",N),f.zoomed.addEventListener("transitionend",T),f.original.getAttribute("data-zoom-src")){f.zoomedHd=f.zoomed.cloneNode(),f.zoomedHd.removeAttribute("srcset"),f.zoomedHd.removeAttribute("sizes"),f.zoomedHd.removeAttribute("loading"),f.zoomedHd.src=f.zoomed.getAttribute("data-zoom-src"),f.zoomedHd.onerror=function(){clearInterval(ue),console.warn("Unable to reach the zoom image target "+f.zoomedHd.src),f.zoomedHd=null,O()};var ue=setInterval(function(){f.zoomedHd.complete&&(clearInterval(ue),f.zoomedHd.classList.add("medium-zoom-image--opened"),f.zoomedHd.addEventListener("click",N),document.body.appendChild(f.zoomedHd),O())},10)}else if(f.original.hasAttribute("srcset")){f.zoomedHd=f.zoomed.cloneNode(),f.zoomedHd.removeAttribute("sizes"),f.zoomedHd.removeAttribute("loading");var se=f.zoomedHd.addEventListener("load",function(){f.zoomedHd.removeEventListener("load",se),f.zoomedHd.classList.add("medium-zoom-image--opened"),f.zoomedHd.addEventListener("click",N),document.body.appendChild(f.zoomedHd),O()})}else O()})},N=function(){return new n(function(P){if(Z||!f.original){P(U);return}var w=function O(){f.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(f.zoomed),f.zoomedHd&&document.body.removeChild(f.zoomedHd),document.body.removeChild(fe),f.zoomed.classList.remove("medium-zoom-image--opened"),f.template&&document.body.removeChild(f.template),Z=!1,f.zoomed.removeEventListener("transitionend",O),f.original.dispatchEvent(de("medium-zoom:closed",{detail:{zoom:U}})),f.original=null,f.zoomed=null,f.zoomedHd=null,f.template=null,P(U)};Z=!0,document.body.classList.remove("medium-zoom--opened"),f.zoomed.style.transform="",f.zoomedHd&&(f.zoomedHd.style.transform=""),f.template&&(f.template.style.transition="opacity 150ms",f.template.style.opacity=0),f.original.dispatchEvent(de("medium-zoom:close",{detail:{zoom:U}})),f.zoomed.addEventListener("transitionend",w)})},F=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=P.target;return f.original?N():E({target:w})},C=function(){return A},Y=function(){return D},X=function(){return f.original},D=[],ae=[],Z=!1,We=0,A=t,f={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(e)==="[object Object]"?A=e:(e||typeof e=="string")&&g(e),A=ie({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},A);var fe=Ut(A.background);document.addEventListener("click",a),document.addEventListener("keyup",u),document.addEventListener("scroll",r),window.addEventListener("resize",N);var U={open:E,close:N,toggle:F,update:d,clone:v,attach:g,detach:I,on:$,off:S,getOptions:C,getImages:Y,getZoomedImage:X};return U};function Rt(o,e){e===void 0&&(e={});var t=e.insertAt;if(!(typeof document>"u")){var n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",t==="top"&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=o:a.appendChild(document.createTextNode(o))}}var Wt=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";Rt(Wt);const Kt=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(s(),c("span",{class:M(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[te(z(e.text),1)])],2))}}),Jt={key:0,class:"VPBackdrop"},Yt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(s(),k(Ae,{name:"fade"},{default:p(()=>[e.show?(s(),c("div",Jt)):h("",!0)]),_:1}))}}),Xt=y(Yt,[["__scopeId","data-v-54a304ca"]]),V=Vt;function Zt(o,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(o,e):(o(),(n=!0)&&setTimeout(()=>n=!1,e))}}function ze(o){return/^\//.test(o)?o:`/${o}`}function De(o){const{pathname:e,search:t,hash:n,protocol:a}=new URL(o,"http://a.com");if(wt(o)||o.startsWith("#")||!a.startsWith("http")||!Tt(e))return o;const{site:r}=V(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${n}`);return Be(u)}function me({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:n,theme:a,hash:r}=V(),u=L(()=>{var v,g;return{label:(v=e.value.locales[t.value])==null?void 0:v.label,link:((g=e.value.locales[t.value])==null?void 0:g.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:L(()=>Object.entries(e.value.locales).flatMap(([v,g])=>u.value.label===g.label?[]:{text:g.label,link:Qt(g.link||(v==="root"?"/":`/${v}/`),a.value.i18nRouting!==!1&&o,n.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:u}}function Qt(o,e,t,n){return e?o.replace(/\/$/,"")+ze(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):o}const xt=o=>(G("data-v-6ff51ddd"),o=o(),q(),o),eo={class:"NotFound"},to={class:"code"},oo={class:"title"},no=xt(()=>m("div",{class:"divider"},null,-1)),ao={class:"quote"},so={class:"action"},ro=["href","aria-label"],io=_({__name:"NotFound",setup(o){const{theme:e}=V(),{currentLang:t}=me();return(n,a)=>{var r,u,d,v,g;return s(),c("div",eo,[m("p",to,z(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),m("h1",oo,z(((u=i(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),no,m("blockquote",ao,z(((d=i(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),m("div",so,[m("a",{class:"link",href:i(Be)(i(t).link),"aria-label":((v=i(e).notFound)==null?void 0:v.linkLabel)??"go to home"},z(((g=i(e).notFound)==null?void 0:g.linkText)??"Take me home"),9,ro)])])}}}),lo=y(io,[["__scopeId","data-v-6ff51ddd"]]);function at(o,e){if(Array.isArray(o))return be(o);if(o==null)return[];e=ze(e);const t=Object.keys(o).sort((a,r)=>r.split("/").length-a.split("/").length).find(a=>e.startsWith(ze(a))),n=t?o[t]:[];return Array.isArray(n)?be(n):be(n.items,n.base)}function co(o){const e=[];let t=0;for(const n in o){const a=o[n];if(a.items){t=e.push(a);continue}e[t]||e.push({items:[]}),e[t].items.push(a)}return e}function uo(o){const e=[];function t(n){for(const a of n)a.text&&a.link&&e.push({text:a.text,link:a.link,docFooterText:a.docFooterText}),a.items&&t(a.items)}return t(o),e}function He(o,e){return Array.isArray(e)?e.some(t=>He(o,t)):le(o,e.link)?!0:e.items?He(o,e.items):!1}function be(o,e){return[...o].map(t=>{const n={...t},a=n.base||e;return a&&n.link&&(n.link=a+n.link),n.items&&(n.items=be(n.items,a)),n})}function ne(){const{frontmatter:o,page:e,theme:t}=V(),n=Ee("(min-width: 960px)"),a=H(!1),r=L(()=>{const F=t.value.sidebar,C=e.value.relativePath;return F?at(F,C):[]}),u=H(r.value);ee(r,(F,C)=>{JSON.stringify(F)!==JSON.stringify(C)&&(u.value=r.value)});const d=L(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),v=L(()=>g?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),g=L(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),I=L(()=>d.value&&n.value),$=L(()=>d.value?co(u.value):[]);function S(){a.value=!0}function E(){a.value=!1}function N(){a.value?E():S()}return{isOpen:a,sidebar:u,sidebarGroups:$,hasSidebar:d,hasAside:g,leftAside:v,isSidebarEnabled:I,open:S,close:E,toggle:N}}function vo(o,e){let t;$e(()=>{t=o.value?document.activeElement:void 0}),oe(()=>{window.addEventListener("keyup",n)}),Oe(()=>{window.removeEventListener("keyup",n)});function n(a){a.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function po(o){const{page:e,hash:t}=V(),n=H(!1),a=L(()=>o.value.collapsed!=null),r=L(()=>!!o.value.link),u=H(!1),d=()=>{u.value=le(e.value.relativePath,o.value.link)};ee([e,o,t],d),oe(d);const v=L(()=>u.value?!0:o.value.items?He(e.value.relativePath,o.value.items):!1),g=L(()=>!!(o.value.items&&o.value.items.length));$e(()=>{n.value=!!(a.value&&o.value.collapsed)}),Fe(()=>{(u.value||v.value)&&(n.value=!1)});function I(){a.value&&(n.value=!n.value)}return{collapsed:n,collapsible:a,isLink:r,isActiveLink:u,hasActiveLink:v,hasChildren:g,toggle:I}}function mo(){const{hasSidebar:o}=ne(),e=Ee("(min-width: 960px)"),t=Ee("(min-width: 1280px)");return{isAsideEnabled:L(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const Me=[];function st(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function je(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:fo(t),link:"#"+t.id,level:n}});return ho(e,o)}function fo(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function ho(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,a]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=n&&u.level<=a),Me.length=0;for(const{element:u,link:d}of o)Me.push({element:u,link:d});const r=[];e:for(let u=0;u=0;v--){const g=o[v];if(g.level{requestAnimationFrame(r),window.addEventListener("scroll",n)}),It(()=>{u(location.hash)}),Oe(()=>{window.removeEventListener("scroll",n)});function r(){if(!t.value)return;const d=window.scrollY,v=window.innerHeight,g=document.body.offsetHeight,I=Math.abs(d+v-g)<1,$=Me.map(({element:E,link:N})=>({link:N,top:go(E)})).filter(({top:E})=>!Number.isNaN(E)).sort((E,N)=>E.top-N.top);if(!$.length){u(null);return}if(d<1){u(null);return}if(I){u($[$.length-1].link);return}let S=null;for(const{link:E,top:N}of $){if(N>d+Nt()+4)break;S=E}u(S)}function u(d){a&&a.classList.remove("active"),d==null?a=null:a=o.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const v=a;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function go(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const bo=["href","title"],ko=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const n=t.href.split("#")[1],a=document.getElementById(decodeURIComponent(n));a==null||a.focus({preventScroll:!0})}return(t,n)=>{const a=ce("VPDocOutlineItem",!0);return s(),c("ul",{class:M(["VPDocOutlineItem",t.root?"root":"nested"])},[(s(!0),c(B,null,R(t.headers,({children:r,link:u,title:d})=>(s(),c("li",null,[m("a",{class:"outline-link",href:u,onClick:e,title:d},z(d),9,bo),r!=null&&r.length?(s(),k(a,{key:0,headers:r},null,8,["headers"])):h("",!0)]))),256))],2)}}}),rt=y(ko,[["__scopeId","data-v-53c99d69"]]),$o={class:"content"},yo={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Lo=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=V(),n=Ze([]);ye(()=>{n.value=je(e.value.outline??t.value.outline)});const a=H(),r=H();return _o(a,r),(u,d)=>(s(),c("nav",{"aria-labelledby":"doc-outline-aria-label",class:M(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:a},[m("div",$o,[m("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),m("div",yo,z(i(st)(i(t))),1),b(rt,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),Po=y(Lo,[["__scopeId","data-v-f610f197"]]),So={class:"VPDocAsideCarbonAds"},Vo=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,n)=>(s(),c("div",So,[b(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),wo=o=>(G("data-v-cb998dce"),o=o(),q(),o),To={class:"VPDocAside"},Io=wo(()=>m("div",{class:"spacer"},null,-1)),No=_({__name:"VPDocAside",setup(o){const{theme:e}=V();return(t,n)=>(s(),c("div",To,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),b(Po),l(t.$slots,"aside-outline-after",{},void 0,!0),Io,l(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(s(),k(Vo,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):h("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Eo=y(No,[["__scopeId","data-v-cb998dce"]]);function Co(){const{theme:o,page:e}=V();return L(()=>{const{text:t="Edit this page",pattern:n=""}=o.value.editLink||{};let a;return typeof n=="function"?a=n(e.value):a=n.replace(/:path/g,e.value.filePath),{url:a,text:t}})}function zo(){const{page:o,theme:e,frontmatter:t}=V();return L(()=>{var g,I,$,S,E,N,F,C;const n=at(e.value.sidebar,o.value.relativePath),a=uo(n),r=Ho(a,Y=>Y.link.replace(/[?#].*$/,"")),u=r.findIndex(Y=>le(o.value.relativePath,Y.link)),d=((g=e.value.docFooter)==null?void 0:g.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((I=e.value.docFooter)==null?void 0:I.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??(($=r[u-1])==null?void 0:$.docFooterText)??((S=r[u-1])==null?void 0:S.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((E=r[u-1])==null?void 0:E.link)},next:v?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((N=r[u+1])==null?void 0:N.docFooterText)??((F=r[u+1])==null?void 0:F.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((C=r[u+1])==null?void 0:C.link)}}})}function Ho(o,e){const t=new Set;return o.filter(n=>{const a=e(n);return t.has(a)?!1:t.add(a)})}const x=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=L(()=>e.tag??(e.href?"a":"span")),n=L(()=>e.href&&Qe.test(e.href)||e.target==="_blank");return(a,r)=>(s(),k(Q(t.value),{class:M(["VPLink",{link:a.href,"vp-external-link-icon":n.value,"no-icon":a.noIcon}]),href:a.href?i(De)(a.href):void 0,target:a.target??(n.value?"_blank":void 0),rel:a.rel??(n.value?"noreferrer":void 0)},{default:p(()=>[l(a.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Mo={class:"VPLastUpdated"},Ao=["datetime"],Bo=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:n}=V(),a=L(()=>new Date(t.value.lastUpdated)),r=L(()=>a.value.toISOString()),u=H("");return oe(()=>{$e(()=>{var d,v,g;u.value=new Intl.DateTimeFormat((v=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&v.forceLocale?n.value:void 0,((g=e.value.lastUpdated)==null?void 0:g.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(a.value)})}),(d,v)=>{var g;return s(),c("p",Mo,[te(z(((g=i(e).lastUpdated)==null?void 0:g.text)||i(e).lastUpdatedText||"Last updated")+": ",1),m("time",{datetime:r.value},z(u.value),9,Ao)])}}}),Oo=y(Bo,[["__scopeId","data-v-1bb0c8a8"]]),it=o=>(G("data-v-1bcd8184"),o=o(),q(),o),Fo={key:0,class:"VPDocFooter"},Do={key:0,class:"edit-info"},jo={key:0,class:"edit-link"},Uo=it(()=>m("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Go={key:1,class:"last-updated"},qo={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Ro=it(()=>m("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),Wo={class:"pager"},Ko=["innerHTML"],Jo=["innerHTML"],Yo={class:"pager"},Xo=["innerHTML"],Zo=["innerHTML"],Qo=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:n}=V(),a=Co(),r=zo(),u=L(()=>e.value.editLink&&n.value.editLink!==!1),d=L(()=>t.value.lastUpdated),v=L(()=>u.value||d.value||r.value.prev||r.value.next);return(g,I)=>{var $,S,E,N;return v.value?(s(),c("footer",Fo,[l(g.$slots,"doc-footer-before",{},void 0,!0),u.value||d.value?(s(),c("div",Do,[u.value?(s(),c("div",jo,[b(x,{class:"edit-link-button",href:i(a).url,"no-icon":!0},{default:p(()=>[Uo,te(" "+z(i(a).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(s(),c("div",Go,[b(Oo)])):h("",!0)])):h("",!0),($=i(r).prev)!=null&&$.link||(S=i(r).next)!=null&&S.link?(s(),c("nav",qo,[Ro,m("div",Wo,[(E=i(r).prev)!=null&&E.link?(s(),k(x,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:p(()=>{var F;return[m("span",{class:"desc",innerHTML:((F=i(e).docFooter)==null?void 0:F.prev)||"Previous page"},null,8,Ko),m("span",{class:"title",innerHTML:i(r).prev.text},null,8,Jo)]}),_:1},8,["href"])):h("",!0)]),m("div",Yo,[(N=i(r).next)!=null&&N.link?(s(),k(x,{key:0,class:"pager-link next",href:i(r).next.link},{default:p(()=>{var F;return[m("span",{class:"desc",innerHTML:((F=i(e).docFooter)==null?void 0:F.next)||"Next page"},null,8,Xo),m("span",{class:"title",innerHTML:i(r).next.text},null,8,Zo)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),xo=y(Qo,[["__scopeId","data-v-1bcd8184"]]),en=o=>(G("data-v-e6f2a212"),o=o(),q(),o),tn={class:"container"},on=en(()=>m("div",{class:"aside-curtain"},null,-1)),nn={class:"aside-container"},an={class:"aside-content"},sn={class:"content"},rn={class:"content-container"},ln={class:"main"},cn=_({__name:"VPDoc",setup(o){const{theme:e}=V(),t=pe(),{hasSidebar:n,hasAside:a,leftAside:r}=ne(),u=L(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,v)=>{const g=ce("Content");return s(),c("div",{class:M(["VPDoc",{"has-sidebar":i(n),"has-aside":i(a)}])},[l(d.$slots,"doc-top",{},void 0,!0),m("div",tn,[i(a)?(s(),c("div",{key:0,class:M(["aside",{"left-aside":i(r)}])},[on,m("div",nn,[m("div",an,[b(Eo,null,{"aside-top":p(()=>[l(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[l(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[l(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[l(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[l(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[l(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),m("div",sn,[m("div",rn,[l(d.$slots,"doc-before",{},void 0,!0),m("main",ln,[b(g,{class:M(["vp-doc",[u.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),b(xo,null,{"doc-footer-before":p(()=>[l(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(d.$slots,"doc-after",{},void 0,!0)])])]),l(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),un=y(cn,[["__scopeId","data-v-e6f2a212"]]),dn=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=L(()=>e.href&&Qe.test(e.href)),n=L(()=>e.tag||e.href?"a":"button");return(a,r)=>(s(),k(Q(n.value),{class:M(["VPButton",[a.size,a.theme]]),href:a.href?i(De)(a.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:p(()=>[te(z(a.text),1)]),_:1},8,["class","href","target","rel"]))}}),vn=y(dn,[["__scopeId","data-v-c9cf0e3c"]]),pn=["src","alt"],mn=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const n=ce("VPImage",!0);return e.image?(s(),c(B,{key:0},[typeof e.image=="string"||"src"in e.image?(s(),c("img",re({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(Be)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,pn)):(s(),c(B,{key:1},[b(n,re({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),b(n,re({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),ke=y(mn,[["__scopeId","data-v-ab19afbb"]]),fn=o=>(G("data-v-b10c5094"),o=o(),q(),o),hn={class:"container"},_n={class:"main"},gn={key:0,class:"name"},bn=["innerHTML"],kn=["innerHTML"],$n=["innerHTML"],yn={key:0,class:"actions"},Ln={key:0,class:"image"},Pn={class:"image-container"},Sn=fn(()=>m("div",{class:"image-bg"},null,-1)),Vn=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=Le("hero-image-slot-exists");return(t,n)=>(s(),c("div",{class:M(["VPHero",{"has-image":t.image||i(e)}])},[m("div",hn,[m("div",_n,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(s(),c("h1",gn,[m("span",{innerHTML:t.name,class:"clip"},null,8,bn)])):h("",!0),t.text?(s(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,kn)):h("",!0),t.tagline?(s(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,$n)):h("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(s(),c("div",yn,[(s(!0),c(B,null,R(t.actions,a=>(s(),c("div",{key:a.link,class:"action"},[b(vn,{tag:"a",size:"medium",theme:a.theme,text:a.text,href:a.link,target:a.target,rel:a.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(s(),c("div",Ln,[m("div",Pn,[Sn,l(t.$slots,"home-hero-image",{},()=>[t.image?(s(),k(ke,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),wn=y(Vn,[["__scopeId","data-v-b10c5094"]]),Tn=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=V();return(t,n)=>i(e).hero?(s(),k(wn,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":p(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":p(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":p(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":p(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":p(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),In=o=>(G("data-v-bd37d1a2"),o=o(),q(),o),Nn={class:"box"},En={key:0,class:"icon"},Cn=["innerHTML"],zn=["innerHTML"],Hn=["innerHTML"],Mn={key:4,class:"link-text"},An={class:"link-text-value"},Bn=In(()=>m("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),On=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(s(),k(x,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:p(()=>[m("article",Nn,[typeof e.icon=="object"&&e.icon.wrap?(s(),c("div",En,[b(ke,{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"?(s(),k(ke,{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?(s(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Cn)):h("",!0),m("h2",{class:"title",innerHTML:e.title},null,8,zn),e.details?(s(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,Hn)):h("",!0),e.linkText?(s(),c("div",Mn,[m("p",An,[te(z(e.linkText)+" ",1),Bn])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Fn=y(On,[["__scopeId","data-v-bd37d1a2"]]),Dn={key:0,class:"VPFeatures"},jn={class:"container"},Un={class:"items"},Gn=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=L(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,a)=>n.features?(s(),c("div",Dn,[m("div",jn,[m("div",Un,[(s(!0),c(B,null,R(n.features,r=>(s(),c("div",{key:r.title,class:M(["item",[t.value]])},[b(Fn,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),qn=y(Gn,[["__scopeId","data-v-b1eea84a"]]),Rn=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=V();return(t,n)=>i(e).features?(s(),k(qn,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):h("",!0)}}),Wn=_({__name:"VPHomeContent",setup(o){const{width:e}=Et({initialWidth:0,includeScrollbar:!1});return(t,n)=>(s(),c("div",{class:"vp-doc container",style:xe(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),Kn=y(Wn,[["__scopeId","data-v-c141a4bd"]]),Jn={class:"VPHome"},Yn=_({__name:"VPHome",setup(o){const{frontmatter:e}=V();return(t,n)=>{const a=ce("Content");return s(),c("div",Jn,[l(t.$slots,"home-hero-before",{},void 0,!0),b(Tn,null,{"home-hero-info-before":p(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[l(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(t.$slots,"home-hero-after",{},void 0,!0),l(t.$slots,"home-features-before",{},void 0,!0),b(Rn),l(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(s(),k(Kn,{key:0},{default:p(()=>[b(a)]),_:1})):(s(),k(a,{key:1}))])}}}),Xn=y(Yn,[["__scopeId","data-v-07b1ad08"]]),Zn={},Qn={class:"VPPage"};function xn(o,e){const t=ce("Content");return s(),c("div",Qn,[l(o.$slots,"page-top"),b(t),l(o.$slots,"page-bottom")])}const ea=y(Zn,[["render",xn]]),ta=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=V(),{hasSidebar:n}=ne();return(a,r)=>(s(),c("div",{class:M(["VPContent",{"has-sidebar":i(n),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?l(a.$slots,"not-found",{key:0},()=>[b(lo)],!0):i(t).layout==="page"?(s(),k(ea,{key:1},{"page-top":p(()=>[l(a.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[l(a.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(s(),k(Xn,{key:2},{"home-hero-before":p(()=>[l(a.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[l(a.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[l(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[l(a.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[l(a.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[l(a.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[l(a.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[l(a.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[l(a.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(s(),k(Q(i(t).layout),{key:3})):(s(),k(un,{key:4},{"doc-top":p(()=>[l(a.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[l(a.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":p(()=>[l(a.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[l(a.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[l(a.$slots,"doc-after",{},void 0,!0)]),"aside-top":p(()=>[l(a.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":p(()=>[l(a.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[l(a.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[l(a.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[l(a.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":p(()=>[l(a.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),oa=y(ta,[["__scopeId","data-v-9a6c75ad"]]),na={class:"container"},aa=["innerHTML"],sa=["innerHTML"],ra=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=ne();return(a,r)=>i(e).footer&&i(t).footer!==!1?(s(),c("footer",{key:0,class:M(["VPFooter",{"has-sidebar":i(n)}])},[m("div",na,[i(e).footer.message?(s(),c("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,aa)):h("",!0),i(e).footer.copyright?(s(),c("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,sa)):h("",!0)])],2)):h("",!0)}}),ia=y(ra,[["__scopeId","data-v-566314d4"]]);function la(){const{theme:o,frontmatter:e}=V(),t=Ze([]),n=L(()=>t.value.length>0);return ye(()=>{t.value=je(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:n}}const ca=o=>(G("data-v-883964e0"),o=o(),q(),o),ua={class:"menu-text"},da=ca(()=>m("span",{class:"vpi-chevron-right icon"},null,-1)),va={class:"header"},pa={class:"outline"},ma=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=V(),n=H(!1),a=H(0),r=H(),u=H();function d($){var S;(S=r.value)!=null&&S.contains($.target)||(n.value=!1)}ee(n,$=>{if($){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),Ce("Escape",()=>{n.value=!1}),ye(()=>{n.value=!1});function v(){n.value=!n.value,a.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function g($){$.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),et(()=>{n.value=!1}))}function I(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return($,S)=>(s(),c("div",{class:"VPLocalNavOutlineDropdown",style:xe({"--vp-vh":a.value+"px"}),ref_key:"main",ref:r},[$.headers.length>0?(s(),c("button",{key:0,onClick:v,class:M({open:n.value})},[m("span",ua,z(i(st)(i(t))),1),da],2)):(s(),c("button",{key:1,onClick:I},z(i(t).returnToTopLabel||"Return to top"),1)),b(Ae,{name:"flyout"},{default:p(()=>[n.value?(s(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:g},[m("div",va,[m("a",{class:"top-link",href:"#",onClick:I},z(i(t).returnToTopLabel||"Return to top"),1)]),m("div",pa,[b(rt,{headers:$.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),fa=y(ma,[["__scopeId","data-v-883964e0"]]),ha=o=>(G("data-v-2488c25a"),o=o(),q(),o),_a={class:"container"},ga=["aria-expanded"],ba=ha(()=>m("span",{class:"vpi-align-left menu-icon"},null,-1)),ka={class:"menu-text"},$a=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=ne(),{headers:a}=la(),{y:r}=tt(),u=H(0);oe(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ye(()=>{a.value=je(t.value.outline??e.value.outline)});const d=L(()=>a.value.length===0),v=L(()=>d.value&&!n.value),g=L(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:d.value,fixed:v.value}));return(I,$)=>i(t).layout!=="home"&&(!v.value||i(r)>=u.value)?(s(),c("div",{key:0,class:M(g.value)},[m("div",_a,[i(n)?(s(),c("button",{key:0,class:"menu","aria-expanded":I.open,"aria-controls":"VPSidebarNav",onClick:$[0]||($[0]=S=>I.$emit("open-menu"))},[ba,m("span",ka,z(i(e).sidebarMenuLabel||"Menu"),1)],8,ga)):h("",!0),b(fa,{headers:i(a),navHeight:u.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),ya=y($a,[["__scopeId","data-v-2488c25a"]]);function La(){const o=H(!1);function e(){o.value=!0,window.addEventListener("resize",a)}function t(){o.value=!1,window.removeEventListener("resize",a)}function n(){o.value?t():e()}function a(){window.outerWidth>=768&&t()}const r=pe();return ee(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:n}}const Pa={},Sa={class:"VPSwitch",type:"button",role:"switch"},Va={class:"check"},wa={key:0,class:"icon"};function Ta(o,e){return s(),c("button",Sa,[m("span",Va,[o.$slots.default?(s(),c("span",wa,[l(o.$slots,"default",{},void 0,!0)])):h("",!0)])])}const Ia=y(Pa,[["render",Ta],["__scopeId","data-v-b4ccac88"]]),lt=o=>(G("data-v-be9742d9"),o=o(),q(),o),Na=lt(()=>m("span",{class:"vpi-sun sun"},null,-1)),Ea=lt(()=>m("span",{class:"vpi-moon moon"},null,-1)),Ca=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=V(),n=Le("toggle-appearance",()=>{e.value=!e.value}),a=H("");return Fe(()=>{a.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,u)=>(s(),k(Ia,{title:a.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(n)},{default:p(()=>[Na,Ea]),_:1},8,["title","aria-checked","onClick"]))}}),Ue=y(Ca,[["__scopeId","data-v-be9742d9"]]),za={key:0,class:"VPNavBarAppearance"},Ha=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=V();return(t,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(s(),c("div",za,[b(Ue)])):h("",!0)}}),Ma=y(Ha,[["__scopeId","data-v-3f90c1a5"]]),Ge=H();let ct=!1,Ne=0;function Aa(o){const e=H(!1);if(Pe){!ct&&Ba(),Ne++;const t=ee(Ge,n=>{var a,r,u;n===o.el.value||(a=o.el.value)!=null&&a.contains(n)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});Oe(()=>{t(),Ne--,Ne||Oa()})}return Ct(e)}function Ba(){document.addEventListener("focusin",ut),ct=!0,Ge.value=document.activeElement}function Oa(){document.removeEventListener("focusin",ut)}function ut(){Ge.value=document.activeElement}const Fa={class:"VPMenuLink"},Da=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,n)=>(s(),c("div",Fa,[b(x,{class:M({active:i(le)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:p(()=>[te(z(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),Se=y(Da,[["__scopeId","data-v-f51f088d"]]),ja={class:"VPMenuGroup"},Ua={key:0,class:"title"},Ga=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(s(),c("div",ja,[e.text?(s(),c("p",Ua,z(e.text),1)):h("",!0),(s(!0),c(B,null,R(e.items,n=>(s(),c(B,null,["link"in n?(s(),k(Se,{key:0,item:n},null,8,["item"])):h("",!0)],64))),256))]))}}),qa=y(Ga,[["__scopeId","data-v-a6b0397c"]]),Ra={class:"VPMenu"},Wa={key:0,class:"items"},Ka=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(s(),c("div",Ra,[e.items?(s(),c("div",Wa,[(s(!0),c(B,null,R(e.items,n=>(s(),c(B,{key:JSON.stringify(n)},["link"in n?(s(),k(Se,{key:0,item:n},null,8,["item"])):"component"in n?(s(),k(Q(n.component),re({key:1,ref_for:!0},n.props),null,16)):(s(),k(qa,{key:2,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):h("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),Ja=y(Ka,[["__scopeId","data-v-20ed86d6"]]),Ya=o=>(G("data-v-af5898d3"),o=o(),q(),o),Xa=["aria-expanded","aria-label"],Za={key:0,class:"text"},Qa=["innerHTML"],xa=Ya(()=>m("span",{class:"vpi-chevron-down text-icon"},null,-1)),es={key:1,class:"vpi-more-horizontal icon"},ts={class:"menu"},os=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=H(!1),t=H();Aa({el:t,onBlur:n});function n(){e.value=!1}return(a,r)=>(s(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=u=>e.value=!0),onMouseleave:r[2]||(r[2]=u=>e.value=!1)},[m("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":a.label,onClick:r[0]||(r[0]=u=>e.value=!e.value)},[a.button||a.icon?(s(),c("span",Za,[a.icon?(s(),c("span",{key:0,class:M([a.icon,"option-icon"])},null,2)):h("",!0),a.button?(s(),c("span",{key:1,innerHTML:a.button},null,8,Qa)):h("",!0),xa])):(s(),c("span",es))],8,Xa),m("div",ts,[b(Ja,{items:a.items},{default:p(()=>[l(a.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),qe=y(os,[["__scopeId","data-v-af5898d3"]]),ns=["href","aria-label","innerHTML"],as=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=L(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,a)=>(s(),c("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,ns))}}),ss=y(as,[["__scopeId","data-v-358b6670"]]),rs={class:"VPSocialLinks"},is=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(s(),c("div",rs,[(s(!0),c(B,null,R(e.links,({link:n,icon:a,ariaLabel:r})=>(s(),k(ss,{key:n,icon:a,link:n,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),Re=y(is,[["__scopeId","data-v-e71e869c"]]),ls={key:0,class:"group translations"},cs={class:"trans-title"},us={key:1,class:"group"},ds={class:"item appearance"},vs={class:"label"},ps={class:"appearance-action"},ms={key:2,class:"group"},fs={class:"item social-links"},hs=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=V(),{localeLinks:n,currentLang:a}=me({correspondingLink:!0}),r=L(()=>n.value.length&&a.value.label||e.value.appearance||t.value.socialLinks);return(u,d)=>r.value?(s(),k(qe,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[i(n).length&&i(a).label?(s(),c("div",ls,[m("p",cs,z(i(a).label),1),(s(!0),c(B,null,R(i(n),v=>(s(),k(Se,{key:v.link,item:v},null,8,["item"]))),128))])):h("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(s(),c("div",us,[m("div",ds,[m("p",vs,z(i(t).darkModeSwitchLabel||"Appearance"),1),m("div",ps,[b(Ue)])])])):h("",!0),i(t).socialLinks?(s(),c("div",ms,[m("div",fs,[b(Re,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),_s=y(hs,[["__scopeId","data-v-f953d92f"]]),gs=o=>(G("data-v-6bee1efd"),o=o(),q(),o),bs=["aria-expanded"],ks=gs(()=>m("span",{class:"container"},[m("span",{class:"top"}),m("span",{class:"middle"}),m("span",{class:"bottom"})],-1)),$s=[ks],ys=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(s(),c("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]=n=>e.$emit("click"))},$s,10,bs))}}),Ls=y(ys,[["__scopeId","data-v-6bee1efd"]]),Ps=["innerHTML"],Ss=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,n)=>(s(),k(x,{class:M({VPNavBarMenuLink:!0,active:i(le)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:p(()=>[m("span",{innerHTML:t.item.text},null,8,Ps)]),_:1},8,["class","href","noIcon","target","rel"]))}}),Vs=y(Ss,[["__scopeId","data-v-08fbf4b6"]]),ws=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=V(),n=r=>"component"in r?!1:"link"in r?le(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(n),a=L(()=>n(e.item));return(r,u)=>(s(),k(qe,{class:M({VPNavBarMenuGroup:!0,active:i(le)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||a.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),Ts=o=>(G("data-v-afb2845e"),o=o(),q(),o),Is={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ns=Ts(()=>m("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Es=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=V();return(t,n)=>i(e).nav?(s(),c("nav",Is,[Ns,(s(!0),c(B,null,R(i(e).nav,a=>(s(),c(B,{key:JSON.stringify(a)},["link"in a?(s(),k(Vs,{key:0,item:a},null,8,["item"])):"component"in a?(s(),k(Q(a.component),re({key:1,ref_for:!0},a.props),null,16)):(s(),k(ws,{key:2,item:a},null,8,["item"]))],64))),128))])):h("",!0)}}),Cs=y(Es,[["__scopeId","data-v-afb2845e"]]);function zs(o){const{localeIndex:e,theme:t}=V();function n(a){var N,F,C;const r=a.split("."),u=(N=t.value.search)==null?void 0:N.options,d=u&&typeof u=="object",v=d&&((C=(F=u.locales)==null?void 0:F[e.value])==null?void 0:C.translations)||null,g=d&&u.translations||null;let I=v,$=g,S=o;const E=r.pop();for(const Y of r){let X=null;const D=S==null?void 0:S[Y];D&&(X=S=D);const ae=$==null?void 0:$[Y];ae&&(X=$=ae);const Z=I==null?void 0:I[Y];Z&&(X=I=Z),D||(S=X),ae||($=X),Z||(I=X)}return(I==null?void 0:I[E])??($==null?void 0:$[E])??(S==null?void 0:S[E])??""}return n}const Hs=["aria-label"],Ms={class:"DocSearch-Button-Container"},As=m("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),Bs={class:"DocSearch-Button-Placeholder"},Os=m("span",{class:"DocSearch-Button-Keys"},[m("kbd",{class:"DocSearch-Button-Key"}),m("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Xe=_({__name:"VPNavBarSearchButton",setup(o){const t=zs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,a)=>(s(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[m("span",Ms,[As,m("span",Bs,z(i(t)("button.buttonText")),1)]),Os],8,Hs))}}),Fs={class:"VPNavBarSearch"},Ds={id:"local-search"},js={key:1,id:"docsearch"},Us=_({__name:"VPNavBarSearch",setup(o){const e=zt(()=>Ht(()=>import("./VPLocalSearchBox.b52s9mCh.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=V(),a=H(!1),r=H(!1);oe(()=>{});function u(){a.value||(a.value=!0,setTimeout(d,16))}function d(){const $=new Event("keydown");$.key="k",$.metaKey=!0,window.dispatchEvent($),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function v($){const S=$.target,E=S.tagName;return S.isContentEditable||E==="INPUT"||E==="SELECT"||E==="TEXTAREA"}const g=H(!1);Ce("k",$=>{($.ctrlKey||$.metaKey)&&($.preventDefault(),g.value=!0)}),Ce("/",$=>{v($)||($.preventDefault(),g.value=!0)});const I="local";return($,S)=>{var E;return s(),c("div",Fs,[i(I)==="local"?(s(),c(B,{key:0},[g.value?(s(),k(i(e),{key:0,onClose:S[0]||(S[0]=N=>g.value=!1)})):h("",!0),m("div",Ds,[b(Xe,{onClick:S[1]||(S[1]=N=>g.value=!0)})])],64)):i(I)==="algolia"?(s(),c(B,{key:1},[a.value?(s(),k(i(t),{key:0,algolia:((E=i(n).search)==null?void 0:E.options)??i(n).algolia,onVnodeBeforeMount:S[2]||(S[2]=N=>r.value=!0)},null,8,["algolia"])):h("",!0),r.value?h("",!0):(s(),c("div",js,[b(Xe,{onClick:u})]))],64)):h("",!0)])}}}),Gs=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(s(),k(Re,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),qs=y(Gs,[["__scopeId","data-v-ef6192dc"]]),Rs=["href","rel","target"],Ws={key:1},Ks={key:2},Js=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=V(),{hasSidebar:n}=ne(),{currentLang:a}=me(),r=L(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),u=L(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),d=L(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,g)=>(s(),c("div",{class:M(["VPNavBarTitle",{"has-sidebar":i(n)}])},[m("a",{class:"title",href:r.value??i(De)(i(a).link),rel:u.value,target:d.value},[l(v.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(s(),k(ke,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):h("",!0),i(t).siteTitle?(s(),c("span",Ws,z(i(t).siteTitle),1)):i(t).siteTitle===void 0?(s(),c("span",Ks,z(i(e).title),1)):h("",!0),l(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,Rs)],2))}}),Ys=y(Js,[["__scopeId","data-v-0ad69264"]]),Xs={class:"items"},Zs={class:"title"},Qs=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=V(),{localeLinks:t,currentLang:n}=me({correspondingLink:!0});return(a,r)=>i(t).length&&i(n).label?(s(),k(qe,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:p(()=>[m("div",Xs,[m("p",Zs,z(i(n).label),1),(s(!0),c(B,null,R(i(t),u=>(s(),k(Se,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),xs=y(Qs,[["__scopeId","data-v-acee064b"]]),er=o=>(G("data-v-9fd4d1dd"),o=o(),q(),o),tr={class:"wrapper"},or={class:"container"},nr={class:"title"},ar={class:"content"},sr={class:"content-body"},rr=er(()=>m("div",{class:"divider"},[m("div",{class:"divider-line"})],-1)),ir=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=tt(),{hasSidebar:n}=ne(),{frontmatter:a}=V(),r=H({});return Fe(()=>{r.value={"has-sidebar":n.value,home:a.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(u,d)=>(s(),c("div",{class:M(["VPNavBar",r.value])},[m("div",tr,[m("div",or,[m("div",nr,[b(Ys,null,{"nav-bar-title-before":p(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),m("div",ar,[m("div",sr,[l(u.$slots,"nav-bar-content-before",{},void 0,!0),b(Us,{class:"search"}),b(Cs,{class:"menu"}),b(xs,{class:"translations"}),b(Ma,{class:"appearance"}),b(qs,{class:"social-links"}),b(_s,{class:"extra"}),l(u.$slots,"nav-bar-content-after",{},void 0,!0),b(Ls,{class:"hamburger",active:u.isScreenOpen,onClick:d[0]||(d[0]=v=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),rr],2))}}),lr=y(ir,[["__scopeId","data-v-9fd4d1dd"]]),cr={key:0,class:"VPNavScreenAppearance"},ur={class:"text"},dr=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=V();return(n,a)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(s(),c("div",cr,[m("p",ur,z(i(t).darkModeSwitchLabel||"Appearance"),1),b(Ue)])):h("",!0)}}),vr=y(dr,[["__scopeId","data-v-a3e2920d"]]),pr=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=Le("close-screen");return(t,n)=>(s(),k(x,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),mr=y(pr,[["__scopeId","data-v-1a934d60"]]),fr=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=Le("close-screen");return(t,n)=>(s(),k(x,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:p(()=>[te(z(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),dt=y(fr,[["__scopeId","data-v-aea78dd1"]]),hr={class:"VPNavScreenMenuGroupSection"},_r={key:0,class:"title"},gr=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(s(),c("div",hr,[e.text?(s(),c("p",_r,z(e.text),1)):h("",!0),(s(!0),c(B,null,R(e.items,n=>(s(),k(dt,{key:n.text,item:n},null,8,["item"]))),128))]))}}),br=y(gr,[["__scopeId","data-v-f60dbfa7"]]),kr=o=>(G("data-v-341db479"),o=o(),q(),o),$r=["aria-controls","aria-expanded"],yr=["innerHTML"],Lr=kr(()=>m("span",{class:"vpi-plus button-icon"},null,-1)),Pr=["id"],Sr={key:0,class:"item"},Vr={key:1,class:"item"},wr={key:2,class:"group"},Tr=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=H(!1),n=L(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function a(){t.value=!t.value}return(r,u)=>(s(),c("div",{class:M(["VPNavScreenMenuGroup",{open:t.value}])},[m("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:a},[m("span",{class:"button-text",innerHTML:r.text},null,8,yr),Lr],8,$r),m("div",{id:n.value,class:"items"},[(s(!0),c(B,null,R(r.items,d=>(s(),c(B,{key:JSON.stringify(d)},["link"in d?(s(),c("div",Sr,[b(dt,{item:d},null,8,["item"])])):"component"in d?(s(),c("div",Vr,[(s(),k(Q(d.component),re({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(s(),c("div",wr,[b(br,{items:d.items},null,8,["items"])]))],64))),128))],8,Pr)],2))}}),Ir=y(Tr,[["__scopeId","data-v-341db479"]]),Nr={key:0,class:"VPNavScreenMenu"},Er=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=V();return(t,n)=>i(e).nav?(s(),c("nav",Nr,[(s(!0),c(B,null,R(i(e).nav,a=>(s(),c(B,{key:JSON.stringify(a)},["link"in a?(s(),k(mr,{key:0,item:a},null,8,["item"])):"component"in a?(s(),k(Q(a.component),re({key:1,ref_for:!0},a.props,{"screen-menu":""}),null,16)):(s(),k(Ir,{key:2,text:a.text||"",items:a.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),Cr=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(s(),k(Re,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),vt=o=>(G("data-v-516e4bc3"),o=o(),q(),o),zr=vt(()=>m("span",{class:"vpi-languages icon lang"},null,-1)),Hr=vt(()=>m("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Mr={class:"list"},Ar=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=me({correspondingLink:!0}),n=H(!1);function a(){n.value=!n.value}return(r,u)=>i(e).length&&i(t).label?(s(),c("div",{key:0,class:M(["VPNavScreenTranslations",{open:n.value}])},[m("button",{class:"title",onClick:a},[zr,te(" "+z(i(t).label)+" ",1),Hr]),m("ul",Mr,[(s(!0),c(B,null,R(i(e),d=>(s(),c("li",{key:d.link,class:"item"},[b(x,{class:"link",href:d.link},{default:p(()=>[te(z(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),Br=y(Ar,[["__scopeId","data-v-516e4bc3"]]),Or={class:"container"},Fr=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=H(null),t=ot(Pe?document.body:null);return(n,a)=>(s(),k(Ae,{name:"fade",onEnter:a[0]||(a[0]=r=>t.value=!0),onAfterLeave:a[1]||(a[1]=r=>t.value=!1)},{default:p(()=>[n.open?(s(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[m("div",Or,[l(n.$slots,"nav-screen-content-before",{},void 0,!0),b(Er,{class:"menu"}),b(Br,{class:"translations"}),b(vr,{class:"appearance"}),b(Cr,{class:"social-links"}),l(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),Dr=y(Fr,[["__scopeId","data-v-2dd6d0c7"]]),jr={key:0,class:"VPNav"},Ur=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=La(),{frontmatter:a}=V(),r=L(()=>a.value.navbar!==!1);return nt("close-screen",t),$e(()=>{Pe&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(u,d)=>r.value?(s(),c("header",jr,[b(lr,{"is-screen-open":i(e),onToggleScreen:i(n)},{"nav-bar-title-before":p(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[l(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[l(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),b(Dr,{open:i(e)},{"nav-screen-content-before":p(()=>[l(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[l(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),Gr=y(Ur,[["__scopeId","data-v-7ad780c2"]]),pt=o=>(G("data-v-edd2eed8"),o=o(),q(),o),qr=["role","tabindex"],Rr=pt(()=>m("div",{class:"indicator"},null,-1)),Wr=pt(()=>m("span",{class:"vpi-chevron-right caret-icon"},null,-1)),Kr=[Wr],Jr={key:1,class:"items"},Yr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:n,isLink:a,isActiveLink:r,hasActiveLink:u,hasChildren:d,toggle:v}=po(L(()=>e.item)),g=L(()=>d.value?"section":"div"),I=L(()=>a.value?"a":"div"),$=L(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),S=L(()=>a.value?void 0:"button"),E=L(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":a.value},{"is-active":r.value},{"has-active":u.value}]);function N(C){"key"in C&&C.key!=="Enter"||!e.item.link&&v()}function F(){e.item.link&&v()}return(C,Y)=>{const X=ce("VPSidebarItem",!0);return s(),k(Q(g.value),{class:M(["VPSidebarItem",E.value])},{default:p(()=>[C.item.text?(s(),c("div",re({key:0,class:"item",role:S.value},Mt(C.item.items?{click:N,keydown:N}:{},!0),{tabindex:C.item.items&&0}),[Rr,C.item.link?(s(),k(x,{key:0,tag:I.value,class:"link",href:C.item.link,rel:C.item.rel,target:C.item.target},{default:p(()=>[(s(),k(Q($.value),{class:"text",innerHTML:C.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(s(),k(Q($.value),{key:1,class:"text",innerHTML:C.item.text},null,8,["innerHTML"])),C.item.collapsed!=null&&C.item.items&&C.item.items.length?(s(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:F,onKeydown:At(F,["enter"]),tabindex:"0"},Kr,32)):h("",!0)],16,qr)):h("",!0),C.item.items&&C.item.items.length?(s(),c("div",Jr,[C.depth<5?(s(!0),c(B,{key:0},R(C.item.items,D=>(s(),k(X,{key:D.text,item:D,depth:C.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),Xr=y(Yr,[["__scopeId","data-v-edd2eed8"]]),Zr=_({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=H(!0);let t=null;return oe(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Bt(()=>{t!=null&&(clearTimeout(t),t=null)}),(n,a)=>(s(!0),c(B,null,R(n.items,r=>(s(),c("div",{key:r.text,class:M(["group",{"no-transition":e.value}])},[b(Xr,{item:r,depth:0},null,8,["item"])],2))),128))}}),Qr=y(Zr,[["__scopeId","data-v-51288d80"]]),mt=o=>(G("data-v-42c4c606"),o=o(),q(),o),xr=mt(()=>m("div",{class:"curtain"},null,-1)),ei={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},ti=mt(()=>m("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),oi=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=ne(),n=o,a=H(null),r=ot(Pe?document.body:null);ee([n,a],()=>{var d;n.open?(r.value=!0,(d=a.value)==null||d.focus()):r.value=!1},{immediate:!0,flush:"post"});const u=H(0);return ee(e,()=>{u.value+=1},{deep:!0}),(d,v)=>i(t)?(s(),c("aside",{key:0,class:M(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:a,onClick:v[0]||(v[0]=Ot(()=>{},["stop"]))},[xr,m("nav",ei,[ti,l(d.$slots,"sidebar-nav-before",{},void 0,!0),(s(),k(Qr,{items:i(e),key:u.value},null,8,["items"])),l(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),ni=y(oi,[["__scopeId","data-v-42c4c606"]]),ai=_({__name:"VPSkipLink",setup(o){const e=pe(),t=H();ee(()=>e.path,()=>t.value.focus());function n({target:a}){const r=document.getElementById(decodeURIComponent(a.hash).slice(1));if(r){const u=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",u)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",u),r.focus(),window.scrollTo(0,0)}}return(a,r)=>(s(),c(B,null,[m("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),m("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),si=y(ai,[["__scopeId","data-v-c8291ffa"]]),ri=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:n}=ne(),a=pe();ee(()=>a.path,n),vo(e,n);const{frontmatter:r}=V(),u=Ft(),d=L(()=>!!u["home-hero-image"]);return nt("hero-image-slot-exists",d),(v,g)=>{const I=ce("Content");return i(r).layout!==!1?(s(),c("div",{key:0,class:M(["Layout",i(r).pageClass])},[l(v.$slots,"layout-top",{},void 0,!0),b(si),b(Xt,{class:"backdrop",show:i(e),onClick:i(n)},null,8,["show","onClick"]),b(Gr,null,{"nav-bar-title-before":p(()=>[l(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[l(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[l(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[l(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[l(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[l(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),b(ya,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),b(ni,{open:i(e)},{"sidebar-nav-before":p(()=>[l(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[l(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),b(oa,null,{"page-top":p(()=>[l(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[l(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[l(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[l(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[l(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[l(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[l(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[l(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[l(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[l(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[l(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[l(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[l(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[l(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[l(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[l(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[l(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[l(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[l(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[l(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[l(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[l(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[l(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),b(ia),l(v.$slots,"layout-bottom",{},void 0,!0)],2)):(s(),k(I,{key:1}))}}}),ii=y(ri,[["__scopeId","data-v-d8b57b2d"]]),li={Layout:ii,enhanceApp:({app:o})=>{o.component("Badge",Kt)}},ci={class:"ad"},ui=["src","onClick"],di={__name:"layout",setup(o){const{Layout:e}=li,t=Dt({list:[],toLink(n){n.link?window.open(n.link):window.open(`https://cool-js.com/ad/${n.id}`)},get(){fetch("https://service.cool-js.com/api/app/info/ad/list",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({channel:1})}).then(n=>n.json()).then(n=>{this.list=n.data})}});return oe(()=>{t.get()}),(n,a)=>(s(),k(i(e),null,{"sidebar-nav-before":p(()=>[m("div",ci,[(s(!0),c(B,null,R(t.list,r=>(s(),c("img",{key:r,src:r.pic,onClick:u=>t.toLink(r)},null,8,ui))),128))])]),_:1}))}},vi=y(di,[["__scopeId","data-v-96d1ba1f"]]),mi={Layout:vi,setup(){const o=pe(),e=()=>{new qt("[data-zoomable]",{background:"var(--vp-c-bg)"})};oe(()=>{e()}),ee(()=>o.path,()=>et(()=>e()))}};export{mi as R,zs as c,V as u}; +See: https://github.com/francoischalifour/medium-zoom`)}},Ut=function(e){var t=document.createElement("div");return t.classList.add("medium-zoom-overlay"),t.style.background=e,t},Gt=function(e){var t=e.getBoundingClientRect(),n=t.top,a=t.left,r=t.width,u=t.height,d=e.cloneNode(),v=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,g=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;return d.removeAttribute("id"),d.style.position="absolute",d.style.top=n+v+"px",d.style.left=a+g+"px",d.style.width=r+"px",d.style.height=u+"px",d.style.transform="",d},de=function(e,t){var n=ie({bubbles:!1,cancelable:!1,detail:void 0},t);if(typeof window.CustomEvent=="function")return new CustomEvent(e,n);var a=document.createEvent("CustomEvent");return a.initCustomEvent(e,n.bubbles,n.cancelable,n.detail),a},qt=function o(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=window.Promise||function(P){function w(){}P(w,w)},a=function(P){var w=P.target;if(w===fe){N();return}D.indexOf(w)!==-1&&F({target:w})},r=function(){if(!(Z||!f.original)){var P=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;Math.abs(We-P)>A.scrollOffset&&setTimeout(N,150)}},u=function(P){var w=P.key||P.keyCode;(w==="Escape"||w==="Esc"||w===27)&&N()},d=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=P;if(P.background&&(fe.style.background=P.background),P.container&&P.container instanceof Object&&(w.container=ie({},A.container,P.container)),P.template){var O=ge(P.template)?P.template:document.querySelector(P.template);w.template=O}return A=ie({},A,w),D.forEach(function(j){j.dispatchEvent(de("medium-zoom:update",{detail:{zoom:U}}))}),U},v=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return o(ie({},A,P))},g=function(){for(var P=arguments.length,w=Array(P),O=0;O0?w.reduce(function(T,K){return[].concat(T,Ye(K))},[]):D;return j.forEach(function(T){T.classList.remove("medium-zoom-image"),T.dispatchEvent(de("medium-zoom:detach",{detail:{zoom:U}}))}),D=D.filter(function(T){return j.indexOf(T)===-1}),U},$=function(P,w){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return D.forEach(function(j){j.addEventListener("medium-zoom:"+P,w,O)}),ae.push({type:"medium-zoom:"+P,listener:w,options:O}),U},S=function(P,w){var O=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return D.forEach(function(j){j.removeEventListener("medium-zoom:"+P,w,O)}),ae=ae.filter(function(j){return!(j.type==="medium-zoom:"+P&&j.listener.toString()===w.toString())}),U},E=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=P.target,O=function(){var T={width:document.documentElement.clientWidth,height:document.documentElement.clientHeight,left:0,top:0,right:0,bottom:0},K=void 0,J=void 0;if(A.container)if(A.container instanceof Object)T=ie({},T,A.container),K=T.width-T.left-T.right-A.margin*2,J=T.height-T.top-T.bottom-A.margin*2;else{var ue=ge(A.container)?A.container:document.querySelector(A.container),se=ue.getBoundingClientRect(),Ve=se.width,ft=se.height,ht=se.left,_t=se.top;T=ie({},T,{width:Ve,height:ft,left:ht,top:_t})}K=K||T.width-A.margin*2,J=J||T.height-A.margin*2;var ve=f.zoomedHd||f.original,gt=Je(ve)?K:ve.naturalWidth||K,bt=Je(ve)?J:ve.naturalHeight||J,he=ve.getBoundingClientRect(),kt=he.top,$t=he.left,we=he.width,Te=he.height,yt=Math.min(Math.max(we,gt),K)/we,Lt=Math.min(Math.max(Te,bt),J)/Te,Ie=Math.min(yt,Lt),Pt=(-$t+(K-we)/2+A.margin+T.left)/Ie,St=(-kt+(J-Te)/2+A.margin+T.top)/Ie,Ke="scale("+Ie+") translate3d("+Pt+"px, "+St+"px, 0)";f.zoomed.style.transform=Ke,f.zoomedHd&&(f.zoomedHd.style.transform=Ke)};return new n(function(j){if(w&&D.indexOf(w)===-1){j(U);return}var T=function Ve(){Z=!1,f.zoomed.removeEventListener("transitionend",Ve),f.original.dispatchEvent(de("medium-zoom:opened",{detail:{zoom:U}})),j(U)};if(f.zoomed){j(U);return}if(w)f.original=w;else if(D.length>0){var K=D;f.original=K[0]}else{j(U);return}if(f.original.dispatchEvent(de("medium-zoom:open",{detail:{zoom:U}})),We=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,Z=!0,f.zoomed=Gt(f.original),document.body.appendChild(fe),A.template){var J=ge(A.template)?A.template:document.querySelector(A.template);f.template=document.createElement("div"),f.template.appendChild(J.content.cloneNode(!0)),document.body.appendChild(f.template)}if(f.original.parentElement&&f.original.parentElement.tagName==="PICTURE"&&f.original.currentSrc&&(f.zoomed.src=f.original.currentSrc),document.body.appendChild(f.zoomed),window.requestAnimationFrame(function(){document.body.classList.add("medium-zoom--opened")}),f.original.classList.add("medium-zoom-image--hidden"),f.zoomed.classList.add("medium-zoom-image--opened"),f.zoomed.addEventListener("click",N),f.zoomed.addEventListener("transitionend",T),f.original.getAttribute("data-zoom-src")){f.zoomedHd=f.zoomed.cloneNode(),f.zoomedHd.removeAttribute("srcset"),f.zoomedHd.removeAttribute("sizes"),f.zoomedHd.removeAttribute("loading"),f.zoomedHd.src=f.zoomed.getAttribute("data-zoom-src"),f.zoomedHd.onerror=function(){clearInterval(ue),console.warn("Unable to reach the zoom image target "+f.zoomedHd.src),f.zoomedHd=null,O()};var ue=setInterval(function(){f.zoomedHd.complete&&(clearInterval(ue),f.zoomedHd.classList.add("medium-zoom-image--opened"),f.zoomedHd.addEventListener("click",N),document.body.appendChild(f.zoomedHd),O())},10)}else if(f.original.hasAttribute("srcset")){f.zoomedHd=f.zoomed.cloneNode(),f.zoomedHd.removeAttribute("sizes"),f.zoomedHd.removeAttribute("loading");var se=f.zoomedHd.addEventListener("load",function(){f.zoomedHd.removeEventListener("load",se),f.zoomedHd.classList.add("medium-zoom-image--opened"),f.zoomedHd.addEventListener("click",N),document.body.appendChild(f.zoomedHd),O()})}else O()})},N=function(){return new n(function(P){if(Z||!f.original){P(U);return}var w=function O(){f.original.classList.remove("medium-zoom-image--hidden"),document.body.removeChild(f.zoomed),f.zoomedHd&&document.body.removeChild(f.zoomedHd),document.body.removeChild(fe),f.zoomed.classList.remove("medium-zoom-image--opened"),f.template&&document.body.removeChild(f.template),Z=!1,f.zoomed.removeEventListener("transitionend",O),f.original.dispatchEvent(de("medium-zoom:closed",{detail:{zoom:U}})),f.original=null,f.zoomed=null,f.zoomedHd=null,f.template=null,P(U)};Z=!0,document.body.classList.remove("medium-zoom--opened"),f.zoomed.style.transform="",f.zoomedHd&&(f.zoomedHd.style.transform=""),f.template&&(f.template.style.transition="opacity 150ms",f.template.style.opacity=0),f.original.dispatchEvent(de("medium-zoom:close",{detail:{zoom:U}})),f.zoomed.addEventListener("transitionend",w)})},F=function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},w=P.target;return f.original?N():E({target:w})},C=function(){return A},Y=function(){return D},X=function(){return f.original},D=[],ae=[],Z=!1,We=0,A=t,f={original:null,zoomed:null,zoomedHd:null,template:null};Object.prototype.toString.call(e)==="[object Object]"?A=e:(e||typeof e=="string")&&g(e),A=ie({margin:0,background:"#fff",scrollOffset:40,container:null,template:null},A);var fe=Ut(A.background);document.addEventListener("click",a),document.addEventListener("keyup",u),document.addEventListener("scroll",r),window.addEventListener("resize",N);var U={open:E,close:N,toggle:F,update:d,clone:v,attach:g,detach:I,on:$,off:S,getOptions:C,getImages:Y,getZoomedImage:X};return U};function Rt(o,e){e===void 0&&(e={});var t=e.insertAt;if(!(typeof document>"u")){var n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",t==="top"&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=o:a.appendChild(document.createTextNode(o))}}var Wt=".medium-zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .3s;will-change:opacity}.medium-zoom--opened .medium-zoom-overlay{cursor:pointer;cursor:zoom-out;opacity:1}.medium-zoom-image{cursor:pointer;cursor:zoom-in;transition:transform .3s cubic-bezier(.2,0,.2,1)!important}.medium-zoom-image--hidden{visibility:hidden}.medium-zoom-image--opened{position:relative;cursor:pointer;cursor:zoom-out;will-change:transform}";Rt(Wt);const Kt=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(s(),c("span",{class:M(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[te(z(e.text),1)])],2))}}),Jt={key:0,class:"VPBackdrop"},Yt=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(s(),k(Ae,{name:"fade"},{default:p(()=>[e.show?(s(),c("div",Jt)):h("",!0)]),_:1}))}}),Xt=y(Yt,[["__scopeId","data-v-54a304ca"]]),V=Vt;function Zt(o,e){let t,n=!1;return()=>{t&&clearTimeout(t),n?t=setTimeout(o,e):(o(),(n=!0)&&setTimeout(()=>n=!1,e))}}function ze(o){return/^\//.test(o)?o:`/${o}`}function De(o){const{pathname:e,search:t,hash:n,protocol:a}=new URL(o,"http://a.com");if(wt(o)||o.startsWith("#")||!a.startsWith("http")||!Tt(e))return o;const{site:r}=V(),u=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,r.value.cleanUrls?"":".html")}${t}${n}`);return Be(u)}function me({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:n,theme:a,hash:r}=V(),u=L(()=>{var v,g;return{label:(v=e.value.locales[t.value])==null?void 0:v.label,link:((g=e.value.locales[t.value])==null?void 0:g.link)||(t.value==="root"?"/":`/${t.value}/`)}});return{localeLinks:L(()=>Object.entries(e.value.locales).flatMap(([v,g])=>u.value.label===g.label?[]:{text:g.label,link:Qt(g.link||(v==="root"?"/":`/${v}/`),a.value.i18nRouting!==!1&&o,n.value.relativePath.slice(u.value.link.length-1),!e.value.cleanUrls)+r.value})),currentLang:u}}function Qt(o,e,t,n){return e?o.replace(/\/$/,"")+ze(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,n?".html":"")):o}const xt=o=>(G("data-v-6ff51ddd"),o=o(),q(),o),eo={class:"NotFound"},to={class:"code"},oo={class:"title"},no=xt(()=>m("div",{class:"divider"},null,-1)),ao={class:"quote"},so={class:"action"},ro=["href","aria-label"],io=_({__name:"NotFound",setup(o){const{theme:e}=V(),{currentLang:t}=me();return(n,a)=>{var r,u,d,v,g;return s(),c("div",eo,[m("p",to,z(((r=i(e).notFound)==null?void 0:r.code)??"404"),1),m("h1",oo,z(((u=i(e).notFound)==null?void 0:u.title)??"PAGE NOT FOUND"),1),no,m("blockquote",ao,z(((d=i(e).notFound)==null?void 0:d.quote)??"But if you don't change your direction, and if you keep looking, you may end up where you are heading."),1),m("div",so,[m("a",{class:"link",href:i(Be)(i(t).link),"aria-label":((v=i(e).notFound)==null?void 0:v.linkLabel)??"go to home"},z(((g=i(e).notFound)==null?void 0:g.linkText)??"Take me home"),9,ro)])])}}}),lo=y(io,[["__scopeId","data-v-6ff51ddd"]]);function at(o,e){if(Array.isArray(o))return be(o);if(o==null)return[];e=ze(e);const t=Object.keys(o).sort((a,r)=>r.split("/").length-a.split("/").length).find(a=>e.startsWith(ze(a))),n=t?o[t]:[];return Array.isArray(n)?be(n):be(n.items,n.base)}function co(o){const e=[];let t=0;for(const n in o){const a=o[n];if(a.items){t=e.push(a);continue}e[t]||e.push({items:[]}),e[t].items.push(a)}return e}function uo(o){const e=[];function t(n){for(const a of n)a.text&&a.link&&e.push({text:a.text,link:a.link,docFooterText:a.docFooterText}),a.items&&t(a.items)}return t(o),e}function He(o,e){return Array.isArray(e)?e.some(t=>He(o,t)):le(o,e.link)?!0:e.items?He(o,e.items):!1}function be(o,e){return[...o].map(t=>{const n={...t},a=n.base||e;return a&&n.link&&(n.link=a+n.link),n.items&&(n.items=be(n.items,a)),n})}function ne(){const{frontmatter:o,page:e,theme:t}=V(),n=Ee("(min-width: 960px)"),a=H(!1),r=L(()=>{const F=t.value.sidebar,C=e.value.relativePath;return F?at(F,C):[]}),u=H(r.value);ee(r,(F,C)=>{JSON.stringify(F)!==JSON.stringify(C)&&(u.value=r.value)});const d=L(()=>o.value.sidebar!==!1&&u.value.length>0&&o.value.layout!=="home"),v=L(()=>g?o.value.aside==null?t.value.aside==="left":o.value.aside==="left":!1),g=L(()=>o.value.layout==="home"?!1:o.value.aside!=null?!!o.value.aside:t.value.aside!==!1),I=L(()=>d.value&&n.value),$=L(()=>d.value?co(u.value):[]);function S(){a.value=!0}function E(){a.value=!1}function N(){a.value?E():S()}return{isOpen:a,sidebar:u,sidebarGroups:$,hasSidebar:d,hasAside:g,leftAside:v,isSidebarEnabled:I,open:S,close:E,toggle:N}}function vo(o,e){let t;$e(()=>{t=o.value?document.activeElement:void 0}),oe(()=>{window.addEventListener("keyup",n)}),Oe(()=>{window.removeEventListener("keyup",n)});function n(a){a.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function po(o){const{page:e,hash:t}=V(),n=H(!1),a=L(()=>o.value.collapsed!=null),r=L(()=>!!o.value.link),u=H(!1),d=()=>{u.value=le(e.value.relativePath,o.value.link)};ee([e,o,t],d),oe(d);const v=L(()=>u.value?!0:o.value.items?He(e.value.relativePath,o.value.items):!1),g=L(()=>!!(o.value.items&&o.value.items.length));$e(()=>{n.value=!!(a.value&&o.value.collapsed)}),Fe(()=>{(u.value||v.value)&&(n.value=!1)});function I(){a.value&&(n.value=!n.value)}return{collapsed:n,collapsible:a,isLink:r,isActiveLink:u,hasActiveLink:v,hasChildren:g,toggle:I}}function mo(){const{hasSidebar:o}=ne(),e=Ee("(min-width: 960px)"),t=Ee("(min-width: 1280px)");return{isAsideEnabled:L(()=>!t.value&&!e.value?!1:o.value?t.value:e.value)}}const Me=[];function st(o){return typeof o.outline=="object"&&!Array.isArray(o.outline)&&o.outline.label||o.outlineTitle||"On this page"}function je(o){const e=[...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")].filter(t=>t.id&&t.hasChildNodes()).map(t=>{const n=Number(t.tagName[1]);return{element:t,title:fo(t),link:"#"+t.id,level:n}});return ho(e,o)}function fo(o){let e="";for(const t of o.childNodes)if(t.nodeType===1){if(t.classList.contains("VPBadge")||t.classList.contains("header-anchor")||t.classList.contains("ignore-header"))continue;e+=t.textContent}else t.nodeType===3&&(e+=t.textContent);return e.trim()}function ho(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[n,a]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(u=>u.level>=n&&u.level<=a),Me.length=0;for(const{element:u,link:d}of o)Me.push({element:u,link:d});const r=[];e:for(let u=0;u=0;v--){const g=o[v];if(g.level{requestAnimationFrame(r),window.addEventListener("scroll",n)}),It(()=>{u(location.hash)}),Oe(()=>{window.removeEventListener("scroll",n)});function r(){if(!t.value)return;const d=window.scrollY,v=window.innerHeight,g=document.body.offsetHeight,I=Math.abs(d+v-g)<1,$=Me.map(({element:E,link:N})=>({link:N,top:go(E)})).filter(({top:E})=>!Number.isNaN(E)).sort((E,N)=>E.top-N.top);if(!$.length){u(null);return}if(d<1){u(null);return}if(I){u($[$.length-1].link);return}let S=null;for(const{link:E,top:N}of $){if(N>d+Nt()+4)break;S=E}u(S)}function u(d){a&&a.classList.remove("active"),d==null?a=null:a=o.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const v=a;v?(v.classList.add("active"),e.value.style.top=v.offsetTop+39+"px",e.value.style.opacity="1"):(e.value.style.top="33px",e.value.style.opacity="0")}}function go(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const bo=["href","title"],ko=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const n=t.href.split("#")[1],a=document.getElementById(decodeURIComponent(n));a==null||a.focus({preventScroll:!0})}return(t,n)=>{const a=ce("VPDocOutlineItem",!0);return s(),c("ul",{class:M(["VPDocOutlineItem",t.root?"root":"nested"])},[(s(!0),c(B,null,R(t.headers,({children:r,link:u,title:d})=>(s(),c("li",null,[m("a",{class:"outline-link",href:u,onClick:e,title:d},z(d),9,bo),r!=null&&r.length?(s(),k(a,{key:0,headers:r},null,8,["headers"])):h("",!0)]))),256))],2)}}}),rt=y(ko,[["__scopeId","data-v-53c99d69"]]),$o={class:"content"},yo={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},Lo=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=V(),n=Ze([]);ye(()=>{n.value=je(e.value.outline??t.value.outline)});const a=H(),r=H();return _o(a,r),(u,d)=>(s(),c("nav",{"aria-labelledby":"doc-outline-aria-label",class:M(["VPDocAsideOutline",{"has-outline":n.value.length>0}]),ref_key:"container",ref:a},[m("div",$o,[m("div",{class:"outline-marker",ref_key:"marker",ref:r},null,512),m("div",yo,z(i(st)(i(t))),1),b(rt,{headers:n.value,root:!0},null,8,["headers"])])],2))}}),Po=y(Lo,[["__scopeId","data-v-f610f197"]]),So={class:"VPDocAsideCarbonAds"},Vo=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,n)=>(s(),c("div",So,[b(i(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),wo=o=>(G("data-v-cb998dce"),o=o(),q(),o),To={class:"VPDocAside"},Io=wo(()=>m("div",{class:"spacer"},null,-1)),No=_({__name:"VPDocAside",setup(o){const{theme:e}=V();return(t,n)=>(s(),c("div",To,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),b(Po),l(t.$slots,"aside-outline-after",{},void 0,!0),Io,l(t.$slots,"aside-ads-before",{},void 0,!0),i(e).carbonAds?(s(),k(Vo,{key:0,"carbon-ads":i(e).carbonAds},null,8,["carbon-ads"])):h("",!0),l(t.$slots,"aside-ads-after",{},void 0,!0),l(t.$slots,"aside-bottom",{},void 0,!0)]))}}),Eo=y(No,[["__scopeId","data-v-cb998dce"]]);function Co(){const{theme:o,page:e}=V();return L(()=>{const{text:t="Edit this page",pattern:n=""}=o.value.editLink||{};let a;return typeof n=="function"?a=n(e.value):a=n.replace(/:path/g,e.value.filePath),{url:a,text:t}})}function zo(){const{page:o,theme:e,frontmatter:t}=V();return L(()=>{var g,I,$,S,E,N,F,C;const n=at(e.value.sidebar,o.value.relativePath),a=uo(n),r=Ho(a,Y=>Y.link.replace(/[?#].*$/,"")),u=r.findIndex(Y=>le(o.value.relativePath,Y.link)),d=((g=e.value.docFooter)==null?void 0:g.prev)===!1&&!t.value.prev||t.value.prev===!1,v=((I=e.value.docFooter)==null?void 0:I.next)===!1&&!t.value.next||t.value.next===!1;return{prev:d?void 0:{text:(typeof t.value.prev=="string"?t.value.prev:typeof t.value.prev=="object"?t.value.prev.text:void 0)??(($=r[u-1])==null?void 0:$.docFooterText)??((S=r[u-1])==null?void 0:S.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((E=r[u-1])==null?void 0:E.link)},next:v?void 0:{text:(typeof t.value.next=="string"?t.value.next:typeof t.value.next=="object"?t.value.next.text:void 0)??((N=r[u+1])==null?void 0:N.docFooterText)??((F=r[u+1])==null?void 0:F.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((C=r[u+1])==null?void 0:C.link)}}})}function Ho(o,e){const t=new Set;return o.filter(n=>{const a=e(n);return t.has(a)?!1:t.add(a)})}const x=_({__name:"VPLink",props:{tag:{},href:{},noIcon:{type:Boolean},target:{},rel:{}},setup(o){const e=o,t=L(()=>e.tag??(e.href?"a":"span")),n=L(()=>e.href&&Qe.test(e.href)||e.target==="_blank");return(a,r)=>(s(),k(Q(t.value),{class:M(["VPLink",{link:a.href,"vp-external-link-icon":n.value,"no-icon":a.noIcon}]),href:a.href?i(De)(a.href):void 0,target:a.target??(n.value?"_blank":void 0),rel:a.rel??(n.value?"noreferrer":void 0)},{default:p(()=>[l(a.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),Mo={class:"VPLastUpdated"},Ao=["datetime"],Bo=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:n}=V(),a=L(()=>new Date(t.value.lastUpdated)),r=L(()=>a.value.toISOString()),u=H("");return oe(()=>{$e(()=>{var d,v,g;u.value=new Intl.DateTimeFormat((v=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&v.forceLocale?n.value:void 0,((g=e.value.lastUpdated)==null?void 0:g.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(a.value)})}),(d,v)=>{var g;return s(),c("p",Mo,[te(z(((g=i(e).lastUpdated)==null?void 0:g.text)||i(e).lastUpdatedText||"Last updated")+": ",1),m("time",{datetime:r.value},z(u.value),9,Ao)])}}}),Oo=y(Bo,[["__scopeId","data-v-1bb0c8a8"]]),it=o=>(G("data-v-1bcd8184"),o=o(),q(),o),Fo={key:0,class:"VPDocFooter"},Do={key:0,class:"edit-info"},jo={key:0,class:"edit-link"},Uo=it(()=>m("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Go={key:1,class:"last-updated"},qo={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Ro=it(()=>m("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),Wo={class:"pager"},Ko=["innerHTML"],Jo=["innerHTML"],Yo={class:"pager"},Xo=["innerHTML"],Zo=["innerHTML"],Qo=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:n}=V(),a=Co(),r=zo(),u=L(()=>e.value.editLink&&n.value.editLink!==!1),d=L(()=>t.value.lastUpdated),v=L(()=>u.value||d.value||r.value.prev||r.value.next);return(g,I)=>{var $,S,E,N;return v.value?(s(),c("footer",Fo,[l(g.$slots,"doc-footer-before",{},void 0,!0),u.value||d.value?(s(),c("div",Do,[u.value?(s(),c("div",jo,[b(x,{class:"edit-link-button",href:i(a).url,"no-icon":!0},{default:p(()=>[Uo,te(" "+z(i(a).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(s(),c("div",Go,[b(Oo)])):h("",!0)])):h("",!0),($=i(r).prev)!=null&&$.link||(S=i(r).next)!=null&&S.link?(s(),c("nav",qo,[Ro,m("div",Wo,[(E=i(r).prev)!=null&&E.link?(s(),k(x,{key:0,class:"pager-link prev",href:i(r).prev.link},{default:p(()=>{var F;return[m("span",{class:"desc",innerHTML:((F=i(e).docFooter)==null?void 0:F.prev)||"Previous page"},null,8,Ko),m("span",{class:"title",innerHTML:i(r).prev.text},null,8,Jo)]}),_:1},8,["href"])):h("",!0)]),m("div",Yo,[(N=i(r).next)!=null&&N.link?(s(),k(x,{key:0,class:"pager-link next",href:i(r).next.link},{default:p(()=>{var F;return[m("span",{class:"desc",innerHTML:((F=i(e).docFooter)==null?void 0:F.next)||"Next page"},null,8,Xo),m("span",{class:"title",innerHTML:i(r).next.text},null,8,Zo)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),xo=y(Qo,[["__scopeId","data-v-1bcd8184"]]),en=o=>(G("data-v-e6f2a212"),o=o(),q(),o),tn={class:"container"},on=en(()=>m("div",{class:"aside-curtain"},null,-1)),nn={class:"aside-container"},an={class:"aside-content"},sn={class:"content"},rn={class:"content-container"},ln={class:"main"},cn=_({__name:"VPDoc",setup(o){const{theme:e}=V(),t=pe(),{hasSidebar:n,hasAside:a,leftAside:r}=ne(),u=L(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,v)=>{const g=ce("Content");return s(),c("div",{class:M(["VPDoc",{"has-sidebar":i(n),"has-aside":i(a)}])},[l(d.$slots,"doc-top",{},void 0,!0),m("div",tn,[i(a)?(s(),c("div",{key:0,class:M(["aside",{"left-aside":i(r)}])},[on,m("div",nn,[m("div",an,[b(Eo,null,{"aside-top":p(()=>[l(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[l(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[l(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[l(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[l(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[l(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),m("div",sn,[m("div",rn,[l(d.$slots,"doc-before",{},void 0,!0),m("main",ln,[b(g,{class:M(["vp-doc",[u.value,i(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),b(xo,null,{"doc-footer-before":p(()=>[l(d.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),l(d.$slots,"doc-after",{},void 0,!0)])])]),l(d.$slots,"doc-bottom",{},void 0,!0)],2)}}}),un=y(cn,[["__scopeId","data-v-e6f2a212"]]),dn=_({__name:"VPButton",props:{tag:{},size:{default:"medium"},theme:{default:"brand"},text:{},href:{},target:{},rel:{}},setup(o){const e=o,t=L(()=>e.href&&Qe.test(e.href)),n=L(()=>e.tag||e.href?"a":"button");return(a,r)=>(s(),k(Q(n.value),{class:M(["VPButton",[a.size,a.theme]]),href:a.href?i(De)(a.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:p(()=>[te(z(a.text),1)]),_:1},8,["class","href","target","rel"]))}}),vn=y(dn,[["__scopeId","data-v-c9cf0e3c"]]),pn=["src","alt"],mn=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const n=ce("VPImage",!0);return e.image?(s(),c(B,{key:0},[typeof e.image=="string"||"src"in e.image?(s(),c("img",re({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:i(Be)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,pn)):(s(),c(B,{key:1},[b(n,re({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),b(n,re({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),ke=y(mn,[["__scopeId","data-v-ab19afbb"]]),fn=o=>(G("data-v-b10c5094"),o=o(),q(),o),hn={class:"container"},_n={class:"main"},gn={key:0,class:"name"},bn=["innerHTML"],kn=["innerHTML"],$n=["innerHTML"],yn={key:0,class:"actions"},Ln={key:0,class:"image"},Pn={class:"image-container"},Sn=fn(()=>m("div",{class:"image-bg"},null,-1)),Vn=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=Le("hero-image-slot-exists");return(t,n)=>(s(),c("div",{class:M(["VPHero",{"has-image":t.image||i(e)}])},[m("div",hn,[m("div",_n,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(s(),c("h1",gn,[m("span",{innerHTML:t.name,class:"clip"},null,8,bn)])):h("",!0),t.text?(s(),c("p",{key:1,innerHTML:t.text,class:"text"},null,8,kn)):h("",!0),t.tagline?(s(),c("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,$n)):h("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(s(),c("div",yn,[(s(!0),c(B,null,R(t.actions,a=>(s(),c("div",{key:a.link,class:"action"},[b(vn,{tag:"a",size:"medium",theme:a.theme,text:a.text,href:a.link,target:a.target,rel:a.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||i(e)?(s(),c("div",Ln,[m("div",Pn,[Sn,l(t.$slots,"home-hero-image",{},()=>[t.image?(s(),k(ke,{key:0,class:"image-src",image:t.image},null,8,["image"])):h("",!0)],!0)])])):h("",!0)])],2))}}),wn=y(Vn,[["__scopeId","data-v-b10c5094"]]),Tn=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=V();return(t,n)=>i(e).hero?(s(),k(wn,{key:0,class:"VPHomeHero",name:i(e).hero.name,text:i(e).hero.text,tagline:i(e).hero.tagline,image:i(e).hero.image,actions:i(e).hero.actions},{"home-hero-info-before":p(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":p(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":p(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":p(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":p(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),In=o=>(G("data-v-bd37d1a2"),o=o(),q(),o),Nn={class:"box"},En={key:0,class:"icon"},Cn=["innerHTML"],zn=["innerHTML"],Hn=["innerHTML"],Mn={key:4,class:"link-text"},An={class:"link-text-value"},Bn=In(()=>m("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),On=_({__name:"VPFeature",props:{icon:{},title:{},details:{},link:{},linkText:{},rel:{},target:{}},setup(o){return(e,t)=>(s(),k(x,{class:"VPFeature",href:e.link,rel:e.rel,target:e.target,"no-icon":!0,tag:e.link?"a":"div"},{default:p(()=>[m("article",Nn,[typeof e.icon=="object"&&e.icon.wrap?(s(),c("div",En,[b(ke,{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"?(s(),k(ke,{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?(s(),c("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Cn)):h("",!0),m("h2",{class:"title",innerHTML:e.title},null,8,zn),e.details?(s(),c("p",{key:3,class:"details",innerHTML:e.details},null,8,Hn)):h("",!0),e.linkText?(s(),c("div",Mn,[m("p",An,[te(z(e.linkText)+" ",1),Bn])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),Fn=y(On,[["__scopeId","data-v-bd37d1a2"]]),Dn={key:0,class:"VPFeatures"},jn={class:"container"},Un={class:"items"},Gn=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=L(()=>{const n=e.features.length;if(n){if(n===2)return"grid-2";if(n===3)return"grid-3";if(n%3===0)return"grid-6";if(n>3)return"grid-4"}else return});return(n,a)=>n.features?(s(),c("div",Dn,[m("div",jn,[m("div",Un,[(s(!0),c(B,null,R(n.features,r=>(s(),c("div",{key:r.title,class:M(["item",[t.value]])},[b(Fn,{icon:r.icon,title:r.title,details:r.details,link:r.link,"link-text":r.linkText,rel:r.rel,target:r.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),qn=y(Gn,[["__scopeId","data-v-b1eea84a"]]),Rn=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=V();return(t,n)=>i(e).features?(s(),k(qn,{key:0,class:"VPHomeFeatures",features:i(e).features},null,8,["features"])):h("",!0)}}),Wn=_({__name:"VPHomeContent",setup(o){const{width:e}=Et({initialWidth:0,includeScrollbar:!1});return(t,n)=>(s(),c("div",{class:"vp-doc container",style:xe(i(e)?{"--vp-offset":`calc(50% - ${i(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),Kn=y(Wn,[["__scopeId","data-v-c141a4bd"]]),Jn={class:"VPHome"},Yn=_({__name:"VPHome",setup(o){const{frontmatter:e}=V();return(t,n)=>{const a=ce("Content");return s(),c("div",Jn,[l(t.$slots,"home-hero-before",{},void 0,!0),b(Tn,null,{"home-hero-info-before":p(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[l(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),l(t.$slots,"home-hero-after",{},void 0,!0),l(t.$slots,"home-features-before",{},void 0,!0),b(Rn),l(t.$slots,"home-features-after",{},void 0,!0),i(e).markdownStyles!==!1?(s(),k(Kn,{key:0},{default:p(()=>[b(a)]),_:1})):(s(),k(a,{key:1}))])}}}),Xn=y(Yn,[["__scopeId","data-v-07b1ad08"]]),Zn={},Qn={class:"VPPage"};function xn(o,e){const t=ce("Content");return s(),c("div",Qn,[l(o.$slots,"page-top"),b(t),l(o.$slots,"page-bottom")])}const ea=y(Zn,[["render",xn]]),ta=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=V(),{hasSidebar:n}=ne();return(a,r)=>(s(),c("div",{class:M(["VPContent",{"has-sidebar":i(n),"is-home":i(t).layout==="home"}]),id:"VPContent"},[i(e).isNotFound?l(a.$slots,"not-found",{key:0},()=>[b(lo)],!0):i(t).layout==="page"?(s(),k(ea,{key:1},{"page-top":p(()=>[l(a.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[l(a.$slots,"page-bottom",{},void 0,!0)]),_:3})):i(t).layout==="home"?(s(),k(Xn,{key:2},{"home-hero-before":p(()=>[l(a.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[l(a.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[l(a.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[l(a.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[l(a.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[l(a.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[l(a.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[l(a.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[l(a.$slots,"home-features-after",{},void 0,!0)]),_:3})):i(t).layout&&i(t).layout!=="doc"?(s(),k(Q(i(t).layout),{key:3})):(s(),k(un,{key:4},{"doc-top":p(()=>[l(a.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[l(a.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":p(()=>[l(a.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[l(a.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[l(a.$slots,"doc-after",{},void 0,!0)]),"aside-top":p(()=>[l(a.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":p(()=>[l(a.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[l(a.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[l(a.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[l(a.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":p(()=>[l(a.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),oa=y(ta,[["__scopeId","data-v-9a6c75ad"]]),na={class:"container"},aa=["innerHTML"],sa=["innerHTML"],ra=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=ne();return(a,r)=>i(e).footer&&i(t).footer!==!1?(s(),c("footer",{key:0,class:M(["VPFooter",{"has-sidebar":i(n)}])},[m("div",na,[i(e).footer.message?(s(),c("p",{key:0,class:"message",innerHTML:i(e).footer.message},null,8,aa)):h("",!0),i(e).footer.copyright?(s(),c("p",{key:1,class:"copyright",innerHTML:i(e).footer.copyright},null,8,sa)):h("",!0)])],2)):h("",!0)}}),ia=y(ra,[["__scopeId","data-v-566314d4"]]);function la(){const{theme:o,frontmatter:e}=V(),t=Ze([]),n=L(()=>t.value.length>0);return ye(()=>{t.value=je(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:n}}const ca=o=>(G("data-v-883964e0"),o=o(),q(),o),ua={class:"menu-text"},da=ca(()=>m("span",{class:"vpi-chevron-right icon"},null,-1)),va={class:"header"},pa={class:"outline"},ma=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=V(),n=H(!1),a=H(0),r=H(),u=H();function d($){var S;(S=r.value)!=null&&S.contains($.target)||(n.value=!1)}ee(n,$=>{if($){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),Ce("Escape",()=>{n.value=!1}),ye(()=>{n.value=!1});function v(){n.value=!n.value,a.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function g($){$.target.classList.contains("outline-link")&&(u.value&&(u.value.style.transition="none"),et(()=>{n.value=!1}))}function I(){n.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return($,S)=>(s(),c("div",{class:"VPLocalNavOutlineDropdown",style:xe({"--vp-vh":a.value+"px"}),ref_key:"main",ref:r},[$.headers.length>0?(s(),c("button",{key:0,onClick:v,class:M({open:n.value})},[m("span",ua,z(i(st)(i(t))),1),da],2)):(s(),c("button",{key:1,onClick:I},z(i(t).returnToTopLabel||"Return to top"),1)),b(Ae,{name:"flyout"},{default:p(()=>[n.value?(s(),c("div",{key:0,ref_key:"items",ref:u,class:"items",onClick:g},[m("div",va,[m("a",{class:"top-link",href:"#",onClick:I},z(i(t).returnToTopLabel||"Return to top"),1)]),m("div",pa,[b(rt,{headers:$.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),fa=y(ma,[["__scopeId","data-v-883964e0"]]),ha=o=>(G("data-v-2488c25a"),o=o(),q(),o),_a={class:"container"},ga=["aria-expanded"],ba=ha(()=>m("span",{class:"vpi-align-left menu-icon"},null,-1)),ka={class:"menu-text"},$a=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:n}=ne(),{headers:a}=la(),{y:r}=tt(),u=H(0);oe(()=>{u.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ye(()=>{a.value=je(t.value.outline??e.value.outline)});const d=L(()=>a.value.length===0),v=L(()=>d.value&&!n.value),g=L(()=>({VPLocalNav:!0,"has-sidebar":n.value,empty:d.value,fixed:v.value}));return(I,$)=>i(t).layout!=="home"&&(!v.value||i(r)>=u.value)?(s(),c("div",{key:0,class:M(g.value)},[m("div",_a,[i(n)?(s(),c("button",{key:0,class:"menu","aria-expanded":I.open,"aria-controls":"VPSidebarNav",onClick:$[0]||($[0]=S=>I.$emit("open-menu"))},[ba,m("span",ka,z(i(e).sidebarMenuLabel||"Menu"),1)],8,ga)):h("",!0),b(fa,{headers:i(a),navHeight:u.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),ya=y($a,[["__scopeId","data-v-2488c25a"]]);function La(){const o=H(!1);function e(){o.value=!0,window.addEventListener("resize",a)}function t(){o.value=!1,window.removeEventListener("resize",a)}function n(){o.value?t():e()}function a(){window.outerWidth>=768&&t()}const r=pe();return ee(()=>r.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:n}}const Pa={},Sa={class:"VPSwitch",type:"button",role:"switch"},Va={class:"check"},wa={key:0,class:"icon"};function Ta(o,e){return s(),c("button",Sa,[m("span",Va,[o.$slots.default?(s(),c("span",wa,[l(o.$slots,"default",{},void 0,!0)])):h("",!0)])])}const Ia=y(Pa,[["render",Ta],["__scopeId","data-v-b4ccac88"]]),lt=o=>(G("data-v-be9742d9"),o=o(),q(),o),Na=lt(()=>m("span",{class:"vpi-sun sun"},null,-1)),Ea=lt(()=>m("span",{class:"vpi-moon moon"},null,-1)),Ca=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=V(),n=Le("toggle-appearance",()=>{e.value=!e.value}),a=H("");return Fe(()=>{a.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(r,u)=>(s(),k(Ia,{title:a.value,class:"VPSwitchAppearance","aria-checked":i(e),onClick:i(n)},{default:p(()=>[Na,Ea]),_:1},8,["title","aria-checked","onClick"]))}}),Ue=y(Ca,[["__scopeId","data-v-be9742d9"]]),za={key:0,class:"VPNavBarAppearance"},Ha=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=V();return(t,n)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(s(),c("div",za,[b(Ue)])):h("",!0)}}),Ma=y(Ha,[["__scopeId","data-v-3f90c1a5"]]),Ge=H();let ct=!1,Ne=0;function Aa(o){const e=H(!1);if(Pe){!ct&&Ba(),Ne++;const t=ee(Ge,n=>{var a,r,u;n===o.el.value||(a=o.el.value)!=null&&a.contains(n)?(e.value=!0,(r=o.onFocus)==null||r.call(o)):(e.value=!1,(u=o.onBlur)==null||u.call(o))});Oe(()=>{t(),Ne--,Ne||Oa()})}return Ct(e)}function Ba(){document.addEventListener("focusin",ut),ct=!0,Ge.value=document.activeElement}function Oa(){document.removeEventListener("focusin",ut)}function ut(){Ge.value=document.activeElement}const Fa={class:"VPMenuLink"},Da=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,n)=>(s(),c("div",Fa,[b(x,{class:M({active:i(le)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:p(()=>[te(z(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),Se=y(Da,[["__scopeId","data-v-f51f088d"]]),ja={class:"VPMenuGroup"},Ua={key:0,class:"title"},Ga=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(s(),c("div",ja,[e.text?(s(),c("p",Ua,z(e.text),1)):h("",!0),(s(!0),c(B,null,R(e.items,n=>(s(),c(B,null,["link"in n?(s(),k(Se,{key:0,item:n},null,8,["item"])):h("",!0)],64))),256))]))}}),qa=y(Ga,[["__scopeId","data-v-a6b0397c"]]),Ra={class:"VPMenu"},Wa={key:0,class:"items"},Ka=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(s(),c("div",Ra,[e.items?(s(),c("div",Wa,[(s(!0),c(B,null,R(e.items,n=>(s(),c(B,{key:JSON.stringify(n)},["link"in n?(s(),k(Se,{key:0,item:n},null,8,["item"])):"component"in n?(s(),k(Q(n.component),re({key:1,ref_for:!0},n.props),null,16)):(s(),k(qa,{key:2,text:n.text,items:n.items},null,8,["text","items"]))],64))),128))])):h("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),Ja=y(Ka,[["__scopeId","data-v-20ed86d6"]]),Ya=o=>(G("data-v-af5898d3"),o=o(),q(),o),Xa=["aria-expanded","aria-label"],Za={key:0,class:"text"},Qa=["innerHTML"],xa=Ya(()=>m("span",{class:"vpi-chevron-down text-icon"},null,-1)),es={key:1,class:"vpi-more-horizontal icon"},ts={class:"menu"},os=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=H(!1),t=H();Aa({el:t,onBlur:n});function n(){e.value=!1}return(a,r)=>(s(),c("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:r[1]||(r[1]=u=>e.value=!0),onMouseleave:r[2]||(r[2]=u=>e.value=!1)},[m("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":a.label,onClick:r[0]||(r[0]=u=>e.value=!e.value)},[a.button||a.icon?(s(),c("span",Za,[a.icon?(s(),c("span",{key:0,class:M([a.icon,"option-icon"])},null,2)):h("",!0),a.button?(s(),c("span",{key:1,innerHTML:a.button},null,8,Qa)):h("",!0),xa])):(s(),c("span",es))],8,Xa),m("div",ts,[b(Ja,{items:a.items},{default:p(()=>[l(a.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),qe=y(os,[["__scopeId","data-v-af5898d3"]]),ns=["href","aria-label","innerHTML"],as=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=L(()=>typeof e.icon=="object"?e.icon.svg:``);return(n,a)=>(s(),c("a",{class:"VPSocialLink no-icon",href:n.link,"aria-label":n.ariaLabel??(typeof n.icon=="string"?n.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,ns))}}),ss=y(as,[["__scopeId","data-v-358b6670"]]),rs={class:"VPSocialLinks"},is=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(s(),c("div",rs,[(s(!0),c(B,null,R(e.links,({link:n,icon:a,ariaLabel:r})=>(s(),k(ss,{key:n,icon:a,link:n,ariaLabel:r},null,8,["icon","link","ariaLabel"]))),128))]))}}),Re=y(is,[["__scopeId","data-v-e71e869c"]]),ls={key:0,class:"group translations"},cs={class:"trans-title"},us={key:1,class:"group"},ds={class:"item appearance"},vs={class:"label"},ps={class:"appearance-action"},ms={key:2,class:"group"},fs={class:"item social-links"},hs=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=V(),{localeLinks:n,currentLang:a}=me({correspondingLink:!0}),r=L(()=>n.value.length&&a.value.label||e.value.appearance||t.value.socialLinks);return(u,d)=>r.value?(s(),k(qe,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:p(()=>[i(n).length&&i(a).label?(s(),c("div",ls,[m("p",cs,z(i(a).label),1),(s(!0),c(B,null,R(i(n),v=>(s(),k(Se,{key:v.link,item:v},null,8,["item"]))),128))])):h("",!0),i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(s(),c("div",us,[m("div",ds,[m("p",vs,z(i(t).darkModeSwitchLabel||"Appearance"),1),m("div",ps,[b(Ue)])])])):h("",!0),i(t).socialLinks?(s(),c("div",ms,[m("div",fs,[b(Re,{class:"social-links-list",links:i(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),_s=y(hs,[["__scopeId","data-v-f953d92f"]]),gs=o=>(G("data-v-6bee1efd"),o=o(),q(),o),bs=["aria-expanded"],ks=gs(()=>m("span",{class:"container"},[m("span",{class:"top"}),m("span",{class:"middle"}),m("span",{class:"bottom"})],-1)),$s=[ks],ys=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(s(),c("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]=n=>e.$emit("click"))},$s,10,bs))}}),Ls=y(ys,[["__scopeId","data-v-6bee1efd"]]),Ps=["innerHTML"],Ss=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,n)=>(s(),k(x,{class:M({VPNavBarMenuLink:!0,active:i(le)(i(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,noIcon:t.item.noIcon,target:t.item.target,rel:t.item.rel,tabindex:"0"},{default:p(()=>[m("span",{innerHTML:t.item.text},null,8,Ps)]),_:1},8,["class","href","noIcon","target","rel"]))}}),Vs=y(Ss,[["__scopeId","data-v-08fbf4b6"]]),ws=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=V(),n=r=>"component"in r?!1:"link"in r?le(t.value.relativePath,r.link,!!e.item.activeMatch):r.items.some(n),a=L(()=>n(e.item));return(r,u)=>(s(),k(qe,{class:M({VPNavBarMenuGroup:!0,active:i(le)(i(t).relativePath,r.item.activeMatch,!!r.item.activeMatch)||a.value}),button:r.item.text,items:r.item.items},null,8,["class","button","items"]))}}),Ts=o=>(G("data-v-afb2845e"),o=o(),q(),o),Is={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ns=Ts(()=>m("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Es=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=V();return(t,n)=>i(e).nav?(s(),c("nav",Is,[Ns,(s(!0),c(B,null,R(i(e).nav,a=>(s(),c(B,{key:JSON.stringify(a)},["link"in a?(s(),k(Vs,{key:0,item:a},null,8,["item"])):"component"in a?(s(),k(Q(a.component),re({key:1,ref_for:!0},a.props),null,16)):(s(),k(ws,{key:2,item:a},null,8,["item"]))],64))),128))])):h("",!0)}}),Cs=y(Es,[["__scopeId","data-v-afb2845e"]]);function zs(o){const{localeIndex:e,theme:t}=V();function n(a){var N,F,C;const r=a.split("."),u=(N=t.value.search)==null?void 0:N.options,d=u&&typeof u=="object",v=d&&((C=(F=u.locales)==null?void 0:F[e.value])==null?void 0:C.translations)||null,g=d&&u.translations||null;let I=v,$=g,S=o;const E=r.pop();for(const Y of r){let X=null;const D=S==null?void 0:S[Y];D&&(X=S=D);const ae=$==null?void 0:$[Y];ae&&(X=$=ae);const Z=I==null?void 0:I[Y];Z&&(X=I=Z),D||(S=X),ae||($=X),Z||(I=X)}return(I==null?void 0:I[E])??($==null?void 0:$[E])??(S==null?void 0:S[E])??""}return n}const Hs=["aria-label"],Ms={class:"DocSearch-Button-Container"},As=m("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),Bs={class:"DocSearch-Button-Placeholder"},Os=m("span",{class:"DocSearch-Button-Keys"},[m("kbd",{class:"DocSearch-Button-Key"}),m("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Xe=_({__name:"VPNavBarSearchButton",setup(o){const t=zs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(n,a)=>(s(),c("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":i(t)("button.buttonAriaLabel")},[m("span",Ms,[As,m("span",Bs,z(i(t)("button.buttonText")),1)]),Os],8,Hs))}}),Fs={class:"VPNavBarSearch"},Ds={id:"local-search"},js={key:1,id:"docsearch"},Us=_({__name:"VPNavBarSearch",setup(o){const e=zt(()=>Ht(()=>import("./VPLocalSearchBox.Dni73aum.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:n}=V(),a=H(!1),r=H(!1);oe(()=>{});function u(){a.value||(a.value=!0,setTimeout(d,16))}function d(){const $=new Event("keydown");$.key="k",$.metaKey=!0,window.dispatchEvent($),setTimeout(()=>{document.querySelector(".DocSearch-Modal")||d()},16)}function v($){const S=$.target,E=S.tagName;return S.isContentEditable||E==="INPUT"||E==="SELECT"||E==="TEXTAREA"}const g=H(!1);Ce("k",$=>{($.ctrlKey||$.metaKey)&&($.preventDefault(),g.value=!0)}),Ce("/",$=>{v($)||($.preventDefault(),g.value=!0)});const I="local";return($,S)=>{var E;return s(),c("div",Fs,[i(I)==="local"?(s(),c(B,{key:0},[g.value?(s(),k(i(e),{key:0,onClose:S[0]||(S[0]=N=>g.value=!1)})):h("",!0),m("div",Ds,[b(Xe,{onClick:S[1]||(S[1]=N=>g.value=!0)})])],64)):i(I)==="algolia"?(s(),c(B,{key:1},[a.value?(s(),k(i(t),{key:0,algolia:((E=i(n).search)==null?void 0:E.options)??i(n).algolia,onVnodeBeforeMount:S[2]||(S[2]=N=>r.value=!0)},null,8,["algolia"])):h("",!0),r.value?h("",!0):(s(),c("div",js,[b(Xe,{onClick:u})]))],64)):h("",!0)])}}}),Gs=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(s(),k(Re,{key:0,class:"VPNavBarSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),qs=y(Gs,[["__scopeId","data-v-ef6192dc"]]),Rs=["href","rel","target"],Ws={key:1},Ks={key:2},Js=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=V(),{hasSidebar:n}=ne(),{currentLang:a}=me(),r=L(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),u=L(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.rel}),d=L(()=>{var v;return typeof t.value.logoLink=="string"||(v=t.value.logoLink)==null?void 0:v.target});return(v,g)=>(s(),c("div",{class:M(["VPNavBarTitle",{"has-sidebar":i(n)}])},[m("a",{class:"title",href:r.value??i(De)(i(a).link),rel:u.value,target:d.value},[l(v.$slots,"nav-bar-title-before",{},void 0,!0),i(t).logo?(s(),k(ke,{key:0,class:"logo",image:i(t).logo},null,8,["image"])):h("",!0),i(t).siteTitle?(s(),c("span",Ws,z(i(t).siteTitle),1)):i(t).siteTitle===void 0?(s(),c("span",Ks,z(i(e).title),1)):h("",!0),l(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,Rs)],2))}}),Ys=y(Js,[["__scopeId","data-v-0ad69264"]]),Xs={class:"items"},Zs={class:"title"},Qs=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=V(),{localeLinks:t,currentLang:n}=me({correspondingLink:!0});return(a,r)=>i(t).length&&i(n).label?(s(),k(qe,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:i(e).langMenuLabel||"Change language"},{default:p(()=>[m("div",Xs,[m("p",Zs,z(i(n).label),1),(s(!0),c(B,null,R(i(t),u=>(s(),k(Se,{key:u.link,item:u},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),xs=y(Qs,[["__scopeId","data-v-acee064b"]]),er=o=>(G("data-v-9fd4d1dd"),o=o(),q(),o),tr={class:"wrapper"},or={class:"container"},nr={class:"title"},ar={class:"content"},sr={class:"content-body"},rr=er(()=>m("div",{class:"divider"},[m("div",{class:"divider-line"})],-1)),ir=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=tt(),{hasSidebar:n}=ne(),{frontmatter:a}=V(),r=H({});return Fe(()=>{r.value={"has-sidebar":n.value,home:a.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(u,d)=>(s(),c("div",{class:M(["VPNavBar",r.value])},[m("div",tr,[m("div",or,[m("div",nr,[b(Ys,null,{"nav-bar-title-before":p(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),m("div",ar,[m("div",sr,[l(u.$slots,"nav-bar-content-before",{},void 0,!0),b(Us,{class:"search"}),b(Cs,{class:"menu"}),b(xs,{class:"translations"}),b(Ma,{class:"appearance"}),b(qs,{class:"social-links"}),b(_s,{class:"extra"}),l(u.$slots,"nav-bar-content-after",{},void 0,!0),b(Ls,{class:"hamburger",active:u.isScreenOpen,onClick:d[0]||(d[0]=v=>u.$emit("toggle-screen"))},null,8,["active"])])])])]),rr],2))}}),lr=y(ir,[["__scopeId","data-v-9fd4d1dd"]]),cr={key:0,class:"VPNavScreenAppearance"},ur={class:"text"},dr=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=V();return(n,a)=>i(e).appearance&&i(e).appearance!=="force-dark"&&i(e).appearance!=="force-auto"?(s(),c("div",cr,[m("p",ur,z(i(t).darkModeSwitchLabel||"Appearance"),1),b(Ue)])):h("",!0)}}),vr=y(dr,[["__scopeId","data-v-a3e2920d"]]),pr=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=Le("close-screen");return(t,n)=>(s(),k(x,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),mr=y(pr,[["__scopeId","data-v-1a934d60"]]),fr=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=Le("close-screen");return(t,n)=>(s(),k(x,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:i(e)},{default:p(()=>[te(z(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),dt=y(fr,[["__scopeId","data-v-aea78dd1"]]),hr={class:"VPNavScreenMenuGroupSection"},_r={key:0,class:"title"},gr=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(s(),c("div",hr,[e.text?(s(),c("p",_r,z(e.text),1)):h("",!0),(s(!0),c(B,null,R(e.items,n=>(s(),k(dt,{key:n.text,item:n},null,8,["item"]))),128))]))}}),br=y(gr,[["__scopeId","data-v-f60dbfa7"]]),kr=o=>(G("data-v-341db479"),o=o(),q(),o),$r=["aria-controls","aria-expanded"],yr=["innerHTML"],Lr=kr(()=>m("span",{class:"vpi-plus button-icon"},null,-1)),Pr=["id"],Sr={key:0,class:"item"},Vr={key:1,class:"item"},wr={key:2,class:"group"},Tr=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=H(!1),n=L(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function a(){t.value=!t.value}return(r,u)=>(s(),c("div",{class:M(["VPNavScreenMenuGroup",{open:t.value}])},[m("button",{class:"button","aria-controls":n.value,"aria-expanded":t.value,onClick:a},[m("span",{class:"button-text",innerHTML:r.text},null,8,yr),Lr],8,$r),m("div",{id:n.value,class:"items"},[(s(!0),c(B,null,R(r.items,d=>(s(),c(B,{key:JSON.stringify(d)},["link"in d?(s(),c("div",Sr,[b(dt,{item:d},null,8,["item"])])):"component"in d?(s(),c("div",Vr,[(s(),k(Q(d.component),re({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(s(),c("div",wr,[b(br,{items:d.items},null,8,["items"])]))],64))),128))],8,Pr)],2))}}),Ir=y(Tr,[["__scopeId","data-v-341db479"]]),Nr={key:0,class:"VPNavScreenMenu"},Er=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=V();return(t,n)=>i(e).nav?(s(),c("nav",Nr,[(s(!0),c(B,null,R(i(e).nav,a=>(s(),c(B,{key:JSON.stringify(a)},["link"in a?(s(),k(mr,{key:0,item:a},null,8,["item"])):"component"in a?(s(),k(Q(a.component),re({key:1,ref_for:!0},a.props,{"screen-menu":""}),null,16)):(s(),k(Ir,{key:2,text:a.text||"",items:a.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),Cr=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=V();return(t,n)=>i(e).socialLinks?(s(),k(Re,{key:0,class:"VPNavScreenSocialLinks",links:i(e).socialLinks},null,8,["links"])):h("",!0)}}),vt=o=>(G("data-v-516e4bc3"),o=o(),q(),o),zr=vt(()=>m("span",{class:"vpi-languages icon lang"},null,-1)),Hr=vt(()=>m("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Mr={class:"list"},Ar=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=me({correspondingLink:!0}),n=H(!1);function a(){n.value=!n.value}return(r,u)=>i(e).length&&i(t).label?(s(),c("div",{key:0,class:M(["VPNavScreenTranslations",{open:n.value}])},[m("button",{class:"title",onClick:a},[zr,te(" "+z(i(t).label)+" ",1),Hr]),m("ul",Mr,[(s(!0),c(B,null,R(i(e),d=>(s(),c("li",{key:d.link,class:"item"},[b(x,{class:"link",href:d.link},{default:p(()=>[te(z(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),Br=y(Ar,[["__scopeId","data-v-516e4bc3"]]),Or={class:"container"},Fr=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=H(null),t=ot(Pe?document.body:null);return(n,a)=>(s(),k(Ae,{name:"fade",onEnter:a[0]||(a[0]=r=>t.value=!0),onAfterLeave:a[1]||(a[1]=r=>t.value=!1)},{default:p(()=>[n.open?(s(),c("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[m("div",Or,[l(n.$slots,"nav-screen-content-before",{},void 0,!0),b(Er,{class:"menu"}),b(Br,{class:"translations"}),b(vr,{class:"appearance"}),b(Cr,{class:"social-links"}),l(n.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),Dr=y(Fr,[["__scopeId","data-v-2dd6d0c7"]]),jr={key:0,class:"VPNav"},Ur=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:n}=La(),{frontmatter:a}=V(),r=L(()=>a.value.navbar!==!1);return nt("close-screen",t),$e(()=>{Pe&&document.documentElement.classList.toggle("hide-nav",!r.value)}),(u,d)=>r.value?(s(),c("header",jr,[b(lr,{"is-screen-open":i(e),onToggleScreen:i(n)},{"nav-bar-title-before":p(()=>[l(u.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[l(u.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[l(u.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[l(u.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),b(Dr,{open:i(e)},{"nav-screen-content-before":p(()=>[l(u.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[l(u.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),Gr=y(Ur,[["__scopeId","data-v-7ad780c2"]]),pt=o=>(G("data-v-edd2eed8"),o=o(),q(),o),qr=["role","tabindex"],Rr=pt(()=>m("div",{class:"indicator"},null,-1)),Wr=pt(()=>m("span",{class:"vpi-chevron-right caret-icon"},null,-1)),Kr=[Wr],Jr={key:1,class:"items"},Yr=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:n,isLink:a,isActiveLink:r,hasActiveLink:u,hasChildren:d,toggle:v}=po(L(()=>e.item)),g=L(()=>d.value?"section":"div"),I=L(()=>a.value?"a":"div"),$=L(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),S=L(()=>a.value?void 0:"button"),E=L(()=>[[`level-${e.depth}`],{collapsible:n.value},{collapsed:t.value},{"is-link":a.value},{"is-active":r.value},{"has-active":u.value}]);function N(C){"key"in C&&C.key!=="Enter"||!e.item.link&&v()}function F(){e.item.link&&v()}return(C,Y)=>{const X=ce("VPSidebarItem",!0);return s(),k(Q(g.value),{class:M(["VPSidebarItem",E.value])},{default:p(()=>[C.item.text?(s(),c("div",re({key:0,class:"item",role:S.value},Mt(C.item.items?{click:N,keydown:N}:{},!0),{tabindex:C.item.items&&0}),[Rr,C.item.link?(s(),k(x,{key:0,tag:I.value,class:"link",href:C.item.link,rel:C.item.rel,target:C.item.target},{default:p(()=>[(s(),k(Q($.value),{class:"text",innerHTML:C.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(s(),k(Q($.value),{key:1,class:"text",innerHTML:C.item.text},null,8,["innerHTML"])),C.item.collapsed!=null&&C.item.items&&C.item.items.length?(s(),c("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:F,onKeydown:At(F,["enter"]),tabindex:"0"},Kr,32)):h("",!0)],16,qr)):h("",!0),C.item.items&&C.item.items.length?(s(),c("div",Jr,[C.depth<5?(s(!0),c(B,{key:0},R(C.item.items,D=>(s(),k(X,{key:D.text,item:D,depth:C.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),Xr=y(Yr,[["__scopeId","data-v-edd2eed8"]]),Zr=_({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=H(!0);let t=null;return oe(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Bt(()=>{t!=null&&(clearTimeout(t),t=null)}),(n,a)=>(s(!0),c(B,null,R(n.items,r=>(s(),c("div",{key:r.text,class:M(["group",{"no-transition":e.value}])},[b(Xr,{item:r,depth:0},null,8,["item"])],2))),128))}}),Qr=y(Zr,[["__scopeId","data-v-51288d80"]]),mt=o=>(G("data-v-42c4c606"),o=o(),q(),o),xr=mt(()=>m("div",{class:"curtain"},null,-1)),ei={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},ti=mt(()=>m("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),oi=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=ne(),n=o,a=H(null),r=ot(Pe?document.body:null);ee([n,a],()=>{var d;n.open?(r.value=!0,(d=a.value)==null||d.focus()):r.value=!1},{immediate:!0,flush:"post"});const u=H(0);return ee(e,()=>{u.value+=1},{deep:!0}),(d,v)=>i(t)?(s(),c("aside",{key:0,class:M(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:a,onClick:v[0]||(v[0]=Ot(()=>{},["stop"]))},[xr,m("nav",ei,[ti,l(d.$slots,"sidebar-nav-before",{},void 0,!0),(s(),k(Qr,{items:i(e),key:u.value},null,8,["items"])),l(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),ni=y(oi,[["__scopeId","data-v-42c4c606"]]),ai=_({__name:"VPSkipLink",setup(o){const e=pe(),t=H();ee(()=>e.path,()=>t.value.focus());function n({target:a}){const r=document.getElementById(decodeURIComponent(a.hash).slice(1));if(r){const u=()=>{r.removeAttribute("tabindex"),r.removeEventListener("blur",u)};r.setAttribute("tabindex","-1"),r.addEventListener("blur",u),r.focus(),window.scrollTo(0,0)}}return(a,r)=>(s(),c(B,null,[m("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),m("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:n}," Skip to content ")],64))}}),si=y(ai,[["__scopeId","data-v-c8291ffa"]]),ri=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:n}=ne(),a=pe();ee(()=>a.path,n),vo(e,n);const{frontmatter:r}=V(),u=Ft(),d=L(()=>!!u["home-hero-image"]);return nt("hero-image-slot-exists",d),(v,g)=>{const I=ce("Content");return i(r).layout!==!1?(s(),c("div",{key:0,class:M(["Layout",i(r).pageClass])},[l(v.$slots,"layout-top",{},void 0,!0),b(si),b(Xt,{class:"backdrop",show:i(e),onClick:i(n)},null,8,["show","onClick"]),b(Gr,null,{"nav-bar-title-before":p(()=>[l(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":p(()=>[l(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":p(()=>[l(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":p(()=>[l(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":p(()=>[l(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":p(()=>[l(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),b(ya,{open:i(e),onOpenMenu:i(t)},null,8,["open","onOpenMenu"]),b(ni,{open:i(e)},{"sidebar-nav-before":p(()=>[l(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":p(()=>[l(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),b(oa,null,{"page-top":p(()=>[l(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":p(()=>[l(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":p(()=>[l(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":p(()=>[l(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":p(()=>[l(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":p(()=>[l(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":p(()=>[l(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":p(()=>[l(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":p(()=>[l(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":p(()=>[l(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":p(()=>[l(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":p(()=>[l(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":p(()=>[l(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":p(()=>[l(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":p(()=>[l(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":p(()=>[l(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":p(()=>[l(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":p(()=>[l(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":p(()=>[l(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":p(()=>[l(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":p(()=>[l(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":p(()=>[l(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":p(()=>[l(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),b(ia),l(v.$slots,"layout-bottom",{},void 0,!0)],2)):(s(),k(I,{key:1}))}}}),ii=y(ri,[["__scopeId","data-v-d8b57b2d"]]),li={Layout:ii,enhanceApp:({app:o})=>{o.component("Badge",Kt)}},ci={class:"ad"},ui=["src","onClick"],di={__name:"layout",setup(o){const{Layout:e}=li,t=Dt({list:[],toLink(n){n.link?window.open(n.link):window.open(`https://cool-js.com/ad/${n.id}`)},get(){fetch("https://service.cool-js.com/api/app/info/ad/list",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({channel:1})}).then(n=>n.json()).then(n=>{this.list=n.data})}});return oe(()=>{t.get()}),(n,a)=>(s(),k(i(e),null,{"sidebar-nav-before":p(()=>[m("div",ci,[(s(!0),c(B,null,R(t.list,r=>(s(),c("img",{key:r,src:r.pic,onClick:u=>t.toLink(r)},null,8,ui))),128))])]),_:1}))}},vi=y(di,[["__scopeId","data-v-96d1ba1f"]]),mi={Layout:vi,setup(){const o=pe(),e=()=>{new qt("[data-zoomable]",{background:"var(--vp-c-bg)"})};oe(()=>{e()}),ee(()=>o.path,()=>et(()=>e()))}};export{mi as R,zs as c,V as u}; diff --git a/.vitepress/dist/assets/src_guide_cache.md.Bk48cILk.js b/.vitepress/dist/assets/src_guide_cache.md.CFAfegzm.js similarity index 99% rename from .vitepress/dist/assets/src_guide_cache.md.Bk48cILk.js rename to .vitepress/dist/assets/src_guide_cache.md.CFAfegzm.js index 4206594..01624b7 100644 --- a/.vitepress/dist/assets/src_guide_cache.md.Bk48cILk.js +++ b/.vitepress/dist/assets/src_guide_cache.md.CFAfegzm.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const y=JSON.parse('{"title":"缓存","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/cache.md","filePath":"src/guide/cache.md","lastUpdated":1721036629000}'),h={name:"src/guide/cache.md"},l=n(`

缓存 ​

为了不过多依赖环境,框架自带基于 springCache 默认实现了两种缓存

  • caffeine 无需额外安装软件,由 Ben Manes 开发的一个 Java 缓存库,旨在提供高性能、高效的缓存解决方案。
  • redis 需安装 redis,提供了一种高效且可靠的解决方案,能够显著提升应用程序的性能和响应速度。
yaml
spring:
+import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const y=JSON.parse('{"title":"缓存","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/cache.md","filePath":"src/guide/cache.md","lastUpdated":1724685357000}'),h={name:"src/guide/cache.md"},l=n(`

缓存 ​

为了不过多依赖环境,框架自带基于 springCache 默认实现了两种缓存

  • caffeine 无需额外安装软件,由 Ben Manes 开发的一个 Java 缓存库,旨在提供高性能、高效的缓存解决方案。
  • redis 需安装 redis,提供了一种高效且可靠的解决方案,能够显著提升应用程序的性能和响应速度。
yaml
spring:
   # caffeine 缓存
   cache:
     type: caffeine
diff --git a/.vitepress/dist/assets/src_guide_cache.md.Bk48cILk.lean.js b/.vitepress/dist/assets/src_guide_cache.md.CFAfegzm.lean.js
similarity index 84%
rename from .vitepress/dist/assets/src_guide_cache.md.Bk48cILk.lean.js
rename to .vitepress/dist/assets/src_guide_cache.md.CFAfegzm.lean.js
index 7d19fbe..c7deddf 100644
--- a/.vitepress/dist/assets/src_guide_cache.md.Bk48cILk.lean.js
+++ b/.vitepress/dist/assets/src_guide_cache.md.CFAfegzm.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const y=JSON.parse('{"title":"缓存","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/cache.md","filePath":"src/guide/cache.md","lastUpdated":1721036629000}'),h={name:"src/guide/cache.md"},l=n("",12),k=[l];function t(p,e,E,r,d,g){return a(),i("div",null,k)}const o=s(h,[["render",t]]);export{y as __pageData,o as default};
+import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const y=JSON.parse('{"title":"缓存","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/cache.md","filePath":"src/guide/cache.md","lastUpdated":1724685357000}'),h={name:"src/guide/cache.md"},l=n("",12),k=[l];function t(p,e,E,r,d,g){return a(),i("div",null,k)}const o=s(h,[["render",t]]);export{y as __pageData,o as default};
diff --git a/.vitepress/dist/assets/src_guide_controller.md.BoPbie2I.js b/.vitepress/dist/assets/src_guide_controller.md.D6YeMkQu.js
similarity index 99%
rename from .vitepress/dist/assets/src_guide_controller.md.BoPbie2I.js
rename to .vitepress/dist/assets/src_guide_controller.md.D6YeMkQu.js
index 152800c..f48c5e2 100644
--- a/.vitepress/dist/assets/src_guide_controller.md.BoPbie2I.js
+++ b/.vitepress/dist/assets/src_guide_controller.md.D6YeMkQu.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const F=JSON.parse('{"title":"控制器","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/controller.md","filePath":"src/guide/controller.md","lastUpdated":1721036629000}'),h={name:"src/guide/controller.md"},k=n(`

控制器 ​

所有的 controller 都继承自 BaseController,该父类已经实现了以下六个基础方法:add、delete、update、page、list、info,可以大大简化代码,使得 controller 更加简洁。

示例 ​

java
@Tag(name = "测试CURD", description = "测试CURD")
+import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const F=JSON.parse('{"title":"控制器","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/controller.md","filePath":"src/guide/controller.md","lastUpdated":1724685357000}'),h={name:"src/guide/controller.md"},k=n(`

控制器 ​

所有的 controller 都继承自 BaseController,该父类已经实现了以下六个基础方法:add、delete、update、page、list、info,可以大大简化代码,使得 controller 更加简洁。

示例 ​

java
@Tag(name = "测试CURD", description = "测试CURD")
 @CoolRestController(value = "/cool", api = {"add", "delete", "update", "page", "list", "info"})
 public class AdminDemoInfoController extends BaseController<DemoService, DemoEntity> {
     @Override
diff --git a/.vitepress/dist/assets/src_guide_controller.md.BoPbie2I.lean.js b/.vitepress/dist/assets/src_guide_controller.md.D6YeMkQu.lean.js
similarity index 85%
rename from .vitepress/dist/assets/src_guide_controller.md.BoPbie2I.lean.js
rename to .vitepress/dist/assets/src_guide_controller.md.D6YeMkQu.lean.js
index 5546809..55bc345 100644
--- a/.vitepress/dist/assets/src_guide_controller.md.BoPbie2I.lean.js
+++ b/.vitepress/dist/assets/src_guide_controller.md.D6YeMkQu.lean.js
@@ -1 +1 @@
-import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const F=JSON.parse('{"title":"控制器","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/controller.md","filePath":"src/guide/controller.md","lastUpdated":1721036629000}'),h={name:"src/guide/controller.md"},k=n("",34),t=[k];function l(p,e,E,r,d,g){return a(),i("div",null,t)}const o=s(h,[["render",l]]);export{F as __pageData,o as default};
+import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const F=JSON.parse('{"title":"控制器","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/controller.md","filePath":"src/guide/controller.md","lastUpdated":1724685357000}'),h={name:"src/guide/controller.md"},k=n("",34),t=[k];function l(p,e,E,r,d,g){return a(),i("div",null,t)}const o=s(h,[["render",l]]);export{F as __pageData,o as default};
diff --git a/.vitepress/dist/assets/src_guide_lock.md.BRjhR2-1.lean.js b/.vitepress/dist/assets/src_guide_lock.md.BRjhR2-1.lean.js
deleted file mode 100644
index 4153057..0000000
--- a/.vitepress/dist/assets/src_guide_lock.md.BRjhR2-1.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const y=JSON.parse('{"title":"锁","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/lock.md","filePath":"src/guide/lock.md","lastUpdated":null}'),t={name:"src/guide/lock.md"},h=n("",3),k=[h];function l(p,e,E,r,d,g){return a(),i("div",null,k)}const c=s(t,[["render",l]]);export{y as __pageData,c as default};
diff --git a/.vitepress/dist/assets/src_guide_lock.md.BRjhR2-1.js b/.vitepress/dist/assets/src_guide_lock.md.DE-VfeJh.js
similarity index 90%
rename from .vitepress/dist/assets/src_guide_lock.md.BRjhR2-1.js
rename to .vitepress/dist/assets/src_guide_lock.md.DE-VfeJh.js
index 08411dc..234bc50 100644
--- a/.vitepress/dist/assets/src_guide_lock.md.BRjhR2-1.js
+++ b/.vitepress/dist/assets/src_guide_lock.md.DE-VfeJh.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const y=JSON.parse('{"title":"锁","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/lock.md","filePath":"src/guide/lock.md","lastUpdated":null}'),t={name:"src/guide/lock.md"},h=n(`

锁 ​

简单锁的使用 如果项目中启用了redis,锁是基于redis 实现,否则使用 ReentrantLock 如下防重复提交

java
@Aspect
+import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const y=JSON.parse('{"title":"锁","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/lock.md","filePath":"src/guide/lock.md","lastUpdated":1724685357000}'),t={name:"src/guide/lock.md"},h=n(`

锁 ​

简单锁的使用 如果项目中启用了redis,锁是基于redis 实现,否则使用 ReentrantLock 如下防重复提交

java
@Aspect
 @Component
 @RequiredArgsConstructor
 public class NoRepeatSubmitAspect {
diff --git a/.vitepress/dist/assets/src_guide_lock.md.DE-VfeJh.lean.js b/.vitepress/dist/assets/src_guide_lock.md.DE-VfeJh.lean.js
new file mode 100644
index 0000000..a403bf1
--- /dev/null
+++ b/.vitepress/dist/assets/src_guide_lock.md.DE-VfeJh.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const y=JSON.parse('{"title":"锁","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/lock.md","filePath":"src/guide/lock.md","lastUpdated":1724685357000}'),t={name:"src/guide/lock.md"},h=n("",3),k=[h];function l(p,e,E,r,d,g){return a(),i("div",null,k)}const c=s(t,[["render",l]]);export{y as __pageData,c as default};
diff --git a/.vitepress/dist/assets/src_guide_uniqueIDGen.md.4q7nUR1p.lean.js b/.vitepress/dist/assets/src_guide_uniqueIDGen.md.4q7nUR1p.lean.js
deleted file mode 100644
index d611794..0000000
--- a/.vitepress/dist/assets/src_guide_uniqueIDGen.md.4q7nUR1p.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const o=JSON.parse('{"title":"唯一id","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/uniqueIDGen.md","filePath":"src/guide/uniqueIDGen.md","lastUpdated":null}'),t={name:"src/guide/uniqueIDGen.md"},h=n("",8),l=[h];function p(k,e,d,E,r,g){return a(),i("div",null,l)}const F=s(t,[["render",p]]);export{o as __pageData,F as default};
diff --git a/.vitepress/dist/assets/src_guide_uniqueIDGen.md.4q7nUR1p.js b/.vitepress/dist/assets/src_guide_uniqueIDGen.md.xLCPnQAi.js
similarity index 85%
rename from .vitepress/dist/assets/src_guide_uniqueIDGen.md.4q7nUR1p.js
rename to .vitepress/dist/assets/src_guide_uniqueIDGen.md.xLCPnQAi.js
index 028ea3d..2cabb25 100644
--- a/.vitepress/dist/assets/src_guide_uniqueIDGen.md.4q7nUR1p.js
+++ b/.vitepress/dist/assets/src_guide_uniqueIDGen.md.xLCPnQAi.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const o=JSON.parse('{"title":"唯一id","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/uniqueIDGen.md","filePath":"src/guide/uniqueIDGen.md","lastUpdated":null}'),t={name:"src/guide/uniqueIDGen.md"},h=n(`

唯一id ​

基于表来完成分布式ID生成

原理参考美团点评分布式ID

java
@Table(value = "leaf_alloc", comment = "唯一id分配")
+import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const o=JSON.parse('{"title":"唯一id","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/uniqueIDGen.md","filePath":"src/guide/uniqueIDGen.md","lastUpdated":1724685357000}'),t={name:"src/guide/uniqueIDGen.md"},h=n(`

唯一id ​

基于表来完成分布式ID生成

原理参考美团点评分布式ID

java
@Table(value = "leaf_alloc", comment = "唯一id分配")
 public class LeafAllocEntity  extends BaseEntity<LeafAllocEntity> {
 
     @UniIndex
diff --git a/.vitepress/dist/assets/src_guide_uniqueIDGen.md.xLCPnQAi.lean.js b/.vitepress/dist/assets/src_guide_uniqueIDGen.md.xLCPnQAi.lean.js
new file mode 100644
index 0000000..ea90cdb
--- /dev/null
+++ b/.vitepress/dist/assets/src_guide_uniqueIDGen.md.xLCPnQAi.lean.js
@@ -0,0 +1 @@
+import{_ as s,c as i,o as a,a5 as n}from"./chunks/framework.C_oE5szm.js";const o=JSON.parse('{"title":"唯一id","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/uniqueIDGen.md","filePath":"src/guide/uniqueIDGen.md","lastUpdated":1724685357000}'),t={name:"src/guide/uniqueIDGen.md"},h=n("",8),l=[h];function p(k,e,d,E,r,g){return a(),i("div",null,l)}const F=s(t,[["render",p]]);export{o as __pageData,F as default};
diff --git a/.vitepress/dist/assets/src_todo_update.md.CBGgwTTC.js b/.vitepress/dist/assets/src_todo_update.md.CM3yST2v.js
similarity index 97%
rename from .vitepress/dist/assets/src_todo_update.md.CBGgwTTC.js
rename to .vitepress/dist/assets/src_todo_update.md.CM3yST2v.js
index 3278075..d6df089 100644
--- a/.vitepress/dist/assets/src_todo_update.md.CBGgwTTC.js
+++ b/.vitepress/dist/assets/src_todo_update.md.CM3yST2v.js
@@ -1 +1 @@
-import{_ as a,c as l,o as e,a5 as i}from"./chunks/framework.C_oE5szm.js";const m=JSON.parse('{"title":"更新","description":"","frontmatter":{},"headers":[],"relativePath":"src/todo/update.md","filePath":"src/todo/update.md","lastUpdated":1722706455000}'),t={name:"src/todo/update.md"},r=i('

更新 ​

因为有你们的支持,cool-admin 会持续不断地更新,如果方便请点下 Star,这将会给我们带来更多的动力!!!

v7.1.3(2024-08-25) ​

  • 新增: list和page支持关联查询,支持自定义返回结果类型,并可以在init方法中初始化返回字段类型及数据组装函数定义(参考:控制器)
  • 新增: 分布式ID生成组件(参考:分布式ID)
  • 新增: 锁工具(参考:锁工具)
  • 新增: app端访问参数配置接口
  • 调整: 缓存数据模板(参考:缓存)
  • 调整: 优化角色修改循环单个处理为批量处理,并异步进行刷新用户权限
  • 调整: 优化eps解析规则
  • 调整: 图形验证码获取区分app和admin
  • 修复: 初始化数据,指定id插入不生效问题
  • 修复: 后台人员查询列表字段关联错误

v7.1.2(2024-08-04) ​

  • 新增: 支持postgresql
  • 新增: 忽略记录请求日志url配置
  • 新增: app端手机密码登录和手机验证码登录
  • 调整: 鉴权调整兼容app端
  • 调整: 优化插件过大加载慢问题,移除插件jar文件落库
  • 修复: refreshToken可以当token使用问题

v7.1.1(2024-07-15) ​

  • 新增 Ai 自动编码功能,简单功能零代码实现;
  • 新增后台扩展插件,如文件上传、支付、短信等功能可以通过安装插件的方式添加;

v7.1.0(2024-06-27) ​

  • 升级到 Springboot3.x;
  • 升级所有相关依赖到最新;
  • 跟进Nodejs 版相关功能;
  • 优化若干问题;
',10),o=[r];function s(c,d,h,n,u,p){return e(),l("div",null,o)}const f=a(t,[["render",s]]);export{m as __pageData,f as default}; +import{_ as a,c as l,o as e,a5 as i}from"./chunks/framework.C_oE5szm.js";const m=JSON.parse('{"title":"更新","description":"","frontmatter":{},"headers":[],"relativePath":"src/todo/update.md","filePath":"src/todo/update.md","lastUpdated":1724685357000}'),t={name:"src/todo/update.md"},r=i('

更新 ​

因为有你们的支持,cool-admin 会持续不断地更新,如果方便请点下 Star,这将会给我们带来更多的动力!!!

v7.1.3(2024-08-25) ​

  • 新增: list和page支持关联查询,支持自定义返回结果类型,并可以在init方法中初始化返回字段类型及数据组装函数定义(参考:控制器)
  • 新增: 分布式ID生成组件(参考:分布式ID)
  • 新增: 锁工具(参考:锁工具)
  • 新增: app端访问参数配置接口
  • 调整: 缓存数据模板(参考:缓存)
  • 调整: 优化角色修改循环单个处理为批量处理,并异步进行刷新用户权限
  • 调整: 优化eps解析规则
  • 调整: 图形验证码获取区分app和admin
  • 修复: 初始化数据,指定id插入不生效问题
  • 修复: 后台人员查询列表字段关联错误

v7.1.2(2024-08-04) ​

  • 新增: 支持postgresql
  • 新增: 忽略记录请求日志url配置
  • 新增: app端手机密码登录和手机验证码登录
  • 调整: 鉴权调整兼容app端
  • 调整: 优化插件过大加载慢问题,移除插件jar文件落库
  • 修复: refreshToken可以当token使用问题

v7.1.1(2024-07-15) ​

  • 新增 Ai 自动编码功能,简单功能零代码实现;
  • 新增后台扩展插件,如文件上传、支付、短信等功能可以通过安装插件的方式添加;

v7.1.0(2024-06-27) ​

  • 升级到 Springboot3.x;
  • 升级所有相关依赖到最新;
  • 跟进Nodejs 版相关功能;
  • 优化若干问题;
',10),o=[r];function s(c,d,h,n,u,p){return e(),l("div",null,o)}const f=a(t,[["render",s]]);export{m as __pageData,f as default}; diff --git a/.vitepress/dist/assets/src_todo_update.md.CBGgwTTC.lean.js b/.vitepress/dist/assets/src_todo_update.md.CM3yST2v.lean.js similarity index 84% rename from .vitepress/dist/assets/src_todo_update.md.CBGgwTTC.lean.js rename to .vitepress/dist/assets/src_todo_update.md.CM3yST2v.lean.js index 5f11e8e..f901b32 100644 --- a/.vitepress/dist/assets/src_todo_update.md.CBGgwTTC.lean.js +++ b/.vitepress/dist/assets/src_todo_update.md.CM3yST2v.lean.js @@ -1 +1 @@ -import{_ as a,c as l,o as e,a5 as i}from"./chunks/framework.C_oE5szm.js";const m=JSON.parse('{"title":"更新","description":"","frontmatter":{},"headers":[],"relativePath":"src/todo/update.md","filePath":"src/todo/update.md","lastUpdated":1722706455000}'),t={name:"src/todo/update.md"},r=i("",10),o=[r];function s(c,d,h,n,u,p){return e(),l("div",null,o)}const f=a(t,[["render",s]]);export{m as __pageData,f as default}; +import{_ as a,c as l,o as e,a5 as i}from"./chunks/framework.C_oE5szm.js";const m=JSON.parse('{"title":"更新","description":"","frontmatter":{},"headers":[],"relativePath":"src/todo/update.md","filePath":"src/todo/update.md","lastUpdated":1724685357000}'),t={name:"src/todo/update.md"},r=i("",10),o=[r];function s(c,d,h,n,u,p){return e(),l("div",null,o)}const f=a(t,[["render",s]]);export{m as __pageData,f as default}; diff --git a/.vitepress/dist/hashmap.json b/.vitepress/dist/hashmap.json index c57a28d..a5bdd4e 100644 --- a/.vitepress/dist/hashmap.json +++ b/.vitepress/dist/hashmap.json @@ -1 +1 @@ -{"index.md":"IDM-wWfu","readme.md":"21sdoxr8","src_about_index.md":"u0DlwXFy","src_guide_ai.md":"BONNk2Tk","src_guide_cache.md":"Bk48cILk","src_guide_controller.md":"BoPbie2I","src_guide_db.md":"Duwyo5Xx","src_guide_deploy.md":"D3Yfqu-Q","src_guide_dev.md":"Dkd1jFPN","src_guide_dir.md":"RpZMF5oN","src_guide_exception.md":"B8TYnOY4","src_guide_flow.md":"B5L__6Os","src_guide_initdata.md":"BVn22GWI","src_guide_lock.md":"BRjhR2-1","src_guide_plugin.md":"CkiuwUnt","src_guide_quick.md":"Bto1F7au","src_guide_recordlog.md":"Dmgx8D5v","src_guide_security.md":"CWvVuPgm","src_guide_service.md":"DFVHuVBZ","src_guide_swagger.md":"Cb0cwFc8","src_guide_uniqueidgen.md":"4q7nUR1p","src_guide_upload.md":"CxcWqhw1","src_introduce_index.md":"DA1PheMx","src_introduce_show.md":"D0p_OwAi","src_introduce_src.md":"Cg4D7UK8","src_question_common.md":"DOoSuwHd","src_todo_plan.md":"OECDxoZt","src_todo_update.md":"CBGgwTTC"} +{"index.md":"IDM-wWfu","readme.md":"21sdoxr8","src_about_index.md":"u0DlwXFy","src_guide_ai.md":"BONNk2Tk","src_guide_cache.md":"CFAfegzm","src_guide_controller.md":"D6YeMkQu","src_guide_db.md":"Duwyo5Xx","src_guide_deploy.md":"D3Yfqu-Q","src_guide_dev.md":"Dkd1jFPN","src_guide_dir.md":"RpZMF5oN","src_guide_exception.md":"B8TYnOY4","src_guide_flow.md":"B5L__6Os","src_guide_initdata.md":"BVn22GWI","src_guide_lock.md":"DE-VfeJh","src_guide_plugin.md":"CkiuwUnt","src_guide_quick.md":"Bto1F7au","src_guide_recordlog.md":"Dmgx8D5v","src_guide_security.md":"CWvVuPgm","src_guide_service.md":"DFVHuVBZ","src_guide_swagger.md":"Cb0cwFc8","src_guide_uniqueidgen.md":"xLCPnQAi","src_guide_upload.md":"CxcWqhw1","src_introduce_index.md":"DA1PheMx","src_introduce_show.md":"D0p_OwAi","src_introduce_src.md":"Cg4D7UK8","src_question_common.md":"DOoSuwHd","src_todo_plan.md":"OECDxoZt","src_todo_update.md":"CM3yST2v"} diff --git a/.vitepress/dist/index.html b/.vitepress/dist/index.html index 6347035..955d7e2 100644 --- a/.vitepress/dist/index.html +++ b/.vitepress/dist/index.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Cool Admin(Java版)

一个很酷的后台管理系统开发框架

开源免费、Ai编码、流程编排、扩展插件、模块化

cool-admin
- + \ No newline at end of file diff --git a/.vitepress/dist/src/about/index.html b/.vitepress/dist/src/about/index.html index 7b2e192..c29c52d 100644 --- a/.vitepress/dist/src/about/index.html +++ b/.vitepress/dist/src/about/index.html @@ -8,17 +8,17 @@ - + - +
Skip to content

交流合作 ​

如果我们的项目对你有用,欢迎加入我们大家庭一起讨论,共创一些美好的事情。

微信 ​

扫一扫加入微信开发交流群

抖音 ​

主要是做一些技术教程、技术分享、框架更新、插件分享等内容。你可以在这边了解到一些关于我们框架的最新动态,还可以了解到一些前沿的技术,特别是跟 Ai 相关的,有兴趣的可以关注我们。

B 站 ​

COOL 团队哔哩哔哩官方账户

公众号 ​

COOL 的一些最新资讯、技术分享、框架更新、插件分享等

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/ai.html b/.vitepress/dist/src/guide/ai.html index e6cf0ba..7dcaeb4 100644 --- a/.vitepress/dist/src/guide/ai.html +++ b/.vitepress/dist/src/guide/ai.html @@ -8,17 +8,17 @@ - + - + - + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/cache.html b/.vitepress/dist/src/guide/cache.html index f01abb3..f13d485 100644 --- a/.vitepress/dist/src/guide/cache.html +++ b/.vitepress/dist/src/guide/cache.html @@ -8,11 +8,11 @@ - + - - + + @@ -65,8 +65,8 @@ String result = (String) invoke; return JSONUtil.parseObj(result).get("result"); }); -}
- +} + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/controller.html b/.vitepress/dist/src/guide/controller.html index f477d55..2465ba1 100644 --- a/.vitepress/dist/src/guide/controller.html +++ b/.vitepress/dist/src/guide/controller.html @@ -8,11 +8,11 @@ - + - - + + @@ -138,8 +138,8 @@ info = info.mutate().paths(path).build().combine(info); return info; } -} - +} + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/db.html b/.vitepress/dist/src/guide/db.html index 67b32ee..617f461 100644 --- a/.vitepress/dist/src/guide/db.html +++ b/.vitepress/dist/src/guide/db.html @@ -8,17 +8,17 @@ - + - +
Skip to content

数据库 ​

Cool Admin 集成了比 Mybatis-Plus 更加强大的,Mybatis-Flex,详细用法请查看 Mybatis-Flex 官网文档

主要特点;

  • 更轻量:除了 MyBatis 本身,再无任何第三方依赖,因此会带来更高的自主性、把控性和稳定性。在任何一个系统中,依赖越多,稳定性越差。

  • 更灵活:提供了非常灵活的 QueryWrapper,支持关联查询、多表查询、多主键、逻辑删除、乐观锁更新、数据填充、数据脱敏等等。

  • 高性能:通过独特的架构,没有任何 MyBatis 拦截器、在 SQL 执行的过程中,没有任何的 SQL Parse,因此会带来指数级的性能增长。

功能对比 ​

功能或特点MyBatis-FlexMyBatis-PlusFluent-MyBatis
对 entity 的基本增删改查✅✅✅
分页查询✅✅✅
分页查询之总量缓存✅✅❌
分页查询无 SQL 解析设计(更轻量,及更高性能)✅❌✅
多表查询: from 多张表✅❌❌
多表查询: left join、inner join 等等✅❌✅
多表查询: union,union all✅❌✅
单主键配置✅✅✅
多种 id 生成策略✅✅✅
支持多主键、复合主键✅❌❌
字段的 typeHandler 配置✅✅✅
除了 MyBatis,无其他第三方依赖(更轻量)✅❌❌
QueryWrapper 是否支持在微服务项目下进行 RPC 传输✅❌未知
逻辑删除✅✅✅
乐观锁✅✅✅
SQL 审计✅❌❌
数据填充✅✅✅
数据脱敏✅✔️ (收费)❌
字段权限✅✔️ (收费)❌
字段加密✅✔️ (收费)❌
字典回写✅✔️ (收费)❌
Db + Row✅❌❌
Entity 监听✅❌❌
多数据源支持✅借助其他框架或收费❌
多数据源是否支持 Spring 的事务管理,比如 @Transactional 和 TransactionTemplate 等✅❌❌
多数据源是否支持 "非 Spring" 项目✅❌❌
多租户✅✅❌
动态表名✅✅❌
动态 Schema✅❌❌

注意

以上内容来自第三方相关产品的官方文档或第三方平台,若有错误,欢迎纠正。

支持数据库 ​

MyBatis-Flex 支持的数据库类型,如下表格所示,我们还可以通过自定义方言的方式,持续添加更多的数据库支持。

数据库描述
mysqlMySQL 数据库
mariadbMariaDB 数据库
oracleOracle11g 及以下数据库
oracle12cOracle12c 及以上数据库
db2DB2 数据库
H2H2 数据库
hsqlHSQL 数据库
sqliteSQLite 数据库
postgresqlPostgreSQL 数据库
sqlserver2005SQLServer2005 数据库
sqlserverSQLServer 数据库
dm达梦数据库
xugu虚谷数据库
kingbasees人大金仓数据库
phoenixPhoenix HBase 数据库
gaussGauss 数据库
clickhouseClickHouse 数据库
gbase南大通用(华库)数据库
gbase-8s南大通用数据库 GBase 8s
oscar神通数据库
sybaseSybase ASE 数据库
OceanBaseOceanBase 数据库
FirebirdFirebird 数据库
derbyDerby 数据库
highgo瀚高数据库
cubridCUBRID 数据库
goldilocksGOLDILOCKS 数据库
csiidbCSIIDB 数据库
hanaSAP_HANA 数据库
impalaImpala 数据库
verticaVertica 数据库
xcloud行云数据库
redshift亚马逊 redshift 数据库
openGauss华为 openGauss 数据库
TDengineTDengine 数据库
informixInformix 数据库
greenplumGreenplum 数据库
uxdb优炫数据库
DorisDoris 数据库
Hive SQLHive 数据库
lealoneLealone 数据库
sinodb星瑞格数据库

注意

虽然 Mybatis-flex 支持很多数据库,但是 Cool Admin 是具体的业务框架,无法做到全部支持,那样工作量太大了。但是它为我们提供了改造的可能,理论上你只需修改一些不兼容的代码就可以正常运行了。

除了 Mysql,我们正在适配:PostgreSQL、Sqlite

自动建表 ​

根据 Java 实体,自动映射成数据库的表结构。

用过 JPA 的都知道,JPA 有一项重要的能力就是表结构自动维护,这让我们可以可以专注于业务逻辑和实体,而不需要关心数据库的表、列的配置,尤其是开发过程中频繁的新增表及变更表结构,节省了大量手动工作。

框架集成了Auto Table,可以自动创建表,并且支持表字段的修改。

注意

切勿在生产环境开启自动建表功能,因为这可能会造成数据丢失。

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/deploy.html b/.vitepress/dist/src/guide/deploy.html index 7f34ea1..8ee2fa1 100644 --- a/.vitepress/dist/src/guide/deploy.html +++ b/.vitepress/dist/src/guide/deploy.html @@ -8,10 +8,10 @@ - + - + @@ -110,7 +110,7 @@ // 运行后端 docker run --network cool -p 80:80 --name vue cool-admin-vue:1.0

注意事项 ​

docker 部署,建议将缓存换成 redis,文件上传换成云存储,如:oss,防止操作不当导致的数据丢失。

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/dev.html b/.vitepress/dist/src/guide/dev.html index 4792732..a3bcf27 100644 --- a/.vitepress/dist/src/guide/dev.html +++ b/.vitepress/dist/src/guide/dev.html @@ -8,10 +8,10 @@ - + - + @@ -33,7 +33,7 @@ codeGenerator.service(codeModel); } }
  • 自动生成前端页面,通过管理后台菜单管理的快速创建即可生成

Ui 组件会根据字段智能选择

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/dir.html b/.vitepress/dist/src/guide/dir.html index 5786bb4..1a9ad9f 100644 --- a/.vitepress/dist/src/guide/dir.html +++ b/.vitepress/dist/src/guide/dir.html @@ -8,10 +8,10 @@ - + - + @@ -42,7 +42,7 @@ │ └─ data │ └─ db 初始化数据json文件 └─ mapper mapper xml 文件

提示

  • core 为核心模块,包括一些核心的组件工具
  • modules 为业务模块,业务代码放在这边,在新增功能模块时,按上面的包结构新增即可

    比如你有一个订单管理的模块,在 modules 新增一个 order 包,在 order 包下创建 controller、entity、mapper、service 等包

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/exception.html b/.vitepress/dist/src/guide/exception.html index 8627865..c074032 100644 --- a/.vitepress/dist/src/guide/exception.html +++ b/.vitepress/dist/src/guide/exception.html @@ -8,10 +8,10 @@ - + - + @@ -76,7 +76,7 @@ super.add(requestParams, entity); return entity.getId(); } - + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/flow.html b/.vitepress/dist/src/guide/flow.html index 9c02d81..9cc9592 100644 --- a/.vitepress/dist/src/guide/flow.html +++ b/.vitepress/dist/src/guide/flow.html @@ -8,17 +8,17 @@ - + - +
Skip to content

Ai 流程编排 ​

视频演示

点击前往插件市场下载安装

开发 Ai 应用必备!!!

随着 Ai 的火热,很多应用希望接入 Ai 的能力,但是每次都是用代码手搓,容易把我们累死,而是也非常不灵活。

于是我们面向开发者和软件开发公司,做了一个 Ai 流程编排功能,结合知识库,通过拖动配置,很容易就能完成一个 Ai 的核心流程。

因此如果你需要开发 Ai 相关应用,这个可能会给你带来巨大的帮助。

流程编排

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/initData.html b/.vitepress/dist/src/guide/initData.html index cd3d715..0f1d753 100644 --- a/.vitepress/dist/src/guide/initData.html +++ b/.vitepress/dist/src/guide/initData.html @@ -8,10 +8,10 @@ - + - + @@ -50,7 +50,7 @@ } //...... }

注意:如果同一张表历史已经有初始化过数据,在某个版本需要新增数据的话,要新增一个.json 文件;
比如 demoV2.json, 如果在原文件直接修改将不生效,加载成功后文件名称将被当作唯一键标识,不会重复初始化。

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/lock.html b/.vitepress/dist/src/guide/lock.html index 75eba74..30ed69a 100644 --- a/.vitepress/dist/src/guide/lock.html +++ b/.vitepress/dist/src/guide/lock.html @@ -8,11 +8,11 @@ - + - - + + @@ -38,8 +38,8 @@ coolLock.unlock(key); } } -} - +} + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/plugin.html b/.vitepress/dist/src/guide/plugin.html index aaaa3a2..55b0127 100644 --- a/.vitepress/dist/src/guide/plugin.html +++ b/.vitepress/dist/src/guide/plugin.html @@ -8,10 +8,10 @@ - + - + @@ -254,7 +254,7 @@ <cool.plugin.name>my_cool_plugin</cool.plugin.name> </properties>

最终打出的包为: my_cool_plugin.cool

安装插件 ​

在后台插件管理页面,安装插件将打包好的.cool 文件上传。

实现原理 ​

  • 动态加载 Jar 包

    实现动态加载的技术方案
    在 SpringBoot 中实现动态加载 Jar 包: URLClassLoader 是 Java 标准库中提供的一个类加载器,它可以加载指定的 URL 资源,包括本地文件系统、远程服务器和 JAR 文件等。
    通过 URLClassLoader,我们可以在运行时动态地加载外部的 Jar 包或类。

  • 优势:

    1、灵活性高:可以动态指定 Jar 包的位置和版本。
    2、可控性强:可以通过代码控制加载、卸载和替换 Jar 包。

实现方法:

java
URL jarUrl = new URL("jar:file:" + new File(jarFilePath).getAbsolutePath() + "!/");
 DynamicJarClassLoader dynamicJarClassLoader = new DynamicJarClassLoader(new URL[]{jarUrl}, Thread.currentThread().getContextClassLoader());

动态加载 Jar 包具有以下几个显著的优势:

  • 1、灵活性: 动态加载允许应用程序在运行时根据需求加载、卸载和替换 Jar 包或其内部的类和资源,提供了极大的灵活性。
  • 2、可维护性: 通过动态加载,可以将应用程序的核心逻辑和配置分离,使得代码更加清晰、模块化,提高了代码的可维护性。
  • 3、热更新: 动态加载使得应用程序能够在不停机的情况下进行热更新,大大提高了系统的可用性和稳定性。
  • 4、扩展性: 通过动态加载,可以轻松地添加新的功能模块或服务,实现应用程序的快速扩展和升级。
- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/quick.html b/.vitepress/dist/src/guide/quick.html index 45237bd..3f0fa7a 100644 --- a/.vitepress/dist/src/guide/quick.html +++ b/.vitepress/dist/src/guide/quick.html @@ -8,10 +8,10 @@ - + - + @@ -30,7 +30,7 @@ npm install # 启动 npm run dev

访问http://127.0.0.1:9000/ 默认账户密码

账户:admin
密码:123456

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/recordLog.html b/.vitepress/dist/src/guide/recordLog.html index c613c25..107a1e6 100644 --- a/.vitepress/dist/src/guide/recordLog.html +++ b/.vitepress/dist/src/guide/recordLog.html @@ -8,10 +8,10 @@ - + - + @@ -39,7 +39,7 @@ - /css/* - /js/* - /favicon.ico - + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/security.html b/.vitepress/dist/src/guide/security.html index 95e57f8..6cbc2f3 100644 --- a/.vitepress/dist/src/guide/security.html +++ b/.vitepress/dist/src/guide/security.html @@ -8,10 +8,10 @@ - + - + @@ -236,7 +236,7 @@ @TokenIgnore(value = {"page"}) @CoolRestController(api = {"add", "delete", "update", "page", "list", "info"}) public class AdminDictInfoController{ }

注意

无论是注解在方法还是类上,都必须配合CoolRestController使用,其它的无效

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/service.html b/.vitepress/dist/src/guide/service.html index dea6e5e..5c6258b 100644 --- a/.vitepress/dist/src/guide/service.html +++ b/.vitepress/dist/src/guide/service.html @@ -8,10 +8,10 @@ - + - + @@ -37,7 +37,7 @@ @Override public void modifyAfter(JSONObject requestParams, T t, ModifyEnum type) { } - + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/swagger.html b/.vitepress/dist/src/guide/swagger.html index eeb01fb..125cc27 100644 --- a/.vitepress/dist/src/guide/swagger.html +++ b/.vitepress/dist/src/guide/swagger.html @@ -8,10 +8,10 @@ - + - + @@ -25,7 +25,7 @@ // 可以在这边实现一下列表数据排序规则,查询条件过滤,返回哪些字段等 } }

系统启动完成访问:http://127.0.0.1:8001/swagger-ui/index.html#/

- + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/uniqueIDGen.html b/.vitepress/dist/src/guide/uniqueIDGen.html index d1dc38d..9fd50d3 100644 --- a/.vitepress/dist/src/guide/uniqueIDGen.html +++ b/.vitepress/dist/src/guide/uniqueIDGen.html @@ -8,11 +8,11 @@ - + - - + + @@ -42,8 +42,8 @@ "step": 500, "description": "订单ID" }] -} - +} + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/upload.html b/.vitepress/dist/src/guide/upload.html index 31a0a6e..8b90d02 100644 --- a/.vitepress/dist/src/guide/upload.html +++ b/.vitepress/dist/src/guide/upload.html @@ -8,10 +8,10 @@ - + - + @@ -48,7 +48,7 @@ return R.ok(fileUploadStrategyFactory.getMode()); } } - + \ No newline at end of file diff --git a/.vitepress/dist/src/introduce/index.html b/.vitepress/dist/src/introduce/index.html index c08cd1a..3b7918a 100644 --- a/.vitepress/dist/src/introduce/index.html +++ b/.vitepress/dist/src/introduce/index.html @@ -8,17 +8,17 @@ - + - +
Skip to content

简介 ​

技术选型 ​

按照简单、常用的技术进行选择,减少技术栈的复杂度。

一、环境要求 ​

  • Java Jdk >= 17 选择 graalvm
  • Mysql >= 5.7
  • Maven >= 3.6

二、后端框架 ​

  • Spring Boot 3.x
  • Mybatis Flex
  • Auto Table
  • Hutool

三、前端框架 ​

  • Vue3
  • Typescript
  • Element-UI

为什么选择 Cool Admin? ​

随着技术不断地发展,特别是最近 Ai 相关的技术发展,以往的框架已经越来越不能满足现代化的开发需求。

Cool Admin 做为后来者有后发优势,主要特点:

  • Ai 编码,从页面到后端代码,部分功能实现零代码;
  • Ai 流程编排,专门为 Ai 开发设计的,Ai 开发几乎不用写代码,只需拖一拖即可;
  • 扩展插件,可插拔,如支付、短信这类功能的插件可以通过后台动态安装卸载,灵活又不臃肿;
  • 代码简洁,不像一般代码生成器生成一堆冗余代码,Cool 只需极少编码即可实现大部分需求;
  • ......

内置功能 ​

  • 用户管理:呈现公司组织部门树形结构,用户是系统操作者,该功能主要完成系统用户配置。
  • 菜单管理:配置系统菜单,操作权限标识等。
  • 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  • 参数管理:对系统动态配置常用参数。
  • 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  • 请求日志:接口的请求入参日志,便于问题排查。
  • 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  • 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
  • 文件管理:支持静态资源文件上传云端进行云管理。
  • 数据回收站:数据有 n 天的保留,支持回滚操作。
  • 前后端插件:支持动态安装、卸载插件,实现功能可插拔。
- + \ No newline at end of file diff --git a/.vitepress/dist/src/introduce/show.html b/.vitepress/dist/src/introduce/show.html index 5619417..974bc09 100644 --- a/.vitepress/dist/src/introduce/show.html +++ b/.vitepress/dist/src/introduce/show.html @@ -8,17 +8,17 @@ - + - + - + \ No newline at end of file diff --git a/.vitepress/dist/src/introduce/src.html b/.vitepress/dist/src/introduce/src.html index b547f0d..2330cdc 100644 --- a/.vitepress/dist/src/introduce/src.html +++ b/.vitepress/dist/src/introduce/src.html @@ -8,17 +8,17 @@ - + - +
Skip to content

源码 ​

项目是开源免费、可商用、无需授权的,为了使项目能够持续,不要吝啬你们免费的Star哦!!!你的Star是我们最大的动力!!!

后端(点个 Star 哦) ​

https://github.com/cool-team-official/cool-admin-java

或

https://gitee.com/cool-team-official/cool-admin-java

或

https://gitcode.com/cool_team/cool-admin-java

前端(点个 Star 哦) ​

点击前往前端项目详细文档

https://github.com/cool-team-official/cool-admin-vue

或

https://gitee.com/cool-team-official/cool-admin-vue

或

https://gitcode.com/cool_team/cool-admin-vue

文档 (Star 哦) ​

如果文档有缺失,欢迎提交pr,您的贡献可能会给其他人来带巨大的帮助。

https://github.com/cool-team-official/cool-admin-java-docs

或

https://gitee.com/cool-team-official/cool-admin-java-docs

- + \ No newline at end of file diff --git a/.vitepress/dist/src/question/common.html b/.vitepress/dist/src/question/common.html index 72a3921..4ef2707 100644 --- a/.vitepress/dist/src/question/common.html +++ b/.vitepress/dist/src/question/common.html @@ -8,17 +8,17 @@ - + - +
Skip to content

常见问题 ​

项目中常见的问题

1、找不到类似xxxTableDef文件 ​

框架用到了Mybatis Flex 的 APT 功能,在项目编译的时候会自动生成这些文件。

你可以这样做:

  • Build 你的项目;
  • 执行 maven 的mvn compile命令;
  • 配置完数据库直接启动;
  • 【推荐】开启 idea 的Build project automatically自动编译功能(Settings -> Build, Execution, Deployment -> Compiler -> Build Project Automatically);

这些方式都可以解决这个问题。

- + \ No newline at end of file diff --git a/.vitepress/dist/src/todo/plan.html b/.vitepress/dist/src/todo/plan.html index 7264874..a4fbb8d 100644 --- a/.vitepress/dist/src/todo/plan.html +++ b/.vitepress/dist/src/todo/plan.html @@ -8,17 +8,17 @@ - + - + - + \ No newline at end of file diff --git a/.vitepress/dist/src/todo/update.html b/.vitepress/dist/src/todo/update.html index 354f724..625f89b 100644 --- a/.vitepress/dist/src/todo/update.html +++ b/.vitepress/dist/src/todo/update.html @@ -8,17 +8,17 @@ - + - - + + -
Skip to content

更新 ​

因为有你们的支持,cool-admin 会持续不断地更新,如果方便请点下 Star,这将会给我们带来更多的动力!!!

v7.1.3(2024-08-25) ​

  • 新增: list和page支持关联查询,支持自定义返回结果类型,并可以在init方法中初始化返回字段类型及数据组装函数定义(参考:控制器)
  • 新增: 分布式ID生成组件(参考:分布式ID)
  • 新增: 锁工具(参考:锁工具)
  • 新增: app端访问参数配置接口
  • 调整: 缓存数据模板(参考:缓存)
  • 调整: 优化角色修改循环单个处理为批量处理,并异步进行刷新用户权限
  • 调整: 优化eps解析规则
  • 调整: 图形验证码获取区分app和admin
  • 修复: 初始化数据,指定id插入不生效问题
  • 修复: 后台人员查询列表字段关联错误

v7.1.2(2024-08-04) ​

  • 新增: 支持postgresql
  • 新增: 忽略记录请求日志url配置
  • 新增: app端手机密码登录和手机验证码登录
  • 调整: 鉴权调整兼容app端
  • 调整: 优化插件过大加载慢问题,移除插件jar文件落库
  • 修复: refreshToken可以当token使用问题

v7.1.1(2024-07-15) ​

  • 新增 Ai 自动编码功能,简单功能零代码实现;
  • 新增后台扩展插件,如文件上传、支付、短信等功能可以通过安装插件的方式添加;

v7.1.0(2024-06-27) ​

  • 升级到 Springboot3.x;
  • 升级所有相关依赖到最新;
  • 跟进Nodejs 版相关功能;
  • 优化若干问题;
- +
Skip to content

更新 ​

因为有你们的支持,cool-admin 会持续不断地更新,如果方便请点下 Star,这将会给我们带来更多的动力!!!

v7.1.3(2024-08-25) ​

  • 新增: list和page支持关联查询,支持自定义返回结果类型,并可以在init方法中初始化返回字段类型及数据组装函数定义(参考:控制器)
  • 新增: 分布式ID生成组件(参考:分布式ID)
  • 新增: 锁工具(参考:锁工具)
  • 新增: app端访问参数配置接口
  • 调整: 缓存数据模板(参考:缓存)
  • 调整: 优化角色修改循环单个处理为批量处理,并异步进行刷新用户权限
  • 调整: 优化eps解析规则
  • 调整: 图形验证码获取区分app和admin
  • 修复: 初始化数据,指定id插入不生效问题
  • 修复: 后台人员查询列表字段关联错误

v7.1.2(2024-08-04) ​

  • 新增: 支持postgresql
  • 新增: 忽略记录请求日志url配置
  • 新增: app端手机密码登录和手机验证码登录
  • 调整: 鉴权调整兼容app端
  • 调整: 优化插件过大加载慢问题,移除插件jar文件落库
  • 修复: refreshToken可以当token使用问题

v7.1.1(2024-07-15) ​

  • 新增 Ai 自动编码功能,简单功能零代码实现;
  • 新增后台扩展插件,如文件上传、支付、短信等功能可以通过安装插件的方式添加;

v7.1.0(2024-06-27) ​

  • 升级到 Springboot3.x;
  • 升级所有相关依赖到最新;
  • 跟进Nodejs 版相关功能;
  • 优化若干问题;
+ \ No newline at end of file