From 358291342d8ec004dde5abc19c74ab9c64d542ee Mon Sep 17 00:00:00 2001 From: COOL Date: Wed, 10 Jul 2024 14:38:25 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 4 + .gitignore | 8 + .vitepress/cache/deps/_metadata.json | 58 + .vitepress/cache/deps/chunk-7WWQ3R2W.js | 9172 +++++++++++++ .vitepress/cache/deps/chunk-7WWQ3R2W.js.map | 7 + .vitepress/cache/deps/chunk-CGFDJW4T.js | 11440 +++++++++++++++ .vitepress/cache/deps/chunk-CGFDJW4T.js.map | 7 + .vitepress/cache/deps/medium-zoom.js | 469 + .vitepress/cache/deps/medium-zoom.js.map | 7 + .vitepress/cache/deps/package.json | 3 + .../deps/vitepress___@vue_devtools-api.js | 4339 ++++++ .../deps/vitepress___@vue_devtools-api.js.map | 7 + .../cache/deps/vitepress___@vueuse_core.js | 567 + .../deps/vitepress___@vueuse_core.js.map | 7 + ...ess___@vueuse_integrations_useFocusTrap.js | 1091 ++ ...__@vueuse_integrations_useFocusTrap.js.map | 7 + .../vitepress___mark__js_src_vanilla__js.js | 1665 +++ ...itepress___mark__js_src_vanilla__js.js.map | 7 + .../cache/deps/vitepress___minisearch.js | 1757 +++ .../cache/deps/vitepress___minisearch.js.map | 7 + .vitepress/cache/deps/vue.js | 323 + .vitepress/cache/deps/vue.js.map | 7 + .vitepress/config.mts | 150 + .vitepress/dist/404.html | 21 + .vitepress/dist/README.html | 24 + .vitepress/dist/assets/README.md.8s30YuPZ.js | 1 + .../dist/assets/README.md.8s30YuPZ.lean.js | 1 + .vitepress/dist/assets/app.XPlPhhoU.js | 1 + .../chunks/@localSearchIndexroot.CxI89Hj-.js | 1 + .../chunks/VPLocalSearchBox.S6DOZPCa.js | 7 + .../dist/assets/chunks/framework.DHgIdERs.js | 17 + .../dist/assets/chunks/theme.LmTTO8j8.js | 4 + .vitepress/dist/assets/index.md.DPrr-hLe.js | 1 + .../dist/assets/index.md.DPrr-hLe.lean.js | 1 + .../inter-italic-cyrillic-ext.r48I6akx.woff2 | Bin 0 -> 43112 bytes .../inter-italic-cyrillic.By2_1cv3.woff2 | Bin 0 -> 31300 bytes .../inter-italic-greek-ext.1u6EdAuj.woff2 | Bin 0 -> 17404 bytes .../assets/inter-italic-greek.DJ8dCoTZ.woff2 | Bin 0 -> 32564 bytes .../inter-italic-latin-ext.CN1xVJS-.woff2 | Bin 0 -> 120840 bytes .../assets/inter-italic-latin.C2AdPX0b.woff2 | Bin 0 -> 74784 bytes .../inter-italic-vietnamese.BSbpV94h.woff2 | Bin 0 -> 14884 bytes .../inter-roman-cyrillic-ext.BBPuwvHQ.woff2 | Bin 0 -> 40488 bytes .../inter-roman-cyrillic.C5lxZ8CY.woff2 | Bin 0 -> 29164 bytes .../inter-roman-greek-ext.CqjqNYQ-.woff2 | Bin 0 -> 16272 bytes .../assets/inter-roman-greek.BBVDIX6e.woff2 | Bin 0 -> 29920 bytes .../inter-roman-latin-ext.4ZJIpNVo.woff2 | Bin 0 -> 110160 bytes .../assets/inter-roman-latin.Di8DUHzh.woff2 | Bin 0 -> 67792 bytes .../inter-roman-vietnamese.BjW4sHH5.woff2 | Bin 0 -> 14072 bytes .../assets/src_about_index.md.aQxHy4hT.js | 1 + .../src_about_index.md.aQxHy4hT.lean.js | 1 + .../dist/assets/src_guide_ai.md.Drq5yZij.js | 1 + .../assets/src_guide_ai.md.Drq5yZij.lean.js | 1 + .../assets/src_guide_cache.md.65sPqASp.js | 34 + .../src_guide_cache.md.65sPqASp.lean.js | 1 + .../src_guide_controller.md.BBikHZHC.js | 80 + .../src_guide_controller.md.BBikHZHC.lean.js | 1 + .../assets/src_guide_exception.md.D-kiR-tz.js | 59 + .../src_guide_exception.md.D-kiR-tz.lean.js | 1 + .../dist/assets/src_guide_flow.md.B2ioiqca.js | 1 + .../assets/src_guide_flow.md.B2ioiqca.lean.js | 1 + .../src_guide_generatorCode.md.6SziAxIO.js | 16 + ...rc_guide_generatorCode.md.6SziAxIO.lean.js | 1 + .../assets/src_guide_initData.md.BjMbW5Nr.js | 33 + .../src_guide_initData.md.BjMbW5Nr.lean.js | 1 + .../assets/src_guide_plugin.md.qS50Tu9v.js | 176 + .../src_guide_plugin.md.qS50Tu9v.lean.js | 1 + .../assets/src_guide_quick.md.avtiASSy.js | 80 + .../src_guide_quick.md.avtiASSy.lean.js | 1 + .../assets/src_guide_security.md.BOLCFOjh.js | 216 + .../src_guide_security.md.BOLCFOjh.lean.js | 1 + .../src_guide_springboot3.md.YNymcO30.js | 1 + .../src_guide_springboot3.md.YNymcO30.lean.js | 1 + .../assets/src_guide_swagger.md.DF6xaziu.js | 8 + .../src_guide_swagger.md.DF6xaziu.lean.js | 1 + .../assets/src_guide_upload.md.DS70Q-Hs.js | 31 + .../src_guide_upload.md.DS70Q-Hs.lean.js | 1 + .../assets/src_introduce_index.md.CH1RbK2Y.js | 1 + .../src_introduce_index.md.CH1RbK2Y.lean.js | 1 + .../assets/src_introduce_show.md.Cj2B3iLu.js | 1 + .../src_introduce_show.md.Cj2B3iLu.lean.js | 1 + .../assets/src_introduce_src.md.CxeEja1d.js | 1 + .../src_introduce_src.md.CxeEja1d.lean.js | 1 + ...src_question_commonQuestion.md.CSsw8JOf.js | 1 + ...uestion_commonQuestion.md.CSsw8JOf.lean.js | 1 + .../dist/assets/src_todo_plan.md.Cet0ly3b.js | 1 + .../assets/src_todo_plan.md.Cet0ly3b.lean.js | 1 + .../assets/src_todo_update.md.CF7505b6.js | 1 + .../src_todo_update.md.CF7505b6.lean.js | 1 + .vitepress/dist/assets/style.CoKMOhgV.css | 1 + .vitepress/dist/favicon.ico | Bin 0 -> 67646 bytes .vitepress/dist/hashmap.json | 1 + .vitepress/dist/index.html | 24 + .vitepress/dist/logo.png | Bin 0 -> 6985 bytes .vitepress/dist/show/admin.png | Bin 0 -> 177409 bytes .vitepress/dist/show/code.png | Bin 0 -> 299831 bytes .vitepress/dist/show/douyin.png | Bin 0 -> 62153 bytes .vitepress/dist/show/flow.jpeg | Bin 0 -> 979839 bytes .vitepress/dist/show/mp.png | Bin 0 -> 32366 bytes .vitepress/dist/show/wechat.png | Bin 0 -> 47081 bytes .vitepress/dist/src/about/index.html | 24 + .vitepress/dist/src/guide/ai.html | 24 + .vitepress/dist/src/guide/cache.html | 57 + .vitepress/dist/src/guide/controller.html | 103 + .vitepress/dist/src/guide/exception.html | 82 + .vitepress/dist/src/guide/flow.html | 24 + .vitepress/dist/src/guide/generatorCode.html | 39 + .vitepress/dist/src/guide/initData.html | 56 + .vitepress/dist/src/guide/plugin.html | 199 + .vitepress/dist/src/guide/quick.html | 103 + .vitepress/dist/src/guide/security.html | 239 + .vitepress/dist/src/guide/springboot3.html | 24 + .vitepress/dist/src/guide/swagger.html | 31 + .vitepress/dist/src/guide/upload.html | 54 + .vitepress/dist/src/introduce/index.html | 24 + .vitepress/dist/src/introduce/show.html | 24 + .vitepress/dist/src/introduce/src.html | 24 + .../dist/src/question/commonQuestion.html | 24 + .vitepress/dist/src/todo/plan.html | 24 + .vitepress/dist/src/todo/update.html | 24 + .vitepress/theme/custom.css | 55 + .vitepress/theme/index.js | 23 + docs/.vitepress/cache/deps/@theme_index.js | 257 + .../.vitepress/cache/deps/@theme_index.js.map | 7 + docs/.vitepress/cache/deps/_metadata.json | 40 + docs/.vitepress/cache/deps/chunk-B2WI2LE3.js | 9172 +++++++++++++ .../cache/deps/chunk-B2WI2LE3.js.map | 7 + docs/.vitepress/cache/deps/chunk-BJ3OZQ3N.js | 11451 ++++++++++++++++ .../cache/deps/chunk-BJ3OZQ3N.js.map | 7 + docs/.vitepress/cache/deps/package.json | 3 + .../deps/vitepress___@vue_devtools-api.js | 4133 ++++++ .../deps/vitepress___@vue_devtools-api.js.map | 7 + .../cache/deps/vitepress___@vueuse_core.js | 567 + .../deps/vitepress___@vueuse_core.js.map | 7 + docs/.vitepress/cache/deps/vue.js | 323 + docs/.vitepress/cache/deps/vue.js.map | 7 + index.md | 30 + package.json | 13 + public/favicon.ico | Bin 0 -> 67646 bytes public/logo.png | Bin 0 -> 6985 bytes public/show/admin.png | Bin 0 -> 177409 bytes public/show/code.png | Bin 0 -> 299831 bytes public/show/douyin.png | Bin 0 -> 62153 bytes public/show/flow.jpeg | Bin 0 -> 979839 bytes public/show/mp.png | Bin 0 -> 32366 bytes public/show/wechat.png | Bin 0 -> 47081 bytes src/about/index.md | 25 + src/guide/ai.md | 5 + src/guide/cache.md | 52 + src/guide/controller.md | 139 + src/guide/exception.md | 75 + src/guide/flow.md | 21 + src/guide/generatorCode.md | 22 + src/guide/initData.md | 52 + src/guide/plugin.md | 309 + src/guide/quick.md | 145 + src/guide/security.md | 263 + src/guide/springboot3.md | 31 + src/guide/swagger.md | 14 + src/guide/upload.md | 49 + src/introduce/index.md | 49 + src/introduce/show.md | 10 + src/introduce/src.md | 19 + src/question/commonQuestion.md | 22 + src/todo/plan.md | 8 + src/todo/update.md | 10 + 165 files changed, 60609 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .vitepress/cache/deps/_metadata.json create mode 100644 .vitepress/cache/deps/chunk-7WWQ3R2W.js create mode 100644 .vitepress/cache/deps/chunk-7WWQ3R2W.js.map create mode 100644 .vitepress/cache/deps/chunk-CGFDJW4T.js create mode 100644 .vitepress/cache/deps/chunk-CGFDJW4T.js.map create mode 100644 .vitepress/cache/deps/medium-zoom.js create mode 100644 .vitepress/cache/deps/medium-zoom.js.map create mode 100644 .vitepress/cache/deps/package.json create mode 100644 .vitepress/cache/deps/vitepress___@vue_devtools-api.js create mode 100644 .vitepress/cache/deps/vitepress___@vue_devtools-api.js.map create mode 100644 .vitepress/cache/deps/vitepress___@vueuse_core.js create mode 100644 .vitepress/cache/deps/vitepress___@vueuse_core.js.map create mode 100644 .vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js create mode 100644 .vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map create mode 100644 .vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js create mode 100644 .vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map create mode 100644 .vitepress/cache/deps/vitepress___minisearch.js create mode 100644 .vitepress/cache/deps/vitepress___minisearch.js.map create mode 100644 .vitepress/cache/deps/vue.js create mode 100644 .vitepress/cache/deps/vue.js.map create mode 100644 .vitepress/config.mts create mode 100644 .vitepress/dist/404.html create mode 100644 .vitepress/dist/README.html create mode 100644 .vitepress/dist/assets/README.md.8s30YuPZ.js create mode 100644 .vitepress/dist/assets/README.md.8s30YuPZ.lean.js create mode 100644 .vitepress/dist/assets/app.XPlPhhoU.js create mode 100644 .vitepress/dist/assets/chunks/@localSearchIndexroot.CxI89Hj-.js create mode 100644 .vitepress/dist/assets/chunks/VPLocalSearchBox.S6DOZPCa.js create mode 100644 .vitepress/dist/assets/chunks/framework.DHgIdERs.js create mode 100644 .vitepress/dist/assets/chunks/theme.LmTTO8j8.js create mode 100644 .vitepress/dist/assets/index.md.DPrr-hLe.js create mode 100644 .vitepress/dist/assets/index.md.DPrr-hLe.lean.js create mode 100644 .vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 create mode 100644 .vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 create mode 100644 .vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 create mode 100644 .vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 create mode 100644 .vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 create mode 100644 .vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 create mode 100644 .vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 create mode 100644 .vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 create mode 100644 .vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 create mode 100644 .vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 create mode 100644 .vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 create mode 100644 .vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 create mode 100644 .vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 create mode 100644 .vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 create mode 100644 .vitepress/dist/assets/src_about_index.md.aQxHy4hT.js create mode 100644 .vitepress/dist/assets/src_about_index.md.aQxHy4hT.lean.js create mode 100644 .vitepress/dist/assets/src_guide_ai.md.Drq5yZij.js create mode 100644 .vitepress/dist/assets/src_guide_ai.md.Drq5yZij.lean.js create mode 100644 .vitepress/dist/assets/src_guide_cache.md.65sPqASp.js create mode 100644 .vitepress/dist/assets/src_guide_cache.md.65sPqASp.lean.js create mode 100644 .vitepress/dist/assets/src_guide_controller.md.BBikHZHC.js create mode 100644 .vitepress/dist/assets/src_guide_controller.md.BBikHZHC.lean.js create mode 100644 .vitepress/dist/assets/src_guide_exception.md.D-kiR-tz.js create mode 100644 .vitepress/dist/assets/src_guide_exception.md.D-kiR-tz.lean.js create mode 100644 .vitepress/dist/assets/src_guide_flow.md.B2ioiqca.js create mode 100644 .vitepress/dist/assets/src_guide_flow.md.B2ioiqca.lean.js create mode 100644 .vitepress/dist/assets/src_guide_generatorCode.md.6SziAxIO.js create mode 100644 .vitepress/dist/assets/src_guide_generatorCode.md.6SziAxIO.lean.js create mode 100644 .vitepress/dist/assets/src_guide_initData.md.BjMbW5Nr.js create mode 100644 .vitepress/dist/assets/src_guide_initData.md.BjMbW5Nr.lean.js create mode 100644 .vitepress/dist/assets/src_guide_plugin.md.qS50Tu9v.js create mode 100644 .vitepress/dist/assets/src_guide_plugin.md.qS50Tu9v.lean.js create mode 100644 .vitepress/dist/assets/src_guide_quick.md.avtiASSy.js create mode 100644 .vitepress/dist/assets/src_guide_quick.md.avtiASSy.lean.js create mode 100644 .vitepress/dist/assets/src_guide_security.md.BOLCFOjh.js create mode 100644 .vitepress/dist/assets/src_guide_security.md.BOLCFOjh.lean.js create mode 100644 .vitepress/dist/assets/src_guide_springboot3.md.YNymcO30.js create mode 100644 .vitepress/dist/assets/src_guide_springboot3.md.YNymcO30.lean.js create mode 100644 .vitepress/dist/assets/src_guide_swagger.md.DF6xaziu.js create mode 100644 .vitepress/dist/assets/src_guide_swagger.md.DF6xaziu.lean.js create mode 100644 .vitepress/dist/assets/src_guide_upload.md.DS70Q-Hs.js create mode 100644 .vitepress/dist/assets/src_guide_upload.md.DS70Q-Hs.lean.js create mode 100644 .vitepress/dist/assets/src_introduce_index.md.CH1RbK2Y.js create mode 100644 .vitepress/dist/assets/src_introduce_index.md.CH1RbK2Y.lean.js create mode 100644 .vitepress/dist/assets/src_introduce_show.md.Cj2B3iLu.js create mode 100644 .vitepress/dist/assets/src_introduce_show.md.Cj2B3iLu.lean.js create mode 100644 .vitepress/dist/assets/src_introduce_src.md.CxeEja1d.js create mode 100644 .vitepress/dist/assets/src_introduce_src.md.CxeEja1d.lean.js create mode 100644 .vitepress/dist/assets/src_question_commonQuestion.md.CSsw8JOf.js create mode 100644 .vitepress/dist/assets/src_question_commonQuestion.md.CSsw8JOf.lean.js create mode 100644 .vitepress/dist/assets/src_todo_plan.md.Cet0ly3b.js create mode 100644 .vitepress/dist/assets/src_todo_plan.md.Cet0ly3b.lean.js create mode 100644 .vitepress/dist/assets/src_todo_update.md.CF7505b6.js create mode 100644 .vitepress/dist/assets/src_todo_update.md.CF7505b6.lean.js create mode 100644 .vitepress/dist/assets/style.CoKMOhgV.css create mode 100644 .vitepress/dist/favicon.ico create mode 100644 .vitepress/dist/hashmap.json create mode 100644 .vitepress/dist/index.html create mode 100644 .vitepress/dist/logo.png create mode 100644 .vitepress/dist/show/admin.png create mode 100644 .vitepress/dist/show/code.png create mode 100644 .vitepress/dist/show/douyin.png create mode 100644 .vitepress/dist/show/flow.jpeg create mode 100644 .vitepress/dist/show/mp.png create mode 100644 .vitepress/dist/show/wechat.png create mode 100644 .vitepress/dist/src/about/index.html create mode 100644 .vitepress/dist/src/guide/ai.html create mode 100644 .vitepress/dist/src/guide/cache.html create mode 100644 .vitepress/dist/src/guide/controller.html create mode 100644 .vitepress/dist/src/guide/exception.html create mode 100644 .vitepress/dist/src/guide/flow.html create mode 100644 .vitepress/dist/src/guide/generatorCode.html create mode 100644 .vitepress/dist/src/guide/initData.html create mode 100644 .vitepress/dist/src/guide/plugin.html create mode 100644 .vitepress/dist/src/guide/quick.html create mode 100644 .vitepress/dist/src/guide/security.html create mode 100644 .vitepress/dist/src/guide/springboot3.html create mode 100644 .vitepress/dist/src/guide/swagger.html create mode 100644 .vitepress/dist/src/guide/upload.html create mode 100644 .vitepress/dist/src/introduce/index.html create mode 100644 .vitepress/dist/src/introduce/show.html create mode 100644 .vitepress/dist/src/introduce/src.html create mode 100644 .vitepress/dist/src/question/commonQuestion.html create mode 100644 .vitepress/dist/src/todo/plan.html create mode 100644 .vitepress/dist/src/todo/update.html create mode 100644 .vitepress/theme/custom.css create mode 100644 .vitepress/theme/index.js create mode 100644 docs/.vitepress/cache/deps/@theme_index.js create mode 100644 docs/.vitepress/cache/deps/@theme_index.js.map create mode 100644 docs/.vitepress/cache/deps/_metadata.json create mode 100644 docs/.vitepress/cache/deps/chunk-B2WI2LE3.js create mode 100644 docs/.vitepress/cache/deps/chunk-B2WI2LE3.js.map create mode 100644 docs/.vitepress/cache/deps/chunk-BJ3OZQ3N.js create mode 100644 docs/.vitepress/cache/deps/chunk-BJ3OZQ3N.js.map create mode 100644 docs/.vitepress/cache/deps/package.json create mode 100644 docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js create mode 100644 docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map create mode 100644 docs/.vitepress/cache/deps/vitepress___@vueuse_core.js create mode 100644 docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map create mode 100644 docs/.vitepress/cache/deps/vue.js create mode 100644 docs/.vitepress/cache/deps/vue.js.map create mode 100644 index.md create mode 100644 package.json create mode 100644 public/favicon.ico create mode 100644 public/logo.png create mode 100644 public/show/admin.png create mode 100644 public/show/code.png create mode 100644 public/show/douyin.png create mode 100644 public/show/flow.jpeg create mode 100644 public/show/mp.png create mode 100644 public/show/wechat.png create mode 100644 src/about/index.md create mode 100644 src/guide/ai.md create mode 100644 src/guide/cache.md create mode 100644 src/guide/controller.md create mode 100644 src/guide/exception.md create mode 100644 src/guide/flow.md create mode 100644 src/guide/generatorCode.md create mode 100644 src/guide/initData.md create mode 100644 src/guide/plugin.md create mode 100644 src/guide/quick.md create mode 100644 src/guide/security.md create mode 100644 src/guide/springboot3.md create mode 100644 src/guide/swagger.md create mode 100644 src/guide/upload.md create mode 100644 src/introduce/index.md create mode 100644 src/introduce/show.md create mode 100644 src/introduce/src.md create mode 100644 src/question/commonQuestion.md create mode 100644 src/todo/plan.md create mode 100644 src/todo/update.md diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..e41187f --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +*.js text eol=lf +*.json text eol=lf +*.ts text eol=lf +*.vue text eol=lf \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f435a8b --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +node_modules/ +.idea +/dist/ +yarn.lock +package-lock.json +pnpm-lock.yaml + diff --git a/.vitepress/cache/deps/_metadata.json b/.vitepress/cache/deps/_metadata.json new file mode 100644 index 0000000..3f09674 --- /dev/null +++ b/.vitepress/cache/deps/_metadata.json @@ -0,0 +1,58 @@ +{ + "hash": "d712c44c", + "configHash": "04b05d57", + "lockfileHash": "10c85a81", + "browserHash": "e5d017df", + "optimized": { + "vue": { + "src": "../../../node_modules/.pnpm/vue@3.4.31/node_modules/vue/dist/vue.runtime.esm-bundler.js", + "file": "vue.js", + "fileHash": "f9c29b17", + "needsInterop": false + }, + "vitepress > @vue/devtools-api": { + "src": "../../../node_modules/.pnpm/@vue+devtools-api@7.3.5/node_modules/@vue/devtools-api/dist/index.js", + "file": "vitepress___@vue_devtools-api.js", + "fileHash": "a1f0d505", + "needsInterop": false + }, + "vitepress > @vueuse/core": { + "src": "../../../node_modules/.pnpm/@vueuse+core@10.11.0_vue@3.4.31/node_modules/@vueuse/core/index.mjs", + "file": "vitepress___@vueuse_core.js", + "fileHash": "906d8118", + "needsInterop": false + }, + "vitepress > @vueuse/integrations/useFocusTrap": { + "src": "../../../node_modules/.pnpm/@vueuse+integrations@10.11.0_focus-trap@7.5.4_vue@3.4.31/node_modules/@vueuse/integrations/useFocusTrap.mjs", + "file": "vitepress___@vueuse_integrations_useFocusTrap.js", + "fileHash": "2a3348f0", + "needsInterop": false + }, + "vitepress > mark.js/src/vanilla.js": { + "src": "../../../node_modules/.pnpm/mark.js@8.11.1/node_modules/mark.js/src/vanilla.js", + "file": "vitepress___mark__js_src_vanilla__js.js", + "fileHash": "943e4b2c", + "needsInterop": false + }, + "vitepress > minisearch": { + "src": "../../../node_modules/.pnpm/minisearch@6.3.0/node_modules/minisearch/dist/es/index.js", + "file": "vitepress___minisearch.js", + "fileHash": "415e26a7", + "needsInterop": false + }, + "medium-zoom": { + "src": "../../../node_modules/.pnpm/medium-zoom@1.1.0/node_modules/medium-zoom/dist/medium-zoom.esm.js", + "file": "medium-zoom.js", + "fileHash": "10651d0b", + "needsInterop": false + } + }, + "chunks": { + "chunk-7WWQ3R2W": { + "file": "chunk-7WWQ3R2W.js" + }, + "chunk-CGFDJW4T": { + "file": "chunk-CGFDJW4T.js" + } + } +} \ No newline at end of file diff --git a/.vitepress/cache/deps/chunk-7WWQ3R2W.js b/.vitepress/cache/deps/chunk-7WWQ3R2W.js new file mode 100644 index 0000000..6b4badd --- /dev/null +++ b/.vitepress/cache/deps/chunk-7WWQ3R2W.js @@ -0,0 +1,9172 @@ +import { + Fragment, + TransitionGroup, + computed, + customRef, + defineComponent, + effectScope, + getCurrentInstance, + getCurrentScope, + h, + inject, + isReactive, + isReadonly, + isRef, + markRaw, + nextTick, + onBeforeMount, + onBeforeUnmount, + onBeforeUpdate, + onMounted, + onScopeDispose, + onUnmounted, + onUpdated, + provide, + reactive, + readonly, + ref, + shallowReactive, + shallowRef, + toRef, + toRefs, + unref, + version, + watch, + watchEffect +} from "./chunk-CGFDJW4T.js"; + +// node_modules/.pnpm/vitepress@1.3.0_@algolia+client-search@4.24.0_postcss@8.4.39_search-insights@2.15.0/node_modules/vitepress/lib/vue-demi.mjs +var isVue2 = false; +var isVue3 = true; +function set(target, key, val) { + if (Array.isArray(target)) { + target.length = Math.max(target.length, key); + target.splice(key, 1, val); + return val; + } + target[key] = val; + return val; +} +function del(target, key) { + if (Array.isArray(target)) { + target.splice(key, 1); + return; + } + delete target[key]; +} + +// node_modules/.pnpm/@vueuse+shared@10.11.0_vue@3.4.31/node_modules/@vueuse/shared/index.mjs +function computedEager(fn, options) { + var _a; + const result = shallowRef(); + watchEffect(() => { + result.value = fn(); + }, { + ...options, + flush: (_a = options == null ? void 0 : options.flush) != null ? _a : "sync" + }); + return readonly(result); +} +function computedWithControl(source, fn) { + let v = void 0; + let track; + let trigger; + const dirty = ref(true); + const update = () => { + dirty.value = true; + trigger(); + }; + watch(source, update, { flush: "sync" }); + const get2 = typeof fn === "function" ? fn : fn.get; + const set3 = typeof fn === "function" ? void 0 : fn.set; + const result = customRef((_track, _trigger) => { + track = _track; + trigger = _trigger; + return { + get() { + if (dirty.value) { + v = get2(); + dirty.value = false; + } + track(); + return v; + }, + set(v2) { + set3 == null ? void 0 : set3(v2); + } + }; + }); + if (Object.isExtensible(result)) + result.trigger = update; + return result; +} +function tryOnScopeDispose(fn) { + if (getCurrentScope()) { + onScopeDispose(fn); + return true; + } + return false; +} +function createEventHook() { + const fns = /* @__PURE__ */ new Set(); + const off = (fn) => { + fns.delete(fn); + }; + const on = (fn) => { + fns.add(fn); + const offFn = () => off(fn); + tryOnScopeDispose(offFn); + return { + off: offFn + }; + }; + const trigger = (...args) => { + return Promise.all(Array.from(fns).map((fn) => fn(...args))); + }; + return { + on, + off, + trigger + }; +} +function createGlobalState(stateFactory) { + let initialized = false; + let state; + const scope = effectScope(true); + return (...args) => { + if (!initialized) { + state = scope.run(() => stateFactory(...args)); + initialized = true; + } + return state; + }; +} +var localProvidedStateMap = /* @__PURE__ */ new WeakMap(); +var provideLocal = (key, value) => { + var _a; + const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy; + if (instance == null) + throw new Error("provideLocal must be called in setup"); + if (!localProvidedStateMap.has(instance)) + localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null)); + const localProvidedState = localProvidedStateMap.get(instance); + localProvidedState[key] = value; + provide(key, value); +}; +var injectLocal = (...args) => { + var _a; + const key = args[0]; + const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy; + if (instance == null) + throw new Error("injectLocal must be called in setup"); + if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance)) + return localProvidedStateMap.get(instance)[key]; + return inject(...args); +}; +function createInjectionState(composable, options) { + const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || "InjectionState"); + const defaultValue = options == null ? void 0 : options.defaultValue; + const useProvidingState = (...args) => { + const state = composable(...args); + provideLocal(key, state); + return state; + }; + const useInjectedState = () => injectLocal(key, defaultValue); + return [useProvidingState, useInjectedState]; +} +function createSharedComposable(composable) { + let subscribers = 0; + let state; + let scope; + const dispose = () => { + subscribers -= 1; + if (scope && subscribers <= 0) { + scope.stop(); + state = void 0; + scope = void 0; + } + }; + return (...args) => { + subscribers += 1; + if (!state) { + scope = effectScope(true); + state = scope.run(() => composable(...args)); + } + tryOnScopeDispose(dispose); + return state; + }; +} +function extendRef(ref2, extend, { enumerable = false, unwrap = true } = {}) { + if (!isVue3 && !version.startsWith("2.7.")) { + if (true) + throw new Error("[VueUse] extendRef only works in Vue 2.7 or above."); + return; + } + for (const [key, value] of Object.entries(extend)) { + if (key === "value") + continue; + if (isRef(value) && unwrap) { + Object.defineProperty(ref2, key, { + get() { + return value.value; + }, + set(v) { + value.value = v; + }, + enumerable + }); + } else { + Object.defineProperty(ref2, key, { value, enumerable }); + } + } + return ref2; +} +function get(obj, key) { + if (key == null) + return unref(obj); + return unref(obj)[key]; +} +function isDefined(v) { + return unref(v) != null; +} +function makeDestructurable(obj, arr) { + if (typeof Symbol !== "undefined") { + const clone = { ...obj }; + Object.defineProperty(clone, Symbol.iterator, { + enumerable: false, + value() { + let index = 0; + return { + next: () => ({ + value: arr[index++], + done: index > arr.length + }) + }; + } + }); + return clone; + } else { + return Object.assign([...arr], obj); + } +} +function toValue(r) { + return typeof r === "function" ? r() : unref(r); +} +var resolveUnref = toValue; +function reactify(fn, options) { + const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue; + return function(...args) { + return computed(() => fn.apply(this, args.map((i) => unrefFn(i)))); + }; +} +function reactifyObject(obj, optionsOrKeys = {}) { + let keys2 = []; + let options; + if (Array.isArray(optionsOrKeys)) { + keys2 = optionsOrKeys; + } else { + options = optionsOrKeys; + const { includeOwnProperties = true } = optionsOrKeys; + keys2.push(...Object.keys(obj)); + if (includeOwnProperties) + keys2.push(...Object.getOwnPropertyNames(obj)); + } + return Object.fromEntries( + keys2.map((key) => { + const value = obj[key]; + return [ + key, + typeof value === "function" ? reactify(value.bind(obj), options) : value + ]; + }) + ); +} +function toReactive(objectRef) { + if (!isRef(objectRef)) + return reactive(objectRef); + const proxy = new Proxy({}, { + get(_, p, receiver) { + return unref(Reflect.get(objectRef.value, p, receiver)); + }, + set(_, p, value) { + if (isRef(objectRef.value[p]) && !isRef(value)) + objectRef.value[p].value = value; + else + objectRef.value[p] = value; + return true; + }, + deleteProperty(_, p) { + return Reflect.deleteProperty(objectRef.value, p); + }, + has(_, p) { + return Reflect.has(objectRef.value, p); + }, + ownKeys() { + return Object.keys(objectRef.value); + }, + getOwnPropertyDescriptor() { + return { + enumerable: true, + configurable: true + }; + } + }); + return reactive(proxy); +} +function reactiveComputed(fn) { + return toReactive(computed(fn)); +} +function reactiveOmit(obj, ...keys2) { + const flatKeys = keys2.flat(); + const predicate = flatKeys[0]; + return reactiveComputed(() => typeof predicate === "function" ? Object.fromEntries(Object.entries(toRefs(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs(obj)).filter((e) => !flatKeys.includes(e[0])))); +} +var isClient = typeof window !== "undefined" && typeof document !== "undefined"; +var isWorker = typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope; +var isDef = (val) => typeof val !== "undefined"; +var notNullish = (val) => val != null; +var assert = (condition, ...infos) => { + if (!condition) + console.warn(...infos); +}; +var toString = Object.prototype.toString; +var isObject = (val) => toString.call(val) === "[object Object]"; +var now = () => Date.now(); +var timestamp = () => +Date.now(); +var clamp = (n, min, max) => Math.min(max, Math.max(min, n)); +var noop = () => { +}; +var rand = (min, max) => { + min = Math.ceil(min); + max = Math.floor(max); + return Math.floor(Math.random() * (max - min + 1)) + min; +}; +var hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key); +var isIOS = getIsIOS(); +function getIsIOS() { + var _a, _b; + return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent)); +} +function createFilterWrapper(filter, fn) { + function wrapper(...args) { + return new Promise((resolve, reject) => { + Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject); + }); + } + return wrapper; +} +var bypassFilter = (invoke2) => { + return invoke2(); +}; +function debounceFilter(ms, options = {}) { + let timer; + let maxTimer; + let lastRejector = noop; + const _clearTimeout = (timer2) => { + clearTimeout(timer2); + lastRejector(); + lastRejector = noop; + }; + const filter = (invoke2) => { + const duration = toValue(ms); + const maxDuration = toValue(options.maxWait); + if (timer) + _clearTimeout(timer); + if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) { + if (maxTimer) { + _clearTimeout(maxTimer); + maxTimer = null; + } + return Promise.resolve(invoke2()); + } + return new Promise((resolve, reject) => { + lastRejector = options.rejectOnCancel ? reject : resolve; + if (maxDuration && !maxTimer) { + maxTimer = setTimeout(() => { + if (timer) + _clearTimeout(timer); + maxTimer = null; + resolve(invoke2()); + }, maxDuration); + } + timer = setTimeout(() => { + if (maxTimer) + _clearTimeout(maxTimer); + maxTimer = null; + resolve(invoke2()); + }, duration); + }); + }; + return filter; +} +function throttleFilter(...args) { + let lastExec = 0; + let timer; + let isLeading = true; + let lastRejector = noop; + let lastValue; + let ms; + let trailing; + let leading; + let rejectOnCancel; + if (!isRef(args[0]) && typeof args[0] === "object") + ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]); + else + [ms, trailing = true, leading = true, rejectOnCancel = false] = args; + const clear = () => { + if (timer) { + clearTimeout(timer); + timer = void 0; + lastRejector(); + lastRejector = noop; + } + }; + const filter = (_invoke) => { + const duration = toValue(ms); + const elapsed = Date.now() - lastExec; + const invoke2 = () => { + return lastValue = _invoke(); + }; + clear(); + if (duration <= 0) { + lastExec = Date.now(); + return invoke2(); + } + if (elapsed > duration && (leading || !isLeading)) { + lastExec = Date.now(); + invoke2(); + } else if (trailing) { + lastValue = new Promise((resolve, reject) => { + lastRejector = rejectOnCancel ? reject : resolve; + timer = setTimeout(() => { + lastExec = Date.now(); + isLeading = true; + resolve(invoke2()); + clear(); + }, Math.max(0, duration - elapsed)); + }); + } + if (!leading && !timer) + timer = setTimeout(() => isLeading = true, duration); + isLeading = false; + return lastValue; + }; + return filter; +} +function pausableFilter(extendFilter = bypassFilter) { + const isActive = ref(true); + function pause() { + isActive.value = false; + } + function resume() { + isActive.value = true; + } + const eventFilter = (...args) => { + if (isActive.value) + extendFilter(...args); + }; + return { isActive: readonly(isActive), pause, resume, eventFilter }; +} +var directiveHooks = { + mounted: isVue3 ? "mounted" : "inserted", + updated: isVue3 ? "updated" : "componentUpdated", + unmounted: isVue3 ? "unmounted" : "unbind" +}; +function cacheStringFunction(fn) { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; +} +var hyphenateRE = /\B([A-Z])/g; +var hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase()); +var camelizeRE = /-(\w)/g; +var camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); +}); +function promiseTimeout(ms, throwOnTimeout = false, reason = "Timeout") { + return new Promise((resolve, reject) => { + if (throwOnTimeout) + setTimeout(() => reject(reason), ms); + else + setTimeout(resolve, ms); + }); +} +function identity(arg) { + return arg; +} +function createSingletonPromise(fn) { + let _promise; + function wrapper() { + if (!_promise) + _promise = fn(); + return _promise; + } + wrapper.reset = async () => { + const _prev = _promise; + _promise = void 0; + if (_prev) + await _prev; + }; + return wrapper; +} +function invoke(fn) { + return fn(); +} +function containsProp(obj, ...props) { + return props.some((k) => k in obj); +} +function increaseWithUnit(target, delta) { + var _a; + if (typeof target === "number") + return target + delta; + const value = ((_a = target.match(/^-?\d+\.?\d*/)) == null ? void 0 : _a[0]) || ""; + const unit = target.slice(value.length); + const result = Number.parseFloat(value) + delta; + if (Number.isNaN(result)) + return target; + return result + unit; +} +function objectPick(obj, keys2, omitUndefined = false) { + return keys2.reduce((n, k) => { + if (k in obj) { + if (!omitUndefined || obj[k] !== void 0) + n[k] = obj[k]; + } + return n; + }, {}); +} +function objectOmit(obj, keys2, omitUndefined = false) { + return Object.fromEntries(Object.entries(obj).filter(([key, value]) => { + return (!omitUndefined || value !== void 0) && !keys2.includes(key); + })); +} +function objectEntries(obj) { + return Object.entries(obj); +} +function getLifeCycleTarget(target) { + return target || getCurrentInstance(); +} +function toRef2(...args) { + if (args.length !== 1) + return toRef(...args); + const r = args[0]; + return typeof r === "function" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r); +} +var resolveRef = toRef2; +function reactivePick(obj, ...keys2) { + const flatKeys = keys2.flat(); + const predicate = flatKeys[0]; + return reactiveComputed(() => typeof predicate === "function" ? Object.fromEntries(Object.entries(toRefs(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef2(obj, k)]))); +} +function refAutoReset(defaultValue, afterMs = 1e4) { + return customRef((track, trigger) => { + let value = toValue(defaultValue); + let timer; + const resetAfter = () => setTimeout(() => { + value = toValue(defaultValue); + trigger(); + }, toValue(afterMs)); + tryOnScopeDispose(() => { + clearTimeout(timer); + }); + return { + get() { + track(); + return value; + }, + set(newValue) { + value = newValue; + trigger(); + clearTimeout(timer); + timer = resetAfter(); + } + }; + }); +} +function useDebounceFn(fn, ms = 200, options = {}) { + return createFilterWrapper( + debounceFilter(ms, options), + fn + ); +} +function refDebounced(value, ms = 200, options = {}) { + const debounced = ref(value.value); + const updater = useDebounceFn(() => { + debounced.value = value.value; + }, ms, options); + watch(value, () => updater()); + return debounced; +} +function refDefault(source, defaultValue) { + return computed({ + get() { + var _a; + return (_a = source.value) != null ? _a : defaultValue; + }, + set(value) { + source.value = value; + } + }); +} +function useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) { + return createFilterWrapper( + throttleFilter(ms, trailing, leading, rejectOnCancel), + fn + ); +} +function refThrottled(value, delay = 200, trailing = true, leading = true) { + if (delay <= 0) + return value; + const throttled = ref(value.value); + const updater = useThrottleFn(() => { + throttled.value = value.value; + }, delay, trailing, leading); + watch(value, () => updater()); + return throttled; +} +function refWithControl(initial, options = {}) { + let source = initial; + let track; + let trigger; + const ref2 = customRef((_track, _trigger) => { + track = _track; + trigger = _trigger; + return { + get() { + return get2(); + }, + set(v) { + set3(v); + } + }; + }); + function get2(tracking = true) { + if (tracking) + track(); + return source; + } + function set3(value, triggering = true) { + var _a, _b; + if (value === source) + return; + const old = source; + if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false) + return; + source = value; + (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old); + if (triggering) + trigger(); + } + const untrackedGet = () => get2(false); + const silentSet = (v) => set3(v, false); + const peek = () => get2(false); + const lay = (v) => set3(v, false); + return extendRef( + ref2, + { + get: get2, + set: set3, + untrackedGet, + silentSet, + peek, + lay + }, + { enumerable: true } + ); +} +var controlledRef = refWithControl; +function set2(...args) { + if (args.length === 2) { + const [ref2, value] = args; + ref2.value = value; + } + if (args.length === 3) { + if (isVue2) { + set(...args); + } else { + const [target, key, value] = args; + target[key] = value; + } + } +} +function watchWithFilter(source, cb, options = {}) { + const { + eventFilter = bypassFilter, + ...watchOptions + } = options; + return watch( + source, + createFilterWrapper( + eventFilter, + cb + ), + watchOptions + ); +} +function watchPausable(source, cb, options = {}) { + const { + eventFilter: filter, + ...watchOptions + } = options; + const { eventFilter, pause, resume, isActive } = pausableFilter(filter); + const stop = watchWithFilter( + source, + cb, + { + ...watchOptions, + eventFilter + } + ); + return { stop, pause, resume, isActive }; +} +function syncRef(left, right, ...[options]) { + const { + flush = "sync", + deep = false, + immediate = true, + direction = "both", + transform = {} + } = options || {}; + const watchers = []; + const transformLTR = "ltr" in transform && transform.ltr || ((v) => v); + const transformRTL = "rtl" in transform && transform.rtl || ((v) => v); + if (direction === "both" || direction === "ltr") { + watchers.push(watchPausable( + left, + (newValue) => { + watchers.forEach((w) => w.pause()); + right.value = transformLTR(newValue); + watchers.forEach((w) => w.resume()); + }, + { flush, deep, immediate } + )); + } + if (direction === "both" || direction === "rtl") { + watchers.push(watchPausable( + right, + (newValue) => { + watchers.forEach((w) => w.pause()); + left.value = transformRTL(newValue); + watchers.forEach((w) => w.resume()); + }, + { flush, deep, immediate } + )); + } + const stop = () => { + watchers.forEach((w) => w.stop()); + }; + return stop; +} +function syncRefs(source, targets, options = {}) { + const { + flush = "sync", + deep = false, + immediate = true + } = options; + if (!Array.isArray(targets)) + targets = [targets]; + return watch( + source, + (newValue) => targets.forEach((target) => target.value = newValue), + { flush, deep, immediate } + ); +} +function toRefs2(objectRef, options = {}) { + if (!isRef(objectRef)) + return toRefs(objectRef); + const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {}; + for (const key in objectRef.value) { + result[key] = customRef(() => ({ + get() { + return objectRef.value[key]; + }, + set(v) { + var _a; + const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true; + if (replaceRef) { + if (Array.isArray(objectRef.value)) { + const copy = [...objectRef.value]; + copy[key] = v; + objectRef.value = copy; + } else { + const newObject = { ...objectRef.value, [key]: v }; + Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value)); + objectRef.value = newObject; + } + } else { + objectRef.value[key] = v; + } + } + })); + } + return result; +} +function tryOnBeforeMount(fn, sync = true, target) { + const instance = getLifeCycleTarget(target); + if (instance) + onBeforeMount(fn, target); + else if (sync) + fn(); + else + nextTick(fn); +} +function tryOnBeforeUnmount(fn, target) { + const instance = getLifeCycleTarget(target); + if (instance) + onBeforeUnmount(fn, target); +} +function tryOnMounted(fn, sync = true, target) { + const instance = getLifeCycleTarget(); + if (instance) + onMounted(fn, target); + else if (sync) + fn(); + else + nextTick(fn); +} +function tryOnUnmounted(fn, target) { + const instance = getLifeCycleTarget(target); + if (instance) + onUnmounted(fn, target); +} +function createUntil(r, isNot = false) { + function toMatch(condition, { flush = "sync", deep = false, timeout, throwOnTimeout } = {}) { + let stop = null; + const watcher = new Promise((resolve) => { + stop = watch( + r, + (v) => { + if (condition(v) !== isNot) { + stop == null ? void 0 : stop(); + resolve(v); + } + }, + { + flush, + deep, + immediate: true + } + ); + }); + const promises = [watcher]; + if (timeout != null) { + promises.push( + promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop()) + ); + } + return Promise.race(promises); + } + function toBe(value, options) { + if (!isRef(value)) + return toMatch((v) => v === value, options); + const { flush = "sync", deep = false, timeout, throwOnTimeout } = options != null ? options : {}; + let stop = null; + const watcher = new Promise((resolve) => { + stop = watch( + [r, value], + ([v1, v2]) => { + if (isNot !== (v1 === v2)) { + stop == null ? void 0 : stop(); + resolve(v1); + } + }, + { + flush, + deep, + immediate: true + } + ); + }); + const promises = [watcher]; + if (timeout != null) { + promises.push( + promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => { + stop == null ? void 0 : stop(); + return toValue(r); + }) + ); + } + return Promise.race(promises); + } + function toBeTruthy(options) { + return toMatch((v) => Boolean(v), options); + } + function toBeNull(options) { + return toBe(null, options); + } + function toBeUndefined(options) { + return toBe(void 0, options); + } + function toBeNaN(options) { + return toMatch(Number.isNaN, options); + } + function toContains(value, options) { + return toMatch((v) => { + const array = Array.from(v); + return array.includes(value) || array.includes(toValue(value)); + }, options); + } + function changed(options) { + return changedTimes(1, options); + } + function changedTimes(n = 1, options) { + let count = -1; + return toMatch(() => { + count += 1; + return count >= n; + }, options); + } + if (Array.isArray(toValue(r))) { + const instance = { + toMatch, + toContains, + changed, + changedTimes, + get not() { + return createUntil(r, !isNot); + } + }; + return instance; + } else { + const instance = { + toMatch, + toBe, + toBeTruthy, + toBeNull, + toBeNaN, + toBeUndefined, + changed, + changedTimes, + get not() { + return createUntil(r, !isNot); + } + }; + return instance; + } +} +function until(r) { + return createUntil(r); +} +function defaultComparator(value, othVal) { + return value === othVal; +} +function useArrayDifference(...args) { + var _a; + const list = args[0]; + const values = args[1]; + let compareFn = (_a = args[2]) != null ? _a : defaultComparator; + if (typeof compareFn === "string") { + const key = compareFn; + compareFn = (value, othVal) => value[key] === othVal[key]; + } + return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1)); +} +function useArrayEvery(list, fn) { + return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array))); +} +function useArrayFilter(list, fn) { + return computed(() => toValue(list).map((i) => toValue(i)).filter(fn)); +} +function useArrayFind(list, fn) { + return computed(() => toValue( + toValue(list).find((element, index, array) => fn(toValue(element), index, array)) + )); +} +function useArrayFindIndex(list, fn) { + return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array))); +} +function findLast(arr, cb) { + let index = arr.length; + while (index-- > 0) { + if (cb(arr[index], index, arr)) + return arr[index]; + } + return void 0; +} +function useArrayFindLast(list, fn) { + return computed(() => toValue( + !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array)) + )); +} +function isArrayIncludesOptions(obj) { + return isObject(obj) && containsProp(obj, "formIndex", "comparator"); +} +function useArrayIncludes(...args) { + var _a; + const list = args[0]; + const value = args[1]; + let comparator = args[2]; + let formIndex = 0; + if (isArrayIncludesOptions(comparator)) { + formIndex = (_a = comparator.fromIndex) != null ? _a : 0; + comparator = comparator.comparator; + } + if (typeof comparator === "string") { + const key = comparator; + comparator = (element, value2) => element[key] === toValue(value2); + } + comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2); + return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator( + toValue(element), + toValue(value), + index, + toValue(array) + ))); +} +function useArrayJoin(list, separator) { + return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator))); +} +function useArrayMap(list, fn) { + return computed(() => toValue(list).map((i) => toValue(i)).map(fn)); +} +function useArrayReduce(list, reducer, ...args) { + const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index); + return computed(() => { + const resolved = toValue(list); + return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback); + }); +} +function useArraySome(list, fn) { + return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array))); +} +function uniq(array) { + return Array.from(new Set(array)); +} +function uniqueElementsBy(array, fn) { + return array.reduce((acc, v) => { + if (!acc.some((x) => fn(v, x, array))) + acc.push(v); + return acc; + }, []); +} +function useArrayUnique(list, compareFn) { + return computed(() => { + const resolvedList = toValue(list).map((element) => toValue(element)); + return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList); + }); +} +function useCounter(initialValue = 0, options = {}) { + let _initialValue = unref(initialValue); + const count = ref(initialValue); + const { + max = Number.POSITIVE_INFINITY, + min = Number.NEGATIVE_INFINITY + } = options; + const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min); + const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max); + const get2 = () => count.value; + const set3 = (val) => count.value = Math.max(min, Math.min(max, val)); + const reset = (val = _initialValue) => { + _initialValue = val; + return set3(val); + }; + return { count, inc, dec, get: get2, set: set3, reset }; +} +var REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[T\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/i; +var REGEX_FORMAT = /[YMDHhms]o|\[([^\]]+)\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g; +function defaultMeridiem(hours, minutes, isLowercase, hasPeriod) { + let m = hours < 12 ? "AM" : "PM"; + if (hasPeriod) + m = m.split("").reduce((acc, curr) => acc += `${curr}.`, ""); + return isLowercase ? m.toLowerCase() : m; +} +function formatOrdinal(num) { + const suffixes = ["th", "st", "nd", "rd"]; + const v = num % 100; + return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]); +} +function formatDate(date, formatStr, options = {}) { + var _a; + const years = date.getFullYear(); + const month = date.getMonth(); + const days = date.getDate(); + const hours = date.getHours(); + const minutes = date.getMinutes(); + const seconds = date.getSeconds(); + const milliseconds = date.getMilliseconds(); + const day = date.getDay(); + const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem; + const matches = { + Yo: () => formatOrdinal(years), + YY: () => String(years).slice(-2), + YYYY: () => years, + M: () => month + 1, + Mo: () => formatOrdinal(month + 1), + MM: () => `${month + 1}`.padStart(2, "0"), + MMM: () => date.toLocaleDateString(options.locales, { month: "short" }), + MMMM: () => date.toLocaleDateString(options.locales, { month: "long" }), + D: () => String(days), + Do: () => formatOrdinal(days), + DD: () => `${days}`.padStart(2, "0"), + H: () => String(hours), + Ho: () => formatOrdinal(hours), + HH: () => `${hours}`.padStart(2, "0"), + h: () => `${hours % 12 || 12}`.padStart(1, "0"), + ho: () => formatOrdinal(hours % 12 || 12), + hh: () => `${hours % 12 || 12}`.padStart(2, "0"), + m: () => String(minutes), + mo: () => formatOrdinal(minutes), + mm: () => `${minutes}`.padStart(2, "0"), + s: () => String(seconds), + so: () => formatOrdinal(seconds), + ss: () => `${seconds}`.padStart(2, "0"), + SSS: () => `${milliseconds}`.padStart(3, "0"), + d: () => day, + dd: () => date.toLocaleDateString(options.locales, { weekday: "narrow" }), + ddd: () => date.toLocaleDateString(options.locales, { weekday: "short" }), + dddd: () => date.toLocaleDateString(options.locales, { weekday: "long" }), + A: () => meridiem(hours, minutes), + AA: () => meridiem(hours, minutes, false, true), + a: () => meridiem(hours, minutes, true), + aa: () => meridiem(hours, minutes, true, true) + }; + return formatStr.replace(REGEX_FORMAT, (match, $1) => { + var _a2, _b; + return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match; + }); +} +function normalizeDate(date) { + if (date === null) + return new Date(Number.NaN); + if (date === void 0) + return /* @__PURE__ */ new Date(); + if (date instanceof Date) + return new Date(date); + if (typeof date === "string" && !/Z$/i.test(date)) { + const d = date.match(REGEX_PARSE); + if (d) { + const m = d[2] - 1 || 0; + const ms = (d[7] || "0").substring(0, 3); + return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms); + } + } + return new Date(date); +} +function useDateFormat(date, formatStr = "HH:mm:ss", options = {}) { + return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options)); +} +function useIntervalFn(cb, interval = 1e3, options = {}) { + const { + immediate = true, + immediateCallback = false + } = options; + let timer = null; + const isActive = ref(false); + function clean() { + if (timer) { + clearInterval(timer); + timer = null; + } + } + function pause() { + isActive.value = false; + clean(); + } + function resume() { + const intervalValue = toValue(interval); + if (intervalValue <= 0) + return; + isActive.value = true; + if (immediateCallback) + cb(); + clean(); + timer = setInterval(cb, intervalValue); + } + if (immediate && isClient) + resume(); + if (isRef(interval) || typeof interval === "function") { + const stopWatch = watch(interval, () => { + if (isActive.value && isClient) + resume(); + }); + tryOnScopeDispose(stopWatch); + } + tryOnScopeDispose(pause); + return { + isActive, + pause, + resume + }; +} +function useInterval(interval = 1e3, options = {}) { + const { + controls: exposeControls = false, + immediate = true, + callback + } = options; + const counter = ref(0); + const update = () => counter.value += 1; + const reset = () => { + counter.value = 0; + }; + const controls = useIntervalFn( + callback ? () => { + update(); + callback(counter.value); + } : update, + interval, + { immediate } + ); + if (exposeControls) { + return { + counter, + reset, + ...controls + }; + } else { + return counter; + } +} +function useLastChanged(source, options = {}) { + var _a; + const ms = ref((_a = options.initialValue) != null ? _a : null); + watch( + source, + () => ms.value = timestamp(), + options + ); + return ms; +} +function useTimeoutFn(cb, interval, options = {}) { + const { + immediate = true + } = options; + const isPending = ref(false); + let timer = null; + function clear() { + if (timer) { + clearTimeout(timer); + timer = null; + } + } + function stop() { + isPending.value = false; + clear(); + } + function start(...args) { + clear(); + isPending.value = true; + timer = setTimeout(() => { + isPending.value = false; + timer = null; + cb(...args); + }, toValue(interval)); + } + if (immediate) { + isPending.value = true; + if (isClient) + start(); + } + tryOnScopeDispose(stop); + return { + isPending: readonly(isPending), + start, + stop + }; +} +function useTimeout(interval = 1e3, options = {}) { + const { + controls: exposeControls = false, + callback + } = options; + const controls = useTimeoutFn( + callback != null ? callback : noop, + interval, + options + ); + const ready = computed(() => !controls.isPending.value); + if (exposeControls) { + return { + ready, + ...controls + }; + } else { + return ready; + } +} +function useToNumber(value, options = {}) { + const { + method = "parseFloat", + radix, + nanToZero + } = options; + return computed(() => { + let resolved = toValue(value); + if (typeof resolved === "string") + resolved = Number[method](resolved, radix); + if (nanToZero && Number.isNaN(resolved)) + resolved = 0; + return resolved; + }); +} +function useToString(value) { + return computed(() => `${toValue(value)}`); +} +function useToggle(initialValue = false, options = {}) { + const { + truthyValue = true, + falsyValue = false + } = options; + const valueIsRef = isRef(initialValue); + const _value = ref(initialValue); + function toggle(value) { + if (arguments.length) { + _value.value = value; + return _value.value; + } else { + const truthy = toValue(truthyValue); + _value.value = _value.value === truthy ? toValue(falsyValue) : truthy; + return _value.value; + } + } + if (valueIsRef) + return toggle; + else + return [_value, toggle]; +} +function watchArray(source, cb, options) { + let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)]; + return watch(source, (newList, _, onCleanup) => { + const oldListRemains = Array.from({ length: oldList.length }); + const added = []; + for (const obj of newList) { + let found = false; + for (let i = 0; i < oldList.length; i++) { + if (!oldListRemains[i] && obj === oldList[i]) { + oldListRemains[i] = true; + found = true; + break; + } + } + if (!found) + added.push(obj); + } + const removed = oldList.filter((_2, i) => !oldListRemains[i]); + cb(newList, oldList, added, removed, onCleanup); + oldList = [...newList]; + }, options); +} +function watchAtMost(source, cb, options) { + const { + count, + ...watchOptions + } = options; + const current = ref(0); + const stop = watchWithFilter( + source, + (...args) => { + current.value += 1; + if (current.value >= toValue(count)) + nextTick(() => stop()); + cb(...args); + }, + watchOptions + ); + return { count: current, stop }; +} +function watchDebounced(source, cb, options = {}) { + const { + debounce = 0, + maxWait = void 0, + ...watchOptions + } = options; + return watchWithFilter( + source, + cb, + { + ...watchOptions, + eventFilter: debounceFilter(debounce, { maxWait }) + } + ); +} +function watchDeep(source, cb, options) { + return watch( + source, + cb, + { + ...options, + deep: true + } + ); +} +function watchIgnorable(source, cb, options = {}) { + const { + eventFilter = bypassFilter, + ...watchOptions + } = options; + const filteredCb = createFilterWrapper( + eventFilter, + cb + ); + let ignoreUpdates; + let ignorePrevAsyncUpdates; + let stop; + if (watchOptions.flush === "sync") { + const ignore = ref(false); + ignorePrevAsyncUpdates = () => { + }; + ignoreUpdates = (updater) => { + ignore.value = true; + updater(); + ignore.value = false; + }; + stop = watch( + source, + (...args) => { + if (!ignore.value) + filteredCb(...args); + }, + watchOptions + ); + } else { + const disposables = []; + const ignoreCounter = ref(0); + const syncCounter = ref(0); + ignorePrevAsyncUpdates = () => { + ignoreCounter.value = syncCounter.value; + }; + disposables.push( + watch( + source, + () => { + syncCounter.value++; + }, + { ...watchOptions, flush: "sync" } + ) + ); + ignoreUpdates = (updater) => { + const syncCounterPrev = syncCounter.value; + updater(); + ignoreCounter.value += syncCounter.value - syncCounterPrev; + }; + disposables.push( + watch( + source, + (...args) => { + const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value; + ignoreCounter.value = 0; + syncCounter.value = 0; + if (ignore) + return; + filteredCb(...args); + }, + watchOptions + ) + ); + stop = () => { + disposables.forEach((fn) => fn()); + }; + } + return { stop, ignoreUpdates, ignorePrevAsyncUpdates }; +} +function watchImmediate(source, cb, options) { + return watch( + source, + cb, + { + ...options, + immediate: true + } + ); +} +function watchOnce(source, cb, options) { + const stop = watch(source, (...args) => { + nextTick(() => stop()); + return cb(...args); + }, options); + return stop; +} +function watchThrottled(source, cb, options = {}) { + const { + throttle = 0, + trailing = true, + leading = true, + ...watchOptions + } = options; + return watchWithFilter( + source, + cb, + { + ...watchOptions, + eventFilter: throttleFilter(throttle, trailing, leading) + } + ); +} +function watchTriggerable(source, cb, options = {}) { + let cleanupFn; + function onEffect() { + if (!cleanupFn) + return; + const fn = cleanupFn; + cleanupFn = void 0; + fn(); + } + function onCleanup(callback) { + cleanupFn = callback; + } + const _cb = (value, oldValue) => { + onEffect(); + return cb(value, oldValue, onCleanup); + }; + const res = watchIgnorable(source, _cb, options); + const { ignoreUpdates } = res; + const trigger = () => { + let res2; + ignoreUpdates(() => { + res2 = _cb(getWatchSources(source), getOldValue(source)); + }); + return res2; + }; + return { + ...res, + trigger + }; +} +function getWatchSources(sources) { + if (isReactive(sources)) + return sources; + if (Array.isArray(sources)) + return sources.map((item) => toValue(item)); + return toValue(sources); +} +function getOldValue(source) { + return Array.isArray(source) ? source.map(() => void 0) : void 0; +} +function whenever(source, cb, options) { + const stop = watch( + source, + (v, ov, onInvalidate) => { + if (v) { + if (options == null ? void 0 : options.once) + nextTick(() => stop()); + cb(v, ov, onInvalidate); + } + }, + { + ...options, + once: false + } + ); + return stop; +} + +// node_modules/.pnpm/@vueuse+core@10.11.0_vue@3.4.31/node_modules/@vueuse/core/index.mjs +function computedAsync(evaluationCallback, initialState, optionsOrRef) { + let options; + if (isRef(optionsOrRef)) { + options = { + evaluating: optionsOrRef + }; + } else { + options = optionsOrRef || {}; + } + const { + lazy = false, + evaluating = void 0, + shallow = true, + onError = noop + } = options; + const started = ref(!lazy); + const current = shallow ? shallowRef(initialState) : ref(initialState); + let counter = 0; + watchEffect(async (onInvalidate) => { + if (!started.value) + return; + counter++; + const counterAtBeginning = counter; + let hasFinished = false; + if (evaluating) { + Promise.resolve().then(() => { + evaluating.value = true; + }); + } + try { + const result = await evaluationCallback((cancelCallback) => { + onInvalidate(() => { + if (evaluating) + evaluating.value = false; + if (!hasFinished) + cancelCallback(); + }); + }); + if (counterAtBeginning === counter) + current.value = result; + } catch (e) { + onError(e); + } finally { + if (evaluating && counterAtBeginning === counter) + evaluating.value = false; + hasFinished = true; + } + }); + if (lazy) { + return computed(() => { + started.value = true; + return current.value; + }); + } else { + return current; + } +} +function computedInject(key, options, defaultSource, treatDefaultAsFactory) { + let source = inject(key); + if (defaultSource) + source = inject(key, defaultSource); + if (treatDefaultAsFactory) + source = inject(key, defaultSource, treatDefaultAsFactory); + if (typeof options === "function") { + return computed((ctx) => options(source, ctx)); + } else { + return computed({ + get: (ctx) => options.get(source, ctx), + set: options.set + }); + } +} +function createReusableTemplate(options = {}) { + if (!isVue3 && !version.startsWith("2.7.")) { + if (true) + throw new Error("[VueUse] createReusableTemplate only works in Vue 2.7 or above."); + return; + } + const { + inheritAttrs = true + } = options; + const render = shallowRef(); + const define = defineComponent({ + setup(_, { slots }) { + return () => { + render.value = slots.default; + }; + } + }); + const reuse = defineComponent({ + inheritAttrs, + setup(_, { attrs, slots }) { + return () => { + var _a; + if (!render.value && true) + throw new Error("[VueUse] Failed to find the definition of reusable template"); + const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots }); + return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode; + }; + } + }); + return makeDestructurable( + { define, reuse }, + [define, reuse] + ); +} +function keysToCamelKebabCase(obj) { + const newObj = {}; + for (const key in obj) + newObj[camelize(key)] = obj[key]; + return newObj; +} +function createTemplatePromise(options = {}) { + if (!isVue3) { + if (true) + throw new Error("[VueUse] createTemplatePromise only works in Vue 3 or above."); + return; + } + let index = 0; + const instances = ref([]); + function create(...args) { + const props = shallowReactive({ + key: index++, + args, + promise: void 0, + resolve: () => { + }, + reject: () => { + }, + isResolving: false, + options + }); + instances.value.push(props); + props.promise = new Promise((_resolve, _reject) => { + props.resolve = (v) => { + props.isResolving = true; + return _resolve(v); + }; + props.reject = _reject; + }).finally(() => { + props.promise = void 0; + const index2 = instances.value.indexOf(props); + if (index2 !== -1) + instances.value.splice(index2, 1); + }); + return props.promise; + } + function start(...args) { + if (options.singleton && instances.value.length > 0) + return instances.value[0].promise; + return create(...args); + } + const component = defineComponent((_, { slots }) => { + const renderList = () => instances.value.map((props) => { + var _a; + return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props)); + }); + if (options.transition) + return () => h(TransitionGroup, options.transition, renderList); + return renderList; + }); + component.start = start; + return component; +} +function createUnrefFn(fn) { + return function(...args) { + return fn.apply(this, args.map((i) => toValue(i))); + }; +} +function unrefElement(elRef) { + var _a; + const plain = toValue(elRef); + return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain; +} +var defaultWindow = isClient ? window : void 0; +var defaultDocument = isClient ? window.document : void 0; +var defaultNavigator = isClient ? window.navigator : void 0; +var defaultLocation = isClient ? window.location : void 0; +function useEventListener(...args) { + let target; + let events2; + let listeners; + let options; + if (typeof args[0] === "string" || Array.isArray(args[0])) { + [events2, listeners, options] = args; + target = defaultWindow; + } else { + [target, events2, listeners, options] = args; + } + if (!target) + return noop; + if (!Array.isArray(events2)) + events2 = [events2]; + if (!Array.isArray(listeners)) + listeners = [listeners]; + const cleanups = []; + const cleanup = () => { + cleanups.forEach((fn) => fn()); + cleanups.length = 0; + }; + const register = (el, event, listener, options2) => { + el.addEventListener(event, listener, options2); + return () => el.removeEventListener(event, listener, options2); + }; + const stopWatch = watch( + () => [unrefElement(target), toValue(options)], + ([el, options2]) => { + cleanup(); + if (!el) + return; + const optionsClone = isObject(options2) ? { ...options2 } : options2; + cleanups.push( + ...events2.flatMap((event) => { + return listeners.map((listener) => register(el, event, listener, optionsClone)); + }) + ); + }, + { immediate: true, flush: "post" } + ); + const stop = () => { + stopWatch(); + cleanup(); + }; + tryOnScopeDispose(stop); + return stop; +} +var _iOSWorkaround = false; +function onClickOutside(target, handler, options = {}) { + const { window: window2 = defaultWindow, ignore = [], capture = true, detectIframe = false } = options; + if (!window2) + return noop; + if (isIOS && !_iOSWorkaround) { + _iOSWorkaround = true; + Array.from(window2.document.body.children).forEach((el) => el.addEventListener("click", noop)); + window2.document.documentElement.addEventListener("click", noop); + } + let shouldListen = true; + const shouldIgnore = (event) => { + return ignore.some((target2) => { + if (typeof target2 === "string") { + return Array.from(window2.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el)); + } else { + const el = unrefElement(target2); + return el && (event.target === el || event.composedPath().includes(el)); + } + }); + }; + const listener = (event) => { + const el = unrefElement(target); + if (!el || el === event.target || event.composedPath().includes(el)) + return; + if (event.detail === 0) + shouldListen = !shouldIgnore(event); + if (!shouldListen) { + shouldListen = true; + return; + } + handler(event); + }; + const cleanup = [ + useEventListener(window2, "click", listener, { passive: true, capture }), + useEventListener(window2, "pointerdown", (e) => { + const el = unrefElement(target); + shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el)); + }, { passive: true }), + detectIframe && useEventListener(window2, "blur", (event) => { + setTimeout(() => { + var _a; + const el = unrefElement(target); + if (((_a = window2.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window2.document.activeElement))) { + handler(event); + } + }, 0); + }) + ].filter(Boolean); + const stop = () => cleanup.forEach((fn) => fn()); + return stop; +} +function createKeyPredicate(keyFilter) { + if (typeof keyFilter === "function") + return keyFilter; + else if (typeof keyFilter === "string") + return (event) => event.key === keyFilter; + else if (Array.isArray(keyFilter)) + return (event) => keyFilter.includes(event.key); + return () => true; +} +function onKeyStroke(...args) { + let key; + let handler; + let options = {}; + if (args.length === 3) { + key = args[0]; + handler = args[1]; + options = args[2]; + } else if (args.length === 2) { + if (typeof args[1] === "object") { + key = true; + handler = args[0]; + options = args[1]; + } else { + key = args[0]; + handler = args[1]; + } + } else { + key = true; + handler = args[0]; + } + const { + target = defaultWindow, + eventName = "keydown", + passive = false, + dedupe = false + } = options; + const predicate = createKeyPredicate(key); + const listener = (e) => { + if (e.repeat && toValue(dedupe)) + return; + if (predicate(e)) + handler(e); + }; + return useEventListener(target, eventName, listener, passive); +} +function onKeyDown(key, handler, options = {}) { + return onKeyStroke(key, handler, { ...options, eventName: "keydown" }); +} +function onKeyPressed(key, handler, options = {}) { + return onKeyStroke(key, handler, { ...options, eventName: "keypress" }); +} +function onKeyUp(key, handler, options = {}) { + return onKeyStroke(key, handler, { ...options, eventName: "keyup" }); +} +var DEFAULT_DELAY = 500; +var DEFAULT_THRESHOLD = 10; +function onLongPress(target, handler, options) { + var _a, _b; + const elementRef = computed(() => unrefElement(target)); + let timeout; + let posStart; + let startTimestamp; + let hasLongPressed = false; + function clear() { + if (timeout) { + clearTimeout(timeout); + timeout = void 0; + } + posStart = void 0; + startTimestamp = void 0; + hasLongPressed = false; + } + function onRelease(ev) { + var _a2, _b2, _c; + const [_startTimestamp, _posStart, _hasLongPressed] = [startTimestamp, posStart, hasLongPressed]; + clear(); + if (!(options == null ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp) + return; + if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value) + return; + if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent) + ev.preventDefault(); + if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop) + ev.stopPropagation(); + const dx = ev.x - _posStart.x; + const dy = ev.y - _posStart.y; + const distance = Math.sqrt(dx * dx + dy * dy); + options.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed); + } + function onDown(ev) { + var _a2, _b2, _c, _d; + if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value) + return; + clear(); + if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent) + ev.preventDefault(); + if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop) + ev.stopPropagation(); + posStart = { + x: ev.x, + y: ev.y + }; + startTimestamp = ev.timeStamp; + timeout = setTimeout( + () => { + hasLongPressed = true; + handler(ev); + }, + (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY + ); + } + function onMove(ev) { + var _a2, _b2, _c, _d; + if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value) + return; + if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false) + return; + if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent) + ev.preventDefault(); + if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop) + ev.stopPropagation(); + const dx = ev.x - posStart.x; + const dy = ev.y - posStart.y; + const distance = Math.sqrt(dx * dx + dy * dy); + if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD)) + clear(); + } + const listenerOptions = { + capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture, + once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once + }; + const cleanup = [ + useEventListener(elementRef, "pointerdown", onDown, listenerOptions), + useEventListener(elementRef, "pointermove", onMove, listenerOptions), + useEventListener(elementRef, ["pointerup", "pointerleave"], onRelease, listenerOptions) + ]; + const stop = () => cleanup.forEach((fn) => fn()); + return stop; +} +function isFocusedElementEditable() { + const { activeElement, body } = document; + if (!activeElement) + return false; + if (activeElement === body) + return false; + switch (activeElement.tagName) { + case "INPUT": + case "TEXTAREA": + return true; + } + return activeElement.hasAttribute("contenteditable"); +} +function isTypedCharValid({ + keyCode, + metaKey, + ctrlKey, + altKey +}) { + if (metaKey || ctrlKey || altKey) + return false; + if (keyCode >= 48 && keyCode <= 57) + return true; + if (keyCode >= 65 && keyCode <= 90) + return true; + if (keyCode >= 97 && keyCode <= 122) + return true; + return false; +} +function onStartTyping(callback, options = {}) { + const { document: document2 = defaultDocument } = options; + const keydown = (event) => { + !isFocusedElementEditable() && isTypedCharValid(event) && callback(event); + }; + if (document2) + useEventListener(document2, "keydown", keydown, { passive: true }); +} +function templateRef(key, initialValue = null) { + const instance = getCurrentInstance(); + let _trigger = () => { + }; + const element = customRef((track, trigger) => { + _trigger = trigger; + return { + get() { + var _a, _b; + track(); + return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue; + }, + set() { + } + }; + }); + tryOnMounted(_trigger); + onUpdated(_trigger); + return element; +} +function useMounted() { + const isMounted = ref(false); + const instance = getCurrentInstance(); + if (instance) { + onMounted(() => { + isMounted.value = true; + }, isVue2 ? void 0 : instance); + } + return isMounted; +} +function useSupported(callback) { + const isMounted = useMounted(); + return computed(() => { + isMounted.value; + return Boolean(callback()); + }); +} +function useMutationObserver(target, callback, options = {}) { + const { window: window2 = defaultWindow, ...mutationOptions } = options; + let observer; + const isSupported = useSupported(() => window2 && "MutationObserver" in window2); + const cleanup = () => { + if (observer) { + observer.disconnect(); + observer = void 0; + } + }; + const targets = computed(() => { + const value = toValue(target); + const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish); + return new Set(items); + }); + const stopWatch = watch( + () => targets.value, + (targets2) => { + cleanup(); + if (isSupported.value && targets2.size) { + observer = new MutationObserver(callback); + targets2.forEach((el) => observer.observe(el, mutationOptions)); + } + }, + { immediate: true, flush: "post" } + ); + const takeRecords = () => { + return observer == null ? void 0 : observer.takeRecords(); + }; + const stop = () => { + cleanup(); + stopWatch(); + }; + tryOnScopeDispose(stop); + return { + isSupported, + stop, + takeRecords + }; +} +function useActiveElement(options = {}) { + var _a; + const { + window: window2 = defaultWindow, + deep = true, + triggerOnRemoval = false + } = options; + const document2 = (_a = options.document) != null ? _a : window2 == null ? void 0 : window2.document; + const getDeepActiveElement = () => { + var _a2; + let element = document2 == null ? void 0 : document2.activeElement; + if (deep) { + while (element == null ? void 0 : element.shadowRoot) + element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement; + } + return element; + }; + const activeElement = ref(); + const trigger = () => { + activeElement.value = getDeepActiveElement(); + }; + if (window2) { + useEventListener(window2, "blur", (event) => { + if (event.relatedTarget !== null) + return; + trigger(); + }, true); + useEventListener(window2, "focus", trigger, true); + } + if (triggerOnRemoval) { + useMutationObserver(document2, (mutations) => { + mutations.filter((m) => m.removedNodes.length).map((n) => Array.from(n.removedNodes)).flat().forEach((node) => { + if (node === activeElement.value) + trigger(); + }); + }, { + childList: true, + subtree: true + }); + } + trigger(); + return activeElement; +} +function useRafFn(fn, options = {}) { + const { + immediate = true, + fpsLimit = void 0, + window: window2 = defaultWindow + } = options; + const isActive = ref(false); + const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null; + let previousFrameTimestamp = 0; + let rafId = null; + function loop(timestamp2) { + if (!isActive.value || !window2) + return; + if (!previousFrameTimestamp) + previousFrameTimestamp = timestamp2; + const delta = timestamp2 - previousFrameTimestamp; + if (intervalLimit && delta < intervalLimit) { + rafId = window2.requestAnimationFrame(loop); + return; + } + previousFrameTimestamp = timestamp2; + fn({ delta, timestamp: timestamp2 }); + rafId = window2.requestAnimationFrame(loop); + } + function resume() { + if (!isActive.value && window2) { + isActive.value = true; + previousFrameTimestamp = 0; + rafId = window2.requestAnimationFrame(loop); + } + } + function pause() { + isActive.value = false; + if (rafId != null && window2) { + window2.cancelAnimationFrame(rafId); + rafId = null; + } + } + if (immediate) + resume(); + tryOnScopeDispose(pause); + return { + isActive: readonly(isActive), + pause, + resume + }; +} +function useAnimate(target, keyframes, options) { + let config; + let animateOptions; + if (isObject(options)) { + config = options; + animateOptions = objectOmit(options, ["window", "immediate", "commitStyles", "persist", "onReady", "onError"]); + } else { + config = { duration: options }; + animateOptions = options; + } + const { + window: window2 = defaultWindow, + immediate = true, + commitStyles, + persist, + playbackRate: _playbackRate = 1, + onReady, + onError = (e) => { + console.error(e); + } + } = config; + const isSupported = useSupported(() => window2 && HTMLElement && "animate" in HTMLElement.prototype); + const animate = shallowRef(void 0); + const store = shallowReactive({ + startTime: null, + currentTime: null, + timeline: null, + playbackRate: _playbackRate, + pending: false, + playState: immediate ? "idle" : "paused", + replaceState: "active" + }); + const pending = computed(() => store.pending); + const playState = computed(() => store.playState); + const replaceState = computed(() => store.replaceState); + const startTime = computed({ + get() { + return store.startTime; + }, + set(value) { + store.startTime = value; + if (animate.value) + animate.value.startTime = value; + } + }); + const currentTime = computed({ + get() { + return store.currentTime; + }, + set(value) { + store.currentTime = value; + if (animate.value) { + animate.value.currentTime = value; + syncResume(); + } + } + }); + const timeline = computed({ + get() { + return store.timeline; + }, + set(value) { + store.timeline = value; + if (animate.value) + animate.value.timeline = value; + } + }); + const playbackRate = computed({ + get() { + return store.playbackRate; + }, + set(value) { + store.playbackRate = value; + if (animate.value) + animate.value.playbackRate = value; + } + }); + const play = () => { + if (animate.value) { + try { + animate.value.play(); + syncResume(); + } catch (e) { + syncPause(); + onError(e); + } + } else { + update(); + } + }; + const pause = () => { + var _a; + try { + (_a = animate.value) == null ? void 0 : _a.pause(); + syncPause(); + } catch (e) { + onError(e); + } + }; + const reverse = () => { + var _a; + !animate.value && update(); + try { + (_a = animate.value) == null ? void 0 : _a.reverse(); + syncResume(); + } catch (e) { + syncPause(); + onError(e); + } + }; + const finish = () => { + var _a; + try { + (_a = animate.value) == null ? void 0 : _a.finish(); + syncPause(); + } catch (e) { + onError(e); + } + }; + const cancel = () => { + var _a; + try { + (_a = animate.value) == null ? void 0 : _a.cancel(); + syncPause(); + } catch (e) { + onError(e); + } + }; + watch(() => unrefElement(target), (el) => { + el && update(); + }); + watch(() => keyframes, (value) => { + !animate.value && update(); + if (!unrefElement(target) && animate.value) { + animate.value.effect = new KeyframeEffect( + unrefElement(target), + toValue(value), + animateOptions + ); + } + }, { deep: true }); + tryOnMounted(() => { + nextTick(() => update(true)); + }); + tryOnScopeDispose(cancel); + function update(init) { + const el = unrefElement(target); + if (!isSupported.value || !el) + return; + if (!animate.value) + animate.value = el.animate(toValue(keyframes), animateOptions); + if (persist) + animate.value.persist(); + if (_playbackRate !== 1) + animate.value.playbackRate = _playbackRate; + if (init && !immediate) + animate.value.pause(); + else + syncResume(); + onReady == null ? void 0 : onReady(animate.value); + } + useEventListener(animate, ["cancel", "finish", "remove"], syncPause); + useEventListener(animate, "finish", () => { + var _a; + if (commitStyles) + (_a = animate.value) == null ? void 0 : _a.commitStyles(); + }); + const { resume: resumeRef, pause: pauseRef } = useRafFn(() => { + if (!animate.value) + return; + store.pending = animate.value.pending; + store.playState = animate.value.playState; + store.replaceState = animate.value.replaceState; + store.startTime = animate.value.startTime; + store.currentTime = animate.value.currentTime; + store.timeline = animate.value.timeline; + store.playbackRate = animate.value.playbackRate; + }, { immediate: false }); + function syncResume() { + if (isSupported.value) + resumeRef(); + } + function syncPause() { + if (isSupported.value && window2) + window2.requestAnimationFrame(pauseRef); + } + return { + isSupported, + animate, + // actions + play, + pause, + reverse, + finish, + cancel, + // state + pending, + playState, + replaceState, + startTime, + currentTime, + timeline, + playbackRate + }; +} +function useAsyncQueue(tasks, options) { + const { + interrupt = true, + onError = noop, + onFinished = noop, + signal + } = options || {}; + const promiseState = { + aborted: "aborted", + fulfilled: "fulfilled", + pending: "pending", + rejected: "rejected" + }; + const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null })); + const result = reactive(initialResult); + const activeIndex = ref(-1); + if (!tasks || tasks.length === 0) { + onFinished(); + return { + activeIndex, + result + }; + } + function updateResult(state, res) { + activeIndex.value++; + result[activeIndex.value].data = res; + result[activeIndex.value].state = state; + } + tasks.reduce((prev, curr) => { + return prev.then((prevRes) => { + var _a; + if (signal == null ? void 0 : signal.aborted) { + updateResult(promiseState.aborted, new Error("aborted")); + return; + } + if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) { + onFinished(); + return; + } + const done = curr(prevRes).then((currentRes) => { + updateResult(promiseState.fulfilled, currentRes); + activeIndex.value === tasks.length - 1 && onFinished(); + return currentRes; + }); + if (!signal) + return done; + return Promise.race([done, whenAborted(signal)]); + }).catch((e) => { + if (signal == null ? void 0 : signal.aborted) { + updateResult(promiseState.aborted, e); + return e; + } + updateResult(promiseState.rejected, e); + onError(); + return e; + }); + }, Promise.resolve()); + return { + activeIndex, + result + }; +} +function whenAborted(signal) { + return new Promise((resolve, reject) => { + const error = new Error("aborted"); + if (signal.aborted) + reject(error); + else + signal.addEventListener("abort", () => reject(error), { once: true }); + }); +} +function useAsyncState(promise, initialState, options) { + const { + immediate = true, + delay = 0, + onError = noop, + onSuccess = noop, + resetOnExecute = true, + shallow = true, + throwError + } = options != null ? options : {}; + const state = shallow ? shallowRef(initialState) : ref(initialState); + const isReady = ref(false); + const isLoading = ref(false); + const error = shallowRef(void 0); + async function execute(delay2 = 0, ...args) { + if (resetOnExecute) + state.value = initialState; + error.value = void 0; + isReady.value = false; + isLoading.value = true; + if (delay2 > 0) + await promiseTimeout(delay2); + const _promise = typeof promise === "function" ? promise(...args) : promise; + try { + const data = await _promise; + state.value = data; + isReady.value = true; + onSuccess(data); + } catch (e) { + error.value = e; + onError(e); + if (throwError) + throw e; + } finally { + isLoading.value = false; + } + return state.value; + } + if (immediate) + execute(delay); + const shell = { + state, + isReady, + isLoading, + error, + execute + }; + function waitUntilIsLoaded() { + return new Promise((resolve, reject) => { + until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject); + }); + } + return { + ...shell, + then(onFulfilled, onRejected) { + return waitUntilIsLoaded().then(onFulfilled, onRejected); + } + }; +} +var defaults = { + array: (v) => JSON.stringify(v), + object: (v) => JSON.stringify(v), + set: (v) => JSON.stringify(Array.from(v)), + map: (v) => JSON.stringify(Object.fromEntries(v)), + null: () => "" +}; +function getDefaultSerialization(target) { + if (!target) + return defaults.null; + if (target instanceof Map) + return defaults.map; + else if (target instanceof Set) + return defaults.set; + else if (Array.isArray(target)) + return defaults.array; + else + return defaults.object; +} +function useBase64(target, options) { + const base64 = ref(""); + const promise = ref(); + function execute() { + if (!isClient) + return; + promise.value = new Promise((resolve, reject) => { + try { + const _target = toValue(target); + if (_target == null) { + resolve(""); + } else if (typeof _target === "string") { + resolve(blobToBase64(new Blob([_target], { type: "text/plain" }))); + } else if (_target instanceof Blob) { + resolve(blobToBase64(_target)); + } else if (_target instanceof ArrayBuffer) { + resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target)))); + } else if (_target instanceof HTMLCanvasElement) { + resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality)); + } else if (_target instanceof HTMLImageElement) { + const img = _target.cloneNode(false); + img.crossOrigin = "Anonymous"; + imgLoaded(img).then(() => { + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d"); + canvas.width = img.width; + canvas.height = img.height; + ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality)); + }).catch(reject); + } else if (typeof _target === "object") { + const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target); + const serialized = _serializeFn(_target); + return resolve(blobToBase64(new Blob([serialized], { type: "application/json" }))); + } else { + reject(new Error("target is unsupported types")); + } + } catch (error) { + reject(error); + } + }); + promise.value.then((res) => base64.value = res); + return promise.value; + } + if (isRef(target) || typeof target === "function") + watch(target, execute, { immediate: true }); + else + execute(); + return { + base64, + promise, + execute + }; +} +function imgLoaded(img) { + return new Promise((resolve, reject) => { + if (!img.complete) { + img.onload = () => { + resolve(); + }; + img.onerror = reject; + } else { + resolve(); + } + }); +} +function blobToBase64(blob) { + return new Promise((resolve, reject) => { + const fr = new FileReader(); + fr.onload = (e) => { + resolve(e.target.result); + }; + fr.onerror = reject; + fr.readAsDataURL(blob); + }); +} +function useBattery(options = {}) { + const { navigator = defaultNavigator } = options; + const events2 = ["chargingchange", "chargingtimechange", "dischargingtimechange", "levelchange"]; + const isSupported = useSupported(() => navigator && "getBattery" in navigator && typeof navigator.getBattery === "function"); + const charging = ref(false); + const chargingTime = ref(0); + const dischargingTime = ref(0); + const level = ref(1); + let battery; + function updateBatteryInfo() { + charging.value = this.charging; + chargingTime.value = this.chargingTime || 0; + dischargingTime.value = this.dischargingTime || 0; + level.value = this.level; + } + if (isSupported.value) { + navigator.getBattery().then((_battery) => { + battery = _battery; + updateBatteryInfo.call(battery); + useEventListener(battery, events2, updateBatteryInfo, { passive: true }); + }); + } + return { + isSupported, + charging, + chargingTime, + dischargingTime, + level + }; +} +function useBluetooth(options) { + let { + acceptAllDevices = false + } = options || {}; + const { + filters = void 0, + optionalServices = void 0, + navigator = defaultNavigator + } = options || {}; + const isSupported = useSupported(() => navigator && "bluetooth" in navigator); + const device = shallowRef(void 0); + const error = shallowRef(null); + watch(device, () => { + connectToBluetoothGATTServer(); + }); + async function requestDevice() { + if (!isSupported.value) + return; + error.value = null; + if (filters && filters.length > 0) + acceptAllDevices = false; + try { + device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({ + acceptAllDevices, + filters, + optionalServices + })); + } catch (err) { + error.value = err; + } + } + const server = ref(); + const isConnected = computed(() => { + var _a; + return ((_a = server.value) == null ? void 0 : _a.connected) || false; + }); + async function connectToBluetoothGATTServer() { + error.value = null; + if (device.value && device.value.gatt) { + device.value.addEventListener("gattserverdisconnected", () => { + }); + try { + server.value = await device.value.gatt.connect(); + } catch (err) { + error.value = err; + } + } + } + tryOnMounted(() => { + var _a; + if (device.value) + (_a = device.value.gatt) == null ? void 0 : _a.connect(); + }); + tryOnScopeDispose(() => { + var _a; + if (device.value) + (_a = device.value.gatt) == null ? void 0 : _a.disconnect(); + }); + return { + isSupported, + isConnected, + // Device: + device, + requestDevice, + // Server: + server, + // Errors: + error + }; +} +function useMediaQuery(query, options = {}) { + const { window: window2 = defaultWindow } = options; + const isSupported = useSupported(() => window2 && "matchMedia" in window2 && typeof window2.matchMedia === "function"); + let mediaQuery; + const matches = ref(false); + const handler = (event) => { + matches.value = event.matches; + }; + const cleanup = () => { + if (!mediaQuery) + return; + if ("removeEventListener" in mediaQuery) + mediaQuery.removeEventListener("change", handler); + else + mediaQuery.removeListener(handler); + }; + const stopWatch = watchEffect(() => { + if (!isSupported.value) + return; + cleanup(); + mediaQuery = window2.matchMedia(toValue(query)); + if ("addEventListener" in mediaQuery) + mediaQuery.addEventListener("change", handler); + else + mediaQuery.addListener(handler); + matches.value = mediaQuery.matches; + }); + tryOnScopeDispose(() => { + stopWatch(); + cleanup(); + mediaQuery = void 0; + }); + return matches; +} +var breakpointsTailwind = { + "sm": 640, + "md": 768, + "lg": 1024, + "xl": 1280, + "2xl": 1536 +}; +var breakpointsBootstrapV5 = { + xs: 0, + sm: 576, + md: 768, + lg: 992, + xl: 1200, + xxl: 1400 +}; +var breakpointsVuetifyV2 = { + xs: 0, + sm: 600, + md: 960, + lg: 1264, + xl: 1904 +}; +var breakpointsVuetifyV3 = { + xs: 0, + sm: 600, + md: 960, + lg: 1280, + xl: 1920, + xxl: 2560 +}; +var breakpointsVuetify = breakpointsVuetifyV2; +var breakpointsAntDesign = { + xs: 480, + sm: 576, + md: 768, + lg: 992, + xl: 1200, + xxl: 1600 +}; +var breakpointsQuasar = { + xs: 0, + sm: 600, + md: 1024, + lg: 1440, + xl: 1920 +}; +var breakpointsSematic = { + mobileS: 320, + mobileM: 375, + mobileL: 425, + tablet: 768, + laptop: 1024, + laptopL: 1440, + desktop4K: 2560 +}; +var breakpointsMasterCss = { + "3xs": 360, + "2xs": 480, + "xs": 600, + "sm": 768, + "md": 1024, + "lg": 1280, + "xl": 1440, + "2xl": 1600, + "3xl": 1920, + "4xl": 2560 +}; +var breakpointsPrimeFlex = { + sm: 576, + md: 768, + lg: 992, + xl: 1200 +}; +function useBreakpoints(breakpoints, options = {}) { + function getValue2(k, delta) { + let v = toValue(breakpoints[toValue(k)]); + if (delta != null) + v = increaseWithUnit(v, delta); + if (typeof v === "number") + v = `${v}px`; + return v; + } + const { window: window2 = defaultWindow, strategy = "min-width" } = options; + function match(query) { + if (!window2) + return false; + return window2.matchMedia(query).matches; + } + const greaterOrEqual = (k) => { + return useMediaQuery(() => `(min-width: ${getValue2(k)})`, options); + }; + const smallerOrEqual = (k) => { + return useMediaQuery(() => `(max-width: ${getValue2(k)})`, options); + }; + const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => { + Object.defineProperty(shortcuts, k, { + get: () => strategy === "min-width" ? greaterOrEqual(k) : smallerOrEqual(k), + enumerable: true, + configurable: true + }); + return shortcuts; + }, {}); + function current() { + const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]); + return computed(() => points.filter(([, v]) => v.value).map(([k]) => k)); + } + return Object.assign(shortcutMethods, { + greaterOrEqual, + smallerOrEqual, + greater(k) { + return useMediaQuery(() => `(min-width: ${getValue2(k, 0.1)})`, options); + }, + smaller(k) { + return useMediaQuery(() => `(max-width: ${getValue2(k, -0.1)})`, options); + }, + between(a, b) { + return useMediaQuery(() => `(min-width: ${getValue2(a)}) and (max-width: ${getValue2(b, -0.1)})`, options); + }, + isGreater(k) { + return match(`(min-width: ${getValue2(k, 0.1)})`); + }, + isGreaterOrEqual(k) { + return match(`(min-width: ${getValue2(k)})`); + }, + isSmaller(k) { + return match(`(max-width: ${getValue2(k, -0.1)})`); + }, + isSmallerOrEqual(k) { + return match(`(max-width: ${getValue2(k)})`); + }, + isInBetween(a, b) { + return match(`(min-width: ${getValue2(a)}) and (max-width: ${getValue2(b, -0.1)})`); + }, + current, + active() { + const bps = current(); + return computed(() => bps.value.length === 0 ? "" : bps.value.at(-1)); + } + }); +} +function useBroadcastChannel(options) { + const { + name, + window: window2 = defaultWindow + } = options; + const isSupported = useSupported(() => window2 && "BroadcastChannel" in window2); + const isClosed = ref(false); + const channel = ref(); + const data = ref(); + const error = shallowRef(null); + const post = (data2) => { + if (channel.value) + channel.value.postMessage(data2); + }; + const close = () => { + if (channel.value) + channel.value.close(); + isClosed.value = true; + }; + if (isSupported.value) { + tryOnMounted(() => { + error.value = null; + channel.value = new BroadcastChannel(name); + channel.value.addEventListener("message", (e) => { + data.value = e.data; + }, { passive: true }); + channel.value.addEventListener("messageerror", (e) => { + error.value = e; + }, { passive: true }); + channel.value.addEventListener("close", () => { + isClosed.value = true; + }); + }); + } + tryOnScopeDispose(() => { + close(); + }); + return { + isSupported, + channel, + data, + post, + close, + error, + isClosed + }; +} +var WRITABLE_PROPERTIES = [ + "hash", + "host", + "hostname", + "href", + "pathname", + "port", + "protocol", + "search" +]; +function useBrowserLocation(options = {}) { + const { window: window2 = defaultWindow } = options; + const refs = Object.fromEntries( + WRITABLE_PROPERTIES.map((key) => [key, ref()]) + ); + for (const [key, ref2] of objectEntries(refs)) { + watch(ref2, (value) => { + if (!(window2 == null ? void 0 : window2.location) || window2.location[key] === value) + return; + window2.location[key] = value; + }); + } + const buildState = (trigger) => { + var _a; + const { state: state2, length } = (window2 == null ? void 0 : window2.history) || {}; + const { origin } = (window2 == null ? void 0 : window2.location) || {}; + for (const key of WRITABLE_PROPERTIES) + refs[key].value = (_a = window2 == null ? void 0 : window2.location) == null ? void 0 : _a[key]; + return reactive({ + trigger, + state: state2, + length, + origin, + ...refs + }); + }; + const state = ref(buildState("load")); + if (window2) { + useEventListener(window2, "popstate", () => state.value = buildState("popstate"), { passive: true }); + useEventListener(window2, "hashchange", () => state.value = buildState("hashchange"), { passive: true }); + } + return state; +} +function useCached(refValue, comparator = (a, b) => a === b, watchOptions) { + const cachedValue = ref(refValue.value); + watch(() => refValue.value, (value) => { + if (!comparator(value, cachedValue.value)) + cachedValue.value = value; + }, watchOptions); + return cachedValue; +} +function usePermission(permissionDesc, options = {}) { + const { + controls = false, + navigator = defaultNavigator + } = options; + const isSupported = useSupported(() => navigator && "permissions" in navigator); + let permissionStatus; + const desc = typeof permissionDesc === "string" ? { name: permissionDesc } : permissionDesc; + const state = ref(); + const onChange = () => { + if (permissionStatus) + state.value = permissionStatus.state; + }; + const query = createSingletonPromise(async () => { + if (!isSupported.value) + return; + if (!permissionStatus) { + try { + permissionStatus = await navigator.permissions.query(desc); + useEventListener(permissionStatus, "change", onChange); + onChange(); + } catch (e) { + state.value = "prompt"; + } + } + return permissionStatus; + }); + query(); + if (controls) { + return { + state, + isSupported, + query + }; + } else { + return state; + } +} +function useClipboard(options = {}) { + const { + navigator = defaultNavigator, + read = false, + source, + copiedDuring = 1500, + legacy = false + } = options; + const isClipboardApiSupported = useSupported(() => navigator && "clipboard" in navigator); + const permissionRead = usePermission("clipboard-read"); + const permissionWrite = usePermission("clipboard-write"); + const isSupported = computed(() => isClipboardApiSupported.value || legacy); + const text = ref(""); + const copied = ref(false); + const timeout = useTimeoutFn(() => copied.value = false, copiedDuring); + function updateText() { + if (isClipboardApiSupported.value && isAllowed(permissionRead.value)) { + navigator.clipboard.readText().then((value) => { + text.value = value; + }); + } else { + text.value = legacyRead(); + } + } + if (isSupported.value && read) + useEventListener(["copy", "cut"], updateText); + async function copy(value = toValue(source)) { + if (isSupported.value && value != null) { + if (isClipboardApiSupported.value && isAllowed(permissionWrite.value)) + await navigator.clipboard.writeText(value); + else + legacyCopy(value); + text.value = value; + copied.value = true; + timeout.start(); + } + } + function legacyCopy(value) { + const ta = document.createElement("textarea"); + ta.value = value != null ? value : ""; + ta.style.position = "absolute"; + ta.style.opacity = "0"; + document.body.appendChild(ta); + ta.select(); + document.execCommand("copy"); + ta.remove(); + } + function legacyRead() { + var _a, _b, _c; + return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : ""; + } + function isAllowed(status) { + return status === "granted" || status === "prompt"; + } + return { + isSupported, + text, + copied, + copy + }; +} +function useClipboardItems(options = {}) { + const { + navigator = defaultNavigator, + read = false, + source, + copiedDuring = 1500 + } = options; + const isSupported = useSupported(() => navigator && "clipboard" in navigator); + const content = ref([]); + const copied = ref(false); + const timeout = useTimeoutFn(() => copied.value = false, copiedDuring); + function updateContent() { + if (isSupported.value) { + navigator.clipboard.read().then((items) => { + content.value = items; + }); + } + } + if (isSupported.value && read) + useEventListener(["copy", "cut"], updateContent); + async function copy(value = toValue(source)) { + if (isSupported.value && value != null) { + await navigator.clipboard.write(value); + content.value = value; + copied.value = true; + timeout.start(); + } + } + return { + isSupported, + content, + copied, + copy + }; +} +function cloneFnJSON(source) { + return JSON.parse(JSON.stringify(source)); +} +function useCloned(source, options = {}) { + const cloned = ref({}); + const { + manual, + clone = cloneFnJSON, + // watch options + deep = true, + immediate = true + } = options; + function sync() { + cloned.value = clone(toValue(source)); + } + if (!manual && (isRef(source) || typeof source === "function")) { + watch(source, sync, { + ...options, + deep, + immediate + }); + } else { + sync(); + } + return { cloned, sync }; +} +var _global = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; +var globalKey = "__vueuse_ssr_handlers__"; +var handlers = getHandlers(); +function getHandlers() { + if (!(globalKey in _global)) + _global[globalKey] = _global[globalKey] || {}; + return _global[globalKey]; +} +function getSSRHandler(key, fallback) { + return handlers[key] || fallback; +} +function setSSRHandler(key, fn) { + handlers[key] = fn; +} +function guessSerializerType(rawInit) { + return rawInit == null ? "any" : rawInit instanceof Set ? "set" : rawInit instanceof Map ? "map" : rawInit instanceof Date ? "date" : typeof rawInit === "boolean" ? "boolean" : typeof rawInit === "string" ? "string" : typeof rawInit === "object" ? "object" : !Number.isNaN(rawInit) ? "number" : "any"; +} +var StorageSerializers = { + boolean: { + read: (v) => v === "true", + write: (v) => String(v) + }, + object: { + read: (v) => JSON.parse(v), + write: (v) => JSON.stringify(v) + }, + number: { + read: (v) => Number.parseFloat(v), + write: (v) => String(v) + }, + any: { + read: (v) => v, + write: (v) => String(v) + }, + string: { + read: (v) => v, + write: (v) => String(v) + }, + map: { + read: (v) => new Map(JSON.parse(v)), + write: (v) => JSON.stringify(Array.from(v.entries())) + }, + set: { + read: (v) => new Set(JSON.parse(v)), + write: (v) => JSON.stringify(Array.from(v)) + }, + date: { + read: (v) => new Date(v), + write: (v) => v.toISOString() + } +}; +var customStorageEventName = "vueuse-storage"; +function useStorage(key, defaults2, storage, options = {}) { + var _a; + const { + flush = "pre", + deep = true, + listenToStorageChanges = true, + writeDefaults = true, + mergeDefaults = false, + shallow, + window: window2 = defaultWindow, + eventFilter, + onError = (e) => { + console.error(e); + }, + initOnMounted + } = options; + const data = (shallow ? shallowRef : ref)(typeof defaults2 === "function" ? defaults2() : defaults2); + if (!storage) { + try { + storage = getSSRHandler("getDefaultStorage", () => { + var _a2; + return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage; + })(); + } catch (e) { + onError(e); + } + } + if (!storage) + return data; + const rawInit = toValue(defaults2); + const type = guessSerializerType(rawInit); + const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type]; + const { pause: pauseWatch, resume: resumeWatch } = watchPausable( + data, + () => write(data.value), + { flush, deep, eventFilter } + ); + if (window2 && listenToStorageChanges) { + tryOnMounted(() => { + useEventListener(window2, "storage", update); + useEventListener(window2, customStorageEventName, updateFromCustomEvent); + if (initOnMounted) + update(); + }); + } + if (!initOnMounted) + update(); + function dispatchWriteEvent(oldValue, newValue) { + if (window2) { + window2.dispatchEvent(new CustomEvent(customStorageEventName, { + detail: { + key, + oldValue, + newValue, + storageArea: storage + } + })); + } + } + function write(v) { + try { + const oldValue = storage.getItem(key); + if (v == null) { + dispatchWriteEvent(oldValue, null); + storage.removeItem(key); + } else { + const serialized = serializer.write(v); + if (oldValue !== serialized) { + storage.setItem(key, serialized); + dispatchWriteEvent(oldValue, serialized); + } + } + } catch (e) { + onError(e); + } + } + function read(event) { + const rawValue = event ? event.newValue : storage.getItem(key); + if (rawValue == null) { + if (writeDefaults && rawInit != null) + storage.setItem(key, serializer.write(rawInit)); + return rawInit; + } else if (!event && mergeDefaults) { + const value = serializer.read(rawValue); + if (typeof mergeDefaults === "function") + return mergeDefaults(value, rawInit); + else if (type === "object" && !Array.isArray(value)) + return { ...rawInit, ...value }; + return value; + } else if (typeof rawValue !== "string") { + return rawValue; + } else { + return serializer.read(rawValue); + } + } + function update(event) { + if (event && event.storageArea !== storage) + return; + if (event && event.key == null) { + data.value = rawInit; + return; + } + if (event && event.key !== key) + return; + pauseWatch(); + try { + if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value)) + data.value = read(event); + } catch (e) { + onError(e); + } finally { + if (event) + nextTick(resumeWatch); + else + resumeWatch(); + } + } + function updateFromCustomEvent(event) { + update(event.detail); + } + return data; +} +function usePreferredDark(options) { + return useMediaQuery("(prefers-color-scheme: dark)", options); +} +function useColorMode(options = {}) { + const { + selector = "html", + attribute = "class", + initialValue = "auto", + window: window2 = defaultWindow, + storage, + storageKey = "vueuse-color-scheme", + listenToStorageChanges = true, + storageRef, + emitAuto, + disableTransition = true + } = options; + const modes = { + auto: "", + light: "light", + dark: "dark", + ...options.modes || {} + }; + const preferredDark = usePreferredDark({ window: window2 }); + const system = computed(() => preferredDark.value ? "dark" : "light"); + const store = storageRef || (storageKey == null ? toRef2(initialValue) : useStorage(storageKey, initialValue, storage, { window: window2, listenToStorageChanges })); + const state = computed(() => store.value === "auto" ? system.value : store.value); + const updateHTMLAttrs = getSSRHandler( + "updateHTMLAttrs", + (selector2, attribute2, value) => { + const el = typeof selector2 === "string" ? window2 == null ? void 0 : window2.document.querySelector(selector2) : unrefElement(selector2); + if (!el) + return; + let style; + if (disableTransition) { + style = window2.document.createElement("style"); + const styleString = "*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}"; + style.appendChild(document.createTextNode(styleString)); + window2.document.head.appendChild(style); + } + if (attribute2 === "class") { + const current = value.split(/\s/g); + Object.values(modes).flatMap((i) => (i || "").split(/\s/g)).filter(Boolean).forEach((v) => { + if (current.includes(v)) + el.classList.add(v); + else + el.classList.remove(v); + }); + } else { + el.setAttribute(attribute2, value); + } + if (disableTransition) { + window2.getComputedStyle(style).opacity; + document.head.removeChild(style); + } + } + ); + function defaultOnChanged(mode) { + var _a; + updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode); + } + function onChanged(mode) { + if (options.onChanged) + options.onChanged(mode, defaultOnChanged); + else + defaultOnChanged(mode); + } + watch(state, onChanged, { flush: "post", immediate: true }); + tryOnMounted(() => onChanged(state.value)); + const auto = computed({ + get() { + return emitAuto ? store.value : state.value; + }, + set(v) { + store.value = v; + } + }); + try { + return Object.assign(auto, { store, system, state }); + } catch (e) { + return auto; + } +} +function useConfirmDialog(revealed = ref(false)) { + const confirmHook = createEventHook(); + const cancelHook = createEventHook(); + const revealHook = createEventHook(); + let _resolve = noop; + const reveal = (data) => { + revealHook.trigger(data); + revealed.value = true; + return new Promise((resolve) => { + _resolve = resolve; + }); + }; + const confirm = (data) => { + revealed.value = false; + confirmHook.trigger(data); + _resolve({ data, isCanceled: false }); + }; + const cancel = (data) => { + revealed.value = false; + cancelHook.trigger(data); + _resolve({ data, isCanceled: true }); + }; + return { + isRevealed: computed(() => revealed.value), + reveal, + confirm, + cancel, + onReveal: revealHook.on, + onConfirm: confirmHook.on, + onCancel: cancelHook.on + }; +} +function useCssVar(prop, target, options = {}) { + const { window: window2 = defaultWindow, initialValue = "", observe = false } = options; + const variable = ref(initialValue); + const elRef = computed(() => { + var _a; + return unrefElement(target) || ((_a = window2 == null ? void 0 : window2.document) == null ? void 0 : _a.documentElement); + }); + function updateCssVar() { + var _a; + const key = toValue(prop); + const el = toValue(elRef); + if (el && window2) { + const value = (_a = window2.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim(); + variable.value = value || initialValue; + } + } + if (observe) { + useMutationObserver(elRef, updateCssVar, { + attributeFilter: ["style", "class"], + window: window2 + }); + } + watch( + [elRef, () => toValue(prop)], + updateCssVar, + { immediate: true } + ); + watch( + variable, + (val) => { + var _a; + if ((_a = elRef.value) == null ? void 0 : _a.style) + elRef.value.style.setProperty(toValue(prop), val); + } + ); + return variable; +} +function useCurrentElement(rootComponent) { + const vm = getCurrentInstance(); + const currentElement = computedWithControl( + () => null, + () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el + ); + onUpdated(currentElement.trigger); + onMounted(currentElement.trigger); + return currentElement; +} +function useCycleList(list, options) { + const state = shallowRef(getInitialValue()); + const listRef = toRef2(list); + const index = computed({ + get() { + var _a; + const targetList = listRef.value; + let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value); + if (index2 < 0) + index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0; + return index2; + }, + set(v) { + set3(v); + } + }); + function set3(i) { + const targetList = listRef.value; + const length = targetList.length; + const index2 = (i % length + length) % length; + const value = targetList[index2]; + state.value = value; + return value; + } + function shift(delta = 1) { + return set3(index.value + delta); + } + function next(n = 1) { + return shift(n); + } + function prev(n = 1) { + return shift(-n); + } + function getInitialValue() { + var _a, _b; + return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0; + } + watch(listRef, () => set3(index.value)); + return { + state, + index, + next, + prev, + go: set3 + }; +} +function useDark(options = {}) { + const { + valueDark = "dark", + valueLight = "", + window: window2 = defaultWindow + } = options; + const mode = useColorMode({ + ...options, + onChanged: (mode2, defaultHandler) => { + var _a; + if (options.onChanged) + (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === "dark", defaultHandler, mode2); + else + defaultHandler(mode2); + }, + modes: { + dark: valueDark, + light: valueLight + } + }); + const system = computed(() => { + if (mode.system) { + return mode.system.value; + } else { + const preferredDark = usePreferredDark({ window: window2 }); + return preferredDark.value ? "dark" : "light"; + } + }); + const isDark = computed({ + get() { + return mode.value === "dark"; + }, + set(v) { + const modeVal = v ? "dark" : "light"; + if (system.value === modeVal) + mode.value = "auto"; + else + mode.value = modeVal; + } + }); + return isDark; +} +function fnBypass(v) { + return v; +} +function fnSetSource(source, value) { + return source.value = value; +} +function defaultDump(clone) { + return clone ? typeof clone === "function" ? clone : cloneFnJSON : fnBypass; +} +function defaultParse(clone) { + return clone ? typeof clone === "function" ? clone : cloneFnJSON : fnBypass; +} +function useManualRefHistory(source, options = {}) { + const { + clone = false, + dump = defaultDump(clone), + parse = defaultParse(clone), + setSource = fnSetSource + } = options; + function _createHistoryRecord() { + return markRaw({ + snapshot: dump(source.value), + timestamp: timestamp() + }); + } + const last = ref(_createHistoryRecord()); + const undoStack = ref([]); + const redoStack = ref([]); + const _setSource = (record) => { + setSource(source, parse(record.snapshot)); + last.value = record; + }; + const commit = () => { + undoStack.value.unshift(last.value); + last.value = _createHistoryRecord(); + if (options.capacity && undoStack.value.length > options.capacity) + undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY); + if (redoStack.value.length) + redoStack.value.splice(0, redoStack.value.length); + }; + const clear = () => { + undoStack.value.splice(0, undoStack.value.length); + redoStack.value.splice(0, redoStack.value.length); + }; + const undo = () => { + const state = undoStack.value.shift(); + if (state) { + redoStack.value.unshift(last.value); + _setSource(state); + } + }; + const redo = () => { + const state = redoStack.value.shift(); + if (state) { + undoStack.value.unshift(last.value); + _setSource(state); + } + }; + const reset = () => { + _setSource(last.value); + }; + const history = computed(() => [last.value, ...undoStack.value]); + const canUndo = computed(() => undoStack.value.length > 0); + const canRedo = computed(() => redoStack.value.length > 0); + return { + source, + undoStack, + redoStack, + last, + history, + canUndo, + canRedo, + clear, + commit, + reset, + undo, + redo + }; +} +function useRefHistory(source, options = {}) { + const { + deep = false, + flush = "pre", + eventFilter + } = options; + const { + eventFilter: composedFilter, + pause, + resume: resumeTracking, + isActive: isTracking + } = pausableFilter(eventFilter); + const { + ignoreUpdates, + ignorePrevAsyncUpdates, + stop + } = watchIgnorable( + source, + commit, + { deep, flush, eventFilter: composedFilter } + ); + function setSource(source2, value) { + ignorePrevAsyncUpdates(); + ignoreUpdates(() => { + source2.value = value; + }); + } + const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource }); + const { clear, commit: manualCommit } = manualHistory; + function commit() { + ignorePrevAsyncUpdates(); + manualCommit(); + } + function resume(commitNow) { + resumeTracking(); + if (commitNow) + commit(); + } + function batch(fn) { + let canceled = false; + const cancel = () => canceled = true; + ignoreUpdates(() => { + fn(cancel); + }); + if (!canceled) + commit(); + } + function dispose() { + stop(); + clear(); + } + return { + ...manualHistory, + isTracking, + pause, + resume, + commit, + batch, + dispose + }; +} +function useDebouncedRefHistory(source, options = {}) { + const filter = options.debounce ? debounceFilter(options.debounce) : void 0; + const history = useRefHistory(source, { ...options, eventFilter: filter }); + return { + ...history + }; +} +function useDeviceMotion(options = {}) { + const { + window: window2 = defaultWindow, + eventFilter = bypassFilter + } = options; + const acceleration = ref({ x: null, y: null, z: null }); + const rotationRate = ref({ alpha: null, beta: null, gamma: null }); + const interval = ref(0); + const accelerationIncludingGravity = ref({ + x: null, + y: null, + z: null + }); + if (window2) { + const onDeviceMotion = createFilterWrapper( + eventFilter, + (event) => { + acceleration.value = event.acceleration; + accelerationIncludingGravity.value = event.accelerationIncludingGravity; + rotationRate.value = event.rotationRate; + interval.value = event.interval; + } + ); + useEventListener(window2, "devicemotion", onDeviceMotion); + } + return { + acceleration, + accelerationIncludingGravity, + rotationRate, + interval + }; +} +function useDeviceOrientation(options = {}) { + const { window: window2 = defaultWindow } = options; + const isSupported = useSupported(() => window2 && "DeviceOrientationEvent" in window2); + const isAbsolute = ref(false); + const alpha = ref(null); + const beta = ref(null); + const gamma = ref(null); + if (window2 && isSupported.value) { + useEventListener(window2, "deviceorientation", (event) => { + isAbsolute.value = event.absolute; + alpha.value = event.alpha; + beta.value = event.beta; + gamma.value = event.gamma; + }); + } + return { + isSupported, + isAbsolute, + alpha, + beta, + gamma + }; +} +function useDevicePixelRatio(options = {}) { + const { + window: window2 = defaultWindow + } = options; + const pixelRatio = ref(1); + if (window2) { + let observe2 = function() { + pixelRatio.value = window2.devicePixelRatio; + cleanup2(); + media = window2.matchMedia(`(resolution: ${pixelRatio.value}dppx)`); + media.addEventListener("change", observe2, { once: true }); + }, cleanup2 = function() { + media == null ? void 0 : media.removeEventListener("change", observe2); + }; + let media; + observe2(); + tryOnScopeDispose(cleanup2); + } + return { pixelRatio }; +} +function useDevicesList(options = {}) { + const { + navigator = defaultNavigator, + requestPermissions = false, + constraints = { audio: true, video: true }, + onUpdated: onUpdated2 + } = options; + const devices = ref([]); + const videoInputs = computed(() => devices.value.filter((i) => i.kind === "videoinput")); + const audioInputs = computed(() => devices.value.filter((i) => i.kind === "audioinput")); + const audioOutputs = computed(() => devices.value.filter((i) => i.kind === "audiooutput")); + const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices); + const permissionGranted = ref(false); + let stream; + async function update() { + if (!isSupported.value) + return; + devices.value = await navigator.mediaDevices.enumerateDevices(); + onUpdated2 == null ? void 0 : onUpdated2(devices.value); + if (stream) { + stream.getTracks().forEach((t) => t.stop()); + stream = null; + } + } + async function ensurePermissions() { + if (!isSupported.value) + return false; + if (permissionGranted.value) + return true; + const { state, query } = usePermission("camera", { controls: true }); + await query(); + if (state.value !== "granted") { + stream = await navigator.mediaDevices.getUserMedia(constraints); + update(); + permissionGranted.value = true; + } else { + permissionGranted.value = true; + } + return permissionGranted.value; + } + if (isSupported.value) { + if (requestPermissions) + ensurePermissions(); + useEventListener(navigator.mediaDevices, "devicechange", update); + update(); + } + return { + devices, + ensurePermissions, + permissionGranted, + videoInputs, + audioInputs, + audioOutputs, + isSupported + }; +} +function useDisplayMedia(options = {}) { + var _a; + const enabled = ref((_a = options.enabled) != null ? _a : false); + const video = options.video; + const audio = options.audio; + const { navigator = defaultNavigator } = options; + const isSupported = useSupported(() => { + var _a2; + return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia; + }); + const constraint = { audio, video }; + const stream = shallowRef(); + async function _start() { + var _a2; + if (!isSupported.value || stream.value) + return; + stream.value = await navigator.mediaDevices.getDisplayMedia(constraint); + (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.addEventListener("ended", stop)); + return stream.value; + } + async function _stop() { + var _a2; + (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop()); + stream.value = void 0; + } + function stop() { + _stop(); + enabled.value = false; + } + async function start() { + await _start(); + if (stream.value) + enabled.value = true; + return stream.value; + } + watch( + enabled, + (v) => { + if (v) + _start(); + else + _stop(); + }, + { immediate: true } + ); + return { + isSupported, + stream, + start, + stop, + enabled + }; +} +function useDocumentVisibility(options = {}) { + const { document: document2 = defaultDocument } = options; + if (!document2) + return ref("visible"); + const visibility = ref(document2.visibilityState); + useEventListener(document2, "visibilitychange", () => { + visibility.value = document2.visibilityState; + }); + return visibility; +} +function useDraggable(target, options = {}) { + var _a, _b; + const { + pointerTypes, + preventDefault: preventDefault2, + stopPropagation, + exact, + onMove, + onEnd, + onStart, + initialValue, + axis = "both", + draggingElement = defaultWindow, + containerElement, + handle: draggingHandle = target + } = options; + const position = ref( + (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 } + ); + const pressedDelta = ref(); + const filterEvent = (e) => { + if (pointerTypes) + return pointerTypes.includes(e.pointerType); + return true; + }; + const handleEvent = (e) => { + if (toValue(preventDefault2)) + e.preventDefault(); + if (toValue(stopPropagation)) + e.stopPropagation(); + }; + const start = (e) => { + var _a2; + if (e.button !== 0) + return; + if (toValue(options.disabled) || !filterEvent(e)) + return; + if (toValue(exact) && e.target !== toValue(target)) + return; + const container = toValue(containerElement); + const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container); + const targetRect = toValue(target).getBoundingClientRect(); + const pos = { + x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left), + y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top) + }; + if ((onStart == null ? void 0 : onStart(pos, e)) === false) + return; + pressedDelta.value = pos; + handleEvent(e); + }; + const move = (e) => { + if (toValue(options.disabled) || !filterEvent(e)) + return; + if (!pressedDelta.value) + return; + const container = toValue(containerElement); + const targetRect = toValue(target).getBoundingClientRect(); + let { x, y } = position.value; + if (axis === "x" || axis === "both") { + x = e.clientX - pressedDelta.value.x; + if (container) + x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width); + } + if (axis === "y" || axis === "both") { + y = e.clientY - pressedDelta.value.y; + if (container) + y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height); + } + position.value = { + x, + y + }; + onMove == null ? void 0 : onMove(position.value, e); + handleEvent(e); + }; + const end = (e) => { + if (toValue(options.disabled) || !filterEvent(e)) + return; + if (!pressedDelta.value) + return; + pressedDelta.value = void 0; + onEnd == null ? void 0 : onEnd(position.value, e); + handleEvent(e); + }; + if (isClient) { + const config = { capture: (_b = options.capture) != null ? _b : true }; + useEventListener(draggingHandle, "pointerdown", start, config); + useEventListener(draggingElement, "pointermove", move, config); + useEventListener(draggingElement, "pointerup", end, config); + } + return { + ...toRefs2(position), + position, + isDragging: computed(() => !!pressedDelta.value), + style: computed( + () => `left:${position.value.x}px;top:${position.value.y}px;` + ) + }; +} +function useDropZone(target, options = {}) { + const isOverDropZone = ref(false); + const files = shallowRef(null); + let counter = 0; + let isDataTypeIncluded = true; + if (isClient) { + const _options = typeof options === "function" ? { onDrop: options } : options; + const getFiles = (event) => { + var _a, _b; + const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []); + return files.value = list.length === 0 ? null : list; + }; + useEventListener(target, "dragenter", (event) => { + var _a, _b; + const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === "file" ? i.type : null).filter(notNullish); + if (_options.dataTypes && event.dataTransfer) { + const dataTypes = unref(_options.dataTypes); + isDataTypeIncluded = typeof dataTypes === "function" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true; + if (!isDataTypeIncluded) + return; + } + event.preventDefault(); + counter += 1; + isOverDropZone.value = true; + (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event); + }); + useEventListener(target, "dragover", (event) => { + var _a; + if (!isDataTypeIncluded) + return; + event.preventDefault(); + (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event); + }); + useEventListener(target, "dragleave", (event) => { + var _a; + if (!isDataTypeIncluded) + return; + event.preventDefault(); + counter -= 1; + if (counter === 0) + isOverDropZone.value = false; + (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event); + }); + useEventListener(target, "drop", (event) => { + var _a; + event.preventDefault(); + counter = 0; + isOverDropZone.value = false; + (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event); + }); + } + return { + files, + isOverDropZone + }; +} +function useResizeObserver(target, callback, options = {}) { + const { window: window2 = defaultWindow, ...observerOptions } = options; + let observer; + const isSupported = useSupported(() => window2 && "ResizeObserver" in window2); + const cleanup = () => { + if (observer) { + observer.disconnect(); + observer = void 0; + } + }; + const targets = computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]); + const stopWatch = watch( + targets, + (els) => { + cleanup(); + if (isSupported.value && window2) { + observer = new ResizeObserver(callback); + for (const _el of els) + _el && observer.observe(_el, observerOptions); + } + }, + { immediate: true, flush: "post" } + ); + const stop = () => { + cleanup(); + stopWatch(); + }; + tryOnScopeDispose(stop); + return { + isSupported, + stop + }; +} +function useElementBounding(target, options = {}) { + const { + reset = true, + windowResize = true, + windowScroll = true, + immediate = true + } = options; + const height = ref(0); + const bottom = ref(0); + const left = ref(0); + const right = ref(0); + const top = ref(0); + const width = ref(0); + const x = ref(0); + const y = ref(0); + function update() { + const el = unrefElement(target); + if (!el) { + if (reset) { + height.value = 0; + bottom.value = 0; + left.value = 0; + right.value = 0; + top.value = 0; + width.value = 0; + x.value = 0; + y.value = 0; + } + return; + } + const rect = el.getBoundingClientRect(); + height.value = rect.height; + bottom.value = rect.bottom; + left.value = rect.left; + right.value = rect.right; + top.value = rect.top; + width.value = rect.width; + x.value = rect.x; + y.value = rect.y; + } + useResizeObserver(target, update); + watch(() => unrefElement(target), (ele) => !ele && update()); + useMutationObserver(target, update, { + attributeFilter: ["style", "class"] + }); + if (windowScroll) + useEventListener("scroll", update, { capture: true, passive: true }); + if (windowResize) + useEventListener("resize", update, { passive: true }); + tryOnMounted(() => { + if (immediate) + update(); + }); + return { + height, + bottom, + left, + right, + top, + width, + x, + y, + update + }; +} +function useElementByPoint(options) { + const { + x, + y, + document: document2 = defaultDocument, + multiple, + interval = "requestAnimationFrame", + immediate = true + } = options; + const isSupported = useSupported(() => { + if (toValue(multiple)) + return document2 && "elementsFromPoint" in document2; + return document2 && "elementFromPoint" in document2; + }); + const element = ref(null); + const cb = () => { + var _a, _b; + element.value = toValue(multiple) ? (_a = document2 == null ? void 0 : document2.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document2 == null ? void 0 : document2.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null; + }; + const controls = interval === "requestAnimationFrame" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate }); + return { + isSupported, + element, + ...controls + }; +} +function useElementHover(el, options = {}) { + const { + delayEnter = 0, + delayLeave = 0, + window: window2 = defaultWindow + } = options; + const isHovered = ref(false); + let timer; + const toggle = (entering) => { + const delay = entering ? delayEnter : delayLeave; + if (timer) { + clearTimeout(timer); + timer = void 0; + } + if (delay) + timer = setTimeout(() => isHovered.value = entering, delay); + else + isHovered.value = entering; + }; + if (!window2) + return isHovered; + useEventListener(el, "mouseenter", () => toggle(true), { passive: true }); + useEventListener(el, "mouseleave", () => toggle(false), { passive: true }); + return isHovered; +} +function useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) { + const { window: window2 = defaultWindow, box = "content-box" } = options; + const isSVG = computed(() => { + var _a, _b; + return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes("svg"); + }); + const width = ref(initialSize.width); + const height = ref(initialSize.height); + const { stop: stop1 } = useResizeObserver( + target, + ([entry]) => { + const boxSize = box === "border-box" ? entry.borderBoxSize : box === "content-box" ? entry.contentBoxSize : entry.devicePixelContentBoxSize; + if (window2 && isSVG.value) { + const $elem = unrefElement(target); + if ($elem) { + const rect = $elem.getBoundingClientRect(); + width.value = rect.width; + height.value = rect.height; + } + } else { + if (boxSize) { + const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize]; + width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0); + height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0); + } else { + width.value = entry.contentRect.width; + height.value = entry.contentRect.height; + } + } + }, + options + ); + tryOnMounted(() => { + const ele = unrefElement(target); + if (ele) { + width.value = "offsetWidth" in ele ? ele.offsetWidth : initialSize.width; + height.value = "offsetHeight" in ele ? ele.offsetHeight : initialSize.height; + } + }); + const stop2 = watch( + () => unrefElement(target), + (ele) => { + width.value = ele ? initialSize.width : 0; + height.value = ele ? initialSize.height : 0; + } + ); + function stop() { + stop1(); + stop2(); + } + return { + width, + height, + stop + }; +} +function useIntersectionObserver(target, callback, options = {}) { + const { + root, + rootMargin = "0px", + threshold = 0.1, + window: window2 = defaultWindow, + immediate = true + } = options; + const isSupported = useSupported(() => window2 && "IntersectionObserver" in window2); + const targets = computed(() => { + const _target = toValue(target); + return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish); + }); + let cleanup = noop; + const isActive = ref(immediate); + const stopWatch = isSupported.value ? watch( + () => [targets.value, unrefElement(root), isActive.value], + ([targets2, root2]) => { + cleanup(); + if (!isActive.value) + return; + if (!targets2.length) + return; + const observer = new IntersectionObserver( + callback, + { + root: unrefElement(root2), + rootMargin, + threshold + } + ); + targets2.forEach((el) => el && observer.observe(el)); + cleanup = () => { + observer.disconnect(); + cleanup = noop; + }; + }, + { immediate, flush: "post" } + ) : noop; + const stop = () => { + cleanup(); + stopWatch(); + isActive.value = false; + }; + tryOnScopeDispose(stop); + return { + isSupported, + isActive, + pause() { + cleanup(); + isActive.value = false; + }, + resume() { + isActive.value = true; + }, + stop + }; +} +function useElementVisibility(element, options = {}) { + const { window: window2 = defaultWindow, scrollTarget, threshold = 0 } = options; + const elementIsVisible = ref(false); + useIntersectionObserver( + element, + (intersectionObserverEntries) => { + let isIntersecting = elementIsVisible.value; + let latestTime = 0; + for (const entry of intersectionObserverEntries) { + if (entry.time >= latestTime) { + latestTime = entry.time; + isIntersecting = entry.isIntersecting; + } + } + elementIsVisible.value = isIntersecting; + }, + { + root: scrollTarget, + window: window2, + threshold + } + ); + return elementIsVisible; +} +var events = /* @__PURE__ */ new Map(); +function useEventBus(key) { + const scope = getCurrentScope(); + function on(listener) { + var _a; + const listeners = events.get(key) || /* @__PURE__ */ new Set(); + listeners.add(listener); + events.set(key, listeners); + const _off = () => off(listener); + (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off); + return _off; + } + function once(listener) { + function _listener(...args) { + off(_listener); + listener(...args); + } + return on(_listener); + } + function off(listener) { + const listeners = events.get(key); + if (!listeners) + return; + listeners.delete(listener); + if (!listeners.size) + reset(); + } + function reset() { + events.delete(key); + } + function emit(event, payload) { + var _a; + (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload)); + } + return { on, once, off, emit, reset }; +} +function resolveNestedOptions$1(options) { + if (options === true) + return {}; + return options; +} +function useEventSource(url, events2 = [], options = {}) { + const event = ref(null); + const data = ref(null); + const status = ref("CONNECTING"); + const eventSource = ref(null); + const error = shallowRef(null); + const urlRef = toRef2(url); + const lastEventId = shallowRef(null); + let explicitlyClosed = false; + let retried = 0; + const { + withCredentials = false, + immediate = true + } = options; + const close = () => { + if (isClient && eventSource.value) { + eventSource.value.close(); + eventSource.value = null; + status.value = "CLOSED"; + explicitlyClosed = true; + } + }; + const _init = () => { + if (explicitlyClosed || typeof urlRef.value === "undefined") + return; + const es = new EventSource(urlRef.value, { withCredentials }); + status.value = "CONNECTING"; + eventSource.value = es; + es.onopen = () => { + status.value = "OPEN"; + error.value = null; + }; + es.onerror = (e) => { + status.value = "CLOSED"; + error.value = e; + if (es.readyState === 2 && !explicitlyClosed && options.autoReconnect) { + es.close(); + const { + retries = -1, + delay = 1e3, + onFailed + } = resolveNestedOptions$1(options.autoReconnect); + retried += 1; + if (typeof retries === "number" && (retries < 0 || retried < retries)) + setTimeout(_init, delay); + else if (typeof retries === "function" && retries()) + setTimeout(_init, delay); + else + onFailed == null ? void 0 : onFailed(); + } + }; + es.onmessage = (e) => { + event.value = null; + data.value = e.data; + lastEventId.value = e.lastEventId; + }; + for (const event_name of events2) { + useEventListener(es, event_name, (e) => { + event.value = event_name; + data.value = e.data || null; + }); + } + }; + const open = () => { + if (!isClient) + return; + close(); + explicitlyClosed = false; + retried = 0; + _init(); + }; + if (immediate) + watch(urlRef, open, { immediate: true }); + tryOnScopeDispose(close); + return { + eventSource, + event, + data, + status, + error, + open, + close, + lastEventId + }; +} +function useEyeDropper(options = {}) { + const { initialValue = "" } = options; + const isSupported = useSupported(() => typeof window !== "undefined" && "EyeDropper" in window); + const sRGBHex = ref(initialValue); + async function open(openOptions) { + if (!isSupported.value) + return; + const eyeDropper = new window.EyeDropper(); + const result = await eyeDropper.open(openOptions); + sRGBHex.value = result.sRGBHex; + return result; + } + return { isSupported, sRGBHex, open }; +} +function useFavicon(newIcon = null, options = {}) { + const { + baseUrl = "", + rel = "icon", + document: document2 = defaultDocument + } = options; + const favicon = toRef2(newIcon); + const applyIcon = (icon) => { + const elements = document2 == null ? void 0 : document2.head.querySelectorAll(`link[rel*="${rel}"]`); + if (!elements || elements.length === 0) { + const link = document2 == null ? void 0 : document2.createElement("link"); + if (link) { + link.rel = rel; + link.href = `${baseUrl}${icon}`; + link.type = `image/${icon.split(".").pop()}`; + document2 == null ? void 0 : document2.head.append(link); + } + return; + } + elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`); + }; + watch( + favicon, + (i, o) => { + if (typeof i === "string" && i !== o) + applyIcon(i); + }, + { immediate: true } + ); + return favicon; +} +var payloadMapping = { + json: "application/json", + text: "text/plain" +}; +function isFetchOptions(obj) { + return obj && containsProp(obj, "immediate", "refetch", "initialData", "timeout", "beforeFetch", "afterFetch", "onFetchError", "fetch", "updateDataOnError"); +} +var reAbsolute = /^(?:[a-z][a-z\d+\-.]*:)?\/\//i; +function isAbsoluteURL(url) { + return reAbsolute.test(url); +} +function headersToObject(headers) { + if (typeof Headers !== "undefined" && headers instanceof Headers) + return Object.fromEntries(headers.entries()); + return headers; +} +function combineCallbacks(combination, ...callbacks) { + if (combination === "overwrite") { + return async (ctx) => { + const callback = callbacks[callbacks.length - 1]; + if (callback) + return { ...ctx, ...await callback(ctx) }; + return ctx; + }; + } else { + return async (ctx) => { + for (const callback of callbacks) { + if (callback) + ctx = { ...ctx, ...await callback(ctx) }; + } + return ctx; + }; + } +} +function createFetch(config = {}) { + const _combination = config.combination || "chain"; + const _options = config.options || {}; + const _fetchOptions = config.fetchOptions || {}; + function useFactoryFetch(url, ...args) { + const computedUrl = computed(() => { + const baseUrl = toValue(config.baseUrl); + const targetUrl = toValue(url); + return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl; + }); + let options = _options; + let fetchOptions = _fetchOptions; + if (args.length > 0) { + if (isFetchOptions(args[0])) { + options = { + ...options, + ...args[0], + beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch), + afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch), + onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError) + }; + } else { + fetchOptions = { + ...fetchOptions, + ...args[0], + headers: { + ...headersToObject(fetchOptions.headers) || {}, + ...headersToObject(args[0].headers) || {} + } + }; + } + } + if (args.length > 1 && isFetchOptions(args[1])) { + options = { + ...options, + ...args[1], + beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch), + afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch), + onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError) + }; + } + return useFetch(computedUrl, fetchOptions, options); + } + return useFactoryFetch; +} +function useFetch(url, ...args) { + var _a; + const supportsAbort = typeof AbortController === "function"; + let fetchOptions = {}; + let options = { + immediate: true, + refetch: false, + timeout: 0, + updateDataOnError: false + }; + const config = { + method: "GET", + type: "text", + payload: void 0 + }; + if (args.length > 0) { + if (isFetchOptions(args[0])) + options = { ...options, ...args[0] }; + else + fetchOptions = args[0]; + } + if (args.length > 1) { + if (isFetchOptions(args[1])) + options = { ...options, ...args[1] }; + } + const { + fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch, + initialData, + timeout + } = options; + const responseEvent = createEventHook(); + const errorEvent = createEventHook(); + const finallyEvent = createEventHook(); + const isFinished = ref(false); + const isFetching = ref(false); + const aborted = ref(false); + const statusCode = ref(null); + const response = shallowRef(null); + const error = shallowRef(null); + const data = shallowRef(initialData || null); + const canAbort = computed(() => supportsAbort && isFetching.value); + let controller; + let timer; + const abort = () => { + if (supportsAbort) { + controller == null ? void 0 : controller.abort(); + controller = new AbortController(); + controller.signal.onabort = () => aborted.value = true; + fetchOptions = { + ...fetchOptions, + signal: controller.signal + }; + } + }; + const loading = (isLoading) => { + isFetching.value = isLoading; + isFinished.value = !isLoading; + }; + if (timeout) + timer = useTimeoutFn(abort, timeout, { immediate: false }); + let executeCounter = 0; + const execute = async (throwOnFailed = false) => { + var _a2, _b; + abort(); + loading(true); + error.value = null; + statusCode.value = null; + aborted.value = false; + executeCounter += 1; + const currentExecuteCounter = executeCounter; + const defaultFetchOptions = { + method: config.method, + headers: {} + }; + if (config.payload) { + const headers = headersToObject(defaultFetchOptions.headers); + const payload = toValue(config.payload); + if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData)) + config.payloadType = "json"; + if (config.payloadType) + headers["Content-Type"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType; + defaultFetchOptions.body = config.payloadType === "json" ? JSON.stringify(payload) : payload; + } + let isCanceled = false; + const context = { + url: toValue(url), + options: { + ...defaultFetchOptions, + ...fetchOptions + }, + cancel: () => { + isCanceled = true; + } + }; + if (options.beforeFetch) + Object.assign(context, await options.beforeFetch(context)); + if (isCanceled || !fetch) { + loading(false); + return Promise.resolve(null); + } + let responseData = null; + if (timer) + timer.start(); + return fetch( + context.url, + { + ...defaultFetchOptions, + ...context.options, + headers: { + ...headersToObject(defaultFetchOptions.headers), + ...headersToObject((_b = context.options) == null ? void 0 : _b.headers) + } + } + ).then(async (fetchResponse) => { + response.value = fetchResponse; + statusCode.value = fetchResponse.status; + responseData = await fetchResponse.clone()[config.type](); + if (!fetchResponse.ok) { + data.value = initialData || null; + throw new Error(fetchResponse.statusText); + } + if (options.afterFetch) { + ({ data: responseData } = await options.afterFetch({ + data: responseData, + response: fetchResponse + })); + } + data.value = responseData; + responseEvent.trigger(fetchResponse); + return fetchResponse; + }).catch(async (fetchError) => { + let errorData = fetchError.message || fetchError.name; + if (options.onFetchError) { + ({ error: errorData, data: responseData } = await options.onFetchError({ + data: responseData, + error: fetchError, + response: response.value + })); + } + error.value = errorData; + if (options.updateDataOnError) + data.value = responseData; + errorEvent.trigger(fetchError); + if (throwOnFailed) + throw fetchError; + return null; + }).finally(() => { + if (currentExecuteCounter === executeCounter) + loading(false); + if (timer) + timer.stop(); + finallyEvent.trigger(null); + }); + }; + const refetch = toRef2(options.refetch); + watch( + [ + refetch, + toRef2(url) + ], + ([refetch2]) => refetch2 && execute(), + { deep: true } + ); + const shell = { + isFinished: readonly(isFinished), + isFetching: readonly(isFetching), + statusCode, + response, + error, + data, + canAbort, + aborted, + abort, + execute, + onFetchResponse: responseEvent.on, + onFetchError: errorEvent.on, + onFetchFinally: finallyEvent.on, + // method + get: setMethod("GET"), + put: setMethod("PUT"), + post: setMethod("POST"), + delete: setMethod("DELETE"), + patch: setMethod("PATCH"), + head: setMethod("HEAD"), + options: setMethod("OPTIONS"), + // type + json: setType("json"), + text: setType("text"), + blob: setType("blob"), + arrayBuffer: setType("arrayBuffer"), + formData: setType("formData") + }; + function setMethod(method) { + return (payload, payloadType) => { + if (!isFetching.value) { + config.method = method; + config.payload = payload; + config.payloadType = payloadType; + if (isRef(config.payload)) { + watch( + [ + refetch, + toRef2(config.payload) + ], + ([refetch2]) => refetch2 && execute(), + { deep: true } + ); + } + return { + ...shell, + then(onFulfilled, onRejected) { + return waitUntilFinished().then(onFulfilled, onRejected); + } + }; + } + return void 0; + }; + } + function waitUntilFinished() { + return new Promise((resolve, reject) => { + until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2)); + }); + } + function setType(type) { + return () => { + if (!isFetching.value) { + config.type = type; + return { + ...shell, + then(onFulfilled, onRejected) { + return waitUntilFinished().then(onFulfilled, onRejected); + } + }; + } + return void 0; + }; + } + if (options.immediate) + Promise.resolve().then(() => execute()); + return { + ...shell, + then(onFulfilled, onRejected) { + return waitUntilFinished().then(onFulfilled, onRejected); + } + }; +} +function joinPaths(start, end) { + if (!start.endsWith("/") && !end.startsWith("/")) + return `${start}/${end}`; + return `${start}${end}`; +} +var DEFAULT_OPTIONS = { + multiple: true, + accept: "*", + reset: false, + directory: false +}; +function useFileDialog(options = {}) { + const { + document: document2 = defaultDocument + } = options; + const files = ref(null); + const { on: onChange, trigger } = createEventHook(); + let input; + if (document2) { + input = document2.createElement("input"); + input.type = "file"; + input.onchange = (event) => { + const result = event.target; + files.value = result.files; + trigger(files.value); + }; + } + const reset = () => { + files.value = null; + if (input && input.value) { + input.value = ""; + trigger(null); + } + }; + const open = (localOptions) => { + if (!input) + return; + const _options = { + ...DEFAULT_OPTIONS, + ...options, + ...localOptions + }; + input.multiple = _options.multiple; + input.accept = _options.accept; + input.webkitdirectory = _options.directory; + if (hasOwn(_options, "capture")) + input.capture = _options.capture; + if (_options.reset) + reset(); + input.click(); + }; + return { + files: readonly(files), + open, + reset, + onChange + }; +} +function useFileSystemAccess(options = {}) { + const { + window: _window = defaultWindow, + dataType = "Text" + } = options; + const window2 = _window; + const isSupported = useSupported(() => window2 && "showSaveFilePicker" in window2 && "showOpenFilePicker" in window2); + const fileHandle = ref(); + const data = ref(); + const file = ref(); + const fileName = computed(() => { + var _a, _b; + return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : ""; + }); + const fileMIME = computed(() => { + var _a, _b; + return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : ""; + }); + const fileSize = computed(() => { + var _a, _b; + return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0; + }); + const fileLastModified = computed(() => { + var _a, _b; + return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0; + }); + async function open(_options = {}) { + if (!isSupported.value) + return; + const [handle] = await window2.showOpenFilePicker({ ...toValue(options), ..._options }); + fileHandle.value = handle; + await updateData(); + } + async function create(_options = {}) { + if (!isSupported.value) + return; + fileHandle.value = await window2.showSaveFilePicker({ ...options, ..._options }); + data.value = void 0; + await updateData(); + } + async function save(_options = {}) { + if (!isSupported.value) + return; + if (!fileHandle.value) + return saveAs(_options); + if (data.value) { + const writableStream = await fileHandle.value.createWritable(); + await writableStream.write(data.value); + await writableStream.close(); + } + await updateFile(); + } + async function saveAs(_options = {}) { + if (!isSupported.value) + return; + fileHandle.value = await window2.showSaveFilePicker({ ...options, ..._options }); + if (data.value) { + const writableStream = await fileHandle.value.createWritable(); + await writableStream.write(data.value); + await writableStream.close(); + } + await updateFile(); + } + async function updateFile() { + var _a; + file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile()); + } + async function updateData() { + var _a, _b; + await updateFile(); + const type = toValue(dataType); + if (type === "Text") + data.value = await ((_a = file.value) == null ? void 0 : _a.text()); + else if (type === "ArrayBuffer") + data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer()); + else if (type === "Blob") + data.value = file.value; + } + watch(() => toValue(dataType), updateData); + return { + isSupported, + data, + file, + fileName, + fileMIME, + fileSize, + fileLastModified, + open, + create, + save, + saveAs, + updateData + }; +} +function useFocus(target, options = {}) { + const { initialValue = false, focusVisible = false, preventScroll = false } = options; + const innerFocused = ref(false); + const targetElement = computed(() => unrefElement(target)); + useEventListener(targetElement, "focus", (event) => { + var _a, _b; + if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, ":focus-visible"))) + innerFocused.value = true; + }); + useEventListener(targetElement, "blur", () => innerFocused.value = false); + const focused = computed({ + get: () => innerFocused.value, + set(value) { + var _a, _b; + if (!value && innerFocused.value) + (_a = targetElement.value) == null ? void 0 : _a.blur(); + else if (value && !innerFocused.value) + (_b = targetElement.value) == null ? void 0 : _b.focus({ preventScroll }); + } + }); + watch( + targetElement, + () => { + focused.value = initialValue; + }, + { immediate: true, flush: "post" } + ); + return { focused }; +} +function useFocusWithin(target, options = {}) { + const activeElement = useActiveElement(options); + const targetElement = computed(() => unrefElement(target)); + const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false); + return { focused }; +} +function useFps(options) { + var _a; + const fps = ref(0); + if (typeof performance === "undefined") + return fps; + const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10; + let last = performance.now(); + let ticks = 0; + useRafFn(() => { + ticks += 1; + if (ticks >= every) { + const now2 = performance.now(); + const diff = now2 - last; + fps.value = Math.round(1e3 / (diff / ticks)); + last = now2; + ticks = 0; + } + }); + return fps; +} +var eventHandlers = [ + "fullscreenchange", + "webkitfullscreenchange", + "webkitendfullscreen", + "mozfullscreenchange", + "MSFullscreenChange" +]; +function useFullscreen(target, options = {}) { + const { + document: document2 = defaultDocument, + autoExit = false + } = options; + const targetRef = computed(() => { + var _a; + return (_a = unrefElement(target)) != null ? _a : document2 == null ? void 0 : document2.querySelector("html"); + }); + const isFullscreen = ref(false); + const requestMethod = computed(() => { + return [ + "requestFullscreen", + "webkitRequestFullscreen", + "webkitEnterFullscreen", + "webkitEnterFullScreen", + "webkitRequestFullScreen", + "mozRequestFullScreen", + "msRequestFullscreen" + ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value); + }); + const exitMethod = computed(() => { + return [ + "exitFullscreen", + "webkitExitFullscreen", + "webkitExitFullScreen", + "webkitCancelFullScreen", + "mozCancelFullScreen", + "msExitFullscreen" + ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value); + }); + const fullscreenEnabled = computed(() => { + return [ + "fullScreen", + "webkitIsFullScreen", + "webkitDisplayingFullscreen", + "mozFullScreen", + "msFullscreenElement" + ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value); + }); + const fullscreenElementMethod = [ + "fullscreenElement", + "webkitFullscreenElement", + "mozFullScreenElement", + "msFullscreenElement" + ].find((m) => document2 && m in document2); + const isSupported = useSupported(() => targetRef.value && document2 && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0); + const isCurrentElementFullScreen = () => { + if (fullscreenElementMethod) + return (document2 == null ? void 0 : document2[fullscreenElementMethod]) === targetRef.value; + return false; + }; + const isElementFullScreen = () => { + if (fullscreenEnabled.value) { + if (document2 && document2[fullscreenEnabled.value] != null) { + return document2[fullscreenEnabled.value]; + } else { + const target2 = targetRef.value; + if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) { + return Boolean(target2[fullscreenEnabled.value]); + } + } + } + return false; + }; + async function exit() { + if (!isSupported.value || !isFullscreen.value) + return; + if (exitMethod.value) { + if ((document2 == null ? void 0 : document2[exitMethod.value]) != null) { + await document2[exitMethod.value](); + } else { + const target2 = targetRef.value; + if ((target2 == null ? void 0 : target2[exitMethod.value]) != null) + await target2[exitMethod.value](); + } + } + isFullscreen.value = false; + } + async function enter() { + if (!isSupported.value || isFullscreen.value) + return; + if (isElementFullScreen()) + await exit(); + const target2 = targetRef.value; + if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) { + await target2[requestMethod.value](); + isFullscreen.value = true; + } + } + async function toggle() { + await (isFullscreen.value ? exit() : enter()); + } + const handlerCallback = () => { + const isElementFullScreenValue = isElementFullScreen(); + if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen()) + isFullscreen.value = isElementFullScreenValue; + }; + useEventListener(document2, eventHandlers, handlerCallback, false); + useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false); + if (autoExit) + tryOnScopeDispose(exit); + return { + isSupported, + isFullscreen, + enter, + exit, + toggle + }; +} +function mapGamepadToXbox360Controller(gamepad) { + return computed(() => { + if (gamepad.value) { + return { + buttons: { + a: gamepad.value.buttons[0], + b: gamepad.value.buttons[1], + x: gamepad.value.buttons[2], + y: gamepad.value.buttons[3] + }, + bumper: { + left: gamepad.value.buttons[4], + right: gamepad.value.buttons[5] + }, + triggers: { + left: gamepad.value.buttons[6], + right: gamepad.value.buttons[7] + }, + stick: { + left: { + horizontal: gamepad.value.axes[0], + vertical: gamepad.value.axes[1], + button: gamepad.value.buttons[10] + }, + right: { + horizontal: gamepad.value.axes[2], + vertical: gamepad.value.axes[3], + button: gamepad.value.buttons[11] + } + }, + dpad: { + up: gamepad.value.buttons[12], + down: gamepad.value.buttons[13], + left: gamepad.value.buttons[14], + right: gamepad.value.buttons[15] + }, + back: gamepad.value.buttons[8], + start: gamepad.value.buttons[9] + }; + } + return null; + }); +} +function useGamepad(options = {}) { + const { + navigator = defaultNavigator + } = options; + const isSupported = useSupported(() => navigator && "getGamepads" in navigator); + const gamepads = ref([]); + const onConnectedHook = createEventHook(); + const onDisconnectedHook = createEventHook(); + const stateFromGamepad = (gamepad) => { + const hapticActuators = []; + const vibrationActuator = "vibrationActuator" in gamepad ? gamepad.vibrationActuator : null; + if (vibrationActuator) + hapticActuators.push(vibrationActuator); + if (gamepad.hapticActuators) + hapticActuators.push(...gamepad.hapticActuators); + return { + id: gamepad.id, + index: gamepad.index, + connected: gamepad.connected, + mapping: gamepad.mapping, + timestamp: gamepad.timestamp, + vibrationActuator: gamepad.vibrationActuator, + hapticActuators, + axes: gamepad.axes.map((axes) => axes), + buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value })) + }; + }; + const updateGamepadState = () => { + const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || []; + for (const gamepad of _gamepads) { + if (gamepad && gamepads.value[gamepad.index]) + gamepads.value[gamepad.index] = stateFromGamepad(gamepad); + } + }; + const { isActive, pause, resume } = useRafFn(updateGamepadState); + const onGamepadConnected = (gamepad) => { + if (!gamepads.value.some(({ index }) => index === gamepad.index)) { + gamepads.value.push(stateFromGamepad(gamepad)); + onConnectedHook.trigger(gamepad.index); + } + resume(); + }; + const onGamepadDisconnected = (gamepad) => { + gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index); + onDisconnectedHook.trigger(gamepad.index); + }; + useEventListener("gamepadconnected", (e) => onGamepadConnected(e.gamepad)); + useEventListener("gamepaddisconnected", (e) => onGamepadDisconnected(e.gamepad)); + tryOnMounted(() => { + const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || []; + for (const gamepad of _gamepads) { + if (gamepad && gamepads.value[gamepad.index]) + onGamepadConnected(gamepad); + } + }); + pause(); + return { + isSupported, + onConnected: onConnectedHook.on, + onDisconnected: onDisconnectedHook.on, + gamepads, + pause, + resume, + isActive + }; +} +function useGeolocation(options = {}) { + const { + enableHighAccuracy = true, + maximumAge = 3e4, + timeout = 27e3, + navigator = defaultNavigator, + immediate = true + } = options; + const isSupported = useSupported(() => navigator && "geolocation" in navigator); + const locatedAt = ref(null); + const error = shallowRef(null); + const coords = ref({ + accuracy: 0, + latitude: Number.POSITIVE_INFINITY, + longitude: Number.POSITIVE_INFINITY, + altitude: null, + altitudeAccuracy: null, + heading: null, + speed: null + }); + function updatePosition(position) { + locatedAt.value = position.timestamp; + coords.value = position.coords; + error.value = null; + } + let watcher; + function resume() { + if (isSupported.value) { + watcher = navigator.geolocation.watchPosition( + updatePosition, + (err) => error.value = err, + { + enableHighAccuracy, + maximumAge, + timeout + } + ); + } + } + if (immediate) + resume(); + function pause() { + if (watcher && navigator) + navigator.geolocation.clearWatch(watcher); + } + tryOnScopeDispose(() => { + pause(); + }); + return { + isSupported, + coords, + locatedAt, + error, + resume, + pause + }; +} +var defaultEvents$1 = ["mousemove", "mousedown", "resize", "keydown", "touchstart", "wheel"]; +var oneMinute = 6e4; +function useIdle(timeout = oneMinute, options = {}) { + const { + initialState = false, + listenForVisibilityChange = true, + events: events2 = defaultEvents$1, + window: window2 = defaultWindow, + eventFilter = throttleFilter(50) + } = options; + const idle = ref(initialState); + const lastActive = ref(timestamp()); + let timer; + const reset = () => { + idle.value = false; + clearTimeout(timer); + timer = setTimeout(() => idle.value = true, timeout); + }; + const onEvent = createFilterWrapper( + eventFilter, + () => { + lastActive.value = timestamp(); + reset(); + } + ); + if (window2) { + const document2 = window2.document; + for (const event of events2) + useEventListener(window2, event, onEvent, { passive: true }); + if (listenForVisibilityChange) { + useEventListener(document2, "visibilitychange", () => { + if (!document2.hidden) + onEvent(); + }); + } + reset(); + } + return { + idle, + lastActive, + reset + }; +} +async function loadImage(options) { + return new Promise((resolve, reject) => { + const img = new Image(); + const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options; + img.src = src; + if (srcset) + img.srcset = srcset; + if (sizes) + img.sizes = sizes; + if (clazz) + img.className = clazz; + if (loading) + img.loading = loading; + if (crossorigin) + img.crossOrigin = crossorigin; + if (referrerPolicy) + img.referrerPolicy = referrerPolicy; + img.onload = () => resolve(img); + img.onerror = reject; + }); +} +function useImage(options, asyncStateOptions = {}) { + const state = useAsyncState( + () => loadImage(toValue(options)), + void 0, + { + resetOnExecute: true, + ...asyncStateOptions + } + ); + watch( + () => toValue(options), + () => state.execute(asyncStateOptions.delay), + { deep: true } + ); + return state; +} +var ARRIVED_STATE_THRESHOLD_PIXELS = 1; +function useScroll(element, options = {}) { + const { + throttle = 0, + idle = 200, + onStop = noop, + onScroll = noop, + offset = { + left: 0, + right: 0, + top: 0, + bottom: 0 + }, + eventListenerOptions = { + capture: false, + passive: true + }, + behavior = "auto", + window: window2 = defaultWindow, + onError = (e) => { + console.error(e); + } + } = options; + const internalX = ref(0); + const internalY = ref(0); + const x = computed({ + get() { + return internalX.value; + }, + set(x2) { + scrollTo2(x2, void 0); + } + }); + const y = computed({ + get() { + return internalY.value; + }, + set(y2) { + scrollTo2(void 0, y2); + } + }); + function scrollTo2(_x, _y) { + var _a, _b, _c, _d; + if (!window2) + return; + const _element = toValue(element); + if (!_element) + return; + (_c = _element instanceof Document ? window2.document.body : _element) == null ? void 0 : _c.scrollTo({ + top: (_a = toValue(_y)) != null ? _a : y.value, + left: (_b = toValue(_x)) != null ? _b : x.value, + behavior: toValue(behavior) + }); + const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element; + if (x != null) + internalX.value = scrollContainer.scrollLeft; + if (y != null) + internalY.value = scrollContainer.scrollTop; + } + const isScrolling = ref(false); + const arrivedState = reactive({ + left: true, + right: false, + top: true, + bottom: false + }); + const directions = reactive({ + left: false, + right: false, + top: false, + bottom: false + }); + const onScrollEnd = (e) => { + if (!isScrolling.value) + return; + isScrolling.value = false; + directions.left = false; + directions.right = false; + directions.top = false; + directions.bottom = false; + onStop(e); + }; + const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle); + const setArrivedState = (target) => { + var _a; + if (!window2) + return; + const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target); + const { display, flexDirection } = getComputedStyle(el); + const scrollLeft = el.scrollLeft; + directions.left = scrollLeft < internalX.value; + directions.right = scrollLeft > internalX.value; + const left = Math.abs(scrollLeft) <= (offset.left || 0); + const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS; + if (display === "flex" && flexDirection === "row-reverse") { + arrivedState.left = right; + arrivedState.right = left; + } else { + arrivedState.left = left; + arrivedState.right = right; + } + internalX.value = scrollLeft; + let scrollTop = el.scrollTop; + if (target === window2.document && !scrollTop) + scrollTop = window2.document.body.scrollTop; + directions.top = scrollTop < internalY.value; + directions.bottom = scrollTop > internalY.value; + const top = Math.abs(scrollTop) <= (offset.top || 0); + const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS; + if (display === "flex" && flexDirection === "column-reverse") { + arrivedState.top = bottom; + arrivedState.bottom = top; + } else { + arrivedState.top = top; + arrivedState.bottom = bottom; + } + internalY.value = scrollTop; + }; + const onScrollHandler = (e) => { + var _a; + if (!window2) + return; + const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target; + setArrivedState(eventTarget); + isScrolling.value = true; + onScrollEndDebounced(e); + onScroll(e); + }; + useEventListener( + element, + "scroll", + throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, + eventListenerOptions + ); + tryOnMounted(() => { + try { + const _element = toValue(element); + if (!_element) + return; + setArrivedState(_element); + } catch (e) { + onError(e); + } + }); + useEventListener( + element, + "scrollend", + onScrollEnd, + eventListenerOptions + ); + return { + x, + y, + isScrolling, + arrivedState, + directions, + measure() { + const _element = toValue(element); + if (window2 && _element) + setArrivedState(_element); + } + }; +} +function resolveElement(el) { + if (typeof Window !== "undefined" && el instanceof Window) + return el.document.documentElement; + if (typeof Document !== "undefined" && el instanceof Document) + return el.documentElement; + return el; +} +function useInfiniteScroll(element, onLoadMore, options = {}) { + var _a; + const { + direction = "bottom", + interval = 100, + canLoadMore = () => true + } = options; + const state = reactive(useScroll( + element, + { + ...options, + offset: { + [direction]: (_a = options.distance) != null ? _a : 0, + ...options.offset + } + } + )); + const promise = ref(); + const isLoading = computed(() => !!promise.value); + const observedElement = computed(() => { + return resolveElement(toValue(element)); + }); + const isElementVisible = useElementVisibility(observedElement); + function checkAndLoad() { + state.measure(); + if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value)) + return; + const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value; + const isNarrower = direction === "bottom" || direction === "top" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth; + if (state.arrivedState[direction] || isNarrower) { + if (!promise.value) { + promise.value = Promise.all([ + onLoadMore(state), + new Promise((resolve) => setTimeout(resolve, interval)) + ]).finally(() => { + promise.value = null; + nextTick(() => checkAndLoad()); + }); + } + } + } + watch( + () => [state.arrivedState[direction], isElementVisible.value], + checkAndLoad, + { immediate: true } + ); + return { + isLoading + }; +} +var defaultEvents = ["mousedown", "mouseup", "keydown", "keyup"]; +function useKeyModifier(modifier, options = {}) { + const { + events: events2 = defaultEvents, + document: document2 = defaultDocument, + initial = null + } = options; + const state = ref(initial); + if (document2) { + events2.forEach((listenerEvent) => { + useEventListener(document2, listenerEvent, (evt) => { + if (typeof evt.getModifierState === "function") + state.value = evt.getModifierState(modifier); + }); + }); + } + return state; +} +function useLocalStorage(key, initialValue, options = {}) { + const { window: window2 = defaultWindow } = options; + return useStorage(key, initialValue, window2 == null ? void 0 : window2.localStorage, options); +} +var DefaultMagicKeysAliasMap = { + ctrl: "control", + command: "meta", + cmd: "meta", + option: "alt", + up: "arrowup", + down: "arrowdown", + left: "arrowleft", + right: "arrowright" +}; +function useMagicKeys(options = {}) { + const { + reactive: useReactive = false, + target = defaultWindow, + aliasMap = DefaultMagicKeysAliasMap, + passive = true, + onEventFired = noop + } = options; + const current = reactive(/* @__PURE__ */ new Set()); + const obj = { + toJSON() { + return {}; + }, + current + }; + const refs = useReactive ? reactive(obj) : obj; + const metaDeps = /* @__PURE__ */ new Set(); + const usedKeys = /* @__PURE__ */ new Set(); + function setRefs(key, value) { + if (key in refs) { + if (useReactive) + refs[key] = value; + else + refs[key].value = value; + } + } + function reset() { + current.clear(); + for (const key of usedKeys) + setRefs(key, false); + } + function updateRefs(e, value) { + var _a, _b; + const key = (_a = e.key) == null ? void 0 : _a.toLowerCase(); + const code = (_b = e.code) == null ? void 0 : _b.toLowerCase(); + const values = [code, key].filter(Boolean); + if (key) { + if (value) + current.add(key); + else + current.delete(key); + } + for (const key2 of values) { + usedKeys.add(key2); + setRefs(key2, value); + } + if (key === "meta" && !value) { + metaDeps.forEach((key2) => { + current.delete(key2); + setRefs(key2, false); + }); + metaDeps.clear(); + } else if (typeof e.getModifierState === "function" && e.getModifierState("Meta") && value) { + [...current, ...values].forEach((key2) => metaDeps.add(key2)); + } + } + useEventListener(target, "keydown", (e) => { + updateRefs(e, true); + return onEventFired(e); + }, { passive }); + useEventListener(target, "keyup", (e) => { + updateRefs(e, false); + return onEventFired(e); + }, { passive }); + useEventListener("blur", reset, { passive: true }); + useEventListener("focus", reset, { passive: true }); + const proxy = new Proxy( + refs, + { + get(target2, prop, rec) { + if (typeof prop !== "string") + return Reflect.get(target2, prop, rec); + prop = prop.toLowerCase(); + if (prop in aliasMap) + prop = aliasMap[prop]; + if (!(prop in refs)) { + if (/[+_-]/.test(prop)) { + const keys2 = prop.split(/[+_-]/g).map((i) => i.trim()); + refs[prop] = computed(() => keys2.every((key) => toValue(proxy[key]))); + } else { + refs[prop] = ref(false); + } + } + const r = Reflect.get(target2, prop, rec); + return useReactive ? toValue(r) : r; + } + } + ); + return proxy; +} +function usingElRef(source, cb) { + if (toValue(source)) + cb(toValue(source)); +} +function timeRangeToArray(timeRanges) { + let ranges = []; + for (let i = 0; i < timeRanges.length; ++i) + ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]]; + return ranges; +} +function tracksToArray(tracks) { + return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType })); +} +var defaultOptions = { + src: "", + tracks: [] +}; +function useMediaControls(target, options = {}) { + target = toRef2(target); + options = { + ...defaultOptions, + ...options + }; + const { + document: document2 = defaultDocument + } = options; + const currentTime = ref(0); + const duration = ref(0); + const seeking = ref(false); + const volume = ref(1); + const waiting = ref(false); + const ended = ref(false); + const playing = ref(false); + const rate = ref(1); + const stalled = ref(false); + const buffered = ref([]); + const tracks = ref([]); + const selectedTrack = ref(-1); + const isPictureInPicture = ref(false); + const muted = ref(false); + const supportsPictureInPicture = document2 && "pictureInPictureEnabled" in document2; + const sourceErrorEvent = createEventHook(); + const disableTrack = (track) => { + usingElRef(target, (el) => { + if (track) { + const id = typeof track === "number" ? track : track.id; + el.textTracks[id].mode = "disabled"; + } else { + for (let i = 0; i < el.textTracks.length; ++i) + el.textTracks[i].mode = "disabled"; + } + selectedTrack.value = -1; + }); + }; + const enableTrack = (track, disableTracks = true) => { + usingElRef(target, (el) => { + const id = typeof track === "number" ? track : track.id; + if (disableTracks) + disableTrack(); + el.textTracks[id].mode = "showing"; + selectedTrack.value = id; + }); + }; + const togglePictureInPicture = () => { + return new Promise((resolve, reject) => { + usingElRef(target, async (el) => { + if (supportsPictureInPicture) { + if (!isPictureInPicture.value) { + el.requestPictureInPicture().then(resolve).catch(reject); + } else { + document2.exitPictureInPicture().then(resolve).catch(reject); + } + } + }); + }); + }; + watchEffect(() => { + if (!document2) + return; + const el = toValue(target); + if (!el) + return; + const src = toValue(options.src); + let sources = []; + if (!src) + return; + if (typeof src === "string") + sources = [{ src }]; + else if (Array.isArray(src)) + sources = src; + else if (isObject(src)) + sources = [src]; + el.querySelectorAll("source").forEach((e) => { + e.removeEventListener("error", sourceErrorEvent.trigger); + e.remove(); + }); + sources.forEach(({ src: src2, type }) => { + const source = document2.createElement("source"); + source.setAttribute("src", src2); + source.setAttribute("type", type || ""); + source.addEventListener("error", sourceErrorEvent.trigger); + el.appendChild(source); + }); + el.load(); + }); + tryOnScopeDispose(() => { + const el = toValue(target); + if (!el) + return; + el.querySelectorAll("source").forEach((e) => e.removeEventListener("error", sourceErrorEvent.trigger)); + }); + watch([target, volume], () => { + const el = toValue(target); + if (!el) + return; + el.volume = volume.value; + }); + watch([target, muted], () => { + const el = toValue(target); + if (!el) + return; + el.muted = muted.value; + }); + watch([target, rate], () => { + const el = toValue(target); + if (!el) + return; + el.playbackRate = rate.value; + }); + watchEffect(() => { + if (!document2) + return; + const textTracks = toValue(options.tracks); + const el = toValue(target); + if (!textTracks || !textTracks.length || !el) + return; + el.querySelectorAll("track").forEach((e) => e.remove()); + textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => { + const track = document2.createElement("track"); + track.default = isDefault || false; + track.kind = kind; + track.label = label; + track.src = src; + track.srclang = srcLang; + if (track.default) + selectedTrack.value = i; + el.appendChild(track); + }); + }); + const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => { + const el = toValue(target); + if (!el) + return; + el.currentTime = time; + }); + const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => { + const el = toValue(target); + if (!el) + return; + isPlaying ? el.play() : el.pause(); + }); + useEventListener(target, "timeupdate", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime)); + useEventListener(target, "durationchange", () => duration.value = toValue(target).duration); + useEventListener(target, "progress", () => buffered.value = timeRangeToArray(toValue(target).buffered)); + useEventListener(target, "seeking", () => seeking.value = true); + useEventListener(target, "seeked", () => seeking.value = false); + useEventListener(target, ["waiting", "loadstart"], () => { + waiting.value = true; + ignorePlayingUpdates(() => playing.value = false); + }); + useEventListener(target, "loadeddata", () => waiting.value = false); + useEventListener(target, "playing", () => { + waiting.value = false; + ended.value = false; + ignorePlayingUpdates(() => playing.value = true); + }); + useEventListener(target, "ratechange", () => rate.value = toValue(target).playbackRate); + useEventListener(target, "stalled", () => stalled.value = true); + useEventListener(target, "ended", () => ended.value = true); + useEventListener(target, "pause", () => ignorePlayingUpdates(() => playing.value = false)); + useEventListener(target, "play", () => ignorePlayingUpdates(() => playing.value = true)); + useEventListener(target, "enterpictureinpicture", () => isPictureInPicture.value = true); + useEventListener(target, "leavepictureinpicture", () => isPictureInPicture.value = false); + useEventListener(target, "volumechange", () => { + const el = toValue(target); + if (!el) + return; + volume.value = el.volume; + muted.value = el.muted; + }); + const listeners = []; + const stop = watch([target], () => { + const el = toValue(target); + if (!el) + return; + stop(); + listeners[0] = useEventListener(el.textTracks, "addtrack", () => tracks.value = tracksToArray(el.textTracks)); + listeners[1] = useEventListener(el.textTracks, "removetrack", () => tracks.value = tracksToArray(el.textTracks)); + listeners[2] = useEventListener(el.textTracks, "change", () => tracks.value = tracksToArray(el.textTracks)); + }); + tryOnScopeDispose(() => listeners.forEach((listener) => listener())); + return { + currentTime, + duration, + waiting, + seeking, + ended, + stalled, + buffered, + playing, + rate, + // Volume + volume, + muted, + // Tracks + tracks, + selectedTrack, + enableTrack, + disableTrack, + // Picture in Picture + supportsPictureInPicture, + togglePictureInPicture, + isPictureInPicture, + // Events + onSourceError: sourceErrorEvent.on + }; +} +function getMapVue2Compat() { + const data = shallowReactive({}); + return { + get: (key) => data[key], + set: (key, value) => set(data, key, value), + has: (key) => hasOwn(data, key), + delete: (key) => del(data, key), + clear: () => { + Object.keys(data).forEach((key) => { + del(data, key); + }); + } + }; +} +function useMemoize(resolver, options) { + const initCache = () => { + if (options == null ? void 0 : options.cache) + return shallowReactive(options.cache); + if (isVue2) + return getMapVue2Compat(); + return shallowReactive(/* @__PURE__ */ new Map()); + }; + const cache = initCache(); + const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args); + const _loadData = (key, ...args) => { + cache.set(key, resolver(...args)); + return cache.get(key); + }; + const loadData = (...args) => _loadData(generateKey(...args), ...args); + const deleteData = (...args) => { + cache.delete(generateKey(...args)); + }; + const clearData = () => { + cache.clear(); + }; + const memoized = (...args) => { + const key = generateKey(...args); + if (cache.has(key)) + return cache.get(key); + return _loadData(key, ...args); + }; + memoized.load = loadData; + memoized.delete = deleteData; + memoized.clear = clearData; + memoized.generateKey = generateKey; + memoized.cache = cache; + return memoized; +} +function useMemory(options = {}) { + const memory = ref(); + const isSupported = useSupported(() => typeof performance !== "undefined" && "memory" in performance); + if (isSupported.value) { + const { interval = 1e3 } = options; + useIntervalFn(() => { + memory.value = performance.memory; + }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback }); + } + return { isSupported, memory }; +} +var UseMouseBuiltinExtractors = { + page: (event) => [event.pageX, event.pageY], + client: (event) => [event.clientX, event.clientY], + screen: (event) => [event.screenX, event.screenY], + movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY] +}; +function useMouse(options = {}) { + const { + type = "page", + touch = true, + resetOnTouchEnds = false, + initialValue = { x: 0, y: 0 }, + window: window2 = defaultWindow, + target = window2, + scroll = true, + eventFilter + } = options; + let _prevMouseEvent = null; + const x = ref(initialValue.x); + const y = ref(initialValue.y); + const sourceType = ref(null); + const extractor = typeof type === "function" ? type : UseMouseBuiltinExtractors[type]; + const mouseHandler = (event) => { + const result = extractor(event); + _prevMouseEvent = event; + if (result) { + [x.value, y.value] = result; + sourceType.value = "mouse"; + } + }; + const touchHandler = (event) => { + if (event.touches.length > 0) { + const result = extractor(event.touches[0]); + if (result) { + [x.value, y.value] = result; + sourceType.value = "touch"; + } + } + }; + const scrollHandler = () => { + if (!_prevMouseEvent || !window2) + return; + const pos = extractor(_prevMouseEvent); + if (_prevMouseEvent instanceof MouseEvent && pos) { + x.value = pos[0] + window2.scrollX; + y.value = pos[1] + window2.scrollY; + } + }; + const reset = () => { + x.value = initialValue.x; + y.value = initialValue.y; + }; + const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event); + const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event); + const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler(); + if (target) { + const listenerOptions = { passive: true }; + useEventListener(target, ["mousemove", "dragover"], mouseHandlerWrapper, listenerOptions); + if (touch && type !== "movement") { + useEventListener(target, ["touchstart", "touchmove"], touchHandlerWrapper, listenerOptions); + if (resetOnTouchEnds) + useEventListener(target, "touchend", reset, listenerOptions); + } + if (scroll && type === "page") + useEventListener(window2, "scroll", scrollHandlerWrapper, { passive: true }); + } + return { + x, + y, + sourceType + }; +} +function useMouseInElement(target, options = {}) { + const { + handleOutside = true, + window: window2 = defaultWindow + } = options; + const type = options.type || "page"; + const { x, y, sourceType } = useMouse(options); + const targetRef = ref(target != null ? target : window2 == null ? void 0 : window2.document.body); + const elementX = ref(0); + const elementY = ref(0); + const elementPositionX = ref(0); + const elementPositionY = ref(0); + const elementHeight = ref(0); + const elementWidth = ref(0); + const isOutside = ref(true); + let stop = () => { + }; + if (window2) { + stop = watch( + [targetRef, x, y], + () => { + const el = unrefElement(targetRef); + if (!el) + return; + const { + left, + top, + width, + height + } = el.getBoundingClientRect(); + elementPositionX.value = left + (type === "page" ? window2.pageXOffset : 0); + elementPositionY.value = top + (type === "page" ? window2.pageYOffset : 0); + elementHeight.value = height; + elementWidth.value = width; + const elX = x.value - elementPositionX.value; + const elY = y.value - elementPositionY.value; + isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height; + if (handleOutside || !isOutside.value) { + elementX.value = elX; + elementY.value = elY; + } + }, + { immediate: true } + ); + useEventListener(document, "mouseleave", () => { + isOutside.value = true; + }); + } + return { + x, + y, + sourceType, + elementX, + elementY, + elementPositionX, + elementPositionY, + elementHeight, + elementWidth, + isOutside, + stop + }; +} +function useMousePressed(options = {}) { + const { + touch = true, + drag = true, + capture = false, + initialValue = false, + window: window2 = defaultWindow + } = options; + const pressed = ref(initialValue); + const sourceType = ref(null); + if (!window2) { + return { + pressed, + sourceType + }; + } + const onPressed = (srcType) => () => { + pressed.value = true; + sourceType.value = srcType; + }; + const onReleased = () => { + pressed.value = false; + sourceType.value = null; + }; + const target = computed(() => unrefElement(options.target) || window2); + useEventListener(target, "mousedown", onPressed("mouse"), { passive: true, capture }); + useEventListener(window2, "mouseleave", onReleased, { passive: true, capture }); + useEventListener(window2, "mouseup", onReleased, { passive: true, capture }); + if (drag) { + useEventListener(target, "dragstart", onPressed("mouse"), { passive: true, capture }); + useEventListener(window2, "drop", onReleased, { passive: true, capture }); + useEventListener(window2, "dragend", onReleased, { passive: true, capture }); + } + if (touch) { + useEventListener(target, "touchstart", onPressed("touch"), { passive: true, capture }); + useEventListener(window2, "touchend", onReleased, { passive: true, capture }); + useEventListener(window2, "touchcancel", onReleased, { passive: true, capture }); + } + return { + pressed, + sourceType + }; +} +function useNavigatorLanguage(options = {}) { + const { window: window2 = defaultWindow } = options; + const navigator = window2 == null ? void 0 : window2.navigator; + const isSupported = useSupported(() => navigator && "language" in navigator); + const language = ref(navigator == null ? void 0 : navigator.language); + useEventListener(window2, "languagechange", () => { + if (navigator) + language.value = navigator.language; + }); + return { + isSupported, + language + }; +} +function useNetwork(options = {}) { + const { window: window2 = defaultWindow } = options; + const navigator = window2 == null ? void 0 : window2.navigator; + const isSupported = useSupported(() => navigator && "connection" in navigator); + const isOnline = ref(true); + const saveData = ref(false); + const offlineAt = ref(void 0); + const onlineAt = ref(void 0); + const downlink = ref(void 0); + const downlinkMax = ref(void 0); + const rtt = ref(void 0); + const effectiveType = ref(void 0); + const type = ref("unknown"); + const connection = isSupported.value && navigator.connection; + function updateNetworkInformation() { + if (!navigator) + return; + isOnline.value = navigator.onLine; + offlineAt.value = isOnline.value ? void 0 : Date.now(); + onlineAt.value = isOnline.value ? Date.now() : void 0; + if (connection) { + downlink.value = connection.downlink; + downlinkMax.value = connection.downlinkMax; + effectiveType.value = connection.effectiveType; + rtt.value = connection.rtt; + saveData.value = connection.saveData; + type.value = connection.type; + } + } + if (window2) { + useEventListener(window2, "offline", () => { + isOnline.value = false; + offlineAt.value = Date.now(); + }); + useEventListener(window2, "online", () => { + isOnline.value = true; + onlineAt.value = Date.now(); + }); + } + if (connection) + useEventListener(connection, "change", updateNetworkInformation, false); + updateNetworkInformation(); + return { + isSupported, + isOnline, + saveData, + offlineAt, + onlineAt, + downlink, + downlinkMax, + effectiveType, + rtt, + type + }; +} +function useNow(options = {}) { + const { + controls: exposeControls = false, + interval = "requestAnimationFrame" + } = options; + const now2 = ref(/* @__PURE__ */ new Date()); + const update = () => now2.value = /* @__PURE__ */ new Date(); + const controls = interval === "requestAnimationFrame" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true }); + if (exposeControls) { + return { + now: now2, + ...controls + }; + } else { + return now2; + } +} +function useObjectUrl(object) { + const url = ref(); + const release = () => { + if (url.value) + URL.revokeObjectURL(url.value); + url.value = void 0; + }; + watch( + () => toValue(object), + (newObject) => { + release(); + if (newObject) + url.value = URL.createObjectURL(newObject); + }, + { immediate: true } + ); + tryOnScopeDispose(release); + return readonly(url); +} +function useClamp(value, min, max) { + if (typeof value === "function" || isReadonly(value)) + return computed(() => clamp(toValue(value), toValue(min), toValue(max))); + const _value = ref(value); + return computed({ + get() { + return _value.value = clamp(_value.value, toValue(min), toValue(max)); + }, + set(value2) { + _value.value = clamp(value2, toValue(min), toValue(max)); + } + }); +} +function useOffsetPagination(options) { + const { + total = Number.POSITIVE_INFINITY, + pageSize = 10, + page = 1, + onPageChange = noop, + onPageSizeChange = noop, + onPageCountChange = noop + } = options; + const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY); + const pageCount = computed(() => Math.max( + 1, + Math.ceil(toValue(total) / toValue(currentPageSize)) + )); + const currentPage = useClamp(page, 1, pageCount); + const isFirstPage = computed(() => currentPage.value === 1); + const isLastPage = computed(() => currentPage.value === pageCount.value); + if (isRef(page)) { + syncRef(page, currentPage, { + direction: isReadonly(page) ? "ltr" : "both" + }); + } + if (isRef(pageSize)) { + syncRef(pageSize, currentPageSize, { + direction: isReadonly(pageSize) ? "ltr" : "both" + }); + } + function prev() { + currentPage.value--; + } + function next() { + currentPage.value++; + } + const returnValue = { + currentPage, + currentPageSize, + pageCount, + isFirstPage, + isLastPage, + prev, + next + }; + watch(currentPage, () => { + onPageChange(reactive(returnValue)); + }); + watch(currentPageSize, () => { + onPageSizeChange(reactive(returnValue)); + }); + watch(pageCount, () => { + onPageCountChange(reactive(returnValue)); + }); + return returnValue; +} +function useOnline(options = {}) { + const { isOnline } = useNetwork(options); + return isOnline; +} +function usePageLeave(options = {}) { + const { window: window2 = defaultWindow } = options; + const isLeft = ref(false); + const handler = (event) => { + if (!window2) + return; + event = event || window2.event; + const from = event.relatedTarget || event.toElement; + isLeft.value = !from; + }; + if (window2) { + useEventListener(window2, "mouseout", handler, { passive: true }); + useEventListener(window2.document, "mouseleave", handler, { passive: true }); + useEventListener(window2.document, "mouseenter", handler, { passive: true }); + } + return isLeft; +} +function useScreenOrientation(options = {}) { + const { + window: window2 = defaultWindow + } = options; + const isSupported = useSupported(() => window2 && "screen" in window2 && "orientation" in window2.screen); + const screenOrientation = isSupported.value ? window2.screen.orientation : {}; + const orientation = ref(screenOrientation.type); + const angle = ref(screenOrientation.angle || 0); + if (isSupported.value) { + useEventListener(window2, "orientationchange", () => { + orientation.value = screenOrientation.type; + angle.value = screenOrientation.angle; + }); + } + const lockOrientation = (type) => { + if (isSupported.value && typeof screenOrientation.lock === "function") + return screenOrientation.lock(type); + return Promise.reject(new Error("Not supported")); + }; + const unlockOrientation = () => { + if (isSupported.value && typeof screenOrientation.unlock === "function") + screenOrientation.unlock(); + }; + return { + isSupported, + orientation, + angle, + lockOrientation, + unlockOrientation + }; +} +function useParallax(target, options = {}) { + const { + deviceOrientationTiltAdjust = (i) => i, + deviceOrientationRollAdjust = (i) => i, + mouseTiltAdjust = (i) => i, + mouseRollAdjust = (i) => i, + window: window2 = defaultWindow + } = options; + const orientation = reactive(useDeviceOrientation({ window: window2 })); + const screenOrientation = reactive(useScreenOrientation({ window: window2 })); + const { + elementX: x, + elementY: y, + elementWidth: width, + elementHeight: height + } = useMouseInElement(target, { handleOutside: false, window: window2 }); + const source = computed(() => { + if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) { + return "deviceOrientation"; + } + return "mouse"; + }); + const roll = computed(() => { + if (source.value === "deviceOrientation") { + let value; + switch (screenOrientation.orientation) { + case "landscape-primary": + value = orientation.gamma / 90; + break; + case "landscape-secondary": + value = -orientation.gamma / 90; + break; + case "portrait-primary": + value = -orientation.beta / 90; + break; + case "portrait-secondary": + value = orientation.beta / 90; + break; + default: + value = -orientation.beta / 90; + } + return deviceOrientationRollAdjust(value); + } else { + const value = -(y.value - height.value / 2) / height.value; + return mouseRollAdjust(value); + } + }); + const tilt = computed(() => { + if (source.value === "deviceOrientation") { + let value; + switch (screenOrientation.orientation) { + case "landscape-primary": + value = orientation.beta / 90; + break; + case "landscape-secondary": + value = -orientation.beta / 90; + break; + case "portrait-primary": + value = orientation.gamma / 90; + break; + case "portrait-secondary": + value = -orientation.gamma / 90; + break; + default: + value = orientation.gamma / 90; + } + return deviceOrientationTiltAdjust(value); + } else { + const value = (x.value - width.value / 2) / width.value; + return mouseTiltAdjust(value); + } + }); + return { roll, tilt, source }; +} +function useParentElement(element = useCurrentElement()) { + const parentElement = shallowRef(); + const update = () => { + const el = unrefElement(element); + if (el) + parentElement.value = el.parentElement; + }; + tryOnMounted(update); + watch(() => toValue(element), update); + return parentElement; +} +function usePerformanceObserver(options, callback) { + const { + window: window2 = defaultWindow, + immediate = true, + ...performanceOptions + } = options; + const isSupported = useSupported(() => window2 && "PerformanceObserver" in window2); + let observer; + const stop = () => { + observer == null ? void 0 : observer.disconnect(); + }; + const start = () => { + if (isSupported.value) { + stop(); + observer = new PerformanceObserver(callback); + observer.observe(performanceOptions); + } + }; + tryOnScopeDispose(stop); + if (immediate) + start(); + return { + isSupported, + start, + stop + }; +} +var defaultState = { + x: 0, + y: 0, + pointerId: 0, + pressure: 0, + tiltX: 0, + tiltY: 0, + width: 0, + height: 0, + twist: 0, + pointerType: null +}; +var keys = Object.keys(defaultState); +function usePointer(options = {}) { + const { + target = defaultWindow + } = options; + const isInside = ref(false); + const state = ref(options.initialValue || {}); + Object.assign(state.value, defaultState, state.value); + const handler = (event) => { + isInside.value = true; + if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType)) + return; + state.value = objectPick(event, keys, false); + }; + if (target) { + const listenerOptions = { passive: true }; + useEventListener(target, ["pointerdown", "pointermove", "pointerup"], handler, listenerOptions); + useEventListener(target, "pointerleave", () => isInside.value = false, listenerOptions); + } + return { + ...toRefs2(state), + isInside + }; +} +function usePointerLock(target, options = {}) { + const { document: document2 = defaultDocument } = options; + const isSupported = useSupported(() => document2 && "pointerLockElement" in document2); + const element = ref(); + const triggerElement = ref(); + let targetElement; + if (isSupported.value) { + useEventListener(document2, "pointerlockchange", () => { + var _a; + const currentElement = (_a = document2.pointerLockElement) != null ? _a : element.value; + if (targetElement && currentElement === targetElement) { + element.value = document2.pointerLockElement; + if (!element.value) + targetElement = triggerElement.value = null; + } + }); + useEventListener(document2, "pointerlockerror", () => { + var _a; + const currentElement = (_a = document2.pointerLockElement) != null ? _a : element.value; + if (targetElement && currentElement === targetElement) { + const action = document2.pointerLockElement ? "release" : "acquire"; + throw new Error(`Failed to ${action} pointer lock.`); + } + }); + } + async function lock(e) { + var _a; + if (!isSupported.value) + throw new Error("Pointer Lock API is not supported by your browser."); + triggerElement.value = e instanceof Event ? e.currentTarget : null; + targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e); + if (!targetElement) + throw new Error("Target element undefined."); + targetElement.requestPointerLock(); + return await until(element).toBe(targetElement); + } + async function unlock() { + if (!element.value) + return false; + document2.exitPointerLock(); + await until(element).toBeNull(); + return true; + } + return { + isSupported, + element, + triggerElement, + lock, + unlock + }; +} +function usePointerSwipe(target, options = {}) { + const targetRef = toRef2(target); + const { + threshold = 50, + onSwipe, + onSwipeEnd, + onSwipeStart, + disableTextSelect = false + } = options; + const posStart = reactive({ x: 0, y: 0 }); + const updatePosStart = (x, y) => { + posStart.x = x; + posStart.y = y; + }; + const posEnd = reactive({ x: 0, y: 0 }); + const updatePosEnd = (x, y) => { + posEnd.x = x; + posEnd.y = y; + }; + const distanceX = computed(() => posStart.x - posEnd.x); + const distanceY = computed(() => posStart.y - posEnd.y); + const { max, abs } = Math; + const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold); + const isSwiping = ref(false); + const isPointerDown = ref(false); + const direction = computed(() => { + if (!isThresholdExceeded.value) + return "none"; + if (abs(distanceX.value) > abs(distanceY.value)) { + return distanceX.value > 0 ? "left" : "right"; + } else { + return distanceY.value > 0 ? "up" : "down"; + } + }); + const eventIsAllowed = (e) => { + var _a, _b, _c; + const isReleasingButton = e.buttons === 0; + const isPrimaryButton = e.buttons === 1; + return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true; + }; + const stops = [ + useEventListener(target, "pointerdown", (e) => { + if (!eventIsAllowed(e)) + return; + isPointerDown.value = true; + const eventTarget = e.target; + eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId); + const { clientX: x, clientY: y } = e; + updatePosStart(x, y); + updatePosEnd(x, y); + onSwipeStart == null ? void 0 : onSwipeStart(e); + }), + useEventListener(target, "pointermove", (e) => { + if (!eventIsAllowed(e)) + return; + if (!isPointerDown.value) + return; + const { clientX: x, clientY: y } = e; + updatePosEnd(x, y); + if (!isSwiping.value && isThresholdExceeded.value) + isSwiping.value = true; + if (isSwiping.value) + onSwipe == null ? void 0 : onSwipe(e); + }), + useEventListener(target, "pointerup", (e) => { + if (!eventIsAllowed(e)) + return; + if (isSwiping.value) + onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value); + isPointerDown.value = false; + isSwiping.value = false; + }) + ]; + tryOnMounted(() => { + var _a, _b, _c, _d, _e, _f, _g, _h; + (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty("touch-action", "none"); + if (disableTextSelect) { + (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty("-webkit-user-select", "none"); + (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty("-ms-user-select", "none"); + (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty("user-select", "none"); + } + }); + const stop = () => stops.forEach((s) => s()); + return { + isSwiping: readonly(isSwiping), + direction: readonly(direction), + posStart: readonly(posStart), + posEnd: readonly(posEnd), + distanceX, + distanceY, + stop + }; +} +function usePreferredColorScheme(options) { + const isLight = useMediaQuery("(prefers-color-scheme: light)", options); + const isDark = useMediaQuery("(prefers-color-scheme: dark)", options); + return computed(() => { + if (isDark.value) + return "dark"; + if (isLight.value) + return "light"; + return "no-preference"; + }); +} +function usePreferredContrast(options) { + const isMore = useMediaQuery("(prefers-contrast: more)", options); + const isLess = useMediaQuery("(prefers-contrast: less)", options); + const isCustom = useMediaQuery("(prefers-contrast: custom)", options); + return computed(() => { + if (isMore.value) + return "more"; + if (isLess.value) + return "less"; + if (isCustom.value) + return "custom"; + return "no-preference"; + }); +} +function usePreferredLanguages(options = {}) { + const { window: window2 = defaultWindow } = options; + if (!window2) + return ref(["en"]); + const navigator = window2.navigator; + const value = ref(navigator.languages); + useEventListener(window2, "languagechange", () => { + value.value = navigator.languages; + }); + return value; +} +function usePreferredReducedMotion(options) { + const isReduced = useMediaQuery("(prefers-reduced-motion: reduce)", options); + return computed(() => { + if (isReduced.value) + return "reduce"; + return "no-preference"; + }); +} +function usePrevious(value, initialValue) { + const previous = shallowRef(initialValue); + watch( + toRef2(value), + (_, oldValue) => { + previous.value = oldValue; + }, + { flush: "sync" } + ); + return readonly(previous); +} +var topVarName = "--vueuse-safe-area-top"; +var rightVarName = "--vueuse-safe-area-right"; +var bottomVarName = "--vueuse-safe-area-bottom"; +var leftVarName = "--vueuse-safe-area-left"; +function useScreenSafeArea() { + const top = ref(""); + const right = ref(""); + const bottom = ref(""); + const left = ref(""); + if (isClient) { + const topCssVar = useCssVar(topVarName); + const rightCssVar = useCssVar(rightVarName); + const bottomCssVar = useCssVar(bottomVarName); + const leftCssVar = useCssVar(leftVarName); + topCssVar.value = "env(safe-area-inset-top, 0px)"; + rightCssVar.value = "env(safe-area-inset-right, 0px)"; + bottomCssVar.value = "env(safe-area-inset-bottom, 0px)"; + leftCssVar.value = "env(safe-area-inset-left, 0px)"; + update(); + useEventListener("resize", useDebounceFn(update)); + } + function update() { + top.value = getValue(topVarName); + right.value = getValue(rightVarName); + bottom.value = getValue(bottomVarName); + left.value = getValue(leftVarName); + } + return { + top, + right, + bottom, + left, + update + }; +} +function getValue(position) { + return getComputedStyle(document.documentElement).getPropertyValue(position); +} +function useScriptTag(src, onLoaded = noop, options = {}) { + const { + immediate = true, + manual = false, + type = "text/javascript", + async = true, + crossOrigin, + referrerPolicy, + noModule, + defer, + document: document2 = defaultDocument, + attrs = {} + } = options; + const scriptTag = ref(null); + let _promise = null; + const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => { + const resolveWithElement = (el2) => { + scriptTag.value = el2; + resolve(el2); + return el2; + }; + if (!document2) { + resolve(false); + return; + } + let shouldAppend = false; + let el = document2.querySelector(`script[src="${toValue(src)}"]`); + if (!el) { + el = document2.createElement("script"); + el.type = type; + el.async = async; + el.src = toValue(src); + if (defer) + el.defer = defer; + if (crossOrigin) + el.crossOrigin = crossOrigin; + if (noModule) + el.noModule = noModule; + if (referrerPolicy) + el.referrerPolicy = referrerPolicy; + Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value)); + shouldAppend = true; + } else if (el.hasAttribute("data-loaded")) { + resolveWithElement(el); + } + el.addEventListener("error", (event) => reject(event)); + el.addEventListener("abort", (event) => reject(event)); + el.addEventListener("load", () => { + el.setAttribute("data-loaded", "true"); + onLoaded(el); + resolveWithElement(el); + }); + if (shouldAppend) + el = document2.head.appendChild(el); + if (!waitForScriptLoad) + resolveWithElement(el); + }); + const load = (waitForScriptLoad = true) => { + if (!_promise) + _promise = loadScript(waitForScriptLoad); + return _promise; + }; + const unload = () => { + if (!document2) + return; + _promise = null; + if (scriptTag.value) + scriptTag.value = null; + const el = document2.querySelector(`script[src="${toValue(src)}"]`); + if (el) + document2.head.removeChild(el); + }; + if (immediate && !manual) + tryOnMounted(load); + if (!manual) + tryOnUnmounted(unload); + return { scriptTag, load, unload }; +} +function checkOverflowScroll(ele) { + const style = window.getComputedStyle(ele); + if (style.overflowX === "scroll" || style.overflowY === "scroll" || style.overflowX === "auto" && ele.clientWidth < ele.scrollWidth || style.overflowY === "auto" && ele.clientHeight < ele.scrollHeight) { + return true; + } else { + const parent = ele.parentNode; + if (!parent || parent.tagName === "BODY") + return false; + return checkOverflowScroll(parent); + } +} +function preventDefault(rawEvent) { + const e = rawEvent || window.event; + const _target = e.target; + if (checkOverflowScroll(_target)) + return false; + if (e.touches.length > 1) + return true; + if (e.preventDefault) + e.preventDefault(); + return false; +} +var elInitialOverflow = /* @__PURE__ */ new WeakMap(); +function useScrollLock(element, initialState = false) { + const isLocked = ref(initialState); + let stopTouchMoveListener = null; + let initialOverflow = ""; + watch(toRef2(element), (el) => { + const target = resolveElement(toValue(el)); + if (target) { + const ele = target; + if (!elInitialOverflow.get(ele)) + elInitialOverflow.set(ele, ele.style.overflow); + if (ele.style.overflow !== "hidden") + initialOverflow = ele.style.overflow; + if (ele.style.overflow === "hidden") + return isLocked.value = true; + if (isLocked.value) + return ele.style.overflow = "hidden"; + } + }, { + immediate: true + }); + const lock = () => { + const el = resolveElement(toValue(element)); + if (!el || isLocked.value) + return; + if (isIOS) { + stopTouchMoveListener = useEventListener( + el, + "touchmove", + (e) => { + preventDefault(e); + }, + { passive: false } + ); + } + el.style.overflow = "hidden"; + isLocked.value = true; + }; + const unlock = () => { + const el = resolveElement(toValue(element)); + if (!el || !isLocked.value) + return; + isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener()); + el.style.overflow = initialOverflow; + elInitialOverflow.delete(el); + isLocked.value = false; + }; + tryOnScopeDispose(unlock); + return computed({ + get() { + return isLocked.value; + }, + set(v) { + if (v) + lock(); + else unlock(); + } + }); +} +function useSessionStorage(key, initialValue, options = {}) { + const { window: window2 = defaultWindow } = options; + return useStorage(key, initialValue, window2 == null ? void 0 : window2.sessionStorage, options); +} +function useShare(shareOptions = {}, options = {}) { + const { navigator = defaultNavigator } = options; + const _navigator = navigator; + const isSupported = useSupported(() => _navigator && "canShare" in _navigator); + const share = async (overrideOptions = {}) => { + if (isSupported.value) { + const data = { + ...toValue(shareOptions), + ...toValue(overrideOptions) + }; + let granted = true; + if (data.files && _navigator.canShare) + granted = _navigator.canShare({ files: data.files }); + if (granted) + return _navigator.share(data); + } + }; + return { + isSupported, + share + }; +} +var defaultSortFn = (source, compareFn) => source.sort(compareFn); +var defaultCompare = (a, b) => a - b; +function useSorted(...args) { + var _a, _b, _c, _d; + const [source] = args; + let compareFn = defaultCompare; + let options = {}; + if (args.length === 2) { + if (typeof args[1] === "object") { + options = args[1]; + compareFn = (_a = options.compareFn) != null ? _a : defaultCompare; + } else { + compareFn = (_b = args[1]) != null ? _b : defaultCompare; + } + } else if (args.length > 2) { + compareFn = (_c = args[1]) != null ? _c : defaultCompare; + options = (_d = args[2]) != null ? _d : {}; + } + const { + dirty = false, + sortFn = defaultSortFn + } = options; + if (!dirty) + return computed(() => sortFn([...toValue(source)], compareFn)); + watchEffect(() => { + const result = sortFn(toValue(source), compareFn); + if (isRef(source)) + source.value = result; + else + source.splice(0, source.length, ...result); + }); + return source; +} +function useSpeechRecognition(options = {}) { + const { + interimResults = true, + continuous = true, + window: window2 = defaultWindow + } = options; + const lang = toRef2(options.lang || "en-US"); + const isListening = ref(false); + const isFinal = ref(false); + const result = ref(""); + const error = shallowRef(void 0); + const toggle = (value = !isListening.value) => { + isListening.value = value; + }; + const start = () => { + isListening.value = true; + }; + const stop = () => { + isListening.value = false; + }; + const SpeechRecognition = window2 && (window2.SpeechRecognition || window2.webkitSpeechRecognition); + const isSupported = useSupported(() => SpeechRecognition); + let recognition; + if (isSupported.value) { + recognition = new SpeechRecognition(); + recognition.continuous = continuous; + recognition.interimResults = interimResults; + recognition.lang = toValue(lang); + recognition.onstart = () => { + isFinal.value = false; + }; + watch(lang, (lang2) => { + if (recognition && !isListening.value) + recognition.lang = lang2; + }); + recognition.onresult = (event) => { + const currentResult = event.results[event.resultIndex]; + const { transcript } = currentResult[0]; + isFinal.value = currentResult.isFinal; + result.value = transcript; + error.value = void 0; + }; + recognition.onerror = (event) => { + error.value = event; + }; + recognition.onend = () => { + isListening.value = false; + recognition.lang = toValue(lang); + }; + watch(isListening, () => { + if (isListening.value) + recognition.start(); + else + recognition.stop(); + }); + } + tryOnScopeDispose(() => { + isListening.value = false; + }); + return { + isSupported, + isListening, + isFinal, + recognition, + result, + error, + toggle, + start, + stop + }; +} +function useSpeechSynthesis(text, options = {}) { + const { + pitch = 1, + rate = 1, + volume = 1, + window: window2 = defaultWindow + } = options; + const synth = window2 && window2.speechSynthesis; + const isSupported = useSupported(() => synth); + const isPlaying = ref(false); + const status = ref("init"); + const spokenText = toRef2(text || ""); + const lang = toRef2(options.lang || "en-US"); + const error = shallowRef(void 0); + const toggle = (value = !isPlaying.value) => { + isPlaying.value = value; + }; + const bindEventsForUtterance = (utterance2) => { + utterance2.lang = toValue(lang); + utterance2.voice = toValue(options.voice) || null; + utterance2.pitch = toValue(pitch); + utterance2.rate = toValue(rate); + utterance2.volume = volume; + utterance2.onstart = () => { + isPlaying.value = true; + status.value = "play"; + }; + utterance2.onpause = () => { + isPlaying.value = false; + status.value = "pause"; + }; + utterance2.onresume = () => { + isPlaying.value = true; + status.value = "play"; + }; + utterance2.onend = () => { + isPlaying.value = false; + status.value = "end"; + }; + utterance2.onerror = (event) => { + error.value = event; + }; + }; + const utterance = computed(() => { + isPlaying.value = false; + status.value = "init"; + const newUtterance = new SpeechSynthesisUtterance(spokenText.value); + bindEventsForUtterance(newUtterance); + return newUtterance; + }); + const speak = () => { + synth.cancel(); + utterance && synth.speak(utterance.value); + }; + const stop = () => { + synth.cancel(); + isPlaying.value = false; + }; + if (isSupported.value) { + bindEventsForUtterance(utterance.value); + watch(lang, (lang2) => { + if (utterance.value && !isPlaying.value) + utterance.value.lang = lang2; + }); + if (options.voice) { + watch(options.voice, () => { + synth.cancel(); + }); + } + watch(isPlaying, () => { + if (isPlaying.value) + synth.resume(); + else + synth.pause(); + }); + } + tryOnScopeDispose(() => { + isPlaying.value = false; + }); + return { + isSupported, + isPlaying, + status, + utterance, + error, + stop, + toggle, + speak + }; +} +function useStepper(steps, initialStep) { + const stepsRef = ref(steps); + const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value)); + const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0])); + const current = computed(() => at(index.value)); + const isFirst = computed(() => index.value === 0); + const isLast = computed(() => index.value === stepNames.value.length - 1); + const next = computed(() => stepNames.value[index.value + 1]); + const previous = computed(() => stepNames.value[index.value - 1]); + function at(index2) { + if (Array.isArray(stepsRef.value)) + return stepsRef.value[index2]; + return stepsRef.value[stepNames.value[index2]]; + } + function get2(step) { + if (!stepNames.value.includes(step)) + return; + return at(stepNames.value.indexOf(step)); + } + function goTo(step) { + if (stepNames.value.includes(step)) + index.value = stepNames.value.indexOf(step); + } + function goToNext() { + if (isLast.value) + return; + index.value++; + } + function goToPrevious() { + if (isFirst.value) + return; + index.value--; + } + function goBackTo(step) { + if (isAfter(step)) + goTo(step); + } + function isNext(step) { + return stepNames.value.indexOf(step) === index.value + 1; + } + function isPrevious(step) { + return stepNames.value.indexOf(step) === index.value - 1; + } + function isCurrent(step) { + return stepNames.value.indexOf(step) === index.value; + } + function isBefore(step) { + return index.value < stepNames.value.indexOf(step); + } + function isAfter(step) { + return index.value > stepNames.value.indexOf(step); + } + return { + steps: stepsRef, + stepNames, + index, + current, + next, + previous, + isFirst, + isLast, + at, + get: get2, + goTo, + goToNext, + goToPrevious, + goBackTo, + isNext, + isPrevious, + isCurrent, + isBefore, + isAfter + }; +} +function useStorageAsync(key, initialValue, storage, options = {}) { + var _a; + const { + flush = "pre", + deep = true, + listenToStorageChanges = true, + writeDefaults = true, + mergeDefaults = false, + shallow, + window: window2 = defaultWindow, + eventFilter, + onError = (e) => { + console.error(e); + } + } = options; + const rawInit = toValue(initialValue); + const type = guessSerializerType(rawInit); + const data = (shallow ? shallowRef : ref)(initialValue); + const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type]; + if (!storage) { + try { + storage = getSSRHandler("getDefaultStorageAsync", () => { + var _a2; + return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage; + })(); + } catch (e) { + onError(e); + } + } + async function read(event) { + if (!storage || event && event.key !== key) + return; + try { + const rawValue = event ? event.newValue : await storage.getItem(key); + if (rawValue == null) { + data.value = rawInit; + if (writeDefaults && rawInit !== null) + await storage.setItem(key, await serializer.write(rawInit)); + } else if (mergeDefaults) { + const value = await serializer.read(rawValue); + if (typeof mergeDefaults === "function") + data.value = mergeDefaults(value, rawInit); + else if (type === "object" && !Array.isArray(value)) + data.value = { ...rawInit, ...value }; + else data.value = value; + } else { + data.value = await serializer.read(rawValue); + } + } catch (e) { + onError(e); + } + } + read(); + if (window2 && listenToStorageChanges) + useEventListener(window2, "storage", (e) => Promise.resolve().then(() => read(e))); + if (storage) { + watchWithFilter( + data, + async () => { + try { + if (data.value == null) + await storage.removeItem(key); + else + await storage.setItem(key, await serializer.write(data.value)); + } catch (e) { + onError(e); + } + }, + { + flush, + deep, + eventFilter + } + ); + } + return data; +} +var _id = 0; +function useStyleTag(css, options = {}) { + const isLoaded = ref(false); + const { + document: document2 = defaultDocument, + immediate = true, + manual = false, + id = `vueuse_styletag_${++_id}` + } = options; + const cssRef = ref(css); + let stop = () => { + }; + const load = () => { + if (!document2) + return; + const el = document2.getElementById(id) || document2.createElement("style"); + if (!el.isConnected) { + el.id = id; + if (options.media) + el.media = options.media; + document2.head.appendChild(el); + } + if (isLoaded.value) + return; + stop = watch( + cssRef, + (value) => { + el.textContent = value; + }, + { immediate: true } + ); + isLoaded.value = true; + }; + const unload = () => { + if (!document2 || !isLoaded.value) + return; + stop(); + document2.head.removeChild(document2.getElementById(id)); + isLoaded.value = false; + }; + if (immediate && !manual) + tryOnMounted(load); + if (!manual) + tryOnScopeDispose(unload); + return { + id, + css: cssRef, + unload, + load, + isLoaded: readonly(isLoaded) + }; +} +function useSwipe(target, options = {}) { + const { + threshold = 50, + onSwipe, + onSwipeEnd, + onSwipeStart, + passive = true, + window: window2 = defaultWindow + } = options; + const coordsStart = reactive({ x: 0, y: 0 }); + const coordsEnd = reactive({ x: 0, y: 0 }); + const diffX = computed(() => coordsStart.x - coordsEnd.x); + const diffY = computed(() => coordsStart.y - coordsEnd.y); + const { max, abs } = Math; + const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold); + const isSwiping = ref(false); + const direction = computed(() => { + if (!isThresholdExceeded.value) + return "none"; + if (abs(diffX.value) > abs(diffY.value)) { + return diffX.value > 0 ? "left" : "right"; + } else { + return diffY.value > 0 ? "up" : "down"; + } + }); + const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY]; + const updateCoordsStart = (x, y) => { + coordsStart.x = x; + coordsStart.y = y; + }; + const updateCoordsEnd = (x, y) => { + coordsEnd.x = x; + coordsEnd.y = y; + }; + let listenerOptions; + const isPassiveEventSupported = checkPassiveEventSupport(window2 == null ? void 0 : window2.document); + if (!passive) + listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true }; + else + listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false }; + const onTouchEnd = (e) => { + if (isSwiping.value) + onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value); + isSwiping.value = false; + }; + const stops = [ + useEventListener(target, "touchstart", (e) => { + if (e.touches.length !== 1) + return; + if (listenerOptions.capture && !listenerOptions.passive) + e.preventDefault(); + const [x, y] = getTouchEventCoords(e); + updateCoordsStart(x, y); + updateCoordsEnd(x, y); + onSwipeStart == null ? void 0 : onSwipeStart(e); + }, listenerOptions), + useEventListener(target, "touchmove", (e) => { + if (e.touches.length !== 1) + return; + const [x, y] = getTouchEventCoords(e); + updateCoordsEnd(x, y); + if (!isSwiping.value && isThresholdExceeded.value) + isSwiping.value = true; + if (isSwiping.value) + onSwipe == null ? void 0 : onSwipe(e); + }, listenerOptions), + useEventListener(target, ["touchend", "touchcancel"], onTouchEnd, listenerOptions) + ]; + const stop = () => stops.forEach((s) => s()); + return { + isPassiveEventSupported, + isSwiping, + direction, + coordsStart, + coordsEnd, + lengthX: diffX, + lengthY: diffY, + stop + }; +} +function checkPassiveEventSupport(document2) { + if (!document2) + return false; + let supportsPassive = false; + const optionsBlock = { + get passive() { + supportsPassive = true; + return false; + } + }; + document2.addEventListener("x", noop, optionsBlock); + document2.removeEventListener("x", noop); + return supportsPassive; +} +function useTemplateRefsList() { + const refs = ref([]); + refs.value.set = (el) => { + if (el) + refs.value.push(el); + }; + onBeforeUpdate(() => { + refs.value.length = 0; + }); + return refs; +} +function useTextDirection(options = {}) { + const { + document: document2 = defaultDocument, + selector = "html", + observe = false, + initialValue = "ltr" + } = options; + function getValue2() { + var _a, _b; + return (_b = (_a = document2 == null ? void 0 : document2.querySelector(selector)) == null ? void 0 : _a.getAttribute("dir")) != null ? _b : initialValue; + } + const dir = ref(getValue2()); + tryOnMounted(() => dir.value = getValue2()); + if (observe && document2) { + useMutationObserver( + document2.querySelector(selector), + () => dir.value = getValue2(), + { attributes: true } + ); + } + return computed({ + get() { + return dir.value; + }, + set(v) { + var _a, _b; + dir.value = v; + if (!document2) + return; + if (dir.value) + (_a = document2.querySelector(selector)) == null ? void 0 : _a.setAttribute("dir", dir.value); + else + (_b = document2.querySelector(selector)) == null ? void 0 : _b.removeAttribute("dir"); + } + }); +} +function getRangesFromSelection(selection) { + var _a; + const rangeCount = (_a = selection.rangeCount) != null ? _a : 0; + return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i)); +} +function useTextSelection(options = {}) { + const { + window: window2 = defaultWindow + } = options; + const selection = ref(null); + const text = computed(() => { + var _a, _b; + return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : ""; + }); + const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []); + const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect())); + function onSelectionChange() { + selection.value = null; + if (window2) + selection.value = window2.getSelection(); + } + if (window2) + useEventListener(window2.document, "selectionchange", onSelectionChange); + return { + text, + rects, + ranges, + selection + }; +} +function useTextareaAutosize(options) { + var _a; + const textarea = ref(options == null ? void 0 : options.element); + const input = ref(options == null ? void 0 : options.input); + const styleProp = (_a = options == null ? void 0 : options.styleProp) != null ? _a : "height"; + const textareaScrollHeight = ref(1); + function triggerResize() { + var _a2; + if (!textarea.value) + return; + let height = ""; + textarea.value.style[styleProp] = "1px"; + textareaScrollHeight.value = (_a2 = textarea.value) == null ? void 0 : _a2.scrollHeight; + if (options == null ? void 0 : options.styleTarget) + toValue(options.styleTarget).style[styleProp] = `${textareaScrollHeight.value}px`; + else + height = `${textareaScrollHeight.value}px`; + textarea.value.style[styleProp] = height; + } + watch([input, textarea], () => nextTick(triggerResize), { immediate: true }); + watch(textareaScrollHeight, () => { + var _a2; + return (_a2 = options == null ? void 0 : options.onResize) == null ? void 0 : _a2.call(options); + }); + useResizeObserver(textarea, () => triggerResize()); + if (options == null ? void 0 : options.watch) + watch(options.watch, triggerResize, { immediate: true, deep: true }); + return { + textarea, + input, + triggerResize + }; +} +function useThrottledRefHistory(source, options = {}) { + const { throttle = 200, trailing = true } = options; + const filter = throttleFilter(throttle, trailing); + const history = useRefHistory(source, { ...options, eventFilter: filter }); + return { + ...history + }; +} +var DEFAULT_UNITS = [ + { max: 6e4, value: 1e3, name: "second" }, + { max: 276e4, value: 6e4, name: "minute" }, + { max: 72e6, value: 36e5, name: "hour" }, + { max: 5184e5, value: 864e5, name: "day" }, + { max: 24192e5, value: 6048e5, name: "week" }, + { max: 28512e6, value: 2592e6, name: "month" }, + { max: Number.POSITIVE_INFINITY, value: 31536e6, name: "year" } +]; +var DEFAULT_MESSAGES = { + justNow: "just now", + past: (n) => n.match(/\d/) ? `${n} ago` : n, + future: (n) => n.match(/\d/) ? `in ${n}` : n, + month: (n, past) => n === 1 ? past ? "last month" : "next month" : `${n} month${n > 1 ? "s" : ""}`, + year: (n, past) => n === 1 ? past ? "last year" : "next year" : `${n} year${n > 1 ? "s" : ""}`, + day: (n, past) => n === 1 ? past ? "yesterday" : "tomorrow" : `${n} day${n > 1 ? "s" : ""}`, + week: (n, past) => n === 1 ? past ? "last week" : "next week" : `${n} week${n > 1 ? "s" : ""}`, + hour: (n) => `${n} hour${n > 1 ? "s" : ""}`, + minute: (n) => `${n} minute${n > 1 ? "s" : ""}`, + second: (n) => `${n} second${n > 1 ? "s" : ""}`, + invalid: "" +}; +function DEFAULT_FORMATTER(date) { + return date.toISOString().slice(0, 10); +} +function useTimeAgo(time, options = {}) { + const { + controls: exposeControls = false, + updateInterval = 3e4 + } = options; + const { now: now2, ...controls } = useNow({ interval: updateInterval, controls: true }); + const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now2))); + if (exposeControls) { + return { + timeAgo, + ...controls + }; + } else { + return timeAgo; + } +} +function formatTimeAgo(from, options = {}, now2 = Date.now()) { + var _a; + const { + max, + messages = DEFAULT_MESSAGES, + fullDateFormatter = DEFAULT_FORMATTER, + units = DEFAULT_UNITS, + showSecond = false, + rounding = "round" + } = options; + const roundFn = typeof rounding === "number" ? (n) => +n.toFixed(rounding) : Math[rounding]; + const diff = +now2 - +from; + const absDiff = Math.abs(diff); + function getValue2(diff2, unit) { + return roundFn(Math.abs(diff2) / unit.value); + } + function format(diff2, unit) { + const val = getValue2(diff2, unit); + const past = diff2 > 0; + const str = applyFormat(unit.name, val, past); + return applyFormat(past ? "past" : "future", str, past); + } + function applyFormat(name, val, isPast) { + const formatter = messages[name]; + if (typeof formatter === "function") + return formatter(val, isPast); + return formatter.replace("{0}", val.toString()); + } + if (absDiff < 6e4 && !showSecond) + return messages.justNow; + if (typeof max === "number" && absDiff > max) + return fullDateFormatter(new Date(from)); + if (typeof max === "string") { + const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max; + if (unitMax && absDiff > unitMax) + return fullDateFormatter(new Date(from)); + } + for (const [idx, unit] of units.entries()) { + const val = getValue2(diff, unit); + if (val <= 0 && units[idx - 1]) + return format(diff, units[idx - 1]); + if (absDiff < unit.max) + return format(diff, unit); + } + return messages.invalid; +} +function useTimeoutPoll(fn, interval, timeoutPollOptions) { + const { start } = useTimeoutFn(loop, interval, { immediate: false }); + const isActive = ref(false); + async function loop() { + if (!isActive.value) + return; + await fn(); + start(); + } + function resume() { + if (!isActive.value) { + isActive.value = true; + loop(); + } + } + function pause() { + isActive.value = false; + } + if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate) + resume(); + tryOnScopeDispose(pause); + return { + isActive, + pause, + resume + }; +} +function useTimestamp(options = {}) { + const { + controls: exposeControls = false, + offset = 0, + immediate = true, + interval = "requestAnimationFrame", + callback + } = options; + const ts = ref(timestamp() + offset); + const update = () => ts.value = timestamp() + offset; + const cb = callback ? () => { + update(); + callback(ts.value); + } : update; + const controls = interval === "requestAnimationFrame" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate }); + if (exposeControls) { + return { + timestamp: ts, + ...controls + }; + } else { + return ts; + } +} +function useTitle(newTitle = null, options = {}) { + var _a, _b, _c; + const { + document: document2 = defaultDocument, + restoreOnUnmount = (t) => t + } = options; + const originalTitle = (_a = document2 == null ? void 0 : document2.title) != null ? _a : ""; + const title = toRef2((_b = newTitle != null ? newTitle : document2 == null ? void 0 : document2.title) != null ? _b : null); + const isReadonly2 = newTitle && typeof newTitle === "function"; + function format(t) { + if (!("titleTemplate" in options)) + return t; + const template = options.titleTemplate || "%s"; + return typeof template === "function" ? template(t) : toValue(template).replace(/%s/g, t); + } + watch( + title, + (t, o) => { + if (t !== o && document2) + document2.title = format(typeof t === "string" ? t : ""); + }, + { immediate: true } + ); + if (options.observe && !options.titleTemplate && document2 && !isReadonly2) { + useMutationObserver( + (_c = document2.head) == null ? void 0 : _c.querySelector("title"), + () => { + if (document2 && document2.title !== title.value) + title.value = format(document2.title); + }, + { childList: true } + ); + } + tryOnBeforeUnmount(() => { + if (restoreOnUnmount) { + const restoredTitle = restoreOnUnmount(originalTitle, title.value || ""); + if (restoredTitle != null && document2) + document2.title = restoredTitle; + } + }); + return title; +} +var _TransitionPresets = { + easeInSine: [0.12, 0, 0.39, 0], + easeOutSine: [0.61, 1, 0.88, 1], + easeInOutSine: [0.37, 0, 0.63, 1], + easeInQuad: [0.11, 0, 0.5, 0], + easeOutQuad: [0.5, 1, 0.89, 1], + easeInOutQuad: [0.45, 0, 0.55, 1], + easeInCubic: [0.32, 0, 0.67, 0], + easeOutCubic: [0.33, 1, 0.68, 1], + easeInOutCubic: [0.65, 0, 0.35, 1], + easeInQuart: [0.5, 0, 0.75, 0], + easeOutQuart: [0.25, 1, 0.5, 1], + easeInOutQuart: [0.76, 0, 0.24, 1], + easeInQuint: [0.64, 0, 0.78, 0], + easeOutQuint: [0.22, 1, 0.36, 1], + easeInOutQuint: [0.83, 0, 0.17, 1], + easeInExpo: [0.7, 0, 0.84, 0], + easeOutExpo: [0.16, 1, 0.3, 1], + easeInOutExpo: [0.87, 0, 0.13, 1], + easeInCirc: [0.55, 0, 1, 0.45], + easeOutCirc: [0, 0.55, 0.45, 1], + easeInOutCirc: [0.85, 0, 0.15, 1], + easeInBack: [0.36, 0, 0.66, -0.56], + easeOutBack: [0.34, 1.56, 0.64, 1], + easeInOutBack: [0.68, -0.6, 0.32, 1.6] +}; +var TransitionPresets = Object.assign({}, { linear: identity }, _TransitionPresets); +function createEasingFunction([p0, p1, p2, p3]) { + const a = (a1, a2) => 1 - 3 * a2 + 3 * a1; + const b = (a1, a2) => 3 * a2 - 6 * a1; + const c = (a1) => 3 * a1; + const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t; + const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1); + const getTforX = (x) => { + let aGuessT = x; + for (let i = 0; i < 4; ++i) { + const currentSlope = getSlope(aGuessT, p0, p2); + if (currentSlope === 0) + return aGuessT; + const currentX = calcBezier(aGuessT, p0, p2) - x; + aGuessT -= currentX / currentSlope; + } + return aGuessT; + }; + return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3); +} +function lerp(a, b, alpha) { + return a + alpha * (b - a); +} +function toVec(t) { + return (typeof t === "number" ? [t] : t) || []; +} +function executeTransition(source, from, to, options = {}) { + var _a, _b; + const fromVal = toValue(from); + const toVal = toValue(to); + const v1 = toVec(fromVal); + const v2 = toVec(toVal); + const duration = (_a = toValue(options.duration)) != null ? _a : 1e3; + const startedAt = Date.now(); + const endAt = Date.now() + duration; + const trans = typeof options.transition === "function" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity; + const ease = typeof trans === "function" ? trans : createEasingFunction(trans); + return new Promise((resolve) => { + source.value = fromVal; + const tick = () => { + var _a2; + if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) { + resolve(); + return; + } + const now2 = Date.now(); + const alpha = ease((now2 - startedAt) / duration); + const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha)); + if (Array.isArray(source.value)) + source.value = arr.map((n, i) => { + var _a3, _b2; + return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha); + }); + else if (typeof source.value === "number") + source.value = arr[0]; + if (now2 < endAt) { + requestAnimationFrame(tick); + } else { + source.value = toVal; + resolve(); + } + }; + tick(); + }); +} +function useTransition(source, options = {}) { + let currentId = 0; + const sourceVal = () => { + const v = toValue(source); + return typeof v === "number" ? v : v.map(toValue); + }; + const outputRef = ref(sourceVal()); + watch(sourceVal, async (to) => { + var _a, _b; + if (toValue(options.disabled)) + return; + const id = ++currentId; + if (options.delay) + await promiseTimeout(toValue(options.delay)); + if (id !== currentId) + return; + const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to); + (_a = options.onStarted) == null ? void 0 : _a.call(options); + await executeTransition(outputRef, outputRef.value, toVal, { + ...options, + abort: () => { + var _a2; + return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options)); + } + }); + (_b = options.onFinished) == null ? void 0 : _b.call(options); + }, { deep: true }); + watch(() => toValue(options.disabled), (disabled) => { + if (disabled) { + currentId++; + outputRef.value = sourceVal(); + } + }); + tryOnScopeDispose(() => { + currentId++; + }); + return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value); +} +function useUrlSearchParams(mode = "history", options = {}) { + const { + initialValue = {}, + removeNullishValues = true, + removeFalsyValues = false, + write: enableWrite = true, + window: window2 = defaultWindow + } = options; + if (!window2) + return reactive(initialValue); + const state = reactive({}); + function getRawParams() { + if (mode === "history") { + return window2.location.search || ""; + } else if (mode === "hash") { + const hash = window2.location.hash || ""; + const index = hash.indexOf("?"); + return index > 0 ? hash.slice(index) : ""; + } else { + return (window2.location.hash || "").replace(/^#/, ""); + } + } + function constructQuery(params) { + const stringified = params.toString(); + if (mode === "history") + return `${stringified ? `?${stringified}` : ""}${window2.location.hash || ""}`; + if (mode === "hash-params") + return `${window2.location.search || ""}${stringified ? `#${stringified}` : ""}`; + const hash = window2.location.hash || "#"; + const index = hash.indexOf("?"); + if (index > 0) + return `${hash.slice(0, index)}${stringified ? `?${stringified}` : ""}`; + return `${hash}${stringified ? `?${stringified}` : ""}`; + } + function read() { + return new URLSearchParams(getRawParams()); + } + function updateState(params) { + const unusedKeys = new Set(Object.keys(state)); + for (const key of params.keys()) { + const paramsForKey = params.getAll(key); + state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || ""; + unusedKeys.delete(key); + } + Array.from(unusedKeys).forEach((key) => delete state[key]); + } + const { pause, resume } = watchPausable( + state, + () => { + const params = new URLSearchParams(""); + Object.keys(state).forEach((key) => { + const mapEntry = state[key]; + if (Array.isArray(mapEntry)) + mapEntry.forEach((value) => params.append(key, value)); + else if (removeNullishValues && mapEntry == null) + params.delete(key); + else if (removeFalsyValues && !mapEntry) + params.delete(key); + else + params.set(key, mapEntry); + }); + write(params); + }, + { deep: true } + ); + function write(params, shouldUpdate) { + pause(); + if (shouldUpdate) + updateState(params); + window2.history.replaceState( + window2.history.state, + window2.document.title, + window2.location.pathname + constructQuery(params) + ); + resume(); + } + function onChanged() { + if (!enableWrite) + return; + write(read(), true); + } + useEventListener(window2, "popstate", onChanged, false); + if (mode !== "history") + useEventListener(window2, "hashchange", onChanged, false); + const initial = read(); + if (initial.keys().next().value) + updateState(initial); + else + Object.assign(state, initialValue); + return state; +} +function useUserMedia(options = {}) { + var _a, _b; + const enabled = ref((_a = options.enabled) != null ? _a : false); + const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true); + const constraints = ref(options.constraints); + const { navigator = defaultNavigator } = options; + const isSupported = useSupported(() => { + var _a2; + return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia; + }); + const stream = shallowRef(); + function getDeviceOptions(type) { + switch (type) { + case "video": { + if (constraints.value) + return constraints.value.video || false; + break; + } + case "audio": { + if (constraints.value) + return constraints.value.audio || false; + break; + } + } + } + async function _start() { + if (!isSupported.value || stream.value) + return; + stream.value = await navigator.mediaDevices.getUserMedia({ + video: getDeviceOptions("video"), + audio: getDeviceOptions("audio") + }); + return stream.value; + } + function _stop() { + var _a2; + (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop()); + stream.value = void 0; + } + function stop() { + _stop(); + enabled.value = false; + } + async function start() { + await _start(); + if (stream.value) + enabled.value = true; + return stream.value; + } + async function restart() { + _stop(); + return await start(); + } + watch( + enabled, + (v) => { + if (v) + _start(); + else _stop(); + }, + { immediate: true } + ); + watch( + constraints, + () => { + if (autoSwitch.value && stream.value) + restart(); + }, + { immediate: true } + ); + tryOnScopeDispose(() => { + stop(); + }); + return { + isSupported, + stream, + start, + stop, + restart, + constraints, + enabled, + autoSwitch + }; +} +function useVModel(props, key, emit, options = {}) { + var _a, _b, _c, _d, _e; + const { + clone = false, + passive = false, + eventName, + deep = false, + defaultValue, + shouldEmit + } = options; + const vm = getCurrentInstance(); + const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy)); + let event = eventName; + if (!key) { + if (isVue2) { + const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model; + key = (modelOptions == null ? void 0 : modelOptions.value) || "value"; + if (!eventName) + event = (modelOptions == null ? void 0 : modelOptions.event) || "input"; + } else { + key = "modelValue"; + } + } + event = event || `update:${key.toString()}`; + const cloneFn = (val) => !clone ? val : typeof clone === "function" ? clone(val) : cloneFnJSON(val); + const getValue2 = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue; + const triggerEmit = (value) => { + if (shouldEmit) { + if (shouldEmit(value)) + _emit(event, value); + } else { + _emit(event, value); + } + }; + if (passive) { + const initialValue = getValue2(); + const proxy = ref(initialValue); + let isUpdating = false; + watch( + () => props[key], + (v) => { + if (!isUpdating) { + isUpdating = true; + proxy.value = cloneFn(v); + nextTick(() => isUpdating = false); + } + } + ); + watch( + proxy, + (v) => { + if (!isUpdating && (v !== props[key] || deep)) + triggerEmit(v); + }, + { deep } + ); + return proxy; + } else { + return computed({ + get() { + return getValue2(); + }, + set(value) { + triggerEmit(value); + } + }); + } +} +function useVModels(props, emit, options = {}) { + const ret = {}; + for (const key in props) { + ret[key] = useVModel( + props, + key, + emit, + options + ); + } + return ret; +} +function useVibrate(options) { + const { + pattern = [], + interval = 0, + navigator = defaultNavigator + } = options || {}; + const isSupported = useSupported(() => typeof navigator !== "undefined" && "vibrate" in navigator); + const patternRef = toRef2(pattern); + let intervalControls; + const vibrate = (pattern2 = patternRef.value) => { + if (isSupported.value) + navigator.vibrate(pattern2); + }; + const stop = () => { + if (isSupported.value) + navigator.vibrate(0); + intervalControls == null ? void 0 : intervalControls.pause(); + }; + if (interval > 0) { + intervalControls = useIntervalFn( + vibrate, + interval, + { + immediate: false, + immediateCallback: false + } + ); + } + return { + isSupported, + pattern, + intervalControls, + vibrate, + stop + }; +} +function useVirtualList(list, options) { + const { containerStyle, wrapperProps, scrollTo: scrollTo2, calculateRange, currentList, containerRef } = "itemHeight" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list); + return { + list: currentList, + scrollTo: scrollTo2, + containerProps: { + ref: containerRef, + onScroll: () => { + calculateRange(); + }, + style: containerStyle + }, + wrapperProps + }; +} +function useVirtualListResources(list) { + const containerRef = ref(null); + const size = useElementSize(containerRef); + const currentList = ref([]); + const source = shallowRef(list); + const state = ref({ start: 0, end: 10 }); + return { state, source, currentList, size, containerRef }; +} +function createGetViewCapacity(state, source, itemSize) { + return (containerSize) => { + if (typeof itemSize === "number") + return Math.ceil(containerSize / itemSize); + const { start = 0 } = state.value; + let sum = 0; + let capacity = 0; + for (let i = start; i < source.value.length; i++) { + const size = itemSize(i); + sum += size; + capacity = i; + if (sum > containerSize) + break; + } + return capacity - start; + }; +} +function createGetOffset(source, itemSize) { + return (scrollDirection) => { + if (typeof itemSize === "number") + return Math.floor(scrollDirection / itemSize) + 1; + let sum = 0; + let offset = 0; + for (let i = 0; i < source.value.length; i++) { + const size = itemSize(i); + sum += size; + if (sum >= scrollDirection) { + offset = i; + break; + } + } + return offset + 1; + }; +} +function createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) { + return () => { + const element = containerRef.value; + if (element) { + const offset = getOffset(type === "vertical" ? element.scrollTop : element.scrollLeft); + const viewCapacity = getViewCapacity(type === "vertical" ? element.clientHeight : element.clientWidth); + const from = offset - overscan; + const to = offset + viewCapacity + overscan; + state.value = { + start: from < 0 ? 0 : from, + end: to > source.value.length ? source.value.length : to + }; + currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({ + data: ele, + index: index + state.value.start + })); + } + }; +} +function createGetDistance(itemSize, source) { + return (index) => { + if (typeof itemSize === "number") { + const size2 = index * itemSize; + return size2; + } + const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0); + return size; + }; +} +function useWatchForSizes(size, list, containerRef, calculateRange) { + watch([size.width, size.height, list, containerRef], () => { + calculateRange(); + }); +} +function createComputedTotalSize(itemSize, source) { + return computed(() => { + if (typeof itemSize === "number") + return source.value.length * itemSize; + return source.value.reduce((sum, _, index) => sum + itemSize(index), 0); + }); +} +var scrollToDictionaryForElementScrollKey = { + horizontal: "scrollLeft", + vertical: "scrollTop" +}; +function createScrollTo(type, calculateRange, getDistance, containerRef) { + return (index) => { + if (containerRef.value) { + containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index); + calculateRange(); + } + }; +} +function useHorizontalVirtualList(options, list) { + const resources = useVirtualListResources(list); + const { state, source, currentList, size, containerRef } = resources; + const containerStyle = { overflowX: "auto" }; + const { itemWidth, overscan = 5 } = options; + const getViewCapacity = createGetViewCapacity(state, source, itemWidth); + const getOffset = createGetOffset(source, itemWidth); + const calculateRange = createCalculateRange("horizontal", overscan, getOffset, getViewCapacity, resources); + const getDistanceLeft = createGetDistance(itemWidth, source); + const offsetLeft = computed(() => getDistanceLeft(state.value.start)); + const totalWidth = createComputedTotalSize(itemWidth, source); + useWatchForSizes(size, list, containerRef, calculateRange); + const scrollTo2 = createScrollTo("horizontal", calculateRange, getDistanceLeft, containerRef); + const wrapperProps = computed(() => { + return { + style: { + height: "100%", + width: `${totalWidth.value - offsetLeft.value}px`, + marginLeft: `${offsetLeft.value}px`, + display: "flex" + } + }; + }); + return { + scrollTo: scrollTo2, + calculateRange, + wrapperProps, + containerStyle, + currentList, + containerRef + }; +} +function useVerticalVirtualList(options, list) { + const resources = useVirtualListResources(list); + const { state, source, currentList, size, containerRef } = resources; + const containerStyle = { overflowY: "auto" }; + const { itemHeight, overscan = 5 } = options; + const getViewCapacity = createGetViewCapacity(state, source, itemHeight); + const getOffset = createGetOffset(source, itemHeight); + const calculateRange = createCalculateRange("vertical", overscan, getOffset, getViewCapacity, resources); + const getDistanceTop = createGetDistance(itemHeight, source); + const offsetTop = computed(() => getDistanceTop(state.value.start)); + const totalHeight = createComputedTotalSize(itemHeight, source); + useWatchForSizes(size, list, containerRef, calculateRange); + const scrollTo2 = createScrollTo("vertical", calculateRange, getDistanceTop, containerRef); + const wrapperProps = computed(() => { + return { + style: { + width: "100%", + height: `${totalHeight.value - offsetTop.value}px`, + marginTop: `${offsetTop.value}px` + } + }; + }); + return { + calculateRange, + scrollTo: scrollTo2, + containerStyle, + wrapperProps, + currentList, + containerRef + }; +} +function useWakeLock(options = {}) { + const { + navigator = defaultNavigator, + document: document2 = defaultDocument + } = options; + let wakeLock; + const isSupported = useSupported(() => navigator && "wakeLock" in navigator); + const isActive = ref(false); + async function onVisibilityChange() { + if (!isSupported.value || !wakeLock) + return; + if (document2 && document2.visibilityState === "visible") + wakeLock = await navigator.wakeLock.request("screen"); + isActive.value = !wakeLock.released; + } + if (document2) + useEventListener(document2, "visibilitychange", onVisibilityChange, { passive: true }); + async function request(type) { + if (!isSupported.value) + return; + wakeLock = await navigator.wakeLock.request(type); + isActive.value = !wakeLock.released; + } + async function release() { + if (!isSupported.value || !wakeLock) + return; + await wakeLock.release(); + isActive.value = !wakeLock.released; + wakeLock = null; + } + return { + isSupported, + isActive, + request, + release + }; +} +function useWebNotification(options = {}) { + const { + window: window2 = defaultWindow, + requestPermissions: _requestForPermissions = true + } = options; + const defaultWebNotificationOptions = options; + const isSupported = useSupported(() => { + if (!window2 || !("Notification" in window2)) + return false; + try { + new Notification(""); + } catch (e) { + return false; + } + return true; + }); + const permissionGranted = ref(isSupported.value && "permission" in Notification && Notification.permission === "granted"); + const notification = ref(null); + const ensurePermissions = async () => { + if (!isSupported.value) + return; + if (!permissionGranted.value && Notification.permission !== "denied") { + const result = await Notification.requestPermission(); + if (result === "granted") + permissionGranted.value = true; + } + return permissionGranted.value; + }; + const { on: onClick, trigger: clickTrigger } = createEventHook(); + const { on: onShow, trigger: showTrigger } = createEventHook(); + const { on: onError, trigger: errorTrigger } = createEventHook(); + const { on: onClose, trigger: closeTrigger } = createEventHook(); + const show = async (overrides) => { + if (!isSupported.value || !permissionGranted.value) + return; + const options2 = Object.assign({}, defaultWebNotificationOptions, overrides); + notification.value = new Notification(options2.title || "", options2); + notification.value.onclick = clickTrigger; + notification.value.onshow = showTrigger; + notification.value.onerror = errorTrigger; + notification.value.onclose = closeTrigger; + return notification.value; + }; + const close = () => { + if (notification.value) + notification.value.close(); + notification.value = null; + }; + if (_requestForPermissions) + tryOnMounted(ensurePermissions); + tryOnScopeDispose(close); + if (isSupported.value && window2) { + const document2 = window2.document; + useEventListener(document2, "visibilitychange", (e) => { + e.preventDefault(); + if (document2.visibilityState === "visible") { + close(); + } + }); + } + return { + isSupported, + notification, + ensurePermissions, + permissionGranted, + show, + close, + onClick, + onShow, + onError, + onClose + }; +} +var DEFAULT_PING_MESSAGE = "ping"; +function resolveNestedOptions(options) { + if (options === true) + return {}; + return options; +} +function useWebSocket(url, options = {}) { + const { + onConnected, + onDisconnected, + onError, + onMessage, + immediate = true, + autoClose = true, + protocols = [] + } = options; + const data = ref(null); + const status = ref("CLOSED"); + const wsRef = ref(); + const urlRef = toRef2(url); + let heartbeatPause; + let heartbeatResume; + let explicitlyClosed = false; + let retried = 0; + let bufferedData = []; + let pongTimeoutWait; + const _sendBuffer = () => { + if (bufferedData.length && wsRef.value && status.value === "OPEN") { + for (const buffer of bufferedData) + wsRef.value.send(buffer); + bufferedData = []; + } + }; + const resetHeartbeat = () => { + clearTimeout(pongTimeoutWait); + pongTimeoutWait = void 0; + }; + const close = (code = 1e3, reason) => { + if (!isClient || !wsRef.value) + return; + explicitlyClosed = true; + resetHeartbeat(); + heartbeatPause == null ? void 0 : heartbeatPause(); + wsRef.value.close(code, reason); + wsRef.value = void 0; + }; + const send = (data2, useBuffer = true) => { + if (!wsRef.value || status.value !== "OPEN") { + if (useBuffer) + bufferedData.push(data2); + return false; + } + _sendBuffer(); + wsRef.value.send(data2); + return true; + }; + const _init = () => { + if (explicitlyClosed || typeof urlRef.value === "undefined") + return; + const ws = new WebSocket(urlRef.value, protocols); + wsRef.value = ws; + status.value = "CONNECTING"; + ws.onopen = () => { + status.value = "OPEN"; + onConnected == null ? void 0 : onConnected(ws); + heartbeatResume == null ? void 0 : heartbeatResume(); + _sendBuffer(); + }; + ws.onclose = (ev) => { + status.value = "CLOSED"; + onDisconnected == null ? void 0 : onDisconnected(ws, ev); + if (!explicitlyClosed && options.autoReconnect) { + const { + retries = -1, + delay = 1e3, + onFailed + } = resolveNestedOptions(options.autoReconnect); + retried += 1; + if (typeof retries === "number" && (retries < 0 || retried < retries)) + setTimeout(_init, delay); + else if (typeof retries === "function" && retries()) + setTimeout(_init, delay); + else + onFailed == null ? void 0 : onFailed(); + } + }; + ws.onerror = (e) => { + onError == null ? void 0 : onError(ws, e); + }; + ws.onmessage = (e) => { + if (options.heartbeat) { + resetHeartbeat(); + const { + message = DEFAULT_PING_MESSAGE + } = resolveNestedOptions(options.heartbeat); + if (e.data === message) + return; + } + data.value = e.data; + onMessage == null ? void 0 : onMessage(ws, e); + }; + }; + if (options.heartbeat) { + const { + message = DEFAULT_PING_MESSAGE, + interval = 1e3, + pongTimeout = 1e3 + } = resolveNestedOptions(options.heartbeat); + const { pause, resume } = useIntervalFn( + () => { + send(message, false); + if (pongTimeoutWait != null) + return; + pongTimeoutWait = setTimeout(() => { + close(); + explicitlyClosed = false; + }, pongTimeout); + }, + interval, + { immediate: false } + ); + heartbeatPause = pause; + heartbeatResume = resume; + } + if (autoClose) { + if (isClient) + useEventListener("beforeunload", () => close()); + tryOnScopeDispose(close); + } + const open = () => { + if (!isClient && !isWorker) + return; + close(); + explicitlyClosed = false; + retried = 0; + _init(); + }; + if (immediate) + open(); + watch(urlRef, open); + return { + data, + status, + close, + send, + open, + ws: wsRef + }; +} +function useWebWorker(arg0, workerOptions, options) { + const { + window: window2 = defaultWindow + } = options != null ? options : {}; + const data = ref(null); + const worker = shallowRef(); + const post = (...args) => { + if (!worker.value) + return; + worker.value.postMessage(...args); + }; + const terminate = function terminate2() { + if (!worker.value) + return; + worker.value.terminate(); + }; + if (window2) { + if (typeof arg0 === "string") + worker.value = new Worker(arg0, workerOptions); + else if (typeof arg0 === "function") + worker.value = arg0(); + else + worker.value = arg0; + worker.value.onmessage = (e) => { + data.value = e.data; + }; + tryOnScopeDispose(() => { + if (worker.value) + worker.value.terminate(); + }); + } + return { + data, + post, + terminate, + worker + }; +} +function jobRunner(userFunc) { + return (e) => { + const userFuncArgs = e.data[0]; + return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => { + postMessage(["SUCCESS", result]); + }).catch((error) => { + postMessage(["ERROR", error]); + }); + }; +} +function depsParser(deps, localDeps) { + if (deps.length === 0 && localDeps.length === 0) + return ""; + const depsString = deps.map((dep) => `'${dep}'`).toString(); + const depsFunctionString = localDeps.filter((dep) => typeof dep === "function").map((fn) => { + const str = fn.toString(); + if (str.trim().startsWith("function")) { + return str; + } else { + const name = fn.name; + return `const ${name} = ${str}`; + } + }).join(";"); + const importString = `importScripts(${depsString});`; + return `${depsString.trim() === "" ? "" : importString} ${depsFunctionString}`; +} +function createWorkerBlobUrl(fn, deps, localDeps) { + const blobCode = `${depsParser(deps, localDeps)}; onmessage=(${jobRunner})(${fn})`; + const blob = new Blob([blobCode], { type: "text/javascript" }); + const url = URL.createObjectURL(blob); + return url; +} +function useWebWorkerFn(fn, options = {}) { + const { + dependencies = [], + localDependencies = [], + timeout, + window: window2 = defaultWindow + } = options; + const worker = ref(); + const workerStatus = ref("PENDING"); + const promise = ref({}); + const timeoutId = ref(); + const workerTerminate = (status = "PENDING") => { + if (worker.value && worker.value._url && window2) { + worker.value.terminate(); + URL.revokeObjectURL(worker.value._url); + promise.value = {}; + worker.value = void 0; + window2.clearTimeout(timeoutId.value); + workerStatus.value = status; + } + }; + workerTerminate(); + tryOnScopeDispose(workerTerminate); + const generateWorker = () => { + const blobUrl = createWorkerBlobUrl(fn, dependencies, localDependencies); + const newWorker = new Worker(blobUrl); + newWorker._url = blobUrl; + newWorker.onmessage = (e) => { + const { resolve = () => { + }, reject = () => { + } } = promise.value; + const [status, result] = e.data; + switch (status) { + case "SUCCESS": + resolve(result); + workerTerminate(status); + break; + default: + reject(result); + workerTerminate("ERROR"); + break; + } + }; + newWorker.onerror = (e) => { + const { reject = () => { + } } = promise.value; + e.preventDefault(); + reject(e); + workerTerminate("ERROR"); + }; + if (timeout) { + timeoutId.value = setTimeout( + () => workerTerminate("TIMEOUT_EXPIRED"), + timeout + ); + } + return newWorker; + }; + const callWorker = (...fnArgs) => new Promise((resolve, reject) => { + promise.value = { + resolve, + reject + }; + worker.value && worker.value.postMessage([[...fnArgs]]); + workerStatus.value = "RUNNING"; + }); + const workerFn = (...fnArgs) => { + if (workerStatus.value === "RUNNING") { + console.error( + "[useWebWorkerFn] You can only run one instance of the worker at a time." + ); + return Promise.reject(); + } + worker.value = generateWorker(); + return callWorker(...fnArgs); + }; + return { + workerFn, + workerStatus, + workerTerminate + }; +} +function useWindowFocus(options = {}) { + const { window: window2 = defaultWindow } = options; + if (!window2) + return ref(false); + const focused = ref(window2.document.hasFocus()); + useEventListener(window2, "blur", () => { + focused.value = false; + }); + useEventListener(window2, "focus", () => { + focused.value = true; + }); + return focused; +} +function useWindowScroll(options = {}) { + const { window: window2 = defaultWindow, behavior = "auto" } = options; + if (!window2) { + return { + x: ref(0), + y: ref(0) + }; + } + const internalX = ref(window2.scrollX); + const internalY = ref(window2.scrollY); + const x = computed({ + get() { + return internalX.value; + }, + set(x2) { + scrollTo({ left: x2, behavior }); + } + }); + const y = computed({ + get() { + return internalY.value; + }, + set(y2) { + scrollTo({ top: y2, behavior }); + } + }); + useEventListener( + window2, + "scroll", + () => { + internalX.value = window2.scrollX; + internalY.value = window2.scrollY; + }, + { + capture: false, + passive: true + } + ); + return { x, y }; +} +function useWindowSize(options = {}) { + const { + window: window2 = defaultWindow, + initialWidth = Number.POSITIVE_INFINITY, + initialHeight = Number.POSITIVE_INFINITY, + listenOrientation = true, + includeScrollbar = true + } = options; + const width = ref(initialWidth); + const height = ref(initialHeight); + const update = () => { + if (window2) { + if (includeScrollbar) { + width.value = window2.innerWidth; + height.value = window2.innerHeight; + } else { + width.value = window2.document.documentElement.clientWidth; + height.value = window2.document.documentElement.clientHeight; + } + } + }; + update(); + tryOnMounted(update); + useEventListener("resize", update, { passive: true }); + if (listenOrientation) { + const matches = useMediaQuery("(orientation: portrait)"); + watch(matches, () => update()); + } + return { width, height }; +} + +export { + computedEager, + computedWithControl, + tryOnScopeDispose, + createEventHook, + createGlobalState, + provideLocal, + injectLocal, + createInjectionState, + createSharedComposable, + extendRef, + get, + isDefined, + makeDestructurable, + toValue, + resolveUnref, + reactify, + reactifyObject, + toReactive, + reactiveComputed, + reactiveOmit, + isClient, + isWorker, + isDef, + notNullish, + assert, + isObject, + now, + timestamp, + clamp, + noop, + rand, + hasOwn, + isIOS, + createFilterWrapper, + bypassFilter, + debounceFilter, + throttleFilter, + pausableFilter, + directiveHooks, + hyphenate, + camelize, + promiseTimeout, + identity, + createSingletonPromise, + invoke, + containsProp, + increaseWithUnit, + objectPick, + objectOmit, + objectEntries, + getLifeCycleTarget, + toRef2 as toRef, + resolveRef, + reactivePick, + refAutoReset, + useDebounceFn, + refDebounced, + refDefault, + useThrottleFn, + refThrottled, + refWithControl, + controlledRef, + set2 as set, + watchWithFilter, + watchPausable, + syncRef, + syncRefs, + toRefs2 as toRefs, + tryOnBeforeMount, + tryOnBeforeUnmount, + tryOnMounted, + tryOnUnmounted, + until, + useArrayDifference, + useArrayEvery, + useArrayFilter, + useArrayFind, + useArrayFindIndex, + useArrayFindLast, + useArrayIncludes, + useArrayJoin, + useArrayMap, + useArrayReduce, + useArraySome, + useArrayUnique, + useCounter, + formatDate, + normalizeDate, + useDateFormat, + useIntervalFn, + useInterval, + useLastChanged, + useTimeoutFn, + useTimeout, + useToNumber, + useToString, + useToggle, + watchArray, + watchAtMost, + watchDebounced, + watchDeep, + watchIgnorable, + watchImmediate, + watchOnce, + watchThrottled, + watchTriggerable, + whenever, + computedAsync, + computedInject, + createReusableTemplate, + createTemplatePromise, + createUnrefFn, + unrefElement, + defaultWindow, + defaultDocument, + defaultNavigator, + defaultLocation, + useEventListener, + onClickOutside, + onKeyStroke, + onKeyDown, + onKeyPressed, + onKeyUp, + onLongPress, + onStartTyping, + templateRef, + useMounted, + useSupported, + useMutationObserver, + useActiveElement, + useRafFn, + useAnimate, + useAsyncQueue, + useAsyncState, + useBase64, + useBattery, + useBluetooth, + useMediaQuery, + breakpointsTailwind, + breakpointsBootstrapV5, + breakpointsVuetifyV2, + breakpointsVuetifyV3, + breakpointsVuetify, + breakpointsAntDesign, + breakpointsQuasar, + breakpointsSematic, + breakpointsMasterCss, + breakpointsPrimeFlex, + useBreakpoints, + useBroadcastChannel, + useBrowserLocation, + useCached, + usePermission, + useClipboard, + useClipboardItems, + cloneFnJSON, + useCloned, + getSSRHandler, + setSSRHandler, + StorageSerializers, + customStorageEventName, + useStorage, + usePreferredDark, + useColorMode, + useConfirmDialog, + useCssVar, + useCurrentElement, + useCycleList, + useDark, + useManualRefHistory, + useRefHistory, + useDebouncedRefHistory, + useDeviceMotion, + useDeviceOrientation, + useDevicePixelRatio, + useDevicesList, + useDisplayMedia, + useDocumentVisibility, + useDraggable, + useDropZone, + useResizeObserver, + useElementBounding, + useElementByPoint, + useElementHover, + useElementSize, + useIntersectionObserver, + useElementVisibility, + useEventBus, + useEventSource, + useEyeDropper, + useFavicon, + createFetch, + useFetch, + useFileDialog, + useFileSystemAccess, + useFocus, + useFocusWithin, + useFps, + useFullscreen, + mapGamepadToXbox360Controller, + useGamepad, + useGeolocation, + useIdle, + useImage, + useScroll, + useInfiniteScroll, + useKeyModifier, + useLocalStorage, + DefaultMagicKeysAliasMap, + useMagicKeys, + useMediaControls, + useMemoize, + useMemory, + useMouse, + useMouseInElement, + useMousePressed, + useNavigatorLanguage, + useNetwork, + useNow, + useObjectUrl, + useOffsetPagination, + useOnline, + usePageLeave, + useScreenOrientation, + useParallax, + useParentElement, + usePerformanceObserver, + usePointer, + usePointerLock, + usePointerSwipe, + usePreferredColorScheme, + usePreferredContrast, + usePreferredLanguages, + usePreferredReducedMotion, + usePrevious, + useScreenSafeArea, + useScriptTag, + useScrollLock, + useSessionStorage, + useShare, + useSorted, + useSpeechRecognition, + useSpeechSynthesis, + useStepper, + useStorageAsync, + useStyleTag, + useSwipe, + useTemplateRefsList, + useTextDirection, + useTextSelection, + useTextareaAutosize, + useThrottledRefHistory, + useTimeAgo, + formatTimeAgo, + useTimeoutPoll, + useTimestamp, + useTitle, + TransitionPresets, + executeTransition, + useTransition, + useUrlSearchParams, + useUserMedia, + useVModel, + useVModels, + useVibrate, + useVirtualList, + useWakeLock, + useWebNotification, + useWebSocket, + useWebWorker, + useWebWorkerFn, + useWindowFocus, + useWindowScroll, + useWindowSize +}; +/*! Bundled license information: + +vitepress/lib/vue-demi.mjs: + (** + * vue-demi v0.14.7 + * Copyright (c) 2020-present, Anthony Fu + * @license MIT + *) +*/ +//# sourceMappingURL=chunk-7WWQ3R2W.js.map diff --git a/.vitepress/cache/deps/chunk-7WWQ3R2W.js.map b/.vitepress/cache/deps/chunk-7WWQ3R2W.js.map new file mode 100644 index 0000000..9e34975 --- /dev/null +++ b/.vitepress/cache/deps/chunk-7WWQ3R2W.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../node_modules/.pnpm/vitepress@1.3.0_@algolia+client-search@4.24.0_postcss@8.4.39_search-insights@2.15.0/node_modules/vitepress/lib/vue-demi.mjs", "../../../node_modules/.pnpm/@vueuse+shared@10.11.0_vue@3.4.31/node_modules/@vueuse/shared/index.mjs", "../../../node_modules/.pnpm/@vueuse+core@10.11.0_vue@3.4.31/node_modules/@vueuse/core/index.mjs"], + "sourcesContent": ["/**\n * vue-demi v0.14.7\n * Copyright (c) 2020-present, Anthony Fu\n * @license MIT\n */\n\nimport * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport { Vue, Vue2, isVue2, isVue3, install }\n", "import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n const defaultValue = options == null ? void 0 : options.defaultValue;\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key, defaultValue);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(...args) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n let ms;\n let trailing;\n let leading;\n let rejectOnCancel;\n if (!isRef(args[0]) && typeof args[0] === \"object\")\n ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);\n else\n [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?\\d+\\.?\\d*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n const stop = watch(\n source,\n (v, ov, onInvalidate) => {\n if (v) {\n if (options == null ? void 0 : options.once)\n nextTick(() => stop());\n cb(v, ov, onInvalidate);\n }\n },\n {\n ...options,\n once: false\n }\n );\n return stop;\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n", "import { noop, makeDestructurable, camelize, toValue, isClient, isObject, tryOnScopeDispose, isIOS, tryOnMounted, notNullish, objectOmit, promiseTimeout, until, increaseWithUnit, objectEntries, createSingletonPromise, useTimeoutFn, pausableWatch, toRef, createEventHook, computedWithControl, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, toRefs, useIntervalFn, containsProp, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, tryOnBeforeUnmount, identity, isDef, isWorker } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, isVue3, version, defineComponent, h, TransitionGroup, shallowReactive, Fragment, watch, getCurrentInstance, customRef, onUpdated, onMounted, isVue2, readonly, nextTick, reactive, markRaw, unref, getCurrentScope, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nfunction createReusableTemplate(options = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = shallowRef();\n const define = /* #__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = ref([]);\n function create(...args) {\n const props = shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => h(TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => toValue(i)));\n };\n}\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return noop;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement))) {\n handler(event);\n }\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keydown\" });\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keypress\" });\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keyup\" });\n}\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n let posStart;\n let startTimestamp;\n let hasLongPressed = false;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n startTimestamp = void 0;\n hasLongPressed = false;\n }\n function onRelease(ev) {\n var _a2, _b2, _c;\n const [_startTimestamp, _posStart, _hasLongPressed] = [startTimestamp, posStart, hasLongPressed];\n clear();\n if (!(options == null ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp)\n return;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - _posStart.x;\n const dy = ev.y - _posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n options.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n startTimestamp = ev.timeStamp;\n timeout = setTimeout(\n () => {\n hasLongPressed = true;\n handler(ev);\n },\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n const instance = getCurrentInstance();\n if (instance) {\n onMounted(() => {\n isMounted.value = true;\n }, isVue2 ? void 0 : instance);\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const value = toValue(target);\n const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish);\n return new Set(items);\n });\n const stopWatch = watch(\n () => targets.value,\n (targets2) => {\n cleanup();\n if (isSupported.value && targets2.size) {\n observer = new MutationObserver(callback);\n targets2.forEach((el) => observer.observe(el, mutationOptions));\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true,\n triggerOnRemoval = false\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = ref();\n const trigger = () => {\n activeElement.value = getDeepActiveElement();\n };\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n trigger();\n }, true);\n useEventListener(window, \"focus\", trigger, true);\n }\n if (triggerOnRemoval) {\n useMutationObserver(document, (mutations) => {\n mutations.filter((m) => m.removedNodes.length).map((n) => Array.from(n.removedNodes)).flat().forEach((node) => {\n if (node === activeElement.value)\n trigger();\n });\n }, {\n childList: true,\n subtree: true\n });\n }\n trigger();\n return activeElement;\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n if (!previousFrameTimestamp)\n previousFrameTimestamp = timestamp;\n const delta = timestamp - previousFrameTimestamp;\n if (intervalLimit && delta < intervalLimit) {\n rafId = window.requestAnimationFrame(loop);\n return;\n }\n previousFrameTimestamp = timestamp;\n fn({ delta, timestamp });\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n previousFrameTimestamp = 0;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (isObject(options)) {\n config = options;\n animateOptions = objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = shallowRef(void 0);\n const store = shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = computed(() => store.pending);\n const playState = computed(() => store.playState);\n const replaceState = computed(() => store.replaceState);\n const startTime = computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n !animate.value && update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n watch(() => unrefElement(target), (el) => {\n el && update();\n });\n watch(() => keyframes, (value) => {\n !animate.value && update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n tryOnMounted(() => {\n nextTick(() => update(true));\n });\n tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n if (!animate.value)\n animate.value = el.animate(toValue(keyframes), animateOptions);\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n useEventListener(animate, \"finish\", () => {\n var _a;\n if (commitStyles)\n (_a = animate.value) == null ? void 0 : _a.commitStyles();\n });\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop,\n signal\n } = options || {};\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || typeof target === \"function\")\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery(options = {}) {\n const { navigator = defaultNavigator } = options;\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetifyV2 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1264,\n xl: 1904\n};\nconst breakpointsVuetifyV3 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560\n};\nconst breakpointsVuetify = breakpointsVuetifyV2;\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 0,\n sm: 600,\n md: 1024,\n lg: 1440,\n xl: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\nconst breakpointsPrimeFlex = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = toValue(breakpoints[toValue(k)]);\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow, strategy = \"min-width\" } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n };\n const smallerOrEqual = (k) => {\n return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n function current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n return Object.assign(shortcutMethods, {\n greaterOrEqual,\n smallerOrEqual,\n greater(k) {\n return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);\n },\n smaller(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);\n },\n between(a, b) {\n return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current,\n active() {\n const bps = current();\n return computed(() => bps.value.length === 0 ? \"\" : bps.value.at(-1));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation(options = {}) {\n const { window = defaultWindow } = options;\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, ref()])\n );\n for (const [key, ref2] of objectEntries(refs)) {\n watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return reactive({\n trigger,\n state: state2,\n length,\n origin,\n ...refs\n });\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const permissionRead = usePermission(\"clipboard-read\");\n const permissionWrite = usePermission(\"clipboard-write\");\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value && isAllowed(permissionRead.value)) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value && isAllowed(permissionWrite.value))\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n function isAllowed(status) {\n return status === \"granted\" || status === \"prompt\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nfunction useClipboardItems(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500\n } = options;\n const isSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const content = ref([]);\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateContent() {\n if (isSupported.value) {\n navigator.clipboard.read().then((items) => {\n content.value = items;\n });\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateContent);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n await navigator.clipboard.write(value);\n content.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n return {\n isSupported,\n content,\n copied,\n copy\n };\n}\n\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(toValue(source));\n }\n if (!manual && (isRef(source) || typeof source === \"function\")) {\n watch(source, sync, {\n ...options,\n deep,\n immediate\n });\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n tryOnMounted(() => {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n function dispatchWriteEvent(oldValue, newValue) {\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue,\n storageArea: storage\n }\n }));\n }\n }\n function write(v) {\n try {\n const oldValue = storage.getItem(key);\n if (v == null) {\n dispatchWriteEvent(oldValue, null);\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n dispatchWriteEvent(oldValue, serialized);\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n return data;\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n const styleString = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n style.appendChild(document.createTextNode(styleString));\n window.document.head.appendChild(style);\n }\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue = \"\", observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n updateCssVar,\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(toValue(prop), val);\n }\n );\n return variable;\n}\n\nfunction useCurrentElement(rootComponent) {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(\n () => null,\n () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el\n );\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = shallowRef(getInitialValue());\n const listRef = toRef(list);\n const index = computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;\n }\n watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev,\n go: set\n };\n}\n\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode({\n ...options,\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n });\n const system = computed(() => {\n if (mode.system) {\n return mode.system.value;\n } else {\n const preferredDark = usePreferredDark({ window });\n return preferredDark.value ? \"dark\" : \"light\";\n }\n });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return {\n ...manualHistory,\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n };\n}\n\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const pixelRatio = ref(1);\n if (window) {\n let observe2 = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup2();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe2, { once: true });\n }, cleanup2 = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe2);\n };\n let media;\n observe2();\n tryOnScopeDispose(cleanup2);\n }\n return { pixelRatio };\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n var _a2;\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.addEventListener(\"ended\", stop));\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility(options = {}) {\n const { document = defaultDocument } = options;\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n containerElement,\n handle: draggingHandle = target\n } = options;\n const position = ref(\n (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (toValue(preventDefault))\n e.preventDefault();\n if (toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (e.button !== 0)\n return;\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (toValue(exact) && e.target !== toValue(target))\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),\n y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n const container = toValue(containerElement);\n const targetRect = toValue(target).getBoundingClientRect();\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\") {\n x = e.clientX - pressedDelta.value.x;\n if (container)\n x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n }\n if (axis === \"y\" || axis === \"both\") {\n y = e.clientY - pressedDelta.value.y;\n if (container)\n y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n }\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return {\n ...toRefs(position),\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n };\n}\n\nfunction useDropZone(target, options = {}) {\n const isOverDropZone = ref(false);\n const files = shallowRef(null);\n let counter = 0;\n let isDataTypeIncluded = true;\n if (isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const getFiles = (event) => {\n var _a, _b;\n const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n return files.value = list.length === 0 ? null : list;\n };\n useEventListener(target, \"dragenter\", (event) => {\n var _a, _b;\n const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === \"file\" ? i.type : null).filter(notNullish);\n if (_options.dataTypes && event.dataTransfer) {\n const dataTypes = unref(_options.dataTypes);\n isDataTypeIncluded = typeof dataTypes === \"function\" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true;\n if (!isDataTypeIncluded)\n return;\n }\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragover\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragleave\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"drop\", (event) => {\n var _a;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]);\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els)\n _el && observer.observe(_el, observerOptions);\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n useMutationObserver(target, update, {\n attributeFilter: [\"style\", \"class\"]\n });\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = ref(null);\n const cb = () => {\n var _a, _b;\n element.value = toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n return {\n isSupported,\n element,\n ...controls\n };\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const rect = $elem.getBoundingClientRect();\n width.value = rect.width;\n height.value = rect.height;\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget, threshold = 0 } = options;\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction resolveNestedOptions$1(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = shallowRef(null);\n const urlRef = toRef(url);\n const lastEventId = shallowRef(null);\n let explicitlyClosed = false;\n let retried = 0;\n const {\n withCredentials = false,\n immediate = true\n } = options;\n const close = () => {\n if (isClient && eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n explicitlyClosed = true;\n }\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const es = new EventSource(urlRef.value, { withCredentials });\n status.value = \"CONNECTING\";\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n if (es.readyState === 2 && !explicitlyClosed && options.autoReconnect) {\n es.close();\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions$1(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n lastEventId.value = e.lastEventId;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n };\n const open = () => {\n if (!isClient)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n tryOnScopeDispose(close);\n return {\n eventSource,\n event,\n data,\n status,\n error,\n open,\n close,\n lastEventId\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = toRef(newIcon);\n const applyIcon = (icon) => {\n const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n if (!elements || elements.length === 0) {\n const link = document == null ? void 0 : document.createElement(\"link\");\n if (link) {\n link.rel = rel;\n link.href = `${baseUrl}${icon}`;\n link.type = `image/${icon.split(\".\").pop()}`;\n document == null ? void 0 : document.head.append(link);\n }\n return;\n }\n elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n return reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries(headers.entries());\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return { ...ctx, ...await callback(ctx) };\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = { ...ctx, ...await callback(ctx) };\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = toValue(config.baseUrl);\n const targetUrl = toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = {\n ...options,\n ...args[0],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n };\n } else {\n fetchOptions = {\n ...fetchOptions,\n ...args[0],\n headers: {\n ...headersToObject(fetchOptions.headers) || {},\n ...headersToObject(args[0].headers) || {}\n }\n };\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = {\n ...options,\n ...args[1],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n };\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = {\n immediate: true,\n refetch: false,\n timeout: 0,\n updateDataOnError: false\n };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = { ...options, ...args[0] };\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = { ...options, ...args[1] };\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData || null);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = {\n ...fetchOptions,\n signal: controller.signal\n };\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n let executeCounter = 0;\n const execute = async (throwOnFailed = false) => {\n var _a2, _b;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n executeCounter += 1;\n const currentExecuteCounter = executeCounter;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: toValue(url),\n options: {\n ...defaultFetchOptions,\n ...fetchOptions\n },\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return fetch(\n context.url,\n {\n ...defaultFetchOptions,\n ...context.options,\n headers: {\n ...headersToObject(defaultFetchOptions.headers),\n ...headersToObject((_b = context.options) == null ? void 0 : _b.headers)\n }\n }\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse.clone()[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch) {\n ({ data: responseData } = await options.afterFetch({\n data: responseData,\n response: fetchResponse\n }));\n }\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return fetchResponse;\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError) {\n ({ error: errorData, data: responseData } = await options.onFetchError({\n data: responseData,\n error: fetchError,\n response: response.value\n }));\n }\n error.value = errorData;\n if (options.updateDataOnError)\n data.value = responseData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n throw fetchError;\n return null;\n }).finally(() => {\n if (currentExecuteCounter === executeCounter)\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n };\n const refetch = toRef(options.refetch);\n watch(\n [\n refetch,\n toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished: readonly(isFinished),\n isFetching: readonly(isFetching),\n statusCode,\n response,\n error,\n data,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch(\n [\n refetch,\n toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false,\n directory: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n const { on: onChange, trigger } = createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n trigger(files.value);\n };\n }\n const reset = () => {\n files.value = null;\n if (input && input.value) {\n input.value = \"\";\n trigger(null);\n }\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n ...localOptions\n };\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n input.webkitdirectory = _options.directory;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: readonly(files),\n open,\n reset,\n onChange\n };\n}\n\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker({ ...toValue(options), ..._options });\n fileHandle.value = handle;\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n data.value = void 0;\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n await updateFile();\n const type = toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n watch(() => toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false, preventScroll = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus({ preventScroll });\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = ref(false);\n const requestMethod = computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n id: gamepad.id,\n index: gamepad.index,\n connected: gamepad.connected,\n mapping: gamepad.mapping,\n timestamp: gamepad.timestamp,\n vibrationActuator: gamepad.vibrationActuator,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n onGamepadConnected(gamepad);\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = shallowRef(null);\n const coords = ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c, _d;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element;\n if (x != null)\n internalX.value = scrollContainer.scrollLeft;\n if (y != null)\n internalY.value = scrollContainer.scrollTop;\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n tryOnMounted(() => {\n try {\n const _element = toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n } catch (e) {\n onError(e);\n }\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n return resolveElement(toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => toValue(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nfunction usingElRef(source, cb) {\n if (toValue(source))\n cb(toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n target = toRef(target);\n options = {\n ...defaultOptions,\n ...options\n };\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = toValue(target);\n if (!el)\n return;\n const src = toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch([target, volume], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n watch([target, muted], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n watch([target, rate], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = toValue(options.tracks);\n const el = toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = toValue(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = shallowReactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return shallowReactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return shallowReactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window.scrollX;\n y.value = pos[1] + window.scrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const type = options.type || \"page\";\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n elementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n capture = false,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true, capture });\n useEventListener(window, \"mouseup\", onReleased, { passive: true, capture });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"drop\", onReleased, { passive: true, capture });\n useEventListener(window, \"dragend\", onReleased, { passive: true, capture });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true, capture });\n useEventListener(window, \"touchend\", onReleased, { passive: true, capture });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true, capture });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return {\n now,\n ...controls\n };\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(\n () => toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = computed(() => Math.max(\n 1,\n Math.ceil(toValue(total) / toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page)) {\n syncRef(page, currentPage, {\n direction: isReadonly(page) ? \"ltr\" : \"both\"\n });\n }\n if (isRef(pageSize)) {\n syncRef(pageSize, currentPageSize, {\n direction: isReadonly(pageSize) ? \"ltr\" : \"both\"\n });\n }\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (isSupported.value && typeof screenOrientation.lock === \"function\")\n return screenOrientation.lock(type);\n return Promise.reject(new Error(\"Not supported\"));\n };\n const unlockOrientation = () => {\n if (isSupported.value && typeof screenOrientation.unlock === \"function\")\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const screenOrientation = reactive(useScreenOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) {\n return \"deviceOrientation\";\n }\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.gamma / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.gamma / 90;\n break;\n case \"portrait-primary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-secondary\":\n value = orientation.beta / 90;\n break;\n default:\n value = -orientation.beta / 90;\n }\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.beta / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-primary\":\n value = orientation.gamma / 90;\n break;\n case \"portrait-secondary\":\n value = -orientation.gamma / 90;\n break;\n default:\n value = orientation.gamma / 90;\n }\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n tryOnMounted(update);\n watch(() => toValue(element), update);\n return parentElement;\n}\n\nfunction usePerformanceObserver(options, callback) {\n const {\n window = defaultWindow,\n immediate = true,\n ...performanceOptions\n } = options;\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return {\n ...toRefs(state),\n isInside\n };\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock();\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n disableTextSelect = false\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n })\n ];\n tryOnMounted(() => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n if (disableTextSelect) {\n (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty(\"-webkit-user-select\", \"none\");\n (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty(\"-ms-user-select\", \"none\");\n (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty(\"user-select\", \"none\");\n }\n });\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(\n toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return readonly(previous);\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow = \"\";\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, ele.style.overflow);\n if (ele.style.overflow !== \"hidden\")\n initialOverflow = ele.style.overflow;\n if (ele.style.overflow === \"hidden\")\n return isLocked.value = true;\n if (isLocked.value)\n return ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n el.style.overflow = initialOverflow;\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = {\n ...toValue(shareOptions),\n ...toValue(overrideOptions)\n };\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...toValue(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(toValue(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = toRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = toValue(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const currentResult = event.results[event.resultIndex];\n const { transcript } = currentResult[0];\n isFinal.value = currentResult.isFinal;\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = toValue(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = toRef(text || \"\");\n const lang = toRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = toValue(lang);\n utterance2.voice = toValue(options.voice) || null;\n utterance2.pitch = toValue(pitch);\n utterance2.rate = toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorageAsync\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = { ...rawInit, ...value };\n else data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n var _a;\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n const styleProp = (_a = options == null ? void 0 : options.styleProp) != null ? _a : \"height\";\n const textareaScrollHeight = ref(1);\n function triggerResize() {\n var _a2;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style[styleProp] = \"1px\";\n textareaScrollHeight.value = (_a2 = textarea.value) == null ? void 0 : _a2.scrollHeight;\n if (options == null ? void 0 : options.styleTarget)\n toValue(options.styleTarget).style[styleProp] = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style[styleProp] = height;\n }\n watch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n watch(textareaScrollHeight, () => {\n var _a2;\n return (_a2 = options == null ? void 0 : options.onResize) == null ? void 0 : _a2.call(options);\n });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const { now, ...controls } = useNow({ interval: updateInterval, controls: true });\n const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n if (exposeControls) {\n return {\n timeAgo,\n ...controls\n };\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval, { immediate: false });\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b, _c;\n const {\n document = defaultDocument,\n restoreOnUnmount = (t) => t\n } = options;\n const originalTitle = (_a = document == null ? void 0 : document.title) != null ? _a : \"\";\n const title = toRef((_b = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _b : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n }\n watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_c = document.head) == null ? void 0 : _c.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n tryOnBeforeUnmount(() => {\n if (restoreOnUnmount) {\n const restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n if (restoredTitle != null && document)\n document.title = restoredTitle;\n }\n });\n return title;\n}\n\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = toValue(from);\n const toVal = toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = toValue(source);\n return typeof v === \"number\" ? v : v.map(toValue);\n };\n const outputRef = ref(sourceVal());\n watch(sourceVal, async (to) => {\n var _a, _b;\n if (toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await promiseTimeout(toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, {\n ...options,\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n });\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n watch(() => toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n tryOnScopeDispose(() => {\n currentId++;\n });\n return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else _stop();\n },\n { immediate: true }\n );\n watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n tryOnScopeDispose(() => {\n stop();\n });\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n let isUpdating = false;\n watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n nextTick(() => isUpdating = false);\n }\n }\n );\n watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props) {\n ret[key] = useVModel(\n props,\n key,\n emit,\n options\n );\n }\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, containerRef, calculateRange) {\n watch([size.width, size.height, list, containerRef], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n}\n\nfunction useWebNotification(options = {}) {\n const {\n window = defaultWindow,\n requestPermissions: _requestForPermissions = true\n } = options;\n const defaultWebNotificationOptions = options;\n const isSupported = useSupported(() => {\n if (!window || !(\"Notification\" in window))\n return false;\n try {\n new Notification(\"\");\n } catch (e) {\n return false;\n }\n return true;\n });\n const permissionGranted = ref(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n const notification = ref(null);\n const ensurePermissions = async () => {\n if (!isSupported.value)\n return;\n if (!permissionGranted.value && Notification.permission !== \"denied\") {\n const result = await Notification.requestPermission();\n if (result === \"granted\")\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n };\n const { on: onClick, trigger: clickTrigger } = createEventHook();\n const { on: onShow, trigger: showTrigger } = createEventHook();\n const { on: onError, trigger: errorTrigger } = createEventHook();\n const { on: onClose, trigger: closeTrigger } = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value || !permissionGranted.value)\n return;\n const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);\n notification.value = new Notification(options2.title || \"\", options2);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n if (_requestForPermissions)\n tryOnMounted(ensurePermissions);\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n ensurePermissions,\n permissionGranted,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const close = (code = 1e3, reason) => {\n if (!isClient || !wsRef.value)\n return;\n explicitlyClosed = true;\n resetHeartbeat();\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n wsRef.value = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n explicitlyClosed = false;\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n if (isClient)\n useEventListener(\"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n if (!isClient && !isWorker)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n open();\n watch(urlRef, open);\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction depsParser(deps, localDeps) {\n if (deps.length === 0 && localDeps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n const depsFunctionString = localDeps.filter((dep) => typeof dep === \"function\").map((fn) => {\n const str = fn.toString();\n if (str.trim().startsWith(\"function\")) {\n return str;\n } else {\n const name = fn.name;\n return `const ${name} = ${str}`;\n }\n }).join(\";\");\n const importString = `importScripts(${depsString});`;\n return `${depsString.trim() === \"\" ? \"\" : importString} ${depsFunctionString}`;\n}\n\nfunction createWorkerBlobUrl(fn, deps, localDeps) {\n const blobCode = `${depsParser(deps, localDeps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n localDependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies, localDependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n e.preventDefault();\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll(options = {}) {\n const { window = defaultWindow, behavior = \"auto\" } = options;\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const internalX = ref(window.scrollX);\n const internalY = ref(window.scrollY);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo({ left: x2, behavior });\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo({ top: y2, behavior });\n }\n });\n useEventListener(\n window,\n \"scroll\",\n () => {\n internalX.value = window.scrollX;\n internalY.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n watch(matches, () => update());\n }\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, breakpointsVuetifyV2, breakpointsVuetifyV3, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n"], + "mappings": "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", + "names": ["get", "set", "ref", "keys", "invoke", "toRef", "toRefs", "events", "window", "document", "timestamp", "getValue", "defaults", "toRef", "set", "onUpdated", "preventDefault", "toRefs", "now", "scrollTo", "keys", "get", "isReadonly"] +} diff --git a/.vitepress/cache/deps/chunk-CGFDJW4T.js b/.vitepress/cache/deps/chunk-CGFDJW4T.js new file mode 100644 index 0000000..65000a8 --- /dev/null +++ b/.vitepress/cache/deps/chunk-CGFDJW4T.js @@ -0,0 +1,11440 @@ +// node_modules/.pnpm/@vue+shared@3.4.31/node_modules/@vue/shared/dist/shared.esm-bundler.js +function makeMap(str, expectsLowerCase) { + const set2 = new Set(str.split(",")); + return expectsLowerCase ? (val) => set2.has(val.toLowerCase()) : (val) => set2.has(val); +} +var EMPTY_OBJ = true ? Object.freeze({}) : {}; +var EMPTY_ARR = true ? Object.freeze([]) : []; +var NOOP = () => { +}; +var NO = () => false; +var isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +var isModelListener = (key) => key.startsWith("onUpdate:"); +var extend = Object.assign; +var remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var hasOwn = (val, key) => hasOwnProperty.call(val, key); +var isArray = Array.isArray; +var isMap = (val) => toTypeString(val) === "[object Map]"; +var isSet = (val) => toTypeString(val) === "[object Set]"; +var isDate = (val) => toTypeString(val) === "[object Date]"; +var isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +var isFunction = (val) => typeof val === "function"; +var isString = (val) => typeof val === "string"; +var isSymbol = (val) => typeof val === "symbol"; +var isObject = (val) => val !== null && typeof val === "object"; +var isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); +}; +var objectToString = Object.prototype.toString; +var toTypeString = (value) => objectToString.call(value); +var toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +var isPlainObject = (val) => toTypeString(val) === "[object Object]"; +var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +var isReservedProp = makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +var isBuiltInDirective = makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +var cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; +}; +var camelizeRE = /-(\w)/g; +var camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); +}); +var hyphenateRE = /\B([A-Z])/g; +var hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +var capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +var toHandlerKey = cacheStringFunction((str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; +}); +var hasChanged = (value, oldValue) => !Object.is(value, oldValue); +var invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } +}; +var def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); +}; +var looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +var toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +var _globalThis; +var getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; +var GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error"; +var isGloballyAllowed = makeMap(GLOBALS_ALLOWED); +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } +} +var listDelimiterRE = /;(?![^(]*\))/g; +var propertyDelimiterRE = /:([^]+)/; +var styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function stringifyStyle(styles) { + let ret = ""; + if (!styles || isString(styles)) { + return ret; + } + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} +var HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +var SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +var MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +var VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +var isHTMLTag = makeMap(HTML_TAGS); +var isSVGTag = makeMap(SVG_TAGS); +var isMathMLTag = makeMap(MATH_TAGS); +var isVoidTag = makeMap(VOID_TAGS); +var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +var isSpecialBooleanAttr = makeMap(specialBooleanAttrs); +var isBooleanAttr = makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +var isKnownHtmlAttr = makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +var isKnownSvgAttr = makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; +} +function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} +var isRef = (val) => { + return !!(val && val.__v_isRef === true); +}; +var toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); +}; +var replacer = (_key, val) => { + if (isRef(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +var stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); +}; + +// node_modules/.pnpm/@vue+reactivity@3.4.31/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js +function warn(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} +var activeEffectScope; +var EffectScope = class { + constructor(detached = false) { + this.detached = detached; + this._active = true; + this.effects = []; + this.cleanups = []; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else if (true) { + warn(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + activeEffectScope = this; + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + activeEffectScope = this.parent; + } + stop(fromParent) { + if (this._active) { + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + this._active = false; + } + } +}; +function effectScope(detached) { + return new EffectScope(detached); +} +function recordEffectScope(effect2, scope = activeEffectScope) { + if (scope && scope.active) { + scope.effects.push(effect2); + } +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (true) { + warn( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } +} +var activeEffect; +var ReactiveEffect = class { + constructor(fn, trigger2, scheduler, scope) { + this.fn = fn; + this.trigger = trigger2; + this.scheduler = scheduler; + this.active = true; + this.deps = []; + this._dirtyLevel = 4; + this._trackId = 0; + this._runnings = 0; + this._shouldSchedule = false; + this._depsLength = 0; + recordEffectScope(this, scope); + } + get dirty() { + if (this._dirtyLevel === 2 || this._dirtyLevel === 3) { + this._dirtyLevel = 1; + pauseTracking(); + for (let i = 0; i < this._depsLength; i++) { + const dep = this.deps[i]; + if (dep.computed) { + triggerComputed(dep.computed); + if (this._dirtyLevel >= 4) { + break; + } + } + } + if (this._dirtyLevel === 1) { + this._dirtyLevel = 0; + } + resetTracking(); + } + return this._dirtyLevel >= 4; + } + set dirty(v) { + this._dirtyLevel = v ? 4 : 0; + } + run() { + this._dirtyLevel = 0; + if (!this.active) { + return this.fn(); + } + let lastShouldTrack = shouldTrack; + let lastEffect = activeEffect; + try { + shouldTrack = true; + activeEffect = this; + this._runnings++; + preCleanupEffect(this); + return this.fn(); + } finally { + postCleanupEffect(this); + this._runnings--; + activeEffect = lastEffect; + shouldTrack = lastShouldTrack; + } + } + stop() { + if (this.active) { + preCleanupEffect(this); + postCleanupEffect(this); + this.onStop && this.onStop(); + this.active = false; + } + } +}; +function triggerComputed(computed3) { + return computed3.value; +} +function preCleanupEffect(effect2) { + effect2._trackId++; + effect2._depsLength = 0; +} +function postCleanupEffect(effect2) { + if (effect2.deps.length > effect2._depsLength) { + for (let i = effect2._depsLength; i < effect2.deps.length; i++) { + cleanupDepEffect(effect2.deps[i], effect2); + } + effect2.deps.length = effect2._depsLength; + } +} +function cleanupDepEffect(dep, effect2) { + const trackId = dep.get(effect2); + if (trackId !== void 0 && effect2._trackId !== trackId) { + dep.delete(effect2); + if (dep.size === 0) { + dep.cleanup(); + } + } +} +function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const _effect = new ReactiveEffect(fn, NOOP, () => { + if (_effect.dirty) { + _effect.run(); + } + }); + if (options) { + extend(_effect, options); + if (options.scope) recordEffectScope(_effect, options.scope); + } + if (!options || !options.lazy) { + _effect.run(); + } + const runner = _effect.run.bind(_effect); + runner.effect = _effect; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +var shouldTrack = true; +var pauseScheduleStack = 0; +var trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function pauseScheduling() { + pauseScheduleStack++; +} +function resetScheduling() { + pauseScheduleStack--; + while (!pauseScheduleStack && queueEffectSchedulers.length) { + queueEffectSchedulers.shift()(); + } +} +function trackEffect(effect2, dep, debuggerEventExtraInfo) { + var _a; + if (dep.get(effect2) !== effect2._trackId) { + dep.set(effect2, effect2._trackId); + const oldDep = effect2.deps[effect2._depsLength]; + if (oldDep !== dep) { + if (oldDep) { + cleanupDepEffect(oldDep, effect2); + } + effect2.deps[effect2._depsLength++] = dep; + } else { + effect2._depsLength++; + } + if (true) { + (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); + } + } +} +var queueEffectSchedulers = []; +function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) { + var _a; + pauseScheduling(); + for (const effect2 of dep.keys()) { + let tracking; + if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) { + effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0); + effect2._dirtyLevel = dirtyLevel; + } + if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) { + if (true) { + (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); + } + effect2.trigger(); + if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) { + effect2._shouldSchedule = false; + if (effect2.scheduler) { + queueEffectSchedulers.push(effect2.scheduler); + } + } + } + } + resetScheduling(); +} +var createDep = (cleanup, computed3) => { + const dep = /* @__PURE__ */ new Map(); + dep.cleanup = cleanup; + dep.computed = computed3; + return dep; +}; +var targetMap = /* @__PURE__ */ new WeakMap(); +var ITERATE_KEY = Symbol(true ? "iterate" : ""); +var MAP_KEY_ITERATE_KEY = Symbol(true ? "Map key iterate" : ""); +function track(target, type, key) { + if (shouldTrack && activeEffect) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = createDep(() => depsMap.delete(key))); + } + trackEffect( + activeEffect, + dep, + true ? { + target, + type, + key + } : void 0 + ); + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + return; + } + let deps = []; + if (type === "clear") { + deps = [...depsMap.values()]; + } else if (key === "length" && isArray(target)) { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || !isSymbol(key2) && key2 >= newLength) { + deps.push(dep); + } + }); + } else { + if (key !== void 0) { + deps.push(depsMap.get(key)); + } + switch (type) { + case "add": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isIntegerKey(key)) { + deps.push(depsMap.get("length")); + } + break; + case "delete": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + } + break; + } + } + pauseScheduling(); + for (const dep of deps) { + if (dep) { + triggerEffects( + dep, + 4, + true ? { + target, + type, + key, + newValue, + oldValue, + oldTarget + } : void 0 + ); + } + } + resetScheduling(); +} +function getDepFromReactive(object, key) { + const depsMap = targetMap.get(object); + return depsMap && depsMap.get(key); +} +var isNonTrackableKeys = makeMap(`__proto__,__v_isRef,__isVue`); +var builtInSymbols = new Set( + Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) +); +var arrayInstrumentations = createArrayInstrumentations(); +function createArrayInstrumentations() { + const instrumentations = {}; + ["includes", "indexOf", "lastIndexOf"].forEach((key) => { + instrumentations[key] = function(...args) { + const arr = toRaw(this); + for (let i = 0, l = this.length; i < l; i++) { + track(arr, "get", i + ""); + } + const res = arr[key](...args); + if (res === -1 || res === false) { + return arr[key](...args.map(toRaw)); + } else { + return res; + } + }; + }); + ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { + instrumentations[key] = function(...args) { + pauseTracking(); + pauseScheduling(); + const res = toRaw(this)[key].apply(this, args); + resetScheduling(); + resetTracking(); + return res; + }; + }); + return instrumentations; +} +function hasOwnProperty2(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +var BaseReactiveHandler = class { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the reciever is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + if (targetIsArray && hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + if (key === "hasOwnProperty") { + return hasOwnProperty2; + } + } + const res = Reflect.get(target, key, receiver); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef2(res)) { + return targetIsArray && isIntegerKey(key) ? res : res.value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } +}; +var MutableReactiveHandler = class extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArray(target) && isRef2(oldValue) && !isRef2(value)) { + if (isOldValueReadonly) { + return false; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set(target, key, value, receiver); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } +}; +var ReadonlyReactiveHandler = class extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + if (true) { + warn( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + if (true) { + warn( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } +}; +var mutableHandlers = new MutableReactiveHandler(); +var readonlyHandlers = new ReadonlyReactiveHandler(); +var shallowReactiveHandlers = new MutableReactiveHandler( + true +); +var shallowReadonlyHandlers = new ReadonlyReactiveHandler(true); +var toShallow = (value) => value; +var getProto = (v) => Reflect.getPrototypeOf(v); +function get(target, key, isReadonly2 = false, isShallow2 = false) { + target = target["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has: has2 } = getProto(rawTarget); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + if (has2.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has2.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } +} +function has(key, isReadonly2 = false) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); +} +function size(target, isReadonly2 = false) { + target = target["__v_raw"]; + !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); +} +function add(value) { + value = toRaw(value); + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; +} +function set(key, value) { + value = toRaw(value); + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (true) { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; +} +function deleteEntry(key) { + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (true) { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2 ? get2.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; +} +function clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0; + const result = target.clear(); + if (hadItems) { + trigger(target, "clear", void 0, void 0, oldTarget); + } + return result; +} +function createForEach(isReadonly2, isShallow2) { + return function forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + }; +} +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + // iterable protocol + [Symbol.iterator]() { + return this; + } + }; + }; +} +function createReadonlyMethod(type) { + return function(...args) { + if (true) { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; +} +function createInstrumentations() { + const mutableInstrumentations2 = { + get(key) { + return get(this, key); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) + }; + const shallowInstrumentations2 = { + get(key) { + return get(this, key, false, true); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) + }; + const readonlyInstrumentations2 = { + get(key) { + return get(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, false) + }; + const shallowReadonlyInstrumentations2 = { + get(key) { + return get(this, key, true, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, true) + }; + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + mutableInstrumentations2[method] = createIterableMethod(method, false, false); + readonlyInstrumentations2[method] = createIterableMethod(method, true, false); + shallowInstrumentations2[method] = createIterableMethod(method, false, true); + shallowReadonlyInstrumentations2[method] = createIterableMethod( + method, + true, + true + ); + }); + return [ + mutableInstrumentations2, + readonlyInstrumentations2, + shallowInstrumentations2, + shallowReadonlyInstrumentations2 + ]; +} +var [ + mutableInstrumentations, + readonlyInstrumentations, + shallowInstrumentations, + shallowReadonlyInstrumentations +] = createInstrumentations(); +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations; + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +var mutableCollectionHandlers = { + get: createInstrumentationGetter(false, false) +}; +var shallowCollectionHandlers = { + get: createInstrumentationGetter(false, true) +}; +var readonlyCollectionHandlers = { + get: createInstrumentationGetter(true, false) +}; +var shallowReadonlyCollectionHandlers = { + get: createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has2, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has2.call(target, rawKey)) { + const type = toRawType(target); + warn( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } +} +var reactiveMap = /* @__PURE__ */ new WeakMap(); +var shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +var readonlyMap = /* @__PURE__ */ new WeakMap(); +var shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2; + default: + return 0; + } +} +function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value)); +} +function reactive(target) { + if (isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + if (true) { + warn( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0) { + return target; + } + const proxy = new Proxy( + target, + targetType === 2 ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +function isReactive(value) { + if (isReadonly(value)) { + return isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +function isProxy(value) { + return value ? !!value["__v_raw"] : false; +} +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? toRaw(raw) : observed; +} +function markRaw(value) { + if (Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; +} +var toReactive = (value) => isObject(value) ? reactive(value) : value; +var toReadonly = (value) => isObject(value) ? readonly(value) : value; +var COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`; +var ComputedRefImpl = class { + constructor(getter, _setter, isReadonly2, isSSR) { + this.getter = getter; + this._setter = _setter; + this.dep = void 0; + this.__v_isRef = true; + this["__v_isReadonly"] = false; + this.effect = new ReactiveEffect( + () => getter(this._value), + () => triggerRefValue( + this, + this.effect._dirtyLevel === 2 ? 2 : 3 + ) + ); + this.effect.computed = this; + this.effect.active = this._cacheable = !isSSR; + this["__v_isReadonly"] = isReadonly2; + } + get value() { + const self2 = toRaw(this); + if ((!self2._cacheable || self2.effect.dirty) && hasChanged(self2._value, self2._value = self2.effect.run())) { + triggerRefValue(self2, 4); + } + trackRefValue(self2); + if (self2.effect._dirtyLevel >= 2) { + if (this._warnRecursive) { + warn(COMPUTED_SIDE_EFFECT_WARN, ` + +getter: `, this.getter); + } + triggerRefValue(self2, 2); + } + return self2._value; + } + set value(newValue) { + this._setter(newValue); + } + // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x + get _dirty() { + return this.effect.dirty; + } + set _dirty(v) { + this.effect.dirty = v; + } + // #endregion +}; +function computed(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + const onlyGetter = isFunction(getterOrOptions); + if (onlyGetter) { + getter = getterOrOptions; + setter = true ? () => { + warn("Write operation failed: computed value is readonly"); + } : NOOP; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR); + if (debugOptions && !isSSR) { + cRef.effect.onTrack = debugOptions.onTrack; + cRef.effect.onTrigger = debugOptions.onTrigger; + } + return cRef; +} +function trackRefValue(ref2) { + var _a; + if (shouldTrack && activeEffect) { + ref2 = toRaw(ref2); + trackEffect( + activeEffect, + (_a = ref2.dep) != null ? _a : ref2.dep = createDep( + () => ref2.dep = void 0, + ref2 instanceof ComputedRefImpl ? ref2 : void 0 + ), + true ? { + target: ref2, + type: "get", + key: "value" + } : void 0 + ); + } +} +function triggerRefValue(ref2, dirtyLevel = 4, newVal, oldVal) { + ref2 = toRaw(ref2); + const dep = ref2.dep; + if (dep) { + triggerEffects( + dep, + dirtyLevel, + true ? { + target: ref2, + type: "set", + key: "value", + newValue: newVal, + oldValue: oldVal + } : void 0 + ); + } +} +function isRef2(r) { + return !!(r && r.__v_isRef === true); +} +function ref(value) { + return createRef(value, false); +} +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (isRef2(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +var RefImpl = class { + constructor(value, __v_isShallow) { + this.__v_isShallow = __v_isShallow; + this.dep = void 0; + this.__v_isRef = true; + this._rawValue = __v_isShallow ? value : toRaw(value); + this._value = __v_isShallow ? value : toReactive(value); + } + get value() { + trackRefValue(this); + return this._value; + } + set value(newVal) { + const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal); + newVal = useDirectValue ? newVal : toRaw(newVal); + if (hasChanged(newVal, this._rawValue)) { + const oldVal = this._rawValue; + this._rawValue = newVal; + this._value = useDirectValue ? newVal : toReactive(newVal); + triggerRefValue(this, 4, newVal, oldVal); + } + } +}; +function triggerRef(ref2) { + triggerRefValue(ref2, 4, true ? ref2.value : void 0); +} +function unref(ref2) { + return isRef2(ref2) ? ref2.value : ref2; +} +function toValue(source) { + return isFunction(source) ? source() : unref(source); +} +var shallowUnwrapHandlers = { + get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef2(oldValue) && !isRef2(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +var CustomRefImpl = class { + constructor(factory) { + this.dep = void 0; + this.__v_isRef = true; + const { get: get2, set: set2 } = factory( + () => trackRefValue(this), + () => triggerRefValue(this) + ); + this._get = get2; + this._set = set2; + } + get value() { + return this._get(); + } + set value(newVal) { + this._set(newVal); + } +}; +function customRef(factory) { + return new CustomRefImpl(factory); +} +function toRefs(object) { + if (!isProxy(object)) { + warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +var ObjectRefImpl = class { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this.__v_isRef = true; + } + get value() { + const val = this._object[this._key]; + return val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(toRaw(this._object), this._key); + } +}; +var GetterRefImpl = class { + constructor(_getter) { + this._getter = _getter; + this.__v_isRef = true; + this.__v_isReadonly = true; + } + get value() { + return this._getter(); + } +}; +function toRef(source, key, defaultValue) { + if (isRef2(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return ref(source); + } +} +function propertyToRef(source, key, defaultValue) { + const val = source[key]; + return isRef2(val) ? val : new ObjectRefImpl(source, key, defaultValue); +} +var TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" +}; +var TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" +}; + +// node_modules/.pnpm/@vue+runtime-core@3.4.31/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +var stack = []; +function pushWarningContext(vnode) { + stack.push(vnode); +} +function popWarningContext() { + stack.pop(); +} +function warn$1(msg, ...args) { + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef2(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} +function assertNumber(val, type) { + if (false) return; + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1(`${type} is NaN - the duration expression might be incorrect.`); + } +} +var ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "WATCH_GETTER": 2, + "2": "WATCH_GETTER", + "WATCH_CALLBACK": 3, + "3": "WATCH_CALLBACK", + "WATCH_CLEANUP": 4, + "4": "WATCH_CLEANUP", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER" +}; +var ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ." +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } else if (true) { + warn$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = true ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + const appErrorHandler = instance.appContext.config.errorHandler; + if (appErrorHandler) { + pauseTracking(); + callWithErrorHandling( + appErrorHandler, + null, + 10, + [err, exposedInstance, errorInfo] + ); + resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev); +} +function logError(err, type, contextVNode, throwInDev = true) { + if (true) { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } else { + console.error(err); + } +} +var isFlushing = false; +var isFlushPending = false; +var queue = []; +var flushIndex = 0; +var pendingPostFlushCbs = []; +var activePostFlushCbs = null; +var postFlushIndex = 0; +var resolvedPromise = Promise.resolve(); +var currentFlushPromise = null; +var RECURSION_LIMIT = 100; +function nextTick(fn) { + const p2 = currentFlushPromise || resolvedPromise; + return fn ? p2.then(this ? fn.bind(this) : fn) : p2; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.pre) { + start = middle + 1; + } else { + end = middle; + } + } + return start; +} +function queueJob(job) { + if (!queue.length || !queue.includes( + job, + isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex + )) { + if (job.id == null) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(job.id), 0, job); + } + queueFlush(); + } +} +function queueFlush() { + if (!isFlushing && !isFlushPending) { + isFlushPending = true; + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function invalidateJob(job) { + const i = queue.indexOf(job); + if (i > flushIndex) { + queue.splice(i, 1); + } +} +function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (!activePostFlushCbs || !activePostFlushCbs.includes( + cb, + cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex + )) { + pendingPostFlushCbs.push(cb); + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) { + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.pre) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + cb(); + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + if (cb.active !== false) cb(); + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +var getId = (job) => job.id == null ? Infinity : job.id; +var comparator = (a, b) => { + const diff = getId(a) - getId(b); + if (diff === 0) { + if (a.pre && !b.pre) return -1; + if (b.pre && !a.pre) return 1; + } + return diff; +}; +function flushJobs(seen) { + isFlushPending = false; + isFlushing = true; + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + queue.sort(comparator); + const check = true ? (job) => checkRecursiveUpdates(seen, job) : NOOP; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && job.active !== false) { + if (check(job)) { + continue; + } + callWithErrorHandling(job, null, 14); + } + } + } finally { + flushIndex = 0; + queue.length = 0; + flushPostFlushCbs(seen); + isFlushing = false; + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + if (!seen.has(fn)) { + seen.set(fn, 1); + } else { + const count = seen.get(fn); + if (count > RECURSION_LIMIT) { + const instance = fn.ownerInstance; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } else { + seen.set(fn, count + 1); + } + } +} +var isHmrUpdating = false; +var hmrDirtyComponents = /* @__PURE__ */ new Set(); +if (true) { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; +} +var map = /* @__PURE__ */ new Map(); +function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); +} +function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); +} +function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; +} +function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; +} +function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + instance.effect.dirty = true; + instance.update(); + isHmrUpdating = false; + }); +} +function reload(id, newComp) { + const record = map.get(id); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (const instance of instances) { + const oldComp = normalizeClassComponent(instance.type); + if (!hmrDirtyComponents.has(oldComp)) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.add(oldComp); + } + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + hmrDirtyComponents.add(oldComp); + instance.ceReload(newComp.styles); + hmrDirtyComponents.delete(oldComp); + } else if (instance.parent) { + instance.parent.effect.dirty = true; + queueJob(() => { + instance.parent.update(); + hmrDirtyComponents.delete(oldComp); + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + } + queuePostFlushCb(() => { + for (const instance of instances) { + hmrDirtyComponents.delete( + normalizeClassComponent(instance.type) + ); + } + }); +} +function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } +} +function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; +} +var devtools$1; +var buffer = []; +var devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +function setDevtoolsHook$1(hook, target) { + var _a, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +function devtoolsInitApp(app, version2) { + emit$1("app:init", app, version2, { + Fragment, + Text, + Comment, + Static + }); +} +function devtoolsUnmountApp(app) { + emit$1("app:unmount", app); +} +var devtoolsComponentAdded = createDevtoolsComponentHook( + "component:added" + /* COMPONENT_ADDED */ +); +var devtoolsComponentUpdated = createDevtoolsComponentHook( + "component:updated" + /* COMPONENT_UPDATED */ +); +var _devtoolsComponentRemoved = createDevtoolsComponentHook( + "component:removed" + /* COMPONENT_REMOVED */ +); +var devtoolsComponentRemoved = (component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}; +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; +} +var devtoolsPerfStart = createDevtoolsPerformanceHook( + "perf:start" + /* PERFORMANCE_START */ +); +var devtoolsPerfEnd = createDevtoolsPerformanceHook( + "perf:end" + /* PERFORMANCE_END */ +); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit", + component.appContext.app, + component, + event, + params + ); +} +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || EMPTY_OBJ; + if (true) { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { + warn$1( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn$1( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener2 = event.startsWith("update:"); + const modelArg = isModelListener2 && event.slice(7); + if (modelArg && modelArg in props) { + const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`; + const { number, trim } = props[modifiersKey] || EMPTY_OBJ; + if (trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (number) { + args = rawArgs.map(looseToNumber); + } + } + if (true) { + devtoolsComponentEmit(instance, event, args); + } + if (true) { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn$1( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate( + event + )}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener2) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } +} +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (__VUE_OPTIONS_API__ && !isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); +} +var currentRenderingInstance = null; +var currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function pushScopeId(id) { + currentScopeId = id; +} +function popScopeId() { + currentScopeId = null; +} +var withScopeId = (_id) => withCtx; +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + if (true) { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} +var accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs, + emit: emit2, + render: render2, + renderCache, + props, + data, + setupState, + ctx, + inheritAttrs + } = instance; + const prev = setCurrentRenderingInstance(instance); + let result; + let fallthroughAttrs; + if (true) { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn$1( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render2.call( + thisProxy, + proxyToUse, + renderCache, + true ? shallowReadonly(props) : props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render22 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render22.length > 1 ? render22( + true ? shallowReadonly(props) : props, + true ? { + get attrs() { + markAttrsAccessed(); + return shallowReadonly(attrs); + }, + slots, + emit: emit2 + } : { attrs, slots, emit: emit2 } + ) : render22( + true ? shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs, false, true); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn$1( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.` + ); + } + if (eventAttrs.length) { + warn$1( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn$1( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root, null, false, true); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn$1( + `Component inside renders non-element root node that cannot be animated.` + ); + } + root.transition = vnode.transition; + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; +} +var getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren, false); + if (!childRoot) { + return [vnode, void 0]; + } else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) { + return getChildRoot(childRoot); + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; +}; +function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) { + return filterSingleRoot(singleRoot.children); + } + } + } + } else { + return; + } + } + return singleRoot; +} +var getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +var filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +var isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } +} +var COMPONENTS = "components"; +var DIRECTIVES = "directives"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +var NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); +function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else if (true) { + warn$1( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); +} +var isSuspense = (type) => type.__isSuspense; +var suspenseId = 0; +var SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { + n2.suspense = n1.suspense; + n2.suspense.vnode = n2; + n2.el = n1.el; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + normalize: normalizeSuspenseChildren +}; +var Suspense = SuspenseImpl; +function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } +} +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } +} +function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(newBranch, pendingBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +var hasWarned = false; +function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + ` is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove: remove2 } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + if (true) { + assertNumber(timeout, `Suspense timeout`); + } + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + if (true) { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2 + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + } + }; + } + if (activeBranch) { + if (parentNode(activeBranch.el) !== suspense.hiddenContainer) { + anchor = next(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect, optimized2) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + if (true) { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + namespace, + optimized2 + ); + if (placeholder) { + remove2(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + if (true) { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; +} +function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; +} +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) { + warn$1(` slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +function isVNodeSuspensible(vnode) { + const suspensible = vnode.props && vnode.props.suspensible; + return suspensible != null && suspensible !== false; +} +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else if (true) { + const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` + ); + } +} +var createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } +}; +var onBeforeMount = createHook("bm"); +var onMounted = createHook("m"); +var onBeforeUpdate = createHook("bu"); +var onUpdated = createHook("u"); +var onBeforeUnmount = createHook("bum"); +var onUnmounted = createHook("um"); +var onServerPrefetch = createHook("sp"); +var onRenderTriggered = createHook( + "rtg" +); +var onRenderTracked = createHook( + "rtc" +); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} +function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } +} +function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + warn$1(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; +} +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } +} +function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + if (isArray(source) || isString(source)) { + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem(source[i], i, void 0, cached && cached[i]); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn$1(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; +} +function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; +} +function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8326: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; +} +var isAsyncWrapper = (i) => !!i.type.__asyncLoader; +function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve2, reject) => { + const userRetry = () => resolve2(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.effect.dirty = true; + queueJob(instance.parent.update); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createVNode(loadingComponent); + } + }; + } + }); +} +function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} +function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) { + if (name !== "default") props.name = name; + return createVNode("slot", props, fallback && fallback()); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const rendered = createBlock( + Fragment, + { + key: props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key || `_${name}` + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; +} +function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; +} +function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; +} +var getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); +}; +var publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => true ? shallowReadonly(i.props) : i.props, + $attrs: (i) => true ? shallowReadonly(i.attrs) : i.attrs, + $slots: (i) => true ? shallowReadonly(i.slots) : i.slots, + $refs: (i) => true ? shallowReadonly(i.refs) : i.refs, + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $emit: (i) => i.emit, + $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type, + $forceUpdate: (i) => i.f || (i.f = () => { + i.effect.dirty = true; + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP + }) +); +var isReservedPrefix = (key) => key === "_" || key === "$"; +var hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); +var PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + let normalizedProps; + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1: + return setupState[key]; + case 2: + return data[key]; + case 4: + return ctx[key]; + case 3: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2; + return data[key]; + } else if ( + // only cache other properties when instance has declared (thus stable) + // props + (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) + ) { + accessCache[key] = 3; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) { + accessCache[key] = 0; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance.attrs, "get", ""); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn$1(`Cannot mutate + + + + + +
+ + + + \ No newline at end of file diff --git a/.vitepress/dist/README.html b/.vitepress/dist/README.html new file mode 100644 index 0000000..a0a5166 --- /dev/null +++ b/.vitepress/dist/README.html @@ -0,0 +1,24 @@ + + + + + + cool-admin-java-docs | Cool Admin + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.vitepress/dist/assets/README.md.8s30YuPZ.js b/.vitepress/dist/assets/README.md.8s30YuPZ.js new file mode 100644 index 0000000..c9dd43a --- /dev/null +++ b/.vitepress/dist/assets/README.md.8s30YuPZ.js @@ -0,0 +1 @@ +import{_ as e,c as o,o as t,j as a,a as c}from"./chunks/framework.DHgIdERs.js";const E=JSON.parse('{"title":"cool-admin-java-docs","description":"","frontmatter":{},"headers":[],"relativePath":"README.md","filePath":"README.md","lastUpdated":1720593124000}'),s={name:"README.md"},d=a("h1",{id:"cool-admin-java-docs",tabindex:"-1"},[c("cool-admin-java-docs "),a("a",{class:"header-anchor",href:"#cool-admin-java-docs","aria-label":'Permalink to "cool-admin-java-docs"'},"​")],-1),n=[d];function r(i,l,m,_,p,h){return t(),o("div",null,n)}const v=e(s,[["render",r]]);export{E as __pageData,v as default}; diff --git a/.vitepress/dist/assets/README.md.8s30YuPZ.lean.js b/.vitepress/dist/assets/README.md.8s30YuPZ.lean.js new file mode 100644 index 0000000..c9dd43a --- /dev/null +++ b/.vitepress/dist/assets/README.md.8s30YuPZ.lean.js @@ -0,0 +1 @@ +import{_ as e,c as o,o as t,j as a,a as c}from"./chunks/framework.DHgIdERs.js";const E=JSON.parse('{"title":"cool-admin-java-docs","description":"","frontmatter":{},"headers":[],"relativePath":"README.md","filePath":"README.md","lastUpdated":1720593124000}'),s={name:"README.md"},d=a("h1",{id:"cool-admin-java-docs",tabindex:"-1"},[c("cool-admin-java-docs "),a("a",{class:"header-anchor",href:"#cool-admin-java-docs","aria-label":'Permalink to "cool-admin-java-docs"'},"​")],-1),n=[d];function r(i,l,m,_,p,h){return t(),o("div",null,n)}const v=e(s,[["render",r]]);export{E as __pageData,v as default}; diff --git a/.vitepress/dist/assets/app.XPlPhhoU.js b/.vitepress/dist/assets/app.XPlPhhoU.js new file mode 100644 index 0000000..6fa3cb7 --- /dev/null +++ b/.vitepress/dist/assets/app.XPlPhhoU.js @@ -0,0 +1 @@ +import{U as o,ab as p,ac as u,ad as l,ae as c,af as f,ag as d,ah as m,ai as h,aj as g,ak as A,d as P,u as v,y,x as w,al as C,am as R,an as b,ao as E}from"./chunks/framework.DHgIdERs.js";import{R as S}from"./chunks/theme.LmTTO8j8.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.CxI89Hj-.js b/.vitepress/dist/assets/chunks/@localSearchIndexroot.CxI89Hj-.js new file mode 100644 index 0000000..3a62f41 --- /dev/null +++ b/.vitepress/dist/assets/chunks/@localSearchIndexroot.CxI89Hj-.js @@ -0,0 +1 @@ +const e='{"documentCount":73,"nextId":73,"documentIds":{"0":"/README.html#cool-admin-java-docs","1":"/src/about/#交流合作","2":"/src/about/#微信","3":"/src/about/#抖音","4":"/src/about/#b-站","5":"/src/about/#公众号","6":"/src/guide/cache.html#缓存","7":"/src/guide/cache.html#使用","8":"/src/guide/ai.html#ai-编码","9":"/src/guide/controller.html#控制器","10":"/src/guide/controller.html#示例","11":"/src/guide/controller.html#查询配置","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#重写getmappingformethod","18":"/src/guide/exception.html#统一异常处理","19":"/src/guide/exception.html#异常统一捕获","20":"/src/guide/flow.html#ai-流程编排","21":"/src/guide/generatorCode.html#代码生成","22":"/src/guide/initData.html#数据初始化","23":"/src/guide/plugin.html#扩展插件","24":"/src/guide/plugin.html#使用插件","25":"/src/guide/plugin.html#_1、安装","26":"/src/guide/plugin.html#_2、调用","27":"/src/guide/plugin.html#_3、配置","28":"/src/guide/plugin.html#开发插件","29":"/src/guide/plugin.html#_1、脚手架","30":"/src/guide/plugin.html#_2、目录结构","31":"/src/guide/plugin.html#_3、开发过程","32":"/src/guide/plugin.html#_4、字段解释","33":"/src/guide/plugin.html#插件详解","34":"/src/guide/plugin.html#打包","35":"/src/guide/plugin.html#安装插件","36":"/src/guide/plugin.html#实现原理","37":"/src/guide/quick.html#快速开始","38":"/src/guide/quick.html#前置准备","39":"/src/guide/quick.html#运行系统","40":"/src/guide/quick.html#项目包结构","41":"/src/guide/quick.html#表结构创建","42":"/src/guide/quick.html#第一个-crud","43":"/src/guide/quick.html#配置数据库信息","44":"/src/guide/security.html#权限校验","45":"/src/guide/security.html#配置","46":"/src/guide/security.html#原理","47":"/src/guide/security.html#当前用户","48":"/src/guide/springboot3.html#spring-boot-3-介绍","49":"/src/guide/springboot3.html#主要特点","50":"/src/guide/springboot3.html#简化的配置","51":"/src/guide/springboot3.html#新特性和增强","52":"/src/guide/springboot3.html#改进的性能","53":"/src/guide/springboot3.html#现代化开发体验","54":"/src/guide/springboot3.html#更强的安全性","55":"/src/guide/swagger.html#swagger-文档","56":"/src/guide/upload.html#文件上传","57":"/src/guide/upload.html#使用","58":"/src/introduce/#简介","59":"/src/introduce/#技术选型","60":"/src/introduce/#为什么选择-cool-admin","61":"/src/introduce/#内置功能","62":"/src/introduce/show.html#演示","63":"/src/introduce/src.html#源码","64":"/src/introduce/src.html#后端","65":"/src/introduce/src.html#前端","66":"/src/question/commonQuestion.html#常见问题","67":"/src/question/commonQuestion.html#idea导入maven项目右侧没有maven","68":"/src/question/commonQuestion.html#当在-intellij-idea-中导入-maven-项目时-如果右侧没有显示-maven-面板-可能是因为以下几个原因","69":"/src/todo/plan.html#计划","70":"/src/todo/plan.html#v7-1-1","71":"/src/todo/update.html#更新","72":"/src/todo/update.html#v7-1-0-2024-06-27"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[4,1,1],"1":[1,1,4],"2":[1,1,2],"3":[1,1,11],"4":[2,1,3],"5":[1,1,6],"6":[1,1,33],"7":[1,1,40],"8":[2,1,3],"9":[1,1,15],"10":[1,1,48],"11":[1,1,62],"12":[1,1,57],"13":[1,1,60],"14":[1,1,1],"15":[1,1,24],"16":[1,1,14],"17":[1,1,39],"18":[1,1,8],"19":[1,1,78],"20":[2,1,30],"21":[1,1,33],"22":[1,1,67],"23":[1,1,9],"24":[1,1,1],"25":[2,2,10],"26":[2,2,135],"27":[2,2,16],"28":[1,1,1],"29":[2,2,4],"30":[2,2,19],"31":[2,2,31],"32":[2,2,27],"33":[1,1,170],"34":[1,1,18],"35":[1,1,4],"36":[1,1,66],"37":[1,1,1],"38":[1,1,14],"39":[1,1,79],"40":[1,1,57],"41":[1,1,65],"42":[2,1,46],"43":[1,1,28],"44":[1,1,5],"45":[1,1,17],"46":[1,1,243],"47":[1,1,29],"48":[4,1,15],"49":[1,4,1],"50":[1,5,15],"51":[1,5,29],"52":[1,5,3],"53":[1,5,6],"54":[1,5,3],"55":[2,1,48],"56":[1,1,10],"57":[1,1,78],"58":[1,1,1],"59":[1,1,31],"60":[4,1,26],"61":[1,1,39],"62":[1,1,11],"63":[1,1,6],"64":[1,1,11],"65":[1,1,11],"66":[1,1,1],"67":[1,1,1],"68":[10,2,73],"69":[1,1,4],"70":[2,1,9],"71":[1,1,8],"72":[7,1,8]},"averageFieldLength":[1.5068493150684932,1.4246575342465753,29.890410958904123],"storedFields":{"0":{"title":"cool-admin-java-docs","titles":[]},"1":{"title":"交流合作","titles":[]},"2":{"title":"微信","titles":["交流合作"]},"3":{"title":"抖音","titles":["交流合作"]},"4":{"title":"B 站","titles":["交流合作"]},"5":{"title":"公众号","titles":["交流合作"]},"6":{"title":"缓存","titles":[]},"7":{"title":"使用","titles":[]},"8":{"title":"Ai 编码","titles":[]},"9":{"title":"控制器","titles":[]},"10":{"title":"示例","titles":["控制器"]},"11":{"title":"查询配置","titles":["控制器"]},"12":{"title":"请求参数","titles":["控制器"]},"13":{"title":"重写实现","titles":["控制器"]},"14":{"title":"原理","titles":[]},"15":{"title":"接口路由规则","titles":["原理"]},"16":{"title":"自定义路由注解","titles":["原理"]},"17":{"title":"重写getMappingForMethod","titles":["原理"]},"18":{"title":"统一异常处理","titles":[]},"19":{"title":"异常统一捕获","titles":["统一异常处理"]},"20":{"title":"Ai 流程编排","titles":[]},"21":{"title":"代码生成","titles":[]},"22":{"title":"数据初始化","titles":[]},"23":{"title":"扩展插件","titles":[]},"24":{"title":"使用插件","titles":["扩展插件"]},"25":{"title":"1、安装","titles":["扩展插件","使用插件"]},"26":{"title":"2、调用","titles":["扩展插件","使用插件"]},"27":{"title":"3、配置","titles":["扩展插件","使用插件"]},"28":{"title":"开发插件","titles":["扩展插件"]},"29":{"title":"1、脚手架","titles":["扩展插件","开发插件"]},"30":{"title":"2、目录结构","titles":["扩展插件","开发插件"]},"31":{"title":"3、开发过程","titles":["扩展插件","开发插件"]},"32":{"title":"4、字段解释","titles":["扩展插件","开发插件"]},"33":{"title":"插件详解","titles":["扩展插件"]},"34":{"title":"打包","titles":["扩展插件"]},"35":{"title":"安装插件","titles":["扩展插件"]},"36":{"title":"实现原理","titles":["扩展插件"]},"37":{"title":"快速开始","titles":[]},"38":{"title":"前置准备","titles":["快速开始"]},"39":{"title":"运行系统","titles":["快速开始"]},"40":{"title":"项目包结构","titles":["快速开始"]},"41":{"title":"表结构创建","titles":["快速开始"]},"42":{"title":"第一个 CRUD","titles":["快速开始"]},"43":{"title":"配置数据库信息","titles":["快速开始"]},"44":{"title":"权限校验","titles":[]},"45":{"title":"配置","titles":["权限校验"]},"46":{"title":"原理","titles":["权限校验"]},"47":{"title":"当前用户","titles":["权限校验"]},"48":{"title":"Spring Boot 3 介绍","titles":[]},"49":{"title":"主要特点","titles":["Spring Boot 3 介绍"]},"50":{"title":"简化的配置","titles":["Spring Boot 3 介绍","主要特点"]},"51":{"title":"新特性和增强","titles":["Spring Boot 3 介绍","主要特点"]},"52":{"title":"改进的性能","titles":["Spring Boot 3 介绍","主要特点"]},"53":{"title":"现代化开发体验","titles":["Spring Boot 3 介绍","主要特点"]},"54":{"title":"更强的安全性","titles":["Spring Boot 3 介绍","主要特点"]},"55":{"title":"swagger 文档","titles":[]},"56":{"title":"文件上传","titles":[]},"57":{"title":"使用","titles":[]},"58":{"title":"简介","titles":[]},"59":{"title":"技术选型","titles":["简介"]},"60":{"title":"为什么选择 Cool Admin?","titles":["简介"]},"61":{"title":"内置功能","titles":["简介"]},"62":{"title":"演示","titles":[]},"63":{"title":"源码","titles":[]},"64":{"title":"后端","titles":["源码"]},"65":{"title":"前端","titles":["源码"]},"66":{"title":"常见问题","titles":[]},"67":{"title":"IDEA导入Maven项目右侧没有Maven","titles":["常见问题"]},"68":{"title":"当在 IntelliJ IDEA 中导入 Maven 项目时,如果右侧没有显示 Maven 面板,可能是因为以下几个原因:","titles":["常见问题","IDEA导入Maven项目右侧没有Maven"]},"69":{"title":"计划","titles":[]},"70":{"title":"v7.1.1","titles":["计划"]},"71":{"title":"更新","titles":[]},"72":{"title":"v7.1.0(2024-06-27)","titles":["更新"]}},"dirtCount":0,"index":[["优化若干问题",{"2":{"72":1}}],["优势",{"2":{"36":1}}],["版相关功能",{"2":{"72":1}}],["版本一致",{"2":{"62":1}}],["版本",{"2":{"51":1}}],["版本号",{"2":{"32":1}}],["版本视频演示",{"2":{"20":1}}],["跟进nodejs",{"2":{"72":1}}],["跟分页查询一样",{"2":{"11":1}}],["升级所有相关依赖到最新",{"2":{"72":1}}],["升级到",{"2":{"72":1}}],["因为有你们的支持",{"2":{"71":1}}],["因此如果你需要开发",{"2":{"20":1}}],["短信等功能可以通过安装插件的方式添加",{"2":{"70":1}}],["短信这类功能的插件可以通过后台动态安装卸载",{"2":{"60":1}}],["支付",{"2":{"70":1}}],["支持动态安装",{"2":{"61":1}}],["支持回滚操作",{"2":{"61":1}}],["支持静态资源文件上传云端进行云管理",{"2":{"61":1}}],["支持最新的安全协议和加密标准",{"2":{"54":1}}],["支持",{"2":{"51":1}}],["欢迎联系我们",{"2":{"69":1}}],["欢迎加入我们大家庭一起讨论",{"2":{"1":1}}],["计划",{"0":{"69":1},"1":{"70":1}}],["大多数情况下可以解决",{"2":{"68":1}}],["大大提高了系统的可用性和稳定性",{"2":{"36":1}}],["来重新显示",{"2":{"68":1}}],["突然之间没有了",{"2":{"68":1}}],["视图设置问题",{"2":{"68":1}}],["直接在",{"2":{"68":1}}],["直接上传到对应的云存储",{"2":{"56":1}}],["重新加载",{"2":{"68":1}}],["重写getmappingformethod",{"0":{"17":1}}],["重写逻辑",{"2":{"13":2}}],["重写实现",{"0":{"13":1}}],["然后重新打开项目",{"2":{"68":1}}],["然后在系统中安装插件包",{"2":{"25":1}}],["关闭",{"2":{"68":1}}],["未正确加载",{"2":{"68":1}}],["导航到",{"2":{"68":1}}],["导致系统臃肿",{"2":{"23":1}}],["确保选中了显示",{"2":{"68":1}}],["确保项目的根目录下有一个",{"2":{"68":1}}],["确保打开的项目有maven依赖",{"2":{"39":1}}],["面板不显示的问题",{"2":{"68":1}}],["面板是有的",{"2":{"68":1}}],["面板的选项",{"2":{"68":1}}],["面板未显示",{"2":{"68":1}}],["面板未启用显示",{"2":{"68":1}}],["面板",{"0":{"68":1},"2":{"68":1}}],["当在",{"0":{"68":1}}],["当前用户",{"0":{"47":1}}],["常见问题",{"0":{"66":1},"1":{"67":1,"68":1}}],["或者从正确的源重新获取项目",{"2":{"68":1}}],["或者通过官网下载插件",{"2":{"23":1}}],["或",{"2":{"64":1,"65":1}}],["项目未正确加载",{"2":{"68":1}}],["项目未正确识别为",{"2":{"68":1}}],["项目的标志",{"2":{"68":1}}],["项目",{"2":{"68":1}}],["项目时",{"0":{"68":1}}],["项目是开源免费",{"2":{"63":1}}],["项目包结构",{"0":{"40":1}}],["源码",{"0":{"63":1},"1":{"64":1,"65":1}}],["功能几乎跟nodejs",{"2":{"62":1}}],["演示",{"0":{"62":1}}],["后端",{"0":{"64":1}}],["后端插件开发中",{"2":{"61":1}}],["后端接口",{"2":{"15":1}}],["卸载插件",{"2":{"61":1}}],["卸载和替换",{"2":{"36":2}}],["天的保留",{"2":{"61":1}}],["任务调度包含执行结果日志",{"2":{"61":1}}],["添加",{"2":{"61":1}}],["定时任务",{"2":{"61":1}}],["定时任务模块",{"2":{"40":1}}],["操作日志",{"2":{"61":1}}],["操作权限标识等",{"2":{"61":1}}],["便于问题排查",{"2":{"61":1}}],["字典管理",{"2":{"61":1}}],["字段模块",{"2":{"40":1}}],["字段",{"2":{"32":1,"47":1}}],["字段解释",{"0":{"32":1}}],["字段全匹配",{"2":{"11":1}}],["对于",{"2":{"68":1}}],["对系统中经常使用的一些较为固定的数据进行维护",{"2":{"61":1}}],["对系统动态配置常用参数",{"2":{"61":1}}],["对应插件内的方法",{"2":{"26":1}}],["对应请求参数中的",{"2":{"11":1}}],["对应请求参数中同名参数",{"2":{"11":1}}],["设置角色按机构进行数据范围权限划分",{"2":{"61":1}}],["呈现公司组织部门树形结构",{"2":{"61":1}}],["内置功能",{"0":{"61":1}}],["代码简洁",{"2":{"60":1}}],["代码生成",{"0":{"21":1}}],["灵活又不臃肿",{"2":{"60":1}}],["灵活性",{"2":{"36":1}}],["灵活性高",{"2":{"36":1}}],["只需极少编码即可实现大部分需求",{"2":{"60":1}}],["只需拖一拖即可",{"2":{"60":1}}],["只需修改实体对象就能自动添加表字段",{"2":{"41":1}}],["专门为",{"2":{"60":1}}],["部分功能实现零代码",{"2":{"60":1}}],["从页面到后端代码",{"2":{"60":1}}],["做为后来者有后发优势",{"2":{"60":1}}],["做了一个",{"2":{"20":1}}],["以下是我们的一些计划",{"2":{"69":1}}],["以下是对",{"2":{"48":1}}],["以往的框架已经越来越不能满足现代化的开发需求",{"2":{"60":1}}],["特别是最近",{"2":{"60":1}}],["特别是跟",{"2":{"3":1}}],["技术选型",{"0":{"59":1}}],["技术分享",{"2":{"3":1,"5":1}}],["简单功能零代码实现",{"2":{"70":1}}],["简介",{"0":{"58":1},"1":{"59":1,"60":1,"61":1}}],["简化的配置",{"0":{"50":1}}],["方便一张图片使用在多种场景",{"2":{"57":1}}],["方法去调用主应用的一些对象方法",{"2":{"26":1}}],["方法",{"2":{"26":2}}],["方法第一个参数如果为",{"2":{"19":1}}],["水印等处理",{"2":{"57":1}}],["裁剪",{"2":{"57":1}}],["还可以对图片进行各种如压缩",{"2":{"57":1}}],["还可以了解到一些前沿的技术",{"2":{"3":1}}],["条件允许的话尽量选择云存储上传",{"2":{"57":1}}],["防止上传恶意文件等",{"2":{"57":1}}],["动静分离有许多好处",{"2":{"57":1}}],["动态加载使得应用程序能够在不停机的情况下进行热更新",{"2":{"36":1}}],["动态加载允许应用程序在运行时根据需求加载",{"2":{"36":1}}],["动态加载",{"2":{"36":2}}],["线上环境请用nginx等静态服务器代理",{"2":{"57":1}}],["上传模式",{"2":{"57":1}}],["上面只是个例子",{"2":{"31":1}}],["下载安装插件实现下载插件",{"2":{"56":1}}],["下生成",{"2":{"42":1}}],["阿里云oss",{"2":{"56":1}}],["本地上传配置",{"2":{"57":1}}],["本地上传",{"2":{"56":1}}],["与前端紧密结合",{"2":{"56":1}}],["能够更好地支持云原生应用程序开发",{"2":{"53":1}}],["能够显著提升应用程序的性能和响应速度",{"2":{"6":1}}],["集成了",{"2":{"53":1}}],["现代化开发体验",{"0":{"53":1}}],["更新",{"0":{"71":1},"1":{"72":1}}],["更新的安全性默认配置和更严格的安全控制",{"2":{"54":1}}],["更强的安全性",{"0":{"54":1}}],["更快的启动时间和更低的内存占用",{"2":{"52":1}}],["更加简洁",{"2":{"9":1}}],["改进的性能",{"0":{"52":1}}],["允许将",{"2":{"51":1}}],["允许网页iframe",{"2":{"46":1}}],["标准",{"2":{"51":1}}],["标准库中提供的一个类加载器",{"2":{"36":1}}],["采用",{"2":{"51":1}}],["采用spring",{"2":{"44":1}}],["最新的",{"2":{"51":1}}],["新版本替换",{"2":{"59":1}}],["新特性和增强",{"0":{"51":1}}],["新增后台扩展插件",{"2":{"70":1}}],["新增一个",{"2":{"40":1}}],["新增",{"2":{"10":1,"70":1}}],["依赖",{"2":{"50":1}}],["减少了繁琐的手动配置",{"2":{"50":1}}],["减少了开发者的配置工作",{"2":{"48":1}}],["约定优于配置",{"2":{"50":1}}],["和",{"2":{"50":1,"51":1}}],["和传统的controller对比一下是简化了不少",{"2":{"13":1}}],["自动编码功能",{"2":{"70":1}}],["自动配置",{"2":{"50":1}}],["自定义路由注解",{"0":{"16":1}}],["应用编译为本地可执行文件",{"2":{"51":1}}],["应用程序更加快捷和高效",{"2":{"48":1}}],["应用程序的创建和开发过程",{"2":{"48":1}}],["应用必备",{"2":{"20":1}}],["旨在简化新",{"2":{"48":1}}],["旨在提供高性能",{"2":{"6":1}}],["类型",{"2":{"47":1}}],["类必须继承",{"2":{"26":1,"33":2}}],["类必须要有",{"2":{"26":1,"33":2}}],["忽略权限控制的地址",{"2":{"46":1}}],["鉴权拦截配置",{"2":{"46":1}}],["监控用户行为",{"2":{"46":1}}],["权限管理拦截器",{"2":{"46":1}}],["权限校验",{"0":{"44":1},"1":{"45":1,"46":1,"47":1}}],["每次调用接口的时候spring",{"2":{"46":1}}],["每个插件的配置各不相同",{"2":{"32":1}}],["每个对象中的key为表的字段",{"2":{"22":1}}],["获得用户名",{"2":{"47":1}}],["获得用户信息",{"2":{"46":1,"47":1}}],["获取启用的权限操作请求",{"2":{"46":1}}],["则返回给decide方法",{"2":{"46":1}}],["判定用户请求的url是否在权限表中",{"2":{"46":1}}],["判断",{"2":{"19":1}}],["用来判定用户是否有此权限",{"2":{"46":1}}],["用configattribute的集合作为value",{"2":{"46":1}}],["用权限的path作为map的key",{"2":{"46":1}}],["用户是",{"2":{"68":1}}],["用户是系统操作者",{"2":{"61":1}}],["用户管理",{"2":{"61":1}}],["用户管理模块",{"2":{"40":1}}],["用户id",{"2":{"47":1}}],["用户详情",{"2":{"46":1}}],["用户名",{"2":{"47":1}}],["用户名不存在",{"2":{"46":1}}],["用户名已存在",{"2":{"18":1,"19":3}}],["用户登录",{"2":{"46":1}}],["加载权限表中所有操作请求权限",{"2":{"46":1}}],["加载成功后文件名称将被当作唯一键标识",{"2":{"22":1}}],["密钥",{"2":{"45":1}}],["密码版本号",{"2":{"47":1}}],["密码",{"2":{"39":1,"62":1}}],["刷新token过期时间",{"2":{"45":1}}],["半小时",{"2":{"45":1}}],["秒",{"2":{"45":2}}],["单位",{"2":{"45":2}}],["过期时间",{"2":{"45":1}}],["作为文档",{"2":{"55":1}}],["作为myaccessdecisionmanager类的decide的第三个参数",{"2":{"46":1}}],["作为框架安全与权限校验",{"2":{"44":1}}],["作者",{"2":{"31":1,"32":1}}],["生成环境",{"2":{"43":1}}],["生成的路由前缀为",{"2":{"15":1}}],["yamlcool",{"2":{"45":1,"57":1}}],["yamlspring",{"2":{"6":1,"43":1}}],["yml",{"2":{"43":2,"57":1}}],["第一个",{"0":{"42":1}}],["介绍",{"0":{"48":1},"1":{"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"41":1}}],["手机号",{"2":{"41":1}}],["手动抛异常",{"2":{"19":1}}],["年龄",{"2":{"41":1}}],["名字",{"2":{"41":1}}],["头像",{"2":{"41":1}}],["把",{"2":{"41":1}}],["把entity对象创建出来",{"2":{"21":1}}],["启动项目时会自动生成表结构",{"2":{"41":1}}],["启动前端系统",{"2":{"39":1}}],["表结构创建",{"0":{"41":1}}],["表单",{"2":{"12":1}}],["按上面的包结构新增即可",{"2":{"40":1}}],["按规则组装",{"2":{"17":1}}],["业务代码放在这边",{"2":{"40":1}}],["业务校验的工具",{"2":{"19":1}}],["角色菜单权限分配",{"2":{"61":1}}],["角色管理",{"2":{"61":1}}],["角色",{"2":{"40":1}}],["角色数组",{"2":{"32":1,"47":1}}],["菜单管理",{"2":{"61":1}}],["菜单",{"2":{"40":1}}],["基础模块",{"2":{"40":1}}],["账户",{"2":{"39":1,"62":1}}],["账户密码不正确",{"2":{"19":1}}],["默认集成springdoc",{"2":{"55":1}}],["默认仅开发环境开启该功能",{"2":{"41":1}}],["默认账户密码",{"2":{"39":1}}],["默认实现了通用的六个接口方法",{"2":{"13":1}}],["访问http",{"2":{"39":1}}],["$",{"2":{"39":1,"57":1}}],["出现如下日志表示启动成功",{"2":{"39":1}}],["拉取前后端代码到本地",{"2":{"39":1}}],["运行以下代码",{"2":{"42":1}}],["运行系统",{"0":{"39":1}}],["运行结果",{"2":{"26":1}}],["7天",{"2":{"45":1}}],["717+08",{"2":{"39":1}}],["7",{"2":{"38":1,"59":2}}],["选择你熟悉的开发工具",{"2":{"39":1}}],["选择",{"2":{"38":1,"59":1,"68":1}}],["选择插件包进行安装",{"2":{"25":1}}],["前后端插件",{"2":{"61":1}}],["前端",{"0":{"65":1}}],["前端会根据后端返回的上传模式进行本地上传或者云存储签名直传",{"2":{"56":1}}],["前端接口",{"2":{"15":1}}],["前置准备",{"0":{"38":1}}],["快速开始",{"0":{"37":1},"1":{"38":1,"39":1,"40":1,"41":1,"42":1,"43":1}}],["扩展性",{"2":{"36":1}}],["扩展插件",{"0":{"23":1},"1":{"24":1,"25":1,"26":1,"27":1,"28":1,"29":1,"30":1,"31":1,"32":1,"33":1,"34":1,"35":1,"36":1},"2":{"60":1}}],["热更新",{"2":{"36":1}}],["提高启动速度和资源利用效率",{"2":{"51":1}}],["提高了代码的可维护性",{"2":{"36":1}}],["提供更丰富的开发工具集成和增强的开发者体验",{"2":{"53":1}}],["提供更多性能调优选项和监控工具",{"2":{"52":1}}],["提供对",{"2":{"51":1}}],["提供了大量的",{"2":{"50":1}}],["提供了极大的灵活性",{"2":{"36":1}}],["提供了简化的业务异常抛出工具",{"2":{"18":1}}],["提供了一种高效且可靠的解决方案",{"2":{"6":1}}],["文件中右键选择",{"2":{"68":1}}],["文件夹",{"2":{"68":1}}],["文件造成的",{"2":{"68":1}}],["文件管理",{"2":{"61":1}}],["文件管理模块",{"2":{"40":1}}],["文件存放路径",{"2":{"57":1}}],["文件根地址",{"2":{"57":1}}],["文件上传模式",{"2":{"57":1}}],["文件上传相关",{"2":{"57":1}}],["文件上传",{"0":{"56":1},"2":{"57":1}}],["文件",{"2":{"40":1,"42":1,"57":1,"68":3}}],["文件等",{"2":{"36":1}}],["文档",{"0":{"55":1},"2":{"11":1}}],["远程服务器和",{"2":{"36":1}}],["资源文件",{"2":{"40":1}}],["资源",{"2":{"36":1,"40":1}}],["它可以加载指定的",{"2":{"36":1}}],["是",{"2":{"36":1,"48":1}}],["是插件的配置信息",{"2":{"31":1}}],["中",{"2":{"68":2}}],["中导入",{"0":{"68":1}}],["中实现动态加载",{"2":{"36":1}}],["中重写方法",{"2":{"13":1}}],["包命名空间",{"2":{"51":1}}],["包命名空间改为",{"2":{"51":1}}],["包且自动生成对应的",{"2":{"42":1}}],["包下",{"2":{"42":1}}],["包下新建一个",{"2":{"41":1}}],["包下创建",{"2":{"40":1}}],["包括一些核心的组件工具",{"2":{"40":1}}],["包括本地文件系统",{"2":{"36":1}}],["包或其内部的类和资源",{"2":{"36":1}}],["包或类",{"2":{"36":1}}],["包具有以下几个显著的优势",{"2":{"36":1}}],["包的位置和版本",{"2":{"36":1}}],["包",{"2":{"36":3,"40":1}}],["就是我们的插件包",{"2":{"34":1}}],["就可以在代码中调用插件的方法了",{"2":{"26":1}}],["8321",{"2":{"39":4}}],["8",{"2":{"33":2,"43":1}}],["8001",{"2":{"26":2,"39":1,"55":1}}],["打开项目运行",{"2":{"39":1}}],["打开你的项目",{"2":{"39":1}}],["打开后台管理系统",{"2":{"25":1}}],["打包结果",{"2":{"34":1}}],["打包命令",{"2":{"34":1}}],["打包",{"0":{"34":1}}],["打包时可以排除",{"2":{"33":1}}],["避免打包结果过大",{"2":{"33":1}}],["主要框架",{"2":{"59":1}}],["主要特点",{"0":{"49":1},"1":{"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"60":1}}],["主要是做一些技术教程",{"2":{"3":1}}],["主应用以有这些依赖",{"2":{"33":1}}],["主应用项目已经有的依赖给排除掉",{"2":{"33":1}}],["如文件上传",{"2":{"70":1}}],["如支付",{"2":{"60":1}}],["如",{"2":{"57":1}}],["如不占用主服务器带宽",{"2":{"57":1}}],["如无调整生产环境需手动创建表结构",{"2":{"41":1}}],["如没有具体参考idea导入maven项目右侧没有maven",{"2":{"39":1}}],["如我们这边示例使用到了中文转拼音",{"2":{"33":1}}],["如果方便请点下",{"2":{"71":1}}],["如果你有更好的建议",{"2":{"69":1}}],["如果问题依旧存在",{"2":{"68":1}}],["如果之前",{"2":{"68":1}}],["如果是因为读取项目出错",{"2":{"68":1}}],["如果找不到",{"2":{"68":1}}],["如果右侧没有显示",{"0":{"68":1}}],["如果不在权限表中则放行",{"2":{"46":1}}],["如果不满足需求",{"2":{"13":1}}],["如果在权限表中",{"2":{"46":1}}],["如果在原文件直接修改将不生效",{"2":{"22":1}}],["如果同一张表历史已经有初始化过数据",{"2":{"22":1}}],["如果我们的项目对你有用",{"2":{"1":1}}],["可能需要进一步检查项目的配置或考虑重新导入项目",{"2":{"68":1}}],["可能是由于",{"2":{"68":1}}],["可能是因为以下几个原因",{"0":{"68":1}}],["可商用",{"2":{"63":1}}],["可插拔",{"2":{"60":1}}],["可选",{"2":{"57":1}}],["可维护性",{"2":{"36":1}}],["可控性强",{"2":{"36":1}}],["可使用maven引入依赖",{"2":{"33":1}}],["可以尝试通过菜单",{"2":{"68":1}}],["可以尝试以下解决方案",{"2":{"68":1}}],["可以轻松集成常用的库和工具",{"2":{"50":1}}],["可以轻松地添加新的功能模块或服务",{"2":{"36":1}}],["可以将应用程序的核心逻辑和配置分离",{"2":{"36":1}}],["可以通过代码控制加载",{"2":{"36":1}}],["可以通过插件的方式来扩展系统功能",{"2":{"23":1}}],["可以动态指定",{"2":{"36":1}}],["可以快速开发我们的插件",{"2":{"29":1}}],["可以在打包日志中查看我们排除和引入了哪些包",{"2":{"33":1}}],["可以在resources下的",{"2":{"22":1}}],["可以在对应的",{"2":{"13":1}}],["可以在这边实现一下列表数据排序规则",{"2":{"10":1,"12":1,"13":1,"55":1}}],["可以大大简化代码",{"2":{"9":1}}],["可以选择你想使用的缓存",{"2":{"6":1}}],["满足以上条件",{"2":{"33":1}}],["会持续不断地更新",{"2":{"71":1}}],["会展示在插件的详情中",{"2":{"32":1}}],["会更加简洁",{"2":{"19":1}}],["建议尺寸",{"2":{"32":1}}],["说明",{"2":{"32":1,"47":1}}],["实体创建完成后",{"2":{"42":1}}],["实体创建出来",{"2":{"41":1}}],["实体需以entity结尾",{"2":{"22":1}}],["实现功能可插拔",{"2":{"61":1}}],["实现应用程序的快速扩展和升级",{"2":{"36":1}}],["实现方法",{"2":{"36":1}}],["实现动态加载的技术方案",{"2":{"36":1}}],["实现原理",{"0":{"36":1}}],["实际开发中可以根据自己的需求来配置",{"2":{"31":1}}],["测试",{"2":{"31":1}}],["测试curd",{"2":{"10":2,"11":2,"12":2,"13":2,"21":1,"42":1,"55":2}}],["核心包",{"2":{"30":1,"40":1}}],["└─",{"2":{"30":5,"40":8}}],["└──pom",{"2":{"30":1}}],["└──",{"2":{"15":6}}],["├─core",{"2":{"30":1}}],["├─",{"2":{"30":3,"40":15}}],["├──",{"2":{"15":1}}],["目录结构",{"0":{"30":1}}],["目录下创建",{"2":{"22":1}}],["脚手架",{"0":{"29":1}}],["\\t",{"2":{"27":3}}],["例如原本的配置文件是这样的",{"2":{"27":1}}],["配置系统菜单",{"2":{"61":1}}],["配置数据库信息",{"0":{"43":1}}],["配置插件信息",{"2":{"31":1}}],["配置",{"0":{"27":1,"45":1}}],["30",{"2":{"61":1}}],["3306",{"2":{"43":1}}],["36",{"2":{"39":3}}],["32",{"2":{"33":1}}],["3",{"0":{"27":1,"31":1,"48":1},"1":{"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"33":1,"36":1,"38":1,"39":2,"46":1,"48":2,"59":3,"68":1}}],["3c64059230d0",{"2":{"26":2,"33":1}}],["比如你有一个订单管理的模块",{"2":{"40":1}}],["比如替换系统的上传组件",{"2":{"32":1}}],["比如",{"2":{"26":1}}],["比如demov2",{"2":{"22":1}}],["其中",{"2":{"27":1}}],["其中我们可以在插件包里通过",{"2":{"26":1}}],["其他查询方式",{"2":{"11":1}}],["一个插件jar有且只能有一个类被",{"2":{"26":1,"33":2}}],["一般抛异常写法",{"2":{"19":1}}],["注解",{"2":{"26":2,"33":4}}],["注意",{"2":{"20":1,"22":1,"41":1}}],["flex",{"2":{"59":1}}],["false",{"2":{"57":1}}],["framework",{"2":{"59":1}}],["frameoptionsconfig",{"2":{"46":1}}],["frameoptions",{"2":{"46":1}}],["from",{"2":{"33":13}}],["form",{"2":{"57":1}}],["format",{"2":{"26":7,"33":7}}],["for",{"2":{"39":1,"46":2}}],["final",{"2":{"57":1}}],["finally",{"2":{"46":1}}],["fi",{"2":{"46":7}}],["filterchain",{"2":{"46":1}}],["filterconfig",{"2":{"46":2}}],["filter",{"2":{"46":1}}],["filterinvocation",{"2":{"46":5}}],["filterinvocationsecuritymetadatasource",{"2":{"46":2}}],["files",{"2":{"57":2}}],["fileuploadstrategyfactory",{"2":{"57":4}}],["filepath",{"2":{"27":1,"57":1}}],["file",{"2":{"6":1,"36":2,"57":2,"68":1}}],["fieldeq",{"2":{"11":1}}],["403",{"2":{"46":1}}],["401",{"2":{"46":1}}],["40",{"2":{"39":1}}],["475+08",{"2":{"39":2}}],["47ac",{"2":{"26":2,"33":1}}],["4",{"0":{"32":1},"2":{"33":2,"36":1,"39":1,"46":1,"59":1,"68":1}}],["4b57",{"2":{"26":2,"33":1}}],["4fd03504",{"2":{"26":2,"33":1}}],["拼音",{"2":{"26":2,"33":1}}],["汉字字符",{"2":{"26":1,"33":1}}],["汉字",{"2":{"26":2,"33":1}}],["参数管理",{"2":{"61":1}}],["参数",{"2":{"26":2}}],["5",{"2":{"26":2,"33":6,"38":1,"39":1,"59":3}}],["54",{"2":{"26":2}}],["9",{"2":{"51":1,"59":1}}],["9100",{"2":{"39":1}}],["9158",{"2":{"26":2}}],["999",{"2":{"20":1}}],["windows",{"2":{"68":1}}],["without",{"2":{"26":1,"33":1}}],["web",{"2":{"26":3}}],["wrappers",{"2":{"11":1,"19":2,"46":1}}],["调用主应用",{"2":{"26":1}}],["调用插件类",{"2":{"26":1}}],["调用",{"0":{"26":1}}],["27",{"0":{"72":1}}],["21",{"2":{"51":1}}],["2b8",{"2":{"43":1}}],["25t00",{"2":{"39":4}}],["256x256",{"2":{"32":1}}],["26",{"2":{"33":2}}],["29t03",{"2":{"26":2}}],["2024",{"0":{"72":1},"2":{"26":2,"39":4}}],["2",{"0":{"26":1,"30":1},"2":{"33":5,"36":2,"39":2,"46":1,"59":3,"68":1}}],["点击+按钮",{"2":{"25":1}}],["点击左侧菜单扩展管理",{"2":{"25":1}}],["gitee",{"2":{"64":1,"65":1}}],["github",{"2":{"64":1,"65":1}}],["grantedauthority>",{"2":{"46":1}}],["graalvm",{"2":{"38":1,"51":1,"59":1}}],["groupid>org",{"2":{"33":1}}],["groupid>",{"2":{"33":2}}],["groupid>com",{"2":{"33":1}}],["goal>",{"2":{"33":1}}],["goal>shade",{"2":{"33":1}}],["goals>",{"2":{"33":2}}],["gt",{"2":{"25":1,"38":3,"59":3,"68":6}}],["getbytes",{"2":{"46":2}}],["geturls",{"2":{"46":1}}],["getusername",{"2":{"19":4,"46":3}}],["getsecureobjectclass",{"2":{"46":1}}],["getstatus",{"2":{"46":2}}],["getstr",{"2":{"11":1,"12":1}}],["getchain",{"2":{"46":1}}],["getcontextclassloader",{"2":{"36":1}}],["getcode",{"2":{"19":1}}],["getresponse",{"2":{"46":1}}],["getrequest",{"2":{"46":1}}],["getrequesturl",{"2":{"46":1}}],["getroles",{"2":{"46":1}}],["getdepartmentidsbyroleids",{"2":{"46":1}}],["getperms",{"2":{"46":1}}],["getpasswordv",{"2":{"46":1}}],["getpassword",{"2":{"19":2,"46":1}}],["getter",{"2":{"41":2}}],["getauthenticationmanager",{"2":{"46":1}}],["getallconfigattributes",{"2":{"46":1}}],["getallperms",{"2":{"46":1}}],["getattributes",{"2":{"46":1}}],["getabsolutepath",{"2":{"36":1}}],["getannotationsbytype",{"2":{"17":1}}],["getid",{"2":{"19":2,"46":6}}],["getone",{"2":{"19":2,"46":1}}],["get等请求方式是否正确",{"2":{"19":1}}],["getmode",{"2":{"57":1}}],["getmapping",{"2":{"57":1}}],["getmappingformethod",{"2":{"17":2}}],["getmessage",{"2":{"19":7}}],["get",{"2":{"7":1,"10":1,"26":2,"33":1,"46":1}}],["插件模块",{"2":{"40":1}}],["插件详解",{"0":{"33":1}}],["插件配置",{"2":{"32":1}}],["插件介绍",{"2":{"32":1}}],["插件",{"2":{"32":1}}],["插件钩子",{"2":{"32":1}}],["插件唯一标识",{"2":{"32":1}}],["插件描述",{"2":{"31":1,"32":1}}],["插件信息配置文件",{"2":{"30":1}}],["插件类放在这个包下",{"2":{"30":1}}],["插件包",{"2":{"30":1}}],["插件包可以通过官网下载插件",{"2":{"25":1}}],["插件方法",{"2":{"26":1,"33":1}}],["插件管理",{"2":{"25":1}}],["插件分享等",{"2":{"5":1}}],["插件分享等内容",{"2":{"3":1}}],["首先下载插件包",{"2":{"25":1}}],["安装插件将打包好的",{"2":{"35":1}}],["安装插件",{"0":{"35":1}}],["安装插件之后",{"2":{"26":1}}],["安装",{"0":{"25":1}}],["也可以使用别人开发的插件",{"2":{"23":1}}],["你可以自己开发插件",{"2":{"23":1}}],["你可以在这边了解到一些关于我们框架的最新动态",{"2":{"3":1}}],["而不用一味地堆功能",{"2":{"23":1}}],["而是也非常不灵活",{"2":{"20":1}}],["而是对它做一层封装",{"2":{"17":1}}],["不要吝啬你们免费的start哦",{"2":{"63":1}}],["不像一般代码生成器生成一堆冗余代码",{"2":{"60":1}}],["不经过服务器",{"2":{"56":1}}],["不同的插件有不同的配置",{"2":{"31":1}}],["不带声调",{"2":{"26":1,"33":1}}],["不会重复初始化",{"2":{"22":1}}],["不支持该请求方式",{"2":{"19":1}}],["要新增一个",{"2":{"22":1}}],["初始化数据json文件",{"2":{"40":1}}],["初始化eps",{"2":{"39":1}}],["初始化菜单数据",{"2":{"22":1}}],["初始化自定义的数据",{"2":{"22":1}}],["处理逻辑在以下方法",{"2":{"22":1}}],["并将用户信息存在整个请求过程中的requestparams",{"2":{"47":1}}],["并实现",{"2":{"26":1,"33":1}}],["并实现值的插入",{"2":{"22":1}}],["并定义表数据",{"2":{"22":1}}],["并重写了getmappingformethod方法",{"2":{"17":1}}],["创建",{"2":{"22":1}}],["富文本参数",{"2":{"22":1}}],["规范",{"2":{"22":1}}],["规则为",{"2":{"15":1}}],["数据有",{"2":{"61":1}}],["数据回收站",{"2":{"61":1}}],["数据回收站模块",{"2":{"40":1}}],["数据库初始数据初始化",{"2":{"22":1}}],["数据初始化完成",{"2":{"22":1}}],["数据初始化",{"0":{"22":1}}],["数组里可以包含多个对象",{"2":{"22":1}}],["里面是个数组",{"2":{"22":1}}],["为什么选择",{"0":{"60":1}}],["为业务模块",{"2":{"40":1}}],["为核心模块",{"2":{"40":1}}],["为排除引入",{"2":{"33":1}}],["为引入",{"2":{"33":1}}],["为到resources资源目录下查找文件",{"2":{"27":1}}],["为表的名称",{"2":{"22":1}}],["为了使项目能够持续",{"2":{"63":1}}],["为了方便开发插件和统一插件开发规范",{"2":{"29":1}}],["为了方便获取参数",{"2":{"12":1}}],["为了丰富系统功能",{"2":{"23":1}}],["为了不过多依赖环境",{"2":{"6":1}}],["有时候开发时的配置和生产环境的配置是不一样的",{"2":{"27":1}}],["有些功能模块上线时",{"2":{"22":1}}],["有兴趣的可以关注我们",{"2":{"3":1}}],["系统异常信息日志记录和查询",{"2":{"61":1}}],["系统正常操作日志记录和查询",{"2":{"61":1}}],["系统环境",{"2":{"59":1}}],["系统通用",{"2":{"57":2}}],["系统启动完成访问",{"2":{"55":1}}],["系统启动的时候",{"2":{"46":1}}],["系统会查询并向spring",{"2":{"46":1}}],["系统用户",{"2":{"40":1}}],["系统根据框架特性封装了一个简单的代码生成器",{"2":{"21":1}}],["系统提供了",{"2":{"19":1}}],["元",{"2":{"20":1}}],["预售",{"2":{"20":1}}],["这将会给我们带来更多的动力",{"2":{"71":1}}],["这是",{"2":{"68":1}}],["这意味着",{"2":{"51":1}}],["这边使用到了",{"2":{"33":1}}],["这会使得打包结果很臃肿",{"2":{"33":1}}],["这个可能会给你带来巨大的帮助",{"2":{"20":1}}],["这样就默认实现了以下六个接口",{"2":{"10":1}}],["相关配置",{"2":{"45":1}}],["相关应用",{"2":{"20":1}}],["相关的技术发展",{"2":{"60":1}}],["相关的",{"2":{"3":1}}],["很容易就能完成一个",{"2":{"20":1}}],["很多应用希望接入",{"2":{"20":1}}],["结合知识库",{"2":{"20":1}}],["于是我们面向开发者和软件开发公司",{"2":{"20":1}}],["容易把我们累死",{"2":{"20":1}}],["但是每次都是用代码手搓",{"2":{"20":1}}],["的设置导致",{"2":{"68":1}}],["的更好支持",{"2":{"51":1}}],["的一些详细介绍",{"2":{"48":1}}],["的一些最新资讯",{"2":{"5":1}}],["的一部分",{"2":{"48":1}}],["的核心流程",{"2":{"20":1}}],["的能力",{"2":{"20":1}}],["的火热",{"2":{"20":1}}],["随着技术不断地发展",{"2":{"60":1}}],["随着",{"2":{"20":1}}],["流程编排+知识库需要单独购买",{"2":{"20":1}}],["流程编排功能",{"2":{"20":1}}],["流程编排",{"0":{"20":1},"2":{"60":1}}],["异常信息为",{"2":{"19":1}}],["异常统一捕获",{"0":{"19":1}}],["即抛异常",{"2":{"19":1}}],["通过上述步骤",{"2":{"68":1}}],["通过插件市场搜索oss",{"2":{"56":1}}],["通过提供预先配置的设置",{"2":{"48":1}}],["通过动态加载",{"2":{"36":2}}],["通过反射实现",{"2":{"26":1}}],["通过拖动配置",{"2":{"20":1}}],["通过",{"2":{"19":1,"36":1,"42":1,"50":1}}],["在项目目录中删除",{"2":{"68":1}}],["在项目启动的时候会去加载该文件",{"2":{"22":1}}],["在设置窗口中",{"2":{"68":1}}],["在线",{"2":{"61":1}}],["在新增功能模块时",{"2":{"40":1}}],["在后台插件管理页面",{"2":{"35":1}}],["在后台插件管理里可以动态修改",{"2":{"31":1}}],["在执行打包的过程",{"2":{"33":1}}],["在我们脚手架上你可以发现",{"2":{"33":1}}],["在开发过程中如果需要引入第三方类库",{"2":{"33":1}}],["在插件导入时才能被识别到",{"2":{"33":1}}],["在加载jar包时会想该插件注入applicationcontext",{"2":{"26":1}}],["在某个版本需要新增数据的话",{"2":{"22":1}}],["在通过自动生成代码创建对应的",{"2":{"21":1}}],["在",{"2":{"19":1,"22":1,"34":1,"36":1,"40":2,"41":1,"42":1,"68":1}}],["无需授权的",{"2":{"63":1}}],["无需手动添加数据库字段",{"2":{"41":1}}],["无需手动创建表结构",{"2":{"41":1}}],["无需手动通过",{"2":{"19":1}}],["无需额外安装软件",{"2":{"6":1}}],["请按照以下步骤检查和更改设置",{"2":{"68":1}}],["请求日志",{"2":{"61":1}}],["请求过程中会解析",{"2":{"47":1}}],["请求参数",{"0":{"12":1}}],["请参考",{"2":{"41":1}}],["请先参考快速开始",{"2":{"21":1}}],["请区分post",{"2":{"19":1}}],["已存在该记录",{"2":{"19":1}}],["lts",{"2":{"51":1}}],["loaduserbyusername",{"2":{"46":1}}],["loadresourcedefine",{"2":{"46":2}}],["loadjar",{"2":{"26":1}}],["local",{"2":{"43":1,"57":2}}],["lombok",{"2":{"33":2,"41":2}}],["long",{"2":{"19":2,"46":2,"47":2}}],["logo",{"2":{"31":2,"32":2}}],["log",{"2":{"19":5,"22":1}}],["list",{"2":{"9":1,"10":1,"11":1,"12":1,"13":1,"46":1,"55":1}}],["quartzscheduler",{"2":{"39":2}}],["quartz",{"2":{"39":3}}],["quot",{"2":{"18":2,"19":2}}],["querywrapper",{"2":{"11":1,"13":3}}],["native",{"2":{"51":1,"53":1}}],["name",{"2":{"10":1,"11":5,"12":1,"13":1,"16":1,"22":2,"31":1,"32":1,"41":1,"55":1,"57":1}}],["notnull",{"2":{"41":3}}],["non",{"2":{"39":1}}],["now",{"2":{"39":1}}],["nodejs",{"2":{"20":1}}],["net",{"2":{"26":4,"33":4}}],["new",{"2":{"19":2,"21":2,"26":3,"33":2,"36":4,"42":2,"46":12}}],["nio",{"2":{"26":2,"39":1}}],["null",{"2":{"18":1,"19":2,"22":2,"26":1,"33":1,"46":3}}],["统一异常处理",{"0":{"18":1},"1":{"19":1}}],[">",{"2":{"17":1,"33":1,"46":10}}],["根据一定规则生成path",{"2":{"17":1}}],["根据列表查询单个信息",{"2":{"10":1}}],["该功能主要完成系统用户配置",{"2":{"61":1}}],["该类继承了",{"2":{"17":1}}],["该父类已经实现了以下六个基础方法",{"2":{"9":1}}],["我是插件",{"2":{"26":1,"33":1}}],["我们可以在运行时动态地加载外部的",{"2":{"36":1}}],["我们可以通过配置文件来实现",{"2":{"27":1}}],["我们还引入了其他包",{"2":{"33":1}}],["我们提供了插件脚手架",{"2":{"29":1}}],["我们提供了插件系统",{"2":{"23":1}}],["我们不直接使用",{"2":{"17":1}}],["我被缓存了",{"2":{"7":1}}],["我被调用了",{"2":{"7":1}}],["x",{"2":{"72":1}}],["x26",{"2":{"43":2}}],["xml",{"2":{"30":1,"33":2,"40":1,"68":2}}],["xxxxx",{"2":{"27":2}}],["xxx",{"2":{"15":1,"27":1,"31":2}}],["xxx与",{"2":{"15":1}}],["x3c",{"2":{"10":1,"11":2,"12":1,"13":5,"17":1,"19":2,"33":69,"41":1,"46":13,"55":1}}],["模块",{"2":{"41":1}}],["模块包",{"2":{"40":1}}],["模块化",{"2":{"36":1}}],["模块名和controller",{"2":{"15":1}}],["模块名",{"2":{"15":2}}],["模块目录",{"2":{"15":1}}],["│",{"2":{"15":17,"30":9,"40":36}}],["接口的请求入参日志",{"2":{"61":1}}],["接口",{"2":{"15":1}}],["接口路由规则",{"0":{"15":1}}],["接下来我们看看实现的原理",{"2":{"13":1}}],["原则",{"2":{"50":1}}],["原理",{"0":{"14":1,"46":1},"1":{"15":1,"16":1,"17":1}}],["原生",{"2":{"7":1}}],["同样也可以对service进行重写",{"2":{"13":1}}],["rawpassword",{"2":{"46":4}}],["roleids",{"2":{"46":3,"47":1}}],["root",{"2":{"43":1}}],["runtimeexception",{"2":{"26":1,"33":1}}],["run",{"2":{"22":1}}],["rich",{"2":{"22":1}}],["r",{"2":{"12":2,"13":1,"19":17,"57":4}}],["replace",{"2":{"46":1}}],["replaceall",{"2":{"46":1}}],["refreshexpire",{"2":{"45":1}}],["recycle",{"2":{"40":1}}],["readme",{"2":{"31":2,"32":1}}],["required",{"2":{"57":1}}],["requiredargsconstructor",{"2":{"22":1,"57":1}}],["requestpart",{"2":{"57":1}}],["requestparam",{"2":{"26":3}}],["requestparams",{"2":{"10":1,"11":2,"12":4,"13":5,"19":4,"47":1,"55":1}}],["requestmatchers",{"2":{"46":1}}],["requestmappinginfo",{"2":{"17":2}}],["requestmappinghandlermapping",{"2":{"17":1}}],["requestmapping",{"2":{"16":2}}],["requestattribute",{"2":{"12":1}}],["request",{"2":{"10":1,"11":1,"12":1,"13":1,"46":2,"55":1,"57":2}}],["remark",{"2":{"22":2}}],["restaccessdeniedhandler",{"2":{"46":3}}],["restcontroller",{"2":{"26":2}}],["restcontrolleradvice",{"2":{"19":1}}],["response",{"2":{"46":2}}],["result",{"2":{"26":4}}],["resources",{"2":{"30":1,"40":1,"43":2}}],["resource",{"2":{"7":1,"26":2,"46":10,"47":2}}],["return",{"2":{"7":2,"12":1,"13":2,"17":1,"19":8,"26":2,"33":1,"46":13,"57":2}}],["redis",{"2":{"6":5}}],["开发几乎不用写代码",{"2":{"60":1}}],["开发设计的",{"2":{"60":1}}],["开发环境",{"2":{"43":1}}],["开发过程",{"0":{"31":1}}],["开发插件",{"0":{"28":1},"1":{"29":1,"30":1,"31":1,"32":1}}],["开发",{"2":{"20":1}}],["开发者可以从中方便的获取各种参数",{"2":{"12":1}}],["开发的一个",{"2":{"6":1}}],["ui",{"2":{"55":1}}],["useunicode=true",{"2":{"43":1}}],["userid",{"2":{"47":1}}],["userinfo",{"2":{"46":1,"47":3}}],["userdetails",{"2":{"46":2}}],["userdetailsservice",{"2":{"46":4}}],["usernamepasswordauthenticationfilter",{"2":{"46":1}}],["usernamenotfoundexception",{"2":{"46":2}}],["username",{"2":{"43":1,"46":2,"47":3}}],["user",{"2":{"12":2,"40":1}}],["uartzscheduler",{"2":{"39":2}}],["uploadmode",{"2":{"57":2}}],["upload",{"2":{"32":1,"57":3}}],["update",{"2":{"9":1,"10":1,"11":1,"12":1,"13":1,"55":1}}],["urlclassloader",{"2":{"36":2}}],["url",{"2":{"12":1,"36":3,"43":1,"46":2,"57":1}}],["将在",{"2":{"42":1}}],["将由以下这个类实现自动配置模块路由",{"2":{"17":1}}],["将",{"2":{"12":1}}],["列表查询",{"2":{"11":1}}],["具体看",{"2":{"11":1}}],["ee",{"2":{"51":1}}],["encodedpassword",{"2":{"46":2}}],["encode",{"2":{"46":1}}],["entrypointunauthorizedhandler",{"2":{"46":3}}],["entity",{"2":{"19":12,"40":2,"41":1,"42":1}}],["enablewebsecurity",{"2":{"46":1}}],["eps",{"2":{"39":1}}],["error",{"2":{"19":10}}],["e",{"2":{"19":19,"26":2,"33":2}}],["expire",{"2":{"45":1}}],["expression",{"2":{"33":2}}],["excluding",{"2":{"33":14}}],["exclude>cn",{"2":{"33":2}}],["exclude>jakarta",{"2":{"33":1}}],["exclude>io",{"2":{"33":4}}],["exclude>",{"2":{"33":16}}],["exclude>org",{"2":{"33":9}}],["excludes>",{"2":{"33":2}}],["exceptionhandling",{"2":{"46":1}}],["exceptionhandler",{"2":{"19":6}}],["exception",{"2":{"19":2,"26":1,"33":1,"46":2}}],["execution",{"2":{"68":1}}],["execution>",{"2":{"33":2}}],["executions>",{"2":{"33":2}}],["exec",{"2":{"26":2,"39":1}}],["extractedmenu",{"2":{"22":1}}],["extracteddb",{"2":{"22":1}}],["extends",{"2":{"10":1,"11":1,"12":1,"13":2,"17":1,"26":1,"33":1,"41":1,"46":1,"55":1}}],["equals",{"2":{"46":1}}],["eq",{"2":{"11":1,"19":2,"46":2}}],["返回给spring做解析",{"2":{"17":1}}],["返回字段",{"2":{"11":1}}],["返回哪些字段等",{"2":{"10":1,"12":1,"13":1,"55":1}}],["需要检查项目导入过程中是否有误",{"2":{"68":1}}],["需要初始化一些数据",{"2":{"22":1}}],["需要模糊查询的字段",{"2":{"11":1}}],["需安装redis",{"2":{"6":1}}],["个接口",{"2":{"10":1}}],["604800",{"2":{"45":1}}],["621+08",{"2":{"26":1}}],["610+08",{"2":{"26":1}}],["6",{"2":{"10":1,"33":12,"39":1,"59":2}}],["6379",{"2":{"6":1}}],["等包",{"2":{"40":1}}],["等参数封装在了一个jsonobject",{"2":{"12":1}}],["等",{"2":{"10":1,"33":1}}],["查询该用户所具有的权限并缓存",{"2":{"46":1}}],["查询配置",{"0":{"11":1}}],["查询列表",{"2":{"10":1}}],["查询条件过滤",{"2":{"10":1,"12":1,"13":1,"55":1}}],["分页查询配置",{"2":{"11":1}}],["分页查询",{"2":{"10":1}}],["修改",{"2":{"10":1,"61":1}}],["删除",{"2":{"10":1,"61":1}}],["jtw",{"2":{"46":1}}],["jwtauthenticationtokenfilter",{"2":{"46":3}}],["jwtsecurityconfig",{"2":{"46":1}}],["jwtuser",{"2":{"46":6}}],["jwtuserdetailsserviceimpl",{"2":{"46":1}}],["jwt",{"2":{"44":1}}],["jdbc",{"2":{"43":1}}],["jdk",{"2":{"38":1,"59":1}}],["jcl",{"2":{"33":2}}],["jarfilepath",{"2":{"36":1}}],["jarurl",{"2":{"36":2}}],["jar",{"2":{"33":30,"36":9}}],["jarloadercontroller",{"2":{"26":1}}],["jakarta",{"2":{"26":1,"33":3,"51":2}}],["javax",{"2":{"51":1}}],["javaurl",{"2":{"36":1}}],["javapackage",{"2":{"22":1,"26":2,"33":1,"41":1}}],["javapublic",{"2":{"16":1,"17":1,"19":2,"21":1}}],["java",{"0":{"0":1},"2":{"6":1,"7":2,"10":1,"11":1,"12":1,"13":2,"15":2,"19":1,"26":2,"30":1,"33":2,"34":1,"36":1,"38":1,"39":5,"40":1,"46":4,"47":2,"51":2,"55":1,"57":1,"59":1,"64":2}}],["json参数",{"2":{"22":1}}],["json",{"2":{"22":3,"27":1,"30":1,"31":2,"33":2}}],["json格式如下",{"2":{"22":1}}],["json文件后",{"2":{"22":1}}],["json文件",{"2":{"22":3}}],["jsonobject",{"2":{"10":1,"11":1,"12":2,"13":3,"19":2,"47":1,"55":1}}],["html",{"2":{"55":1}}],["http",{"2":{"55":1,"57":1}}],["httprequestmethodnotsupportedexception",{"2":{"19":2}}],["httpsecurity",{"2":{"46":3}}],["httpservletrequest",{"2":{"10":1,"11":1,"12":1,"13":1,"55":1,"57":1}}],["https",{"2":{"11":1,"62":1,"64":2,"65":2}}],["hashmap",{"2":{"46":1}}],["hanyupinyintonetype",{"2":{"26":2,"33":2}}],["hanyupinyinoutputformat",{"2":{"26":3,"33":3}}],["handleexception",{"2":{"19":1}}],["handleillegalargumentexception",{"2":{"19":1}}],["handlehttprequestmethodnotsupportedexception",{"2":{"19":1}}],["handlebadcredentialsexception",{"2":{"19":1}}],["handleduplicatekeyexception",{"2":{"19":1}}],["handlerrexception",{"2":{"19":1}}],["handlertype",{"2":{"17":3}}],["headersconfigurer",{"2":{"46":1}}],["headers",{"2":{"46":1}}],["headimg",{"2":{"41":1}}],["hello",{"2":{"26":1,"33":1}}],["hutool",{"2":{"33":9}}],["hook",{"2":{"31":1,"32":1}}],["host",{"2":{"6":1}}],["v7",{"0":{"70":1,"72":1}}],["view",{"2":{"68":1}}],["vue",{"2":{"65":2}}],["version>3",{"2":{"33":1}}],["version>",{"2":{"33":2}}],["version>2",{"2":{"33":1}}],["version",{"2":{"31":1,"32":1}}],["verify",{"2":{"26":2,"33":1}}],["vqv3",{"2":{"26":1}}],["void",{"2":{"10":1,"11":1,"12":1,"13":1,"21":1,"22":1,"42":1,"46":6,"55":1}}],["value为对应的值",{"2":{"22":1}}],["value",{"2":{"10":1,"11":1,"12":1,"13":1,"16":1,"41":1,"55":1,"57":4}}],["示例",{"0":{"10":1}}],["使得开发和部署",{"2":{"48":1}}],["使得代码更加清晰",{"2":{"36":1}}],["使得可以在插件中获取主应用中的bean",{"2":{"26":1}}],["使得",{"2":{"9":1}}],["使用插件",{"0":{"24":1},"1":{"25":1,"26":1,"27":1}}],["使用",{"0":{"7":1,"57":1}}],["都继承自",{"2":{"9":1}}],["所有的",{"2":{"9":1}}],["控制器",{"0":{"9":1},"1":{"10":1,"11":1,"12":1,"13":1}}],["编码",{"0":{"8":1},"2":{"60":1}}],["ignoredurlsproperties",{"2":{"46":3}}],["isempty",{"2":{"46":1}}],["is",{"2":{"39":1}}],["ioexception",{"2":{"46":2}}],["io",{"2":{"33":2}}],["image",{"2":{"51":1}}],["img",{"2":{"26":2,"33":1}}],["import",{"2":{"26":11,"33":6,"41":6,"42":4}}],["implements",{"2":{"7":2,"13":1,"22":1,"46":3}}],["if",{"2":{"19":2,"46":2}}],["illegalargumentexception",{"2":{"19":2,"46":2}}],["introduce",{"2":{"41":1}}],["intellij",{"0":{"68":1},"2":{"68":2}}],["interceptorstatustoken",{"2":{"46":1}}],["interface",{"2":{"16":1}}],["integer",{"2":{"7":1,"41":1,"47":1}}],["index",{"2":{"41":2,"55":1}}],["in",{"2":{"33":1}}],["including",{"2":{"33":2}}],["invoke",{"2":{"46":2}}],["invokemain",{"2":{"26":2,"33":1}}],["invokemethod",{"2":{"26":2}}],["invoked",{"2":{"26":1}}],["invokeplugin",{"2":{"26":4,"33":2}}],["init",{"2":{"10":1,"11":1,"12":1,"13":1,"21":1,"39":1,"42":1,"46":1,"55":1}}],["info",{"2":{"9":1,"10":1,"11":1,"12":1,"13":1,"15":2,"17":5,"22":1,"26":2,"33":15,"39":4,"55":1}}],["idea",{"2":{"68":6}}],["idea",{"0":{"68":1}}],["idea导入maven项目右侧没有maven",{"0":{"67":1},"1":{"68":1}}],["id",{"2":{"7":2}}],["oss",{"2":{"57":1}}],["over",{"2":{"50":1}}],["override",{"2":{"7":2,"10":1,"11":1,"12":1,"13":3,"17":1,"22":1,"26":1,"33":1,"46":11,"55":1}}],["order",{"2":{"40":2}}],["org",{"2":{"26":3,"33":8,"39":1}}],["operation",{"2":{"57":2}}],["openapi",{"2":{"39":1}}],["option",{"2":{"13":2}}],["official",{"2":{"64":2,"65":2}}],["of",{"2":{"39":1}}],["o",{"2":{"39":2,"46":3}}],["obtainsecuritymetadatasource",{"2":{"46":1}}],["observation",{"2":{"33":3}}],["objectutil",{"2":{"46":1}}],["object中包含用户请求request",{"2":{"46":1}}],["object",{"2":{"7":2,"13":1,"26":3,"33":2,"46":1}}],["ok",{"2":{"12":1,"57":2}}],["out",{"2":{"7":1,"12":1,"26":3,"33":1}}],["multipartfile",{"2":{"57":1}}],["multipart",{"2":{"57":1}}],["mutate",{"2":{"17":1}}],["mode",{"2":{"57":1}}],["modules",{"2":{"15":1,"40":3,"41":2,"42":2}}],["mybatis",{"2":{"59":2}}],["mybatisflex",{"2":{"41":2}}],["myaccessdecisionmanager",{"2":{"46":3}}],["myfiltersecurityinterceptor",{"2":{"46":1}}],["mysecuritymetadatasource",{"2":{"46":1}}],["mysql",{"2":{"38":1,"43":1,"59":1}}],["ms",{"2":{"39":1}}],["mvn",{"2":{"34":1}}],["micrometer",{"2":{"33":12}}],["md",{"2":{"31":1}}],["md5digestashex",{"2":{"46":2}}],["md5",{"2":{"19":2}}],["macos",{"2":{"68":1}}],["matches",{"2":{"46":1}}],["map",{"2":{"46":6}}],["mapper",{"2":{"21":2,"40":4,"42":2}}],["maven插件可以在打包的时候将在我们",{"2":{"33":1}}],["maven",{"0":{"68":2},"2":{"33":3,"38":1,"59":1,"68":11}}],["main",{"2":{"21":1,"30":1,"40":1,"42":1}}],["manes",{"2":{"6":1}}],["mediatype",{"2":{"57":2}}],["message",{"2":{"19":1}}],["method",{"2":{"17":3,"26":1}}],["methodname",{"2":{"7":1,"26":1}}],["+",{"2":{"7":2,"26":5,"33":3,"36":2,"46":5}}],["team",{"2":{"64":2,"65":2}}],["text",{"2":{"41":1}}],["test",{"2":{"7":2,"12":2,"42":1}}],["this",{"2":{"46":1}}],["thread",{"2":{"36":1,"39":1}}],["throws",{"2":{"46":8}}],["throw",{"2":{"19":1,"26":1,"33":1,"46":1}}],["the",{"2":{"33":14}}],["txt",{"2":{"27":1}}],["tool",{"2":{"68":1}}],["tools",{"2":{"68":1}}],["toarray",{"2":{"46":1}}],["token",{"2":{"45":2,"46":2,"47":1}}],["tohanyupinyinstring",{"2":{"26":1,"33":1}}],["tone",{"2":{"26":1,"33":1}}],["try",{"2":{"26":1,"33":1,"46":1}}],["true",{"2":{"19":1,"41":3,"46":1}}],["tangzc",{"2":{"41":2}}],["table",{"2":{"41":2,"59":1}}],["task",{"2":{"40":1}}],["target",{"2":{"34":1}}],["target目录下",{"2":{"34":1}}],["targetclass",{"2":{"7":1}}],["tag",{"2":{"10":1,"11":1,"12":1,"13":1,"55":1,"57":1}}],["type",{"2":{"6":2,"41":1}}],["keyname",{"2":{"22":2}}],["keyword",{"2":{"11":1}}],["keywordlikefields",{"2":{"11":1}}],["key",{"2":{"7":1,"31":1,"32":1}}],["show",{"2":{"62":1}}],["shaded",{"2":{"33":14}}],["shade",{"2":{"33":4}}],["swagger",{"0":{"55":1},"2":{"55":1}}],["simplegrantedauthority",{"2":{"46":1}}],["sysuserentity",{"2":{"46":14}}],["system",{"2":{"7":1,"12":1,"26":3,"33":1}}],["split",{"2":{"46":1}}],["space",{"2":{"40":1}}],["springdoc",{"2":{"39":2}}],["springboot3",{"2":{"72":1}}],["springboot",{"2":{"36":1}}],["spring",{"0":{"48":1},"1":{"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"33":13,"48":6,"51":1,"53":1,"59":3}}],["springframework",{"2":{"26":3,"33":14}}],["spring的requestmappinghandlermapping",{"2":{"17":1}}],["spring自带的注解",{"2":{"17":1}}],["spring方式",{"2":{"7":1}}],["scheduler",{"2":{"39":2}}],["schedulerfactorybean",{"2":{"39":1}}],["snapshot",{"2":{"34":1}}],["s",{"2":{"26":1,"33":1,"39":2}}],["sourceforge",{"2":{"26":4,"33":4}}],["soon",{"2":{"8":1,"20":1}}],["summary",{"2":{"57":2}}],["supports",{"2":{"46":1}}],["super",{"2":{"13":2,"17":1,"19":2,"46":3}}],["successfully",{"2":{"26":1}}],["slf4j",{"2":{"19":1,"22":1,"33":4,"46":2}}],["stream",{"2":{"46":1}}],["string",{"2":{"7":2,"12":1,"16":3,"21":1,"26":9,"33":4,"41":4,"42":1,"46":12,"47":2}}],["star",{"2":{"71":1}}],["starter",{"2":{"50":1}}],["started",{"2":{"39":1}}],["starting",{"2":{"39":1}}],["stateless",{"2":{"46":1}}],["static",{"2":{"21":1,"42":1}}],["status",{"2":{"11":1}}],["sessioncreationpolicy",{"2":{"46":2}}],["sessionmanagement",{"2":{"46":1}}],["securityfilterchain",{"2":{"46":2}}],["securitymetadatasource",{"2":{"46":3}}],["security权限拦截器校验当前用户权限",{"2":{"46":1}}],["securityconfig",{"2":{"46":1}}],["security加载所有设置的权限",{"2":{"46":1}}],["security与",{"2":{"44":1}}],["secret",{"2":{"45":1}}],["seconds",{"2":{"39":1}}],["server",{"2":{"57":1}}],["servertimezone=gmt",{"2":{"43":1}}],["servletresponse",{"2":{"46":1}}],["servletrequest",{"2":{"46":1}}],["servletexception",{"2":{"46":3}}],["service",{"2":{"7":2,"13":2,"21":2,"26":2,"40":2,"42":2}}],["select",{"2":{"11":1}}],["setuserdetailsservice",{"2":{"46":1}}],["setaccessdecisionmanager",{"2":{"46":1}}],["setmyaccessdecisionmanager",{"2":{"46":1}}],["setmodule",{"2":{"21":1,"42":1}}],["settings",{"2":{"68":1}}],["setter",{"2":{"41":2}}],["settonetype",{"2":{"26":1,"33":1}}],["settype",{"2":{"21":1,"42":1}}],["setentity",{"2":{"21":1,"42":1}}],["setname",{"2":{"21":1,"42":1}}],["setpasswordencoder",{"2":{"46":1}}],["setpassword",{"2":{"19":2}}],["setpageoption",{"2":{"11":1}}],["setlistoption",{"2":{"11":1}}],["set",{"2":{"7":1,"46":5}}],["==",{"2":{"46":2}}],["=",{"2":{"7":2,"10":4,"11":4,"12":4,"13":4,"16":2,"17":3,"18":1,"19":5,"21":2,"26":8,"33":5,"36":2,"38":3,"41":12,"42":2,"46":15,"47":2,"55":4,"57":9,"59":3}}],["性能要求比较高或有分布式部署需求的建议配置成",{"2":{"6":1}}],["plus",{"2":{"59":1}}],["plugins",{"2":{"33":1}}],["plugins>",{"2":{"33":2}}],["plugin>",{"2":{"33":2}}],["plugin",{"2":{"26":6,"30":2,"31":2,"33":6,"34":1,"40":1}}],["permitall",{"2":{"46":1}}],["perm",{"2":{"46":5}}],["perms",{"2":{"46":4}}],["phase>",{"2":{"33":1}}],["phase>package",{"2":{"33":1}}],["phone",{"2":{"11":2,"41":1}}],["png",{"2":{"31":1}}],["pinyin",{"2":{"26":3,"33":3}}],["pinyinhelper",{"2":{"26":2,"33":2}}],["pinyin4j",{"2":{"26":4,"33":5}}],["put",{"2":{"19":2,"46":1}}],["public",{"2":{"7":4,"10":1,"11":1,"12":2,"13":3,"19":7,"21":1,"22":2,"26":4,"33":2,"41":1,"42":2,"46":22,"55":1,"57":3}}],["pom",{"2":{"68":5}}],["pool",{"2":{"39":1}}],["postmapping",{"2":{"12":1,"13":1,"26":2,"57":1}}],["post",{"2":{"10":5}}],["port",{"2":{"6":1,"57":1}}],["preferences",{"2":{"68":1}}],["project",{"2":{"68":1}}],["projectlombok",{"2":{"33":2}}],["prod",{"2":{"43":1}}],["protected",{"2":{"10":1,"11":1,"12":1,"13":2,"17":1,"55":1}}],["private",{"2":{"26":1,"41":5,"46":11,"47":2,"57":1}}],["println",{"2":{"7":1,"12":1,"26":3,"33":1}}],["parameter",{"2":{"57":1}}],["param",{"2":{"46":1}}],["params",{"2":{"26":5,"33":2}}],["package",{"2":{"34":1,"42":1}}],["paths",{"2":{"17":1}}],["path",{"2":{"17":2}}],["page",{"2":{"9":1,"10":1,"11":1,"12":1,"13":9,"55":1}}],["passwordencoder",{"2":{"46":4}}],["passwordversion",{"2":{"46":1,"47":1}}],["password",{"2":{"6":1,"43":1}}],["p0",{"2":{"7":1}}],["195+08",{"2":{"39":1}}],["1044",{"2":{"39":1}}],["11",{"2":{"39":4}}],["17",{"2":{"38":1,"51":1,"59":1}}],["1800",{"2":{"45":1}}],["18",{"2":{"33":1,"41":1}}],["13",{"2":{"33":1}}],["123456",{"2":{"39":1,"43":1,"62":1}}],["12",{"2":{"33":2}}],["127",{"2":{"6":1,"39":1,"43":1,"55":1,"57":1}}],["14",{"2":{"26":2}}],["1",{"0":{"25":1,"29":1,"70":2,"72":1},"2":{"6":1,"7":1,"26":1,"31":1,"33":11,"34":1,"36":2,"39":4,"43":1,"46":3,"55":1,"57":1,"59":4,"68":1}}],["05",{"2":{"39":4}}],["00",{"2":{"26":2,"39":4}}],["06",{"0":{"72":1},"2":{"26":2}}],["0",{"0":{"72":1},"2":{"6":3,"26":2,"31":2,"33":4,"34":1,"38":1,"39":2,"43":2,"46":1,"55":2,"57":2,"59":2}}],["daoauthenticationprovider",{"2":{"46":2}}],["datasource",{"2":{"43":1}}],["database",{"2":{"6":1}}],["data",{"2":{"6":1,"22":2,"40":1,"57":1}}],["doc",{"2":{"59":1}}],["docs",{"0":{"0":1}}],["dofilter",{"2":{"46":2}}],["dsakojlfaadaskd",{"2":{"45":1}}],["digestutils",{"2":{"46":2}}],["digesthex",{"2":{"19":2}}],["disable",{"2":{"46":2}}],["dict",{"2":{"40":1}}],["duration",{"2":{"39":1}}],["duplicatekeyexception",{"2":{"19":2}}],["dynamicjarclassloader",{"2":{"36":3}}],["dynamic",{"2":{"26":1}}],["dbfromjsoninit",{"2":{"22":1}}],["db",{"2":{"22":1,"40":1}}],["db目录创建",{"2":{"22":1}}],["destroy",{"2":{"46":1}}],["description",{"2":{"10":1,"11":1,"12":1,"13":1,"31":1,"32":1,"55":1,"57":2}}],["deployment",{"2":{"68":1}}],["department",{"2":{"46":1}}],["departmentids",{"2":{"46":2}}],["dependency>",{"2":{"33":2}}],["delay",{"2":{"39":1}}],["delete",{"2":{"9":1,"10":1,"11":1,"12":1,"13":1,"55":1}}],["defaultvalue",{"2":{"41":1}}],["default",{"2":{"16":3,"33":1}}],["demo实体",{"2":{"41":1}}],["democoolplugin",{"2":{"26":2,"33":1}}],["democacheservice",{"2":{"7":2}}],["democacheserviceimpl",{"2":{"7":2}}],["demoentity",{"2":{"21":1,"41":2,"42":2}}],["demoentity>query",{"2":{"11":1}}],["demoentity>",{"2":{"10":1,"11":1,"12":1,"13":5,"41":1,"55":1}}],["demo",{"2":{"15":3,"21":1,"22":4,"26":1,"31":1,"41":3,"42":3}}],["demomapper",{"2":{"13":1}}],["demoserviceimpl",{"2":{"13":1}}],["demoservice",{"2":{"10":1,"11":1,"12":1,"13":2,"55":1}}],["高效的缓存解决方案",{"2":{"6":1}}],["由该框架实现",{"2":{"41":1}}],["由该类统一执行初始化",{"2":{"22":1}}],["由",{"2":{"6":1}}],["csrf",{"2":{"46":1}}],["cfg",{"2":{"46":3}}],["c端用户",{"2":{"40":1}}],["currentthread",{"2":{"36":1}}],["clustered",{"2":{"39":1}}],["clean",{"2":{"34":1}}],["classname",{"2":{"26":1}}],["classpath",{"2":{"22":1,"27":2}}],["class",{"2":{"7":3,"10":1,"11":1,"12":1,"13":2,"16":2,"17":3,"19":7,"21":2,"22":1,"26":2,"33":1,"41":1,"42":2,"46":8,"55":1,"57":1}}],["cn",{"2":{"33":2}}],["charsequence",{"2":{"46":2}}],["characterencoding=utf",{"2":{"43":1}}],["chain",{"2":{"46":2}}],["chinesechar",{"2":{"26":4,"33":4}}],["check",{"2":{"18":2,"19":6}}],["c",{"2":{"26":3}}],["crud",{"0":{"42":1}}],["crudoption",{"2":{"13":1}}],["create",{"2":{"19":2}}],["createop",{"2":{"11":2}}],["collection",{"2":{"46":4}}],["columndefine",{"2":{"41":6}}],["consumes",{"2":{"57":1}}],["convention",{"2":{"50":1}}],["conf",{"2":{"46":4}}],["configuration",{"2":{"46":1,"50":2}}],["configuration>",{"2":{"33":2}}],["configattribute",{"2":{"46":1}}],["configattributes",{"2":{"46":4}}],["configattribute>",{"2":{"46":3}}],["configattribute>>",{"2":{"46":1}}],["config",{"2":{"31":2,"32":1,"46":7}}],["context",{"2":{"33":2}}],["controller上加了这个注解后",{"2":{"17":1}}],["controller",{"2":{"9":2,"15":1,"21":2,"40":2,"42":2}}],["core",{"2":{"22":1,"26":5,"33":6,"39":2,"40":2,"41":1,"42":3}}],["codetypeenum",{"2":{"21":1,"42":2}}],["codemodel",{"2":{"21":10,"42":11}}],["codegenerator",{"2":{"21":7,"42":8}}],["code",{"2":{"19":1,"42":3}}],["component",{"2":{"46":3}}],["combine",{"2":{"17":1}}],["com",{"2":{"11":1,"22":1,"26":6,"30":1,"33":4,"39":2,"40":1,"41":5,"42":6,"62":1,"64":2,"65":2}}],["coming",{"2":{"8":1,"20":1}}],["comment",{"2":{"41":6}}],["commons",{"2":{"33":3}}],["comm",{"2":{"7":1}}],["coolsecurityutil",{"2":{"47":6}}],["cooleps",{"2":{"39":1}}],["coolexception",{"2":{"19":3}}],["coolexceptionhandler",{"2":{"19":1}}],["coolapplication",{"2":{"39":1,"40":1}}],["cool文件上传",{"2":{"35":1}}],["cool后缀的文件",{"2":{"34":1}}],["cool1",{"2":{"26":1}}],["coolplugin",{"2":{"26":4,"33":6}}],["coolpluginservice",{"2":{"26":5}}],["coolpreconditions",{"2":{"18":1,"19":2}}],["coolcodegeneratortest",{"2":{"21":1,"42":1}}],["coolcache",{"2":{"7":5,"26":3,"33":1,"46":7}}],["coolrestcontroller",{"2":{"10":1,"11":1,"12":1,"13":1,"16":1,"17":2,"55":1,"57":1}}],["cool",{"0":{"0":1,"60":1},"2":{"4":1,"5":1,"10":1,"11":1,"12":1,"13":1,"22":3,"26":12,"27":1,"30":1,"33":5,"34":2,"39":6,"40":2,"41":2,"42":6,"43":1,"55":1,"60":2,"62":1,"64":4,"65":4,"71":1}}],["catch",{"2":{"26":1,"33":1}}],["cacheable",{"2":{"7":1}}],["cachenames",{"2":{"7":1}}],["cacheconfig",{"2":{"7":1}}],["cache",{"2":{"6":3,"26":2,"33":1}}],["caffeine",{"2":{"6":3}}],["框架自带两种文件上传方式本地上传与云存储",{"2":{"56":1}}],["框架自带基于springcache默认实现了两种缓存",{"2":{"6":1}}],["框架",{"2":{"48":1}}],["框架封装了一个请求属性",{"2":{"12":1}}],["框架特有的通用工具类",{"2":{"7":1}}],["框架更新",{"2":{"3":1,"5":1}}],["缓存对象",{"2":{"26":1}}],["缓存结果",{"2":{"26":2}}],["缓存库",{"2":{"6":1}}],["缓存",{"0":{"6":1},"2":{"6":2}}],["公众号",{"0":{"5":1}}],["团队哔哩哔哩官方账户",{"2":{"4":1}}],["站",{"0":{"4":1}}],["boot",{"0":{"48":1},"1":{"49":1,"50":1,"51":1,"52":1,"53":1,"54":1},"2":{"48":3,"51":1,"59":1}}],["boolean",{"2":{"46":2}}],["body",{"2":{"12":1}}],["bean",{"2":{"46":4}}],["beans",{"2":{"33":3}}],["beforeinvocation",{"2":{"46":1}}],["belerweb",{"2":{"33":2}}],["ben",{"2":{"6":1}}],["bbb",{"2":{"31":1}}],["b8e4",{"2":{"26":2,"33":1}}],["bind",{"2":{"26":3}}],["build>",{"2":{"33":2}}],["build",{"2":{"17":1,"46":1,"68":2}}],["badhanyupinyinoutputformatcombination",{"2":{"26":2,"33":2}}],["badcredentialsexception",{"2":{"19":2}}],["baseentity",{"2":{"41":2}}],["base",{"2":{"40":1,"41":1,"57":1}}],["basecoolplugin",{"2":{"26":4,"33":4}}],["basecontroller",{"2":{"9":1,"10":1,"11":1,"12":1,"13":1,"55":1}}],["basesysuserservice",{"2":{"46":3}}],["basesysuserentity>lambdaquery",{"2":{"19":2,"46":1}}],["basesysuserentity",{"2":{"19":6,"46":3}}],["basesyspermsservice",{"2":{"46":8}}],["baseserviceimpl",{"2":{"13":1}}],["baomidou",{"2":{"11":1}}],["b",{"0":{"4":1}}],["as",{"2":{"68":1}}],["assets",{"2":{"31":2}}],["all",{"2":{"57":1}}],["aliasfor",{"2":{"16":2}}],["accessdeniedhandler",{"2":{"46":1}}],["aclass",{"2":{"46":1}}],["anyrequest",{"2":{"46":1}}],["annotations",{"2":{"17":1}}],["annotation",{"2":{"16":2,"26":5,"30":1,"33":5,"40":1,"41":3}}],["abstracthttpconfigurer",{"2":{"46":1}}],["abstractsecurityinterceptor",{"2":{"46":1}}],["abstractopenapiresource",{"2":{"39":1}}],["afterinvocation",{"2":{"46":1}}],["after",{"2":{"39":1}}],["aop",{"2":{"33":2}}],["arraylist",{"2":{"46":3}}],["artifactset>",{"2":{"33":2}}],["artifactid>maven",{"2":{"33":1}}],["artifactid>",{"2":{"33":2}}],["artifactid>pinyin4j",{"2":{"33":1}}],["args",{"2":{"21":1,"22":1,"42":1}}],["aaa",{"2":{"31":1}}],["authprovider",{"2":{"46":4}}],["authenticationconfiguration",{"2":{"46":1}}],["authenticationmanager",{"2":{"46":2}}],["authenticationprovider",{"2":{"46":2}}],["authenticationentrypoint",{"2":{"46":1}}],["authenticated",{"2":{"46":1}}],["authorizehttprequests",{"2":{"46":1}}],["authority",{"2":{"46":3}}],["author",{"2":{"31":1,"32":1}}],["auto",{"2":{"50":1,"59":1}}],["autowired",{"2":{"46":1}}],["autotable",{"2":{"41":3}}],["autoprefixurlmapping",{"2":{"17":1}}],["apache",{"2":{"33":1}}],["appsecret",{"2":{"27":1}}],["appid",{"2":{"27":1}}],["application",{"2":{"43":2,"57":1}}],["applicationarguments",{"2":{"22":1}}],["applicationrunner",{"2":{"22":1}}],["appdemoinfocontroller",{"2":{"15":1}}],["app",{"2":{"15":4}}],["api",{"2":{"10":1,"11":1,"12":1,"13":1,"16":1,"33":4,"39":1,"55":1}}],["age",{"2":{"11":1,"41":1}}],["addfilterbefore",{"2":{"46":1}}],["add",{"2":{"9":1,"10":1,"11":1,"12":1,"13":1,"19":4,"46":2,"55":1,"68":1}}],["adminbasecommcontroller",{"2":{"57":1}}],["admindemoinfocontroller转成小写替换掉admin",{"2":{"15":1}}],["admindemoinfocontroller",{"2":{"10":1,"11":1,"12":1,"13":1,"15":1,"55":1}}],["admin",{"0":{"0":1,"60":1},"2":{"15":3,"21":1,"26":2,"33":2,"34":1,"39":5,"42":1,"46":6,"60":1,"62":2,"64":2,"65":2,"71":1}}],["a",{"2":{"7":2}}],["ai",{"0":{"8":1,"20":1},"2":{"3":1,"20":7,"60":5,"70":1}}],["抖音",{"0":{"3":1}}],["扫一扫加入微信开发交流群",{"2":{"2":1}}],["微信",{"0":{"2":1}}],["共创一些美好的事情",{"2":{"1":1}}],["交流合作",{"0":{"1":1},"1":{"2":1,"3":1,"4":1,"5":1}}]],"serializationVersion":2}';export{e as default}; diff --git a/.vitepress/dist/assets/chunks/VPLocalSearchBox.S6DOZPCa.js b/.vitepress/dist/assets/chunks/VPLocalSearchBox.S6DOZPCa.js new file mode 100644 index 0000000..818f0b9 --- /dev/null +++ b/.vitepress/dist/assets/chunks/VPLocalSearchBox.S6DOZPCa.js @@ -0,0 +1,7 @@ +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,ap as kt,aq as Ot,d as Rt,G as xe,ar as tt,h as Fe,as as _t,at as Mt,x as Lt,au as zt,y as Re,R as de,Q as Ee,av as Pt,aw 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,ax as Ut,ay as jt,az as Gt,c as re,n as rt,e as Se,E as at,F as nt,a as ve,t as pe,aA as Qt,p as qt,l as Ht,aB as it,aC as Yt,ae as Zt,ak as Xt,aD as er,_ as tr}from"./framework.DHgIdERs.js";import{u as rr,c as ar}from"./theme.LmTTO8j8.js";const nr={root:()=>Dt(()=>import("./@localSearchIndexroot.CxI89Hj-.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)};/*! +* focus-trap 7.5.4 +* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE +*/function st(o,e){var t=Object.keys(o);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(o);e&&(r=r.filter(function(n){return Object.getOwnPropertyDescriptor(o,n).enumerable})),t.push.apply(t,r)}return t}function ut(o){for(var e=1;e0){var r=e[e.length-1];r!==t&&r.pause()}var n=e.indexOf(t);n===-1||e.splice(n,1),e.push(t)},deactivateTrap:function(e,t){var r=e.indexOf(t);r!==-1&&e.splice(r,1),e.length>0&&e[e.length-1].unpause()}},Ar=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},Tr=function(e){return(e==null?void 0:e.key)==="Escape"||(e==null?void 0:e.key)==="Esc"||(e==null?void 0:e.keyCode)===27},ge=function(e){return(e==null?void 0:e.key)==="Tab"||(e==null?void 0:e.keyCode)===9},Cr=function(e){return ge(e)&&!e.shiftKey},Nr=function(e){return ge(e)&&e.shiftKey},ct=function(e){return setTimeout(e,0)},ft=function(e,t){var r=-1;return e.every(function(n,a){return t(n)?(r=a,!1):!0}),r},ye=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n1?p-1:0),I=1;I=0)c=r.activeElement;else{var f=i.tabbableGroups[0],p=f&&f.firstTabbableNode;c=p||h("fallbackFocus")}if(!c)throw new Error("Your focus-trap needs to have at least one focusable element");return c},v=function(){if(i.containerGroups=i.containers.map(function(c){var f=br(c,a.tabbableOptions),p=wr(c,a.tabbableOptions),N=f.length>0?f[0]:void 0,I=f.length>0?f[f.length-1]:void 0,M=p.find(function(m){return le(m)}),z=p.slice().reverse().find(function(m){return le(m)}),P=!!f.find(function(m){return se(m)>0});return{container:c,tabbableNodes:f,focusableNodes:p,posTabIndexesFound:P,firstTabbableNode:N,lastTabbableNode:I,firstDomTabbableNode:M,lastDomTabbableNode:z,nextTabbableNode:function(x){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,K=f.indexOf(x);return K<0?$?p.slice(p.indexOf(x)+1).find(function(Q){return le(Q)}):p.slice(0,p.indexOf(x)).reverse().find(function(Q){return le(Q)}):f[K+($?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(c){return c.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!h("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(c){return c.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},y=function w(c){var f=c.activeElement;if(f)return f.shadowRoot&&f.shadowRoot.activeElement!==null?w(f.shadowRoot):f},b=function w(c){if(c!==!1&&c!==y(document)){if(!c||!c.focus){w(d());return}c.focus({preventScroll:!!a.preventScroll}),i.mostRecentlyFocusedNode=c,Ar(c)&&c.select()}},E=function(c){var f=h("setReturnFocus",c);return f||(f===!1?!1:c)},g=function(c){var f=c.target,p=c.event,N=c.isBackward,I=N===void 0?!1:N;f=f||Ae(p),v();var M=null;if(i.tabbableGroups.length>0){var z=l(f,p),P=z>=0?i.containerGroups[z]:void 0;if(z<0)I?M=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:M=i.tabbableGroups[0].firstTabbableNode;else if(I){var m=ft(i.tabbableGroups,function(B){var U=B.firstTabbableNode;return f===U});if(m<0&&(P.container===f||_e(f,a.tabbableOptions)&&!le(f,a.tabbableOptions)&&!P.nextTabbableNode(f,!1))&&(m=z),m>=0){var x=m===0?i.tabbableGroups.length-1:m-1,$=i.tabbableGroups[x];M=se(f)>=0?$.lastTabbableNode:$.lastDomTabbableNode}else ge(p)||(M=P.nextTabbableNode(f,!1))}else{var K=ft(i.tabbableGroups,function(B){var U=B.lastTabbableNode;return f===U});if(K<0&&(P.container===f||_e(f,a.tabbableOptions)&&!le(f,a.tabbableOptions)&&!P.nextTabbableNode(f))&&(K=z),K>=0){var Q=K===i.tabbableGroups.length-1?0:K+1,q=i.tabbableGroups[Q];M=se(f)>=0?q.firstTabbableNode:q.firstDomTabbableNode}else ge(p)||(M=P.nextTabbableNode(f))}}else M=h("fallbackFocus");return M},S=function(c){var f=Ae(c);if(!(l(f,c)>=0)){if(ye(a.clickOutsideDeactivates,c)){s.deactivate({returnFocus:a.returnFocusOnDeactivate});return}ye(a.allowOutsideClick,c)||c.preventDefault()}},T=function(c){var f=Ae(c),p=l(f,c)>=0;if(p||f instanceof Document)p&&(i.mostRecentlyFocusedNode=f);else{c.stopImmediatePropagation();var N,I=!0;if(i.mostRecentlyFocusedNode)if(se(i.mostRecentlyFocusedNode)>0){var M=l(i.mostRecentlyFocusedNode),z=i.containerGroups[M].tabbableNodes;if(z.length>0){var P=z.findIndex(function(m){return m===i.mostRecentlyFocusedNode});P>=0&&(a.isKeyForward(i.recentNavEvent)?P+1=0&&(N=z[P-1],I=!1))}}else i.containerGroups.some(function(m){return m.tabbableNodes.some(function(x){return se(x)>0})})||(I=!1);else I=!1;I&&(N=g({target:i.mostRecentlyFocusedNode,isBackward:a.isKeyBackward(i.recentNavEvent)})),b(N||i.mostRecentlyFocusedNode||d())}i.recentNavEvent=void 0},F=function(c){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=c;var p=g({event:c,isBackward:f});p&&(ge(c)&&c.preventDefault(),b(p))},L=function(c){if(Tr(c)&&ye(a.escapeDeactivates,c)!==!1){c.preventDefault(),s.deactivate();return}(a.isKeyForward(c)||a.isKeyBackward(c))&&F(c,a.isKeyBackward(c))},_=function(c){var f=Ae(c);l(f,c)>=0||ye(a.clickOutsideDeactivates,c)||ye(a.allowOutsideClick,c)||(c.preventDefault(),c.stopImmediatePropagation())},V=function(){if(i.active)return lt.activateTrap(n,s),i.delayInitialFocusTimer=a.delayInitialFocus?ct(function(){b(d())}):b(d()),r.addEventListener("focusin",T,!0),r.addEventListener("mousedown",S,{capture:!0,passive:!1}),r.addEventListener("touchstart",S,{capture:!0,passive:!1}),r.addEventListener("click",_,{capture:!0,passive:!1}),r.addEventListener("keydown",L,{capture:!0,passive:!1}),s},C=function(){if(i.active)return r.removeEventListener("focusin",T,!0),r.removeEventListener("mousedown",S,!0),r.removeEventListener("touchstart",S,!0),r.removeEventListener("click",_,!0),r.removeEventListener("keydown",L,!0),s},R=function(c){var f=c.some(function(p){var N=Array.from(p.removedNodes);return N.some(function(I){return I===i.mostRecentlyFocusedNode})});f&&b(d())},A=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(R):void 0,O=function(){A&&(A.disconnect(),i.active&&!i.paused&&i.containers.map(function(c){A.observe(c,{subtree:!0,childList:!0})}))};return s={get active(){return i.active},get paused(){return i.paused},activate:function(c){if(i.active)return this;var f=u(c,"onActivate"),p=u(c,"onPostActivate"),N=u(c,"checkCanFocusTrap");N||v(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=r.activeElement,f==null||f();var I=function(){N&&v(),V(),O(),p==null||p()};return N?(N(i.containers.concat()).then(I,I),this):(I(),this)},deactivate:function(c){if(!i.active)return this;var f=ut({onDeactivate:a.onDeactivate,onPostDeactivate:a.onPostDeactivate,checkCanReturnFocus:a.checkCanReturnFocus},c);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,C(),i.active=!1,i.paused=!1,O(),lt.deactivateTrap(n,s);var p=u(f,"onDeactivate"),N=u(f,"onPostDeactivate"),I=u(f,"checkCanReturnFocus"),M=u(f,"returnFocus","returnFocusOnDeactivate");p==null||p();var z=function(){ct(function(){M&&b(E(i.nodeFocusedBeforeActivation)),N==null||N()})};return M&&I?(I(E(i.nodeFocusedBeforeActivation)).then(z,z),this):(z(),this)},pause:function(c){if(i.paused||!i.active)return this;var f=u(c,"onPause"),p=u(c,"onPostPause");return i.paused=!0,f==null||f(),C(),O(),p==null||p(),this},unpause:function(c){if(!i.paused||!i.active)return this;var f=u(c,"onUnpause"),p=u(c,"onPostUnpause");return i.paused=!1,f==null||f(),v(),V(),O(),p==null||p(),this},updateContainerElements:function(c){var f=[].concat(c).filter(Boolean);return i.containers=f.map(function(p){return typeof p=="string"?r.querySelector(p):p}),i.active&&v(),O(),this}},s.updateContainerElements(e),s};function kr(o,e={}){let t;const{immediate:r,...n}=e,a=oe(!1),i=oe(!1),s=d=>t&&t.activate(d),u=d=>t&&t.deactivate(d),l=()=>{t&&(t.pause(),i.value=!0)},h=()=>{t&&(t.unpause(),i.value=!1)};return $e(()=>kt(o),d=>{d&&(t=Dr(d,{...n,onActivate(){a.value=!0,e.onActivate&&e.onActivate()},onDeactivate(){a.value=!1,e.onDeactivate&&e.onDeactivate()}}),r&&s())},{flush:"post"}),Ot(()=>u()),{hasFocus:a,isPaused:i,activate:s,deactivate:u,pause:l,unpause:h}}class fe{constructor(e,t=!0,r=[],n=5e3){this.ctx=e,this.iframes=t,this.exclude=r,this.iframesTimeout=n}static matches(e,t){const r=typeof t=="string"?[t]:t,n=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(n){let a=!1;return r.every(i=>n.call(e,i)?(a=!0,!1):!0),a}else return!1}getContexts(){let e,t=[];return typeof this.ctx>"u"||!this.ctx?e=[]:NodeList.prototype.isPrototypeOf(this.ctx)?e=Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?e=this.ctx:typeof this.ctx=="string"?e=Array.prototype.slice.call(document.querySelectorAll(this.ctx)):e=[this.ctx],e.forEach(r=>{const n=t.filter(a=>a.contains(r)).length>0;t.indexOf(r)===-1&&!n&&t.push(r)}),t}getIframeContents(e,t,r=()=>{}){let n;try{const a=e.contentWindow;if(n=a.document,!a||!n)throw new Error("iframe inaccessible")}catch{r()}n&&t(n)}isIframeBlank(e){const t="about:blank",r=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&r!==t&&r}observeIframeLoad(e,t,r){let n=!1,a=null;const i=()=>{if(!n){n=!0,clearTimeout(a);try{this.isIframeBlank(e)||(e.removeEventListener("load",i),this.getIframeContents(e,t,r))}catch{r()}}};e.addEventListener("load",i),a=setTimeout(i,this.iframesTimeout)}onIframeReady(e,t,r){try{e.contentWindow.document.readyState==="complete"?this.isIframeBlank(e)?this.observeIframeLoad(e,t,r):this.getIframeContents(e,t,r):this.observeIframeLoad(e,t,r)}catch{r()}}waitForIframes(e,t){let r=0;this.forEachIframe(e,()=>!0,n=>{r++,this.waitForIframes(n.querySelector("html"),()=>{--r||t()})},n=>{n||t()})}forEachIframe(e,t,r,n=()=>{}){let a=e.querySelectorAll("iframe"),i=a.length,s=0;a=Array.prototype.slice.call(a);const u=()=>{--i<=0&&n(s)};i||u(),a.forEach(l=>{fe.matches(l,this.exclude)?u():this.onIframeReady(l,h=>{t(l)&&(s++,r(h)),u()},u)})}createIterator(e,t,r){return document.createNodeIterator(e,t,r,!1)}createInstanceOnIframe(e){return new fe(e.querySelector("html"),this.iframes)}compareNodeIframe(e,t,r){const n=e.compareDocumentPosition(r),a=Node.DOCUMENT_POSITION_PRECEDING;if(n&a)if(t!==null){const i=t.compareDocumentPosition(r),s=Node.DOCUMENT_POSITION_FOLLOWING;if(i&s)return!0}else return!0;return!1}getIteratorNode(e){const t=e.previousNode();let r;return t===null?r=e.nextNode():r=e.nextNode()&&e.nextNode(),{prevNode:t,node:r}}checkIframeFilter(e,t,r,n){let a=!1,i=!1;return n.forEach((s,u)=>{s.val===r&&(a=u,i=s.handled)}),this.compareNodeIframe(e,t,r)?(a===!1&&!i?n.push({val:r,handled:!0}):a!==!1&&!i&&(n[a].handled=!0),!0):(a===!1&&n.push({val:r,handled:!1}),!1)}handleOpenIframes(e,t,r,n){e.forEach(a=>{a.handled||this.getIframeContents(a.val,i=>{this.createInstanceOnIframe(i).forEachNode(t,r,n)})})}iterateThroughNodes(e,t,r,n,a){const i=this.createIterator(t,e,n);let s=[],u=[],l,h,d=()=>({prevNode:h,node:l}=this.getIteratorNode(i),l);for(;d();)this.iframes&&this.forEachIframe(t,v=>this.checkIframeFilter(l,h,v,s),v=>{this.createInstanceOnIframe(v).forEachNode(e,y=>u.push(y),n)}),u.push(l);u.forEach(v=>{r(v)}),this.iframes&&this.handleOpenIframes(s,e,r,n),a()}forEachNode(e,t,r,n=()=>{}){const a=this.getContexts();let i=a.length;i||n(),a.forEach(s=>{const u=()=>{this.iterateThroughNodes(e,s,t,r,()=>{--i<=0&&n()})};this.iframes?this.waitForIframes(s,u):u()})}}let Or=class{constructor(e){this.ctx=e,this.ie=!1;const t=window.navigator.userAgent;(t.indexOf("MSIE")>-1||t.indexOf("Trident")>-1)&&(this.ie=!0)}set opt(e){this._opt=Object.assign({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:()=>{},noMatch:()=>{},filter:()=>!0,done:()=>{},debug:!1,log:window.console},e)}get opt(){return this._opt}get iterator(){return new fe(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}log(e,t="debug"){const r=this.opt.log;this.opt.debug&&typeof r=="object"&&typeof r[t]=="function"&&r[t](`mark.js: ${e}`)}escapeStr(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}createRegExp(e){return this.opt.wildcards!=="disabled"&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),this.opt.wildcards!=="disabled"&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e),e}createSynonymsRegExp(e){const t=this.opt.synonyms,r=this.opt.caseSensitive?"":"i",n=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(let a in t)if(t.hasOwnProperty(a)){const i=t[a],s=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(a):this.escapeStr(a),u=this.opt.wildcards!=="disabled"?this.setupWildcardsRegExp(i):this.escapeStr(i);s!==""&&u!==""&&(e=e.replace(new RegExp(`(${this.escapeStr(s)}|${this.escapeStr(u)})`,`gm${r}`),n+`(${this.processSynomyms(s)}|${this.processSynomyms(u)})`+n))}return e}processSynomyms(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}setupWildcardsRegExp(e){return e=e.replace(/(?:\\)*\?/g,t=>t.charAt(0)==="\\"?"?":""),e.replace(/(?:\\)*\*/g,t=>t.charAt(0)==="\\"?"*":"")}createWildcardsRegExp(e){let t=this.opt.wildcards==="withSpaces";return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}setupIgnoreJoinersRegExp(e){return e.replace(/[^(|)\\]/g,(t,r,n)=>{let a=n.charAt(r+1);return/[(|)\\]/.test(a)||a===""?t:t+"\0"})}createJoinersRegExp(e){let t=[];const r=this.opt.ignorePunctuation;return Array.isArray(r)&&r.length&&t.push(this.escapeStr(r.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join(`[${t.join("")}]*`):e}createDiacriticsRegExp(e){const t=this.opt.caseSensitive?"":"i",r=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"];let n=[];return e.split("").forEach(a=>{r.every(i=>{if(i.indexOf(a)!==-1){if(n.indexOf(i)>-1)return!1;e=e.replace(new RegExp(`[${i}]`,`gm${t}`),`[${i}]`),n.push(i)}return!0})}),e}createMergedBlanksRegExp(e){return e.replace(/[\s]+/gmi,"[\\s]+")}createAccuracyRegExp(e){const t="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿";let r=this.opt.accuracy,n=typeof r=="string"?r:r.value,a=typeof r=="string"?[]:r.limiters,i="";switch(a.forEach(s=>{i+=`|${this.escapeStr(s)}`}),n){case"partially":default:return`()(${e})`;case"complementary":return i="\\s"+(i||this.escapeStr(t)),`()([^${i}]*${e}[^${i}]*)`;case"exactly":return`(^|\\s${i})(${e})(?=$|\\s${i})`}}getSeparatedKeywords(e){let t=[];return e.forEach(r=>{this.opt.separateWordSearch?r.split(" ").forEach(n=>{n.trim()&&t.indexOf(n)===-1&&t.push(n)}):r.trim()&&t.indexOf(r)===-1&&t.push(r)}),{keywords:t.sort((r,n)=>n.length-r.length),length:t.length}}isNumeric(e){return Number(parseFloat(e))==e}checkRanges(e){if(!Array.isArray(e)||Object.prototype.toString.call(e[0])!=="[object Object]")return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];const t=[];let r=0;return e.sort((n,a)=>n.start-a.start).forEach(n=>{let{start:a,end:i,valid:s}=this.callNoMatchOnInvalidRanges(n,r);s&&(n.start=a,n.length=i-a,t.push(n),r=i)}),t}callNoMatchOnInvalidRanges(e,t){let r,n,a=!1;return e&&typeof e.start<"u"?(r=parseInt(e.start,10),n=r+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&n-t>0&&n-r>0?a=!0:(this.log(`Ignoring invalid or overlapping range: ${JSON.stringify(e)}`),this.opt.noMatch(e))):(this.log(`Ignoring invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)),{start:r,end:n,valid:a}}checkWhitespaceRanges(e,t,r){let n,a=!0,i=r.length,s=t-i,u=parseInt(e.start,10)-s;return u=u>i?i:u,n=u+parseInt(e.length,10),n>i&&(n=i,this.log(`End range automatically set to the max value of ${i}`)),u<0||n-u<0||u>i||n>i?(a=!1,this.log(`Invalid range: ${JSON.stringify(e)}`),this.opt.noMatch(e)):r.substring(u,n).replace(/\s+/g,"")===""&&(a=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:u,end:n,valid:a}}getTextNodes(e){let t="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,n=>{r.push({start:t.length,end:(t+=n.textContent).length,node:n})},n=>this.matchesExclude(n.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT,()=>{e({value:t,nodes:r})})}matchesExclude(e){return fe.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}wrapRangeInTextNode(e,t,r){const n=this.opt.element?this.opt.element:"mark",a=e.splitText(t),i=a.splitText(r-t);let s=document.createElement(n);return s.setAttribute("data-markjs","true"),this.opt.className&&s.setAttribute("class",this.opt.className),s.textContent=a.textContent,a.parentNode.replaceChild(s,a),i}wrapRangeInMappedTextNode(e,t,r,n,a){e.nodes.every((i,s)=>{const u=e.nodes[s+1];if(typeof u>"u"||u.start>t){if(!n(i.node))return!1;const l=t-i.start,h=(r>i.end?i.end:r)-i.start,d=e.value.substr(0,i.start),v=e.value.substr(h+i.start);if(i.node=this.wrapRangeInTextNode(i.node,l,h),e.value=d+v,e.nodes.forEach((y,b)=>{b>=s&&(e.nodes[b].start>0&&b!==s&&(e.nodes[b].start-=h),e.nodes[b].end-=h)}),r-=h,a(i.node.previousSibling,i.start),r>i.end)t=i.end;else return!1}return!0})}wrapMatches(e,t,r,n,a){const i=t===0?0:t+1;this.getTextNodes(s=>{s.nodes.forEach(u=>{u=u.node;let l;for(;(l=e.exec(u.textContent))!==null&&l[i]!=="";){if(!r(l[i],u))continue;let h=l.index;if(i!==0)for(let d=1;d{let u;for(;(u=e.exec(s.value))!==null&&u[i]!=="";){let l=u.index;if(i!==0)for(let d=1;dr(u[i],d),(d,v)=>{e.lastIndex=v,n(d)})}a()})}wrapRangeFromIndex(e,t,r,n){this.getTextNodes(a=>{const i=a.value.length;e.forEach((s,u)=>{let{start:l,end:h,valid:d}=this.checkWhitespaceRanges(s,i,a.value);d&&this.wrapRangeInMappedTextNode(a,l,h,v=>t(v,s,a.value.substring(l,h),u),v=>{r(v,s)})}),n()})}unwrapMatches(e){const t=e.parentNode;let r=document.createDocumentFragment();for(;e.firstChild;)r.appendChild(e.removeChild(e.firstChild));t.replaceChild(r,e),this.ie?this.normalizeTextNode(t):t.normalize()}normalizeTextNode(e){if(e){if(e.nodeType===3)for(;e.nextSibling&&e.nextSibling.nodeType===3;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}markRegExp(e,t){this.opt=t,this.log(`Searching with expression "${e}"`);let r=0,n="wrapMatches";const a=i=>{r++,this.opt.each(i)};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),this[n](e,this.opt.ignoreGroups,(i,s)=>this.opt.filter(s,i,r),a,()=>{r===0&&this.opt.noMatch(e),this.opt.done(r)})}mark(e,t){this.opt=t;let r=0,n="wrapMatches";const{keywords:a,length:i}=this.getSeparatedKeywords(typeof e=="string"?[e]:e),s=this.opt.caseSensitive?"":"i",u=l=>{let h=new RegExp(this.createRegExp(l),`gm${s}`),d=0;this.log(`Searching with expression "${h}"`),this[n](h,1,(v,y)=>this.opt.filter(y,l,r,d),v=>{d++,r++,this.opt.each(v)},()=>{d===0&&this.opt.noMatch(l),a[i-1]===l?this.opt.done(r):u(a[a.indexOf(l)+1])})};this.opt.acrossElements&&(n="wrapMatchesAcrossElements"),i===0?this.opt.done(r):u(a[0])}markRanges(e,t){this.opt=t;let r=0,n=this.checkRanges(e);n&&n.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(n)),this.wrapRangeFromIndex(n,(a,i,s,u)=>this.opt.filter(a,i,s,u),(a,i)=>{r++,this.opt.each(a,i)},()=>{this.opt.done(r)})):this.opt.done(r)}unmark(e){this.opt=e;let t=this.opt.element?this.opt.element:"*";t+="[data-markjs]",this.opt.className&&(t+=`.${this.opt.className}`),this.log(`Removal selector "${t}"`),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,r=>{this.unwrapMatches(r)},r=>{const n=fe.matches(r,t),a=this.matchesExclude(r);return!n||a?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},this.opt.done)}};function Rr(o){const e=new Or(o);return this.mark=(t,r)=>(e.mark(t,r),this),this.markRegExp=(t,r)=>(e.markRegExp(t,r),this),this.markRanges=(t,r)=>(e.markRanges(t,r),this),this.unmark=t=>(e.unmark(t),this),this}var W=function(){return W=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&a[a.length-1])&&(l[0]===6||l[0]===2)){t=0;continue}if(l[0]===3&&(!a||l[1]>a[0]&&l[1]=o.length&&(o=void 0),{value:o&&o[r++],done:!o}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function J(o,e){var t=typeof Symbol=="function"&&o[Symbol.iterator];if(!t)return o;var r=t.call(o),n,a=[],i;try{for(;(e===void 0||e-- >0)&&!(n=r.next()).done;)a.push(n.value)}catch(s){i={error:s}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(i)throw i.error}}return a}var Lr="ENTRIES",Ft="KEYS",Et="VALUES",G="",Me=function(){function o(e,t){var r=e._tree,n=Array.from(r.keys());this.set=e,this._type=t,this._path=n.length>0?[{node:r,keys:n}]:[]}return o.prototype.next=function(){var e=this.dive();return this.backtrack(),e},o.prototype.dive=function(){if(this._path.length===0)return{done:!0,value:void 0};var e=ce(this._path),t=e.node,r=e.keys;if(ce(r)===G)return{done:!1,value:this.result()};var n=t.get(ce(r));return this._path.push({node:n,keys:Array.from(n.keys())}),this.dive()},o.prototype.backtrack=function(){if(this._path.length!==0){var e=ce(this._path).keys;e.pop(),!(e.length>0)&&(this._path.pop(),this.backtrack())}},o.prototype.key=function(){return this.set._prefix+this._path.map(function(e){var t=e.keys;return ce(t)}).filter(function(e){return e!==G}).join("")},o.prototype.value=function(){return ce(this._path).node.get(G)},o.prototype.result=function(){switch(this._type){case Et:return this.value();case Ft:return this.key();default:return[this.key(),this.value()]}},o.prototype[Symbol.iterator]=function(){return this},o}(),ce=function(o){return o[o.length-1]},zr=function(o,e,t){var r=new Map;if(e===void 0)return r;for(var n=e.length+1,a=n+t,i=new Uint8Array(a*n).fill(t+1),s=0;st)continue e}St(o.get(y),e,t,r,n,E,i,s+y)}}}catch(f){u={error:f}}finally{try{v&&!v.done&&(l=d.return)&&l.call(d)}finally{if(u)throw u.error}}},Le=function(){function o(e,t){e===void 0&&(e=new Map),t===void 0&&(t=""),this._size=void 0,this._tree=e,this._prefix=t}return o.prototype.atPrefix=function(e){var t,r;if(!e.startsWith(this._prefix))throw new Error("Mismatched prefix");var n=J(ke(this._tree,e.slice(this._prefix.length)),2),a=n[0],i=n[1];if(a===void 0){var s=J(je(i),2),u=s[0],l=s[1];try{for(var h=D(u.keys()),d=h.next();!d.done;d=h.next()){var v=d.value;if(v!==G&&v.startsWith(l)){var y=new Map;return y.set(v.slice(l.length),u.get(v)),new o(y,e)}}}catch(b){t={error:b}}finally{try{d&&!d.done&&(r=h.return)&&r.call(h)}finally{if(t)throw t.error}}}return new o(a,e)},o.prototype.clear=function(){this._size=void 0,this._tree.clear()},o.prototype.delete=function(e){return this._size=void 0,Pr(this._tree,e)},o.prototype.entries=function(){return new Me(this,Lr)},o.prototype.forEach=function(e){var t,r;try{for(var n=D(this),a=n.next();!a.done;a=n.next()){var i=J(a.value,2),s=i[0],u=i[1];e(s,u,this)}}catch(l){t={error:l}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}},o.prototype.fuzzyGet=function(e,t){return zr(this._tree,e,t)},o.prototype.get=function(e){var t=Ke(this._tree,e);return t!==void 0?t.get(G):void 0},o.prototype.has=function(e){var t=Ke(this._tree,e);return t!==void 0&&t.has(G)},o.prototype.keys=function(){return new Me(this,Ft)},o.prototype.set=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var r=ze(this._tree,e);return r.set(G,t),this},Object.defineProperty(o.prototype,"size",{get:function(){if(this._size)return this._size;this._size=0;for(var e=this.entries();!e.next().done;)this._size+=1;return this._size},enumerable:!1,configurable:!0}),o.prototype.update=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var r=ze(this._tree,e);return r.set(G,t(r.get(G))),this},o.prototype.fetch=function(e,t){if(typeof e!="string")throw new Error("key must be a string");this._size=void 0;var r=ze(this._tree,e),n=r.get(G);return n===void 0&&r.set(G,n=t()),n},o.prototype.values=function(){return new Me(this,Et)},o.prototype[Symbol.iterator]=function(){return this.entries()},o.from=function(e){var t,r,n=new o;try{for(var a=D(e),i=a.next();!i.done;i=a.next()){var s=J(i.value,2),u=s[0],l=s[1];n.set(u,l)}}catch(h){t={error:h}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}return n},o.fromObject=function(e){return o.from(Object.entries(e))},o}(),ke=function(o,e,t){var r,n;if(t===void 0&&(t=[]),e.length===0||o==null)return[o,t];try{for(var a=D(o.keys()),i=a.next();!i.done;i=a.next()){var s=i.value;if(s!==G&&e.startsWith(s))return t.push([o,s]),ke(o.get(s),e.slice(s.length),t)}}catch(u){r={error:u}}finally{try{i&&!i.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return t.push([o,e]),ke(void 0,"",t)},Ke=function(o,e){var t,r;if(e.length===0||o==null)return o;try{for(var n=D(o.keys()),a=n.next();!a.done;a=n.next()){var i=a.value;if(i!==G&&e.startsWith(i))return Ke(o.get(i),e.slice(i.length))}}catch(s){t={error:s}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}},ze=function(o,e){var t,r,n=e.length;e:for(var a=0;o&&a0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new Le,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}},o.prototype.discard=function(e){var t=this,r=this._idToShortId.get(e);if(r==null)throw new Error("MiniSearch: cannot discard document with ID ".concat(e,": it is not in the index"));this._idToShortId.delete(e),this._documentIds.delete(r),this._storedFields.delete(r),(this._fieldLength.get(r)||[]).forEach(function(n,a){t.removeFieldLength(r,a,t._documentCount,n)}),this._fieldLength.delete(r),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()},o.prototype.maybeAutoVacuum=function(){if(this._options.autoVacuum!==!1){var e=this._options.autoVacuum,t=e.minDirtFactor,r=e.minDirtCount,n=e.batchSize,a=e.batchWait;this.conditionalVacuum({batchSize:n,batchWait:a},{minDirtCount:r,minDirtFactor:t})}},o.prototype.discardAll=function(e){var t,r,n=this._options.autoVacuum;try{this._options.autoVacuum=!1;try{for(var a=D(e),i=a.next();!i.done;i=a.next()){var s=i.value;this.discard(s)}}catch(u){t={error:u}}finally{try{i&&!i.done&&(r=a.return)&&r.call(a)}finally{if(t)throw t.error}}}finally{this._options.autoVacuum=n}this.maybeAutoVacuum()},o.prototype.replace=function(e){var t=this._options,r=t.idField,n=t.extractField,a=n(e,r);this.discard(a),this.add(e)},o.prototype.vacuum=function(e){return e===void 0&&(e={}),this.conditionalVacuum(e)},o.prototype.conditionalVacuum=function(e,t){var r=this;return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&t,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(function(){var n=r._enqueuedVacuumConditions;return r._enqueuedVacuumConditions=Ue,r.performVacuuming(e,n)}),this._enqueuedVacuum)):this.vacuumConditionsMet(t)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(e),this._currentVacuum)},o.prototype.performVacuuming=function(e,t){return _r(this,void 0,void 0,function(){var r,n,a,i,s,u,l,h,d,v,y,b,E,g,S,T,F,L,_,V,C,R,A,O,w;return Mr(this,function(c){switch(c.label){case 0:if(r=this._dirtCount,!this.vacuumConditionsMet(t))return[3,10];n=e.batchSize||Je.batchSize,a=e.batchWait||Je.batchWait,i=1,c.label=1;case 1:c.trys.push([1,7,8,9]),s=D(this._index),u=s.next(),c.label=2;case 2:if(u.done)return[3,6];l=J(u.value,2),h=l[0],d=l[1];try{for(v=(R=void 0,D(d)),y=v.next();!y.done;y=v.next()){b=J(y.value,2),E=b[0],g=b[1];try{for(S=(O=void 0,D(g)),T=S.next();!T.done;T=S.next())F=J(T.value,1),L=F[0],!this._documentIds.has(L)&&(g.size<=1?d.delete(E):g.delete(L))}catch(f){O={error:f}}finally{try{T&&!T.done&&(w=S.return)&&w.call(S)}finally{if(O)throw O.error}}}}catch(f){R={error:f}}finally{try{y&&!y.done&&(A=v.return)&&A.call(v)}finally{if(R)throw R.error}}return this._index.get(h).size===0&&this._index.delete(h),i%n!==0?[3,4]:[4,new Promise(function(f){return setTimeout(f,a)})];case 3:c.sent(),c.label=4;case 4:i+=1,c.label=5;case 5:return u=s.next(),[3,2];case 6:return[3,9];case 7:return _=c.sent(),V={error:_},[3,9];case 8:try{u&&!u.done&&(C=s.return)&&C.call(s)}finally{if(V)throw V.error}return[7];case 9:this._dirtCount-=r,c.label=10;case 10:return[4,null];case 11:return c.sent(),this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null,[2]}})})},o.prototype.vacuumConditionsMet=function(e){if(e==null)return!0;var t=e.minDirtCount,r=e.minDirtFactor;return t=t||Ve.minDirtCount,r=r||Ve.minDirtFactor,this.dirtCount>=t&&this.dirtFactor>=r},Object.defineProperty(o.prototype,"isVacuuming",{get:function(){return this._currentVacuum!=null},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"dirtCount",{get:function(){return this._dirtCount},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"dirtFactor",{get:function(){return this._dirtCount/(1+this._documentCount+this._dirtCount)},enumerable:!1,configurable:!0}),o.prototype.has=function(e){return this._idToShortId.has(e)},o.prototype.getStoredFields=function(e){var t=this._idToShortId.get(e);if(t!=null)return this._storedFields.get(t)},o.prototype.search=function(e,t){var r,n;t===void 0&&(t={});var a=this.executeQuery(e,t),i=[];try{for(var s=D(a),u=s.next();!u.done;u=s.next()){var l=J(u.value,2),h=l[0],d=l[1],v=d.score,y=d.terms,b=d.match,E=y.length||1,g={id:this._documentIds.get(h),score:v*E,terms:Object.keys(b),queryTerms:y,match:b};Object.assign(g,this._storedFields.get(h)),(t.filter==null||t.filter(g))&&i.push(g)}}catch(S){r={error:S}}finally{try{u&&!u.done&&(n=s.return)&&n.call(s)}finally{if(r)throw r.error}}return e===o.wildcard&&t.boostDocument==null&&this._options.searchOptions.boostDocument==null||i.sort(vt),i},o.prototype.autoSuggest=function(e,t){var r,n,a,i;t===void 0&&(t={}),t=W(W({},this._options.autoSuggestOptions),t);var s=new Map;try{for(var u=D(this.search(e,t)),l=u.next();!l.done;l=u.next()){var h=l.value,d=h.score,v=h.terms,y=v.join(" "),b=s.get(y);b!=null?(b.score+=d,b.count+=1):s.set(y,{score:d,terms:v,count:1})}}catch(_){r={error:_}}finally{try{l&&!l.done&&(n=u.return)&&n.call(u)}finally{if(r)throw r.error}}var E=[];try{for(var g=D(s),S=g.next();!S.done;S=g.next()){var T=J(S.value,2),b=T[0],F=T[1],d=F.score,v=F.terms,L=F.count;E.push({suggestion:b,terms:v,score:d/L})}}catch(_){a={error:_}}finally{try{S&&!S.done&&(i=g.return)&&i.call(g)}finally{if(a)throw a.error}}return E.sort(vt),E},Object.defineProperty(o.prototype,"documentCount",{get:function(){return this._documentCount},enumerable:!1,configurable:!0}),Object.defineProperty(o.prototype,"termCount",{get:function(){return this._index.size},enumerable:!1,configurable:!0}),o.loadJSON=function(e,t){if(t==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(e),t)},o.getDefault=function(e){if(Be.hasOwnProperty(e))return Pe(Be,e);throw new Error('MiniSearch: unknown option "'.concat(e,'"'))},o.loadJS=function(e,t){var r,n,a,i,s,u,l=e.index,h=e.documentCount,d=e.nextId,v=e.documentIds,y=e.fieldIds,b=e.fieldLength,E=e.averageFieldLength,g=e.storedFields,S=e.dirtCount,T=e.serializationVersion;if(T!==1&&T!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");var F=new o(t);F._documentCount=h,F._nextId=d,F._documentIds=Te(v),F._idToShortId=new Map,F._fieldIds=y,F._fieldLength=Te(b),F._avgFieldLength=E,F._storedFields=Te(g),F._dirtCount=S||0,F._index=new Le;try{for(var L=D(F._documentIds),_=L.next();!_.done;_=L.next()){var V=J(_.value,2),C=V[0],R=V[1];F._idToShortId.set(R,C)}}catch(P){r={error:P}}finally{try{_&&!_.done&&(n=L.return)&&n.call(L)}finally{if(r)throw r.error}}try{for(var A=D(l),O=A.next();!O.done;O=A.next()){var w=J(O.value,2),c=w[0],f=w[1],p=new Map;try{for(var N=(s=void 0,D(Object.keys(f))),I=N.next();!I.done;I=N.next()){var M=I.value,z=f[M];T===1&&(z=z.ds),p.set(parseInt(M,10),Te(z))}}catch(P){s={error:P}}finally{try{I&&!I.done&&(u=N.return)&&u.call(N)}finally{if(s)throw s.error}}F._index.set(c,p)}}catch(P){a={error:P}}finally{try{O&&!O.done&&(i=A.return)&&i.call(A)}finally{if(a)throw a.error}}return F},o.prototype.executeQuery=function(e,t){var r=this;if(t===void 0&&(t={}),e===o.wildcard)return this.executeWildcardQuery(t);if(typeof e!="string"){var n=W(W(W({},t),e),{queries:void 0}),a=e.queries.map(function(g){return r.executeQuery(g,n)});return this.combineResults(a,n.combineWith)}var i=this._options,s=i.tokenize,u=i.processTerm,l=i.searchOptions,h=W(W({tokenize:s,processTerm:u},l),t),d=h.tokenize,v=h.processTerm,y=d(e).flatMap(function(g){return v(g)}).filter(function(g){return!!g}),b=y.map(Jr(h)),E=b.map(function(g){return r.executeQuerySpec(g,h)});return this.combineResults(E,h.combineWith)},o.prototype.executeQuerySpec=function(e,t){var r,n,a,i,s=W(W({},this._options.searchOptions),t),u=(s.fields||this._options.fields).reduce(function(M,z){var P;return W(W({},M),(P={},P[z]=Pe(s.boost,z)||1,P))},{}),l=s.boostDocument,h=s.weights,d=s.maxFuzzy,v=s.bm25,y=W(W({},ht.weights),h),b=y.fuzzy,E=y.prefix,g=this._index.get(e.term),S=this.termResults(e.term,e.term,1,g,u,l,v),T,F;if(e.prefix&&(T=this._index.atPrefix(e.term)),e.fuzzy){var L=e.fuzzy===!0?.2:e.fuzzy,_=L<1?Math.min(d,Math.round(e.term.length*L)):L;_&&(F=this._index.fuzzyGet(e.term,_))}if(T)try{for(var V=D(T),C=V.next();!C.done;C=V.next()){var R=J(C.value,2),A=R[0],O=R[1],w=A.length-e.term.length;if(w){F==null||F.delete(A);var c=E*A.length/(A.length+.3*w);this.termResults(e.term,A,c,O,u,l,v,S)}}}catch(M){r={error:M}}finally{try{C&&!C.done&&(n=V.return)&&n.call(V)}finally{if(r)throw r.error}}if(F)try{for(var f=D(F.keys()),p=f.next();!p.done;p=f.next()){var A=p.value,N=J(F.get(A),2),I=N[0],w=N[1];if(w){var c=b*A.length/(A.length+w);this.termResults(e.term,A,c,I,u,l,v,S)}}}catch(M){a={error:M}}finally{try{p&&!p.done&&(i=f.return)&&i.call(f)}finally{if(a)throw a.error}}return S},o.prototype.executeWildcardQuery=function(e){var t,r,n=new Map,a=W(W({},this._options.searchOptions),e);try{for(var i=D(this._documentIds),s=i.next();!s.done;s=i.next()){var u=J(s.value,2),l=u[0],h=u[1],d=a.boostDocument?a.boostDocument(h,"",this._storedFields.get(l)):1;n.set(l,{score:d,terms:[],match:{}})}}catch(v){t={error:v}}finally{try{s&&!s.done&&(r=i.return)&&r.call(i)}finally{if(t)throw t.error}}return n},o.prototype.combineResults=function(e,t){if(t===void 0&&(t=Ge),e.length===0)return new Map;var r=t.toLowerCase();return e.reduce($r[r])||new Map},o.prototype.toJSON=function(){var e,t,r,n,a=[];try{for(var i=D(this._index),s=i.next();!s.done;s=i.next()){var u=J(s.value,2),l=u[0],h=u[1],d={};try{for(var v=(r=void 0,D(h)),y=v.next();!y.done;y=v.next()){var b=J(y.value,2),E=b[0],g=b[1];d[E]=Object.fromEntries(g)}}catch(S){r={error:S}}finally{try{y&&!y.done&&(n=v.return)&&n.call(v)}finally{if(r)throw r.error}}a.push([l,d])}}catch(S){e={error:S}}finally{try{s&&!s.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:a,serializationVersion:2}},o.prototype.termResults=function(e,t,r,n,a,i,s,u){var l,h,d,v,y;if(u===void 0&&(u=new Map),n==null)return u;try{for(var b=D(Object.keys(a)),E=b.next();!E.done;E=b.next()){var g=E.value,S=a[g],T=this._fieldIds[g],F=n.get(T);if(F!=null){var L=F.size,_=this._avgFieldLength[T];try{for(var V=(d=void 0,D(F.keys())),C=V.next();!C.done;C=V.next()){var R=C.value;if(!this._documentIds.has(R)){this.removeTerm(T,R,t),L-=1;continue}var A=i?i(this._documentIds.get(R),t,this._storedFields.get(R)):1;if(A){var O=F.get(R),w=this._fieldLength.get(R)[T],c=Kr(O,L,this._documentCount,w,_,s),f=r*S*A*c,p=u.get(R);if(p){p.score+=f,jr(p.terms,e);var N=Pe(p.match,t);N?N.push(g):p.match[t]=[g]}else u.set(R,{score:f,terms:[e],match:(y={},y[t]=[g],y)})}}}catch(I){d={error:I}}finally{try{C&&!C.done&&(v=V.return)&&v.call(V)}finally{if(d)throw d.error}}}}}catch(I){l={error:I}}finally{try{E&&!E.done&&(h=b.return)&&h.call(b)}finally{if(l)throw l.error}}return u},o.prototype.addTerm=function(e,t,r){var n=this._index.fetch(r,pt),a=n.get(e);if(a==null)a=new Map,a.set(t,1),n.set(e,a);else{var i=a.get(t);a.set(t,(i||0)+1)}},o.prototype.removeTerm=function(e,t,r){if(!this._index.has(r)){this.warnDocumentChanged(t,e,r);return}var n=this._index.fetch(r,pt),a=n.get(e);a==null||a.get(t)==null?this.warnDocumentChanged(t,e,r):a.get(t)<=1?a.size<=1?n.delete(e):a.delete(t):a.set(t,a.get(t)-1),this._index.get(r).size===0&&this._index.delete(r)},o.prototype.warnDocumentChanged=function(e,t,r){var n,a;try{for(var i=D(Object.keys(this._fieldIds)),s=i.next();!s.done;s=i.next()){var u=s.value;if(this._fieldIds[u]===t){this._options.logger("warn","MiniSearch: document with ID ".concat(this._documentIds.get(e),' has changed before removal: term "').concat(r,'" was not present in field "').concat(u,'". Removing a document after it has changed can corrupt the index!'),"version_conflict");return}}}catch(l){n={error:l}}finally{try{s&&!s.done&&(a=i.return)&&a.call(i)}finally{if(n)throw n.error}}},o.prototype.addDocumentId=function(e){var t=this._nextId;return this._idToShortId.set(e,t),this._documentIds.set(t,e),this._documentCount+=1,this._nextId+=1,t},o.prototype.addFields=function(e){for(var t=0;t(qt("data-v-b3bd7ef0"),o=o(),Ht(),o),qr=["aria-owns"],Hr={class:"shell"},Yr=["title"],Zr=Y(()=>k("span",{"aria-hidden":"true",class:"vpi-search search-icon local-search-icon"},null,-1)),Xr=[Zr],ea={class:"search-actions before"},ta=["title"],ra=Y(()=>k("span",{class:"vpi-arrow-left local-search-icon"},null,-1)),aa=[ra],na=["placeholder"],ia={class:"search-actions"},oa=["title"],sa=Y(()=>k("span",{class:"vpi-layout-list local-search-icon"},null,-1)),ua=[sa],la=["disabled","title"],ca=Y(()=>k("span",{class:"vpi-delete local-search-icon"},null,-1)),fa=[ca],ha=["id","role","aria-labelledby"],da=["aria-selected"],va=["href","aria-label","onMouseenter","onFocusin"],pa={class:"titles"},ya=Y(()=>k("span",{class:"title-icon"},"#",-1)),ma=["innerHTML"],ga=Y(()=>k("span",{class:"vpi-chevron-right local-search-icon"},null,-1)),ba={class:"title main"},wa=["innerHTML"],xa={key:0,class:"excerpt-wrapper"},Fa={key:0,class:"excerpt",inert:""},Ea=["innerHTML"],Sa=Y(()=>k("div",{class:"excerpt-gradient-bottom"},null,-1)),Aa=Y(()=>k("div",{class:"excerpt-gradient-top"},null,-1)),Ta={key:0,class:"no-results"},Ca={class:"search-keyboard-shortcuts"},Na=["aria-label"],Ia=Y(()=>k("span",{class:"vpi-arrow-up navigate-icon"},null,-1)),Da=[Ia],ka=["aria-label"],Oa=Y(()=>k("span",{class:"vpi-arrow-down navigate-icon"},null,-1)),Ra=[Oa],_a=["aria-label"],Ma=Y(()=>k("span",{class:"vpi-corner-down-left navigate-icon"},null,-1)),La=[Ma],za=["aria-label"],Pa=Rt({__name:"VPLocalSearchBox",emits:["close"],setup(o,{emit:e}){var z,P;const t=e,r=xe(),n=xe(),a=xe(nr),i=rr(),{activate:s}=kr(r,{immediate:!0,allowOutsideClick:!0,clickOutsideDeactivates:!0,escapeDeactivates:!0}),{localeIndex:u,theme:l}=i,h=tt(async()=>{var m,x,$,K,Q,q,B,U,Z;return it(Vr.loadJSON(($=await((x=(m=a.value)[u.value])==null?void 0:x.call(m)))==null?void 0:$.default,{fields:["title","titles","text"],storeFields:["title","titles"],searchOptions:{fuzzy:.2,prefix:!0,boost:{title:4,text:2,titles:1},...((K=l.value.search)==null?void 0:K.provider)==="local"&&((q=(Q=l.value.search.options)==null?void 0:Q.miniSearch)==null?void 0:q.searchOptions)},...((B=l.value.search)==null?void 0:B.provider)==="local"&&((Z=(U=l.value.search.options)==null?void 0:U.miniSearch)==null?void 0:Z.options)}))}),v=Fe(()=>{var m,x;return((m=l.value.search)==null?void 0:m.provider)==="local"&&((x=l.value.search.options)==null?void 0:x.disableQueryPersistence)===!0}).value?oe(""):_t("vitepress:local-search-filter",""),y=Mt("vitepress:local-search-detailed-list",((z=l.value.search)==null?void 0:z.provider)==="local"&&((P=l.value.search.options)==null?void 0:P.detailedView)===!0),b=Fe(()=>{var m,x,$;return((m=l.value.search)==null?void 0:m.provider)==="local"&&(((x=l.value.search.options)==null?void 0:x.disableDetailedView)===!0||(($=l.value.search.options)==null?void 0:$.detailedView)===!1)}),E=Fe(()=>{var x,$,K,Q,q,B,U;const m=((x=l.value.search)==null?void 0:x.options)??l.value.algolia;return((q=(Q=(K=($=m==null?void 0:m.locales)==null?void 0:$[u.value])==null?void 0:K.translations)==null?void 0:Q.button)==null?void 0:q.buttonText)||((U=(B=m==null?void 0:m.translations)==null?void 0:B.button)==null?void 0:U.buttonText)||"Search"});Lt(()=>{b.value&&(y.value=!1)});const g=xe([]),S=oe(!1);$e(v,()=>{S.value=!1});const T=tt(async()=>{if(n.value)return it(new Rr(n.value))},null),F=new Qr(16);zt(()=>[h.value,v.value,y.value],async([m,x,$],K,Q)=>{var be,Qe,qe,He;(K==null?void 0:K[0])!==m&&F.clear();let q=!1;if(Q(()=>{q=!0}),!m)return;g.value=m.search(x).slice(0,16),S.value=!0;const B=$?await Promise.all(g.value.map(H=>L(H.id))):[];if(q)return;for(const{id:H,mod:ae}of B){const ne=H.slice(0,H.indexOf("#"));let te=F.get(ne);if(te)continue;te=new Map,F.set(ne,te);const X=ae.default??ae;if(X!=null&&X.render||X!=null&&X.setup){const ie=Yt(X);ie.config.warnHandler=()=>{},ie.provide(Zt,i),Object.defineProperties(ie.config.globalProperties,{$frontmatter:{get(){return i.frontmatter.value}},$params:{get(){return i.page.value.params}}});const Ye=document.createElement("div");ie.mount(Ye),Ye.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(he=>{var et;const we=(et=he.querySelector("a"))==null?void 0:et.getAttribute("href"),Ze=(we==null?void 0:we.startsWith("#"))&&we.slice(1);if(!Ze)return;let Xe="";for(;(he=he.nextElementSibling)&&!/^h[1-6]$/i.test(he.tagName);)Xe+=he.outerHTML;te.set(Ze,Xe)}),ie.unmount()}if(q)return}const U=new Set;if(g.value=g.value.map(H=>{const[ae,ne]=H.id.split("#"),te=F.get(ae),X=(te==null?void 0:te.get(ne))??"";for(const ie in H.match)U.add(ie);return{...H,text:X}}),await de(),q)return;await new Promise(H=>{var ae;(ae=T.value)==null||ae.unmark({done:()=>{var ne;(ne=T.value)==null||ne.markRegExp(M(U),{done:H})}})});const Z=((be=r.value)==null?void 0:be.querySelectorAll(".result .excerpt"))??[];for(const H of Z)(Qe=H.querySelector('mark[data-markjs="true"]'))==null||Qe.scrollIntoView({block:"center"});(He=(qe=n.value)==null?void 0:qe.firstElementChild)==null||He.scrollIntoView({block:"start"})},{debounce:200,immediate:!0});async function L(m){const x=Xt(m.slice(0,m.indexOf("#")));try{if(!x)throw new Error(`Cannot find file for id: ${m}`);return{id:m,mod:await import(x)}}catch($){return console.error($),{id:m,mod:{}}}}const _=oe(),V=Fe(()=>{var m;return((m=v.value)==null?void 0:m.length)<=0});function C(m=!0){var x,$;(x=_.value)==null||x.focus(),m&&(($=_.value)==null||$.select())}Re(()=>{C()});function R(m){m.pointerType==="mouse"&&C()}const A=oe(-1),O=oe(!1);$e(g,m=>{A.value=m.length?0:-1,w()});function w(){de(()=>{const m=document.querySelector(".result.selected");m==null||m.scrollIntoView({block:"nearest"})})}Ee("ArrowUp",m=>{m.preventDefault(),A.value--,A.value<0&&(A.value=g.value.length-1),O.value=!0,w()}),Ee("ArrowDown",m=>{m.preventDefault(),A.value++,A.value>=g.value.length&&(A.value=0),O.value=!0,w()});const c=Pt();Ee("Enter",m=>{if(m.isComposing||m.target instanceof HTMLButtonElement&&m.target.type!=="submit")return;const x=g.value[A.value];if(m.target instanceof HTMLInputElement&&!x){m.preventDefault();return}x&&(c.go(x.id),t("close"))}),Ee("Escape",()=>{t("close")});const p=ar({modal:{displayDetails:"Display detailed list",resetButtonTitle:"Reset search",backButtonTitle:"Close search",noResultsText:"No results for",footer:{selectText:"to select",selectKeyAriaLabel:"enter",navigateText:"to navigate",navigateUpKeyAriaLabel:"up arrow",navigateDownKeyAriaLabel:"down arrow",closeText:"to close",closeKeyAriaLabel:"escape"}}});Re(()=>{window.history.pushState(null,"",null)}),Bt("popstate",m=>{m.preventDefault(),t("close")});const N=Vt($t?document.body:null);Re(()=>{de(()=>{N.value=!0,de().then(()=>s())})}),Wt(()=>{N.value=!1});function I(){v.value="",de().then(()=>C(!1))}function M(m){return new RegExp([...m].sort((x,$)=>$.length-x.length).map(x=>`(${er(x)})`).join("|"),"gi")}return(m,x)=>{var $,K,Q,q;return ee(),Kt(Qt,{to:"body"},[k("div",{ref_key:"el",ref:r,role:"button","aria-owns":($=g.value)!=null&&$.length?"localsearch-list":void 0,"aria-expanded":"true","aria-haspopup":"listbox","aria-labelledby":"localsearch-label",class:"VPLocalSearchBox"},[k("div",{class:"backdrop",onClick:x[0]||(x[0]=B=>m.$emit("close"))}),k("div",Hr,[k("form",{class:"search-bar",onPointerup:x[4]||(x[4]=B=>R(B)),onSubmit:x[5]||(x[5]=Jt(()=>{},["prevent"]))},[k("label",{title:E.value,id:"localsearch-label",for:"localsearch-input"},Xr,8,Yr),k("div",ea,[k("button",{class:"back-button",title:j(p)("modal.backButtonTitle"),onClick:x[1]||(x[1]=B=>m.$emit("close"))},aa,8,ta)]),Ut(k("input",{ref_key:"searchInput",ref:_,"onUpdate:modelValue":x[2]||(x[2]=B=>Gt(v)?v.value=B:null),placeholder:E.value,id:"localsearch-input","aria-labelledby":"localsearch-label",class:"search-input"},null,8,na),[[jt,j(v)]]),k("div",ia,[b.value?Se("",!0):(ee(),re("button",{key:0,class:rt(["toggle-layout-button",{"detailed-list":j(y)}]),type:"button",title:j(p)("modal.displayDetails"),onClick:x[3]||(x[3]=B=>A.value>-1&&(y.value=!j(y)))},ua,10,oa)),k("button",{class:"clear-button",type:"reset",disabled:V.value,title:j(p)("modal.resetButtonTitle"),onClick:I},fa,8,la)])],32),k("ul",{ref_key:"resultsEl",ref:n,id:(K=g.value)!=null&&K.length?"localsearch-list":void 0,role:(Q=g.value)!=null&&Q.length?"listbox":void 0,"aria-labelledby":(q=g.value)!=null&&q.length?"localsearch-label":void 0,class:"results",onMousemove:x[7]||(x[7]=B=>O.value=!1)},[(ee(!0),re(nt,null,at(g.value,(B,U)=>(ee(),re("li",{key:B.id,role:"option","aria-selected":A.value===U?"true":"false"},[k("a",{href:B.id,class:rt(["result",{selected:A.value===U}]),"aria-label":[...B.titles,B.title].join(" > "),onMouseenter:Z=>!O.value&&(A.value=U),onFocusin:Z=>A.value=U,onClick:x[6]||(x[6]=Z=>m.$emit("close"))},[k("div",null,[k("div",pa,[ya,(ee(!0),re(nt,null,at(B.titles,(Z,be)=>(ee(),re("span",{key:be,class:"title"},[k("span",{class:"text",innerHTML:Z},null,8,ma),ga]))),128)),k("span",ba,[k("span",{class:"text",innerHTML:B.title},null,8,wa)])]),j(y)?(ee(),re("div",xa,[B.text?(ee(),re("div",Fa,[k("div",{class:"vp-doc",innerHTML:B.text},null,8,Ea)])):Se("",!0),Sa,Aa])):Se("",!0)])],42,va)],8,da))),128)),j(v)&&!g.value.length&&S.value?(ee(),re("li",Ta,[ve(pe(j(p)("modal.noResultsText"))+' "',1),k("strong",null,pe(j(v)),1),ve('" ')])):Se("",!0)],40,ha),k("div",Ca,[k("span",null,[k("kbd",{"aria-label":j(p)("modal.footer.navigateUpKeyAriaLabel")},Da,8,Na),k("kbd",{"aria-label":j(p)("modal.footer.navigateDownKeyAriaLabel")},Ra,8,ka),ve(" "+pe(j(p)("modal.footer.navigateText")),1)]),k("span",null,[k("kbd",{"aria-label":j(p)("modal.footer.selectKeyAriaLabel")},La,8,_a),ve(" "+pe(j(p)("modal.footer.selectText")),1)]),k("span",null,[k("kbd",{"aria-label":j(p)("modal.footer.closeKeyAriaLabel")},"esc",8,za),ve(" "+pe(j(p)("modal.footer.closeText")),1)])])])],8,qr)])}}}),Ja=tr(Pa,[["__scopeId","data-v-b3bd7ef0"]]);export{Ja as default}; diff --git a/.vitepress/dist/assets/chunks/framework.DHgIdERs.js b/.vitepress/dist/assets/chunks/framework.DHgIdERs.js new file mode 100644 index 0000000..7abac5a --- /dev/null +++ b/.vitepress/dist/assets/chunks/framework.DHgIdERs.js @@ -0,0 +1,17 @@ +/** +* @vue/shared v3.4.31 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function wr(e,t){const n=new Set(e.split(","));return r=>n.has(r)}const te={},mt=[],xe=()=>{},Ii=()=>!1,kt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Er=e=>e.startsWith("onUpdate:"),le=Object.assign,Cr=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Mi=Object.prototype.hasOwnProperty,Y=(e,t)=>Mi.call(e,t),B=Array.isArray,yt=e=>Sn(e)==="[object Map]",Js=e=>Sn(e)==="[object Set]",K=e=>typeof e=="function",oe=e=>typeof e=="string",Ze=e=>typeof e=="symbol",Z=e=>e!==null&&typeof e=="object",Qs=e=>(Z(e)||K(e))&&K(e.then)&&K(e.catch),Zs=Object.prototype.toString,Sn=e=>Zs.call(e),Pi=e=>Sn(e).slice(8,-1),eo=e=>Sn(e)==="[object Object]",xr=e=>oe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,_t=wr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Tn=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Ni=/-(\w)/g,$e=Tn(e=>e.replace(Ni,(t,n)=>n?n.toUpperCase():"")),Fi=/\B([A-Z])/g,ft=Tn(e=>e.replace(Fi,"-$1").toLowerCase()),An=Tn(e=>e.charAt(0).toUpperCase()+e.slice(1)),un=Tn(e=>e?`on${An(e)}`:""),Je=(e,t)=>!Object.is(e,t),fn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},cr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},$i=e=>{const t=oe(e)?Number(e):NaN;return isNaN(t)?e:t};let Qr;const no=()=>Qr||(Qr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Sr(e){if(B(e)){const t={};for(let n=0;n{if(n){const r=n.split(ji);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Tr(e){let t="";if(oe(e))t=e;else if(B(e))for(let n=0;n!!(e&&e.__v_isRef===!0),ki=e=>oe(e)?e:e==null?"":B(e)||Z(e)&&(e.toString===Zs||!K(e.toString))?so(e)?ki(e.value):JSON.stringify(e,oo,2):String(e),oo=(e,t)=>so(t)?oo(e,t.value):yt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[kn(r,o)+" =>"]=s,n),{})}:Js(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>kn(n))}:Ze(t)?kn(t):Z(t)&&!B(t)&&!eo(t)?String(t):t,kn=(e,t="")=>{var n;return Ze(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.4.31 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let we;class Ki{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=we,!t&&we&&(this.index=(we.scopes||(we.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=we;try{return we=this,t()}finally{we=n}}}on(){we=this}off(){we=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),tt()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=Xe,n=ct;try{return Xe=!0,ct=this,this._runnings++,Zr(this),this.fn()}finally{es(this),this._runnings--,ct=n,Xe=t}}stop(){this.active&&(Zr(this),es(this),this.onStop&&this.onStop(),this.active=!1)}}function Gi(e){return e.value}function Zr(e){e._trackId++,e._depsLength=0}function es(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},mn=new WeakMap,at=Symbol(""),fr=Symbol("");function ve(e,t,n){if(Xe&&ct){let r=mn.get(e);r||mn.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=fo(()=>r.delete(n))),ao(ct,s)}}function De(e,t,n,r,s,o){const i=mn.get(e);if(!i)return;let l=[];if(t==="clear")l=[...i.values()];else if(n==="length"&&B(e)){const c=Number(r);i.forEach((a,f)=>{(f==="length"||!Ze(f)&&f>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(i.get(n)),t){case"add":B(e)?xr(n)&&l.push(i.get("length")):(l.push(i.get(at)),yt(e)&&l.push(i.get(fr)));break;case"delete":B(e)||(l.push(i.get(at)),yt(e)&&l.push(i.get(fr)));break;case"set":yt(e)&&l.push(i.get(at));break}Rr();for(const c of l)c&&uo(c,4);Or()}function zi(e,t){const n=mn.get(e);return n&&n.get(t)}const Xi=wr("__proto__,__v_isRef,__isVue"),ho=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ze)),ts=Yi();function Yi(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=J(this);for(let o=0,i=this.length;o{e[t]=function(...n){et(),Rr();const r=J(this)[t].apply(this,n);return Or(),tt(),r}}),e}function Ji(e){Ze(e)||(e=String(e));const t=J(this);return ve(t,"has",e),t.hasOwnProperty(e)}class po{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?ul:_o:o?yo:mo).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=B(t);if(!s){if(i&&Y(ts,n))return Reflect.get(ts,n,r);if(n==="hasOwnProperty")return Ji}const l=Reflect.get(t,n,r);return(Ze(n)?ho.has(n):Xi(n))||(s||ve(t,"get",n),o)?l:de(l)?i&&xr(n)?l:l.value:Z(l)?s?Ln(l):On(l):l}}class go extends po{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];if(!this._isShallow){const c=$t(o);if(!yn(r)&&!$t(r)&&(o=J(o),r=J(r)),!B(t)&&de(o)&&!de(r))return c?!1:(o.value=r,!0)}const i=B(t)&&xr(n)?Number(n)e,Rn=e=>Reflect.getPrototypeOf(e);function Yt(e,t,n=!1,r=!1){e=e.__v_raw;const s=J(e),o=J(t);n||(Je(t,o)&&ve(s,"get",t),ve(s,"get",o));const{has:i}=Rn(s),l=r?Lr:n?Pr:Ht;if(i.call(s,t))return l(e.get(t));if(i.call(s,o))return l(e.get(o));e!==s&&e.get(t)}function Jt(e,t=!1){const n=this.__v_raw,r=J(n),s=J(e);return t||(Je(e,s)&&ve(r,"has",e),ve(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function Qt(e,t=!1){return e=e.__v_raw,!t&&ve(J(e),"iterate",at),Reflect.get(e,"size",e)}function ns(e){e=J(e);const t=J(this);return Rn(t).has.call(t,e)||(t.add(e),De(t,"add",e,e)),this}function rs(e,t){t=J(t);const n=J(this),{has:r,get:s}=Rn(n);let o=r.call(n,e);o||(e=J(e),o=r.call(n,e));const i=s.call(n,e);return n.set(e,t),o?Je(t,i)&&De(n,"set",e,t):De(n,"add",e,t),this}function ss(e){const t=J(this),{has:n,get:r}=Rn(t);let s=n.call(t,e);s||(e=J(e),s=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return s&&De(t,"delete",e,void 0),o}function os(){const e=J(this),t=e.size!==0,n=e.clear();return t&&De(e,"clear",void 0,void 0),n}function Zt(e,t){return function(r,s){const o=this,i=o.__v_raw,l=J(i),c=t?Lr:e?Pr:Ht;return!e&&ve(l,"iterate",at),i.forEach((a,f)=>r.call(s,c(a),c(f),o))}}function en(e,t,n){return function(...r){const s=this.__v_raw,o=J(s),i=yt(o),l=e==="entries"||e===Symbol.iterator&&i,c=e==="keys"&&i,a=s[e](...r),f=n?Lr:t?Pr:Ht;return!t&&ve(o,"iterate",c?fr:at),{next(){const{value:h,done:m}=a.next();return m?{value:h,done:m}:{value:l?[f(h[0]),f(h[1])]:f(h),done:m}},[Symbol.iterator](){return this}}}}function Be(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function nl(){const e={get(o){return Yt(this,o)},get size(){return Qt(this)},has:Jt,add:ns,set:rs,delete:ss,clear:os,forEach:Zt(!1,!1)},t={get(o){return Yt(this,o,!1,!0)},get size(){return Qt(this)},has:Jt,add:ns,set:rs,delete:ss,clear:os,forEach:Zt(!1,!0)},n={get(o){return Yt(this,o,!0)},get size(){return Qt(this,!0)},has(o){return Jt.call(this,o,!0)},add:Be("add"),set:Be("set"),delete:Be("delete"),clear:Be("clear"),forEach:Zt(!0,!1)},r={get(o){return Yt(this,o,!0,!0)},get size(){return Qt(this,!0)},has(o){return Jt.call(this,o,!0)},add:Be("add"),set:Be("set"),delete:Be("delete"),clear:Be("clear"),forEach:Zt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=en(o,!1,!1),n[o]=en(o,!0,!1),t[o]=en(o,!1,!0),r[o]=en(o,!0,!0)}),[e,n,t,r]}const[rl,sl,ol,il]=nl();function Ir(e,t){const n=t?e?il:ol:e?sl:rl;return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(Y(n,s)&&s in r?n:r,s,o)}const ll={get:Ir(!1,!1)},cl={get:Ir(!1,!0)},al={get:Ir(!0,!1)};const mo=new WeakMap,yo=new WeakMap,_o=new WeakMap,ul=new WeakMap;function fl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function dl(e){return e.__v_skip||!Object.isExtensible(e)?0:fl(Pi(e))}function On(e){return $t(e)?e:Mr(e,!1,Zi,ll,mo)}function hl(e){return Mr(e,!1,tl,cl,yo)}function Ln(e){return Mr(e,!0,el,al,_o)}function Mr(e,t,n,r,s){if(!Z(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=s.get(e);if(o)return o;const i=dl(e);if(i===0)return e;const l=new Proxy(e,i===2?r:n);return s.set(e,l),l}function Rt(e){return $t(e)?Rt(e.__v_raw):!!(e&&e.__v_isReactive)}function $t(e){return!!(e&&e.__v_isReadonly)}function yn(e){return!!(e&&e.__v_isShallow)}function vo(e){return e?!!e.__v_raw:!1}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function dn(e){return Object.isExtensible(e)&&to(e,"__v_skip",!0),e}const Ht=e=>Z(e)?On(e):e,Pr=e=>Z(e)?Ln(e):e;class bo{constructor(t,n,r,s){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new Ar(()=>t(this._value),()=>Ot(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=J(this);return(!t._cacheable||t.effect.dirty)&&Je(t._value,t._value=t.effect.run())&&Ot(t,4),Nr(t),t.effect._dirtyLevel>=2&&Ot(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function pl(e,t,n=!1){let r,s;const o=K(e);return o?(r=e,s=xe):(r=e.get,s=e.set),new bo(r,s,o||!s,n)}function Nr(e){var t;Xe&&ct&&(e=J(e),ao(ct,(t=e.dep)!=null?t:e.dep=fo(()=>e.dep=void 0,e instanceof bo?e:void 0)))}function Ot(e,t=4,n,r){e=J(e);const s=e.dep;s&&uo(s,t)}function de(e){return!!(e&&e.__v_isRef===!0)}function se(e){return wo(e,!1)}function Fr(e){return wo(e,!0)}function wo(e,t){return de(e)?e:new gl(e,t)}class gl{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:Ht(t)}get value(){return Nr(this),this._value}set value(t){const n=this.__v_isShallow||yn(t)||$t(t);t=n?t:J(t),Je(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:Ht(t),Ot(this,4))}}function Eo(e){return de(e)?e.value:e}const ml={get:(e,t,n)=>Eo(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return de(s)&&!de(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Co(e){return Rt(e)?e:new Proxy(e,ml)}class yl{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>Nr(this),()=>Ot(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function _l(e){return new yl(e)}class vl{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return zi(J(this._object),this._key)}}class bl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function wl(e,t,n){return de(e)?e:K(e)?new bl(e):Z(e)&&arguments.length>1?El(e,t,n):se(e)}function El(e,t,n){const r=e[t];return de(r)?r:new vl(e,t,n)}/** +* @vue/runtime-core v3.4.31 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function Ye(e,t,n,r){try{return r?e(...r):e()}catch(s){Kt(s,t,n)}}function Se(e,t,n,r){if(K(e)){const s=Ye(e,t,n,r);return s&&Qs(s)&&s.catch(o=>{Kt(o,t,n)}),s}if(B(e)){const s=[];for(let o=0;o>>1,s=pe[r],o=Vt(s);oPe&&pe.splice(t,1)}function Tl(e){B(e)?vt.push(...e):(!We||!We.includes(e,e.allowRecurse?it+1:it))&&vt.push(e),So()}function is(e,t,n=jt?Pe+1:0){for(;nVt(n)-Vt(r));if(vt.length=0,We){We.push(...t);return}for(We=t,it=0;ite.id==null?1/0:e.id,Al=(e,t)=>{const n=Vt(e)-Vt(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function To(e){dr=!1,jt=!0,pe.sort(Al);try{for(Pe=0;Peoe(_)?_.trim():_)),h&&(s=n.map(cr))}let l,c=r[l=un(t)]||r[l=un($e(t))];!c&&o&&(c=r[l=un(ft(t))]),c&&Se(c,e,6,s);const a=r[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,Se(a,e,6,s)}}function Ao(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},l=!1;if(!K(e)){const c=a=>{const f=Ao(a,t,!0);f&&(l=!0,le(i,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!o&&!l?(Z(e)&&r.set(e,null),null):(B(o)?o.forEach(c=>i[c]=null):le(i,o),Z(e)&&r.set(e,i),i)}function Pn(e,t){return!e||!kt(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,ft(t))||Y(e,t))}let fe=null,Nn=null;function vn(e){const t=fe;return fe=e,Nn=e&&e.type.__scopeId||null,t}function su(e){Nn=e}function ou(){Nn=null}function Ol(e,t=fe,n){if(!t||e._n)return e;const r=(...s)=>{r._d&&Es(-1);const o=vn(t);let i;try{i=e(...s)}finally{vn(o),r._d&&Es(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Kn(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:l,emit:c,render:a,renderCache:f,props:h,data:m,setupState:_,ctx:C,inheritAttrs:L}=e,k=vn(e);let W,V;try{if(n.shapeFlag&4){const y=s||r,M=y;W=Ae(a.call(M,y,f,h,_,m,C)),V=l}else{const y=t;W=Ae(y.length>1?y(h,{attrs:l,slots:i,emit:c}):y(h,null)),V=t.props?l:Ll(l)}}catch(y){Nt.length=0,Kt(y,e,1),W=ie(me)}let p=W;if(V&&L!==!1){const y=Object.keys(V),{shapeFlag:M}=p;y.length&&M&7&&(o&&y.some(Er)&&(V=Il(V,o)),p=Qe(p,V,!1,!0))}return n.dirs&&(p=Qe(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&(p.transition=n.transition),W=p,vn(k),W}const Ll=e=>{let t;for(const n in e)(n==="class"||n==="style"||kt(n))&&((t||(t={}))[n]=e[n]);return t},Il=(e,t)=>{const n={};for(const r in e)(!Er(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Ml(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:l,patchFlag:c}=t,a=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return r?ls(r,i,a):!!i;if(c&8){const f=t.dynamicProps;for(let h=0;he.__isSuspense;function Lo(e,t){t&&t.pendingBranch?B(e)?t.effects.push(...e):t.effects.push(e):Tl(e)}function Fn(e,t,n=ue,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{et();const l=qt(n),c=Se(t,n,e,i);return l(),tt(),c});return r?s.unshift(o):s.push(o),o}}const Ue=e=>(t,n=ue)=>{(!Gt||e==="sp")&&Fn(e,(...r)=>t(...r),n)},Fl=Ue("bm"),xt=Ue("m"),$l=Ue("bu"),Hl=Ue("u"),Io=Ue("bum"),$n=Ue("um"),jl=Ue("sp"),Vl=Ue("rtg"),Dl=Ue("rtc");function Ul(e,t=ue){Fn("ec",e,t)}function cu(e,t){if(fe===null)return e;const n=Vn(fe),r=e.dirs||(e.dirs=[]);for(let s=0;st(i,l,void 0,o));else{const i=Object.keys(e);s=new Array(i.length);for(let l=0,c=i.length;l!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function uu(e){K(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,timeout:o,suspensible:i=!0,onError:l}=e;let c=null,a,f=0;const h=()=>(f++,c=null,m()),m=()=>{let _;return c||(_=c=t().catch(C=>{if(C=C instanceof Error?C:new Error(String(C)),l)return new Promise((L,k)=>{l(C,()=>L(h()),()=>k(C),f+1)});throw C}).then(C=>_!==c&&c?c:(C&&(C.__esModule||C[Symbol.toStringTag]==="Module")&&(C=C.default),a=C,C)))};return jr({name:"AsyncComponentWrapper",__asyncLoader:m,get __asyncResolved(){return a},setup(){const _=ue;if(a)return()=>Wn(a,_);const C=V=>{c=null,Kt(V,_,13,!r)};if(i&&_.suspense||Gt)return m().then(V=>()=>Wn(V,_)).catch(V=>(C(V),()=>r?ie(r,{error:V}):null));const L=se(!1),k=se(),W=se(!!s);return s&&setTimeout(()=>{W.value=!1},s),o!=null&&setTimeout(()=>{if(!L.value&&!k.value){const V=new Error(`Async component timed out after ${o}ms.`);C(V),k.value=V}},o),m().then(()=>{L.value=!0,_.parent&&Wt(_.parent.vnode)&&(_.parent.effect.dirty=!0,Mn(_.parent.update))}).catch(V=>{C(V),k.value=V}),()=>{if(L.value&&a)return Wn(a,_);if(k.value&&r)return ie(r,{error:k.value});if(n&&!W.value)return ie(n)}}})}function Wn(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=ie(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}function fu(e,t,n={},r,s){if(fe.isCE||fe.parent&&bt(fe.parent)&&fe.parent.isCE)return t!=="default"&&(n.name=t),ie("slot",n,r&&r());let o=e[t];o&&o._c&&(o._d=!1),Zo();const i=o&&Mo(o(n)),l=ti(_e,{key:n.key||i&&i.key||`_${t}`},i||(r?r():[]),i&&e._===1?64:-2);return!s&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),o&&o._c&&(o._d=!0),l}function Mo(e){return e.some(t=>Cn(t)?!(t.type===me||t.type===_e&&!Mo(t.children)):!0)?e:null}function du(e,t){const n={};for(const r in e)n[/[A-Z]/.test(r)?`on:${r}`:un(r)]=e[r];return n}const hr=e=>e?oi(e)?Vn(e):hr(e.parent):null,Lt=le(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>hr(e.parent),$root:e=>hr(e.root),$emit:e=>e.emit,$options:e=>Vr(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Mn(e.update)}),$nextTick:e=>e.n||(e.n=In.bind(e.proxy)),$watch:e=>fc.bind(e)}),qn=(e,t)=>e!==te&&!e.__isScriptSetup&&Y(e,t),Bl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const _=i[t];if(_!==void 0)switch(_){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(qn(r,t))return i[t]=1,r[t];if(s!==te&&Y(s,t))return i[t]=2,s[t];if((a=e.propsOptions[0])&&Y(a,t))return i[t]=3,o[t];if(n!==te&&Y(n,t))return i[t]=4,n[t];pr&&(i[t]=0)}}const f=Lt[t];let h,m;if(f)return t==="$attrs"&&ve(e.attrs,"get",""),f(e);if((h=l.__cssModules)&&(h=h[t]))return h;if(n!==te&&Y(n,t))return i[t]=4,n[t];if(m=c.config.globalProperties,Y(m,t))return m[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return qn(s,t)?(s[t]=n,!0):r!==te&&Y(r,t)?(r[t]=n,!0):Y(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o}},i){let l;return!!n[i]||e!==te&&Y(e,i)||qn(t,i)||(l=o[0])&&Y(l,i)||Y(r,i)||Y(Lt,i)||Y(s.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Y(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function hu(){return kl().slots}function kl(){const e=jn();return e.setupContext||(e.setupContext=li(e))}function as(e){return B(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let pr=!0;function Kl(e){const t=Vr(e),n=e.proxy,r=e.ctx;pr=!1,t.beforeCreate&&us(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:l,provide:c,inject:a,created:f,beforeMount:h,mounted:m,beforeUpdate:_,updated:C,activated:L,deactivated:k,beforeDestroy:W,beforeUnmount:V,destroyed:p,unmounted:y,render:M,renderTracked:A,renderTriggered:F,errorCaptured:$,serverPrefetch:I,expose:w,inheritAttrs:N,components:T,directives:G,filters:ne}=t;if(a&&Wl(a,r,null),i)for(const X in i){const j=i[X];K(j)&&(r[X]=j.bind(n))}if(s){const X=s.call(n,n);Z(X)&&(e.data=On(X))}if(pr=!0,o)for(const X in o){const j=o[X],He=K(j)?j.bind(n,n):K(j.get)?j.get.bind(n,n):xe,zt=!K(j)&&K(j.set)?j.set.bind(n):xe,nt=re({get:He,set:zt});Object.defineProperty(r,X,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Le=>nt.value=Le})}if(l)for(const X in l)Po(l[X],r,n,X);if(c){const X=K(c)?c.call(n):c;Reflect.ownKeys(X).forEach(j=>{Jl(j,X[j])})}f&&us(f,e,"c");function D(X,j){B(j)?j.forEach(He=>X(He.bind(n))):j&&X(j.bind(n))}if(D(Fl,h),D(xt,m),D($l,_),D(Hl,C),D(dc,L),D(hc,k),D(Ul,$),D(Dl,A),D(Vl,F),D(Io,V),D($n,y),D(jl,I),B(w))if(w.length){const X=e.exposed||(e.exposed={});w.forEach(j=>{Object.defineProperty(X,j,{get:()=>n[j],set:He=>n[j]=He})})}else e.exposed||(e.exposed={});M&&e.render===xe&&(e.render=M),N!=null&&(e.inheritAttrs=N),T&&(e.components=T),G&&(e.directives=G)}function Wl(e,t,n=xe){B(e)&&(e=gr(e));for(const r in e){const s=e[r];let o;Z(s)?"default"in s?o=wt(s.from||r,s.default,!0):o=wt(s.from||r):o=wt(s),de(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function us(e,t,n){Se(B(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Po(e,t,n,r){const s=r.includes(".")?qo(n,r):()=>n[r];if(oe(e)){const o=t[e];K(o)&&Ne(s,o)}else if(K(e))Ne(s,e.bind(n));else if(Z(e))if(B(e))e.forEach(o=>Po(o,t,n,r));else{const o=K(e.handler)?e.handler.bind(n):t[e.handler];K(o)&&Ne(s,o,e)}}function Vr(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,l=o.get(t);let c;return l?c=l:!s.length&&!n&&!r?c=t:(c={},s.length&&s.forEach(a=>bn(c,a,i,!0)),bn(c,t,i)),Z(t)&&o.set(t,c),c}function bn(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&bn(e,o,n,!0),s&&s.forEach(i=>bn(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const l=ql[i]||n&&n[i];e[i]=l?l(e[i],t[i]):t[i]}return e}const ql={data:fs,props:ds,emits:ds,methods:At,computed:At,beforeCreate:ge,created:ge,beforeMount:ge,mounted:ge,beforeUpdate:ge,updated:ge,beforeDestroy:ge,beforeUnmount:ge,destroyed:ge,unmounted:ge,activated:ge,deactivated:ge,errorCaptured:ge,serverPrefetch:ge,components:At,directives:At,watch:zl,provide:fs,inject:Gl};function fs(e,t){return t?e?function(){return le(K(e)?e.call(this,this):e,K(t)?t.call(this,this):t)}:t:e}function Gl(e,t){return At(gr(e),gr(t))}function gr(e){if(B(e)){const t={};for(let n=0;n1)return n&&K(t)?t.call(r&&r.proxy):t}}const Fo={},$o=()=>Object.create(Fo),Ho=e=>Object.getPrototypeOf(e)===Fo;function Ql(e,t,n,r=!1){const s={},o=$o();e.propsDefaults=Object.create(null),jo(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:hl(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Zl(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,l=J(s),[c]=e.propsOptions;let a=!1;if((r||i>0)&&!(i&16)){if(i&8){const f=e.vnode.dynamicProps;for(let h=0;h{c=!0;const[m,_]=Vo(h,t,!0);le(i,m),_&&l.push(..._)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!o&&!c)return Z(e)&&r.set(e,mt),mt;if(B(o))for(let f=0;f-1,_[1]=L<0||C-1||Y(_,"default"))&&l.push(h)}}}const a=[i,l];return Z(e)&&r.set(e,a),a}function hs(e){return e[0]!=="$"&&!_t(e)}function ps(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function gs(e,t){return ps(e)===ps(t)}function ms(e,t){return B(t)?t.findIndex(n=>gs(n,e)):K(t)&&gs(t,e)?0:-1}const Do=e=>e[0]==="_"||e==="$stable",Dr=e=>B(e)?e.map(Ae):[Ae(e)],ec=(e,t,n)=>{if(t._n)return t;const r=Ol((...s)=>Dr(t(...s)),n);return r._c=!1,r},Uo=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Do(s))continue;const o=e[s];if(K(o))t[s]=ec(s,o,r);else if(o!=null){const i=Dr(o);t[s]=()=>i}}},Bo=(e,t)=>{const n=Dr(t);e.slots.default=()=>n},tc=(e,t)=>{const n=e.slots=$o();if(e.vnode.shapeFlag&32){const r=t._;r?(le(n,t),to(n,"_",r,!0)):Uo(t,n)}else t&&Bo(e,t)},nc=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=te;if(r.shapeFlag&32){const l=t._;l?n&&l===1?o=!1:(le(s,t),!n&&l===1&&delete s._):(o=!t.$stable,Uo(t,s)),i=t}else t&&(Bo(e,t),i={default:1});if(o)for(const l in s)!Do(l)&&i[l]==null&&delete s[l]};function wn(e,t,n,r,s=!1){if(B(e)){e.forEach((m,_)=>wn(m,t&&(B(t)?t[_]:t),n,r,s));return}if(bt(r)&&!s)return;const o=r.shapeFlag&4?Vn(r.component):r.el,i=s?null:o,{i:l,r:c}=e,a=t&&t.r,f=l.refs===te?l.refs={}:l.refs,h=l.setupState;if(a!=null&&a!==c&&(oe(a)?(f[a]=null,Y(h,a)&&(h[a]=null)):de(a)&&(a.value=null)),K(c))Ye(c,l,12,[i,f]);else{const m=oe(c),_=de(c);if(m||_){const C=()=>{if(e.f){const L=m?Y(h,c)?h[c]:f[c]:c.value;s?B(L)&&Cr(L,o):B(L)?L.includes(o)||L.push(o):m?(f[c]=[o],Y(h,c)&&(h[c]=f[c])):(c.value=[o],e.k&&(f[e.k]=c.value))}else m?(f[c]=i,Y(h,c)&&(h[c]=i)):_&&(c.value=i,e.k&&(f[e.k]=i))};i?(C.id=-1,ye(C,n)):C()}}}let ys=!1;const pt=()=>{ys||(console.error("Hydration completed but contains mismatches."),ys=!0)},rc=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",sc=e=>e.namespaceURI.includes("MathML"),tn=e=>{if(rc(e))return"svg";if(sc(e))return"mathml"},nn=e=>e.nodeType===8;function oc(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:l,insert:c,createComment:a}}=e,f=(p,y)=>{if(!y.hasChildNodes()){n(null,p,y),_n(),y._vnode=p;return}h(y.firstChild,p,null,null,null),_n(),y._vnode=p},h=(p,y,M,A,F,$=!1)=>{$=$||!!y.dynamicChildren;const I=nn(p)&&p.data==="[",w=()=>L(p,y,M,A,F,I),{type:N,ref:T,shapeFlag:G,patchFlag:ne}=y;let ce=p.nodeType;y.el=p,ne===-2&&($=!1,y.dynamicChildren=null);let D=null;switch(N){case Et:ce!==3?y.children===""?(c(y.el=s(""),i(p),p),D=p):D=w():(p.data!==y.children&&(pt(),p.data=y.children),D=o(p));break;case me:V(p)?(D=o(p),W(y.el=p.content.firstChild,p,M)):ce!==8||I?D=w():D=o(p);break;case Pt:if(I&&(p=o(p),ce=p.nodeType),ce===1||ce===3){D=p;const X=!y.children.length;for(let j=0;j{$=$||!!y.dynamicChildren;const{type:I,props:w,patchFlag:N,shapeFlag:T,dirs:G,transition:ne}=y,ce=I==="input"||I==="option";if(ce||N!==-1){G&&Me(y,null,M,"created");let D=!1;if(V(p)){D=Ko(A,ne)&&M&&M.vnode.props&&M.vnode.props.appear;const j=p.content.firstChild;D&&ne.beforeEnter(j),W(j,p,M),y.el=p=j}if(T&16&&!(w&&(w.innerHTML||w.textContent))){let j=_(p.firstChild,y,p,M,A,F,$);for(;j;){pt();const He=j;j=j.nextSibling,l(He)}}else T&8&&p.textContent!==y.children&&(pt(),p.textContent=y.children);if(w)if(ce||!$||N&48)for(const j in w)(ce&&(j.endsWith("value")||j==="indeterminate")||kt(j)&&!_t(j)||j[0]===".")&&r(p,j,null,w[j],void 0,void 0,M);else w.onClick&&r(p,"onClick",null,w.onClick,void 0,void 0,M);let X;(X=w&&w.onVnodeBeforeMount)&&Ce(X,M,y),G&&Me(y,null,M,"beforeMount"),((X=w&&w.onVnodeMounted)||G||D)&&Lo(()=>{X&&Ce(X,M,y),D&&ne.enter(p),G&&Me(y,null,M,"mounted")},A)}return p.nextSibling},_=(p,y,M,A,F,$,I)=>{I=I||!!y.dynamicChildren;const w=y.children,N=w.length;for(let T=0;T{const{slotScopeIds:I}=y;I&&(F=F?F.concat(I):I);const w=i(p),N=_(o(p),y,w,M,A,F,$);return N&&nn(N)&&N.data==="]"?o(y.anchor=N):(pt(),c(y.anchor=a("]"),w,N),N)},L=(p,y,M,A,F,$)=>{if(pt(),y.el=null,$){const N=k(p);for(;;){const T=o(p);if(T&&T!==N)l(T);else break}}const I=o(p),w=i(p);return l(p),n(null,y,w,I,M,A,tn(w),F),I},k=(p,y="[",M="]")=>{let A=0;for(;p;)if(p=o(p),p&&nn(p)&&(p.data===y&&A++,p.data===M)){if(A===0)return o(p);A--}return p},W=(p,y,M)=>{const A=y.parentNode;A&&A.replaceChild(p,y);let F=M;for(;F;)F.vnode.el===y&&(F.vnode.el=F.subTree.el=p),F=F.parent},V=p=>p.nodeType===1&&p.tagName.toLowerCase()==="template";return[f,h]}const ye=Lo;function ic(e){return ko(e)}function lc(e){return ko(e,oc)}function ko(e,t){const n=no();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:l,createComment:c,setText:a,setElementText:f,parentNode:h,nextSibling:m,setScopeId:_=xe,insertStaticContent:C}=e,L=(u,d,g,v=null,b=null,S=null,O=void 0,x=null,R=!!d.dynamicChildren)=>{if(u===d)return;u&&!lt(u,d)&&(v=Xt(u),Le(u,b,S,!0),u=null),d.patchFlag===-2&&(R=!1,d.dynamicChildren=null);const{type:E,ref:P,shapeFlag:U}=d;switch(E){case Et:k(u,d,g,v);break;case me:W(u,d,g,v);break;case Pt:u==null&&V(d,g,v,O);break;case _e:T(u,d,g,v,b,S,O,x,R);break;default:U&1?M(u,d,g,v,b,S,O,x,R):U&6?G(u,d,g,v,b,S,O,x,R):(U&64||U&128)&&E.process(u,d,g,v,b,S,O,x,R,dt)}P!=null&&b&&wn(P,u&&u.ref,S,d||u,!d)},k=(u,d,g,v)=>{if(u==null)r(d.el=l(d.children),g,v);else{const b=d.el=u.el;d.children!==u.children&&a(b,d.children)}},W=(u,d,g,v)=>{u==null?r(d.el=c(d.children||""),g,v):d.el=u.el},V=(u,d,g,v)=>{[u.el,u.anchor]=C(u.children,d,g,v,u.el,u.anchor)},p=({el:u,anchor:d},g,v)=>{let b;for(;u&&u!==d;)b=m(u),r(u,g,v),u=b;r(d,g,v)},y=({el:u,anchor:d})=>{let g;for(;u&&u!==d;)g=m(u),s(u),u=g;s(d)},M=(u,d,g,v,b,S,O,x,R)=>{d.type==="svg"?O="svg":d.type==="math"&&(O="mathml"),u==null?A(d,g,v,b,S,O,x,R):I(u,d,b,S,O,x,R)},A=(u,d,g,v,b,S,O,x)=>{let R,E;const{props:P,shapeFlag:U,transition:H,dirs:q}=u;if(R=u.el=i(u.type,S,P&&P.is,P),U&8?f(R,u.children):U&16&&$(u.children,R,null,v,b,Gn(u,S),O,x),q&&Me(u,null,v,"created"),F(R,u,u.scopeId,O,v),P){for(const ee in P)ee!=="value"&&!_t(ee)&&o(R,ee,null,P[ee],S,u.children,v,b,je);"value"in P&&o(R,"value",null,P.value,S),(E=P.onVnodeBeforeMount)&&Ce(E,v,u)}q&&Me(u,null,v,"beforeMount");const z=Ko(b,H);z&&H.beforeEnter(R),r(R,d,g),((E=P&&P.onVnodeMounted)||z||q)&&ye(()=>{E&&Ce(E,v,u),z&&H.enter(R),q&&Me(u,null,v,"mounted")},b)},F=(u,d,g,v,b)=>{if(g&&_(u,g),v)for(let S=0;S{for(let E=R;E{const x=d.el=u.el;let{patchFlag:R,dynamicChildren:E,dirs:P}=d;R|=u.patchFlag&16;const U=u.props||te,H=d.props||te;let q;if(g&&rt(g,!1),(q=H.onVnodeBeforeUpdate)&&Ce(q,g,d,u),P&&Me(d,u,g,"beforeUpdate"),g&&rt(g,!0),E?w(u.dynamicChildren,E,x,g,v,Gn(d,b),S):O||j(u,d,x,null,g,v,Gn(d,b),S,!1),R>0){if(R&16)N(x,d,U,H,g,v,b);else if(R&2&&U.class!==H.class&&o(x,"class",null,H.class,b),R&4&&o(x,"style",U.style,H.style,b),R&8){const z=d.dynamicProps;for(let ee=0;ee{q&&Ce(q,g,d,u),P&&Me(d,u,g,"updated")},v)},w=(u,d,g,v,b,S,O)=>{for(let x=0;x{if(g!==v){if(g!==te)for(const x in g)!_t(x)&&!(x in v)&&o(u,x,g[x],null,O,d.children,b,S,je);for(const x in v){if(_t(x))continue;const R=v[x],E=g[x];R!==E&&x!=="value"&&o(u,x,E,R,O,d.children,b,S,je)}"value"in v&&o(u,"value",g.value,v.value,O)}},T=(u,d,g,v,b,S,O,x,R)=>{const E=d.el=u?u.el:l(""),P=d.anchor=u?u.anchor:l("");let{patchFlag:U,dynamicChildren:H,slotScopeIds:q}=d;q&&(x=x?x.concat(q):q),u==null?(r(E,g,v),r(P,g,v),$(d.children||[],g,P,b,S,O,x,R)):U>0&&U&64&&H&&u.dynamicChildren?(w(u.dynamicChildren,H,g,b,S,O,x),(d.key!=null||b&&d===b.subTree)&&Ur(u,d,!0)):j(u,d,g,P,b,S,O,x,R)},G=(u,d,g,v,b,S,O,x,R)=>{d.slotScopeIds=x,u==null?d.shapeFlag&512?b.ctx.activate(d,g,v,O,R):ne(d,g,v,b,S,O,R):ce(u,d,R)},ne=(u,d,g,v,b,S,O)=>{const x=u.component=Ac(u,v,b);if(Wt(u)&&(x.ctx.renderer=dt),Rc(x),x.asyncDep){if(b&&b.registerDep(x,D,O),!u.el){const R=x.subTree=ie(me);W(null,R,d,g)}}else D(x,u,d,g,b,S,O)},ce=(u,d,g)=>{const v=d.component=u.component;if(Ml(u,d,g))if(v.asyncDep&&!v.asyncResolved){X(v,d,g);return}else v.next=d,Sl(v.update),v.effect.dirty=!0,v.update();else d.el=u.el,v.vnode=d},D=(u,d,g,v,b,S,O)=>{const x=()=>{if(u.isMounted){let{next:P,bu:U,u:H,parent:q,vnode:z}=u;{const ht=Wo(u);if(ht){P&&(P.el=z.el,X(u,P,O)),ht.asyncDep.then(()=>{u.isUnmounted||x()});return}}let ee=P,Q;rt(u,!1),P?(P.el=z.el,X(u,P,O)):P=z,U&&fn(U),(Q=P.props&&P.props.onVnodeBeforeUpdate)&&Ce(Q,q,P,z),rt(u,!0);const ae=Kn(u),Te=u.subTree;u.subTree=ae,L(Te,ae,h(Te.el),Xt(Te),u,b,S),P.el=ae.el,ee===null&&Pl(u,ae.el),H&&ye(H,b),(Q=P.props&&P.props.onVnodeUpdated)&&ye(()=>Ce(Q,q,P,z),b)}else{let P;const{el:U,props:H}=d,{bm:q,m:z,parent:ee}=u,Q=bt(d);if(rt(u,!1),q&&fn(q),!Q&&(P=H&&H.onVnodeBeforeMount)&&Ce(P,ee,d),rt(u,!0),U&&Bn){const ae=()=>{u.subTree=Kn(u),Bn(U,u.subTree,u,b,null)};Q?d.type.__asyncLoader().then(()=>!u.isUnmounted&&ae()):ae()}else{const ae=u.subTree=Kn(u);L(null,ae,g,v,u,b,S),d.el=ae.el}if(z&&ye(z,b),!Q&&(P=H&&H.onVnodeMounted)){const ae=d;ye(()=>Ce(P,ee,ae),b)}(d.shapeFlag&256||ee&&bt(ee.vnode)&&ee.vnode.shapeFlag&256)&&u.a&&ye(u.a,b),u.isMounted=!0,d=g=v=null}},R=u.effect=new Ar(x,xe,()=>Mn(E),u.scope),E=u.update=()=>{R.dirty&&R.run()};E.id=u.uid,rt(u,!0),E()},X=(u,d,g)=>{d.component=u;const v=u.vnode.props;u.vnode=d,u.next=null,Zl(u,d.props,v,g),nc(u,d.children,g),et(),is(u),tt()},j=(u,d,g,v,b,S,O,x,R=!1)=>{const E=u&&u.children,P=u?u.shapeFlag:0,U=d.children,{patchFlag:H,shapeFlag:q}=d;if(H>0){if(H&128){zt(E,U,g,v,b,S,O,x,R);return}else if(H&256){He(E,U,g,v,b,S,O,x,R);return}}q&8?(P&16&&je(E,b,S),U!==E&&f(g,U)):P&16?q&16?zt(E,U,g,v,b,S,O,x,R):je(E,b,S,!0):(P&8&&f(g,""),q&16&&$(U,g,v,b,S,O,x,R))},He=(u,d,g,v,b,S,O,x,R)=>{u=u||mt,d=d||mt;const E=u.length,P=d.length,U=Math.min(E,P);let H;for(H=0;HP?je(u,b,S,!0,!1,U):$(d,g,v,b,S,O,x,R,U)},zt=(u,d,g,v,b,S,O,x,R)=>{let E=0;const P=d.length;let U=u.length-1,H=P-1;for(;E<=U&&E<=H;){const q=u[E],z=d[E]=R?Ge(d[E]):Ae(d[E]);if(lt(q,z))L(q,z,g,null,b,S,O,x,R);else break;E++}for(;E<=U&&E<=H;){const q=u[U],z=d[H]=R?Ge(d[H]):Ae(d[H]);if(lt(q,z))L(q,z,g,null,b,S,O,x,R);else break;U--,H--}if(E>U){if(E<=H){const q=H+1,z=qH)for(;E<=U;)Le(u[E],b,S,!0),E++;else{const q=E,z=E,ee=new Map;for(E=z;E<=H;E++){const be=d[E]=R?Ge(d[E]):Ae(d[E]);be.key!=null&&ee.set(be.key,E)}let Q,ae=0;const Te=H-z+1;let ht=!1,Xr=0;const St=new Array(Te);for(E=0;E=Te){Le(be,b,S,!0);continue}let Ie;if(be.key!=null)Ie=ee.get(be.key);else for(Q=z;Q<=H;Q++)if(St[Q-z]===0&<(be,d[Q])){Ie=Q;break}Ie===void 0?Le(be,b,S,!0):(St[Ie-z]=E+1,Ie>=Xr?Xr=Ie:ht=!0,L(be,d[Ie],g,null,b,S,O,x,R),ae++)}const Yr=ht?cc(St):mt;for(Q=Yr.length-1,E=Te-1;E>=0;E--){const be=z+E,Ie=d[be],Jr=be+1{const{el:S,type:O,transition:x,children:R,shapeFlag:E}=u;if(E&6){nt(u.component.subTree,d,g,v);return}if(E&128){u.suspense.move(d,g,v);return}if(E&64){O.move(u,d,g,dt);return}if(O===_e){r(S,d,g);for(let U=0;Ux.enter(S),b);else{const{leave:U,delayLeave:H,afterLeave:q}=x,z=()=>r(S,d,g),ee=()=>{U(S,()=>{z(),q&&q()})};H?H(S,z,ee):ee()}else r(S,d,g)},Le=(u,d,g,v=!1,b=!1)=>{const{type:S,props:O,ref:x,children:R,dynamicChildren:E,shapeFlag:P,patchFlag:U,dirs:H,memoIndex:q}=u;if(U===-2&&(b=!1),x!=null&&wn(x,null,g,u,!0),q!=null&&(d.renderCache[q]=void 0),P&256){d.ctx.deactivate(u);return}const z=P&1&&H,ee=!bt(u);let Q;if(ee&&(Q=O&&O.onVnodeBeforeUnmount)&&Ce(Q,d,u),P&6)Li(u.component,g,v);else{if(P&128){u.suspense.unmount(g,v);return}z&&Me(u,null,d,"beforeUnmount"),P&64?u.type.remove(u,d,g,dt,v):E&&(S!==_e||U>0&&U&64)?je(E,d,g,!1,!0):(S===_e&&U&384||!b&&P&16)&&je(R,d,g),v&&Gr(u)}(ee&&(Q=O&&O.onVnodeUnmounted)||z)&&ye(()=>{Q&&Ce(Q,d,u),z&&Me(u,null,d,"unmounted")},g)},Gr=u=>{const{type:d,el:g,anchor:v,transition:b}=u;if(d===_e){Oi(g,v);return}if(d===Pt){y(u);return}const S=()=>{s(g),b&&!b.persisted&&b.afterLeave&&b.afterLeave()};if(u.shapeFlag&1&&b&&!b.persisted){const{leave:O,delayLeave:x}=b,R=()=>O(g,S);x?x(u.el,S,R):R()}else S()},Oi=(u,d)=>{let g;for(;u!==d;)g=m(u),s(u),u=g;s(d)},Li=(u,d,g)=>{const{bum:v,scope:b,update:S,subTree:O,um:x,m:R,a:E}=u;_s(R),_s(E),v&&fn(v),b.stop(),S&&(S.active=!1,Le(O,u,d,g)),x&&ye(x,d),ye(()=>{u.isUnmounted=!0},d),d&&d.pendingBranch&&!d.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===d.pendingId&&(d.deps--,d.deps===0&&d.resolve())},je=(u,d,g,v=!1,b=!1,S=0)=>{for(let O=S;Ou.shapeFlag&6?Xt(u.component.subTree):u.shapeFlag&128?u.suspense.next():m(u.anchor||u.el);let Dn=!1;const zr=(u,d,g)=>{u==null?d._vnode&&Le(d._vnode,null,null,!0):L(d._vnode||null,u,d,null,null,null,g),Dn||(Dn=!0,is(),_n(),Dn=!1),d._vnode=u},dt={p:L,um:Le,m:nt,r:Gr,mt:ne,mc:$,pc:j,pbc:w,n:Xt,o:e};let Un,Bn;return t&&([Un,Bn]=t(dt)),{render:zr,hydrate:Un,createApp:Yl(zr,Un)}}function Gn({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Ko(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ur(e,t,n=!1){const r=e.children,s=t.children;if(B(r)&&B(s))for(let o=0;o>1,e[n[l]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Wo(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Wo(t)}function _s(e){if(e)for(let t=0;twt(ac);function Br(e,t){return Hn(e,null,t)}function pu(e,t){return Hn(e,null,{flush:"post"})}const rn={};function Ne(e,t,n){return Hn(e,t,n)}function Hn(e,t,{immediate:n,deep:r,flush:s,once:o,onTrack:i,onTrigger:l}=te){if(t&&o){const A=t;t=(...F)=>{A(...F),M()}}const c=ue,a=A=>r===!0?A:ze(A,r===!1?1:void 0);let f,h=!1,m=!1;if(de(e)?(f=()=>e.value,h=yn(e)):Rt(e)?(f=()=>a(e),h=!0):B(e)?(m=!0,h=e.some(A=>Rt(A)||yn(A)),f=()=>e.map(A=>{if(de(A))return A.value;if(Rt(A))return a(A);if(K(A))return Ye(A,c,2)})):K(e)?t?f=()=>Ye(e,c,2):f=()=>(_&&_(),Se(e,c,3,[C])):f=xe,t&&r){const A=f;f=()=>ze(A())}let _,C=A=>{_=p.onStop=()=>{Ye(A,c,4),_=p.onStop=void 0}},L;if(Gt)if(C=xe,t?n&&Se(t,c,3,[f(),m?[]:void 0,C]):f(),s==="sync"){const A=uc();L=A.__watcherHandles||(A.__watcherHandles=[])}else return xe;let k=m?new Array(e.length).fill(rn):rn;const W=()=>{if(!(!p.active||!p.dirty))if(t){const A=p.run();(r||h||(m?A.some((F,$)=>Je(F,k[$])):Je(A,k)))&&(_&&_(),Se(t,c,3,[A,k===rn?void 0:m&&k[0]===rn?[]:k,C]),k=A)}else p.run()};W.allowRecurse=!!t;let V;s==="sync"?V=W:s==="post"?V=()=>ye(W,c&&c.suspense):(W.pre=!0,c&&(W.id=c.uid),V=()=>Mn(W));const p=new Ar(f,xe,V),y=io(),M=()=>{p.stop(),y&&Cr(y.effects,p)};return t?n?W():k=p.run():s==="post"?ye(p.run.bind(p),c&&c.suspense):p.run(),L&&L.push(M),M}function fc(e,t,n){const r=this.proxy,s=oe(e)?e.includes(".")?qo(r,e):()=>r[e]:e.bind(r,r);let o;K(t)?o=t:(o=t.handler,n=t);const i=qt(this),l=Hn(s,o.bind(r),n);return i(),l}function qo(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{ze(r,t,n)});else if(eo(e)){for(const r in e)ze(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&ze(e[r],t,n)}return e}const Wt=e=>e.type.__isKeepAlive;function dc(e,t){Go(e,"a",t)}function hc(e,t){Go(e,"da",t)}function Go(e,t,n=ue){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(Fn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Wt(s.parent.vnode)&&pc(r,t,n,s),s=s.parent}}function pc(e,t,n,r){const s=Fn(t,e,r,!0);$n(()=>{Cr(r[t],s)},n)}const qe=Symbol("_leaveCb"),sn=Symbol("_enterCb");function gc(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return xt(()=>{e.isMounted=!0}),Io(()=>{e.isUnmounting=!0}),e}const Ee=[Function,Array],zo={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ee,onEnter:Ee,onAfterEnter:Ee,onEnterCancelled:Ee,onBeforeLeave:Ee,onLeave:Ee,onAfterLeave:Ee,onLeaveCancelled:Ee,onBeforeAppear:Ee,onAppear:Ee,onAfterAppear:Ee,onAppearCancelled:Ee},Xo=e=>{const t=e.subTree;return t.component?Xo(t.component):t},mc={name:"BaseTransition",props:zo,setup(e,{slots:t}){const n=jn(),r=gc();return()=>{const s=t.default&&Jo(t.default(),!0);if(!s||!s.length)return;let o=s[0];if(s.length>1){for(const m of s)if(m.type!==me){o=m;break}}const i=J(e),{mode:l}=i;if(r.isLeaving)return zn(o);const c=vs(o);if(!c)return zn(o);let a=yr(c,i,r,n,m=>a=m);En(c,a);const f=n.subTree,h=f&&vs(f);if(h&&h.type!==me&&!lt(c,h)&&Xo(n).type!==me){const m=yr(h,i,r,n);if(En(h,m),l==="out-in"&&c.type!==me)return r.isLeaving=!0,m.afterLeave=()=>{r.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},zn(o);l==="in-out"&&c.type!==me&&(m.delayLeave=(_,C,L)=>{const k=Yo(r,h);k[String(h.key)]=h,_[qe]=()=>{C(),_[qe]=void 0,delete a.delayedLeave},a.delayedLeave=L})}return o}}},yc=mc;function Yo(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function yr(e,t,n,r,s){const{appear:o,mode:i,persisted:l=!1,onBeforeEnter:c,onEnter:a,onAfterEnter:f,onEnterCancelled:h,onBeforeLeave:m,onLeave:_,onAfterLeave:C,onLeaveCancelled:L,onBeforeAppear:k,onAppear:W,onAfterAppear:V,onAppearCancelled:p}=t,y=String(e.key),M=Yo(n,e),A=(I,w)=>{I&&Se(I,r,9,w)},F=(I,w)=>{const N=w[1];A(I,w),B(I)?I.every(T=>T.length<=1)&&N():I.length<=1&&N()},$={mode:i,persisted:l,beforeEnter(I){let w=c;if(!n.isMounted)if(o)w=k||c;else return;I[qe]&&I[qe](!0);const N=M[y];N&<(e,N)&&N.el[qe]&&N.el[qe](),A(w,[I])},enter(I){let w=a,N=f,T=h;if(!n.isMounted)if(o)w=W||a,N=V||f,T=p||h;else return;let G=!1;const ne=I[sn]=ce=>{G||(G=!0,ce?A(T,[I]):A(N,[I]),$.delayedLeave&&$.delayedLeave(),I[sn]=void 0)};w?F(w,[I,ne]):ne()},leave(I,w){const N=String(e.key);if(I[sn]&&I[sn](!0),n.isUnmounting)return w();A(m,[I]);let T=!1;const G=I[qe]=ne=>{T||(T=!0,w(),ne?A(L,[I]):A(C,[I]),I[qe]=void 0,M[N]===e&&delete M[N])};M[N]=e,_?F(_,[I,G]):G()},clone(I){const w=yr(I,t,n,r,s);return s&&s(w),w}};return $}function zn(e){if(Wt(e))return e=Qe(e),e.children=null,e}function vs(e){if(!Wt(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&K(n.default))return n.default()}}function En(e,t){e.shapeFlag&6&&e.component?En(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Jo(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oe.__isTeleport,Mt=e=>e&&(e.disabled||e.disabled===""),bs=e=>typeof SVGElement<"u"&&e instanceof SVGElement,ws=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,_r=(e,t)=>{const n=e&&e.to;return oe(n)?t?t(n):null:n},vc={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,l,c,a){const{mc:f,pc:h,pbc:m,o:{insert:_,querySelector:C,createText:L,createComment:k}}=a,W=Mt(t.props);let{shapeFlag:V,children:p,dynamicChildren:y}=t;if(e==null){const M=t.el=L(""),A=t.anchor=L("");_(M,n,r),_(A,n,r);const F=t.target=_r(t.props,C),$=t.targetAnchor=L("");F&&(_($,F),i==="svg"||bs(F)?i="svg":(i==="mathml"||ws(F))&&(i="mathml"));const I=(w,N)=>{V&16&&f(p,w,N,s,o,i,l,c)};W?I(n,A):F&&I(F,$)}else{t.el=e.el;const M=t.anchor=e.anchor,A=t.target=e.target,F=t.targetAnchor=e.targetAnchor,$=Mt(e.props),I=$?n:A,w=$?M:F;if(i==="svg"||bs(A)?i="svg":(i==="mathml"||ws(A))&&(i="mathml"),y?(m(e.dynamicChildren,y,I,s,o,i,l),Ur(e,t,!0)):c||h(e,t,I,w,s,o,i,l,!1),W)$?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):on(t,n,M,a,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const N=t.target=_r(t.props,C);N&&on(t,N,null,a,0)}else $&&on(t,A,F,a,1)}Qo(t)},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:l,anchor:c,targetAnchor:a,target:f,props:h}=e;if(f&&s(a),o&&s(c),i&16){const m=o||!Mt(h);for(let _=0;_0?Re||mt:null,wc(),Dt>0&&Re&&Re.push(e),e}function mu(e,t,n,r,s,o){return ei(ri(e,t,n,r,s,o,!0))}function ti(e,t,n,r,s){return ei(ie(e,t,n,r,s,!0))}function Cn(e){return e?e.__v_isVNode===!0:!1}function lt(e,t){return e.type===t.type&&e.key===t.key}const ni=({key:e})=>e??null,hn=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?oe(e)||de(e)||K(e)?{i:fe,r:e,k:t,f:!!n}:e:null);function ri(e,t=null,n=null,r=0,s=null,o=e===_e?0:1,i=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ni(t),ref:t&&hn(t),scopeId:Nn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:fe};return l?(kr(c,n),o&128&&e.normalize(c)):n&&(c.shapeFlag|=oe(n)?8:16),Dt>0&&!i&&Re&&(c.patchFlag>0||o&6)&&c.patchFlag!==32&&Re.push(c),c}const ie=Ec;function Ec(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===Ro)&&(e=me),Cn(e)){const l=Qe(e,t,!0);return n&&kr(l,n),Dt>0&&!o&&Re&&(l.shapeFlag&6?Re[Re.indexOf(e)]=l:Re.push(l)),l.patchFlag=-2,l}if(Mc(e)&&(e=e.__vccOpts),t){t=Cc(t);let{class:l,style:c}=t;l&&!oe(l)&&(t.class=Tr(l)),Z(c)&&(vo(c)&&!B(c)&&(c=le({},c)),t.style=Sr(c))}const i=oe(e)?1:Nl(e)?128:_c(e)?64:Z(e)?4:K(e)?2:0;return ri(e,t,n,r,s,i,o,!0)}function Cc(e){return e?vo(e)||Ho(e)?le({},e):e:null}function Qe(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:l,transition:c}=e,a=t?xc(s||{},t):s,f={__v_isVNode:!0,__v_skip:!0,type:e.type,props:a,key:a&&ni(a),ref:t&&t.ref?n&&o?B(o)?o.concat(hn(t)):[o,hn(t)]:hn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:l,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==_e?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:c,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Qe(e.ssContent),ssFallback:e.ssFallback&&Qe(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&En(f,c.clone(f)),f}function si(e=" ",t=0){return ie(Et,null,e,t)}function yu(e,t){const n=ie(Pt,null,e);return n.staticCount=t,n}function _u(e="",t=!1){return t?(Zo(),ti(me,null,e)):ie(me,null,e)}function Ae(e){return e==null||typeof e=="boolean"?ie(me):B(e)?ie(_e,null,e.slice()):typeof e=="object"?Ge(e):ie(Et,null,String(e))}function Ge(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Qe(e)}function kr(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(B(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),kr(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Ho(t)?t._ctx=fe:s===3&&fe&&(fe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else K(t)?(t={default:t,_ctx:fe},n=32):(t=String(t),r&64?(n=16,t=[si(t)]):n=8);e.children=t,e.shapeFlag|=n}function xc(...e){const t={};for(let n=0;nue||fe;let xn,vr;{const e=no(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};xn=t("__VUE_INSTANCE_SETTERS__",n=>ue=n),vr=t("__VUE_SSR_SETTERS__",n=>Gt=n)}const qt=e=>{const t=ue;return xn(e),e.scope.on(),()=>{e.scope.off(),xn(t)}},Cs=()=>{ue&&ue.scope.off(),xn(null)};function oi(e){return e.vnode.shapeFlag&4}let Gt=!1;function Rc(e,t=!1){t&&vr(t);const{props:n,children:r}=e.vnode,s=oi(e);Ql(e,n,s,t),tc(e,r);const o=s?Oc(e,t):void 0;return t&&vr(!1),o}function Oc(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Bl);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?li(e):null,o=qt(e);et();const i=Ye(r,e,0,[e.props,s]);if(tt(),o(),Qs(i)){if(i.then(Cs,Cs),t)return i.then(l=>{xs(e,l,t)}).catch(l=>{Kt(l,e,0)});e.asyncDep=i}else xs(e,i,t)}else ii(e,t)}function xs(e,t,n){K(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Z(t)&&(e.setupState=Co(t)),ii(e,n)}let Ss;function ii(e,t,n){const r=e.type;if(!e.render){if(!t&&Ss&&!r.render){const s=r.template||Vr(e).template;if(s){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:c}=r,a=le(le({isCustomElement:o,delimiters:l},i),c);r.render=Ss(s,a)}}e.render=r.render||xe}{const s=qt(e);et();try{Kl(e)}finally{tt(),s()}}}const Lc={get(e,t){return ve(e,"get",""),e[t]}};function li(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Lc),slots:e.slots,emit:e.emit,expose:t}}function Vn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Co(dn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Lt)return Lt[n](e)},has(t,n){return n in t||n in Lt}})):e.proxy}function Ic(e,t=!0){return K(e)?e.displayName||e.name:e.name||t&&e.__name}function Mc(e){return K(e)&&"__vccOpts"in e}const re=(e,t)=>pl(e,t,Gt);function br(e,t,n){const r=arguments.length;return r===2?Z(t)&&!B(t)?Cn(t)?ie(e,null,[t]):ie(e,t):ie(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Cn(n)&&(n=[n]),ie(e,t,n))}const Pc="3.4.31";/** +* @vue/runtime-dom v3.4.31 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const Nc="http://www.w3.org/2000/svg",Fc="http://www.w3.org/1998/Math/MathML",Ve=typeof document<"u"?document:null,Ts=Ve&&Ve.createElement("template"),$c={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?Ve.createElementNS(Nc,e):t==="mathml"?Ve.createElementNS(Fc,e):n?Ve.createElement(e,{is:n}):Ve.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Ve.createTextNode(e),createComment:e=>Ve.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ve.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Ts.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=Ts.content;if(r==="svg"||r==="mathml"){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ke="transition",Tt="animation",Ut=Symbol("_vtc"),ci=(e,{slots:t})=>br(yc,Hc(e),t);ci.displayName="Transition";const ai={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};ci.props=le({},zo,ai);const st=(e,t=[])=>{B(e)?e.forEach(n=>n(...t)):e&&e(...t)},As=e=>e?B(e)?e.some(t=>t.length>1):e.length>1:!1;function Hc(e){const t={};for(const T in e)T in ai||(t[T]=e[T]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=o,appearActiveClass:a=i,appearToClass:f=l,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:m=`${n}-leave-active`,leaveToClass:_=`${n}-leave-to`}=e,C=jc(s),L=C&&C[0],k=C&&C[1],{onBeforeEnter:W,onEnter:V,onEnterCancelled:p,onLeave:y,onLeaveCancelled:M,onBeforeAppear:A=W,onAppear:F=V,onAppearCancelled:$=p}=t,I=(T,G,ne)=>{ot(T,G?f:l),ot(T,G?a:i),ne&&ne()},w=(T,G)=>{T._isLeaving=!1,ot(T,h),ot(T,_),ot(T,m),G&&G()},N=T=>(G,ne)=>{const ce=T?F:V,D=()=>I(G,T,ne);st(ce,[G,D]),Rs(()=>{ot(G,T?c:o),Ke(G,T?f:l),As(ce)||Os(G,r,L,D)})};return le(t,{onBeforeEnter(T){st(W,[T]),Ke(T,o),Ke(T,i)},onBeforeAppear(T){st(A,[T]),Ke(T,c),Ke(T,a)},onEnter:N(!1),onAppear:N(!0),onLeave(T,G){T._isLeaving=!0;const ne=()=>w(T,G);Ke(T,h),Ke(T,m),Uc(),Rs(()=>{T._isLeaving&&(ot(T,h),Ke(T,_),As(y)||Os(T,r,k,ne))}),st(y,[T,ne])},onEnterCancelled(T){I(T,!1),st(p,[T])},onAppearCancelled(T){I(T,!0),st($,[T])},onLeaveCancelled(T){w(T),st(M,[T])}})}function jc(e){if(e==null)return null;if(Z(e))return[Xn(e.enter),Xn(e.leave)];{const t=Xn(e);return[t,t]}}function Xn(e){return $i(e)}function Ke(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Ut]||(e[Ut]=new Set)).add(t)}function ot(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Ut];n&&(n.delete(t),n.size||(e[Ut]=void 0))}function Rs(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Vc=0;function Os(e,t,n,r){const s=e._endId=++Vc,o=()=>{s===e._endId&&r()};if(n)return setTimeout(o,n);const{type:i,timeout:l,propCount:c}=Dc(e,t);if(!i)return r();const a=i+"end";let f=0;const h=()=>{e.removeEventListener(a,m),o()},m=_=>{_.target===e&&++f>=c&&h()};setTimeout(()=>{f(n[C]||"").split(", "),s=r(`${ke}Delay`),o=r(`${ke}Duration`),i=Ls(s,o),l=r(`${Tt}Delay`),c=r(`${Tt}Duration`),a=Ls(l,c);let f=null,h=0,m=0;t===ke?i>0&&(f=ke,h=i,m=o.length):t===Tt?a>0&&(f=Tt,h=a,m=c.length):(h=Math.max(i,a),f=h>0?i>a?ke:Tt:null,m=f?f===ke?o.length:c.length:0);const _=f===ke&&/\b(transform|all)(,|$)/.test(r(`${ke}Property`).toString());return{type:f,timeout:h,propCount:m,hasTransform:_}}function Ls(e,t){for(;e.lengthIs(n)+Is(e[r])))}function Is(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Uc(){return document.body.offsetHeight}function Bc(e,t,n){const r=e[Ut];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ms=Symbol("_vod"),kc=Symbol("_vsh"),Kc=Symbol(""),Wc=/(^|;)\s*display\s*:/;function qc(e,t,n){const r=e.style,s=oe(n);let o=!1;if(n&&!s){if(t)if(oe(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&pn(r,l,"")}else for(const i in t)n[i]==null&&pn(r,i,"");for(const i in n)i==="display"&&(o=!0),pn(r,i,n[i])}else if(s){if(t!==n){const i=r[Kc];i&&(n+=";"+i),r.cssText=n,o=Wc.test(n)}}else t&&e.removeAttribute("style");Ms in e&&(e[Ms]=o?r.display:"",e[kc]&&(r.display="none"))}const Ps=/\s*!important$/;function pn(e,t,n){if(B(n))n.forEach(r=>pn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Gc(e,t);Ps.test(n)?e.setProperty(ft(r),n.replace(Ps,""),"important"):e[r]=n}}const Ns=["Webkit","Moz","ms"],Yn={};function Gc(e,t){const n=Yn[t];if(n)return n;let r=$e(t);if(r!=="filter"&&r in e)return Yn[t]=r;r=An(r);for(let s=0;sJn||(Qc.then(()=>Jn=0),Jn=Date.now());function ea(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Se(ta(r,n.value),t,5,[r])};return n.value=e,n.attached=Zc(),n}function ta(e,t){if(B(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const Vs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,na=(e,t,n,r,s,o,i,l,c)=>{const a=s==="svg";t==="class"?Bc(e,r,a):t==="style"?qc(e,n,r):kt(t)?Er(t)||Yc(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ra(e,t,r,a))?(zc(e,t,r,o,i,l,c),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&$s(e,t,r,a,i,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),$s(e,t,r,a))};function ra(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Vs(t)&&K(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return Vs(t)&&oe(n)?!1:t in e}const Ds=e=>{const t=e.props["onUpdate:modelValue"]||!1;return B(t)?n=>fn(t,n):t};function sa(e){e.target.composing=!0}function Us(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Qn=Symbol("_assign"),vu={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Qn]=Ds(s);const o=r||s.props&&s.props.type==="number";gt(e,t?"change":"input",i=>{if(i.target.composing)return;let l=e.value;n&&(l=l.trim()),o&&(l=cr(l)),e[Qn](l)}),n&>(e,"change",()=>{e.value=e.value.trim()}),t||(gt(e,"compositionstart",sa),gt(e,"compositionend",Us),gt(e,"change",Us))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Qn]=Ds(i),e.composing)return;const l=(o||e.type==="number")&&!/^0\d/.test(e.value)?cr(e.value):e.value,c=t??"";l!==c&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===c)||(e.value=c))}},oa=["ctrl","shift","alt","meta"],ia={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>oa.some(n=>e[`${n}Key`]&&!t.includes(n))},bu=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...o)=>{for(let i=0;i{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=s=>{if(!("key"in s))return;const o=ft(s.key);if(t.some(i=>i===o||la[i]===o))return e(s)})},ui=le({patchProp:na},$c);let Ft,Bs=!1;function ca(){return Ft||(Ft=ic(ui))}function aa(){return Ft=Bs?Ft:lc(ui),Bs=!0,Ft}const Eu=(...e)=>{const t=ca().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=di(r);if(!s)return;const o=t._component;!K(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.innerHTML="";const i=n(s,!1,fi(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t},Cu=(...e)=>{const t=aa().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=di(r);if(s)return n(s,!0,fi(s))},t};function fi(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function di(e){return oe(e)?document.querySelector(e):e}const xu=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Su="/show/wechat.png",Tu="/show/douyin.png",Au="/show/mp.png",Ru="/show/code.png",Ou="/show/flow.jpeg",Lu="/show/admin.png",ua="modulepreload",fa=function(e){return"/"+e},ks={},Iu=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.all(n.map(l=>{if(l=fa(l),l in ks)return;ks[l]=!0;const c=l.endsWith(".css"),a=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${a}`))return;const f=document.createElement("link");if(f.rel=c?"stylesheet":ua,c||(f.as="script",f.crossOrigin=""),f.href=l,i&&f.setAttribute("nonce",i),document.head.appendChild(f),c)return new Promise((h,m)=>{f.addEventListener("load",h),f.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${l}`)))})}))}return s.then(()=>t()).catch(o=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o})},da=window.__VP_SITE_DATA__;function Kr(e){return io()?(qi(e),!0):!1}function Fe(e){return typeof e=="function"?e():Eo(e)}const hi=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const ha=Object.prototype.toString,pa=e=>ha.call(e)==="[object Object]",Bt=()=>{},Ks=ga();function ga(){var e,t;return hi&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function ma(e,t){function n(...r){return new Promise((s,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(o)})}return n}const pi=e=>e();function ya(e,t={}){let n,r,s=Bt;const o=l=>{clearTimeout(l),s(),s=Bt};return l=>{const c=Fe(e),a=Fe(t.maxWait);return n&&o(n),c<=0||a!==void 0&&a<=0?(r&&(o(r),r=null),Promise.resolve(l())):new Promise((f,h)=>{s=t.rejectOnCancel?h:f,a&&!r&&(r=setTimeout(()=>{n&&o(n),r=null,f(l())},a)),n=setTimeout(()=>{r&&o(r),r=null,f(l())},c)})}}function _a(e=pi){const t=se(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...o)=>{t.value&&e(...o)};return{isActive:Ln(t),pause:n,resume:r,eventFilter:s}}function va(e){return jn()}function gi(...e){if(e.length!==1)return wl(...e);const t=e[0];return typeof t=="function"?Ln(_l(()=>({get:t,set:Bt}))):se(t)}function mi(e,t,n={}){const{eventFilter:r=pi,...s}=n;return Ne(e,ma(r,t),s)}function ba(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:o,pause:i,resume:l,isActive:c}=_a(r);return{stop:mi(e,t,{...s,eventFilter:o}),pause:i,resume:l,isActive:c}}function Wr(e,t=!0,n){va()?xt(e,n):t?e():In(e)}function Mu(e,t,n={}){const{debounce:r=0,maxWait:s=void 0,...o}=n;return mi(e,t,{...o,eventFilter:ya(r,{maxWait:s})})}function Pu(e,t,n){let r;de(n)?r={evaluating:n}:r={};const{lazy:s=!1,evaluating:o=void 0,shallow:i=!0,onError:l=Bt}=r,c=se(!s),a=i?Fr(t):se(t);let f=0;return Br(async h=>{if(!c.value)return;f++;const m=f;let _=!1;o&&Promise.resolve().then(()=>{o.value=!0});try{const C=await e(L=>{h(()=>{o&&(o.value=!1),_||L()})});m===f&&(a.value=C)}catch(C){l(C)}finally{o&&m===f&&(o.value=!1),_=!0}}),s?re(()=>(c.value=!0,a.value)):a}function yi(e){var t;const n=Fe(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Oe=hi?window:void 0;function Ct(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=Oe):[t,n,r,s]=e,!t)return Bt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],i=()=>{o.forEach(f=>f()),o.length=0},l=(f,h,m,_)=>(f.addEventListener(h,m,_),()=>f.removeEventListener(h,m,_)),c=Ne(()=>[yi(t),Fe(s)],([f,h])=>{if(i(),!f)return;const m=pa(h)?{...h}:h;o.push(...n.flatMap(_=>r.map(C=>l(f,_,C,m))))},{immediate:!0,flush:"post"}),a=()=>{c(),i()};return Kr(a),a}function wa(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Nu(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=Oe,eventName:o="keydown",passive:i=!1,dedupe:l=!1}=r,c=wa(t);return Ct(s,o,f=>{f.repeat&&Fe(l)||c(f)&&n(f)},i)}function Ea(){const e=se(!1),t=jn();return t&&xt(()=>{e.value=!0},t),e}function Ca(e){const t=Ea();return re(()=>(t.value,!!e()))}function _i(e,t={}){const{window:n=Oe}=t,r=Ca(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const o=se(!1),i=a=>{o.value=a.matches},l=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},c=Br(()=>{r.value&&(l(),s=n.matchMedia(Fe(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),o.value=s.matches)});return Kr(()=>{c(),l(),s=void 0}),o}const ln=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},cn="__vueuse_ssr_handlers__",xa=Sa();function Sa(){return cn in ln||(ln[cn]=ln[cn]||{}),ln[cn]}function vi(e,t){return xa[e]||t}function Ta(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Aa={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ws="vueuse-storage";function qr(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:l=!0,writeDefaults:c=!0,mergeDefaults:a=!1,shallow:f,window:h=Oe,eventFilter:m,onError:_=w=>{console.error(w)},initOnMounted:C}=r,L=(f?Fr:se)(typeof t=="function"?t():t);if(!n)try{n=vi("getDefaultStorage",()=>{var w;return(w=Oe)==null?void 0:w.localStorage})()}catch(w){_(w)}if(!n)return L;const k=Fe(t),W=Ta(k),V=(s=r.serializer)!=null?s:Aa[W],{pause:p,resume:y}=ba(L,()=>A(L.value),{flush:o,deep:i,eventFilter:m});h&&l&&Wr(()=>{Ct(h,"storage",$),Ct(h,Ws,I),C&&$()}),C||$();function M(w,N){h&&h.dispatchEvent(new CustomEvent(Ws,{detail:{key:e,oldValue:w,newValue:N,storageArea:n}}))}function A(w){try{const N=n.getItem(e);if(w==null)M(N,null),n.removeItem(e);else{const T=V.write(w);N!==T&&(n.setItem(e,T),M(N,T))}}catch(N){_(N)}}function F(w){const N=w?w.newValue:n.getItem(e);if(N==null)return c&&k!=null&&n.setItem(e,V.write(k)),k;if(!w&&a){const T=V.read(N);return typeof a=="function"?a(T,k):W==="object"&&!Array.isArray(T)?{...k,...T}:T}else return typeof N!="string"?N:V.read(N)}function $(w){if(!(w&&w.storageArea!==n)){if(w&&w.key==null){L.value=k;return}if(!(w&&w.key!==e)){p();try{(w==null?void 0:w.newValue)!==V.write(L.value)&&(L.value=F(w))}catch(N){_(N)}finally{w?In(y):y()}}}}function I(w){$(w.detail)}return L}function bi(e){return _i("(prefers-color-scheme: dark)",e)}function Ra(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=Oe,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:l=!0,storageRef:c,emitAuto:a,disableTransition:f=!0}=e,h={auto:"",light:"light",dark:"dark",...e.modes||{}},m=bi({window:s}),_=re(()=>m.value?"dark":"light"),C=c||(i==null?gi(r):qr(i,r,o,{window:s,listenToStorageChanges:l})),L=re(()=>C.value==="auto"?_.value:C.value),k=vi("updateHTMLAttrs",(y,M,A)=>{const F=typeof y=="string"?s==null?void 0:s.document.querySelector(y):yi(y);if(!F)return;let $;if(f&&($=s.document.createElement("style"),$.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),s.document.head.appendChild($)),M==="class"){const I=A.split(/\s/g);Object.values(h).flatMap(w=>(w||"").split(/\s/g)).filter(Boolean).forEach(w=>{I.includes(w)?F.classList.add(w):F.classList.remove(w)})}else F.setAttribute(M,A);f&&(s.getComputedStyle($).opacity,document.head.removeChild($))});function W(y){var M;k(t,n,(M=h[y])!=null?M:y)}function V(y){e.onChanged?e.onChanged(y,W):W(y)}Ne(L,V,{flush:"post",immediate:!0}),Wr(()=>V(L.value));const p=re({get(){return a?C.value:L.value},set(y){C.value=y}});try{return Object.assign(p,{store:C,system:_,state:L})}catch{return p}}function Oa(e={}){const{valueDark:t="dark",valueLight:n="",window:r=Oe}=e,s=Ra({...e,onChanged:(l,c)=>{var a;e.onChanged?(a=e.onChanged)==null||a.call(e,l==="dark",c,l):c(l)},modes:{dark:t,light:n}}),o=re(()=>s.system?s.system.value:bi({window:r}).value?"dark":"light");return re({get(){return s.value==="dark"},set(l){const c=l?"dark":"light";o.value===c?s.value="auto":s.value=c}})}function Zn(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Fu(e,t,n={}){const{window:r=Oe}=n;return qr(e,t,r==null?void 0:r.localStorage,n)}function wi(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const er=new WeakMap;function $u(e,t=!1){const n=se(t);let r=null,s="";Ne(gi(e),l=>{const c=Zn(Fe(l));if(c){const a=c;if(er.get(a)||er.set(a,a.style.overflow),a.style.overflow!=="hidden"&&(s=a.style.overflow),a.style.overflow==="hidden")return n.value=!0;if(n.value)return a.style.overflow="hidden"}},{immediate:!0});const o=()=>{const l=Zn(Fe(e));!l||n.value||(Ks&&(r=Ct(l,"touchmove",c=>{La(c)},{passive:!1})),l.style.overflow="hidden",n.value=!0)},i=()=>{const l=Zn(Fe(e));!l||!n.value||(Ks&&(r==null||r()),l.style.overflow=s,er.delete(l),n.value=!1)};return Kr(i),re({get(){return n.value},set(l){l?o():i()}})}function Hu(e,t,n={}){const{window:r=Oe}=n;return qr(e,t,r==null?void 0:r.sessionStorage,n)}function ju(e={}){const{window:t=Oe,behavior:n="auto"}=e;if(!t)return{x:se(0),y:se(0)};const r=se(t.scrollX),s=se(t.scrollY),o=re({get(){return r.value},set(l){scrollTo({left:l,behavior:n})}}),i=re({get(){return s.value},set(l){scrollTo({top:l,behavior:n})}});return Ct(t,"scroll",()=>{r.value=t.scrollX,s.value=t.scrollY},{capture:!1,passive:!0}),{x:o,y:i}}function Vu(e={}){const{window:t=Oe,initialWidth:n=Number.POSITIVE_INFINITY,initialHeight:r=Number.POSITIVE_INFINITY,listenOrientation:s=!0,includeScrollbar:o=!0}=e,i=se(n),l=se(r),c=()=>{t&&(o?(i.value=t.innerWidth,l.value=t.innerHeight):(i.value=t.document.documentElement.clientWidth,l.value=t.document.documentElement.clientHeight))};if(c(),Wr(c),Ct("resize",c,{passive:!0}),s){const a=_i("(orientation: portrait)");Ne(a,()=>c())}return{width:i,height:l}}var tr={BASE_URL:"/",MODE:"production",DEV:!1,PROD:!0,SSR:!1},nr={};const Ei=/^(?:[a-z]+:|\/\/)/i,Ia="vitepress-theme-appearance",Ma=/#.*$/,Pa=/[?#].*$/,Na=/(?:(^|\/)index)?\.(?:md|html)$/,he=typeof document<"u",Ci={relativePath:"404.md",filePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function Fa(e,t,n=!1){if(t===void 0)return!1;if(e=qs(`/${e}`),n)return new RegExp(t).test(e);if(qs(t)!==e)return!1;const r=t.match(Ma);return r?(he?location.hash:"")===r[0]:!0}function qs(e){return decodeURI(e).replace(Pa,"").replace(Na,"$1")}function $a(e){return Ei.test(e)}function Ha(e,t){return Object.keys((e==null?void 0:e.locales)||{}).find(n=>n!=="root"&&!$a(n)&&Fa(t,`/${n}/`,!0))||"root"}function ja(e,t){var r,s,o,i,l,c,a;const n=Ha(e,t);return Object.assign({},e,{localeIndex:n,lang:((r=e.locales[n])==null?void 0:r.lang)??e.lang,dir:((s=e.locales[n])==null?void 0:s.dir)??e.dir,title:((o=e.locales[n])==null?void 0:o.title)??e.title,titleTemplate:((i=e.locales[n])==null?void 0:i.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Si(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function xi(e,t){const n=t.title||e.title,r=t.titleTemplate??e.titleTemplate;if(typeof r=="string"&&r.includes(":title"))return r.replace(/:title/g,n);const s=Va(e.title,r);return n===s.slice(3)?n:`${n}${s}`}function Va(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Da(e,t){const[n,r]=t;if(n!=="meta")return!1;const s=Object.entries(r)[0];return s==null?!1:e.some(([o,i])=>o===n&&i[s[0]]===s[1])}function Si(e,t){return[...e.filter(n=>!Da(t,n)),...t]}const Ua=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Ba=/^[a-z]:/i;function Gs(e){const t=Ba.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Ua,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const rr=new Set;function ka(e){if(rr.size===0){const n=typeof process=="object"&&(nr==null?void 0:nr.VITE_EXTRA_EXTENSIONS)||(tr==null?void 0:tr.VITE_EXTRA_EXTENSIONS)||"";("3g2,3gp,aac,ai,apng,au,avif,bin,bmp,cer,class,conf,crl,css,csv,dll,doc,eps,epub,exe,gif,gz,ics,ief,jar,jpe,jpeg,jpg,js,json,jsonld,m4a,man,mid,midi,mjs,mov,mp2,mp3,mp4,mpe,mpeg,mpg,mpp,oga,ogg,ogv,ogx,opus,otf,p10,p7c,p7m,p7s,pdf,png,ps,qt,roff,rtf,rtx,ser,svg,t,tif,tiff,tr,ts,tsv,ttf,txt,vtt,wav,weba,webm,webp,woff,woff2,xhtml,xml,yaml,yml,zip"+(n&&typeof n=="string"?","+n:"")).split(",").forEach(r=>rr.add(r))}const t=e.split(".").pop();return t==null||!rr.has(t.toLowerCase())}function Du(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}const Ka=Symbol(),ut=Fr(da);function Uu(e){const t=re(()=>ja(ut.value,e.data.relativePath)),n=t.value.appearance,r=n==="force-dark"?se(!0):n?Oa({storageKey:Ia,initialValue:()=>n==="dark"?"dark":"auto",...typeof n=="object"?n:{}}):se(!1),s=se(he?location.hash:"");return he&&window.addEventListener("hashchange",()=>{s.value=location.hash}),Ne(()=>e.data,()=>{s.value=he?location.hash:""}),{site:t,theme:re(()=>t.value.themeConfig),page:re(()=>e.data),frontmatter:re(()=>e.data.frontmatter),params:re(()=>e.data.params),lang:re(()=>t.value.lang),dir:re(()=>e.data.frontmatter.dir||t.value.dir),localeIndex:re(()=>t.value.localeIndex||"root"),title:re(()=>xi(t.value,e.data)),description:re(()=>e.data.description||t.value.description),isDark:r,hash:re(()=>s.value)}}function Wa(){const e=wt(Ka);if(!e)throw new Error("vitepress data not properly injected in app");return e}function qa(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function zs(e){return Ei.test(e)||!e.startsWith("/")?e:qa(ut.value.base,e)}function Ga(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),he){const n="/";t=Gs(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let r=__VP_HASH_MAP__[t.toLowerCase()];if(r||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",r=__VP_HASH_MAP__[t.toLowerCase()]),!r)return null;t=`${n}assets/${t}.${r}.js`}else t=`./${Gs(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let gn=[];function Bu(e){gn.push(e),$n(()=>{gn=gn.filter(t=>t!==e)})}function za(){let e=ut.value.scrollOffset,t=0,n=24;if(typeof e=="object"&&"padding"in e&&(n=e.padding,e=e.selector),typeof e=="number")t=e;else if(typeof e=="string")t=Xs(e,n);else if(Array.isArray(e))for(const r of e){const s=Xs(r,n);if(s){t=s;break}}return t}function Xs(e,t){const n=document.querySelector(e);if(!n)return 0;const r=n.getBoundingClientRect().bottom;return r<0?0:r+t}const Xa=Symbol(),Ti="http://a.com",Ya=()=>({path:"/",component:null,data:Ci});function ku(e,t){const n=On(Ya()),r={route:n,go:s};async function s(l=he?location.href:"/"){var c,a;l=sr(l),await((c=r.onBeforeRouteChange)==null?void 0:c.call(r,l))!==!1&&(he&&l!==sr(location.href)&&(history.replaceState({scrollPosition:window.scrollY},""),history.pushState({},"",l)),await i(l),await((a=r.onAfterRouteChanged)==null?void 0:a.call(r,l)))}let o=null;async function i(l,c=0,a=!1){var m;if(await((m=r.onBeforePageLoad)==null?void 0:m.call(r,l))===!1)return;const f=new URL(l,Ti),h=o=f.pathname;try{let _=await e(h);if(!_)throw new Error(`Page not found: ${h}`);if(o===h){o=null;const{default:C,__pageData:L}=_;if(!C)throw new Error(`Invalid route component: ${C}`);n.path=he?h:zs(h),n.component=dn(C),n.data=dn(L),he&&In(()=>{let k=ut.value.base+L.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ut.value.cleanUrls&&!k.endsWith("/")&&(k+=".html"),k!==f.pathname&&(f.pathname=k,l=k+f.search+f.hash,history.replaceState({},"",l)),f.hash&&!c){let W=null;try{W=document.getElementById(decodeURIComponent(f.hash).slice(1))}catch(V){console.warn(V)}if(W){Ys(W,f.hash);return}}window.scrollTo(0,c)})}}catch(_){if(!/fetch|Page not found/.test(_.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(_),!a)try{const C=await fetch(ut.value.base+"hashmap.json");window.__VP_HASH_MAP__=await C.json(),await i(l,c,!0);return}catch{}if(o===h){o=null,n.path=he?h:zs(h),n.component=t?dn(t):null;const C=he?h.replace(/(^|\/)$/,"$1index").replace(/(\.html)?$/,".md").replace(/^\//,""):"404.md";n.data={...Ci,relativePath:C}}}}return he&&(history.state===null&&history.replaceState({},""),window.addEventListener("click",l=>{if(l.defaultPrevented||!(l.target instanceof Element)||l.target.closest("button")||l.button!==0||l.ctrlKey||l.shiftKey||l.altKey||l.metaKey)return;const c=l.target.closest("a");if(!c||c.closest(".vp-raw")||c.hasAttribute("download")||c.hasAttribute("target"))return;const a=c.getAttribute("href")??(c instanceof SVGAElement?c.getAttribute("xlink:href"):null);if(a==null)return;const{href:f,origin:h,pathname:m,hash:_,search:C}=new URL(a,c.baseURI),L=new URL(location.href);h===L.origin&&ka(m)&&(l.preventDefault(),m===L.pathname&&C===L.search?(_!==L.hash&&(history.pushState({},"",f),window.dispatchEvent(new HashChangeEvent("hashchange",{oldURL:L.href,newURL:f}))),_?Ys(c,_,c.classList.contains("header-anchor")):window.scrollTo(0,0)):s(f))},{capture:!0}),window.addEventListener("popstate",async l=>{var c;l.state!==null&&(await i(sr(location.href),l.state&&l.state.scrollPosition||0),(c=r.onAfterRouteChanged)==null||c.call(r,location.href))}),window.addEventListener("hashchange",l=>{l.preventDefault()})),r}function Ja(){const e=wt(Xa);if(!e)throw new Error("useRouter() is called without provider.");return e}function Ai(){return Ja().route}function Ys(e,t,n=!1){let r=null;try{r=e.classList.contains("header-anchor")?e:document.getElementById(decodeURIComponent(t).slice(1))}catch(s){console.warn(s)}if(r){let s=function(){!n||Math.abs(i-window.scrollY)>window.innerHeight?window.scrollTo(0,i):window.scrollTo({left:0,top:i,behavior:"smooth"})};const o=parseInt(window.getComputedStyle(r).paddingTop,10),i=window.scrollY+r.getBoundingClientRect().top-za()+o;requestAnimationFrame(s)}}function sr(e){const t=new URL(e,Ti);return t.pathname=t.pathname.replace(/(^|\/)index(\.html)?$/,"$1"),ut.value.cleanUrls?t.pathname=t.pathname.replace(/\.html$/,""):!t.pathname.endsWith("/")&&!t.pathname.endsWith(".html")&&(t.pathname+=".html"),t.pathname+t.search+t.hash}const or=()=>gn.forEach(e=>e()),Ku=jr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=Ai(),{site:n}=Wa();return()=>br(e.as,n.value.contentProps??{style:{position:"relative"}},[t.component?br(t.component,{onVnodeMounted:or,onVnodeUpdated:or,onVnodeUnmounted:or}):"404 Page Not Found"])}}),Wu=jr({setup(e,{slots:t}){const n=se(!1);return xt(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function qu(){he&&window.addEventListener("click",e=>{var n;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement;if(!r)return;const s=Array.from(r.querySelectorAll("input")).indexOf(t);if(s<0)return;const o=r.querySelector(".blocks");if(!o)return;const i=Array.from(o.children).find(a=>a.classList.contains("active"));if(!i)return;const l=o.children[s];if(!l||i===l)return;i.classList.remove("active"),l.classList.add("active");const c=r==null?void 0:r.querySelector(`label[for="${t.id}"]`);c==null||c.scrollIntoView({block:"nearest"})}})}function Gu(){if(he){const e=new WeakMap;window.addEventListener("click",t=>{var r;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const s=n.parentElement,o=(r=n.nextElementSibling)==null?void 0:r.nextElementSibling;if(!s||!o)return;const i=/language-(shellscript|shell|bash|sh|zsh)/.test(s.className),l=[".vp-copy-ignore",".diff.remove"],c=o.cloneNode(!0);c.querySelectorAll(l.join(",")).forEach(f=>f.remove());let a=c.textContent||"";i&&(a=a.replace(/^ *(\$|>) /gm,"").trim()),Qa(a).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const f=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,f)})}})}}async function Qa(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const r=document.getSelection(),s=r?r.rangeCount>0&&r.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),s&&(r.removeAllRanges(),r.addRange(s)),n&&n.focus()}}function zu(e,t){let n=!0,r=[];const s=o=>{if(n){n=!1,o.forEach(l=>{const c=ir(l);for(const a of document.head.children)if(a.isEqualNode(c)){r.push(a);return}});return}const i=o.map(ir);r.forEach((l,c)=>{const a=i.findIndex(f=>f==null?void 0:f.isEqualNode(l??null));a!==-1?delete i[a]:(l==null||l.remove(),delete r[c])}),i.forEach(l=>l&&document.head.appendChild(l)),r=[...r,...i].filter(Boolean)};Br(()=>{const o=e.data,i=t.value,l=o&&o.description,c=o&&o.frontmatter.head||[],a=xi(i,o);a!==document.title&&(document.title=a);const f=l||i.description;let h=document.querySelector("meta[name=description]");h?h.getAttribute("content")!==f&&h.setAttribute("content",f):ir(["meta",{name:"description",content:f}]),s(Si(i.head,eu(c)))})}function ir([e,t,n]){const r=document.createElement(e);for(const s in t)r.setAttribute(s,t[s]);return n&&(r.innerHTML=n),e==="script"&&!t.async&&(r.async=!1),r}function Za(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function eu(e){return e.filter(t=>!Za(t))}const lr=new Set,Ri=()=>document.createElement("link"),tu=e=>{const t=Ri();t.rel="prefetch",t.href=e,document.head.appendChild(t)},nu=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let an;const ru=he&&(an=Ri())&&an.relList&&an.relList.supports&&an.relList.supports("prefetch")?tu:nu;function Xu(){if(!he||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const r=()=>{n&&n.disconnect(),n=new IntersectionObserver(o=>{o.forEach(i=>{if(i.isIntersecting){const l=i.target;n.unobserve(l);const{pathname:c}=l;if(!lr.has(c)){lr.add(c);const a=Ga(c);a&&ru(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(o=>{const{hostname:i,pathname:l}=new URL(o.href instanceof SVGAnimatedString?o.href.animVal:o.href,o.baseURI),c=l.match(/\.\w+$/);c&&c[0]!==".html"||o.target!=="_blank"&&i===location.hostname&&(l!==location.pathname?n.observe(o):lr.add(l))})})};xt(r);const s=Ai();Ne(()=>s.path,r),$n(()=>{n&&n.disconnect()})}export{du as $,pu as A,Hl as B,za as C,iu as D,au as E,_e as F,Fr as G,Bu as H,ie as I,lu as J,Ei as K,Ai as L,xc as M,wt as N,Vu as O,Sr as P,Nu as Q,In as R,ju as S,ci as T,he as U,Ln as V,uu as W,Iu as X,$u as Y,Jl as Z,xu as _,si as a,wu as a0,Io as a1,bu as a2,hu as a3,yu as a4,Su as a5,Tu as a6,Au as a7,Ru as a8,Ou as a9,gu as aA,dn as aB,Eu as aC,Du as aD,Lu as aa,zu as ab,Xa as ac,Uu as ad,Ka as ae,Ku as af,Wu as ag,ut as ah,Cu as ai,ku as aj,Ga as ak,Xu as al,Gu as am,qu as an,br as ao,yi as ap,Kr as aq,Pu as ar,Hu as as,Fu as at,Mu as au,Ja as av,Ct as aw,cu as ax,vu as ay,de as az,ti as b,mu as c,jr as d,_u as e,ka as f,zs as g,re as h,$a as i,ri as j,Eo as k,ou as l,Fa as m,Tr as n,Zo as o,su as p,_i as q,fu as r,se as s,ki as t,Wa as u,Ne as v,Ol as w,Br as x,xt as y,$n as z}; diff --git a/.vitepress/dist/assets/chunks/theme.LmTTO8j8.js b/.vitepress/dist/assets/chunks/theme.LmTTO8j8.js new file mode 100644 index 0000000..9900492 --- /dev/null +++ b/.vitepress/dist/assets/chunks/theme.LmTTO8j8.js @@ -0,0 +1,4 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chunks/VPLocalSearchBox.S6DOZPCa.js","assets/chunks/framework.DHgIdERs.js"])))=>i.map(i=>d[i]); +import{d as _,o as s,c as u,r as l,n as M,a as te,t as C,b as k,w as m,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 p,k as r,p as G,l as q,m as le,q as Ee,s as H,v as ee,x as $e,y as re,z as Oe,A as Fe,B as It,C as Nt,D as ce,F as B,E as K,G as Ze,H as ye,I as b,J as Q,K as Qe,L as me,M as se,N as Le,O as Et,P as xe,Q as ze,R as et,S as tt,U as Pe,V as zt,W as Ct,X as Ht,Y as ot,Z as nt,$ as Mt,a0 as At,a1 as Bt,a2 as Ot,a3 as Ft}from"./framework.DHgIdERs.js";const Dt=_({__name:"VPBadge",props:{text:{},type:{default:"tip"}},setup(o){return(e,t)=>(s(),u("span",{class:M(["VPBadge",e.type])},[l(e.$slots,"default",{},()=>[te(C(e.text),1)])],2))}}),jt={key:0,class:"VPBackdrop"},Ut=_({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(o){return(e,t)=>(s(),k(Ae,{name:"fade"},{default:m(()=>[e.show?(s(),u("div",jt)):h("",!0)]),_:1}))}}),Gt=y(Ut,[["__scopeId","data-v-ee4f8a0b"]]),V=Vt;function qt(o,e){let t,a=!1;return()=>{t&&clearTimeout(t),a?t=setTimeout(o,e):(o(),(a=!0)&&setTimeout(()=>a=!1,e))}}function Ce(o){return/^\//.test(o)?o:`/${o}`}function De(o){const{pathname:e,search:t,hash:a,protocol:n}=new URL(o,"http://a.com");if(wt(o)||o.startsWith("#")||!n.startsWith("http")||!Tt(e))return o;const{site:i}=V(),c=e.endsWith("/")||e.endsWith(".html")?o:o.replace(/(?:(^\.+)\/)?.*$/,`$1${e.replace(/(\.md)?$/,i.value.cleanUrls?"":".html")}${t}${a}`);return Be(c)}function pe({correspondingLink:o=!1}={}){const{site:e,localeIndex:t,page:a,theme:n,hash:i}=V(),c=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])=>c.value.label===g.label?[]:{text:g.label,link:Rt(g.link||(v==="root"?"/":`/${v}/`),n.value.i18nRouting!==!1&&o,a.value.relativePath.slice(c.value.link.length-1),!e.value.cleanUrls)+i.value})),currentLang:c}}function Rt(o,e,t,a){return e?o.replace(/\/$/,"")+Ce(t.replace(/(^|\/)index\.md$/,"$1").replace(/\.md$/,a?".html":"")):o}const Wt=o=>(G("data-v-25b3c91b"),o=o(),q(),o),Kt={class:"NotFound"},Yt={class:"code"},Jt={class:"title"},Xt=Wt(()=>p("div",{class:"divider"},null,-1)),Zt={class:"quote"},Qt={class:"action"},xt=["href","aria-label"],eo=_({__name:"NotFound",setup(o){const{theme:e}=V(),{currentLang:t}=pe();return(a,n)=>{var i,c,d,v,g;return s(),u("div",Kt,[p("p",Yt,C(((i=r(e).notFound)==null?void 0:i.code)??"404"),1),p("h1",Jt,C(((c=r(e).notFound)==null?void 0:c.title)??"PAGE NOT FOUND"),1),Xt,p("blockquote",Zt,C(((d=r(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),p("div",Qt,[p("a",{class:"link",href:r(Be)(r(t).link),"aria-label":((v=r(e).notFound)==null?void 0:v.linkLabel)??"go to home"},C(((g=r(e).notFound)==null?void 0:g.linkText)??"Take me home"),9,xt)])])}}}),to=y(eo,[["__scopeId","data-v-25b3c91b"]]);function at(o,e){if(Array.isArray(o))return ge(o);if(o==null)return[];e=Ce(e);const t=Object.keys(o).sort((n,i)=>i.split("/").length-n.split("/").length).find(n=>e.startsWith(Ce(n))),a=t?o[t]:[];return Array.isArray(a)?ge(a):ge(a.items,a.base)}function oo(o){const e=[];let t=0;for(const a in o){const n=o[a];if(n.items){t=e.push(n);continue}e[t]||e.push({items:[]}),e[t].items.push(n)}return e}function no(o){const e=[];function t(a){for(const n of a)n.text&&n.link&&e.push({text:n.text,link:n.link,docFooterText:n.docFooterText}),n.items&&t(n.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 ge(o,e){return[...o].map(t=>{const a={...t},n=a.base||e;return n&&a.link&&(a.link=n+a.link),a.items&&(a.items=ge(a.items,n)),a})}function oe(){const{frontmatter:o,page:e,theme:t}=V(),a=Ee("(min-width: 960px)"),n=H(!1),i=L(()=>{const F=t.value.sidebar,z=e.value.relativePath;return F?at(F,z):[]}),c=H(i.value);ee(i,(F,z)=>{JSON.stringify(F)!==JSON.stringify(z)&&(c.value=i.value)});const d=L(()=>o.value.sidebar!==!1&&c.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&&a.value),$=L(()=>d.value?oo(c.value):[]);function S(){n.value=!0}function E(){n.value=!1}function N(){n.value?E():S()}return{isOpen:n,sidebar:c,sidebarGroups:$,hasSidebar:d,hasAside:g,leftAside:v,isSidebarEnabled:I,open:S,close:E,toggle:N}}function ao(o,e){let t;$e(()=>{t=o.value?document.activeElement:void 0}),re(()=>{window.addEventListener("keyup",a)}),Oe(()=>{window.removeEventListener("keyup",a)});function a(n){n.key==="Escape"&&o.value&&(e(),t==null||t.focus())}}function so(o){const{page:e,hash:t}=V(),a=H(!1),n=L(()=>o.value.collapsed!=null),i=L(()=>!!o.value.link),c=H(!1),d=()=>{c.value=le(e.value.relativePath,o.value.link)};ee([e,o,t],d),re(d);const v=L(()=>c.value?!0:o.value.items?He(e.value.relativePath,o.value.items):!1),g=L(()=>!!(o.value.items&&o.value.items.length));$e(()=>{a.value=!!(n.value&&o.value.collapsed)}),Fe(()=>{(c.value||v.value)&&(a.value=!1)});function I(){n.value&&(a.value=!a.value)}return{collapsed:a,collapsible:n,isLink:i,isActiveLink:c,hasActiveLink:v,hasChildren:g,toggle:I}}function ro(){const{hasSidebar:o}=oe(),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 a=Number(t.tagName[1]);return{element:t,title:io(t),link:"#"+t.id,level:a}});return lo(e,o)}function io(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 lo(o,e){if(e===!1)return[];const t=(typeof e=="object"&&!Array.isArray(e)?e.level:e)||2,[a,n]=typeof t=="number"?[t,t]:t==="deep"?[2,6]:t;o=o.filter(c=>c.level>=a&&c.level<=n),Me.length=0;for(const{element:c,link:d}of o)Me.push({element:c,link:d});const i=[];e:for(let c=0;c=0;v--){const g=o[v];if(g.level{requestAnimationFrame(i),window.addEventListener("scroll",a)}),It(()=>{c(location.hash)}),Oe(()=>{window.removeEventListener("scroll",a)});function i(){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:uo(E)})).filter(({top:E})=>!Number.isNaN(E)).sort((E,N)=>E.top-N.top);if(!$.length){c(null);return}if(d<1){c(null);return}if(I){c($[$.length-1].link);return}let S=null;for(const{link:E,top:N}of $){if(N>d+Nt()+4)break;S=E}c(S)}function c(d){n&&n.classList.remove("active"),d==null?n=null:n=o.value.querySelector(`a[href="${decodeURIComponent(d)}"]`);const v=n;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 uo(o){let e=0;for(;o!==document.body;){if(o===null)return NaN;e+=o.offsetTop,o=o.offsetParent}return e}const vo=["href","title"],mo=_({__name:"VPDocOutlineItem",props:{headers:{},root:{type:Boolean}},setup(o){function e({target:t}){const a=t.href.split("#")[1],n=document.getElementById(decodeURIComponent(a));n==null||n.focus({preventScroll:!0})}return(t,a)=>{const n=ce("VPDocOutlineItem",!0);return s(),u("ul",{class:M(["VPDocOutlineItem",t.root?"root":"nested"])},[(s(!0),u(B,null,K(t.headers,({children:i,link:c,title:d})=>(s(),u("li",null,[p("a",{class:"outline-link",href:c,onClick:e,title:d},C(d),9,vo),i!=null&&i.length?(s(),k(n,{key:0,headers:i},null,8,["headers"])):h("",!0)]))),256))],2)}}}),rt=y(mo,[["__scopeId","data-v-a53304d2"]]),po={class:"content"},fo={"aria-level":"2",class:"outline-title",id:"doc-outline-aria-label",role:"heading"},ho=_({__name:"VPDocAsideOutline",setup(o){const{frontmatter:e,theme:t}=V(),a=Ze([]);ye(()=>{a.value=je(e.value.outline??t.value.outline)});const n=H(),i=H();return co(n,i),(c,d)=>(s(),u("nav",{"aria-labelledby":"doc-outline-aria-label",class:M(["VPDocAsideOutline",{"has-outline":a.value.length>0}]),ref_key:"container",ref:n},[p("div",po,[p("div",{class:"outline-marker",ref_key:"marker",ref:i},null,512),p("div",fo,C(r(st)(r(t))),1),b(rt,{headers:a.value,root:!0},null,8,["headers"])])],2))}}),_o=y(ho,[["__scopeId","data-v-e9242aa7"]]),go={class:"VPDocAsideCarbonAds"},bo=_({__name:"VPDocAsideCarbonAds",props:{carbonAds:{}},setup(o){const e=()=>null;return(t,a)=>(s(),u("div",go,[b(r(e),{"carbon-ads":t.carbonAds},null,8,["carbon-ads"])]))}}),ko=o=>(G("data-v-4ef74901"),o=o(),q(),o),$o={class:"VPDocAside"},yo=ko(()=>p("div",{class:"spacer"},null,-1)),Lo=_({__name:"VPDocAside",setup(o){const{theme:e}=V();return(t,a)=>(s(),u("div",$o,[l(t.$slots,"aside-top",{},void 0,!0),l(t.$slots,"aside-outline-before",{},void 0,!0),b(_o),l(t.$slots,"aside-outline-after",{},void 0,!0),yo,l(t.$slots,"aside-ads-before",{},void 0,!0),r(e).carbonAds?(s(),k(bo,{key:0,"carbon-ads":r(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)]))}}),Po=y(Lo,[["__scopeId","data-v-4ef74901"]]);function So(){const{theme:o,page:e}=V();return L(()=>{const{text:t="Edit this page",pattern:a=""}=o.value.editLink||{};let n;return typeof a=="function"?n=a(e.value):n=a.replace(/:path/g,e.value.filePath),{url:n,text:t}})}function Vo(){const{page:o,theme:e,frontmatter:t}=V();return L(()=>{var g,I,$,S,E,N,F,z;const a=at(e.value.sidebar,o.value.relativePath),n=no(a),i=wo(n,J=>J.link.replace(/[?#].*$/,"")),c=i.findIndex(J=>le(o.value.relativePath,J.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)??(($=i[c-1])==null?void 0:$.docFooterText)??((S=i[c-1])==null?void 0:S.text),link:(typeof t.value.prev=="object"?t.value.prev.link:void 0)??((E=i[c-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=i[c+1])==null?void 0:N.docFooterText)??((F=i[c+1])==null?void 0:F.text),link:(typeof t.value.next=="object"?t.value.next.link:void 0)??((z=i[c+1])==null?void 0:z.link)}}})}function wo(o,e){const t=new Set;return o.filter(a=>{const n=e(a);return t.has(n)?!1:t.add(n)})}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")),a=L(()=>e.href&&Qe.test(e.href)||e.target==="_blank");return(n,i)=>(s(),k(Q(t.value),{class:M(["VPLink",{link:n.href,"vp-external-link-icon":a.value,"no-icon":n.noIcon}]),href:n.href?r(De)(n.href):void 0,target:n.target??(a.value?"_blank":void 0),rel:n.rel??(a.value?"noreferrer":void 0)},{default:m(()=>[l(n.$slots,"default")]),_:3},8,["class","href","target","rel"]))}}),To={class:"VPLastUpdated"},Io=["datetime"],No=_({__name:"VPDocFooterLastUpdated",setup(o){const{theme:e,page:t,lang:a}=V(),n=L(()=>new Date(t.value.lastUpdated)),i=L(()=>n.value.toISOString()),c=H("");return re(()=>{$e(()=>{var d,v,g;c.value=new Intl.DateTimeFormat((v=(d=e.value.lastUpdated)==null?void 0:d.formatOptions)!=null&&v.forceLocale?a.value:void 0,((g=e.value.lastUpdated)==null?void 0:g.formatOptions)??{dateStyle:"short",timeStyle:"short"}).format(n.value)})}),(d,v)=>{var g;return s(),u("p",To,[te(C(((g=r(e).lastUpdated)==null?void 0:g.text)||r(e).lastUpdatedText||"Last updated")+": ",1),p("time",{datetime:i.value},C(c.value),9,Io)])}}}),Eo=y(No,[["__scopeId","data-v-4e3c18a4"]]),it=o=>(G("data-v-34368ad2"),o=o(),q(),o),zo={key:0,class:"VPDocFooter"},Co={key:0,class:"edit-info"},Ho={key:0,class:"edit-link"},Mo=it(()=>p("span",{class:"vpi-square-pen edit-link-icon"},null,-1)),Ao={key:1,class:"last-updated"},Bo={key:1,class:"prev-next","aria-labelledby":"doc-footer-aria-label"},Oo=it(()=>p("span",{class:"visually-hidden",id:"doc-footer-aria-label"},"Pager",-1)),Fo={class:"pager"},Do=["innerHTML"],jo=["innerHTML"],Uo={class:"pager"},Go=["innerHTML"],qo=["innerHTML"],Ro=_({__name:"VPDocFooter",setup(o){const{theme:e,page:t,frontmatter:a}=V(),n=So(),i=Vo(),c=L(()=>e.value.editLink&&a.value.editLink!==!1),d=L(()=>t.value.lastUpdated),v=L(()=>c.value||d.value||i.value.prev||i.value.next);return(g,I)=>{var $,S,E,N;return v.value?(s(),u("footer",zo,[l(g.$slots,"doc-footer-before",{},void 0,!0),c.value||d.value?(s(),u("div",Co,[c.value?(s(),u("div",Ho,[b(x,{class:"edit-link-button",href:r(n).url,"no-icon":!0},{default:m(()=>[Mo,te(" "+C(r(n).text),1)]),_:1},8,["href"])])):h("",!0),d.value?(s(),u("div",Ao,[b(Eo)])):h("",!0)])):h("",!0),($=r(i).prev)!=null&&$.link||(S=r(i).next)!=null&&S.link?(s(),u("nav",Bo,[Oo,p("div",Fo,[(E=r(i).prev)!=null&&E.link?(s(),k(x,{key:0,class:"pager-link prev",href:r(i).prev.link},{default:m(()=>{var F;return[p("span",{class:"desc",innerHTML:((F=r(e).docFooter)==null?void 0:F.prev)||"Previous page"},null,8,Do),p("span",{class:"title",innerHTML:r(i).prev.text},null,8,jo)]}),_:1},8,["href"])):h("",!0)]),p("div",Uo,[(N=r(i).next)!=null&&N.link?(s(),k(x,{key:0,class:"pager-link next",href:r(i).next.link},{default:m(()=>{var F;return[p("span",{class:"desc",innerHTML:((F=r(e).docFooter)==null?void 0:F.next)||"Next page"},null,8,Go),p("span",{class:"title",innerHTML:r(i).next.text},null,8,qo)]}),_:1},8,["href"])):h("",!0)])])):h("",!0)])):h("",!0)}}}),Wo=y(Ro,[["__scopeId","data-v-34368ad2"]]),Ko=o=>(G("data-v-b521a168"),o=o(),q(),o),Yo={class:"container"},Jo=Ko(()=>p("div",{class:"aside-curtain"},null,-1)),Xo={class:"aside-container"},Zo={class:"aside-content"},Qo={class:"content"},xo={class:"content-container"},en={class:"main"},tn=_({__name:"VPDoc",setup(o){const{theme:e}=V(),t=me(),{hasSidebar:a,hasAside:n,leftAside:i}=oe(),c=L(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(d,v)=>{const g=ce("Content");return s(),u("div",{class:M(["VPDoc",{"has-sidebar":r(a),"has-aside":r(n)}])},[l(d.$slots,"doc-top",{},void 0,!0),p("div",Yo,[r(n)?(s(),u("div",{key:0,class:M(["aside",{"left-aside":r(i)}])},[Jo,p("div",Xo,[p("div",Zo,[b(Po,null,{"aside-top":m(()=>[l(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":m(()=>[l(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":m(()=>[l(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":m(()=>[l(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":m(()=>[l(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":m(()=>[l(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):h("",!0),p("div",Qo,[p("div",xo,[l(d.$slots,"doc-before",{},void 0,!0),p("main",en,[b(g,{class:M(["vp-doc",[c.value,r(e).externalLinkIcon&&"external-link-icon-enabled"]])},null,8,["class"])]),b(Wo,null,{"doc-footer-before":m(()=>[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)}}}),on=y(tn,[["__scopeId","data-v-b521a168"]]),nn=_({__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)),a=L(()=>e.tag||e.href?"a":"button");return(n,i)=>(s(),k(Q(a.value),{class:M(["VPButton",[n.size,n.theme]]),href:n.href?r(De)(n.href):void 0,target:e.target??(t.value?"_blank":void 0),rel:e.rel??(t.value?"noreferrer":void 0)},{default:m(()=>[te(C(n.text),1)]),_:1},8,["class","href","target","rel"]))}}),an=y(nn,[["__scopeId","data-v-89174608"]]),sn=["src","alt"],rn=_({inheritAttrs:!1,__name:"VPImage",props:{image:{},alt:{}},setup(o){return(e,t)=>{const a=ce("VPImage",!0);return e.image?(s(),u(B,{key:0},[typeof e.image=="string"||"src"in e.image?(s(),u("img",se({key:0,class:"VPImage"},typeof e.image=="string"?e.$attrs:{...e.image,...e.$attrs},{src:r(Be)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,sn)):(s(),u(B,{key:1},[b(a,se({class:"dark",image:e.image.dark,alt:e.image.alt},e.$attrs),null,16,["image","alt"]),b(a,se({class:"light",image:e.image.light,alt:e.image.alt},e.$attrs),null,16,["image","alt"])],64))],64)):h("",!0)}}}),ke=y(rn,[["__scopeId","data-v-13e6cd18"]]),ln=o=>(G("data-v-0661e2e5"),o=o(),q(),o),cn={class:"container"},un={class:"main"},dn={key:0,class:"name"},vn=["innerHTML"],mn=["innerHTML"],pn=["innerHTML"],fn={key:0,class:"actions"},hn={key:0,class:"image"},_n={class:"image-container"},gn=ln(()=>p("div",{class:"image-bg"},null,-1)),bn=_({__name:"VPHero",props:{name:{},text:{},tagline:{},image:{},actions:{}},setup(o){const e=Le("hero-image-slot-exists");return(t,a)=>(s(),u("div",{class:M(["VPHero",{"has-image":t.image||r(e)}])},[p("div",cn,[p("div",un,[l(t.$slots,"home-hero-info-before",{},void 0,!0),l(t.$slots,"home-hero-info",{},()=>[t.name?(s(),u("h1",dn,[p("span",{innerHTML:t.name,class:"clip"},null,8,vn)])):h("",!0),t.text?(s(),u("p",{key:1,innerHTML:t.text,class:"text"},null,8,mn)):h("",!0),t.tagline?(s(),u("p",{key:2,innerHTML:t.tagline,class:"tagline"},null,8,pn)):h("",!0)],!0),l(t.$slots,"home-hero-info-after",{},void 0,!0),t.actions?(s(),u("div",fn,[(s(!0),u(B,null,K(t.actions,n=>(s(),u("div",{key:n.link,class:"action"},[b(an,{tag:"a",size:"medium",theme:n.theme,text:n.text,href:n.link,target:n.target,rel:n.rel},null,8,["theme","text","href","target","rel"])]))),128))])):h("",!0),l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),t.image||r(e)?(s(),u("div",hn,[p("div",_n,[gn,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))}}),kn=y(bn,[["__scopeId","data-v-0661e2e5"]]),$n=_({__name:"VPHomeHero",setup(o){const{frontmatter:e}=V();return(t,a)=>r(e).hero?(s(),k(kn,{key:0,class:"VPHomeHero",name:r(e).hero.name,text:r(e).hero.text,tagline:r(e).hero.tagline,image:r(e).hero.image,actions:r(e).hero.actions},{"home-hero-info-before":m(()=>[l(t.$slots,"home-hero-info-before")]),"home-hero-info":m(()=>[l(t.$slots,"home-hero-info")]),"home-hero-info-after":m(()=>[l(t.$slots,"home-hero-info-after")]),"home-hero-actions-after":m(()=>[l(t.$slots,"home-hero-actions-after")]),"home-hero-image":m(()=>[l(t.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):h("",!0)}}),yn=o=>(G("data-v-98aa41e6"),o=o(),q(),o),Ln={class:"box"},Pn={key:0,class:"icon"},Sn=["innerHTML"],Vn=["innerHTML"],wn=["innerHTML"],Tn={key:4,class:"link-text"},In={class:"link-text-value"},Nn=yn(()=>p("span",{class:"vpi-arrow-right link-text-icon"},null,-1)),En=_({__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:m(()=>[p("article",Ln,[typeof e.icon=="object"&&e.icon.wrap?(s(),u("div",Pn,[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(),u("div",{key:2,class:"icon",innerHTML:e.icon},null,8,Sn)):h("",!0),p("h2",{class:"title",innerHTML:e.title},null,8,Vn),e.details?(s(),u("p",{key:3,class:"details",innerHTML:e.details},null,8,wn)):h("",!0),e.linkText?(s(),u("div",Tn,[p("p",In,[te(C(e.linkText)+" ",1),Nn])])):h("",!0)])]),_:1},8,["href","rel","target","tag"]))}}),zn=y(En,[["__scopeId","data-v-98aa41e6"]]),Cn={key:0,class:"VPFeatures"},Hn={class:"container"},Mn={class:"items"},An=_({__name:"VPFeatures",props:{features:{}},setup(o){const e=o,t=L(()=>{const a=e.features.length;if(a){if(a===2)return"grid-2";if(a===3)return"grid-3";if(a%3===0)return"grid-6";if(a>3)return"grid-4"}else return});return(a,n)=>a.features?(s(),u("div",Cn,[p("div",Hn,[p("div",Mn,[(s(!0),u(B,null,K(a.features,i=>(s(),u("div",{key:i.title,class:M(["item",[t.value]])},[b(zn,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText,rel:i.rel,target:i.target},null,8,["icon","title","details","link","link-text","rel","target"])],2))),128))])])])):h("",!0)}}),Bn=y(An,[["__scopeId","data-v-178d34ad"]]),On=_({__name:"VPHomeFeatures",setup(o){const{frontmatter:e}=V();return(t,a)=>r(e).features?(s(),k(Bn,{key:0,class:"VPHomeFeatures",features:r(e).features},null,8,["features"])):h("",!0)}}),Fn=_({__name:"VPHomeContent",setup(o){const{width:e}=Et({initialWidth:0,includeScrollbar:!1});return(t,a)=>(s(),u("div",{class:"vp-doc container",style:xe(r(e)?{"--vp-offset":`calc(50% - ${r(e)/2}px)`}:{})},[l(t.$slots,"default",{},void 0,!0)],4))}}),Dn=y(Fn,[["__scopeId","data-v-cfbc1a43"]]),jn={class:"VPHome"},Un=_({__name:"VPHome",setup(o){const{frontmatter:e}=V();return(t,a)=>{const n=ce("Content");return s(),u("div",jn,[l(t.$slots,"home-hero-before",{},void 0,!0),b($n,null,{"home-hero-info-before":m(()=>[l(t.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":m(()=>[l(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":m(()=>[l(t.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":m(()=>[l(t.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":m(()=>[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(On),l(t.$slots,"home-features-after",{},void 0,!0),r(e).markdownStyles!==!1?(s(),k(Dn,{key:0},{default:m(()=>[b(n)]),_:1})):(s(),k(n,{key:1}))])}}}),Gn=y(Un,[["__scopeId","data-v-fd2ffb77"]]),qn={},Rn={class:"VPPage"};function Wn(o,e){const t=ce("Content");return s(),u("div",Rn,[l(o.$slots,"page-top"),b(t),l(o.$slots,"page-bottom")])}const Kn=y(qn,[["render",Wn]]),Yn=_({__name:"VPContent",setup(o){const{page:e,frontmatter:t}=V(),{hasSidebar:a}=oe();return(n,i)=>(s(),u("div",{class:M(["VPContent",{"has-sidebar":r(a),"is-home":r(t).layout==="home"}]),id:"VPContent"},[r(e).isNotFound?l(n.$slots,"not-found",{key:0},()=>[b(to)],!0):r(t).layout==="page"?(s(),k(Kn,{key:1},{"page-top":m(()=>[l(n.$slots,"page-top",{},void 0,!0)]),"page-bottom":m(()=>[l(n.$slots,"page-bottom",{},void 0,!0)]),_:3})):r(t).layout==="home"?(s(),k(Gn,{key:2},{"home-hero-before":m(()=>[l(n.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":m(()=>[l(n.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":m(()=>[l(n.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":m(()=>[l(n.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":m(()=>[l(n.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":m(()=>[l(n.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":m(()=>[l(n.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":m(()=>[l(n.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":m(()=>[l(n.$slots,"home-features-after",{},void 0,!0)]),_:3})):r(t).layout&&r(t).layout!=="doc"?(s(),k(Q(r(t).layout),{key:3})):(s(),k(on,{key:4},{"doc-top":m(()=>[l(n.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":m(()=>[l(n.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":m(()=>[l(n.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":m(()=>[l(n.$slots,"doc-before",{},void 0,!0)]),"doc-after":m(()=>[l(n.$slots,"doc-after",{},void 0,!0)]),"aside-top":m(()=>[l(n.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":m(()=>[l(n.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":m(()=>[l(n.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":m(()=>[l(n.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":m(()=>[l(n.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":m(()=>[l(n.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}}),Jn=y(Yn,[["__scopeId","data-v-cb0805a1"]]),Xn={class:"container"},Zn=["innerHTML"],Qn=["innerHTML"],xn=_({__name:"VPFooter",setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:a}=oe();return(n,i)=>r(e).footer&&r(t).footer!==!1?(s(),u("footer",{key:0,class:M(["VPFooter",{"has-sidebar":r(a)}])},[p("div",Xn,[r(e).footer.message?(s(),u("p",{key:0,class:"message",innerHTML:r(e).footer.message},null,8,Zn)):h("",!0),r(e).footer.copyright?(s(),u("p",{key:1,class:"copyright",innerHTML:r(e).footer.copyright},null,8,Qn)):h("",!0)])],2)):h("",!0)}}),ea=y(xn,[["__scopeId","data-v-c01e8608"]]);function ta(){const{theme:o,frontmatter:e}=V(),t=Ze([]),a=L(()=>t.value.length>0);return ye(()=>{t.value=je(e.value.outline??o.value.outline)}),{headers:t,hasLocalNav:a}}const oa=o=>(G("data-v-f9d4ca59"),o=o(),q(),o),na={class:"menu-text"},aa=oa(()=>p("span",{class:"vpi-chevron-right icon"},null,-1)),sa={class:"header"},ra={class:"outline"},ia=_({__name:"VPLocalNavOutlineDropdown",props:{headers:{},navHeight:{}},setup(o){const e=o,{theme:t}=V(),a=H(!1),n=H(0),i=H(),c=H();function d($){var S;(S=i.value)!=null&&S.contains($.target)||(a.value=!1)}ee(a,$=>{if($){document.addEventListener("click",d);return}document.removeEventListener("click",d)}),ze("Escape",()=>{a.value=!1}),ye(()=>{a.value=!1});function v(){a.value=!a.value,n.value=window.innerHeight+Math.min(window.scrollY-e.navHeight,0)}function g($){$.target.classList.contains("outline-link")&&(c.value&&(c.value.style.transition="none"),et(()=>{a.value=!1}))}function I(){a.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}return($,S)=>(s(),u("div",{class:"VPLocalNavOutlineDropdown",style:xe({"--vp-vh":n.value+"px"}),ref_key:"main",ref:i},[$.headers.length>0?(s(),u("button",{key:0,onClick:v,class:M({open:a.value})},[p("span",na,C(r(st)(r(t))),1),aa],2)):(s(),u("button",{key:1,onClick:I},C(r(t).returnToTopLabel||"Return to top"),1)),b(Ae,{name:"flyout"},{default:m(()=>[a.value?(s(),u("div",{key:0,ref_key:"items",ref:c,class:"items",onClick:g},[p("div",sa,[p("a",{class:"top-link",href:"#",onClick:I},C(r(t).returnToTopLabel||"Return to top"),1)]),p("div",ra,[b(rt,{headers:$.headers},null,8,["headers"])])],512)):h("",!0)]),_:1})],4))}}),la=y(ia,[["__scopeId","data-v-f9d4ca59"]]),ca=o=>(G("data-v-4b826de3"),o=o(),q(),o),ua={class:"container"},da=["aria-expanded"],va=ca(()=>p("span",{class:"vpi-align-left menu-icon"},null,-1)),ma={class:"menu-text"},pa=_({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(o){const{theme:e,frontmatter:t}=V(),{hasSidebar:a}=oe(),{headers:n}=ta(),{y:i}=tt(),c=H(0);re(()=>{c.value=parseInt(getComputedStyle(document.documentElement).getPropertyValue("--vp-nav-height"))}),ye(()=>{n.value=je(t.value.outline??e.value.outline)});const d=L(()=>n.value.length===0),v=L(()=>d.value&&!a.value),g=L(()=>({VPLocalNav:!0,"has-sidebar":a.value,empty:d.value,fixed:v.value}));return(I,$)=>r(t).layout!=="home"&&(!v.value||r(i)>=c.value)?(s(),u("div",{key:0,class:M(g.value)},[p("div",ua,[r(a)?(s(),u("button",{key:0,class:"menu","aria-expanded":I.open,"aria-controls":"VPSidebarNav",onClick:$[0]||($[0]=S=>I.$emit("open-menu"))},[va,p("span",ma,C(r(e).sidebarMenuLabel||"Menu"),1)],8,da)):h("",!0),b(la,{headers:r(n),navHeight:c.value},null,8,["headers","navHeight"])])],2)):h("",!0)}}),fa=y(pa,[["__scopeId","data-v-4b826de3"]]);function ha(){const o=H(!1);function e(){o.value=!0,window.addEventListener("resize",n)}function t(){o.value=!1,window.removeEventListener("resize",n)}function a(){o.value?t():e()}function n(){window.outerWidth>=768&&t()}const i=me();return ee(()=>i.path,t),{isScreenOpen:o,openScreen:e,closeScreen:t,toggleScreen:a}}const _a={},ga={class:"VPSwitch",type:"button",role:"switch"},ba={class:"check"},ka={key:0,class:"icon"};function $a(o,e){return s(),u("button",ga,[p("span",ba,[o.$slots.default?(s(),u("span",ka,[l(o.$slots,"default",{},void 0,!0)])):h("",!0)])])}const ya=y(_a,[["render",$a],["__scopeId","data-v-c5a026db"]]),lt=o=>(G("data-v-5e81030c"),o=o(),q(),o),La=lt(()=>p("span",{class:"vpi-sun sun"},null,-1)),Pa=lt(()=>p("span",{class:"vpi-moon moon"},null,-1)),Sa=_({__name:"VPSwitchAppearance",setup(o){const{isDark:e,theme:t}=V(),a=Le("toggle-appearance",()=>{e.value=!e.value}),n=H("");return Fe(()=>{n.value=e.value?t.value.lightModeSwitchTitle||"Switch to light theme":t.value.darkModeSwitchTitle||"Switch to dark theme"}),(i,c)=>(s(),k(ya,{title:n.value,class:"VPSwitchAppearance","aria-checked":r(e),onClick:r(a)},{default:m(()=>[La,Pa]),_:1},8,["title","aria-checked","onClick"]))}}),Ue=y(Sa,[["__scopeId","data-v-5e81030c"]]),Va={key:0,class:"VPNavBarAppearance"},wa=_({__name:"VPNavBarAppearance",setup(o){const{site:e}=V();return(t,a)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(s(),u("div",Va,[b(Ue)])):h("",!0)}}),Ta=y(wa,[["__scopeId","data-v-830f4e0c"]]),Ge=H();let ct=!1,Ne=0;function Ia(o){const e=H(!1);if(Pe){!ct&&Na(),Ne++;const t=ee(Ge,a=>{var n,i,c;a===o.el.value||(n=o.el.value)!=null&&n.contains(a)?(e.value=!0,(i=o.onFocus)==null||i.call(o)):(e.value=!1,(c=o.onBlur)==null||c.call(o))});Oe(()=>{t(),Ne--,Ne||Ea()})}return zt(e)}function Na(){document.addEventListener("focusin",ut),ct=!0,Ge.value=document.activeElement}function Ea(){document.removeEventListener("focusin",ut)}function ut(){Ge.value=document.activeElement}const za={class:"VPMenuLink"},Ca=_({__name:"VPMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,a)=>(s(),u("div",za,[b(x,{class:M({active:r(le)(r(e).relativePath,t.item.activeMatch||t.item.link,!!t.item.activeMatch)}),href:t.item.link,target:t.item.target,rel:t.item.rel},{default:m(()=>[te(C(t.item.text),1)]),_:1},8,["class","href","target","rel"])]))}}),Se=y(Ca,[["__scopeId","data-v-47efe451"]]),Ha={class:"VPMenuGroup"},Ma={key:0,class:"title"},Aa=_({__name:"VPMenuGroup",props:{text:{},items:{}},setup(o){return(e,t)=>(s(),u("div",Ha,[e.text?(s(),u("p",Ma,C(e.text),1)):h("",!0),(s(!0),u(B,null,K(e.items,a=>(s(),u(B,null,["link"in a?(s(),k(Se,{key:0,item:a},null,8,["item"])):h("",!0)],64))),256))]))}}),Ba=y(Aa,[["__scopeId","data-v-dd99de09"]]),Oa={class:"VPMenu"},Fa={key:0,class:"items"},Da=_({__name:"VPMenu",props:{items:{}},setup(o){return(e,t)=>(s(),u("div",Oa,[e.items?(s(),u("div",Fa,[(s(!0),u(B,null,K(e.items,a=>(s(),u(B,{key:JSON.stringify(a)},["link"in a?(s(),k(Se,{key:0,item:a},null,8,["item"])):"component"in a?(s(),k(Q(a.component),se({key:1,ref_for:!0},a.props),null,16)):(s(),k(Ba,{key:2,text:a.text,items:a.items},null,8,["text","items"]))],64))),128))])):h("",!0),l(e.$slots,"default",{},void 0,!0)]))}}),ja=y(Da,[["__scopeId","data-v-0007c525"]]),Ua=o=>(G("data-v-11ef3b07"),o=o(),q(),o),Ga=["aria-expanded","aria-label"],qa={key:0,class:"text"},Ra=["innerHTML"],Wa=Ua(()=>p("span",{class:"vpi-chevron-down text-icon"},null,-1)),Ka={key:1,class:"vpi-more-horizontal icon"},Ya={class:"menu"},Ja=_({__name:"VPFlyout",props:{icon:{},button:{},label:{},items:{}},setup(o){const e=H(!1),t=H();Ia({el:t,onBlur:a});function a(){e.value=!1}return(n,i)=>(s(),u("div",{class:"VPFlyout",ref_key:"el",ref:t,onMouseenter:i[1]||(i[1]=c=>e.value=!0),onMouseleave:i[2]||(i[2]=c=>e.value=!1)},[p("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":e.value,"aria-label":n.label,onClick:i[0]||(i[0]=c=>e.value=!e.value)},[n.button||n.icon?(s(),u("span",qa,[n.icon?(s(),u("span",{key:0,class:M([n.icon,"option-icon"])},null,2)):h("",!0),n.button?(s(),u("span",{key:1,innerHTML:n.button},null,8,Ra)):h("",!0),Wa])):(s(),u("span",Ka))],8,Ga),p("div",Ya,[b(ja,{items:n.items},{default:m(()=>[l(n.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}}),qe=y(Ja,[["__scopeId","data-v-11ef3b07"]]),Xa=["href","aria-label","innerHTML"],Za=_({__name:"VPSocialLink",props:{icon:{},link:{},ariaLabel:{}},setup(o){const e=o,t=L(()=>typeof e.icon=="object"?e.icon.svg:``);return(a,n)=>(s(),u("a",{class:"VPSocialLink no-icon",href:a.link,"aria-label":a.ariaLabel??(typeof a.icon=="string"?a.icon:""),target:"_blank",rel:"noopener",innerHTML:t.value},null,8,Xa))}}),Qa=y(Za,[["__scopeId","data-v-116c6058"]]),xa={class:"VPSocialLinks"},es=_({__name:"VPSocialLinks",props:{links:{}},setup(o){return(e,t)=>(s(),u("div",xa,[(s(!0),u(B,null,K(e.links,({link:a,icon:n,ariaLabel:i})=>(s(),k(Qa,{key:a,icon:n,link:a,ariaLabel:i},null,8,["icon","link","ariaLabel"]))),128))]))}}),Re=y(es,[["__scopeId","data-v-e883f8d0"]]),ts={key:0,class:"group translations"},os={class:"trans-title"},ns={key:1,class:"group"},as={class:"item appearance"},ss={class:"label"},rs={class:"appearance-action"},is={key:2,class:"group"},ls={class:"item social-links"},cs=_({__name:"VPNavBarExtra",setup(o){const{site:e,theme:t}=V(),{localeLinks:a,currentLang:n}=pe({correspondingLink:!0}),i=L(()=>a.value.length&&n.value.label||e.value.appearance||t.value.socialLinks);return(c,d)=>i.value?(s(),k(qe,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:m(()=>[r(a).length&&r(n).label?(s(),u("div",ts,[p("p",os,C(r(n).label),1),(s(!0),u(B,null,K(r(a),v=>(s(),k(Se,{key:v.link,item:v},null,8,["item"]))),128))])):h("",!0),r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(s(),u("div",ns,[p("div",as,[p("p",ss,C(r(t).darkModeSwitchLabel||"Appearance"),1),p("div",rs,[b(Ue)])])])):h("",!0),r(t).socialLinks?(s(),u("div",is,[p("div",ls,[b(Re,{class:"social-links-list",links:r(t).socialLinks},null,8,["links"])])])):h("",!0)]),_:1})):h("",!0)}}),us=y(cs,[["__scopeId","data-v-f78a1889"]]),ds=o=>(G("data-v-7ec5116e"),o=o(),q(),o),vs=["aria-expanded"],ms=ds(()=>p("span",{class:"container"},[p("span",{class:"top"}),p("span",{class:"middle"}),p("span",{class:"bottom"})],-1)),ps=[ms],fs=_({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(o){return(e,t)=>(s(),u("button",{type:"button",class:M(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:t[0]||(t[0]=a=>e.$emit("click"))},ps,10,vs))}}),hs=y(fs,[["__scopeId","data-v-7ec5116e"]]),_s=["innerHTML"],gs=_({__name:"VPNavBarMenuLink",props:{item:{}},setup(o){const{page:e}=V();return(t,a)=>(s(),k(x,{class:M({VPNavBarMenuLink:!0,active:r(le)(r(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:m(()=>[p("span",{innerHTML:t.item.text},null,8,_s)]),_:1},8,["class","href","noIcon","target","rel"]))}}),bs=y(gs,[["__scopeId","data-v-6589ed1c"]]),ks=_({__name:"VPNavBarMenuGroup",props:{item:{}},setup(o){const e=o,{page:t}=V(),a=i=>"component"in i?!1:"link"in i?le(t.value.relativePath,i.link,!!e.item.activeMatch):i.items.some(a),n=L(()=>a(e.item));return(i,c)=>(s(),k(qe,{class:M({VPNavBarMenuGroup:!0,active:r(le)(r(t).relativePath,i.item.activeMatch,!!i.item.activeMatch)||n.value}),button:i.item.text,items:i.item.items},null,8,["class","button","items"]))}}),$s=o=>(G("data-v-46876648"),o=o(),q(),o),ys={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},Ls=$s(()=>p("span",{id:"main-nav-aria-label",class:"visually-hidden"}," Main Navigation ",-1)),Ps=_({__name:"VPNavBarMenu",setup(o){const{theme:e}=V();return(t,a)=>r(e).nav?(s(),u("nav",ys,[Ls,(s(!0),u(B,null,K(r(e).nav,n=>(s(),u(B,{key:JSON.stringify(n)},["link"in n?(s(),k(bs,{key:0,item:n},null,8,["item"])):"component"in n?(s(),k(Q(n.component),se({key:1,ref_for:!0},n.props),null,16)):(s(),k(ks,{key:2,item:n},null,8,["item"]))],64))),128))])):h("",!0)}}),Ss=y(Ps,[["__scopeId","data-v-46876648"]]);function Vs(o){const{localeIndex:e,theme:t}=V();function a(n){var N,F,z;const i=n.split("."),c=(N=t.value.search)==null?void 0:N.options,d=c&&typeof c=="object",v=d&&((z=(F=c.locales)==null?void 0:F[e.value])==null?void 0:z.translations)||null,g=d&&c.translations||null;let I=v,$=g,S=o;const E=i.pop();for(const J of i){let X=null;const D=S==null?void 0:S[J];D&&(X=S=D);const ne=$==null?void 0:$[J];ne&&(X=$=ne);const Z=I==null?void 0:I[J];Z&&(X=I=Z),D||(S=X),ne||($=X),Z||(I=X)}return(I==null?void 0:I[E])??($==null?void 0:$[E])??(S==null?void 0:S[E])??""}return a}const ws=["aria-label"],Ts={class:"DocSearch-Button-Container"},Is=p("span",{class:"vp-icon DocSearch-Search-Icon"},null,-1),Ns={class:"DocSearch-Button-Placeholder"},Es=p("span",{class:"DocSearch-Button-Keys"},[p("kbd",{class:"DocSearch-Button-Key"}),p("kbd",{class:"DocSearch-Button-Key"},"K")],-1),Ye=_({__name:"VPNavBarSearchButton",setup(o){const t=Vs({button:{buttonText:"Search",buttonAriaLabel:"Search"}});return(a,n)=>(s(),u("button",{type:"button",class:"DocSearch DocSearch-Button","aria-label":r(t)("button.buttonAriaLabel")},[p("span",Ts,[Is,p("span",Ns,C(r(t)("button.buttonText")),1)]),Es],8,ws))}}),zs={class:"VPNavBarSearch"},Cs={id:"local-search"},Hs={key:1,id:"docsearch"},Ms=_({__name:"VPNavBarSearch",setup(o){const e=Ct(()=>Ht(()=>import("./VPLocalSearchBox.S6DOZPCa.js"),__vite__mapDeps([0,1]))),t=()=>null,{theme:a}=V(),n=H(!1),i=H(!1);re(()=>{});function c(){n.value||(n.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);ze("k",$=>{($.ctrlKey||$.metaKey)&&($.preventDefault(),g.value=!0)}),ze("/",$=>{v($)||($.preventDefault(),g.value=!0)});const I="local";return($,S)=>{var E;return s(),u("div",zs,[r(I)==="local"?(s(),u(B,{key:0},[g.value?(s(),k(r(e),{key:0,onClose:S[0]||(S[0]=N=>g.value=!1)})):h("",!0),p("div",Cs,[b(Ye,{onClick:S[1]||(S[1]=N=>g.value=!0)})])],64)):r(I)==="algolia"?(s(),u(B,{key:1},[n.value?(s(),k(r(t),{key:0,algolia:((E=r(a).search)==null?void 0:E.options)??r(a).algolia,onVnodeBeforeMount:S[2]||(S[2]=N=>i.value=!0)},null,8,["algolia"])):h("",!0),i.value?h("",!0):(s(),u("div",Hs,[b(Ye,{onClick:c})]))],64)):h("",!0)])}}}),As=_({__name:"VPNavBarSocialLinks",setup(o){const{theme:e}=V();return(t,a)=>r(e).socialLinks?(s(),k(Re,{key:0,class:"VPNavBarSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),Bs=y(As,[["__scopeId","data-v-6a13576c"]]),Os=["href","rel","target"],Fs={key:1},Ds={key:2},js=_({__name:"VPNavBarTitle",setup(o){const{site:e,theme:t}=V(),{hasSidebar:a}=oe(),{currentLang:n}=pe(),i=L(()=>{var v;return typeof t.value.logoLink=="string"?t.value.logoLink:(v=t.value.logoLink)==null?void 0:v.link}),c=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(),u("div",{class:M(["VPNavBarTitle",{"has-sidebar":r(a)}])},[p("a",{class:"title",href:i.value??r(De)(r(n).link),rel:c.value,target:d.value},[l(v.$slots,"nav-bar-title-before",{},void 0,!0),r(t).logo?(s(),k(ke,{key:0,class:"logo",image:r(t).logo},null,8,["image"])):h("",!0),r(t).siteTitle?(s(),u("span",Fs,C(r(t).siteTitle),1)):r(t).siteTitle===void 0?(s(),u("span",Ds,C(r(e).title),1)):h("",!0),l(v.$slots,"nav-bar-title-after",{},void 0,!0)],8,Os)],2))}}),Us=y(js,[["__scopeId","data-v-ff17a4ae"]]),Gs={class:"items"},qs={class:"title"},Rs=_({__name:"VPNavBarTranslations",setup(o){const{theme:e}=V(),{localeLinks:t,currentLang:a}=pe({correspondingLink:!0});return(n,i)=>r(t).length&&r(a).label?(s(),k(qe,{key:0,class:"VPNavBarTranslations",icon:"vpi-languages",label:r(e).langMenuLabel||"Change language"},{default:m(()=>[p("div",Gs,[p("p",qs,C(r(a).label),1),(s(!0),u(B,null,K(r(t),c=>(s(),k(Se,{key:c.link,item:c},null,8,["item"]))),128))])]),_:1},8,["label"])):h("",!0)}}),Ws=y(Rs,[["__scopeId","data-v-540bc5e8"]]),Ks=o=>(G("data-v-3fed1b83"),o=o(),q(),o),Ys={class:"wrapper"},Js={class:"container"},Xs={class:"title"},Zs={class:"content"},Qs={class:"content-body"},xs=Ks(()=>p("div",{class:"divider"},[p("div",{class:"divider-line"})],-1)),er=_({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(o){const e=o,{y:t}=tt(),{hasSidebar:a}=oe(),{frontmatter:n}=V(),i=H({});return Fe(()=>{i.value={"has-sidebar":a.value,home:n.value.layout==="home",top:t.value===0,"screen-open":e.isScreenOpen}}),(c,d)=>(s(),u("div",{class:M(["VPNavBar",i.value])},[p("div",Ys,[p("div",Js,[p("div",Xs,[b(Us,null,{"nav-bar-title-before":m(()=>[l(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":m(()=>[l(c.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),p("div",Zs,[p("div",Qs,[l(c.$slots,"nav-bar-content-before",{},void 0,!0),b(Ms,{class:"search"}),b(Ss,{class:"menu"}),b(Ws,{class:"translations"}),b(Ta,{class:"appearance"}),b(Bs,{class:"social-links"}),b(us,{class:"extra"}),l(c.$slots,"nav-bar-content-after",{},void 0,!0),b(hs,{class:"hamburger",active:c.isScreenOpen,onClick:d[0]||(d[0]=v=>c.$emit("toggle-screen"))},null,8,["active"])])])])]),xs],2))}}),tr=y(er,[["__scopeId","data-v-3fed1b83"]]),or={key:0,class:"VPNavScreenAppearance"},nr={class:"text"},ar=_({__name:"VPNavScreenAppearance",setup(o){const{site:e,theme:t}=V();return(a,n)=>r(e).appearance&&r(e).appearance!=="force-dark"&&r(e).appearance!=="force-auto"?(s(),u("div",or,[p("p",nr,C(r(t).darkModeSwitchLabel||"Appearance"),1),b(Ue)])):h("",!0)}}),sr=y(ar,[["__scopeId","data-v-0ceafb5f"]]),rr=_({__name:"VPNavScreenMenuLink",props:{item:{}},setup(o){const e=Le("close-screen");return(t,a)=>(s(),k(x,{class:"VPNavScreenMenuLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e),innerHTML:t.item.text},null,8,["href","target","rel","onClick","innerHTML"]))}}),ir=y(rr,[["__scopeId","data-v-8abda8b8"]]),lr=_({__name:"VPNavScreenMenuGroupLink",props:{item:{}},setup(o){const e=Le("close-screen");return(t,a)=>(s(),k(x,{class:"VPNavScreenMenuGroupLink",href:t.item.link,target:t.item.target,rel:t.item.rel,onClick:r(e)},{default:m(()=>[te(C(t.item.text),1)]),_:1},8,["href","target","rel","onClick"]))}}),dt=y(lr,[["__scopeId","data-v-ae02dd03"]]),cr={class:"VPNavScreenMenuGroupSection"},ur={key:0,class:"title"},dr=_({__name:"VPNavScreenMenuGroupSection",props:{text:{},items:{}},setup(o){return(e,t)=>(s(),u("div",cr,[e.text?(s(),u("p",ur,C(e.text),1)):h("",!0),(s(!0),u(B,null,K(e.items,a=>(s(),k(dt,{key:a.text,item:a},null,8,["item"]))),128))]))}}),vr=y(dr,[["__scopeId","data-v-dea7123a"]]),mr=o=>(G("data-v-f76bdb19"),o=o(),q(),o),pr=["aria-controls","aria-expanded"],fr=["innerHTML"],hr=mr(()=>p("span",{class:"vpi-plus button-icon"},null,-1)),_r=["id"],gr={key:0,class:"item"},br={key:1,class:"item"},kr={key:2,class:"group"},$r=_({__name:"VPNavScreenMenuGroup",props:{text:{},items:{}},setup(o){const e=o,t=H(!1),a=L(()=>`NavScreenGroup-${e.text.replace(" ","-").toLowerCase()}`);function n(){t.value=!t.value}return(i,c)=>(s(),u("div",{class:M(["VPNavScreenMenuGroup",{open:t.value}])},[p("button",{class:"button","aria-controls":a.value,"aria-expanded":t.value,onClick:n},[p("span",{class:"button-text",innerHTML:i.text},null,8,fr),hr],8,pr),p("div",{id:a.value,class:"items"},[(s(!0),u(B,null,K(i.items,d=>(s(),u(B,{key:JSON.stringify(d)},["link"in d?(s(),u("div",gr,[b(dt,{item:d},null,8,["item"])])):"component"in d?(s(),u("div",br,[(s(),k(Q(d.component),se({ref_for:!0},d.props,{"screen-menu":""}),null,16))])):(s(),u("div",kr,[b(vr,{items:d.items},null,8,["items"])]))],64))),128))],8,_r)],2))}}),yr=y($r,[["__scopeId","data-v-f76bdb19"]]),Lr={key:0,class:"VPNavScreenMenu"},Pr=_({__name:"VPNavScreenMenu",setup(o){const{theme:e}=V();return(t,a)=>r(e).nav?(s(),u("nav",Lr,[(s(!0),u(B,null,K(r(e).nav,n=>(s(),u(B,{key:JSON.stringify(n)},["link"in n?(s(),k(ir,{key:0,item:n},null,8,["item"])):"component"in n?(s(),k(Q(n.component),se({key:1,ref_for:!0},n.props,{"screen-menu":""}),null,16)):(s(),k(yr,{key:2,text:n.text||"",items:n.items},null,8,["text","items"]))],64))),128))])):h("",!0)}}),Sr=_({__name:"VPNavScreenSocialLinks",setup(o){const{theme:e}=V();return(t,a)=>r(e).socialLinks?(s(),k(Re,{key:0,class:"VPNavScreenSocialLinks",links:r(e).socialLinks},null,8,["links"])):h("",!0)}}),vt=o=>(G("data-v-eaa0f43e"),o=o(),q(),o),Vr=vt(()=>p("span",{class:"vpi-languages icon lang"},null,-1)),wr=vt(()=>p("span",{class:"vpi-chevron-down icon chevron"},null,-1)),Tr={class:"list"},Ir=_({__name:"VPNavScreenTranslations",setup(o){const{localeLinks:e,currentLang:t}=pe({correspondingLink:!0}),a=H(!1);function n(){a.value=!a.value}return(i,c)=>r(e).length&&r(t).label?(s(),u("div",{key:0,class:M(["VPNavScreenTranslations",{open:a.value}])},[p("button",{class:"title",onClick:n},[Vr,te(" "+C(r(t).label)+" ",1),wr]),p("ul",Tr,[(s(!0),u(B,null,K(r(e),d=>(s(),u("li",{key:d.link,class:"item"},[b(x,{class:"link",href:d.link},{default:m(()=>[te(C(d.text),1)]),_:2},1032,["href"])]))),128))])],2)):h("",!0)}}),Nr=y(Ir,[["__scopeId","data-v-eaa0f43e"]]),Er={class:"container"},zr=_({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(o){const e=H(null),t=ot(Pe?document.body:null);return(a,n)=>(s(),k(Ae,{name:"fade",onEnter:n[0]||(n[0]=i=>t.value=!0),onAfterLeave:n[1]||(n[1]=i=>t.value=!1)},{default:m(()=>[a.open?(s(),u("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:e,id:"VPNavScreen"},[p("div",Er,[l(a.$slots,"nav-screen-content-before",{},void 0,!0),b(Pr,{class:"menu"}),b(Nr,{class:"translations"}),b(sr,{class:"appearance"}),b(Sr,{class:"social-links"}),l(a.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):h("",!0)]),_:3}))}}),Cr=y(zr,[["__scopeId","data-v-334bb4cd"]]),Hr={key:0,class:"VPNav"},Mr=_({__name:"VPNav",setup(o){const{isScreenOpen:e,closeScreen:t,toggleScreen:a}=ha(),{frontmatter:n}=V(),i=L(()=>n.value.navbar!==!1);return nt("close-screen",t),$e(()=>{Pe&&document.documentElement.classList.toggle("hide-nav",!i.value)}),(c,d)=>i.value?(s(),u("header",Hr,[b(tr,{"is-screen-open":r(e),onToggleScreen:r(a)},{"nav-bar-title-before":m(()=>[l(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":m(()=>[l(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":m(()=>[l(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":m(()=>[l(c.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),b(Cr,{open:r(e)},{"nav-screen-content-before":m(()=>[l(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":m(()=>[l(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])])):h("",!0)}}),Ar=y(Mr,[["__scopeId","data-v-a6f969fc"]]),mt=o=>(G("data-v-a9de9e44"),o=o(),q(),o),Br=["role","tabindex"],Or=mt(()=>p("div",{class:"indicator"},null,-1)),Fr=mt(()=>p("span",{class:"vpi-chevron-right caret-icon"},null,-1)),Dr=[Fr],jr={key:1,class:"items"},Ur=_({__name:"VPSidebarItem",props:{item:{},depth:{}},setup(o){const e=o,{collapsed:t,collapsible:a,isLink:n,isActiveLink:i,hasActiveLink:c,hasChildren:d,toggle:v}=so(L(()=>e.item)),g=L(()=>d.value?"section":"div"),I=L(()=>n.value?"a":"div"),$=L(()=>d.value?e.depth+2===7?"p":`h${e.depth+2}`:"p"),S=L(()=>n.value?void 0:"button"),E=L(()=>[[`level-${e.depth}`],{collapsible:a.value},{collapsed:t.value},{"is-link":n.value},{"is-active":i.value},{"has-active":c.value}]);function N(z){"key"in z&&z.key!=="Enter"||!e.item.link&&v()}function F(){e.item.link&&v()}return(z,J)=>{const X=ce("VPSidebarItem",!0);return s(),k(Q(g.value),{class:M(["VPSidebarItem",E.value])},{default:m(()=>[z.item.text?(s(),u("div",se({key:0,class:"item",role:S.value},Mt(z.item.items?{click:N,keydown:N}:{},!0),{tabindex:z.item.items&&0}),[Or,z.item.link?(s(),k(x,{key:0,tag:I.value,class:"link",href:z.item.link,rel:z.item.rel,target:z.item.target},{default:m(()=>[(s(),k(Q($.value),{class:"text",innerHTML:z.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href","rel","target"])):(s(),k(Q($.value),{key:1,class:"text",innerHTML:z.item.text},null,8,["innerHTML"])),z.item.collapsed!=null&&z.item.items&&z.item.items.length?(s(),u("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:F,onKeydown:At(F,["enter"]),tabindex:"0"},Dr,32)):h("",!0)],16,Br)):h("",!0),z.item.items&&z.item.items.length?(s(),u("div",jr,[z.depth<5?(s(!0),u(B,{key:0},K(z.item.items,D=>(s(),k(X,{key:D.text,item:D,depth:z.depth+1},null,8,["item","depth"]))),128)):h("",!0)])):h("",!0)]),_:1},8,["class"])}}}),Gr=y(Ur,[["__scopeId","data-v-a9de9e44"]]),qr=_({__name:"VPSidebarGroup",props:{items:{}},setup(o){const e=H(!0);let t=null;return re(()=>{t=setTimeout(()=>{t=null,e.value=!1},300)}),Bt(()=>{t!=null&&(clearTimeout(t),t=null)}),(a,n)=>(s(!0),u(B,null,K(a.items,i=>(s(),u("div",{key:i.text,class:M(["group",{"no-transition":e.value}])},[b(Gr,{item:i,depth:0},null,8,["item"])],2))),128))}}),Rr=y(qr,[["__scopeId","data-v-9c4bd70d"]]),pt=o=>(G("data-v-e024fac9"),o=o(),q(),o),Wr=pt(()=>p("div",{class:"curtain"},null,-1)),Kr={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Yr=pt(()=>p("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),Jr=_({__name:"VPSidebar",props:{open:{type:Boolean}},setup(o){const{sidebarGroups:e,hasSidebar:t}=oe(),a=o,n=H(null),i=ot(Pe?document.body:null);ee([a,n],()=>{var d;a.open?(i.value=!0,(d=n.value)==null||d.focus()):i.value=!1},{immediate:!0,flush:"post"});const c=H(0);return ee(e,()=>{c.value+=1},{deep:!0}),(d,v)=>r(t)?(s(),u("aside",{key:0,class:M(["VPSidebar",{open:d.open}]),ref_key:"navEl",ref:n,onClick:v[0]||(v[0]=Ot(()=>{},["stop"]))},[Wr,p("nav",Kr,[Yr,l(d.$slots,"sidebar-nav-before",{},void 0,!0),(s(),k(Rr,{items:r(e),key:c.value},null,8,["items"])),l(d.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):h("",!0)}}),Xr=y(Jr,[["__scopeId","data-v-e024fac9"]]),Zr=_({__name:"VPSkipLink",setup(o){const e=me(),t=H();ee(()=>e.path,()=>t.value.focus());function a({target:n}){const i=document.getElementById(decodeURIComponent(n.hash).slice(1));if(i){const c=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",c)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",c),i.focus(),window.scrollTo(0,0)}}return(n,i)=>(s(),u(B,null,[p("span",{ref_key:"backToTop",ref:t,tabindex:"-1"},null,512),p("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:a}," Skip to content ")],64))}}),Qr=y(Zr,[["__scopeId","data-v-497b75be"]]),xr=_({__name:"Layout",setup(o){const{isOpen:e,open:t,close:a}=oe(),n=me();ee(()=>n.path,a),ao(e,a);const{frontmatter:i}=V(),c=Ft(),d=L(()=>!!c["home-hero-image"]);return nt("hero-image-slot-exists",d),(v,g)=>{const I=ce("Content");return r(i).layout!==!1?(s(),u("div",{key:0,class:M(["Layout",r(i).pageClass])},[l(v.$slots,"layout-top",{},void 0,!0),b(Qr),b(Gt,{class:"backdrop",show:r(e),onClick:r(a)},null,8,["show","onClick"]),b(Ar,null,{"nav-bar-title-before":m(()=>[l(v.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":m(()=>[l(v.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":m(()=>[l(v.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":m(()=>[l(v.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":m(()=>[l(v.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":m(()=>[l(v.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),b(fa,{open:r(e),onOpenMenu:r(t)},null,8,["open","onOpenMenu"]),b(Xr,{open:r(e)},{"sidebar-nav-before":m(()=>[l(v.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":m(()=>[l(v.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),b(Jn,null,{"page-top":m(()=>[l(v.$slots,"page-top",{},void 0,!0)]),"page-bottom":m(()=>[l(v.$slots,"page-bottom",{},void 0,!0)]),"not-found":m(()=>[l(v.$slots,"not-found",{},void 0,!0)]),"home-hero-before":m(()=>[l(v.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info-before":m(()=>[l(v.$slots,"home-hero-info-before",{},void 0,!0)]),"home-hero-info":m(()=>[l(v.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-info-after":m(()=>[l(v.$slots,"home-hero-info-after",{},void 0,!0)]),"home-hero-actions-after":m(()=>[l(v.$slots,"home-hero-actions-after",{},void 0,!0)]),"home-hero-image":m(()=>[l(v.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":m(()=>[l(v.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":m(()=>[l(v.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":m(()=>[l(v.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":m(()=>[l(v.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":m(()=>[l(v.$slots,"doc-before",{},void 0,!0)]),"doc-after":m(()=>[l(v.$slots,"doc-after",{},void 0,!0)]),"doc-top":m(()=>[l(v.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":m(()=>[l(v.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":m(()=>[l(v.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":m(()=>[l(v.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":m(()=>[l(v.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":m(()=>[l(v.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":m(()=>[l(v.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":m(()=>[l(v.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),b(ea),l(v.$slots,"layout-bottom",{},void 0,!0)],2)):(s(),k(I,{key:1}))}}}),ei=y(xr,[["__scopeId","data-v-0dd53a6c"]]),ti={Layout:ei,enhanceApp:({app:o})=>{o.component("Badge",Dt)}};/*! 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]:{},a=window.Promise||function(P){function w(){}P(w,w)},n=function(P){var w=P.target;if(w===fe){N();return}D.indexOf(w)!==-1&&F({target:w})},i=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)}},c=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=be(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,W){return[].concat(T,Xe(W))},[]):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)}),ne.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)}),ne=ne.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},W=void 0,Y=void 0;if(A.container)if(A.container instanceof Object)T=ie({},T,A.container),W=T.width-T.left-T.right-A.margin*2,Y=T.height-T.top-T.bottom-A.margin*2;else{var ue=be(A.container)?A.container:document.querySelector(A.container),ae=ue.getBoundingClientRect(),Ve=ae.width,ft=ae.height,ht=ae.left,_t=ae.top;T=ie({},T,{width:Ve,height:ft,left:ht,top:_t})}W=W||T.width-A.margin*2,Y=Y||T.height-A.margin*2;var ve=f.zoomedHd||f.original,gt=Je(ve)?W:ve.naturalWidth||W,bt=Je(ve)?Y:ve.naturalHeight||Y,he=ve.getBoundingClientRect(),kt=he.top,$t=he.left,we=he.width,Te=he.height,yt=Math.min(Math.max(we,gt),W)/we,Lt=Math.min(Math.max(Te,bt),Y)/Te,Ie=Math.min(yt,Lt),Pt=(-$t+(W-we)/2+A.margin+T.left)/Ie,St=(-kt+(Y-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 a(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 W=D;f.original=W[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=ai(f.original),document.body.appendChild(fe),A.template){var Y=be(A.template)?A.template:document.querySelector(A.template);f.template=document.createElement("div"),f.template.appendChild(Y.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 ae=f.zoomedHd.addEventListener("load",function(){f.zoomedHd.removeEventListener("load",ae),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 a(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})},z=function(){return A},J=function(){return D},X=function(){return f.original},D=[],ne=[],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=ni(A.background);document.addEventListener("click",n),document.addEventListener("keyup",c),document.addEventListener("scroll",i),window.addEventListener("resize",N);var U={open:E,close:N,toggle:F,update:d,clone:v,attach:g,detach:I,on:$,off:S,getOptions:z,getImages:J,getZoomedImage:X};return U};function ri(o,e){e===void 0&&(e={});var t=e.insertAt;if(!(typeof document>"u")){var a=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t==="top"&&a.firstChild?a.insertBefore(n,a.firstChild):a.appendChild(n),n.styleSheet?n.styleSheet.cssText=o:n.appendChild(document.createTextNode(o))}}var ii=".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}";ri(ii);const ci={...ti,setup(){const o=me(),e=()=>{new si("[data-zoomable]",{background:"var(--vp-c-bg)"})};re(()=>{e()}),ee(()=>o.path,()=>et(()=>e()))}};export{ci as R,Vs as c,V as u}; diff --git a/.vitepress/dist/assets/index.md.DPrr-hLe.js b/.vitepress/dist/assets/index.md.DPrr-hLe.js new file mode 100644 index 0000000..720bcb4 --- /dev/null +++ b/.vitepress/dist/assets/index.md.DPrr-hLe.js @@ -0,0 +1 @@ +import{_ as l,c as t,o as i}from"./chunks/framework.DHgIdERs.js";const o=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"Cool Admin(Java版)","text":"一个很酷的后台管理系统开发框架","tagline":"开源免费、Ai编码、流程编排、扩展插件、模块化","actions":[{"theme":"brand","text":"快速开始","link":"/src/guide/quick.md"},{"theme":"alt","text":"源码下载","link":"/src/introduce/src"}],"image":{"src":"/show/admin.png","alt":"cool-admin"}},"features":[{"title":"Ai编码+流程编排","icon":"","details":"框架结合Ai大模型微调训练,让Ai更懂框架,只需少量文字描述即可零代码实现部分功能。流程编排Ai开发必备神器,只需拖动配置,即可实现Ai开发的核心功能。"},{"title":"快速开发","icon":"","details":"通过Ai自动化编码,简单功能实现零代码开发,复杂的功能也只需少量代码配置即可。大大提高软件研发速度,快速迭代,快速试错降低成本,提高市场竞争力。"},{"title":"扩展插件","icon":"","details":"支持插件扩展,通过插件扩展功能,实现功能快速迭代。如支付、文件上传、短信等功能可以通过安装插件的方式动态继承,不需要或者需要更换,卸载重装即可,配置不用写在代码里,代码简洁清晰。"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),a={name:"index.md"};function c(h,e,d,p,s,v){return i(),t("div")}const m=l(a,[["render",c]]);export{o as __pageData,m as default}; diff --git a/.vitepress/dist/assets/index.md.DPrr-hLe.lean.js b/.vitepress/dist/assets/index.md.DPrr-hLe.lean.js new file mode 100644 index 0000000..720bcb4 --- /dev/null +++ b/.vitepress/dist/assets/index.md.DPrr-hLe.lean.js @@ -0,0 +1 @@ +import{_ as l,c as t,o as i}from"./chunks/framework.DHgIdERs.js";const o=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"Cool Admin(Java版)","text":"一个很酷的后台管理系统开发框架","tagline":"开源免费、Ai编码、流程编排、扩展插件、模块化","actions":[{"theme":"brand","text":"快速开始","link":"/src/guide/quick.md"},{"theme":"alt","text":"源码下载","link":"/src/introduce/src"}],"image":{"src":"/show/admin.png","alt":"cool-admin"}},"features":[{"title":"Ai编码+流程编排","icon":"","details":"框架结合Ai大模型微调训练,让Ai更懂框架,只需少量文字描述即可零代码实现部分功能。流程编排Ai开发必备神器,只需拖动配置,即可实现Ai开发的核心功能。"},{"title":"快速开发","icon":"","details":"通过Ai自动化编码,简单功能实现零代码开发,复杂的功能也只需少量代码配置即可。大大提高软件研发速度,快速迭代,快速试错降低成本,提高市场竞争力。"},{"title":"扩展插件","icon":"","details":"支持插件扩展,通过插件扩展功能,实现功能快速迭代。如支付、文件上传、短信等功能可以通过安装插件的方式动态继承,不需要或者需要更换,卸载重装即可,配置不用写在代码里,代码简洁清晰。"}]},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":null}'),a={name:"index.md"};function c(h,e,d,p,s,v){return i(),t("div")}const m=l(a,[["render",c]]);export{o as __pageData,m as default}; diff --git a/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 b/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b6b603d596933f026dfecf98550bbe4d0876276b GIT binary patch literal 43112 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 literal 0 HcmV?d00001 diff --git a/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 b/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..def40a4f658cf8a9f7029c98931f5c9ff5a00910 GIT binary patch literal 31300 zcmV(?K-a%_Pew8T0RR910D43K6951J0MIl50C~{>1ONa400000000000000000000 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 literal 0 HcmV?d00001 diff --git a/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 b/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a3c16ca40b2a8f454c34cfa91996ec99ae2e4aa0 GIT binary patch literal 32564 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 b6r&82^QQ+ZZ1?Zre-i}g|91_a`#}W>14e7b literal 0 HcmV?d00001 diff --git a/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 b/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2210a899edaeb06655f7bc50e7f94444da140b94 GIT binary patch literal 120840 zcmV)DK*7IvPew8T0RR910oVut6951J1HHHa0oRcL1ONa400000000000000000000 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̍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�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

l(X_I+GK&R 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 H00000K--!s literal 0 HcmV?d00001 diff --git a/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 b/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..36d67487dcf5fbe3dc6d0a6b01cf4d29dc997765 GIT binary patch literal 16272 zcmV;BKX1TyPew8T0RR9106&lb6951J0Hgo_06!c61ONa400000000000000000000 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 G0RR9|PM1{x literal 0 HcmV?d00001 diff --git a/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 b/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..2bed1e85e8b20cb3903206a6cace251c52bdd8c3 GIT binary patch literal 29920 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 literal 0 HcmV?d00001 diff --git a/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 b/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..9a8d1e2b5ef22b97801781478d477685dd6119f3 GIT binary patch literal 110160 zcmV)XK&`)bPew8T0RR910j^L06951J1C_)80j=5q1ONa400000000000000000000 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 literal 0 HcmV?d00001 diff --git a/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 b/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..07d3c53aef14e7e3aec6b11684395f2833e0b3d5 GIT binary patch literal 67792 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 IZR%D40KZ@npa1{> literal 0 HcmV?d00001 diff --git a/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 b/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..57bdc22ae88555c6217307e4064a642f83d642b1 GIT binary patch literal 14072 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 literal 0 HcmV?d00001 diff --git a/.vitepress/dist/assets/src_about_index.md.aQxHy4hT.js b/.vitepress/dist/assets/src_about_index.md.aQxHy4hT.js new file mode 100644 index 0000000..dcd0a37 --- /dev/null +++ b/.vitepress/dist/assets/src_about_index.md.aQxHy4hT.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as t,a4 as r,a5 as o,a6 as i,a7 as s}from"./chunks/framework.DHgIdERs.js";const x=JSON.parse('{"title":"交流合作","description":"","frontmatter":{},"headers":[],"relativePath":"src/about/index.md","filePath":"src/about/index.md","lastUpdated":null}'),n={name:"src/about/index.md"},l=r('

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

微信 ​

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

抖音 ​

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

B 站 ​

COOL 团队哔哩哔哩官方账户

公众号 ​

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

',13),c=[l];function d(_,h,p,m,u,b){return t(),e("div",null,c)}const q=a(n,[["render",d]]);export{x as __pageData,q as default}; diff --git a/.vitepress/dist/assets/src_about_index.md.aQxHy4hT.lean.js b/.vitepress/dist/assets/src_about_index.md.aQxHy4hT.lean.js new file mode 100644 index 0000000..0d3e354 --- /dev/null +++ b/.vitepress/dist/assets/src_about_index.md.aQxHy4hT.lean.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as t,a4 as r,a5 as o,a6 as i,a7 as s}from"./chunks/framework.DHgIdERs.js";const x=JSON.parse('{"title":"交流合作","description":"","frontmatter":{},"headers":[],"relativePath":"src/about/index.md","filePath":"src/about/index.md","lastUpdated":null}'),n={name:"src/about/index.md"},l=r("",13),c=[l];function d(_,h,p,m,u,b){return t(),e("div",null,c)}const q=a(n,[["render",d]]);export{x as __pageData,q as default}; diff --git a/.vitepress/dist/assets/src_guide_ai.md.Drq5yZij.js b/.vitepress/dist/assets/src_guide_ai.md.Drq5yZij.js new file mode 100644 index 0000000..8cbd73c --- /dev/null +++ b/.vitepress/dist/assets/src_guide_ai.md.Drq5yZij.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as s,j as a,a as o,a8 as i}from"./chunks/framework.DHgIdERs.js";const $=JSON.parse('{"title":"Ai 编码","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/ai.md","filePath":"src/guide/ai.md","lastUpdated":null}'),r={name:"src/guide/ai.md"},c=a("h1",{id:"ai-编码",tabindex:"-1"},[o("Ai 编码 "),a("a",{class:"header-anchor",href:"#ai-编码","aria-label":'Permalink to "Ai 编码"'},"​")],-1),n=a("p",null,"coming soon!!!",-1),d=a("p",null,[a("img",{src:i,alt:"","data-zoomable":""})],-1),l=[c,n,d];function _(p,m,h,u,f,g){return s(),t("div",null,l)}const b=e(r,[["render",_]]);export{$ as __pageData,b as default}; diff --git a/.vitepress/dist/assets/src_guide_ai.md.Drq5yZij.lean.js b/.vitepress/dist/assets/src_guide_ai.md.Drq5yZij.lean.js new file mode 100644 index 0000000..8cbd73c --- /dev/null +++ b/.vitepress/dist/assets/src_guide_ai.md.Drq5yZij.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as s,j as a,a as o,a8 as i}from"./chunks/framework.DHgIdERs.js";const $=JSON.parse('{"title":"Ai 编码","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/ai.md","filePath":"src/guide/ai.md","lastUpdated":null}'),r={name:"src/guide/ai.md"},c=a("h1",{id:"ai-编码",tabindex:"-1"},[o("Ai 编码 "),a("a",{class:"header-anchor",href:"#ai-编码","aria-label":'Permalink to "Ai 编码"'},"​")],-1),n=a("p",null,"coming soon!!!",-1),d=a("p",null,[a("img",{src:i,alt:"","data-zoomable":""})],-1),l=[c,n,d];function _(p,m,h,u,f,g){return s(),t("div",null,l)}const b=e(r,[["render",_]]);export{$ as __pageData,b as default}; diff --git a/.vitepress/dist/assets/src_guide_cache.md.65sPqASp.js b/.vitepress/dist/assets/src_guide_cache.md.65sPqASp.js new file mode 100644 index 0000000..ccc23de --- /dev/null +++ b/.vitepress/dist/assets/src_guide_cache.md.65sPqASp.js @@ -0,0 +1,34 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const y=JSON.parse('{"title":"缓存","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/cache.md","filePath":"src/guide/cache.md","lastUpdated":null}'),h={name:"src/guide/cache.md"},l=n(`

缓存 ​

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

  • caffeine 无需额外安装软件,由 Ben Manes 开发的一个 Java 缓存库,旨在提供高性能、高效的缓存解决方案。
  • redis 需安装redis,提供了一种高效且可靠的解决方案,能够显著提升应用程序的性能和响应速度。
yaml
spring:
+  # caffeine 缓存
+  cache:
+    type: caffeine
+    file: cache
+
+  #redis 缓存
+#  cache:
+#    type: redis
+#  data:
+#    redis:
+#      host: 127.0.0.1
+#      port: 6379
+#      database: 0
+#      password:

可以选择你想使用的缓存,性能要求比较高或有分布式部署需求的建议配置成 redis

使用 ​

java
@CacheConfig(cacheNames = {"comm"})
+@Service
+public class DemoCacheServiceImpl implements DemoCacheService {
+    @Cacheable(key = "targetClass + methodName +#p0")
+    @Override
+    public Object test(String id) {
+        System.out.println("我被调用了");
+        return "我被缓存了";
+    }
+}
  • 框架特有的通用工具类,CoolCache
java
@Service
+public class DemoCacheServiceImpl implements DemoCacheService {
+    @Resource
+    CoolCache coolCache;
+
+    @Override
+    public Object test(String id) {
+        coolCache.set("a", 1);
+        return coolCache.get("a", Integer.class);
+    }
+}
`,10),p=[l];function t(e,k,E,r,d,c){return a(),i("div",null,p)}const o=s(h,[["render",t]]);export{y as __pageData,o as default}; diff --git a/.vitepress/dist/assets/src_guide_cache.md.65sPqASp.lean.js b/.vitepress/dist/assets/src_guide_cache.md.65sPqASp.lean.js new file mode 100644 index 0000000..7f1182f --- /dev/null +++ b/.vitepress/dist/assets/src_guide_cache.md.65sPqASp.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const y=JSON.parse('{"title":"缓存","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/cache.md","filePath":"src/guide/cache.md","lastUpdated":null}'),h={name:"src/guide/cache.md"},l=n("",10),p=[l];function t(e,k,E,r,d,c){return a(),i("div",null,p)}const o=s(h,[["render",t]]);export{y as __pageData,o as default}; diff --git a/.vitepress/dist/assets/src_guide_controller.md.BBikHZHC.js b/.vitepress/dist/assets/src_guide_controller.md.BBikHZHC.js new file mode 100644 index 0000000..cd19d14 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_controller.md.BBikHZHC.js @@ -0,0 +1,80 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const F=JSON.parse('{"title":"控制器","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/controller.md","filePath":"src/guide/controller.md","lastUpdated":null}'),h={name:"src/guide/controller.md"},t=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
+    protected void init(HttpServletRequest request, JSONObject requestParams) {
+        // 可以在这边实现一下列表数据排序规则,查询条件过滤,返回哪些字段等
+    }
+}

这样就默认实现了以下六个接口:

  • POST 新增
  • POST 删除
  • POST 修改
  • POST 分页查询
  • POST 查询列表
  • GET 根据列表查询单个信息 等 6 个接口

查询配置 ​

java
@Tag(name = "测试CURD", description = "测试CURD")
+@CoolRestController(value = "/cool", api = {"add", "delete", "update", "page", "list", "info"})
+public class AdminDemoInfoController extends BaseController<DemoService, DemoEntity> {
+    @Override
+    protected void init(HttpServletRequest request, JSONObject requestParams) {
+        setPageOption(createOp() // 分页查询配置
+                .fieldEq("status") // 字段全匹配,对应请求参数中同名参数
+                .keyWordLikeFields("name", "phone") // 需要模糊查询的字段,对应请求参数中的 keyWord
+                .select("name", "phone", "age") // 返回字段
+                .queryWrapper(Wrappers.<DemoEntity>query().eq("name", requestParams.getStr("name")))); // 其他查询方式 具体看 https://baomidou.com/文档
+        setListOption(createOp()); // 列表查询 跟分页查询一样
+    }
+}

请求参数 ​

为了方便获取参数,框架封装了一个请求属性,将 URL、表单、body

等参数封装在了一个JSONObject requestParams,开发者可以从中方便的获取各种参数;

java
@Tag(name = "测试CURD", description = "测试CURD")
+@CoolRestController(value = "/cool", api = {"add", "delete", "update", "page", "list", "info"})
+public class AdminDemoInfoController extends BaseController<DemoService, DemoEntity> {
+    @Override
+    protected void init(HttpServletRequest request, JSONObject requestParams) {
+        // 可以在这边实现一下列表数据排序规则,查询条件过滤,返回哪些字段等
+    }
+    
+    @PostMapping("/test")
+    public R test(@RequestAttribute JSONObject requestparams, String user) {
+        System.out.println(requestparams.getStr("user"));
+        return R.ok();
+    }
+}

重写实现 ​

默认实现了通用的六个接口方法,如果不满足需求,可以在对应的 service 中重写方法。

java
@Tag(name = "测试CURD", description = "测试CURD")
+@CoolRestController(value = "/cool", api = {"add", "delete", "update", "page", "list", "info"})
+public class AdminDemoInfoController extends BaseController<DemoService, DemoEntity> {
+    @Override
+    protected void init(HttpServletRequest request, JSONObject requestParams) {
+        // 可以在这边实现一下列表数据排序规则,查询条件过滤,返回哪些字段等
+    }
+
+    @Override
+    @PostMapping("/page")
+    protected R page(JSONObject requestParams, CrudOption<DemoEntity> option) {
+        // 重写逻辑
+        return super.page(requestParams, option);
+    }
+}

同样也可以对service进行重写

java
@Service
+public class DemoServiceImpl extends BaseServiceImpl<DemoMapper, DemoEntity> implements DemoService {
+    @Override
+    public Object page(JSONObject requestParams, Page<DemoEntity> page, QueryWrapper<DemoEntity> queryWrapper) {
+        // 重写逻辑
+        return super.page(requestParams, page, queryWrapper);
+    }
+}

和传统的controller对比一下是简化了不少,接下来我们看看实现的原理

原理 ​

接口路由规则 ​

// 模块目录
+├── modules
+│   └── demo(模块名)
+│   │    └── controller(接口)
+│   │    │     └── admin(后端接口)
+│   │    │     │     └── AdminDemoInfoController.java
+│   │    │     └── app(前端接口)
+│   │    │     │     └── AppDemoInfoController.java
  • 生成的路由前缀为: /admin/demo/info/xxx与/app/demo/info/xxx
  • 规则为: admin(app)/模块名/AdminDemoInfoController转成小写替换掉admin(app)、模块名和controller

自定义路由注解 ​

java
public @interface CoolRestController {
+
+    @AliasFor(annotation = RequestMapping.class)
+    String name() default "";
+
+    @AliasFor(annotation = RequestMapping.class)
+    String[] value() default {};
+
+    String[] api() default {};
+}

重写getMappingForMethod ​

我们不直接使用 spring自带的注解,而是对它做一层封装,controller上加了这个注解后

将由以下这个类实现自动配置模块路由,该类继承了 spring的RequestMappingHandlerMapping,并重写了getMappingForMethod方法

根据一定规则生成path,返回给spring做解析。

java
public class AutoPrefixUrlMapping extends RequestMappingHandlerMapping {
+
+    @Override
+    protected RequestMappingInfo getMappingForMethod(Method method, Class<?> handlerType) {
+        CoolRestController[] annotations = handlerType.getAnnotationsByType(CoolRestController.class);
+        RequestMappingInfo info = super.getMappingForMethod(method, handlerType);
+        // ... 按规则组装 path
+        info = info.mutate().paths(path).build().combine(info);
+        return info;
+    }
+}
`,29),k=[t];function l(p,e,E,r,d,g){return a(),i("div",null,k)}const o=s(h,[["render",l]]);export{F as __pageData,o as default}; diff --git a/.vitepress/dist/assets/src_guide_controller.md.BBikHZHC.lean.js b/.vitepress/dist/assets/src_guide_controller.md.BBikHZHC.lean.js new file mode 100644 index 0000000..9d43c7b --- /dev/null +++ b/.vitepress/dist/assets/src_guide_controller.md.BBikHZHC.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const F=JSON.parse('{"title":"控制器","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/controller.md","filePath":"src/guide/controller.md","lastUpdated":null}'),h={name:"src/guide/controller.md"},t=n("",29),k=[t];function l(p,e,E,r,d,g){return a(),i("div",null,k)}const o=s(h,[["render",l]]);export{F as __pageData,o as default}; diff --git a/.vitepress/dist/assets/src_guide_exception.md.D-kiR-tz.js b/.vitepress/dist/assets/src_guide_exception.md.D-kiR-tz.js new file mode 100644 index 0000000..385ee02 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_exception.md.D-kiR-tz.js @@ -0,0 +1,59 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const F=JSON.parse('{"title":"统一异常处理","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/exception.md","filePath":"src/guide/exception.md","lastUpdated":null}'),h={name:"src/guide/exception.md"},k=n(`

统一异常处理 ​

提供了简化的业务异常抛出工具

  • CoolPreconditions.check(check != null, "用户名已存在");

异常统一捕获 ​

java
@RestControllerAdvice
+@Slf4j
+public class CoolExceptionHandler {
+
+    @ExceptionHandler(CoolException.class)
+    public R handleRRException(CoolException e) {
+        R r = new R();
+        r.put("code", e.getCode());
+        r.put("message", e.getMessage());
+
+        return r;
+    }
+
+    @ExceptionHandler(DuplicateKeyException.class)
+    public R handleDuplicateKeyException(DuplicateKeyException e) {
+        log.error(e.getMessage(), e);
+        return R.error("已存在该记录");
+    }
+
+    @ExceptionHandler(BadCredentialsException.class)
+    public R handleBadCredentialsException(BadCredentialsException e) {
+        log.error(e.getMessage(), e);
+        return R.error("账户密码不正确");
+    }
+
+    @ExceptionHandler(HttpRequestMethodNotSupportedException.class)
+    public R handleHttpRequestMethodNotSupportedException(HttpRequestMethodNotSupportedException e) {
+        log.error(e.getMessage(), e);
+        return R.error("不支持该请求方式,请区分POST、GET等请求方式是否正确");
+    }
+
+    @ExceptionHandler(IllegalArgumentException.class)
+    public R handleIllegalArgumentException(IllegalArgumentException e) {
+        log.error(e.getMessage(), e);
+        return R.error(e.getMessage());
+    }
+
+    @ExceptionHandler(Exception.class)
+    public R handleException(Exception e) {
+        log.error(e.getMessage(), e);
+        return R.error();
+    }
+}

一般抛异常写法

java
public Long add(JSONObject requestParams, BaseSysUserEntity entity) {
+    BaseSysUserEntity check = getOne(
+            Wrappers.<BaseSysUserEntity>lambdaQuery().eq(BaseSysUserEntity::getUsername, entity.getUsername()));
+    if (check != null) {
+        throw new CoolException("用户名已存在"); 
+    }
+    entity.setPassword(MD5.create().digestHex(entity.getPassword()));
+    super.add(requestParams, entity);
+    return entity.getId();
+}

系统提供了 业务校验的工具,无需手动通过 if 判断,在 手动抛异常 通过 CoolPreconditions.check 方法第一个参数如果为 true 即抛异常,异常信息为 "用户名已存在", 会更加简洁

java
public Long add(JSONObject requestParams, BaseSysUserEntity entity) {
+    BaseSysUserEntity check = getOne(
+            Wrappers.<BaseSysUserEntity>lambdaQuery().eq(BaseSysUserEntity::getUsername, entity.getUsername()));
+    CoolPreconditions.check(check != null, "用户名已存在");
+    entity.setPassword(MD5.create().digestHex(entity.getPassword()));
+    super.add(requestParams, entity);
+    return entity.getId();
+}
`,9),t=[k];function l(p,e,E,r,d,g){return a(),i("div",null,t)}const c=s(h,[["render",l]]);export{F as __pageData,c as default}; diff --git a/.vitepress/dist/assets/src_guide_exception.md.D-kiR-tz.lean.js b/.vitepress/dist/assets/src_guide_exception.md.D-kiR-tz.lean.js new file mode 100644 index 0000000..fd43caa --- /dev/null +++ b/.vitepress/dist/assets/src_guide_exception.md.D-kiR-tz.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const F=JSON.parse('{"title":"统一异常处理","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/exception.md","filePath":"src/guide/exception.md","lastUpdated":null}'),h={name:"src/guide/exception.md"},k=n("",9),t=[k];function l(p,e,E,r,d,g){return a(),i("div",null,t)}const c=s(h,[["render",l]]);export{F as __pageData,c as default}; diff --git a/.vitepress/dist/assets/src_guide_flow.md.B2ioiqca.js b/.vitepress/dist/assets/src_guide_flow.md.B2ioiqca.js new file mode 100644 index 0000000..1680e7a --- /dev/null +++ b/.vitepress/dist/assets/src_guide_flow.md.B2ioiqca.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as t,a4 as i,a9 as o}from"./chunks/framework.DHgIdERs.js";const u=JSON.parse('{"title":"Ai 流程编排","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/flow.md","filePath":"src/guide/flow.md","lastUpdated":null}'),r={name:"src/guide/flow.md"},s=i('

Ai 流程编排 ​

coming soon!!!

nodejs 版本视频演示

开发 Ai 应用必备!!!

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

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

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

流程编排

注意

Ai 流程编排+知识库需要单独购买,预售 999 元

',9),c=[s];function p(l,_,n,d,m,f){return t(),e("div",null,c)}const A=a(r,[["render",p]]);export{u as __pageData,A as default}; diff --git a/.vitepress/dist/assets/src_guide_flow.md.B2ioiqca.lean.js b/.vitepress/dist/assets/src_guide_flow.md.B2ioiqca.lean.js new file mode 100644 index 0000000..421665e --- /dev/null +++ b/.vitepress/dist/assets/src_guide_flow.md.B2ioiqca.lean.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as t,a4 as i,a9 as o}from"./chunks/framework.DHgIdERs.js";const u=JSON.parse('{"title":"Ai 流程编排","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/flow.md","filePath":"src/guide/flow.md","lastUpdated":null}'),r={name:"src/guide/flow.md"},s=i("",9),c=[s];function p(l,_,n,d,m,f){return t(),e("div",null,c)}const A=a(r,[["render",p]]);export{u as __pageData,A as default}; diff --git a/.vitepress/dist/assets/src_guide_generatorCode.md.6SziAxIO.js b/.vitepress/dist/assets/src_guide_generatorCode.md.6SziAxIO.js new file mode 100644 index 0000000..0e631ab --- /dev/null +++ b/.vitepress/dist/assets/src_guide_generatorCode.md.6SziAxIO.js @@ -0,0 +1,16 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const g=JSON.parse('{"title":"代码生成","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/generatorCode.md","filePath":"src/guide/generatorCode.md","lastUpdated":null}'),e={name:"src/guide/generatorCode.md"},t=n(`

代码生成 ​

系统根据框架特性封装了一个简单的代码生成器

请先参考快速开始,把entity对象创建出来,在通过自动生成代码创建对应的 controller、service、mapper

java
public class CoolCodeGeneratorTest {
+    public static void main(String[] args) {
+        CodeGenerator codeGenerator = new CodeGenerator();
+        codeGenerator.init();
+
+        CodeModel codeModel = new CodeModel();
+        codeModel.setType(CodeTypeEnum.ADMIN);
+        codeModel.setName("测试CURD");
+        codeModel.setModule("demo");
+        codeModel.setEntity(DemoEntity.class);
+
+        codeGenerator.controller(codeModel);
+        codeGenerator.mapper(codeModel);
+        codeGenerator.service(codeModel);
+    }
+}
`,4),l=[t];function h(p,k,E,d,r,o){return a(),i("div",null,l)}const y=s(e,[["render",h]]);export{g as __pageData,y as default}; diff --git a/.vitepress/dist/assets/src_guide_generatorCode.md.6SziAxIO.lean.js b/.vitepress/dist/assets/src_guide_generatorCode.md.6SziAxIO.lean.js new file mode 100644 index 0000000..4a6ba86 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_generatorCode.md.6SziAxIO.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const g=JSON.parse('{"title":"代码生成","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/generatorCode.md","filePath":"src/guide/generatorCode.md","lastUpdated":null}'),e={name:"src/guide/generatorCode.md"},t=n("",4),l=[t];function h(p,k,E,d,r,o){return a(),i("div",null,l)}const y=s(e,[["render",h]]);export{g as __pageData,y as default}; diff --git a/.vitepress/dist/assets/src_guide_initData.md.BjMbW5Nr.js b/.vitepress/dist/assets/src_guide_initData.md.BjMbW5Nr.js new file mode 100644 index 0000000..73b4202 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_initData.md.BjMbW5Nr.js @@ -0,0 +1,33 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const g=JSON.parse('{"title":"数据初始化","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/initData.md","filePath":"src/guide/initData.md","lastUpdated":null}'),l={name:"src/guide/initData.md"},p=n(`

数据初始化 ​

有些功能模块上线时,需要初始化一些数据

可以在resources下的 cool/data/db目录创建 demo.json文件

json格式如下,demo 为表的名称,里面是个数组,数组里可以包含多个对象,每个对象中的key为表的字段,value为对应的值

规范:实体需以Entity结尾

json
{
+  "demo": [
+      {
+          "keyName": "rich",
+          "name": "富文本参数",
+          "remark": null
+      },
+      {
+          "keyName": "json",
+          "name": "JSON参数",
+          "remark": null
+      }
+  ]
+}

创建 demo.json文件后,在项目启动的时候会去加载该文件,并实现值的插入

处理逻辑在以下方法

java
package com.cool.core;
+
+
+/**
+ * 数据库初始数据初始化 在 classpath:cool/data/db 目录下创建.json文件 并定义表数据,
+ * 由该类统一执行初始化
+ **/
+@Slf4j
+@RequiredArgsConstructor
+public class DBFromJsonInit implements ApplicationRunner {
+    @Override
+    public void run(ApplicationArguments args) {
+        // 初始化自定义的数据
+        extractedDb();
+        // 初始化菜单数据
+        extractedMenu();
+        log.info("数据初始化完成!");
+    }
+    //......
+}

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

`,10),t=[p];function h(k,e,E,r,d,o){return a(),i("div",null,t)}const y=s(l,[["render",h]]);export{g as __pageData,y as default}; diff --git a/.vitepress/dist/assets/src_guide_initData.md.BjMbW5Nr.lean.js b/.vitepress/dist/assets/src_guide_initData.md.BjMbW5Nr.lean.js new file mode 100644 index 0000000..68517e1 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_initData.md.BjMbW5Nr.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const g=JSON.parse('{"title":"数据初始化","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/initData.md","filePath":"src/guide/initData.md","lastUpdated":null}'),l={name:"src/guide/initData.md"},p=n("",10),t=[p];function h(k,e,E,r,d,o){return a(),i("div",null,t)}const y=s(l,[["render",h]]);export{g as __pageData,y as default}; diff --git a/.vitepress/dist/assets/src_guide_plugin.md.qS50Tu9v.js b/.vitepress/dist/assets/src_guide_plugin.md.qS50Tu9v.js new file mode 100644 index 0000000..3a8fc36 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_plugin.md.qS50Tu9v.js @@ -0,0 +1,176 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const y=JSON.parse('{"title":"扩展插件","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/plugin.md","filePath":"src/guide/plugin.md","lastUpdated":null}'),l={name:"src/guide/plugin.md"},t=n(`

扩展插件 ​

为了丰富系统功能,我们提供了插件系统,可以通过插件的方式来扩展系统功能。

而不用一味地堆功能,导致系统臃肿。你可以自己开发插件,也可以使用别人开发的插件。 或者通过官网下载插件。

使用插件 ​

1、安装 ​

首先下载插件包,然后在系统中安装插件包。插件包可以通过官网下载插件。

打开后台管理系统,点击左侧菜单扩展管理->插件管理,点击+按钮,选择插件包进行安装。

2、调用 ​

安装插件之后,就可以在代码中调用插件的方法了。

java
package com.cool.core;
+
+import com.cool.core.plugin.service.CoolPluginService;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+@RestController
+public class JarLoaderController {
+
+    @Resource
+    private CoolPluginService coolPluginService;
+
+    @PostMapping("/loadJar/invokeMethod")
+    public String invokeMethod(@RequestParam String className, @RequestParam String methodName) {
+        String[] params = new String[1];
+        params[0] = "COOL";
+        Object result = coolPluginService.invokePlugin("demoCoolPlugin", params);
+        System.out.println(result);
+        return "Dynamic method invoked successfully! Result: " + result;
+    }
+}

运行结果

2024-06-29T03:14:54.610+08:00  INFO 9158 --- [cool-admin-java] [nio-8001-exec-5] c.c.c.plugin.service.CoolPluginService   : 调用插件类: demo-plugin, 方法: invokePlugin 参数: [[COOL, COOL1]]
+汉字:COOL,拼音:COOL
+2024-06-29T03:14:54.621+08:00  INFO 9158 --- [cool-admin-java] [nio-8001-exec-5] com.cool.core.plugin.BaseCoolPlugin      : 调用主应用: coolCache, 方法: get 参数: [verify:img:4fd03504-47ac-4b57-b8e4-3c64059230d0]
+缓存结果:vQV3

对应插件内的方法

java
package com.cool.plugin;
+
+import com.cool.core.annotation.CoolPlugin;
+import com.cool.core.plugin.BaseCoolPlugin;
+import net.sourceforge.pinyin4j.PinyinHelper;
+import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
+import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
+import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
+
+/**
+ * - 类必须要有 @CoolPlugin 注解,一个插件jar有且只能有一个类被 @CoolPlugin 注解
+ * - 类必须继承 BaseCoolPlugin, 并实现 invokePlugin 插件方法
+ */
+@CoolPlugin
+public class DemoCoolPlugin extends BaseCoolPlugin {
+
+    @Override
+    public Object invokePlugin(String... params) {
+        String chineseChar = params[0]; // 汉字字符
+        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
+        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); // 不带声调
+
+        String pinyin = null;
+        try {
+            pinyin = PinyinHelper.toHanyuPinyinString(chineseChar, format, "");
+        } catch (BadHanyuPinyinOutputFormatCombination e) {
+            throw new RuntimeException(e);
+        }
+        System.out.println("汉字:" + chineseChar + ",拼音:" + pinyin);
+        Object cache = invokeMain("coolCache", "get", "verify:img:4fd03504-47ac-4b57-b8e4-3c64059230d0");
+        System.out.println("缓存结果:" +  cache);
+        return String.format("hello,%s 我是插件", chineseChar);
+    }
+}

其中我们可以在插件包里通过 invokeMain 方法去调用主应用的一些对象方法

比如 coolCache 缓存对象, 通过反射实现

在加载jar包时会想该插件注入ApplicationContext,使得可以在插件中获取主应用中的bean

3、配置 ​

有时候开发时的配置和生产环境的配置是不一样的,我们可以通过配置文件来实现。

例如原本的配置文件是这样的

json
{
+	"appId": "xxxxx",
+	"appSecret": "xxxxx",
+	"filePath": "classpath:cool/xxx.txt"
+}

其中 classpath 为到resources资源目录下查找文件

开发插件 ​

1、脚手架 ​

为了方便开发插件和统一插件开发规范,我们提供了插件脚手架,可以快速开发我们的插件。

2、目录结构 ​

.
+main
+├─ java
+│  └─ com.cool
+│      ├─core           核心包  
+│      │  ├─ annotation  
+│      │  └─ ...
+│      └─ plugin  
+│           └─ ...插件包,插件类放在这个包下
+├─ resources
+│       └─ plugin.json 插件信息配置文件
+└──pom.xml

3、开发过程 ​

  • 配置插件信息(plugin.json)
json
{
+  "name": "测试",
+  "key": "demo-plugin",
+  "hook": "",
+  "version": "1.0.0",
+  "description": "插件描述",
+  "author": "作者",
+  "logo": "assets/logo.png",
+  "readme": "assets/README.md",
+  "config": {
+    "aaa": "xxx",
+    "bbb": "xxx"
+  }
+}

config 是插件的配置信息,不同的插件有不同的配置,上面只是个例子,实际开发中可以根据自己的需求来配置,在后台插件管理里可以动态修改

4、字段解释 ​

字段说明
name角色数组
key插件唯一标识
hook插件钩子,比如替换系统的上传组件,upload
version版本号
description插件描述
author作者
logo插件 logo,建议尺寸 256x256
readme插件介绍,会展示在插件的详情中
config插件配置, 每个插件的配置各不相同

插件详解 ​

java
package com.cool.plugin;
+
+import com.cool.core.annotation.CoolPlugin;
+import com.cool.core.plugin.BaseCoolPlugin;
+import net.sourceforge.pinyin4j.PinyinHelper;
+import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
+import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
+import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
+
+/**
+ * - 类必须要有 @CoolPlugin 注解,一个插件jar有且只能有一个类被 @CoolPlugin 注解
+ * - 类必须继承 BaseCoolPlugin
+ */
+@CoolPlugin
+public class DemoCoolPlugin extends BaseCoolPlugin {
+
+    @Override
+    public Object invokePlugin(String... params) {
+        String chineseChar = params[0]; // 汉字字符
+        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
+        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); // 不带声调
+
+        String pinyin = null;
+        try {
+            pinyin = PinyinHelper.toHanyuPinyinString(chineseChar, format, "");
+        } catch (BadHanyuPinyinOutputFormatCombination e) {
+            throw new RuntimeException(e);
+        }
+        System.out.println("汉字:" + chineseChar + ",拼音:" + pinyin);
+        Object cache = invokeMain("coolCache", "get", "verify:img:4fd03504-47ac-4b57-b8e4-3c64059230d0");
+        return String.format("hello,%s 我是插件", chineseChar);
+    }
+}
  • 类必须要有 @CoolPlugin 注解,一个插件jar有且只能有一个类被 @CoolPlugin 注解
  • 类必须继承 BaseCoolPlugin, 并实现 invokePlugin 插件方法 满足以上条件,在插件导入时才能被识别到。

在开发过程中如果需要引入第三方类库,可使用maven引入依赖,如我们这边示例使用到了中文转拼音

xml
<dependency>
+    <groupId>com.belerweb</groupId>
+    <artifactId>pinyin4j</artifactId>
+    <version>2.5.0</version>
+</dependency>

在我们脚手架上你可以发现,我们还引入了其他包 springframework、hutool 等,这会使得打包结果很臃肿,这边使用到了 maven-shade-plugin maven插件可以在打包的时候将在我们 cool-admin-java 主应用项目已经有的依赖给排除掉,避免打包结果过大

xml
<build>
+    <plugins>
+        <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-shade-plugin</artifactId>
+            <version>3.2.4</version>
+            <executions>
+                <execution>
+                    <phase>package</phase>
+                    <goals>
+                        <goal>shade</goal>
+                    </goals>
+                    <configuration>
+                        <artifactSet>
+                            <excludes>
+                                <!--主应用以有这些依赖,打包时可以排除-->
+                                <exclude>org.springframework:spring-beans</exclude>
+                                <exclude>org.springframework:spring-core</exclude>
+                                <exclude>org.springframework:spring-jcl</exclude>
+                                <exclude>org.springframework:spring-context</exclude>
+                                <exclude>org.springframework:spring-aop</exclude>
+                                <exclude>org.springframework:spring-expression</exclude>
+                                <exclude>io.micrometer:micrometer-observation:jar</exclude>
+                                <exclude>io.micrometer:micrometer-commons:jar</exclude>
+                                <exclude>jakarta.annotation:jakarta.annotation-api</exclude>
+                                <exclude>org.slf4j:slf4j-api</exclude>
+                                <exclude>org.projectlombok:lombok</exclude>
+                                <exclude>cn.hutool:hutool-core</exclude>
+                                <exclude>cn.hutool:hutool-json</exclude>
+                                <exclude>org.springframework:spring-beans</exclude>
+                                <exclude>io.micrometer:micrometer-observation</exclude>
+                                <exclude>io.micrometer:micrometer-commons</exclude>
+                            </excludes>
+                        </artifactSet>
+                    </configuration>
+                </execution>
+            </executions>
+        </plugin>
+    </plugins>
+</build>

在执行打包的过程,可以在打包日志中查看我们排除和引入了哪些包

  • Including 为引入
  • Excluding 为排除引入
[INFO] --- maven-shade-plugin:3.2.4:shade (default) @ cool-admin-java-plugin ---
+[INFO] Including com.belerweb:pinyin4j:jar:2.5.0 in the shaded jar.
+[INFO] Excluding org.springframework:spring-beans:jar:6.1.6 from the shaded jar.
+[INFO] Excluding org.springframework:spring-core:jar:6.1.6 from the shaded jar.
+[INFO] Excluding org.springframework:spring-jcl:jar:6.1.6 from the shaded jar.
+[INFO] Excluding org.springframework:spring-context:jar:6.1.6 from the shaded jar.
+[INFO] Excluding org.springframework:spring-aop:jar:6.1.6 from the shaded jar.
+[INFO] Excluding org.springframework:spring-expression:jar:6.1.6 from the shaded jar.
+[INFO] Excluding io.micrometer:micrometer-observation:jar:1.12.5 from the shaded jar.
+[INFO] Excluding io.micrometer:micrometer-commons:jar:1.12.5 from the shaded jar.
+[INFO] Excluding jakarta.annotation:jakarta.annotation-api:jar:2.1.1 from the shaded jar.
+[INFO] Excluding org.slf4j:slf4j-api:jar:2.0.13 from the shaded jar.
+[INFO] Excluding org.projectlombok:lombok:jar:1.18.32 from the shaded jar.
+[INFO] Excluding cn.hutool:hutool-core:jar:5.8.26 from the shaded jar.
+[INFO] Excluding cn.hutool:hutool-json:jar:5.8.26 from the shaded jar.

打包 ​

打包命令

mvn clean package

打包结果, 在 target目录下 .cool后缀的文件,就是我们的插件包

target/cool-admin-java-plugin-1.0-SNAPSHOT.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、扩展性: 通过动态加载,可以轻松地添加新的功能模块或服务,实现应用程序的快速扩展和升级。
`,59),h=[t];function p(k,e,E,r,d,g){return a(),i("div",null,h)}const c=s(l,[["render",p]]);export{y as __pageData,c as default}; diff --git a/.vitepress/dist/assets/src_guide_plugin.md.qS50Tu9v.lean.js b/.vitepress/dist/assets/src_guide_plugin.md.qS50Tu9v.lean.js new file mode 100644 index 0000000..30ace23 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_plugin.md.qS50Tu9v.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const y=JSON.parse('{"title":"扩展插件","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/plugin.md","filePath":"src/guide/plugin.md","lastUpdated":null}'),l={name:"src/guide/plugin.md"},t=n("",59),h=[t];function p(k,e,E,r,d,g){return a(),i("div",null,h)}const c=s(l,[["render",p]]);export{y as __pageData,c as default}; diff --git a/.vitepress/dist/assets/src_guide_quick.md.avtiASSy.js b/.vitepress/dist/assets/src_guide_quick.md.avtiASSy.js new file mode 100644 index 0000000..97eefb2 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_quick.md.avtiASSy.js @@ -0,0 +1,80 @@ +import{_ as e,D as t,c as h,j as a,a as s,I as p,w as l,a4 as i,o as k}from"./chunks/framework.DHgIdERs.js";const v=JSON.parse('{"title":"快速开始","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/quick.md","filePath":"src/guide/quick.md","lastUpdated":null}'),o={name:"src/guide/quick.md"},r=i('

快速开始 ​

前置准备 ​

  • Java Jdk >= 17 选择 GraalVM
  • Mysql >= 5.7
  • Maven >= 3.0

运行系统 ​

',4),c=a("li",null,[s("1、"),a("a",{href:"/src/introduce/src.html"},"拉取前后端代码到本地"),s("。")],-1),d=a("li",null,"2、选择你熟悉的开发工具,打开你的项目。",-1),E=a("li",null,[s("3、确保打开的项目有Maven依赖,如没有具体参考"),a("a",{href:"/src/question/commonQuestion.html#IDEA导入Maven项目右侧没有Maven"},"IDEA导入Maven项目右侧没有Maven"),s("。")],-1),g=i(`
2024-05-25T00:11:36.475+08:00  INFO 8321 --- [cool-admin-java] [uartzScheduler]] o.s.s.quartz.SchedulerFactoryBean        : Starting Quartz Scheduler now, after delay of 2 seconds
+2024-05-25T00:11:36.475+08:00  INFO 8321 --- [cool-admin-java] [uartzScheduler]] org.quartz.core.QuartzScheduler          : Scheduler quartzScheduler_$_NON_CLUSTERED started.
+2024-05-25T00:11:36.717+08:00  INFO 8321 --- [cool-admin-java] [nio-8001-exec-1] o.springdoc.api.AbstractOpenApiResource  : Init duration for springdoc-openapi is: 1044 ms
+2024-05-25T00:11:40.195+08:00  INFO 8321 --- [cool-admin-java] [pool-3-thread-1] com.cool.core.eps.CoolEps                : 初始化eps

账户:admin
密码:123456

项目包结构 ​

.
+main
+├─ java
+│  ├─ com.cool
+│  ├─ core             核心包
+│  │  ├─ annotation
+│  │  └─ ...
+│  ├─ modules          模块包
+│  │  ├─ base              基础模块(系统用户、菜单、资源、角色)
+│  │  │  ├─ controller
+│  │  │  ├─ entity
+│  │  │  ├─ mapper
+│  │  │  └─ service
+│  │  ├─ dict              字段模块
+│  │  ├─ plugin            插件模块
+│  │  ├─ recycle           数据回收站模块
+│  │  ├─ space             文件管理模块
+│  │  ├─ task              定时任务模块
+│  │  └─ user              用户管理模块(c端用户)
+│  └─ CoolApplication
+└─ resources           资源文件
+   ├─ cool
+   │  └─ data
+   │     └─ db         初始化数据json文件
+   └─ mapper           mapper xml 文件
  • core 为核心模块,包括一些核心的组件工具
  • modules 为业务模块,业务代码放在这边,在新增功能模块时,按上面的包结构新增即可

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

表结构创建 ​

无需手动创建表结构,启动项目时会自动生成表结构 在 modules 包下新建一个 demo 模块,把 DemoEntity 实体创建出来

java
package com.cool.modules.demo.entity;
+import com.cool.core.base.BaseEntity;
+import com.mybatisflex.annotation.Table;
+import com.tangzc.mybatisflex.autotable.annotation.ColumnDefine;
+import com.tangzc.autotable.annotation.Index;
+import lombok.Getter;
+import lombok.Setter;
+@Getter
+@Setter
+@Table(value = "demo", comment = "demo实体")
+public class DemoEntity extends BaseEntity<DemoEntity> {
+    @ColumnDefine(comment = "头像", notNull = true)
+    private String headImg;
+
+    @Index
+    @ColumnDefine(comment = "名字", notNull = true)
+    private String name;
+
+    @ColumnDefine(comment = "年龄", defaultValue = "18")
+    private Integer age;
+
+    @ColumnDefine(comment = "手机号", notNull = true)
+    private String phone;
+
+    @ColumnDefine(comment = "介绍", type = "text")
+    private String introduce;
+}

无需手动添加数据库字段,只需修改实体对象就能自动添加表字段
请参考 AutoTable 由该框架实现

`,10),u=i(`

第一个 CRUD ​

实体创建完成后,通过 运行以下代码(在 test 包下)

将在 com.cool.modules 下生成 demo 包且自动生成对应的 controller、service、mapper 文件

package com.cool;
+
+import com.cool.core.code.CodeGenerator;
+import com.cool.core.code.CodeModel;
+import com.cool.core.code.CodeTypeEnum;
+import com.cool.modules.demo.entity.DemoEntity;
+
+public class CoolCodeGeneratorTest {
+    public static void main(String[] args) {
+        CodeGenerator codeGenerator = new CodeGenerator();
+        codeGenerator.init();
+
+        CodeModel codeModel = new CodeModel();
+        codeModel.setType(CodeTypeEnum.ADMIN);
+        codeModel.setName("测试CURD");
+        codeModel.setModule("demo");
+        codeModel.setEntity(DemoEntity.class);
+
+        codeGenerator.controller(codeModel);
+        codeGenerator.mapper(codeModel);
+        codeGenerator.service(codeModel);
+    }
+}

配置数据库信息 ​

/resources/application-local.yml(开发环境)

/resources/application-prod.yml(生成环境)

yaml
spring:
+  datasource:
+    url: jdbc:mysql://127.0.0.1:3306/cool?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
+    username: root
+    password: 123456
`,8);function y(m,F,C,_,b,D){const n=t("font");return k(),h("div",null,[r,a("ul",null,[c,d,E,a("li",null,[s("4、打开项目运行 "),p(n,{color:"4364CF"},{default:l(()=>[s("com.cool.CoolApplication.java")]),_:1}),s(",出现如下日志表示启动成功。")])]),g,a("blockquote",null,[a("p",null,[s("注意: "),p(n,{color:"red"},{default:l(()=>[s("默认仅开发环境开启该功能,如无调整生产环境需手动创建表结构")]),_:1})])]),u])}const q=e(o,[["render",y]]);export{v as __pageData,q as default}; diff --git a/.vitepress/dist/assets/src_guide_quick.md.avtiASSy.lean.js b/.vitepress/dist/assets/src_guide_quick.md.avtiASSy.lean.js new file mode 100644 index 0000000..cd1c827 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_quick.md.avtiASSy.lean.js @@ -0,0 +1 @@ +import{_ as e,D as t,c as h,j as a,a as s,I as p,w as l,a4 as i,o as k}from"./chunks/framework.DHgIdERs.js";const v=JSON.parse('{"title":"快速开始","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/quick.md","filePath":"src/guide/quick.md","lastUpdated":null}'),o={name:"src/guide/quick.md"},r=i("",4),c=a("li",null,[s("1、"),a("a",{href:"/src/introduce/src.html"},"拉取前后端代码到本地"),s("。")],-1),d=a("li",null,"2、选择你熟悉的开发工具,打开你的项目。",-1),E=a("li",null,[s("3、确保打开的项目有Maven依赖,如没有具体参考"),a("a",{href:"/src/question/commonQuestion.html#IDEA导入Maven项目右侧没有Maven"},"IDEA导入Maven项目右侧没有Maven"),s("。")],-1),g=i("",10),u=i("",8);function y(m,F,C,_,b,D){const n=t("font");return k(),h("div",null,[r,a("ul",null,[c,d,E,a("li",null,[s("4、打开项目运行 "),p(n,{color:"4364CF"},{default:l(()=>[s("com.cool.CoolApplication.java")]),_:1}),s(",出现如下日志表示启动成功。")])]),g,a("blockquote",null,[a("p",null,[s("注意: "),p(n,{color:"red"},{default:l(()=>[s("默认仅开发环境开启该功能,如无调整生产环境需手动创建表结构")]),_:1})])]),u])}const q=e(o,[["render",y]]);export{v as __pageData,q as default}; diff --git a/.vitepress/dist/assets/src_guide_security.md.BOLCFOjh.js b/.vitepress/dist/assets/src_guide_security.md.BOLCFOjh.js new file mode 100644 index 0000000..fb03115 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_security.md.BOLCFOjh.js @@ -0,0 +1,216 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const c=JSON.parse('{"title":"权限校验","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/security.md","filePath":"src/guide/security.md","lastUpdated":null}'),h={name:"src/guide/security.md"},k=n(`

权限校验 ​

采用spring-security与 jwt 作为框架安全与权限校验。

配置 ​

yaml
cool:
+  # token 相关配置
+  token:
+    # 过期时间 单位:秒 半小时
+    expire: 1800
+    # 刷新token过期时间 单位:秒 7天
+    refreshExpire: 604800
+    # 密钥
+    secret: DSAKOJLFAADASKD

原理 ​

1、系统启动的时候,系统会查询并向spring-security加载所有设置的权限;

java
@Component
+public class MySecurityMetadataSource implements FilterInvocationSecurityMetadataSource {
+    @Resource
+    private BaseSysPermsService baseSysPermsService;
+
+    private Map<String, Collection<ConfigAttribute>> map = null;
+
+    /**
+     * 加载权限表中所有操作请求权限
+     */
+    public void loadResourceDefine() {
+        map = new HashMap<>();
+        Collection<ConfigAttribute> configAttributes;
+        ConfigAttribute cfg;
+        String[] perms = baseSysPermsService.getAllPerms();
+        // 获取启用的权限操作请求
+        for (String perm : perms) {
+            configAttributes = new ArrayList<>();
+            cfg = new SecurityConfig(perm);
+            // 作为MyAccessDecisionManager类的decide的第三个参数
+            configAttributes.add(cfg);
+            // 用权限的path作为map的key,用ConfigAttribute的集合作为value
+            map.put(perm.replaceAll(":", "/"), configAttributes);
+        }
+    }
+
+    /**
+     * 判定用户请求的url是否在权限表中 如果在权限表中,则返回给decide方法,用来判定用户是否有此权限 如果不在权限表中则放行
+     *
+     * @param o
+     * @return
+     * @throws IllegalArgumentException
+     */
+    @Override
+    public Collection<ConfigAttribute> getAttributes(Object o) throws IllegalArgumentException {
+        if (map == null) {
+            loadResourceDefine();
+        }
+        // Object中包含用户请求request
+        String url = ((FilterInvocation) o).getRequestUrl();
+        return map.get(url.replace("/admin/", "").split("[?]")[0]);
+
+    }
+
+    @Override
+    public Collection<ConfigAttribute> getAllConfigAttributes() {
+        return new ArrayList<>();
+    }
+
+    @Override
+    public boolean supports(Class<?> aClass) {
+        return true;
+    }
+}

2、用户登录,查询该用户所具有的权限并缓存;

java
/**
+ * 获得用户信息
+ */
+@Component
+public class JwtUserDetailsServiceImpl implements UserDetailsService {
+    @Resource
+    private BaseSysUserService baseSysUserService;
+    @Resource
+    private BaseSysPermsService baseSysPermsService;
+    @Resource
+    private CoolCache coolCache;
+
+    @Override
+    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+        BaseSysUserEntity sysUserEntity = baseSysUserService.getOne(Wrappers.<BaseSysUserEntity>lambdaQuery()
+                .eq(BaseSysUserEntity::getUsername, username).eq(BaseSysUserEntity::getStatus, 1));
+        if (ObjectUtil.isEmpty(sysUserEntity)) {
+            throw new UsernameNotFoundException("用户名不存在");
+        }
+        List<GrantedAuthority> authority = new ArrayList<>();
+        String[] perms = baseSysPermsService.getPerms(sysUserEntity.getId());
+        for (String perm : perms) {
+            authority.add(new SimpleGrantedAuthority(perm));
+        }
+        Long[] departmentIds = baseSysPermsService.getDepartmentIdsByRoleIds(sysUserEntity.getId());
+        JwtUser jwtUser = new JwtUser(sysUserEntity.getUsername(), sysUserEntity.getPassword(), authority,
+                sysUserEntity.getStatus() == 1);
+        Long[] roleIds = baseSysPermsService.getRoles(sysUserEntity);
+        coolCache.set("admin:userDetails:" + jwtUser.getUsername(), jwtUser);
+        coolCache.set("admin:passwordVersion:" + sysUserEntity.getId(), sysUserEntity.getPasswordV());
+        coolCache.set("admin:userInfo:" + sysUserEntity.getId(), sysUserEntity);
+        coolCache.set("admin:department:" + sysUserEntity.getId(), departmentIds);
+        coolCache.set("admin:roleIds:" + sysUserEntity.getId(), roleIds);
+        return jwtUser;
+    }
+}

3、每次调用接口的时候spring-security权限拦截器校验当前用户权限;

java
/**
+ * 权限管理拦截器
+ * 监控用户行为
+ */
+@Slf4j
+@Component
+public class MyFilterSecurityInterceptor extends AbstractSecurityInterceptor implements Filter {
+    @Resource
+    private FilterInvocationSecurityMetadataSource securityMetadataSource;
+
+
+    @Autowired
+    public void setMyAccessDecisionManager(MyAccessDecisionManager myAccessDecisionManager) {
+        super.setAccessDecisionManager(myAccessDecisionManager);
+    }
+
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+    }
+
+    @Override
+    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+        FilterInvocation fi = new FilterInvocation(request, response, chain);
+        invoke(fi);
+    }
+
+    public void invoke(FilterInvocation fi) throws IOException, ServletException {
+        InterceptorStatusToken token = super.beforeInvocation(fi);
+        try {
+            fi.getChain().doFilter(fi.getRequest(), fi.getResponse());
+        } finally {
+            super.afterInvocation(token, null);
+        }
+    }
+
+    @Override
+    public void destroy() {
+    }
+
+    @Override
+    public Class<?> getSecureObjectClass() {
+        return FilterInvocation.class;
+    }
+
+    @Override
+    public SecurityMetadataSource obtainSecurityMetadataSource() {
+        return this.securityMetadataSource;
+    }
+}

4.鉴权拦截配置 jtw

java
@EnableWebSecurity
+@Configuration
+@Slf4j
+public class JwtSecurityConfig {
+
+    // 用户详情
+    @Resource
+    private UserDetailsService userDetailsService;
+
+    @Resource
+    private JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter;
+    // 401
+    @Resource
+    private EntryPointUnauthorizedHandler entryPointUnauthorizedHandler;
+    // 403
+    @Resource
+    private RestAccessDeniedHandler restAccessDeniedHandler;
+    // 忽略权限控制的地址
+    @Resource
+    private IgnoredUrlsProperties ignoredUrlsProperties;
+
+    @Bean
+    public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {
+        return httpSecurity
+                .authorizeHttpRequests(
+                        conf -> conf.requestMatchers(ignoredUrlsProperties.getUrls().stream().toArray(String[]::new))
+                                .permitAll().anyRequest().authenticated())
+                .headers(config -> config.frameOptions(HeadersConfigurer.FrameOptionsConfig::disable))
+                // 允许网页iframe
+                .csrf(AbstractHttpConfigurer::disable)
+                .sessionManagement(conf -> conf.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
+                .addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class)
+                .exceptionHandling(config -> {
+                    config.authenticationEntryPoint(entryPointUnauthorizedHandler);
+                    config.accessDeniedHandler(restAccessDeniedHandler);
+                }).build();
+    }
+
+    @Bean
+    public PasswordEncoder passwordEncoder() {
+        return new PasswordEncoder() {
+            @Override
+            public String encode(CharSequence rawPassword) {
+                return DigestUtils.md5DigestAsHex(((String) rawPassword).getBytes());
+            }
+
+            @Override
+            public boolean matches(CharSequence rawPassword, String encodedPassword) {
+                return encodedPassword.equals(DigestUtils.md5DigestAsHex(((String) rawPassword).getBytes()));
+            }
+        };
+    }
+
+    @Bean
+    public AuthenticationProvider authenticationProvider() {
+        DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
+        authProvider.setUserDetailsService(userDetailsService);
+        authProvider.setPasswordEncoder(passwordEncoder());
+        return authProvider;
+    }
+
+    @Bean
+    public AuthenticationManager authenticationManager(AuthenticationConfiguration config) throws Exception {
+        return config.getAuthenticationManager();
+    }
+}

当前用户 ​

  • 获得用户名
java
 @Resource
+ private CoolSecurityUtil coolSecurityUtil;
+
+ String username = coolSecurityUtil.username();
  • 获得用户信息 请求过程中会解析 token,并将用户信息存在整个请求过程中的requestParams
java
 @Resource
+ private CoolSecurityUtil coolSecurityUtil;
+
+ JSONObject userInfo = coolSecurityUtil.userInfo(requestParams);

userInfo

字段类型说明
roleIdsLong[]角色数组
usernameString用户名
userIdLong用户ID
passwordVersionInteger密码版本号
`,20),l=[k];function t(p,e,E,r,d,g){return a(),i("div",null,l)}const F=s(h,[["render",t]]);export{c as __pageData,F as default}; diff --git a/.vitepress/dist/assets/src_guide_security.md.BOLCFOjh.lean.js b/.vitepress/dist/assets/src_guide_security.md.BOLCFOjh.lean.js new file mode 100644 index 0000000..e2fea39 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_security.md.BOLCFOjh.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const c=JSON.parse('{"title":"权限校验","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/security.md","filePath":"src/guide/security.md","lastUpdated":null}'),h={name:"src/guide/security.md"},k=n("",20),l=[k];function t(p,e,E,r,d,g){return a(),i("div",null,l)}const F=s(h,[["render",t]]);export{c as __pageData,F as default}; diff --git a/.vitepress/dist/assets/src_guide_springboot3.md.YNymcO30.js b/.vitepress/dist/assets/src_guide_springboot3.md.YNymcO30.js new file mode 100644 index 0000000..ee2fefe --- /dev/null +++ b/.vitepress/dist/assets/src_guide_springboot3.md.YNymcO30.js @@ -0,0 +1 @@ +import{_ as t,c as o,o as r,a4 as a}from"./chunks/framework.DHgIdERs.js";const _=JSON.parse('{"title":"Spring Boot 3 介绍","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/springboot3.md","filePath":"src/guide/springboot3.md","lastUpdated":null}'),n={name:"src/guide/springboot3.md"},i=a('

Spring Boot 3 介绍 ​

Spring Boot 3 是 Spring 框架 的一部分,旨在简化新 Spring 应用程序的创建和开发过程。Spring Boot 通过提供预先配置的设置,减少了开发者的配置工作,使得开发和部署 Spring 应用程序更加快捷和高效。以下是对 Spring Boot 3 的一些详细介绍:

主要特点 ​

简化的配置 ​

  • 通过 自动配置(Auto-Configuration) 和 约定优于配置(Convention over Configuration) 原则,减少了繁琐的手动配置。
  • 提供了大量的 starter 依赖,可以轻松集成常用的库和工具。

新特性和增强 ​

  • 支持 Java 17 和 Java 21(最新的 LTS 版本)。
  • 采用 Jakarta EE 9 标准,这意味着 javax 包命名空间改为 jakarta 包命名空间。
  • 提供对 GraalVM Native Image 的更好支持,允许将 Spring Boot 应用编译为本地可执行文件,提高启动速度和资源利用效率。

改进的性能 ​

  • 更快的启动时间和更低的内存占用。
  • 提供更多性能调优选项和监控工具。

现代化开发体验 ​

  • 集成了 Spring Native,能够更好地支持云原生应用程序开发。
  • 提供更丰富的开发工具集成和增强的开发者体验。

更强的安全性 ​

  • 更新的安全性默认配置和更严格的安全控制。
  • 支持最新的安全协议和加密标准。
',13),s=[i];function e(l,g,h,d,c,u){return r(),o("div",null,s)}const b=t(n,[["render",e]]);export{_ as __pageData,b as default}; diff --git a/.vitepress/dist/assets/src_guide_springboot3.md.YNymcO30.lean.js b/.vitepress/dist/assets/src_guide_springboot3.md.YNymcO30.lean.js new file mode 100644 index 0000000..36c01a7 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_springboot3.md.YNymcO30.lean.js @@ -0,0 +1 @@ +import{_ as t,c as o,o as r,a4 as a}from"./chunks/framework.DHgIdERs.js";const _=JSON.parse('{"title":"Spring Boot 3 介绍","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/springboot3.md","filePath":"src/guide/springboot3.md","lastUpdated":null}'),n={name:"src/guide/springboot3.md"},i=a("",13),s=[i];function e(l,g,h,d,c,u){return r(),o("div",null,s)}const b=t(n,[["render",e]]);export{_ as __pageData,b as default}; diff --git a/.vitepress/dist/assets/src_guide_swagger.md.DF6xaziu.js b/.vitepress/dist/assets/src_guide_swagger.md.DF6xaziu.js new file mode 100644 index 0000000..0320771 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_swagger.md.DF6xaziu.js @@ -0,0 +1,8 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DHgIdERs.js";const y=JSON.parse('{"title":"swagger 文档","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/swagger.md","filePath":"src/guide/swagger.md","lastUpdated":null}'),h={name:"src/guide/swagger.md"},n=t(`

swagger 文档 ​

默认集成springdoc,作为文档。

java
@Tag(name = "测试CURD", description = "测试CURD")
+@CoolRestController(value = "/cool", api = {"add", "delete", "update", "page", "list", "info"})
+public class AdminDemoInfoController extends BaseController<DemoService, DemoEntity> {
+    @Override
+    protected void init(HttpServletRequest request, JSONObject requestParams) {
+        // 可以在这边实现一下列表数据排序规则,查询条件过滤,返回哪些字段等
+    }
+}

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

`,4),e=[n];function k(l,p,r,E,d,g){return a(),i("div",null,e)}const F=s(h,[["render",k]]);export{y as __pageData,F as default}; diff --git a/.vitepress/dist/assets/src_guide_swagger.md.DF6xaziu.lean.js b/.vitepress/dist/assets/src_guide_swagger.md.DF6xaziu.lean.js new file mode 100644 index 0000000..a21b8ff --- /dev/null +++ b/.vitepress/dist/assets/src_guide_swagger.md.DF6xaziu.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as t}from"./chunks/framework.DHgIdERs.js";const y=JSON.parse('{"title":"swagger 文档","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/swagger.md","filePath":"src/guide/swagger.md","lastUpdated":null}'),h={name:"src/guide/swagger.md"},n=t("",4),e=[n];function k(l,p,r,E,d,g){return a(),i("div",null,e)}const F=s(h,[["render",k]]);export{y as __pageData,F as default}; diff --git a/.vitepress/dist/assets/src_guide_upload.md.DS70Q-Hs.js b/.vitepress/dist/assets/src_guide_upload.md.DS70Q-Hs.js new file mode 100644 index 0000000..7129a51 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_upload.md.DS70Q-Hs.js @@ -0,0 +1,31 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const o=JSON.parse('{"title":"文件上传","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/upload.md","filePath":"src/guide/upload.md","lastUpdated":null}'),l={name:"src/guide/upload.md"},h=n(`

文件上传 ​

框架自带两种文件上传方式本地上传与云存储,与前端紧密结合,

前端会根据后端返回的上传模式进行本地上传或者云存储签名直传(不经过服务器,直接上传到对应的云存储)

  • 本地上传
  • 阿里云oss (通过插件市场搜索OSS,下载安装插件实现下载插件)

使用 ​

application.yml

yaml
cool:
+  # 文件上传相关
+  file:
+    #上传模式
+    mode: local
+    # 本地上传配置
+    local:
+      # 文件根地址
+      base-url: http://127.0.0.1:\${server.port}
+      # 可选,文件存放路径 线上环境请用nginx等静态服务器代理
+      filePath:

动静分离有许多好处,如不占用主服务器带宽,防止上传恶意文件等。

条件允许的话尽量选择云存储上传,如:oss 还可以对图片进行各种如压缩、裁剪、水印等处理,方便一张图片使用在多种场景。

java
@RequiredArgsConstructor
+@Tag(name = "系统通用", description = "系统通用")
+@CoolRestController()
+public class AdminBaseCommController {
+    final private FileUploadStrategyFactory fileUploadStrategyFactory;
+
+    @Operation(summary = "文件上传")
+    @PostMapping(value = "/upload", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE,
+        MediaType.ALL_VALUE})
+    public R upload(
+        @RequestPart(value = "file", required = false) @Parameter(description = "文件") MultipartFile[] files,
+        HttpServletRequest request) {
+        return R.ok(fileUploadStrategyFactory.upload(files, request));
+    }
+
+    @Operation(summary = "文件上传模式")
+    @GetMapping("/uploadMode")
+    public R uploadMode() {
+        return R.ok(fileUploadStrategyFactory.getMode());
+    }
+}
`,10),p=[h];function t(k,e,E,r,d,g){return a(),i("div",null,p)}const F=s(l,[["render",t]]);export{o as __pageData,F as default}; diff --git a/.vitepress/dist/assets/src_guide_upload.md.DS70Q-Hs.lean.js b/.vitepress/dist/assets/src_guide_upload.md.DS70Q-Hs.lean.js new file mode 100644 index 0000000..8819899 --- /dev/null +++ b/.vitepress/dist/assets/src_guide_upload.md.DS70Q-Hs.lean.js @@ -0,0 +1 @@ +import{_ as s,c as i,o as a,a4 as n}from"./chunks/framework.DHgIdERs.js";const o=JSON.parse('{"title":"文件上传","description":"","frontmatter":{},"headers":[],"relativePath":"src/guide/upload.md","filePath":"src/guide/upload.md","lastUpdated":null}'),l={name:"src/guide/upload.md"},h=n("",10),p=[h];function t(k,e,E,r,d,g){return a(),i("div",null,p)}const F=s(l,[["render",t]]);export{o as __pageData,F as default}; diff --git a/.vitepress/dist/assets/src_introduce_index.md.CH1RbK2Y.js b/.vitepress/dist/assets/src_introduce_index.md.CH1RbK2Y.js new file mode 100644 index 0000000..4ddc29d --- /dev/null +++ b/.vitepress/dist/assets/src_introduce_index.md.CH1RbK2Y.js @@ -0,0 +1 @@ +import{_ as l,c as a,o as e,a4 as t,aa as i,a9 as o}from"./chunks/framework.DHgIdERs.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"src/introduce/index.md","filePath":"src/introduce/index.md","lastUpdated":null}'),r={name:"src/introduce/index.md"},n=t('

简介 ​

技术选型 ​

1、系统环境

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

2、主要框架

  • Spring Boot 3.2.5
  • Spring Framework 6.1.6
  • Mybatis Flex 1.9.3(新版本替换: Mybatis Plus)
  • Auto Table 1.7.4
  • Spring Doc 2.5.0

为什么选择 Cool Admin? ​

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

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

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

内置功能 ​

  • 用户管理:呈现公司组织部门树形结构,用户是系统操作者,该功能主要完成系统用户配置。
  • 菜单管理:配置系统菜单,操作权限标识等。
  • 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  • 参数管理:对系统动态配置常用参数。
  • 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  • 请求日志:接口的请求入参日志,便于问题排查。
  • 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  • 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
  • 文件管理:支持静态资源文件上传云端进行云管理。
  • 数据回收站:数据有 30 天的保留,支持回滚操作。
  • 前后端插件:支持动态安装、卸载插件,实现功能可插拔。(后端插件开发中...)
',15),s=[n];function d(c,p,_,m,u,h){return e(),a("div",null,s)}const x=l(r,[["render",d]]);export{f as __pageData,x as default}; diff --git a/.vitepress/dist/assets/src_introduce_index.md.CH1RbK2Y.lean.js b/.vitepress/dist/assets/src_introduce_index.md.CH1RbK2Y.lean.js new file mode 100644 index 0000000..64bdb0f --- /dev/null +++ b/.vitepress/dist/assets/src_introduce_index.md.CH1RbK2Y.lean.js @@ -0,0 +1 @@ +import{_ as l,c as a,o as e,a4 as t,aa as i,a9 as o}from"./chunks/framework.DHgIdERs.js";const f=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"src/introduce/index.md","filePath":"src/introduce/index.md","lastUpdated":null}'),r={name:"src/introduce/index.md"},n=t("",15),s=[n];function d(c,p,_,m,u,h){return e(),a("div",null,s)}const x=l(r,[["render",d]]);export{f as __pageData,x as default}; diff --git a/.vitepress/dist/assets/src_introduce_show.md.Cj2B3iLu.js b/.vitepress/dist/assets/src_introduce_show.md.Cj2B3iLu.js new file mode 100644 index 0000000..f2e3742 --- /dev/null +++ b/.vitepress/dist/assets/src_introduce_show.md.Cj2B3iLu.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a,a4 as o,aa as r}from"./chunks/framework.DHgIdERs.js";const u=JSON.parse('{"title":"演示","description":"","frontmatter":{},"headers":[],"relativePath":"src/introduce/show.md","filePath":"src/introduce/show.md","lastUpdated":null}'),s={name:"src/introduce/show.md"},c=o('

演示 ​

功能几乎跟nodejs 版本一致

https://show.cool-admin.com

账户:admin 密码:123456

',5),n=[c];function _(d,i,l,p,h,m){return a(),t("div",null,n)}const w=e(s,[["render",_]]);export{u as __pageData,w as default}; diff --git a/.vitepress/dist/assets/src_introduce_show.md.Cj2B3iLu.lean.js b/.vitepress/dist/assets/src_introduce_show.md.Cj2B3iLu.lean.js new file mode 100644 index 0000000..1d2ac28 --- /dev/null +++ b/.vitepress/dist/assets/src_introduce_show.md.Cj2B3iLu.lean.js @@ -0,0 +1 @@ +import{_ as e,c as t,o as a,a4 as o,aa as r}from"./chunks/framework.DHgIdERs.js";const u=JSON.parse('{"title":"演示","description":"","frontmatter":{},"headers":[],"relativePath":"src/introduce/show.md","filePath":"src/introduce/show.md","lastUpdated":null}'),s={name:"src/introduce/show.md"},c=o("",5),n=[c];function _(d,i,l,p,h,m){return a(),t("div",null,n)}const w=e(s,[["render",_]]);export{u as __pageData,w as default}; diff --git a/.vitepress/dist/assets/src_introduce_src.md.CxeEja1d.js b/.vitepress/dist/assets/src_introduce_src.md.CxeEja1d.js new file mode 100644 index 0000000..05b7ba6 --- /dev/null +++ b/.vitepress/dist/assets/src_introduce_src.md.CxeEja1d.js @@ -0,0 +1 @@ +import{_ as a,c as e,o,a4 as t}from"./chunks/framework.DHgIdERs.js";const _=JSON.parse('{"title":"源码","description":"","frontmatter":{},"headers":[],"relativePath":"src/introduce/src.md","filePath":"src/introduce/src.md","lastUpdated":null}'),r={name:"src/introduce/src.md"},c=t('

源码 ​

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

后端 ​

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

或

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

前端 ​

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

或

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

',10),i=[c];function l(n,s,d,h,m,f){return o(),e("div",null,i)}const u=a(r,[["render",l]]);export{_ as __pageData,u as default}; diff --git a/.vitepress/dist/assets/src_introduce_src.md.CxeEja1d.lean.js b/.vitepress/dist/assets/src_introduce_src.md.CxeEja1d.lean.js new file mode 100644 index 0000000..19c2755 --- /dev/null +++ b/.vitepress/dist/assets/src_introduce_src.md.CxeEja1d.lean.js @@ -0,0 +1 @@ +import{_ as a,c as e,o,a4 as t}from"./chunks/framework.DHgIdERs.js";const _=JSON.parse('{"title":"源码","description":"","frontmatter":{},"headers":[],"relativePath":"src/introduce/src.md","filePath":"src/introduce/src.md","lastUpdated":null}'),r={name:"src/introduce/src.md"},c=t("",10),i=[c];function l(n,s,d,h,m,f){return o(),e("div",null,i)}const u=a(r,[["render",l]]);export{_ as __pageData,u as default}; diff --git a/.vitepress/dist/assets/src_question_commonQuestion.md.CSsw8JOf.js b/.vitepress/dist/assets/src_question_commonQuestion.md.CSsw8JOf.js new file mode 100644 index 0000000..445675a --- /dev/null +++ b/.vitepress/dist/assets/src_question_commonQuestion.md.CSsw8JOf.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as n,a4 as t}from"./chunks/framework.DHgIdERs.js";const u=JSON.parse('{"title":"常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"src/question/commonQuestion.md","filePath":"src/question/commonQuestion.md","lastUpdated":null}'),o={name:"src/question/commonQuestion.md"},i=t('

常见问题 ​

IDEA导入Maven项目右侧没有Maven ​

当在 IntelliJ IDEA 中导入 Maven 项目时,如果右侧没有显示 Maven 面板,可能是因为以下几个原因: ​

1、项目未正确识别为 Maven 项目:确保项目的根目录下有一个 pom.xml 文件,这是 Maven 项目的标志。如果找不到 pom.xml 文件,需要检查项目导入过程中是否有误,或者从正确的源重新获取项目。

2、Maven 面板未启用显示:可能是由于 IDEA 的设置导致 Maven 面板未显示。请按照以下步骤检查和更改设置:

在 IDEA 中,选择 File > Settings(对于 macOS 用户是 IntelliJ IDEA > Preferences)。 在设置窗口中,导航到 Build, Execution, Deployment > Build Tools > Maven。 确保选中了显示 Maven 面板的选项。

3、项目未正确加载 pom 文件:如果是因为读取项目出错,未正确加载 pom 文件造成的,可以尝试以下解决方案:

关闭 IDEA,在项目目录中删除 .idea 文件夹,然后重新打开项目,重新加载。 直接在 pom 文件中右键选择 Add as Maven Project。

4、视图设置问题:如果之前 Maven 面板是有的,突然之间没有了,可以尝试通过菜单 View > Tool Windows > Maven 来重新显示 Maven 面板。

通过上述步骤,大多数情况下可以解决 IntelliJ IDEA 中 Maven 面板不显示的问题。如果问题依旧存在,可能需要进一步检查项目的配置或考虑重新导入项目。

',10),l=[i];function s(c,r,m,d,p,v){return n(),a("div",null,l)}const h=e(o,[["render",s]]);export{u as __pageData,h as default}; diff --git a/.vitepress/dist/assets/src_question_commonQuestion.md.CSsw8JOf.lean.js b/.vitepress/dist/assets/src_question_commonQuestion.md.CSsw8JOf.lean.js new file mode 100644 index 0000000..82aa832 --- /dev/null +++ b/.vitepress/dist/assets/src_question_commonQuestion.md.CSsw8JOf.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as n,a4 as t}from"./chunks/framework.DHgIdERs.js";const u=JSON.parse('{"title":"常见问题","description":"","frontmatter":{},"headers":[],"relativePath":"src/question/commonQuestion.md","filePath":"src/question/commonQuestion.md","lastUpdated":null}'),o={name:"src/question/commonQuestion.md"},i=t("",10),l=[i];function s(c,r,m,d,p,v){return n(),a("div",null,l)}const h=e(o,[["render",s]]);export{u as __pageData,h as default}; diff --git a/.vitepress/dist/assets/src_todo_plan.md.Cet0ly3b.js b/.vitepress/dist/assets/src_todo_plan.md.Cet0ly3b.js new file mode 100644 index 0000000..93b26fd --- /dev/null +++ b/.vitepress/dist/assets/src_todo_plan.md.Cet0ly3b.js @@ -0,0 +1 @@ +import{_ as t,c as o,o as s,j as e,a}from"./chunks/framework.DHgIdERs.js";const b=JSON.parse('{"title":"计划","description":"","frontmatter":{},"headers":[],"relativePath":"src/todo/plan.md","filePath":"src/todo/plan.md","lastUpdated":null}'),n={name:"src/todo/plan.md"},l=e("h1",{id:"计划",tabindex:"-1"},[a("计划 "),e("a",{class:"header-anchor",href:"#计划","aria-label":'Permalink to "计划"'},"​")],-1),r=e("p",null,"以下是我们的一些计划,如果你有更好的建议,欢迎联系我们。",-1),c=e("h2",{id:"v7-1-1",tabindex:"-1"},[a("v7.1.1 "),e("a",{class:"header-anchor",href:"#v7-1-1","aria-label":'Permalink to "v7.1.1"'},"​")],-1),d=e("ul",null,[e("li",null,"新增 Ai 自动编码功能,简单功能零代码实现;"),e("li",null,"新增后台扩展插件,如文件上传、支付、短信等功能可以通过安装插件的方式添加;")],-1),i=[l,r,c,d];function _(h,p,m,u,f,v){return s(),o("div",null,i)}const k=t(n,[["render",_]]);export{b as __pageData,k as default}; diff --git a/.vitepress/dist/assets/src_todo_plan.md.Cet0ly3b.lean.js b/.vitepress/dist/assets/src_todo_plan.md.Cet0ly3b.lean.js new file mode 100644 index 0000000..93b26fd --- /dev/null +++ b/.vitepress/dist/assets/src_todo_plan.md.Cet0ly3b.lean.js @@ -0,0 +1 @@ +import{_ as t,c as o,o as s,j as e,a}from"./chunks/framework.DHgIdERs.js";const b=JSON.parse('{"title":"计划","description":"","frontmatter":{},"headers":[],"relativePath":"src/todo/plan.md","filePath":"src/todo/plan.md","lastUpdated":null}'),n={name:"src/todo/plan.md"},l=e("h1",{id:"计划",tabindex:"-1"},[a("计划 "),e("a",{class:"header-anchor",href:"#计划","aria-label":'Permalink to "计划"'},"​")],-1),r=e("p",null,"以下是我们的一些计划,如果你有更好的建议,欢迎联系我们。",-1),c=e("h2",{id:"v7-1-1",tabindex:"-1"},[a("v7.1.1 "),e("a",{class:"header-anchor",href:"#v7-1-1","aria-label":'Permalink to "v7.1.1"'},"​")],-1),d=e("ul",null,[e("li",null,"新增 Ai 自动编码功能,简单功能零代码实现;"),e("li",null,"新增后台扩展插件,如文件上传、支付、短信等功能可以通过安装插件的方式添加;")],-1),i=[l,r,c,d];function _(h,p,m,u,f,v){return s(),o("div",null,i)}const k=t(n,[["render",_]]);export{b as __pageData,k as default}; diff --git a/.vitepress/dist/assets/src_todo_update.md.CF7505b6.js b/.vitepress/dist/assets/src_todo_update.md.CF7505b6.js new file mode 100644 index 0000000..575d86a --- /dev/null +++ b/.vitepress/dist/assets/src_todo_update.md.CF7505b6.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as t,a4 as o}from"./chunks/framework.DHgIdERs.js";const m=JSON.parse('{"title":"更新","description":"","frontmatter":{},"headers":[],"relativePath":"src/todo/update.md","filePath":"src/todo/update.md","lastUpdated":null}'),r={name:"src/todo/update.md"},l=o('

更新 ​

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

v7.1.0(2024-06-27) ​

  • 升级到 Springboot3.x;
  • 升级所有相关依赖到最新;
  • 跟进Nodejs 版相关功能;
  • 优化若干问题;
',4),s=[l];function i(d,c,n,_,p,h){return t(),e("div",null,s)}const f=a(r,[["render",i]]);export{m as __pageData,f as default}; diff --git a/.vitepress/dist/assets/src_todo_update.md.CF7505b6.lean.js b/.vitepress/dist/assets/src_todo_update.md.CF7505b6.lean.js new file mode 100644 index 0000000..78e9b38 --- /dev/null +++ b/.vitepress/dist/assets/src_todo_update.md.CF7505b6.lean.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as t,a4 as o}from"./chunks/framework.DHgIdERs.js";const m=JSON.parse('{"title":"更新","description":"","frontmatter":{},"headers":[],"relativePath":"src/todo/update.md","filePath":"src/todo/update.md","lastUpdated":null}'),r={name:"src/todo/update.md"},l=o("",4),s=[l];function i(d,c,n,_,p,h){return t(),e("div",null,s)}const f=a(r,[["render",i]]);export{m as __pageData,f as default}; diff --git a/.vitepress/dist/assets/style.CoKMOhgV.css b/.vitepress/dist/assets/style.CoKMOhgV.css new file mode 100644 index 0000000..b08ff09 --- /dev/null +++ b/.vitepress/dist/assets/style.CoKMOhgV.css @@ -0,0 +1 @@ +@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-cyrillic.C5lxZ8CY.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-greek-ext.CqjqNYQ-.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-greek.BBVDIX6e.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-vietnamese.BjW4sHH5.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-latin-ext.4ZJIpNVo.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-roman-latin.Di8DUHzh.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-cyrillic-ext.r48I6akx.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-cyrillic.By2_1cv3.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-greek-ext.1u6EdAuj.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-greek.DJ8dCoTZ.woff2) format("woff2");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-vietnamese.BSbpV94h.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-latin-ext.CN1xVJS-.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/inter-italic-latin.C2AdPX0b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Punctuation SC;font-weight:400;src:local("PingFang SC Regular"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:500;src:local("PingFang SC Medium"),local("Noto Sans CJK SC"),local("Microsoft YaHei");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:600;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}@font-face{font-family:Punctuation SC;font-weight:700;src:local("PingFang SC Semibold"),local("Noto Sans CJK SC Bold"),local("Microsoft YaHei Bold");unicode-range:U+201C,U+201D,U+2018,U+2019,U+2E3A,U+2014,U+2013,U+2026,U+00B7,U+007E,U+002F}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-purple-1: #6f42c1;--vp-c-purple-2: #7e4cc9;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-purple-1: #c8abfa;--vp-c-purple-2: #a879e6;--vp-c-purple-3: #8e5cd9;--vp-c-purple-soft: rgba(159, 122, 234, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-note-1: var(--vp-c-brand-1);--vp-c-note-2: var(--vp-c-brand-2);--vp-c-note-3: var(--vp-c-brand-3);--vp-c-note-soft: var(--vp-c-brand-soft);--vp-c-success-1: var(--vp-c-green-1);--vp-c-success-2: var(--vp-c-green-2);--vp-c-success-3: var(--vp-c-green-3);--vp-c-success-soft: var(--vp-c-green-soft);--vp-c-important-1: var(--vp-c-purple-1);--vp-c-important-2: var(--vp-c-purple-2);--vp-c-important-3: var(--vp-c-purple-3);--vp-c-important-soft: var(--vp-c-purple-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft);--vp-c-caution-1: var(--vp-c-red-1);--vp-c-caution-2: var(--vp-c-red-2);--vp-c-caution-3: var(--vp-c-red-3);--vp-c-caution-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}:root:where(:lang(zh)){--vp-font-family-base: "Punctuation SC", "Inter", ui-sans-serif, system-ui, "PingFang SC", "Noto Sans CJK SC", "Noto Sans SC", "Heiti SC", "Microsoft YaHei", "DengXian", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}@media (min-width: 960px){:root{--vp-z-index-sidebar: 25}}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-success-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-success-1);--vp-code-line-diff-remove-color: var(--vp-c-danger-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-danger-1);--vp-code-line-warning-color: var(--vp-c-warning-soft);--vp-code-line-error-color: var(--vp-c-danger-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-note-border: transparent;--vp-custom-block-note-text: var(--vp-c-text-1);--vp-custom-block-note-bg: var(--vp-c-default-soft);--vp-custom-block-note-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-tip-soft);--vp-custom-block-tip-code-bg: var(--vp-c-tip-soft);--vp-custom-block-important-border: transparent;--vp-custom-block-important-text: var(--vp-c-text-1);--vp-custom-block-important-bg: var(--vp-c-important-soft);--vp-custom-block-important-code-bg: var(--vp-c-important-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-caution-border: transparent;--vp-custom-block-caution-text: var(--vp-c-text-1);--vp-custom-block-caution-bg: var(--vp-c-caution-soft);--vp-custom-block-caution-code-bg: var(--vp-c-caution-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-default-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-tip-1);--vp-badge-tip-bg: var(--vp-c-tip-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{overflow-x:auto}mjx-container>svg{display:inline-block;margin:auto}[class^=vpi-],[class*=" vpi-"],.vp-icon{width:1em;height:1em}[class^=vpi-].bg,[class*=" vpi-"].bg,.vp-icon.bg{background-size:100% 100%;background-color:transparent}[class^=vpi-]:not(.bg),[class*=" vpi-"]:not(.bg),.vp-icon:not(.bg){-webkit-mask:var(--icon) no-repeat;mask:var(--icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit}.vpi-align-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M21 6H3M15 12H3M17 18H3'/%3E%3C/svg%3E")}.vpi-arrow-right,.vpi-arrow-down,.vpi-arrow-left,.vpi-arrow-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}.vpi-chevron-right,.vpi-chevron-down,.vpi-chevron-left,.vpi-chevron-up{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}.vpi-chevron-down,.vpi-arrow-down{transform:rotate(90deg)}.vpi-chevron-left,.vpi-arrow-left{transform:rotate(180deg)}.vpi-chevron-up,.vpi-arrow-up{transform:rotate(-90deg)}.vpi-square-pen{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7'/%3E%3Cpath d='M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z'/%3E%3C/svg%3E")}.vpi-plus{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}.vpi-sun{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E")}.vpi-moon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E")}.vpi-more-horizontal{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='1'/%3E%3Ccircle cx='19' cy='12' r='1'/%3E%3Ccircle cx='5' cy='12' r='1'/%3E%3C/svg%3E")}.vpi-languages{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}.vpi-heart{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z'/%3E%3C/svg%3E")}.vpi-search{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}.vpi-layout-list{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='7' height='7' x='3' y='3' rx='1'/%3E%3Crect width='7' height='7' x='3' y='14' rx='1'/%3E%3Cpath d='M14 4h7M14 9h7M14 15h7M14 20h7'/%3E%3C/svg%3E")}.vpi-delete{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M20 5H9l-7 7 7 7h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2ZM18 9l-6 6M12 9l6 6'/%3E%3C/svg%3E")}.vpi-corner-down-left{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m9 10-5 5 5 5'/%3E%3Cpath d='M20 4v7a4 4 0 0 1-4 4H4'/%3E%3C/svg%3E")}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='rgba(128,128,128,1)' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' viewBox='0 0 24 24'%3E%3Crect width='8' height='4' x='8' y='2' rx='1' ry='1'/%3E%3Cpath d='M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/svg%3E")}.vpi-social-discord{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.956-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419 0-1.333.955-2.419 2.157-2.419 1.21 0 2.176 1.096 2.157 2.42 0 1.333-.946 2.418-2.157 2.418Z'/%3E%3C/svg%3E")}.vpi-social-facebook{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z'/%3E%3C/svg%3E")}.vpi-social-github{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}.vpi-social-instagram{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7.03.084c-1.277.06-2.149.264-2.91.563a5.874 5.874 0 0 0-2.124 1.388 5.878 5.878 0 0 0-1.38 2.127C.321 4.926.12 5.8.064 7.076.008 8.354-.005 8.764.001 12.023c.007 3.259.021 3.667.083 4.947.061 1.277.264 2.149.563 2.911.308.789.72 1.457 1.388 2.123a5.872 5.872 0 0 0 2.129 1.38c.763.295 1.636.496 2.913.552 1.278.056 1.689.069 4.947.063 3.257-.007 3.668-.021 4.947-.082 1.28-.06 2.147-.265 2.91-.563a5.881 5.881 0 0 0 2.123-1.388 5.881 5.881 0 0 0 1.38-2.129c.295-.763.496-1.636.551-2.912.056-1.28.07-1.69.063-4.948-.006-3.258-.02-3.667-.081-4.947-.06-1.28-.264-2.148-.564-2.911a5.892 5.892 0 0 0-1.387-2.123 5.857 5.857 0 0 0-2.128-1.38C19.074.322 18.202.12 16.924.066 15.647.009 15.236-.006 11.977 0 8.718.008 8.31.021 7.03.084m.14 21.693c-1.17-.05-1.805-.245-2.228-.408a3.736 3.736 0 0 1-1.382-.895 3.695 3.695 0 0 1-.9-1.378c-.165-.423-.363-1.058-.417-2.228-.06-1.264-.072-1.644-.08-4.848-.006-3.204.006-3.583.061-4.848.05-1.169.246-1.805.408-2.228.216-.561.477-.96.895-1.382a3.705 3.705 0 0 1 1.379-.9c.423-.165 1.057-.361 2.227-.417 1.265-.06 1.644-.072 4.848-.08 3.203-.006 3.583.006 4.85.062 1.168.05 1.804.244 2.227.408.56.216.96.475 1.382.895.421.42.681.817.9 1.378.165.422.362 1.056.417 2.227.06 1.265.074 1.645.08 4.848.005 3.203-.006 3.583-.061 4.848-.051 1.17-.245 1.805-.408 2.23-.216.56-.477.96-.896 1.38a3.705 3.705 0 0 1-1.378.9c-.422.165-1.058.362-2.226.418-1.266.06-1.645.072-4.85.079-3.204.007-3.582-.006-4.848-.06m9.783-16.192a1.44 1.44 0 1 0 1.437-1.442 1.44 1.44 0 0 0-1.437 1.442M5.839 12.012a6.161 6.161 0 1 0 12.323-.024 6.162 6.162 0 0 0-12.323.024M8 12.008A4 4 0 1 1 12.008 16 4 4 0 0 1 8 12.008'/%3E%3C/svg%3E")}.vpi-social-linkedin{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z'/%3E%3C/svg%3E")}.vpi-social-mastodon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611.118 1.24.325 2.47.62 3.68.55 2.237 2.777 4.098 4.96 4.857 2.336.792 4.849.923 7.256.38.265-.061.527-.132.786-.213.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041.053.053 0 0 0-.046-.01 20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546.376 0 .75 0 1.125-.01 1.57-.044 3.224-.124 4.768-.422.038-.008.077-.015.11-.024 2.435-.464 4.753-1.92 4.989-5.604.008-.145.03-1.52.03-1.67.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12.696-.77 1.608-1.164 2.74-1.164 1.311 0 2.302.5 2.962 1.498l.638 1.06.638-1.06c.66-.999 1.65-1.498 2.96-1.498 1.13 0 2.043.395 2.74 1.164.675.77 1.012 1.81 1.012 3.12z'/%3E%3C/svg%3E")}.vpi-social-npm{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z'/%3E%3C/svg%3E")}.vpi-social-slack{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zm1.271 0a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zm0 1.271a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zm10.122 2.521a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zm-1.268 0a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zm-2.523 10.122a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zm0-1.268a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z'/%3E%3C/svg%3E")}.vpi-social-twitter,.vpi-social-x{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z'/%3E%3C/svg%3E")}.vpi-social-youtube{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/%3E%3C/svg%3E")}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover,.custom-block.info a:hover>code{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.note{border-color:var(--vp-custom-block-note-border);color:var(--vp-custom-block-note-text);background-color:var(--vp-custom-block-note-bg)}.custom-block.note a,.custom-block.note code{color:var(--vp-c-brand-1)}.custom-block.note a:hover,.custom-block.note a:hover>code{color:var(--vp-c-brand-2)}.custom-block.note code{background-color:var(--vp-custom-block-note-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-tip-1)}.custom-block.tip a:hover,.custom-block.tip a:hover>code{color:var(--vp-c-tip-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.important{border-color:var(--vp-custom-block-important-border);color:var(--vp-custom-block-important-text);background-color:var(--vp-custom-block-important-bg)}.custom-block.important a,.custom-block.important code{color:var(--vp-c-important-1)}.custom-block.important a:hover,.custom-block.important a:hover>code{color:var(--vp-c-important-2)}.custom-block.important code{background-color:var(--vp-custom-block-important-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover,.custom-block.warning a:hover>code{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover,.custom-block.danger a:hover>code{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.caution{border-color:var(--vp-custom-block-caution-border);color:var(--vp-custom-block-caution-text);background-color:var(--vp-custom-block-caution-bg)}.custom-block.caution a,.custom-block.caution code{color:var(--vp-c-caution-1)}.custom-block.caution a:hover,.custom-block.caution a:hover>code{color:var(--vp-c-caution-2)}.custom-block.caution code{background-color:var(--vp-custom-block-caution-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover,.custom-block.details a:hover>code{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc h4{margin:24px 0 0;letter-spacing:-.01em;line-height:24px;font-size:18px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s;color:var(--vp-c-text-2)}.vp-doc blockquote>p{margin:0;font-size:16px;transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code,.vp-doc h4>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.external-link-icon-enabled :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin:0 0 4px!important;text-align:center;letter-spacing:1px!important;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.VPBadge.small{padding:0 6px;line-height:18px;font-size:10px;transform:translateY(-8px)}.VPDocFooter .VPBadge{display:none}.vp-doc h1>.VPBadge{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge{vertical-align:middle}.vp-doc h4>.VPBadge,.vp-doc h5>.VPBadge,.vp-doc h6>.VPBadge{vertical-align:middle;line-height:18px}.VPBadge.info{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-ee4f8a0b]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-ee4f8a0b],.VPBackdrop.fade-leave-to[data-v-ee4f8a0b]{opacity:0}.VPBackdrop.fade-leave-active[data-v-ee4f8a0b]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-ee4f8a0b]{display:none}}.NotFound[data-v-25b3c91b]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-25b3c91b]{padding:96px 32px 168px}}.code[data-v-25b3c91b]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-25b3c91b]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-25b3c91b]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-25b3c91b]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-25b3c91b]{padding-top:20px}.link[data-v-25b3c91b]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-25b3c91b]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-a53304d2]{position:relative;z-index:1}.nested[data-v-a53304d2]{padding-right:16px;padding-left:16px}.outline-link[data-v-a53304d2]{display:block;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-a53304d2]:hover,.outline-link.active[data-v-a53304d2]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-a53304d2]{padding-left:13px}.VPDocAsideOutline[data-v-e9242aa7]{display:none}.VPDocAsideOutline.has-outline[data-v-e9242aa7]{display:block}.content[data-v-e9242aa7]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-e9242aa7]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-e9242aa7]{line-height:32px;font-size:14px;font-weight:600}.VPDocAside[data-v-4ef74901]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-4ef74901]{flex-grow:1}.VPDocAside[data-v-4ef74901] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-4ef74901] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-4ef74901] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-4e3c18a4]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-4e3c18a4]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-34368ad2]{margin-top:64px}.edit-info[data-v-34368ad2]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-34368ad2]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-34368ad2]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-34368ad2]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-34368ad2]{margin-right:8px}.prev-next[data-v-34368ad2]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-34368ad2]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-34368ad2]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-34368ad2]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-34368ad2]{margin-left:auto;text-align:right}.desc[data-v-34368ad2]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-34368ad2]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDoc[data-v-b521a168]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-b521a168]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-b521a168]{padding:48px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-b521a168]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-b521a168]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-b521a168]{display:flex;justify-content:center}.VPDoc .aside[data-v-b521a168]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-b521a168]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-b521a168]{max-width:1104px}}.container[data-v-b521a168]{margin:0 auto;width:100%}.aside[data-v-b521a168]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-b521a168]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-b521a168]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 48px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-b521a168]::-webkit-scrollbar{display:none}.aside-curtain[data-v-b521a168]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-b521a168]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px));padding-bottom:32px}.content[data-v-b521a168]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-b521a168]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-b521a168]{order:1;margin:0;min-width:640px}}.content-container[data-v-b521a168]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-b521a168]{max-width:688px}.VPButton[data-v-89174608]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-89174608]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-89174608]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-89174608]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-89174608]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-89174608]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-89174608]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-89174608]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-89174608]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-89174608]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-89174608]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-89174608]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-89174608]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-13e6cd18]{display:none}.dark .VPImage.light[data-v-13e6cd18]{display:none}.VPHero[data-v-0661e2e5]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-0661e2e5]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-0661e2e5]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-0661e2e5]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-0661e2e5]{flex-direction:row}}.main[data-v-0661e2e5]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-0661e2e5]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-0661e2e5]{text-align:left}}@media (min-width: 960px){.main[data-v-0661e2e5]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-0661e2e5]{max-width:592px}}.name[data-v-0661e2e5],.text[data-v-0661e2e5]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-0661e2e5],.VPHero.has-image .text[data-v-0661e2e5]{margin:0 auto}.name[data-v-0661e2e5]{color:var(--vp-home-hero-name-color)}.clip[data-v-0661e2e5]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-0661e2e5],.text[data-v-0661e2e5]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-0661e2e5],.text[data-v-0661e2e5]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-0661e2e5],.VPHero.has-image .text[data-v-0661e2e5]{margin:0}}.tagline[data-v-0661e2e5]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-0661e2e5]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-0661e2e5]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-0661e2e5]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-0661e2e5]{margin:0}}.actions[data-v-0661e2e5]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-0661e2e5]{justify-content:center}@media (min-width: 640px){.actions[data-v-0661e2e5]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-0661e2e5]{justify-content:flex-start}}.action[data-v-0661e2e5]{flex-shrink:0;padding:6px}.image[data-v-0661e2e5]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-0661e2e5]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-0661e2e5]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-0661e2e5]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-0661e2e5]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-0661e2e5]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-0661e2e5]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-0661e2e5]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-0661e2e5]{width:320px;height:320px}}[data-v-0661e2e5] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-0661e2e5] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-0661e2e5] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-98aa41e6]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-98aa41e6]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-98aa41e6]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-98aa41e6]>.VPImage{margin-bottom:20px}.icon[data-v-98aa41e6]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-98aa41e6]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-98aa41e6]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-98aa41e6]{padding-top:8px}.link-text-value[data-v-98aa41e6]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-98aa41e6]{margin-left:6px}.VPFeatures[data-v-178d34ad]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-178d34ad]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-178d34ad]{padding:0 64px}}.container[data-v-178d34ad]{margin:0 auto;max-width:1152px}.items[data-v-178d34ad]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-178d34ad]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-178d34ad],.item.grid-4[data-v-178d34ad],.item.grid-6[data-v-178d34ad]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-178d34ad],.item.grid-4[data-v-178d34ad]{width:50%}.item.grid-3[data-v-178d34ad],.item.grid-6[data-v-178d34ad]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-178d34ad]{width:25%}}.container[data-v-cfbc1a43]{margin:auto;width:100%;max-width:1280px;padding:0 24px}@media (min-width: 640px){.container[data-v-cfbc1a43]{padding:0 48px}}@media (min-width: 960px){.container[data-v-cfbc1a43]{width:100%;padding:0 64px}}.vp-doc[data-v-cfbc1a43] .VPHomeSponsors,.vp-doc[data-v-cfbc1a43] .VPTeamPage{margin-left:var(--vp-offset, calc(50% - 50vw) );margin-right:var(--vp-offset, calc(50% - 50vw) )}.vp-doc[data-v-cfbc1a43] .VPHomeSponsors h2{border-top:none;letter-spacing:normal}.vp-doc[data-v-cfbc1a43] .VPHomeSponsors a,.vp-doc[data-v-cfbc1a43] .VPTeamPage a{text-decoration:none}.VPHome[data-v-fd2ffb77]{margin-bottom:96px}@media (min-width: 768px){.VPHome[data-v-fd2ffb77]{margin-bottom:128px}}.VPContent[data-v-cb0805a1]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-cb0805a1]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-cb0805a1]{margin:0}@media (min-width: 960px){.VPContent[data-v-cb0805a1]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-cb0805a1]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-cb0805a1]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-c01e8608]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-c01e8608]{display:none}.VPFooter[data-v-c01e8608] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-c01e8608] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-c01e8608]{padding:32px}}.container[data-v-c01e8608]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-c01e8608],.copyright[data-v-c01e8608]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-f9d4ca59]{padding:12px 20px 11px}@media (min-width: 960px){.VPLocalNavOutlineDropdown[data-v-f9d4ca59]{padding:12px 36px 11px}}.VPLocalNavOutlineDropdown button[data-v-f9d4ca59]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-f9d4ca59]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-f9d4ca59]{color:var(--vp-c-text-1)}.icon[data-v-f9d4ca59]{display:inline-block;vertical-align:middle;margin-left:2px;font-size:14px;transform:rotate(0);transition:transform .25s}@media (min-width: 960px){.VPLocalNavOutlineDropdown button[data-v-f9d4ca59]{font-size:14px}.icon[data-v-f9d4ca59]{font-size:16px}}.open>.icon[data-v-f9d4ca59]{transform:rotate(90deg)}.items[data-v-f9d4ca59]{position:absolute;top:40px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}@media (min-width: 960px){.items[data-v-f9d4ca59]{right:auto;left:calc(var(--vp-sidebar-width) + 32px);width:320px}}.header[data-v-f9d4ca59]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-f9d4ca59]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-f9d4ca59]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-f9d4ca59]{transition:all .2s ease-out}.flyout-leave-active[data-v-f9d4ca59]{transition:all .15s ease-in}.flyout-enter-from[data-v-f9d4ca59],.flyout-leave-to[data-v-f9d4ca59]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-4b826de3]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-4b826de3]{position:fixed}@media (min-width: 960px){.VPLocalNav[data-v-4b826de3]{top:var(--vp-nav-height)}.VPLocalNav.has-sidebar[data-v-4b826de3]{padding-left:var(--vp-sidebar-width)}.VPLocalNav.empty[data-v-4b826de3]{display:none}}@media (min-width: 1280px){.VPLocalNav[data-v-4b826de3]{display:none}}@media (min-width: 1440px){.VPLocalNav.has-sidebar[data-v-4b826de3]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.container[data-v-4b826de3]{display:flex;justify-content:space-between;align-items:center}.menu[data-v-4b826de3]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-4b826de3]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-4b826de3]{padding:0 32px}}@media (min-width: 960px){.menu[data-v-4b826de3]{display:none}}.menu-icon[data-v-4b826de3]{margin-right:8px;font-size:14px}.VPOutlineDropdown[data-v-4b826de3]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-4b826de3]{padding:12px 32px 11px}}.VPSwitch[data-v-c5a026db]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-c5a026db]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-c5a026db]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-c5a026db]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-c5a026db] [class^=vpi-]{position:absolute;top:3px;left:3px;width:12px;height:12px;color:var(--vp-c-text-2)}.dark .icon[data-v-c5a026db] [class^=vpi-]{color:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-5e81030c]{opacity:1}.moon[data-v-5e81030c],.dark .sun[data-v-5e81030c]{opacity:0}.dark .moon[data-v-5e81030c]{opacity:1}.dark .VPSwitchAppearance[data-v-5e81030c] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-830f4e0c]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-830f4e0c]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-47efe451]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-47efe451]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-47efe451]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-47efe451]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-dd99de09]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-dd99de09]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-dd99de09]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-dd99de09]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-0007c525]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-0007c525] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-0007c525] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-0007c525] .group:last-child{padding-bottom:0}.VPMenu[data-v-0007c525] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-0007c525] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-0007c525] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-0007c525] .action{padding-left:24px}.VPFlyout[data-v-11ef3b07]{position:relative}.VPFlyout[data-v-11ef3b07]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-11ef3b07]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-11ef3b07]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-11ef3b07]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-11ef3b07]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-11ef3b07],.button[aria-expanded=true]+.menu[data-v-11ef3b07]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-11ef3b07]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-11ef3b07]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-11ef3b07]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-11ef3b07]{margin-right:0;font-size:16px}.text-icon[data-v-11ef3b07]{margin-left:4px;font-size:14px}.icon[data-v-11ef3b07]{font-size:20px;transition:fill .25s}.menu[data-v-11ef3b07]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-116c6058]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-116c6058]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-116c6058]>svg,.VPSocialLink[data-v-116c6058]>[class^=vpi-social-]{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-e883f8d0]{display:flex;justify-content:center}.VPNavBarExtra[data-v-f78a1889]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-f78a1889]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-f78a1889]{display:none}}.trans-title[data-v-f78a1889]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-f78a1889],.item.social-links[data-v-f78a1889]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-f78a1889]{min-width:176px}.appearance-action[data-v-f78a1889]{margin-right:-2px}.social-links-list[data-v-f78a1889]{margin:-4px -8px}.VPNavBarHamburger[data-v-7ec5116e]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-7ec5116e]{display:none}}.container[data-v-7ec5116e]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-7ec5116e]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-7ec5116e]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-7ec5116e]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-7ec5116e]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-7ec5116e]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-7ec5116e]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-7ec5116e],.VPNavBarHamburger.active:hover .middle[data-v-7ec5116e],.VPNavBarHamburger.active:hover .bottom[data-v-7ec5116e]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-7ec5116e],.middle[data-v-7ec5116e],.bottom[data-v-7ec5116e]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-7ec5116e]{top:0;left:0;transform:translate(0)}.middle[data-v-7ec5116e]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-7ec5116e]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-6589ed1c]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-6589ed1c],.VPNavBarMenuLink[data-v-6589ed1c]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-46876648]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-46876648]{display:flex}}/*! @docsearch/css 3.6.0 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 1px 0 rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-key-pressed-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 1px 1px 0 rgba(3,4,9,.30196078431372547);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}.DocSearch-Button-Key--pressed{transform:translate3d(0,1px,0);box-shadow:var(--docsearch-key-pressed-shadow)}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}.DocSearch-VisuallyHiddenForAccessibility{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button-Key--pressed{transform:none;box-shadow:none}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.DocSearch-Search-Icon{--icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' stroke-width='1.6' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='m14.386 14.386 4.088 4.088-4.088-4.088A7.533 7.533 0 1 1 3.733 3.733a7.533 7.533 0 0 1 10.653 10.653z'/%3E%3C/svg%3E")}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-6a13576c]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-6a13576c]{display:flex;align-items:center}}.title[data-v-ff17a4ae]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-ff17a4ae]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-ff17a4ae]{border-bottom-color:var(--vp-c-divider)}}[data-v-ff17a4ae] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-540bc5e8]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-540bc5e8]{display:flex;align-items:center}}.title[data-v-540bc5e8]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-3fed1b83]{position:relative;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap;transition:background-color .25s}.VPNavBar.screen-open[data-v-3fed1b83]{transition:none;background-color:var(--vp-nav-bg-color);border-bottom:1px solid var(--vp-c-divider)}.VPNavBar[data-v-3fed1b83]:not(.home){background-color:var(--vp-nav-bg-color)}@media (min-width: 960px){.VPNavBar[data-v-3fed1b83]:not(.home){background-color:transparent}.VPNavBar[data-v-3fed1b83]:not(.has-sidebar):not(.home.top){background-color:var(--vp-nav-bg-color)}}.wrapper[data-v-3fed1b83]{padding:0 8px 0 24px}@media (min-width: 768px){.wrapper[data-v-3fed1b83]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar .wrapper[data-v-3fed1b83]{padding:0}}.container[data-v-3fed1b83]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-3fed1b83],.container>.content[data-v-3fed1b83]{pointer-events:none}.container[data-v-3fed1b83] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-3fed1b83]{max-width:100%}}.title[data-v-3fed1b83]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-3fed1b83]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-3fed1b83]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-3fed1b83]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-3fed1b83]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-3fed1b83]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-3fed1b83]{display:flex;justify-content:flex-end;align-items:center;height:var(--vp-nav-height);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.home.top) .content-body[data-v-3fed1b83]{position:relative;background-color:var(--vp-nav-bg-color)}.VPNavBar:not(.has-sidebar):not(.home.top) .content-body[data-v-3fed1b83]{background-color:transparent}}@media (max-width: 767px){.content-body[data-v-3fed1b83]{column-gap:.5rem}}.menu+.translations[data-v-3fed1b83]:before,.menu+.appearance[data-v-3fed1b83]:before,.menu+.social-links[data-v-3fed1b83]:before,.translations+.appearance[data-v-3fed1b83]:before,.appearance+.social-links[data-v-3fed1b83]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-3fed1b83]:before,.translations+.appearance[data-v-3fed1b83]:before{margin-right:16px}.appearance+.social-links[data-v-3fed1b83]:before{margin-left:16px}.social-links[data-v-3fed1b83]{margin-right:-8px}.divider[data-v-3fed1b83]{width:100%;height:1px}@media (min-width: 960px){.VPNavBar.has-sidebar .divider[data-v-3fed1b83]{padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .divider[data-v-3fed1b83]{padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.divider-line[data-v-3fed1b83]{width:100%;height:1px;transition:background-color .5s}.VPNavBar:not(.home) .divider-line[data-v-3fed1b83]{background-color:var(--vp-c-gutter)}@media (min-width: 960px){.VPNavBar:not(.home.top) .divider-line[data-v-3fed1b83]{background-color:var(--vp-c-gutter)}.VPNavBar:not(.has-sidebar):not(.home.top) .divider[data-v-3fed1b83]{background-color:var(--vp-c-gutter)}}.VPNavScreenAppearance[data-v-0ceafb5f]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-0ceafb5f]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-8abda8b8]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-8abda8b8]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-ae02dd03]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-ae02dd03]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-dea7123a]{display:block}.title[data-v-dea7123a]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-f76bdb19]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-f76bdb19]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-f76bdb19]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-f76bdb19]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-f76bdb19]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-f76bdb19]{transform:rotate(45deg)}.button[data-v-f76bdb19]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-f76bdb19]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-f76bdb19]{transition:transform .25s}.group[data-v-f76bdb19]:first-child{padding-top:0}.group+.group[data-v-f76bdb19],.group+.item[data-v-f76bdb19]{padding-top:4px}.VPNavScreenTranslations[data-v-eaa0f43e]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-eaa0f43e]{height:auto}.title[data-v-eaa0f43e]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-eaa0f43e]{font-size:16px}.icon.lang[data-v-eaa0f43e]{margin-right:8px}.icon.chevron[data-v-eaa0f43e]{margin-left:4px}.list[data-v-eaa0f43e]{padding:4px 0 0 24px}.link[data-v-eaa0f43e]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-334bb4cd]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px));right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .25s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-334bb4cd],.VPNavScreen.fade-leave-active[data-v-334bb4cd]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-334bb4cd],.VPNavScreen.fade-leave-active .container[data-v-334bb4cd]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-334bb4cd],.VPNavScreen.fade-leave-to[data-v-334bb4cd]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-334bb4cd],.VPNavScreen.fade-leave-to .container[data-v-334bb4cd]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-334bb4cd]{display:none}}.container[data-v-334bb4cd]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-334bb4cd],.menu+.appearance[data-v-334bb4cd],.translations+.appearance[data-v-334bb4cd]{margin-top:24px}.menu+.social-links[data-v-334bb4cd]{margin-top:16px}.appearance+.social-links[data-v-334bb4cd]{margin-top:16px}.VPNav[data-v-a6f969fc]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-a6f969fc]{position:fixed}}.VPSidebarItem.level-0[data-v-a9de9e44]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-a9de9e44]{padding-bottom:10px}.item[data-v-a9de9e44]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-a9de9e44]{cursor:pointer}.indicator[data-v-a9de9e44]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-a9de9e44],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-a9de9e44],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-a9de9e44],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-a9de9e44]{background-color:var(--vp-c-brand-1)}.link[data-v-a9de9e44]{display:flex;align-items:center;flex-grow:1}.text[data-v-a9de9e44]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-a9de9e44]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-a9de9e44],.VPSidebarItem.level-2 .text[data-v-a9de9e44],.VPSidebarItem.level-3 .text[data-v-a9de9e44],.VPSidebarItem.level-4 .text[data-v-a9de9e44],.VPSidebarItem.level-5 .text[data-v-a9de9e44]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-a9de9e44],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-a9de9e44],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-a9de9e44],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-a9de9e44],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-a9de9e44],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-a9de9e44]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-a9de9e44],.VPSidebarItem.level-1.has-active>.item>.text[data-v-a9de9e44],.VPSidebarItem.level-2.has-active>.item>.text[data-v-a9de9e44],.VPSidebarItem.level-3.has-active>.item>.text[data-v-a9de9e44],.VPSidebarItem.level-4.has-active>.item>.text[data-v-a9de9e44],.VPSidebarItem.level-5.has-active>.item>.text[data-v-a9de9e44],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-a9de9e44],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-a9de9e44],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-a9de9e44],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-a9de9e44],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-a9de9e44],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-a9de9e44]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-a9de9e44],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-a9de9e44],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-a9de9e44],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-a9de9e44],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-a9de9e44],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-a9de9e44]{color:var(--vp-c-brand-1)}.caret[data-v-a9de9e44]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-a9de9e44]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-a9de9e44]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-a9de9e44]{font-size:18px;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-a9de9e44]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-a9de9e44],.VPSidebarItem.level-2 .items[data-v-a9de9e44],.VPSidebarItem.level-3 .items[data-v-a9de9e44],.VPSidebarItem.level-4 .items[data-v-a9de9e44],.VPSidebarItem.level-5 .items[data-v-a9de9e44]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-a9de9e44]{display:none}.no-transition[data-v-9c4bd70d] .caret-icon{transition:none}.group+.group[data-v-9c4bd70d]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-9c4bd70d]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSidebar[data-v-e024fac9]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-e024fac9]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-e024fac9]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-e024fac9]{padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-e024fac9]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-e024fac9]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-e024fac9]{outline:0}.VPSkipLink[data-v-497b75be]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-497b75be]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-497b75be]{top:14px;left:16px}}.Layout[data-v-0dd53a6c]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-937a597b]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPHomeSponsors[data-v-937a597b]{margin:96px 0}@media (min-width: 768px){.VPHomeSponsors[data-v-937a597b]{margin:128px 0}}.VPHomeSponsors[data-v-937a597b]{padding:0 24px}@media (min-width: 768px){.VPHomeSponsors[data-v-937a597b]{padding:0 48px}}@media (min-width: 960px){.VPHomeSponsors[data-v-937a597b]{padding:0 64px}}.container[data-v-937a597b]{margin:0 auto;max-width:1152px}.love[data-v-937a597b]{margin:0 auto;width:fit-content;font-size:28px;color:var(--vp-c-text-3)}.icon[data-v-937a597b]{display:inline-block}.message[data-v-937a597b]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-937a597b]{padding-top:32px}.action[data-v-937a597b]{padding-top:40px;text-align:center}.VPTeamPage[data-v-cea363ab]{margin:96px 0}@media (min-width: 768px){.VPTeamPage[data-v-cea363ab]{margin:128px 0}}.VPHome .VPTeamPageTitle[data-v-cea363ab-s]{border-top:1px solid var(--vp-c-gutter);padding-top:88px!important}.VPTeamPageSection+.VPTeamPageSection[data-v-cea363ab-s],.VPTeamMembers+.VPTeamPageSection[data-v-cea363ab-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-cea363ab-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-cea363ab-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-cea363ab-s],.VPTeamMembers+.VPTeamPageSection[data-v-cea363ab-s]{margin-top:96px}}.VPTeamMembers[data-v-cea363ab-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-cea363ab-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-cea363ab-s]{padding:0 64px}}.VPTeamPageTitle[data-v-2b7aa8bd]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-2b7aa8bd]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-2b7aa8bd]{padding:80px 64px 48px}}.title[data-v-2b7aa8bd]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-2b7aa8bd]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-2b7aa8bd]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-2b7aa8bd]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-e7424e98]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-e7424e98]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-e7424e98]{padding:0 64px}}.title[data-v-e7424e98]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-e7424e98]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-e7424e98]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-e7424e98]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-e7424e98]{padding-top:40px}.VPTeamMembersItem[data-v-80ea8d07]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-80ea8d07]{padding:32px}.VPTeamMembersItem.small .data[data-v-80ea8d07]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-80ea8d07]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-80ea8d07]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-80ea8d07]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-80ea8d07]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-80ea8d07]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-80ea8d07]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-80ea8d07]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-80ea8d07]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-80ea8d07]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-80ea8d07]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-80ea8d07]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-80ea8d07]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-80ea8d07]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-80ea8d07]{text-align:center}.avatar[data-v-80ea8d07]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-80ea8d07]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-80ea8d07]{margin:0;font-weight:600}.affiliation[data-v-80ea8d07]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-80ea8d07]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-80ea8d07]:hover{color:var(--vp-c-brand-1)}.desc[data-v-80ea8d07]{margin:0 auto}.desc[data-v-80ea8d07] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-80ea8d07]{display:flex;justify-content:center;height:56px}.sp-link[data-v-80ea8d07]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-80ea8d07]:hover,.sp .sp-link.link[data-v-80ea8d07]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-80ea8d07]{margin-right:8px;font-size:16px}.VPTeamMembers.small .container[data-v-5072261c]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-5072261c]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-5072261c]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-5072261c]{max-width:876px}.VPTeamMembers.medium .container[data-v-5072261c]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-5072261c]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-5072261c]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-5072261c]{max-width:760px}.container[data-v-5072261c]{display:grid;gap:24px;margin:0 auto;max-width:1152px}:root{--vp-home-hero-name-color: transparent;--vp-home-hero-name-background: -webkit-linear-gradient( 120deg, #bd34fe 30%, #41d1ff );--vp-home-hero-image-background-image: linear-gradient( -45deg, #bd34fe 50%, #47caff 50% );--vp-home-hero-image-filter: blur(44px)}@media (min-width: 640px){:root{--vp-home-hero-image-filter: blur(56px)}}@media (min-width: 960px){:root{--vp-home-hero-image-filter: blur(68px)}}@media (min-width: 960px){:root .image-src{max-width:400px;max-height:320px}}@media (min-width: 960px){.VPHero.has-image .name{padding-bottom:20px}.VPHero.has-image .text{padding-bottom:2px}}.medium-zoom-overlay,.medium-zoom-image{z-index:1000}.VPLocalSearchBox[data-v-b3bd7ef0]{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:flex}.backdrop[data-v-b3bd7ef0]{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--vp-backdrop-bg-color);transition:opacity .5s}.shell[data-v-b3bd7ef0]{position:relative;padding:12px;margin:64px auto;display:flex;flex-direction:column;gap:16px;background:var(--vp-local-search-bg);width:min(100vw - 60px,900px);height:min-content;max-height:min(100vh - 128px,900px);border-radius:6px}@media (max-width: 767px){.shell[data-v-b3bd7ef0]{margin:0;width:100vw;height:100vh;max-height:none;border-radius:0}}.search-bar[data-v-b3bd7ef0]{border:1px solid var(--vp-c-divider);border-radius:4px;display:flex;align-items:center;padding:0 12px;cursor:text}@media (max-width: 767px){.search-bar[data-v-b3bd7ef0]{padding:0 8px}}.search-bar[data-v-b3bd7ef0]:focus-within{border-color:var(--vp-c-brand-1)}.local-search-icon[data-v-b3bd7ef0]{display:block;font-size:18px}.navigate-icon[data-v-b3bd7ef0]{display:block;font-size:14px}.search-icon[data-v-b3bd7ef0]{margin:8px}@media (max-width: 767px){.search-icon[data-v-b3bd7ef0]{display:none}}.search-input[data-v-b3bd7ef0]{padding:6px 12px;font-size:inherit;width:100%}@media (max-width: 767px){.search-input[data-v-b3bd7ef0]{padding:6px 4px}}.search-actions[data-v-b3bd7ef0]{display:flex;gap:4px}@media (any-pointer: coarse){.search-actions[data-v-b3bd7ef0]{gap:8px}}@media (min-width: 769px){.search-actions.before[data-v-b3bd7ef0]{display:none}}.search-actions button[data-v-b3bd7ef0]{padding:8px}.search-actions button[data-v-b3bd7ef0]:not([disabled]):hover,.toggle-layout-button.detailed-list[data-v-b3bd7ef0]{color:var(--vp-c-brand-1)}.search-actions button.clear-button[data-v-b3bd7ef0]:disabled{opacity:.37}.search-keyboard-shortcuts[data-v-b3bd7ef0]{font-size:.8rem;opacity:75%;display:flex;flex-wrap:wrap;gap:16px;line-height:14px}.search-keyboard-shortcuts span[data-v-b3bd7ef0]{display:flex;align-items:center;gap:4px}@media (max-width: 767px){.search-keyboard-shortcuts[data-v-b3bd7ef0]{display:none}}.search-keyboard-shortcuts kbd[data-v-b3bd7ef0]{background:#8080801a;border-radius:4px;padding:3px 6px;min-width:24px;display:inline-block;text-align:center;vertical-align:middle;border:1px solid rgba(128,128,128,.15);box-shadow:0 2px 2px #0000001a}.results[data-v-b3bd7ef0]{display:flex;flex-direction:column;gap:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.result[data-v-b3bd7ef0]{display:flex;align-items:center;gap:8px;border-radius:4px;transition:none;line-height:1rem;border:solid 2px var(--vp-local-search-result-border);outline:none}.result>div[data-v-b3bd7ef0]{margin:12px;width:100%;overflow:hidden}@media (max-width: 767px){.result>div[data-v-b3bd7ef0]{margin:8px}}.titles[data-v-b3bd7ef0]{display:flex;flex-wrap:wrap;gap:4px;position:relative;z-index:1001;padding:2px 0}.title[data-v-b3bd7ef0]{display:flex;align-items:center;gap:4px}.title.main[data-v-b3bd7ef0]{font-weight:500}.title-icon[data-v-b3bd7ef0]{opacity:.5;font-weight:500;color:var(--vp-c-brand-1)}.title svg[data-v-b3bd7ef0]{opacity:.5}.result.selected[data-v-b3bd7ef0]{--vp-local-search-result-bg: var(--vp-local-search-result-selected-bg);border-color:var(--vp-local-search-result-selected-border)}.excerpt-wrapper[data-v-b3bd7ef0]{position:relative}.excerpt[data-v-b3bd7ef0]{opacity:75%;pointer-events:none;max-height:140px;overflow:hidden;position:relative;opacity:.5;margin-top:4px}.result.selected .excerpt[data-v-b3bd7ef0]{opacity:1}.excerpt[data-v-b3bd7ef0] *{font-size:.8rem!important;line-height:130%!important}.titles[data-v-b3bd7ef0] mark,.excerpt[data-v-b3bd7ef0] mark{background-color:var(--vp-local-search-highlight-bg);color:var(--vp-local-search-highlight-text);border-radius:2px;padding:0 2px}.excerpt[data-v-b3bd7ef0] .vp-code-group .tabs{display:none}.excerpt[data-v-b3bd7ef0] .vp-code-group div[class*=language-]{border-radius:8px!important}.excerpt-gradient-bottom[data-v-b3bd7ef0]{position:absolute;bottom:-1px;left:0;width:100%;height:8px;background:linear-gradient(transparent,var(--vp-local-search-result-bg));z-index:1000}.excerpt-gradient-top[data-v-b3bd7ef0]{position:absolute;top:-1px;left:0;width:100%;height:8px;background:linear-gradient(var(--vp-local-search-result-bg),transparent);z-index:1000}.result.selected .titles[data-v-b3bd7ef0],.result.selected .title-icon[data-v-b3bd7ef0]{color:var(--vp-c-brand-1)!important}.no-results[data-v-b3bd7ef0]{font-size:.9rem;text-align:center;padding:12px}svg[data-v-b3bd7ef0]{flex:none} diff --git a/.vitepress/dist/favicon.ico b/.vitepress/dist/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c4d673d648d53e845927fde538a703f8e4be7c9d GIT binary patch literal 67646 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 literal 0 HcmV?d00001 diff --git a/.vitepress/dist/hashmap.json b/.vitepress/dist/hashmap.json new file mode 100644 index 0000000..45309ed --- /dev/null +++ b/.vitepress/dist/hashmap.json @@ -0,0 +1 @@ +{"index.md":"DPrr-hLe","readme.md":"8s30YuPZ","src_about_index.md":"aQxHy4hT","src_guide_ai.md":"Drq5yZij","src_guide_cache.md":"65sPqASp","src_guide_controller.md":"BBikHZHC","src_guide_exception.md":"D-kiR-tz","src_guide_flow.md":"B2ioiqca","src_guide_generatorcode.md":"6SziAxIO","src_guide_initdata.md":"BjMbW5Nr","src_guide_plugin.md":"qS50Tu9v","src_guide_quick.md":"avtiASSy","src_guide_security.md":"BOLCFOjh","src_guide_springboot3.md":"YNymcO30","src_guide_swagger.md":"DF6xaziu","src_guide_upload.md":"DS70Q-Hs","src_introduce_index.md":"CH1RbK2Y","src_introduce_show.md":"Cj2B3iLu","src_introduce_src.md":"CxeEja1d","src_question_commonquestion.md":"CSsw8JOf","src_todo_plan.md":"Cet0ly3b","src_todo_update.md":"CF7505b6"} diff --git a/.vitepress/dist/index.html b/.vitepress/dist/index.html new file mode 100644 index 0000000..84deb80 --- /dev/null +++ b/.vitepress/dist/index.html @@ -0,0 +1,24 @@ + + + + + + Cool Admin + + + + + + + + + + + + + +
Skip to content

Cool Admin(Java版)

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

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

cool-admin
+ + + + \ No newline at end of file diff --git a/.vitepress/dist/logo.png b/.vitepress/dist/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..09c9c65879aadaac006d614f66f257b9bce4af01 GIT binary patch literal 6985 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

  • dS(Lk#jWOy#oOZgAkK6q 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�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 z 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%0D^fgA3BN*Cmd`F;G!mnYNRwy!?QxZw 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 KaFyWCfd2uVFfxq* literal 0 HcmV?d00001 diff --git a/.vitepress/dist/show/douyin.png b/.vitepress/dist/show/douyin.png new file mode 100644 index 0000000000000000000000000000000000000000..441631cbe98347a92208caa7562664c0a0ccf7d1 GIT binary patch literal 62153 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%0D{pZ)}7Q>n}xQB<K-U3mi=l_2q;(l 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 literal 0 HcmV?d00001 diff --git a/.vitepress/dist/show/flow.jpeg b/.vitepress/dist/show/flow.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..f4431068e80672eff514f8fff610b79707f8050c GIT binary patch literal 979839 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 z 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

    @$f0JM(8Hn zTf%>Q!aZqCXrjEZL9$ti661?YDNNRN0Vmm7=G-^$W2osi1ecb@4wr5GqSiHi2#*{anL9wI~E(ou)(P|aZb+NX& zFIHj`VGdRAr)7Cq`=I#gh~!ipBd_`R{;;snq{AK1CqA}BMSYR}RsAcItitP=Xe|s( zu8zR?#pT==IYe zI5Rfm#h5n%?)jJckR-QVUdu;cP2A8l!b)H1_xBou6H6;jxwQ-FEWcujd(NhJ=vK&{ zvdiGF(bp|!})&NuVs1?G0AfX z9p*fFUPcr@-aum+SyvAL>m^y*v6cABDX%GbI9%4uZX{4o7 zVuo&p7Lk?#q#L9=hm;Z|BxcB=JEbKR5P#m2{Ug|Y^?=f3x~ul-#2 z-m}#|{jl!(IiZn^LSb}%!r?zJ45bciuRGiy=d*ux^SZTzDzzhBN=A9qHL!nUPL!AA z48l5Xq}~J@r3u^@f6m{ptnKS%`jw;kP{xw>wXnrMo93tzX$PGFhf0|kv^e=@4Fk5p z6Dxu~A~kfRL3D(%xXLh2sMbRbc(zFq<8!T6wF_7jP=uc!yFiLs=^nvrc5^)g!#ZTklWLgrFJ%g6?%8Oh4wmTSX8W ztdi!R#*dcx8G9)pfo;n<4tL#gSzI4K)O=7yCeP1j{K*y^O*!ZqDSx!0*yk3dnw75Q zT)ug0hDWB6A?hg@l~fv`qM2EkR!^)qQNCgjoo^$wZ}i}~a4^Wpu~SPK&9`j^1?LzSNaf31 zDX$afBs)Jdu9y^5`+NTsly0QaW)8{m3$jzT9!H4uZ*}W(Vt4yTqTqFmiR{?qb3##_ z)uhr~I`Qh)$?o0Q(}S^ful$_~hOEelSY2xZzRGk-u052Rj%v%lwRLN+WZ!_yjL}1~ zhrg~skp1`$HZ#BW!&=*2^=sbMKuqclouBcd0_!4i2RtPn5ARn?ia z$Ws~L*~EIKjQlw9AWIbyed&8iB3`fyCtSQblC)MY42l6(x?YD!CE!;YnqWz+x0I-S zJ(99xFcMPVjnyyzWMeEQ#yt!f&f}T=SLY+-PBFPxD&B7njK3IjtVYNjBIeRC_=)e6 zBL%A<9Lw3XVU591KO%@O>$_GWxT_j~V~K8&#jJ@;fXAhBYl*V2s322PsT*~C6RC|h z7C}zZ&paw7Zmsz5AMxjXn#;g=%5 zjs{O`_216azHv4!P`+>+TC$a?i2}b&fGcp6L=YMtM7}9@TCg{0;b@4p5MuAfZL)j$ z_&d4`9zwirb@bGRI8A|oToWFN-#XB!c`w_u#VlWIe`jGNt887Og}9l>P)KdlD& zO-6}6C?KqlxT6GIRRxX%X}KL~Ut^4MT?1#Vgbo3b(H&fYGt<$V0YZtt!wPfuW} z=pafm#6vmfHjD$Mt|x(+8HfXbGKDEg6@G4}GNGq08+hBjWTwZzr|DjddJdDj~j+iGfhl-SEQ=n|5(_Rl!DutX)@Nc3cIvhYE$7V()AF3!k| zePXzq+;_J9#QrCuBs&X9?{z*MJ_x2&7LL4isAtK=Ll`mEHQGe>@s~Sj7Fzi~h7s|gs0pI4Il6|S&aK@UH;r!BPj(Vbu7bZIUjO5I*Gtu(k4Z(;$ zGw;&LF=Ovj%7H(v2+)`;Ww!#GtR5BiCN2INNKlzI(@;&IPaskM)6u#xyZ{MoAn^b* zU|cgPyht^(%+Pvpvgdi%_xQm%e9m2M?|93L!+Q-;=2Xn17INX{l?SMYC${4M<qXl(?$`6^ zlS=u=ZsEnJP54qO&q!zOI*c9s6?!^S*H{`~w#yUhuoX?wyM0>!=Ql|tqtTFLNM)E# zGSS3Q(C`wA+qk3$#M`_3x>1_%O+x=H{Hr*#yE4D4pveXrQ#&gKEVpuG4SX{|xO>tF z*AFz*toGzxy4qM3`ejry^{+1~+G6oSHK<)I)c9$4^B%%)W^)itFeqTr8Rhk7WWLqQ zdF0#^O>z&o6GWO6_6i&#!zY7eda_E9@IW&$mx?r?&3ru3U}JxT#kt(p%0^vJI6D$l zF93BQ5kz>(GT2P`h&LfzUP^v~j~y&&QVo$qoq?Ow=^ud^8v+AgtBHW8?ws1ZD}skm zX&{)WF@!@kmkxLUXMv3M5?dh%!K7ojo}H-qgzrVzvs4#w)*nJj$~gG! z94H|`ckXtLs6)_q6UaEV8TWpeUJ1aMvs&J&F1Z0%aaM+oF;pw0RkkaX`Ic`*m>PO->8F?mN{YJL=g zuu?3=<@0{IbtX;^L9%G{CzTe>`34~wK{7axxFB~Eq>63<%-pn1#`2yp5t)89<#Z-g zwEMO&e7PbUL^gevIH2=Ehd^of<8ZHpvt>ghI3l(ys8HM@O!X+?pCQWwi)lID+HMh6 zuET25-A>Pd7@N~5r9OFhA$g|wZ)83@NGU5_Z5d$ZnCK}<8HbJWNgmxIMjnD8uFB6J zIx1N$)acQpQwRqf&U$J`l36Z)R=ktL!`oaj)C5b=`5k~%Y$01YT%_K=WU%cGr~2b$ z6>N1P#4geH?3GLly=wy4Anm`Hn4^r;D*rp3lI}1?Pa4PWNAbj=&AzdT;!jC0%rrC! zjo3`{v4tLx$`41f-+uytQTbI!zB@;OKm%{T)&OVxA{JJIKptO+N5C+AX?G#oSFSTkedhApNA5ySwe5TMh~I+*jJe{}!7 zC?hE;|6^cla_Qb*xr6FvUtna^$AVkAgIC#Wf~k~A;uH^7z=JMPC{1Xh!QwmzLr&5= zU!Tb{0-3+Y2On6HVV^_j?mGiF-Q$`WsK1BVTwIRZcj$sqC;^`eu8Jxu5eN$;C zwu#Ra=cdaF9xQy-H(Wuw=zK3JF1{ojAN2@3ZV^-I*>%qb^we2}0Wz^#N^`=J_40#H ziy1aUJPDegE8=U?HfKx}c6%~AHiR=YpGxf?;SviOC?$L~I60GeFj;mkfQ>U3;z)ld zskFQIW4>JjwVI!{g~SS_vIZ415)VMn2Hv?OY7wWt!t#@1Eo8}9K0f*RfZl^aG4Ft0g`vFVTGa4v@)wbZ$cvI`>) zOB^=ezbmhXc0Q#VElg zz}Px5KnBMm3_vPcud)S%qzf+TKrTlNOSJuVQYx*klVA1EPfsjgW{(97MDS!7jHkmeBUERes}10J~^s-?Y<=(fPPSx0j3cW3R7QbJmZF`ANd# zm1_2Ods48yGPwd+1~-_W9%KA1DWhPc{~s)l$xo3voJR=apyN<*w)CZsgJg0o%?adJ z9!ohR*lOIpzP0Pt06M9-78h`>Q3x{d)vdgw9VskjGQbVa6v4p_ec(U^ zcL7+fHM((qV<=xuytpFD(NNfYX=ns)-p^!q)Kt_4YW0fhmrk1QSCHK-H%ZWu_rth&kQ zgaH5Axw5Q#_16XF1DNst>SNaV+lex+G52*Fd3FHrT zz}9xAF}cIoCV5!N+1j|Kdrvh&YDlr}1rFSkeiEtJ3DbbTJHZeZ$6YcS!8vRUfJMDl z&4Lr_kAaL@O*21|7$7tRo`7fknw~TD_N%pjc=()|fgO#hHemzV?e^r)$P8StitNtw zsb<6@+%j;9Gy4fBtDoMHw+gWql`8}z+A@rI&dv}!%ULwD361#F23MBE&XYb(ffh3# z?6IjY1Yos6Xc)u;%y`OOA#d?dD2 z_!@F__U|ya%jlp7h5@3LyZcDqYO;)2otOQ`1KbcHRdFUT>*sCP?HbNmi%)nK%}kVo zx4KTWjMdbWpiMjb?@b(Ud}p!l?0*#g*qzkf-J4z$EmraOAdjC}ksw=xMlqV2Rg6W24)79&4g&nChp|a!wK>cDCPu>-B zba_v%LS6JJ-^HccVv@eFF}7XTjai9bSs*o>^&gi|l`)){!T^|}bvp}vRt+}Qmrg1} zVXI4dy7<%s)y<#NwC8(%FiW;ai@|=ew`?olj#&J$n-QnRw-zmQseK4TvMRgor#T^~ zY+ZBLxrRe=Ac&Nl>}|quFbsle64V-V1?DCDlgi7FuRIY&voG%~OOZ3!4k`Z!s}q7C z6mF^?t$8aNO_0isMN-HbZFMW`IIDw%58wYVo6Hj1sHNSn#h()~c0EMzMD$fX(`VgN zz^2vk37~g%E}N^;17mp+*tdKTXy%gV2h)CnFR;L$gJtu*ellB%_7+nKTC+gBhHsaL zC07_E{TU!y23dn6S#?-?V|a}Q(V2iT`;0}eO|8P3Piu^ekD%2NIcDo?Og`WHa<-jR zDle-0%Gk>p7pJ(AOfNJXktnUt|HxP%V_Fc!F%cc1MiR1u6uI3)ZyE^bN-Y1BYsqB0 z|B#w|iPsl0*AsNIGvmkoww^Bk_yJ4F>cw*^zrSifF;q@1ITsY0NNH_nE1Vr-Lwx!5 zPH+kVZr^2CL9{t35q@(jh|SWx!ty>B9=wok3UjnTmhwKLjUIRzg|%Y)tTC{cG66JF zJ3SP3-L)1akTna@p)J?nAyx@KO6jC|q7thFZPs|1Oss%V?cxLIJG1|rP`waA*y#2% zq;Q@6cc0eJU=Yfb>u8Tl)~I1CC7}Xn}(l=-S6bhYva>UPDm!``H#-nKe8}nh%g-J z<@of#J{1(XEsBw--xr!rKIfbj%ug!yr4FlkW?Dc@8l#Q%T9+r6!0I_xh4{732G(ri z#}TSNlIwp#3P!#m{Ugtht?eAu@QTPs`tZ5Tn2eh5$Mf}CAT_~uvLj9lnPZ=Ju{J_f zz&-95rg4z9i$*{gBun+GEc+_;`(O^u;m`OuyWMG7+$92P`mAWJl>TAZTVk6nljP|8 zDaG=K4hPuxl86}LBD)gvtsiDSSboF{Uj@T^qh73v0G>HOeM=}&RWwb*$kWMHVOES~ z#MoZpvWJv*TIL3IJ;NQyBMp9I)?0Zx;dj}su|AGQ_;hFDrQv%zVjT&g7-9vE>shD| zcI3JRlzsQ&!0vekW!I7v8LJlzvowa2&mA2yn>XzY=|9(hR5k3vJ*mr)dQyDHE*mEA zk|MV+0m{2Sr9V+=9nB!f_z$i*Ewy}vzPbW1)^dn0IzM?ymPt~lPGBOTZc%TkT>egL zj7c;e=jy9$Af`Lu=H`t5C+P@6<&(-kji7ENo%gTglSm!|l8)hji_RzT3<`iTuoWs1 zuh4;k-l^5Nlu#>MDcq_^f?e5JYcKOjCTx{II_jQyyHxyI4#%9w89#{P5&+45Q9`U+7(kS;oFK~nD|;Rm}b zO^fb%rP8?=`H-y>dL;aYXD^CQZhE;s3-H9<@EzUMTZK}=MG+`=$h zrHs~13`G?pK%^Ndwiu=&>Uw-2j#y95%Du@gA$8PKj$sewZ^h|D(XQn_OsfdUrvGEQ z^Z#tz|G!N3{eSwBr*Eac9&ID8H2$JGm(Wu}H%t_#?*B*Rfr*N9AZ^2+x!4_N&{=0x z`RVq#ExEuuXW*(xkkx+$9TZp<=bQp}(koJ*?i{?h82QB=3bNM<<0cgIO@6Bustc{P ziWYtOS__Wj!?!Nl8K(>uft&5I9L=`2YOW(9g-b{uZ4&gHhGcZw%Ik0`^PU5Wk1i~* z9LP6d226%1|4z?MS?7#$#-04;Gu}0^43wF2#QQ*A?e%BeRl8~Znrr+f^upEu<6#n z*%W(vm3DqZ`A6Hx^s;>Dp5WYdEeS0ofIPiT)-_wR&n%;ND?4(_}9ySJ!}#cM()`{YLhzc2ugs zrOIHeJ-h52FUH}`X6B0uiNH*a-oj&liug@D!Jt077Ahu$+dY1d?1uar2MV4-gXEfu zL?og1=!mAMWB#G93wrIwd#C+dty>dcOW@;y<=#r$5JLmwb(}c6RfFCQCaP?5dtAuV zXgA{;i7lo#WPihX%a{Lbz3IIC15D5V%>+KYN}eq^Vj1)fC-eE=Y}9)U~43N zLwytUb8JjmxDxri{oXj*BgcMU>eI~Jm7`R-UfJk$<%A8aU;aq5Vs@e$ZF`npNsmx{ zV(X-BX#zD;%TN^--`}r_+v7$T&UNDX!77O;cF{Kb4vzOGW<@+Gs%9o;CMSy9%Vw`F z77YW;RvLMBxpoDA74eSgAcc^EOYIaAv4s;zGg*^In|`!;GGlwJB~Fq}6I`t8b>!8w zJIfELN<}0e7PCJf$Z}7$Y5m4v&|J*rHX^UrRcgJL%y(JU5#%0|r3?n zE!kP8d(tt|!6cequfO4}8IRxnnt5W~vqqFI%JJ&+$m5fJN;m!FXm>I7eMcB!N!+s@vR~ z-nZR0({0j}Gc5B=G-z-hT|g8Rp-aZDI7C3@1}(WVg~AE*4Q`comE=dPb?#qZ+B9va zw6a||&zjZC|DoyJ=N;6`uS%QQtu9$gbDf#Wf-fvywIKr5e!_9Wdp}D0sTrvM_*U*&RPX=u==yUtGV77COnquCDXu&`G z>5cuaAN1#xAB4A-v~iC+wYnTu{#@*Eluuz?HCS*?a&YO8epNDQa~uFSl@3vUIaXMz zx0TW*8`R+ac!N{8A3{Ny^!g4p{UeI9rF?JR*Cjt&-;Q-{%56z1t}aSOJD_x8*sVo4 zzZmvxP_R-N{|9UE-OCRu+9dksN^wA_|(^;pVW) zn$e+6e`n?M*cTQ_L<_CS$b*LvRzTLxqs*R>ml^3M{YlFz3WHl6tf*P;fhGd)Z2Gk^ zC3)UQ1+uQ|t}3_-ci!9O`KHmR+|`7Ix?m+8Lkbp}evMpe_$J+!{fH$KO4*~Wqa9HM zam|!{jS_dIGd3TF^+(N~nTGv5s@Iu@{fG-+)XZzI_SmB>E%9Ok;iW zMVH_EZF&}WEvYuSX-TPr27@wZ5+enH>b?+tyGxbkxMWP-*?1GvZVJuNy)@1(S6Z5t zjaJsahM(zg>V95=o6jc!+Mde9Jr<-IVX)`Y8Lg_fq zRdfUK-NNoM)At5?=|x`6ulzw+et`T3D@on7dCOVzQpl94*C&vD#UL$H;NoDwB%-w6 zU!rJ*NI2Q^g5gKZ>grG3tZ#F*na&EPpw<_rOtT{+9%(Vl5>hjM=~3vz0^id00P)@D zs8pQ78|U2@tjP6C{|se1&J~$0A$K6-*{Pj<(baLH#nhc!KyE`>v+9WLB@AEP4d-}? zw+baR@YJOFS8=Sacy&;dU$j%>3x&G{zuTe&7?YD9mTPa`yL^Z8cbHCE72tkfY@`^ zsZ`N_!8SkswTULFbaAYL-5;itLeb!Hzz2>v2`Oa!_R0PX}H-GX)4_(f@`_y z06YP(&jSXz)fpRtaK|nx(Y3~L47qHdw4?feY-_SBtnsHo51`;k^G_~QK_3tBwwaml5+owt_ka~c7@0@k zuio=fbI;7mr#cYbbC6x!}eYhL0a%JnRLfUf`Ym_k~b?WBtd*)rdtMG^yRsfUH5=XebwDmJ^ zPuueuma>daB|CKX5U*-8sxo%l+F~w+E*5qUy2b{d4j-t3b=LhZYVRWW-*`Xv5HhF! zWv}Kr;}Y6+pG92afx%)q%}mx3t#9*ikN2>8S}=d6=gq{msk7V)p;SIt|0-xQ8&5$b z{zydex41j~=My!_G&;C3ja6KfQE2n7es<+wOLwuBvvO<5_Pi}VIVbVAc3rgj@AW?m zSycbQLbB?2{uCMM-17Lynf+$?XXGl?D!4z!ayRpY#X@u>TirFz7dch^#+WzXSfTh& zG78ekFuH3R!{*&dTB^ILrr}_Z?kaBTgcAHPS|D=bhuh3f7C(qz3=1mRc&roaI*k7& z!1>C1V(mI}=tbO#pRsf7cz$l6-k&P5Aj35KA17Q(oVub@RmWe@9{VHihFJ>5vi(iu zet0g|j}M4JkM;Odi%Q|^;Jsma2?*2lZUTQMG*+bXdmG-w3#|aY-G1)QuI5@F6I1Q1 ze(NDFtCMW9LGS4BuQ6HvUSoK>;k=SD6k~N_qZip~NraKl8mhID4NZhIj``n0$g+m4~Z+>EJ4`Rn3B1M&LC99MX$MW`EOejV;)B|55=UZX2RD>j|sil?FVynnk~*r z;a<_>8|r?K2!-3T;=?7Y^}RQ2epOH6Cx>qn#}$mxm_V z9JasCir95;`a!D;?t8HTCfr*SVBYC+NO^s~4I|qCeo=bfGYHEw*T{Z?VF>vrXNmT<1UUW3imyCe7@34n)s2M}4Eta_suPOTo8O_{VY1 zKOBBGWui4)>!O1fJM4X+HCtM-;QO1~FvGBClunsi$74^UiPVIytifUX+d4t_@7U5M z$szal7s|!t8@LGF3c^Qx8%B#}>+2$8rkbCArCm3tEr@xP3J{@(^X`*r?<^=L2f1Lya) zgq!EBf2aQLVIS)tjsLtp-Ptt=6?>9udJ`|WdFQ&1$o00dO#8^+WYY;v07BNi%r{2= zJO#vi>&E(EHWU%K(;Jzt3Hw7Y0D%SWA$}Q^;I~4-F=Wikz@%!i=!D}sl2l7yGJ&#HW5Y2mm!j9(yB}nSiJJ#17Lubl~bKj zF1|ieFAf@RbC^F4Q5-Qmf46k*bJ@*x`V@Bf^CbA!l@j_fuADISC1OgLmOI7}{UiMK zWLoiIOmuK^jYC^D{c_Ml(&)6J(<3~uC=sYj0Wc3+G(U~Z^%9X2FshR$vir=PaW_G{=OxyLR=g^?kN8X1#4I58 zIpYTk2u1~xf73n6erQNIj5ky2S9lAivk=e>;zp_QX9%WUBb50AXCb$_FGXASTl)`Z z-MM3Ce*7>QY+|f^)-^i9`QgC8?^AHwURpMpcm3zXWtf(8S;6~=qF^&&RMvuv5tZO+ zsQxcI5J{x5?%HXk=)lT17?%N{fh9Cu6Wy}4oTgn0x6|kzd)z`jR566 z!)9+WylnL}J=CdPDC@7)83xDmTcWvw%>yFwRldu?b6Jn~4@YJfJIXLWub!Fk!OiP0 zjeYjNLrS=n$0Dgc2HsWhOh(dcz?rwp!PHUUJV>|TThUZ)MZC6(QX_@HppZn9tX9N}>D}QU0>H!)dkght>nysV zjyvYUvl*pRNf1d%&d1y<5=Bm&;T=yFbt%_T`)*kcRSI}m*EgJcIP7Q_I>5L#45B3& zr6a~mAr_Hqq!O!?gKF%30ez>jP+-XxKWPENmi9a6jMKn4fBnDCC%Q41hzlyioI&pjGbg*?cGD z@IXeuR$d_L7d)+y;wBk(IC2B?pwpyyOK|6*HFG)>Ewj?V^#z=fBC+76wG$F0-U;!# zVmOk^O(}k5FI81#atkVwMoa*xJkFXeCTD&N+!2Lck44?QxZ44|ZQFZWyMt%$2QiZf z-kIUH(MX!rYIK5pukB?w-4-j%Rzl+Q&ENg3yMQ=`L6w3jsasUB#gjcti#&Xo^x+d$ zExQDzGxlTI5CZ^JD2~XTP-mY=9?$z;);mMC<{SBzrjt@3(}{|wO&pd%4mC@BiA?+O zPnqol(pd#dlFO|Ow-~g$x3xOqch$J6oI&3J6@8|pu-szqY5%AuSJX@B16(tZ9?1?G zn3G%t-bOC+O1*qt;4Z+G69JitSm~;!Ily|=Zia_I zv`XYpuI{=RSMs_Md!^nVA&@ZC@N#Zt7eU{yg&_51qet}y_RK(Gs#tHQ7C)0(&Eczs zO7>e^kvcOZOF+D9NkcQ^$_ZXwHh7#Kk2qLPpo!+G&M~lpC&rjG+pUU6Bji0ph%5%T zUPrHuUtQd84X5l5C%*CwwVB=fi*uLfTZ-|ojgpr%tL|N_ir79`XMrXN(ljk409YKQ zEpsDLM&WVxhRYnZub#dV_VO}-X_bY=4KFfC#FG? zkWBP_kX%1I0(g1vp*BMd3Q78p?FN&=`ss`Whx{KeG5;cX&HVQ90ZVXnKDM~r?AEwf zV1Y?T$?a=@5xZ;=K!ruuqLUjx34qca6#NWz<;+(~Uf`?O;&U{zjJ&vmxNowB+8

    aj_{gF8WKv#>zeA2I05Q~Sd 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

    5W$&J5`QFSM_3NfPW3PbA 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

    I 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 literal 0 HcmV?d00001 diff --git a/.vitepress/dist/show/wechat.png b/.vitepress/dist/show/wechat.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fa2ff6c4a312e5294d73ffa02043b46477d84d GIT binary patch literal 47081 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 + + + + + 交流合作 | Cool Admin + + + + + + + + + + + + + +

    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 new file mode 100644 index 0000000..ef2b4f9 --- /dev/null +++ b/.vitepress/dist/src/guide/ai.html @@ -0,0 +1,24 @@ + + + + + + Ai 编码 | Cool Admin + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/cache.html b/.vitepress/dist/src/guide/cache.html new file mode 100644 index 0000000..e078a82 --- /dev/null +++ b/.vitepress/dist/src/guide/cache.html @@ -0,0 +1,57 @@ + + + + + + 缓存 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    缓存 ​

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

    • caffeine 无需额外安装软件,由 Ben Manes 开发的一个 Java 缓存库,旨在提供高性能、高效的缓存解决方案。
    • redis 需安装redis,提供了一种高效且可靠的解决方案,能够显著提升应用程序的性能和响应速度。
    yaml
    spring:
    +  # caffeine 缓存
    +  cache:
    +    type: caffeine
    +    file: cache
    +
    +  #redis 缓存
    +#  cache:
    +#    type: redis
    +#  data:
    +#    redis:
    +#      host: 127.0.0.1
    +#      port: 6379
    +#      database: 0
    +#      password:

    可以选择你想使用的缓存,性能要求比较高或有分布式部署需求的建议配置成 redis

    使用 ​

    java
    @CacheConfig(cacheNames = {"comm"})
    +@Service
    +public class DemoCacheServiceImpl implements DemoCacheService {
    +    @Cacheable(key = "targetClass + methodName +#p0")
    +    @Override
    +    public Object test(String id) {
    +        System.out.println("我被调用了");
    +        return "我被缓存了";
    +    }
    +}
    • 框架特有的通用工具类,CoolCache
    java
    @Service
    +public class DemoCacheServiceImpl implements DemoCacheService {
    +    @Resource
    +    CoolCache coolCache;
    +
    +    @Override
    +    public Object test(String id) {
    +        coolCache.set("a", 1);
    +        return coolCache.get("a", Integer.class);
    +    }
    +}
    + + + + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/controller.html b/.vitepress/dist/src/guide/controller.html new file mode 100644 index 0000000..c8fc1d9 --- /dev/null +++ b/.vitepress/dist/src/guide/controller.html @@ -0,0 +1,103 @@ + + + + + + 控制器 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    控制器 ​

    所有的 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
    +    protected void init(HttpServletRequest request, JSONObject requestParams) {
    +        // 可以在这边实现一下列表数据排序规则,查询条件过滤,返回哪些字段等
    +    }
    +}

    这样就默认实现了以下六个接口:

    • POST 新增
    • POST 删除
    • POST 修改
    • POST 分页查询
    • POST 查询列表
    • GET 根据列表查询单个信息 等 6 个接口

    查询配置 ​

    java
    @Tag(name = "测试CURD", description = "测试CURD")
    +@CoolRestController(value = "/cool", api = {"add", "delete", "update", "page", "list", "info"})
    +public class AdminDemoInfoController extends BaseController<DemoService, DemoEntity> {
    +    @Override
    +    protected void init(HttpServletRequest request, JSONObject requestParams) {
    +        setPageOption(createOp() // 分页查询配置
    +                .fieldEq("status") // 字段全匹配,对应请求参数中同名参数
    +                .keyWordLikeFields("name", "phone") // 需要模糊查询的字段,对应请求参数中的 keyWord
    +                .select("name", "phone", "age") // 返回字段
    +                .queryWrapper(Wrappers.<DemoEntity>query().eq("name", requestParams.getStr("name")))); // 其他查询方式 具体看 https://baomidou.com/文档
    +        setListOption(createOp()); // 列表查询 跟分页查询一样
    +    }
    +}

    请求参数 ​

    为了方便获取参数,框架封装了一个请求属性,将 URL、表单、body

    等参数封装在了一个JSONObject requestParams,开发者可以从中方便的获取各种参数;

    java
    @Tag(name = "测试CURD", description = "测试CURD")
    +@CoolRestController(value = "/cool", api = {"add", "delete", "update", "page", "list", "info"})
    +public class AdminDemoInfoController extends BaseController<DemoService, DemoEntity> {
    +    @Override
    +    protected void init(HttpServletRequest request, JSONObject requestParams) {
    +        // 可以在这边实现一下列表数据排序规则,查询条件过滤,返回哪些字段等
    +    }
    +    
    +    @PostMapping("/test")
    +    public R test(@RequestAttribute JSONObject requestparams, String user) {
    +        System.out.println(requestparams.getStr("user"));
    +        return R.ok();
    +    }
    +}

    重写实现 ​

    默认实现了通用的六个接口方法,如果不满足需求,可以在对应的 service 中重写方法。

    java
    @Tag(name = "测试CURD", description = "测试CURD")
    +@CoolRestController(value = "/cool", api = {"add", "delete", "update", "page", "list", "info"})
    +public class AdminDemoInfoController extends BaseController<DemoService, DemoEntity> {
    +    @Override
    +    protected void init(HttpServletRequest request, JSONObject requestParams) {
    +        // 可以在这边实现一下列表数据排序规则,查询条件过滤,返回哪些字段等
    +    }
    +
    +    @Override
    +    @PostMapping("/page")
    +    protected R page(JSONObject requestParams, CrudOption<DemoEntity> option) {
    +        // 重写逻辑
    +        return super.page(requestParams, option);
    +    }
    +}

    同样也可以对service进行重写

    java
    @Service
    +public class DemoServiceImpl extends BaseServiceImpl<DemoMapper, DemoEntity> implements DemoService {
    +    @Override
    +    public Object page(JSONObject requestParams, Page<DemoEntity> page, QueryWrapper<DemoEntity> queryWrapper) {
    +        // 重写逻辑
    +        return super.page(requestParams, page, queryWrapper);
    +    }
    +}

    和传统的controller对比一下是简化了不少,接下来我们看看实现的原理

    原理 ​

    接口路由规则 ​

    // 模块目录
    +├── modules
    +│   └── demo(模块名)
    +│   │    └── controller(接口)
    +│   │    │     └── admin(后端接口)
    +│   │    │     │     └── AdminDemoInfoController.java
    +│   │    │     └── app(前端接口)
    +│   │    │     │     └── AppDemoInfoController.java
    • 生成的路由前缀为: /admin/demo/info/xxx与/app/demo/info/xxx
    • 规则为: admin(app)/模块名/AdminDemoInfoController转成小写替换掉admin(app)、模块名和controller

    自定义路由注解 ​

    java
    public @interface CoolRestController {
    +
    +    @AliasFor(annotation = RequestMapping.class)
    +    String name() default "";
    +
    +    @AliasFor(annotation = RequestMapping.class)
    +    String[] value() default {};
    +
    +    String[] api() default {};
    +}

    重写getMappingForMethod ​

    我们不直接使用 spring自带的注解,而是对它做一层封装,controller上加了这个注解后

    将由以下这个类实现自动配置模块路由,该类继承了 spring的RequestMappingHandlerMapping,并重写了getMappingForMethod方法

    根据一定规则生成path,返回给spring做解析。

    java
    public class AutoPrefixUrlMapping extends RequestMappingHandlerMapping {
    +
    +    @Override
    +    protected RequestMappingInfo getMappingForMethod(Method method, Class<?> handlerType) {
    +        CoolRestController[] annotations = handlerType.getAnnotationsByType(CoolRestController.class);
    +        RequestMappingInfo info = super.getMappingForMethod(method, handlerType);
    +        // ... 按规则组装 path
    +        info = info.mutate().paths(path).build().combine(info);
    +        return info;
    +    }
    +}
    + + + + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/exception.html b/.vitepress/dist/src/guide/exception.html new file mode 100644 index 0000000..3f62ac8 --- /dev/null +++ b/.vitepress/dist/src/guide/exception.html @@ -0,0 +1,82 @@ + + + + + + 统一异常处理 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    统一异常处理 ​

    提供了简化的业务异常抛出工具

    • CoolPreconditions.check(check != null, "用户名已存在");

    异常统一捕获 ​

    java
    @RestControllerAdvice
    +@Slf4j
    +public class CoolExceptionHandler {
    +
    +    @ExceptionHandler(CoolException.class)
    +    public R handleRRException(CoolException e) {
    +        R r = new R();
    +        r.put("code", e.getCode());
    +        r.put("message", e.getMessage());
    +
    +        return r;
    +    }
    +
    +    @ExceptionHandler(DuplicateKeyException.class)
    +    public R handleDuplicateKeyException(DuplicateKeyException e) {
    +        log.error(e.getMessage(), e);
    +        return R.error("已存在该记录");
    +    }
    +
    +    @ExceptionHandler(BadCredentialsException.class)
    +    public R handleBadCredentialsException(BadCredentialsException e) {
    +        log.error(e.getMessage(), e);
    +        return R.error("账户密码不正确");
    +    }
    +
    +    @ExceptionHandler(HttpRequestMethodNotSupportedException.class)
    +    public R handleHttpRequestMethodNotSupportedException(HttpRequestMethodNotSupportedException e) {
    +        log.error(e.getMessage(), e);
    +        return R.error("不支持该请求方式,请区分POST、GET等请求方式是否正确");
    +    }
    +
    +    @ExceptionHandler(IllegalArgumentException.class)
    +    public R handleIllegalArgumentException(IllegalArgumentException e) {
    +        log.error(e.getMessage(), e);
    +        return R.error(e.getMessage());
    +    }
    +
    +    @ExceptionHandler(Exception.class)
    +    public R handleException(Exception e) {
    +        log.error(e.getMessage(), e);
    +        return R.error();
    +    }
    +}

    一般抛异常写法

    java
    public Long add(JSONObject requestParams, BaseSysUserEntity entity) {
    +    BaseSysUserEntity check = getOne(
    +            Wrappers.<BaseSysUserEntity>lambdaQuery().eq(BaseSysUserEntity::getUsername, entity.getUsername()));
    +    if (check != null) {
    +        throw new CoolException("用户名已存在"); 
    +    }
    +    entity.setPassword(MD5.create().digestHex(entity.getPassword()));
    +    super.add(requestParams, entity);
    +    return entity.getId();
    +}

    系统提供了 业务校验的工具,无需手动通过 if 判断,在 手动抛异常 通过 CoolPreconditions.check 方法第一个参数如果为 true 即抛异常,异常信息为 "用户名已存在", 会更加简洁

    java
    public Long add(JSONObject requestParams, BaseSysUserEntity entity) {
    +    BaseSysUserEntity check = getOne(
    +            Wrappers.<BaseSysUserEntity>lambdaQuery().eq(BaseSysUserEntity::getUsername, entity.getUsername()));
    +    CoolPreconditions.check(check != null, "用户名已存在");
    +    entity.setPassword(MD5.create().digestHex(entity.getPassword()));
    +    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 new file mode 100644 index 0000000..6cdc16c --- /dev/null +++ b/.vitepress/dist/src/guide/flow.html @@ -0,0 +1,24 @@ + + + + + + Ai 流程编排 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    Ai 流程编排 ​

    coming soon!!!

    nodejs 版本视频演示

    开发 Ai 应用必备!!!

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

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

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

    流程编排

    注意

    Ai 流程编排+知识库需要单独购买,预售 999 元

    + + + + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/generatorCode.html b/.vitepress/dist/src/guide/generatorCode.html new file mode 100644 index 0000000..90150ee --- /dev/null +++ b/.vitepress/dist/src/guide/generatorCode.html @@ -0,0 +1,39 @@ + + + + + + 代码生成 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    代码生成 ​

    系统根据框架特性封装了一个简单的代码生成器

    请先参考快速开始,把entity对象创建出来,在通过自动生成代码创建对应的 controller、service、mapper

    java
    public class CoolCodeGeneratorTest {
    +    public static void main(String[] args) {
    +        CodeGenerator codeGenerator = new CodeGenerator();
    +        codeGenerator.init();
    +
    +        CodeModel codeModel = new CodeModel();
    +        codeModel.setType(CodeTypeEnum.ADMIN);
    +        codeModel.setName("测试CURD");
    +        codeModel.setModule("demo");
    +        codeModel.setEntity(DemoEntity.class);
    +
    +        codeGenerator.controller(codeModel);
    +        codeGenerator.mapper(codeModel);
    +        codeGenerator.service(codeModel);
    +    }
    +}
    + + + + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/initData.html b/.vitepress/dist/src/guide/initData.html new file mode 100644 index 0000000..a20f8c8 --- /dev/null +++ b/.vitepress/dist/src/guide/initData.html @@ -0,0 +1,56 @@ + + + + + + 数据初始化 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    数据初始化 ​

    有些功能模块上线时,需要初始化一些数据

    可以在resources下的 cool/data/db目录创建 demo.json文件

    json格式如下,demo 为表的名称,里面是个数组,数组里可以包含多个对象,每个对象中的key为表的字段,value为对应的值

    规范:实体需以Entity结尾

    json
    {
    +  "demo": [
    +      {
    +          "keyName": "rich",
    +          "name": "富文本参数",
    +          "remark": null
    +      },
    +      {
    +          "keyName": "json",
    +          "name": "JSON参数",
    +          "remark": null
    +      }
    +  ]
    +}

    创建 demo.json文件后,在项目启动的时候会去加载该文件,并实现值的插入

    处理逻辑在以下方法

    java
    package com.cool.core;
    +
    +
    +/**
    + * 数据库初始数据初始化 在 classpath:cool/data/db 目录下创建.json文件 并定义表数据,
    + * 由该类统一执行初始化
    + **/
    +@Slf4j
    +@RequiredArgsConstructor
    +public class DBFromJsonInit implements ApplicationRunner {
    +    @Override
    +    public void run(ApplicationArguments args) {
    +        // 初始化自定义的数据
    +        extractedDb();
    +        // 初始化菜单数据
    +        extractedMenu();
    +        log.info("数据初始化完成!");
    +    }
    +    //......
    +}

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

    + + + + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/plugin.html b/.vitepress/dist/src/guide/plugin.html new file mode 100644 index 0000000..557df67 --- /dev/null +++ b/.vitepress/dist/src/guide/plugin.html @@ -0,0 +1,199 @@ + + + + + + 扩展插件 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    扩展插件 ​

    为了丰富系统功能,我们提供了插件系统,可以通过插件的方式来扩展系统功能。

    而不用一味地堆功能,导致系统臃肿。你可以自己开发插件,也可以使用别人开发的插件。 或者通过官网下载插件。

    使用插件 ​

    1、安装 ​

    首先下载插件包,然后在系统中安装插件包。插件包可以通过官网下载插件。

    打开后台管理系统,点击左侧菜单扩展管理->插件管理,点击+按钮,选择插件包进行安装。

    2、调用 ​

    安装插件之后,就可以在代码中调用插件的方法了。

    java
    package com.cool.core;
    +
    +import com.cool.core.plugin.service.CoolPluginService;
    +import jakarta.annotation.Resource;
    +import org.springframework.web.bind.annotation.PostMapping;
    +import org.springframework.web.bind.annotation.RequestParam;
    +import org.springframework.web.bind.annotation.RestController;
    +@RestController
    +public class JarLoaderController {
    +
    +    @Resource
    +    private CoolPluginService coolPluginService;
    +
    +    @PostMapping("/loadJar/invokeMethod")
    +    public String invokeMethod(@RequestParam String className, @RequestParam String methodName) {
    +        String[] params = new String[1];
    +        params[0] = "COOL";
    +        Object result = coolPluginService.invokePlugin("demoCoolPlugin", params);
    +        System.out.println(result);
    +        return "Dynamic method invoked successfully! Result: " + result;
    +    }
    +}

    运行结果

    2024-06-29T03:14:54.610+08:00  INFO 9158 --- [cool-admin-java] [nio-8001-exec-5] c.c.c.plugin.service.CoolPluginService   : 调用插件类: demo-plugin, 方法: invokePlugin 参数: [[COOL, COOL1]]
    +汉字:COOL,拼音:COOL
    +2024-06-29T03:14:54.621+08:00  INFO 9158 --- [cool-admin-java] [nio-8001-exec-5] com.cool.core.plugin.BaseCoolPlugin      : 调用主应用: coolCache, 方法: get 参数: [verify:img:4fd03504-47ac-4b57-b8e4-3c64059230d0]
    +缓存结果:vQV3

    对应插件内的方法

    java
    package com.cool.plugin;
    +
    +import com.cool.core.annotation.CoolPlugin;
    +import com.cool.core.plugin.BaseCoolPlugin;
    +import net.sourceforge.pinyin4j.PinyinHelper;
    +import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
    +import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
    +import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
    +
    +/**
    + * - 类必须要有 @CoolPlugin 注解,一个插件jar有且只能有一个类被 @CoolPlugin 注解
    + * - 类必须继承 BaseCoolPlugin, 并实现 invokePlugin 插件方法
    + */
    +@CoolPlugin
    +public class DemoCoolPlugin extends BaseCoolPlugin {
    +
    +    @Override
    +    public Object invokePlugin(String... params) {
    +        String chineseChar = params[0]; // 汉字字符
    +        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
    +        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); // 不带声调
    +
    +        String pinyin = null;
    +        try {
    +            pinyin = PinyinHelper.toHanyuPinyinString(chineseChar, format, "");
    +        } catch (BadHanyuPinyinOutputFormatCombination e) {
    +            throw new RuntimeException(e);
    +        }
    +        System.out.println("汉字:" + chineseChar + ",拼音:" + pinyin);
    +        Object cache = invokeMain("coolCache", "get", "verify:img:4fd03504-47ac-4b57-b8e4-3c64059230d0");
    +        System.out.println("缓存结果:" +  cache);
    +        return String.format("hello,%s 我是插件", chineseChar);
    +    }
    +}

    其中我们可以在插件包里通过 invokeMain 方法去调用主应用的一些对象方法

    比如 coolCache 缓存对象, 通过反射实现

    在加载jar包时会想该插件注入ApplicationContext,使得可以在插件中获取主应用中的bean

    3、配置 ​

    有时候开发时的配置和生产环境的配置是不一样的,我们可以通过配置文件来实现。

    例如原本的配置文件是这样的

    json
    {
    +	"appId": "xxxxx",
    +	"appSecret": "xxxxx",
    +	"filePath": "classpath:cool/xxx.txt"
    +}

    其中 classpath 为到resources资源目录下查找文件

    开发插件 ​

    1、脚手架 ​

    为了方便开发插件和统一插件开发规范,我们提供了插件脚手架,可以快速开发我们的插件。

    2、目录结构 ​

    .
    +main
    +├─ java
    +│  └─ com.cool
    +│      ├─core           核心包  
    +│      │  ├─ annotation  
    +│      │  └─ ...
    +│      └─ plugin  
    +│           └─ ...插件包,插件类放在这个包下
    +├─ resources
    +│       └─ plugin.json 插件信息配置文件
    +└──pom.xml

    3、开发过程 ​

    • 配置插件信息(plugin.json)
    json
    {
    +  "name": "测试",
    +  "key": "demo-plugin",
    +  "hook": "",
    +  "version": "1.0.0",
    +  "description": "插件描述",
    +  "author": "作者",
    +  "logo": "assets/logo.png",
    +  "readme": "assets/README.md",
    +  "config": {
    +    "aaa": "xxx",
    +    "bbb": "xxx"
    +  }
    +}

    config 是插件的配置信息,不同的插件有不同的配置,上面只是个例子,实际开发中可以根据自己的需求来配置,在后台插件管理里可以动态修改

    4、字段解释 ​

    字段说明
    name角色数组
    key插件唯一标识
    hook插件钩子,比如替换系统的上传组件,upload
    version版本号
    description插件描述
    author作者
    logo插件 logo,建议尺寸 256x256
    readme插件介绍,会展示在插件的详情中
    config插件配置, 每个插件的配置各不相同

    插件详解 ​

    java
    package com.cool.plugin;
    +
    +import com.cool.core.annotation.CoolPlugin;
    +import com.cool.core.plugin.BaseCoolPlugin;
    +import net.sourceforge.pinyin4j.PinyinHelper;
    +import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
    +import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
    +import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
    +
    +/**
    + * - 类必须要有 @CoolPlugin 注解,一个插件jar有且只能有一个类被 @CoolPlugin 注解
    + * - 类必须继承 BaseCoolPlugin
    + */
    +@CoolPlugin
    +public class DemoCoolPlugin extends BaseCoolPlugin {
    +
    +    @Override
    +    public Object invokePlugin(String... params) {
    +        String chineseChar = params[0]; // 汉字字符
    +        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
    +        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); // 不带声调
    +
    +        String pinyin = null;
    +        try {
    +            pinyin = PinyinHelper.toHanyuPinyinString(chineseChar, format, "");
    +        } catch (BadHanyuPinyinOutputFormatCombination e) {
    +            throw new RuntimeException(e);
    +        }
    +        System.out.println("汉字:" + chineseChar + ",拼音:" + pinyin);
    +        Object cache = invokeMain("coolCache", "get", "verify:img:4fd03504-47ac-4b57-b8e4-3c64059230d0");
    +        return String.format("hello,%s 我是插件", chineseChar);
    +    }
    +}
    • 类必须要有 @CoolPlugin 注解,一个插件jar有且只能有一个类被 @CoolPlugin 注解
    • 类必须继承 BaseCoolPlugin, 并实现 invokePlugin 插件方法 满足以上条件,在插件导入时才能被识别到。

    在开发过程中如果需要引入第三方类库,可使用maven引入依赖,如我们这边示例使用到了中文转拼音

    xml
    <dependency>
    +    <groupId>com.belerweb</groupId>
    +    <artifactId>pinyin4j</artifactId>
    +    <version>2.5.0</version>
    +</dependency>

    在我们脚手架上你可以发现,我们还引入了其他包 springframework、hutool 等,这会使得打包结果很臃肿,这边使用到了 maven-shade-plugin maven插件可以在打包的时候将在我们 cool-admin-java 主应用项目已经有的依赖给排除掉,避免打包结果过大

    xml
    <build>
    +    <plugins>
    +        <plugin>
    +            <groupId>org.apache.maven.plugins</groupId>
    +            <artifactId>maven-shade-plugin</artifactId>
    +            <version>3.2.4</version>
    +            <executions>
    +                <execution>
    +                    <phase>package</phase>
    +                    <goals>
    +                        <goal>shade</goal>
    +                    </goals>
    +                    <configuration>
    +                        <artifactSet>
    +                            <excludes>
    +                                <!--主应用以有这些依赖,打包时可以排除-->
    +                                <exclude>org.springframework:spring-beans</exclude>
    +                                <exclude>org.springframework:spring-core</exclude>
    +                                <exclude>org.springframework:spring-jcl</exclude>
    +                                <exclude>org.springframework:spring-context</exclude>
    +                                <exclude>org.springframework:spring-aop</exclude>
    +                                <exclude>org.springframework:spring-expression</exclude>
    +                                <exclude>io.micrometer:micrometer-observation:jar</exclude>
    +                                <exclude>io.micrometer:micrometer-commons:jar</exclude>
    +                                <exclude>jakarta.annotation:jakarta.annotation-api</exclude>
    +                                <exclude>org.slf4j:slf4j-api</exclude>
    +                                <exclude>org.projectlombok:lombok</exclude>
    +                                <exclude>cn.hutool:hutool-core</exclude>
    +                                <exclude>cn.hutool:hutool-json</exclude>
    +                                <exclude>org.springframework:spring-beans</exclude>
    +                                <exclude>io.micrometer:micrometer-observation</exclude>
    +                                <exclude>io.micrometer:micrometer-commons</exclude>
    +                            </excludes>
    +                        </artifactSet>
    +                    </configuration>
    +                </execution>
    +            </executions>
    +        </plugin>
    +    </plugins>
    +</build>

    在执行打包的过程,可以在打包日志中查看我们排除和引入了哪些包

    • Including 为引入
    • Excluding 为排除引入
    [INFO] --- maven-shade-plugin:3.2.4:shade (default) @ cool-admin-java-plugin ---
    +[INFO] Including com.belerweb:pinyin4j:jar:2.5.0 in the shaded jar.
    +[INFO] Excluding org.springframework:spring-beans:jar:6.1.6 from the shaded jar.
    +[INFO] Excluding org.springframework:spring-core:jar:6.1.6 from the shaded jar.
    +[INFO] Excluding org.springframework:spring-jcl:jar:6.1.6 from the shaded jar.
    +[INFO] Excluding org.springframework:spring-context:jar:6.1.6 from the shaded jar.
    +[INFO] Excluding org.springframework:spring-aop:jar:6.1.6 from the shaded jar.
    +[INFO] Excluding org.springframework:spring-expression:jar:6.1.6 from the shaded jar.
    +[INFO] Excluding io.micrometer:micrometer-observation:jar:1.12.5 from the shaded jar.
    +[INFO] Excluding io.micrometer:micrometer-commons:jar:1.12.5 from the shaded jar.
    +[INFO] Excluding jakarta.annotation:jakarta.annotation-api:jar:2.1.1 from the shaded jar.
    +[INFO] Excluding org.slf4j:slf4j-api:jar:2.0.13 from the shaded jar.
    +[INFO] Excluding org.projectlombok:lombok:jar:1.18.32 from the shaded jar.
    +[INFO] Excluding cn.hutool:hutool-core:jar:5.8.26 from the shaded jar.
    +[INFO] Excluding cn.hutool:hutool-json:jar:5.8.26 from the shaded jar.

    打包 ​

    打包命令

    mvn clean package

    打包结果, 在 target目录下 .cool后缀的文件,就是我们的插件包

    target/cool-admin-java-plugin-1.0-SNAPSHOT.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 new file mode 100644 index 0000000..d98730f --- /dev/null +++ b/.vitepress/dist/src/guide/quick.html @@ -0,0 +1,103 @@ + + + + + + 快速开始 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    快速开始 ​

    前置准备 ​

    • Java Jdk >= 17 选择 GraalVM
    • Mysql >= 5.7
    • Maven >= 3.0

    运行系统 ​

    2024-05-25T00:11:36.475+08:00  INFO 8321 --- [cool-admin-java] [uartzScheduler]] o.s.s.quartz.SchedulerFactoryBean        : Starting Quartz Scheduler now, after delay of 2 seconds
    +2024-05-25T00:11:36.475+08:00  INFO 8321 --- [cool-admin-java] [uartzScheduler]] org.quartz.core.QuartzScheduler          : Scheduler quartzScheduler_$_NON_CLUSTERED started.
    +2024-05-25T00:11:36.717+08:00  INFO 8321 --- [cool-admin-java] [nio-8001-exec-1] o.springdoc.api.AbstractOpenApiResource  : Init duration for springdoc-openapi is: 1044 ms
    +2024-05-25T00:11:40.195+08:00  INFO 8321 --- [cool-admin-java] [pool-3-thread-1] com.cool.core.eps.CoolEps                : 初始化eps

    账户:admin
    密码:123456

    项目包结构 ​

    .
    +main
    +├─ java
    +│  ├─ com.cool
    +│  ├─ core             核心包
    +│  │  ├─ annotation
    +│  │  └─ ...
    +│  ├─ modules          模块包
    +│  │  ├─ base              基础模块(系统用户、菜单、资源、角色)
    +│  │  │  ├─ controller
    +│  │  │  ├─ entity
    +│  │  │  ├─ mapper
    +│  │  │  └─ service
    +│  │  ├─ dict              字段模块
    +│  │  ├─ plugin            插件模块
    +│  │  ├─ recycle           数据回收站模块
    +│  │  ├─ space             文件管理模块
    +│  │  ├─ task              定时任务模块
    +│  │  └─ user              用户管理模块(c端用户)
    +│  └─ CoolApplication
    +└─ resources           资源文件
    +   ├─ cool
    +   │  └─ data
    +   │     └─ db         初始化数据json文件
    +   └─ mapper           mapper xml 文件
    • core 为核心模块,包括一些核心的组件工具
    • modules 为业务模块,业务代码放在这边,在新增功能模块时,按上面的包结构新增即可

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

    表结构创建 ​

    无需手动创建表结构,启动项目时会自动生成表结构 在 modules 包下新建一个 demo 模块,把 DemoEntity 实体创建出来

    java
    package com.cool.modules.demo.entity;
    +import com.cool.core.base.BaseEntity;
    +import com.mybatisflex.annotation.Table;
    +import com.tangzc.mybatisflex.autotable.annotation.ColumnDefine;
    +import com.tangzc.autotable.annotation.Index;
    +import lombok.Getter;
    +import lombok.Setter;
    +@Getter
    +@Setter
    +@Table(value = "demo", comment = "demo实体")
    +public class DemoEntity extends BaseEntity<DemoEntity> {
    +    @ColumnDefine(comment = "头像", notNull = true)
    +    private String headImg;
    +
    +    @Index
    +    @ColumnDefine(comment = "名字", notNull = true)
    +    private String name;
    +
    +    @ColumnDefine(comment = "年龄", defaultValue = "18")
    +    private Integer age;
    +
    +    @ColumnDefine(comment = "手机号", notNull = true)
    +    private String phone;
    +
    +    @ColumnDefine(comment = "介绍", type = "text")
    +    private String introduce;
    +}

    无需手动添加数据库字段,只需修改实体对象就能自动添加表字段
    请参考 AutoTable 由该框架实现

    注意:

    第一个 CRUD ​

    实体创建完成后,通过 运行以下代码(在 test 包下)

    将在 com.cool.modules 下生成 demo 包且自动生成对应的 controller、service、mapper 文件

    package com.cool;
    +
    +import com.cool.core.code.CodeGenerator;
    +import com.cool.core.code.CodeModel;
    +import com.cool.core.code.CodeTypeEnum;
    +import com.cool.modules.demo.entity.DemoEntity;
    +
    +public class CoolCodeGeneratorTest {
    +    public static void main(String[] args) {
    +        CodeGenerator codeGenerator = new CodeGenerator();
    +        codeGenerator.init();
    +
    +        CodeModel codeModel = new CodeModel();
    +        codeModel.setType(CodeTypeEnum.ADMIN);
    +        codeModel.setName("测试CURD");
    +        codeModel.setModule("demo");
    +        codeModel.setEntity(DemoEntity.class);
    +
    +        codeGenerator.controller(codeModel);
    +        codeGenerator.mapper(codeModel);
    +        codeGenerator.service(codeModel);
    +    }
    +}

    配置数据库信息 ​

    /resources/application-local.yml(开发环境)

    /resources/application-prod.yml(生成环境)

    yaml
    spring:
    +  datasource:
    +    url: jdbc:mysql://127.0.0.1:3306/cool?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8
    +    username: root
    +    password: 123456
    + + + + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/security.html b/.vitepress/dist/src/guide/security.html new file mode 100644 index 0000000..f81b0c8 --- /dev/null +++ b/.vitepress/dist/src/guide/security.html @@ -0,0 +1,239 @@ + + + + + + 权限校验 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    权限校验 ​

    采用spring-security与 jwt 作为框架安全与权限校验。

    配置 ​

    yaml
    cool:
    +  # token 相关配置
    +  token:
    +    # 过期时间 单位:秒 半小时
    +    expire: 1800
    +    # 刷新token过期时间 单位:秒 7天
    +    refreshExpire: 604800
    +    # 密钥
    +    secret: DSAKOJLFAADASKD

    原理 ​

    1、系统启动的时候,系统会查询并向spring-security加载所有设置的权限;

    java
    @Component
    +public class MySecurityMetadataSource implements FilterInvocationSecurityMetadataSource {
    +    @Resource
    +    private BaseSysPermsService baseSysPermsService;
    +
    +    private Map<String, Collection<ConfigAttribute>> map = null;
    +
    +    /**
    +     * 加载权限表中所有操作请求权限
    +     */
    +    public void loadResourceDefine() {
    +        map = new HashMap<>();
    +        Collection<ConfigAttribute> configAttributes;
    +        ConfigAttribute cfg;
    +        String[] perms = baseSysPermsService.getAllPerms();
    +        // 获取启用的权限操作请求
    +        for (String perm : perms) {
    +            configAttributes = new ArrayList<>();
    +            cfg = new SecurityConfig(perm);
    +            // 作为MyAccessDecisionManager类的decide的第三个参数
    +            configAttributes.add(cfg);
    +            // 用权限的path作为map的key,用ConfigAttribute的集合作为value
    +            map.put(perm.replaceAll(":", "/"), configAttributes);
    +        }
    +    }
    +
    +    /**
    +     * 判定用户请求的url是否在权限表中 如果在权限表中,则返回给decide方法,用来判定用户是否有此权限 如果不在权限表中则放行
    +     *
    +     * @param o
    +     * @return
    +     * @throws IllegalArgumentException
    +     */
    +    @Override
    +    public Collection<ConfigAttribute> getAttributes(Object o) throws IllegalArgumentException {
    +        if (map == null) {
    +            loadResourceDefine();
    +        }
    +        // Object中包含用户请求request
    +        String url = ((FilterInvocation) o).getRequestUrl();
    +        return map.get(url.replace("/admin/", "").split("[?]")[0]);
    +
    +    }
    +
    +    @Override
    +    public Collection<ConfigAttribute> getAllConfigAttributes() {
    +        return new ArrayList<>();
    +    }
    +
    +    @Override
    +    public boolean supports(Class<?> aClass) {
    +        return true;
    +    }
    +}

    2、用户登录,查询该用户所具有的权限并缓存;

    java
    /**
    + * 获得用户信息
    + */
    +@Component
    +public class JwtUserDetailsServiceImpl implements UserDetailsService {
    +    @Resource
    +    private BaseSysUserService baseSysUserService;
    +    @Resource
    +    private BaseSysPermsService baseSysPermsService;
    +    @Resource
    +    private CoolCache coolCache;
    +
    +    @Override
    +    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
    +        BaseSysUserEntity sysUserEntity = baseSysUserService.getOne(Wrappers.<BaseSysUserEntity>lambdaQuery()
    +                .eq(BaseSysUserEntity::getUsername, username).eq(BaseSysUserEntity::getStatus, 1));
    +        if (ObjectUtil.isEmpty(sysUserEntity)) {
    +            throw new UsernameNotFoundException("用户名不存在");
    +        }
    +        List<GrantedAuthority> authority = new ArrayList<>();
    +        String[] perms = baseSysPermsService.getPerms(sysUserEntity.getId());
    +        for (String perm : perms) {
    +            authority.add(new SimpleGrantedAuthority(perm));
    +        }
    +        Long[] departmentIds = baseSysPermsService.getDepartmentIdsByRoleIds(sysUserEntity.getId());
    +        JwtUser jwtUser = new JwtUser(sysUserEntity.getUsername(), sysUserEntity.getPassword(), authority,
    +                sysUserEntity.getStatus() == 1);
    +        Long[] roleIds = baseSysPermsService.getRoles(sysUserEntity);
    +        coolCache.set("admin:userDetails:" + jwtUser.getUsername(), jwtUser);
    +        coolCache.set("admin:passwordVersion:" + sysUserEntity.getId(), sysUserEntity.getPasswordV());
    +        coolCache.set("admin:userInfo:" + sysUserEntity.getId(), sysUserEntity);
    +        coolCache.set("admin:department:" + sysUserEntity.getId(), departmentIds);
    +        coolCache.set("admin:roleIds:" + sysUserEntity.getId(), roleIds);
    +        return jwtUser;
    +    }
    +}

    3、每次调用接口的时候spring-security权限拦截器校验当前用户权限;

    java
    /**
    + * 权限管理拦截器
    + * 监控用户行为
    + */
    +@Slf4j
    +@Component
    +public class MyFilterSecurityInterceptor extends AbstractSecurityInterceptor implements Filter {
    +    @Resource
    +    private FilterInvocationSecurityMetadataSource securityMetadataSource;
    +
    +
    +    @Autowired
    +    public void setMyAccessDecisionManager(MyAccessDecisionManager myAccessDecisionManager) {
    +        super.setAccessDecisionManager(myAccessDecisionManager);
    +    }
    +
    +    @Override
    +    public void init(FilterConfig filterConfig) throws ServletException {
    +    }
    +
    +    @Override
    +    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    +        FilterInvocation fi = new FilterInvocation(request, response, chain);
    +        invoke(fi);
    +    }
    +
    +    public void invoke(FilterInvocation fi) throws IOException, ServletException {
    +        InterceptorStatusToken token = super.beforeInvocation(fi);
    +        try {
    +            fi.getChain().doFilter(fi.getRequest(), fi.getResponse());
    +        } finally {
    +            super.afterInvocation(token, null);
    +        }
    +    }
    +
    +    @Override
    +    public void destroy() {
    +    }
    +
    +    @Override
    +    public Class<?> getSecureObjectClass() {
    +        return FilterInvocation.class;
    +    }
    +
    +    @Override
    +    public SecurityMetadataSource obtainSecurityMetadataSource() {
    +        return this.securityMetadataSource;
    +    }
    +}

    4.鉴权拦截配置 jtw

    java
    @EnableWebSecurity
    +@Configuration
    +@Slf4j
    +public class JwtSecurityConfig {
    +
    +    // 用户详情
    +    @Resource
    +    private UserDetailsService userDetailsService;
    +
    +    @Resource
    +    private JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter;
    +    // 401
    +    @Resource
    +    private EntryPointUnauthorizedHandler entryPointUnauthorizedHandler;
    +    // 403
    +    @Resource
    +    private RestAccessDeniedHandler restAccessDeniedHandler;
    +    // 忽略权限控制的地址
    +    @Resource
    +    private IgnoredUrlsProperties ignoredUrlsProperties;
    +
    +    @Bean
    +    public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws Exception {
    +        return httpSecurity
    +                .authorizeHttpRequests(
    +                        conf -> conf.requestMatchers(ignoredUrlsProperties.getUrls().stream().toArray(String[]::new))
    +                                .permitAll().anyRequest().authenticated())
    +                .headers(config -> config.frameOptions(HeadersConfigurer.FrameOptionsConfig::disable))
    +                // 允许网页iframe
    +                .csrf(AbstractHttpConfigurer::disable)
    +                .sessionManagement(conf -> conf.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
    +                .addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class)
    +                .exceptionHandling(config -> {
    +                    config.authenticationEntryPoint(entryPointUnauthorizedHandler);
    +                    config.accessDeniedHandler(restAccessDeniedHandler);
    +                }).build();
    +    }
    +
    +    @Bean
    +    public PasswordEncoder passwordEncoder() {
    +        return new PasswordEncoder() {
    +            @Override
    +            public String encode(CharSequence rawPassword) {
    +                return DigestUtils.md5DigestAsHex(((String) rawPassword).getBytes());
    +            }
    +
    +            @Override
    +            public boolean matches(CharSequence rawPassword, String encodedPassword) {
    +                return encodedPassword.equals(DigestUtils.md5DigestAsHex(((String) rawPassword).getBytes()));
    +            }
    +        };
    +    }
    +
    +    @Bean
    +    public AuthenticationProvider authenticationProvider() {
    +        DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider();
    +        authProvider.setUserDetailsService(userDetailsService);
    +        authProvider.setPasswordEncoder(passwordEncoder());
    +        return authProvider;
    +    }
    +
    +    @Bean
    +    public AuthenticationManager authenticationManager(AuthenticationConfiguration config) throws Exception {
    +        return config.getAuthenticationManager();
    +    }
    +}

    当前用户 ​

    • 获得用户名
    java
     @Resource
    + private CoolSecurityUtil coolSecurityUtil;
    +
    + String username = coolSecurityUtil.username();
    • 获得用户信息 请求过程中会解析 token,并将用户信息存在整个请求过程中的requestParams
    java
     @Resource
    + private CoolSecurityUtil coolSecurityUtil;
    +
    + JSONObject userInfo = coolSecurityUtil.userInfo(requestParams);

    userInfo

    字段类型说明
    roleIdsLong[]角色数组
    usernameString用户名
    userIdLong用户ID
    passwordVersionInteger密码版本号
    + + + + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/springboot3.html b/.vitepress/dist/src/guide/springboot3.html new file mode 100644 index 0000000..0c86576 --- /dev/null +++ b/.vitepress/dist/src/guide/springboot3.html @@ -0,0 +1,24 @@ + + + + + + Spring Boot 3 介绍 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    Spring Boot 3 介绍 ​

    Spring Boot 3 是 Spring 框架 的一部分,旨在简化新 Spring 应用程序的创建和开发过程。Spring Boot 通过提供预先配置的设置,减少了开发者的配置工作,使得开发和部署 Spring 应用程序更加快捷和高效。以下是对 Spring Boot 3 的一些详细介绍:

    主要特点 ​

    简化的配置 ​

    • 通过 自动配置(Auto-Configuration) 和 约定优于配置(Convention over Configuration) 原则,减少了繁琐的手动配置。
    • 提供了大量的 starter 依赖,可以轻松集成常用的库和工具。

    新特性和增强 ​

    • 支持 Java 17 和 Java 21(最新的 LTS 版本)。
    • 采用 Jakarta EE 9 标准,这意味着 javax 包命名空间改为 jakarta 包命名空间。
    • 提供对 GraalVM Native Image 的更好支持,允许将 Spring Boot 应用编译为本地可执行文件,提高启动速度和资源利用效率。

    改进的性能 ​

    • 更快的启动时间和更低的内存占用。
    • 提供更多性能调优选项和监控工具。

    现代化开发体验 ​

    • 集成了 Spring Native,能够更好地支持云原生应用程序开发。
    • 提供更丰富的开发工具集成和增强的开发者体验。

    更强的安全性 ​

    • 更新的安全性默认配置和更严格的安全控制。
    • 支持最新的安全协议和加密标准。
    + + + + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/swagger.html b/.vitepress/dist/src/guide/swagger.html new file mode 100644 index 0000000..2c829b4 --- /dev/null +++ b/.vitepress/dist/src/guide/swagger.html @@ -0,0 +1,31 @@ + + + + + + swagger 文档 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    swagger 文档 ​

    默认集成springdoc,作为文档。

    java
    @Tag(name = "测试CURD", description = "测试CURD")
    +@CoolRestController(value = "/cool", api = {"add", "delete", "update", "page", "list", "info"})
    +public class AdminDemoInfoController extends BaseController<DemoService, DemoEntity> {
    +    @Override
    +    protected void init(HttpServletRequest request, JSONObject requestParams) {
    +        // 可以在这边实现一下列表数据排序规则,查询条件过滤,返回哪些字段等
    +    }
    +}

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

    + + + + \ No newline at end of file diff --git a/.vitepress/dist/src/guide/upload.html b/.vitepress/dist/src/guide/upload.html new file mode 100644 index 0000000..3348b73 --- /dev/null +++ b/.vitepress/dist/src/guide/upload.html @@ -0,0 +1,54 @@ + + + + + + 文件上传 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    文件上传 ​

    框架自带两种文件上传方式本地上传与云存储,与前端紧密结合,

    前端会根据后端返回的上传模式进行本地上传或者云存储签名直传(不经过服务器,直接上传到对应的云存储)

    • 本地上传
    • 阿里云oss (通过插件市场搜索OSS,下载安装插件实现下载插件)

    使用 ​

    application.yml

    yaml
    cool:
    +  # 文件上传相关
    +  file:
    +    #上传模式
    +    mode: local
    +    # 本地上传配置
    +    local:
    +      # 文件根地址
    +      base-url: http://127.0.0.1:${server.port}
    +      # 可选,文件存放路径 线上环境请用nginx等静态服务器代理
    +      filePath:

    动静分离有许多好处,如不占用主服务器带宽,防止上传恶意文件等。

    条件允许的话尽量选择云存储上传,如:oss 还可以对图片进行各种如压缩、裁剪、水印等处理,方便一张图片使用在多种场景。

    java
    @RequiredArgsConstructor
    +@Tag(name = "系统通用", description = "系统通用")
    +@CoolRestController()
    +public class AdminBaseCommController {
    +    final private FileUploadStrategyFactory fileUploadStrategyFactory;
    +
    +    @Operation(summary = "文件上传")
    +    @PostMapping(value = "/upload", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE,
    +        MediaType.ALL_VALUE})
    +    public R upload(
    +        @RequestPart(value = "file", required = false) @Parameter(description = "文件") MultipartFile[] files,
    +        HttpServletRequest request) {
    +        return R.ok(fileUploadStrategyFactory.upload(files, request));
    +    }
    +
    +    @Operation(summary = "文件上传模式")
    +    @GetMapping("/uploadMode")
    +    public R uploadMode() {
    +        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 new file mode 100644 index 0000000..ab35349 --- /dev/null +++ b/.vitepress/dist/src/introduce/index.html @@ -0,0 +1,24 @@ + + + + + + 简介 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    简介 ​

    技术选型 ​

    1、系统环境

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

    2、主要框架

    • Spring Boot 3.2.5
    • Spring Framework 6.1.6
    • Mybatis Flex 1.9.3(新版本替换: Mybatis Plus)
    • Auto Table 1.7.4
    • Spring Doc 2.5.0

    为什么选择 Cool Admin? ​

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

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

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

    内置功能 ​

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

    常见问题 ​

    IDEA导入Maven项目右侧没有Maven ​

    当在 IntelliJ IDEA 中导入 Maven 项目时,如果右侧没有显示 Maven 面板,可能是因为以下几个原因: ​

    1、项目未正确识别为 Maven 项目:确保项目的根目录下有一个 pom.xml 文件,这是 Maven 项目的标志。如果找不到 pom.xml 文件,需要检查项目导入过程中是否有误,或者从正确的源重新获取项目。

    2、Maven 面板未启用显示:可能是由于 IDEA 的设置导致 Maven 面板未显示。请按照以下步骤检查和更改设置:

    在 IDEA 中,选择 File > Settings(对于 macOS 用户是 IntelliJ IDEA > Preferences)。 在设置窗口中,导航到 Build, Execution, Deployment > Build Tools > Maven。 确保选中了显示 Maven 面板的选项。

    3、项目未正确加载 pom 文件:如果是因为读取项目出错,未正确加载 pom 文件造成的,可以尝试以下解决方案:

    关闭 IDEA,在项目目录中删除 .idea 文件夹,然后重新打开项目,重新加载。 直接在 pom 文件中右键选择 Add as Maven Project。

    4、视图设置问题:如果之前 Maven 面板是有的,突然之间没有了,可以尝试通过菜单 View > Tool Windows > Maven 来重新显示 Maven 面板。

    通过上述步骤,大多数情况下可以解决 IntelliJ IDEA 中 Maven 面板不显示的问题。如果问题依旧存在,可能需要进一步检查项目的配置或考虑重新导入项目。

    + + + + \ No newline at end of file diff --git a/.vitepress/dist/src/todo/plan.html b/.vitepress/dist/src/todo/plan.html new file mode 100644 index 0000000..a11198e --- /dev/null +++ b/.vitepress/dist/src/todo/plan.html @@ -0,0 +1,24 @@ + + + + + + 计划 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    计划 ​

    以下是我们的一些计划,如果你有更好的建议,欢迎联系我们。

    v7.1.1 ​

    • 新增 Ai 自动编码功能,简单功能零代码实现;
    • 新增后台扩展插件,如文件上传、支付、短信等功能可以通过安装插件的方式添加;
    + + + + \ No newline at end of file diff --git a/.vitepress/dist/src/todo/update.html b/.vitepress/dist/src/todo/update.html new file mode 100644 index 0000000..86b163a --- /dev/null +++ b/.vitepress/dist/src/todo/update.html @@ -0,0 +1,24 @@ + + + + + + 更新 | Cool Admin + + + + + + + + + + + + + +
    Skip to content

    更新 ​

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

    v7.1.0(2024-06-27) ​

    • 升级到 Springboot3.x;
    • 升级所有相关依赖到最新;
    • 跟进Nodejs 版相关功能;
    • 优化若干问题;
    + + + + \ No newline at end of file diff --git a/.vitepress/theme/custom.css b/.vitepress/theme/custom.css new file mode 100644 index 0000000..ce17ee2 --- /dev/null +++ b/.vitepress/theme/custom.css @@ -0,0 +1,55 @@ +:root { + --vp-home-hero-name-color: transparent; + --vp-home-hero-name-background: -webkit-linear-gradient( + 120deg, + #bd34fe 30%, + #41d1ff + ); + + --vp-home-hero-image-background-image: linear-gradient( + -45deg, + #bd34fe 50%, + #47caff 50% + ); + --vp-home-hero-image-filter: blur(44px); +} + +@media (min-width: 640px) { + :root { + --vp-home-hero-image-filter: blur(56px); + } +} + +@media (min-width: 960px) { + :root { + --vp-home-hero-image-filter: blur(68px); + } +} + +@media (min-width: 960px) { + :root { + .image-src { + max-width: 400px; + max-height: 320px; + } + } +} + +@media (min-width: 960px) { + .VPHero.has-image { + .name{ + padding-bottom: 20px; + } + .text{ + padding-bottom: 2px; + } + } +} + +.medium-zoom-overlay { + z-index: 1000; +} + +.medium-zoom-image { + z-index: 1000; +} diff --git a/.vitepress/theme/index.js b/.vitepress/theme/index.js new file mode 100644 index 0000000..fc95e1e --- /dev/null +++ b/.vitepress/theme/index.js @@ -0,0 +1,23 @@ +import DefaultTheme from 'vitepress/theme' +import './custom.css' +import { onMounted, watch, nextTick } from 'vue'; +import { useRoute } from 'vitepress'; +import mediumZoom from 'medium-zoom'; + +export default { + ...DefaultTheme, + + setup() { + const route = useRoute(); + const initZoom = () => { + new mediumZoom('[data-zoomable]', { background: 'var(--vp-c-bg)' }); + }; + onMounted(() => { + initZoom(); + }); + watch( + () => route.path, + () => nextTick(() => initZoom()) + ); + }, + }; \ No newline at end of file diff --git a/docs/.vitepress/cache/deps/@theme_index.js b/docs/.vitepress/cache/deps/@theme_index.js new file mode 100644 index 0000000..ca9b54d --- /dev/null +++ b/docs/.vitepress/cache/deps/@theme_index.js @@ -0,0 +1,257 @@ +import { + useMediaQuery +} from "./chunk-B2WI2LE3.js"; +import { + computed, + ref, + shallowRef, + watch +} from "./chunk-BJ3OZQ3N.js"; + +// node_modules/vitepress/dist/client/theme-default/index.js +import "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/styles/fonts.css"; + +// node_modules/vitepress/dist/client/theme-default/without-fonts.js +import "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/styles/vars.css"; +import "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/styles/base.css"; +import "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/styles/icons.css"; +import "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/styles/utils.css"; +import "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/styles/components/custom-block.css"; +import "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code.css"; +import "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code-group.css"; +import "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/styles/components/vp-doc.css"; +import "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/styles/components/vp-sponsor.css"; +import VPBadge from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue"; +import Layout from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/Layout.vue"; +import { default as default2 } from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue"; +import { default as default3 } from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/components/VPImage.vue"; +import { default as default4 } from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/components/VPButton.vue"; +import { default as default5 } from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/components/VPHomeHero.vue"; +import { default as default6 } from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/components/VPHomeFeatures.vue"; +import { default as default7 } from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/components/VPHomeSponsors.vue"; +import { default as default8 } from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue"; +import { default as default9 } from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/components/VPSponsors.vue"; +import { default as default10 } from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/components/VPTeamPage.vue"; +import { default as default11 } from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue"; +import { default as default12 } from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageSection.vue"; +import { default as default13 } from "/Users/mac/work/cool/docs/node_modules/vitepress/dist/client/theme-default/components/VPTeamMembers.vue"; + +// node_modules/vitepress/dist/client/theme-default/support/utils.js +import { withBase } from "vitepress"; + +// node_modules/vitepress/dist/client/theme-default/composables/data.js +import { useData as useData$ } from "vitepress"; +var useData = useData$; + +// node_modules/vitepress/dist/client/theme-default/support/utils.js +function ensureStartingSlash(path) { + return /^\//.test(path) ? path : `/${path}`; +} + +// node_modules/vitepress/dist/client/theme-default/support/sidebar.js +function getSidebar(_sidebar, path) { + if (Array.isArray(_sidebar)) + return addBase(_sidebar); + if (_sidebar == null) + return []; + path = ensureStartingSlash(path); + const dir = Object.keys(_sidebar).sort((a, b) => { + return b.split("/").length - a.split("/").length; + }).find((dir2) => { + return path.startsWith(ensureStartingSlash(dir2)); + }); + const sidebar = dir ? _sidebar[dir] : []; + return Array.isArray(sidebar) ? addBase(sidebar) : addBase(sidebar.items, sidebar.base); +} +function getSidebarGroups(sidebar) { + const groups = []; + let lastGroupIndex = 0; + for (const index in sidebar) { + const item = sidebar[index]; + if (item.items) { + lastGroupIndex = groups.push(item); + continue; + } + if (!groups[lastGroupIndex]) { + groups.push({ items: [] }); + } + groups[lastGroupIndex].items.push(item); + } + return groups; +} +function addBase(items, _base) { + return [...items].map((_item) => { + const item = { ..._item }; + const base = item.base || _base; + if (base && item.link) + item.link = base + item.link; + if (item.items) + item.items = addBase(item.items, base); + return item; + }); +} + +// node_modules/vitepress/dist/client/theme-default/composables/sidebar.js +function useSidebar() { + const { frontmatter, page, theme: theme2 } = useData(); + const is960 = useMediaQuery("(min-width: 960px)"); + const isOpen = ref(false); + const _sidebar = computed(() => { + const sidebarConfig = theme2.value.sidebar; + const relativePath = page.value.relativePath; + return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : []; + }); + const sidebar = ref(_sidebar.value); + watch(_sidebar, (next, prev) => { + if (JSON.stringify(next) !== JSON.stringify(prev)) + sidebar.value = _sidebar.value; + }); + const hasSidebar = computed(() => { + return frontmatter.value.sidebar !== false && sidebar.value.length > 0 && frontmatter.value.layout !== "home"; + }); + const leftAside = computed(() => { + if (hasAside) + return frontmatter.value.aside == null ? theme2.value.aside === "left" : frontmatter.value.aside === "left"; + return false; + }); + const hasAside = computed(() => { + if (frontmatter.value.layout === "home") + return false; + if (frontmatter.value.aside != null) + return !!frontmatter.value.aside; + return theme2.value.aside !== false; + }); + const isSidebarEnabled = computed(() => hasSidebar.value && is960.value); + const sidebarGroups = computed(() => { + return hasSidebar.value ? getSidebarGroups(sidebar.value) : []; + }); + function open() { + isOpen.value = true; + } + function close() { + isOpen.value = false; + } + function toggle() { + isOpen.value ? close() : open(); + } + return { + isOpen, + sidebar, + sidebarGroups, + hasSidebar, + hasAside, + leftAside, + isSidebarEnabled, + open, + close, + toggle + }; +} + +// node_modules/vitepress/dist/client/theme-default/composables/local-nav.js +import { onContentUpdated } from "vitepress"; + +// node_modules/vitepress/dist/client/theme-default/composables/outline.js +import { getScrollOffset } from "vitepress"; +var resolvedHeaders = []; +function getHeaders(range) { + const headers = [ + ...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)") + ].filter((el) => el.id && el.hasChildNodes()).map((el) => { + const level = Number(el.tagName[1]); + return { + element: el, + title: serializeHeader(el), + link: "#" + el.id, + level + }; + }); + return resolveHeaders(headers, range); +} +function serializeHeader(h) { + let ret = ""; + for (const node of h.childNodes) { + if (node.nodeType === 1) { + if (node.classList.contains("VPBadge") || node.classList.contains("header-anchor") || node.classList.contains("ignore-header")) { + continue; + } + ret += node.textContent; + } else if (node.nodeType === 3) { + ret += node.textContent; + } + } + return ret.trim(); +} +function resolveHeaders(headers, range) { + if (range === false) { + return []; + } + const levelsRange = (typeof range === "object" && !Array.isArray(range) ? range.level : range) || 2; + const [high, low] = typeof levelsRange === "number" ? [levelsRange, levelsRange] : levelsRange === "deep" ? [2, 6] : levelsRange; + headers = headers.filter((h) => h.level >= high && h.level <= low); + resolvedHeaders.length = 0; + for (const { element, link } of headers) { + resolvedHeaders.push({ element, link }); + } + const ret = []; + outer: for (let i = 0; i < headers.length; i++) { + const cur = headers[i]; + if (i === 0) { + ret.push(cur); + } else { + for (let j = i - 1; j >= 0; j--) { + const prev = headers[j]; + if (prev.level < cur.level) { + ; + (prev.children || (prev.children = [])).push(cur); + continue outer; + } + } + ret.push(cur); + } + } + return ret; +} + +// node_modules/vitepress/dist/client/theme-default/composables/local-nav.js +function useLocalNav() { + const { theme: theme2, frontmatter } = useData(); + const headers = shallowRef([]); + const hasLocalNav = computed(() => { + return headers.value.length > 0; + }); + onContentUpdated(() => { + headers.value = getHeaders(frontmatter.value.outline ?? theme2.value.outline); + }); + return { + headers, + hasLocalNav + }; +} + +// node_modules/vitepress/dist/client/theme-default/without-fonts.js +var theme = { + Layout, + enhanceApp: ({ app }) => { + app.component("Badge", VPBadge); + } +}; +var without_fonts_default = theme; +export { + default2 as VPBadge, + default4 as VPButton, + default8 as VPDocAsideSponsors, + default6 as VPHomeFeatures, + default5 as VPHomeHero, + default7 as VPHomeSponsors, + default3 as VPImage, + default9 as VPSponsors, + default13 as VPTeamMembers, + default10 as VPTeamPage, + default12 as VPTeamPageSection, + default11 as VPTeamPageTitle, + without_fonts_default as default, + useLocalNav, + useSidebar +}; +//# sourceMappingURL=@theme_index.js.map diff --git a/docs/.vitepress/cache/deps/@theme_index.js.map b/docs/.vitepress/cache/deps/@theme_index.js.map new file mode 100644 index 0000000..3a14d03 --- /dev/null +++ b/docs/.vitepress/cache/deps/@theme_index.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../../node_modules/vitepress/dist/client/theme-default/index.js", "../../../../node_modules/vitepress/dist/client/theme-default/without-fonts.js", "../../../../node_modules/vitepress/dist/client/theme-default/support/utils.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/data.js", "../../../../node_modules/vitepress/dist/client/theme-default/support/sidebar.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/sidebar.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/local-nav.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/outline.js"], + "sourcesContent": ["import './styles/fonts.css';\nexport * from './without-fonts';\nexport { default as default } from './without-fonts';\n", "import './styles/vars.css';\nimport './styles/base.css';\nimport './styles/icons.css';\nimport './styles/utils.css';\nimport './styles/components/custom-block.css';\nimport './styles/components/vp-code.css';\nimport './styles/components/vp-code-group.css';\nimport './styles/components/vp-doc.css';\nimport './styles/components/vp-sponsor.css';\nimport VPBadge from './components/VPBadge.vue';\nimport Layout from './Layout.vue';\nexport { default as VPBadge } from './components/VPBadge.vue';\nexport { default as VPImage } from './components/VPImage.vue';\nexport { default as VPButton } from './components/VPButton.vue';\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\nexport { default as VPSponsors } from './components/VPSponsors.vue';\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\nexport { useSidebar } from './composables/sidebar';\nexport { useLocalNav } from './composables/local-nav';\nconst theme = {\n Layout,\n enhanceApp: ({ app }) => {\n app.component('Badge', VPBadge);\n }\n};\nexport default theme;\n", "import { withBase } from 'vitepress';\nimport { useData } from '../composables/data';\nimport { isExternal, treatAsHtml } from '../../shared';\nexport function throttleAndDebounce(fn, delay) {\n let timeoutId;\n let called = false;\n return () => {\n if (timeoutId)\n clearTimeout(timeoutId);\n if (!called) {\n fn();\n (called = true) && setTimeout(() => (called = false), delay);\n }\n else\n timeoutId = setTimeout(fn, delay);\n };\n}\nexport function ensureStartingSlash(path) {\n return /^\\//.test(path) ? path : `/${path}`;\n}\nexport function normalizeLink(url) {\n const { pathname, search, hash, protocol } = new URL(url, 'http://a.com');\n if (isExternal(url) ||\n url.startsWith('#') ||\n !protocol.startsWith('http') ||\n !treatAsHtml(pathname))\n return url;\n const { site } = useData();\n const normalizedPath = pathname.endsWith('/') || pathname.endsWith('.html')\n ? url\n : url.replace(/(?:(^\\.+)\\/)?.*$/, `$1${pathname.replace(/(\\.md)?$/, site.value.cleanUrls ? '' : '.html')}${search}${hash}`);\n return withBase(normalizedPath);\n}\n", "import { useData as useData$ } from 'vitepress';\nexport const useData = useData$;\n", "import { ensureStartingSlash } from './utils';\nimport { isActive } from '../../shared';\n/**\n * Get the `Sidebar` from sidebar option. This method will ensure to get correct\n * sidebar config from `MultiSideBarConfig` with various path combinations such\n * as matching `guide/` and `/guide/`. If no matching config was found, it will\n * return empty array.\n */\nexport function getSidebar(_sidebar, path) {\n if (Array.isArray(_sidebar))\n return addBase(_sidebar);\n if (_sidebar == null)\n return [];\n path = ensureStartingSlash(path);\n const dir = Object.keys(_sidebar)\n .sort((a, b) => {\n return b.split('/').length - a.split('/').length;\n })\n .find((dir) => {\n // make sure the multi sidebar key starts with slash too\n return path.startsWith(ensureStartingSlash(dir));\n });\n const sidebar = dir ? _sidebar[dir] : [];\n return Array.isArray(sidebar)\n ? addBase(sidebar)\n : addBase(sidebar.items, sidebar.base);\n}\n/**\n * Get or generate sidebar group from the given sidebar items.\n */\nexport function getSidebarGroups(sidebar) {\n const groups = [];\n let lastGroupIndex = 0;\n for (const index in sidebar) {\n const item = sidebar[index];\n if (item.items) {\n lastGroupIndex = groups.push(item);\n continue;\n }\n if (!groups[lastGroupIndex]) {\n groups.push({ items: [] });\n }\n groups[lastGroupIndex].items.push(item);\n }\n return groups;\n}\nexport function getFlatSideBarLinks(sidebar) {\n const links = [];\n function recursivelyExtractLinks(items) {\n for (const item of items) {\n if (item.text && item.link) {\n links.push({\n text: item.text,\n link: item.link,\n docFooterText: item.docFooterText\n });\n }\n if (item.items) {\n recursivelyExtractLinks(item.items);\n }\n }\n }\n recursivelyExtractLinks(sidebar);\n return links;\n}\n/**\n * Check if the given sidebar item contains any active link.\n */\nexport function hasActiveLink(path, items) {\n if (Array.isArray(items)) {\n return items.some((item) => hasActiveLink(path, item));\n }\n return isActive(path, items.link)\n ? true\n : items.items\n ? hasActiveLink(path, items.items)\n : false;\n}\nfunction addBase(items, _base) {\n return [...items].map((_item) => {\n const item = { ..._item };\n const base = item.base || _base;\n if (base && item.link)\n item.link = base + item.link;\n if (item.items)\n item.items = addBase(item.items, base);\n return item;\n });\n}\n", "import { useMediaQuery } from '@vueuse/core';\nimport { computed, onMounted, onUnmounted, ref, watch, watchEffect, watchPostEffect } from 'vue';\nimport { isActive } from '../../shared';\nimport { hasActiveLink as containsActiveLink, getSidebar, getSidebarGroups } from '../support/sidebar';\nimport { useData } from './data';\nexport function useSidebar() {\n const { frontmatter, page, theme } = useData();\n const is960 = useMediaQuery('(min-width: 960px)');\n const isOpen = ref(false);\n const _sidebar = computed(() => {\n const sidebarConfig = theme.value.sidebar;\n const relativePath = page.value.relativePath;\n return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : [];\n });\n const sidebar = ref(_sidebar.value);\n watch(_sidebar, (next, prev) => {\n if (JSON.stringify(next) !== JSON.stringify(prev))\n sidebar.value = _sidebar.value;\n });\n const hasSidebar = computed(() => {\n return (frontmatter.value.sidebar !== false &&\n sidebar.value.length > 0 &&\n frontmatter.value.layout !== 'home');\n });\n const leftAside = computed(() => {\n if (hasAside)\n return frontmatter.value.aside == null\n ? theme.value.aside === 'left'\n : frontmatter.value.aside === 'left';\n return false;\n });\n const hasAside = computed(() => {\n if (frontmatter.value.layout === 'home')\n return false;\n if (frontmatter.value.aside != null)\n return !!frontmatter.value.aside;\n return theme.value.aside !== false;\n });\n const isSidebarEnabled = computed(() => hasSidebar.value && is960.value);\n const sidebarGroups = computed(() => {\n return hasSidebar.value ? getSidebarGroups(sidebar.value) : [];\n });\n function open() {\n isOpen.value = true;\n }\n function close() {\n isOpen.value = false;\n }\n function toggle() {\n isOpen.value ? close() : open();\n }\n return {\n isOpen,\n sidebar,\n sidebarGroups,\n hasSidebar,\n hasAside,\n leftAside,\n isSidebarEnabled,\n open,\n close,\n toggle\n };\n}\n/**\n * a11y: cache the element that opened the Sidebar (the menu button) then\n * focus that button again when Menu is closed with Escape key.\n */\nexport function useCloseSidebarOnEscape(isOpen, close) {\n let triggerElement;\n watchEffect(() => {\n triggerElement = isOpen.value\n ? document.activeElement\n : undefined;\n });\n onMounted(() => {\n window.addEventListener('keyup', onEscape);\n });\n onUnmounted(() => {\n window.removeEventListener('keyup', onEscape);\n });\n function onEscape(e) {\n if (e.key === 'Escape' && isOpen.value) {\n close();\n triggerElement?.focus();\n }\n }\n}\nexport function useSidebarControl(item) {\n const { page, hash } = useData();\n const collapsed = ref(false);\n const collapsible = computed(() => {\n return item.value.collapsed != null;\n });\n const isLink = computed(() => {\n return !!item.value.link;\n });\n const isActiveLink = ref(false);\n const updateIsActiveLink = () => {\n isActiveLink.value = isActive(page.value.relativePath, item.value.link);\n };\n watch([page, item, hash], updateIsActiveLink);\n onMounted(updateIsActiveLink);\n const hasActiveLink = computed(() => {\n if (isActiveLink.value) {\n return true;\n }\n return item.value.items\n ? containsActiveLink(page.value.relativePath, item.value.items)\n : false;\n });\n const hasChildren = computed(() => {\n return !!(item.value.items && item.value.items.length);\n });\n watchEffect(() => {\n collapsed.value = !!(collapsible.value && item.value.collapsed);\n });\n watchPostEffect(() => {\n ;\n (isActiveLink.value || hasActiveLink.value) && (collapsed.value = false);\n });\n function toggle() {\n if (collapsible.value) {\n collapsed.value = !collapsed.value;\n }\n }\n return {\n collapsed,\n collapsible,\n isLink,\n isActiveLink,\n hasActiveLink,\n hasChildren,\n toggle\n };\n}\n", "import { onContentUpdated } from 'vitepress';\nimport { computed, shallowRef } from 'vue';\nimport { getHeaders } from '../composables/outline';\nimport { useData } from './data';\nexport function useLocalNav() {\n const { theme, frontmatter } = useData();\n const headers = shallowRef([]);\n const hasLocalNav = computed(() => {\n return headers.value.length > 0;\n });\n onContentUpdated(() => {\n headers.value = getHeaders(frontmatter.value.outline ?? theme.value.outline);\n });\n return {\n headers,\n hasLocalNav\n };\n}\n", "import { getScrollOffset } from 'vitepress';\nimport { onMounted, onUnmounted, onUpdated } from 'vue';\nimport { throttleAndDebounce } from '../support/utils';\nimport { useAside } from './aside';\n// cached list of anchor elements from resolveHeaders\nconst resolvedHeaders = [];\nexport function resolveTitle(theme) {\n return ((typeof theme.outline === 'object' &&\n !Array.isArray(theme.outline) &&\n theme.outline.label) ||\n theme.outlineTitle ||\n 'On this page');\n}\nexport function getHeaders(range) {\n const headers = [\n ...document.querySelectorAll('.VPDoc :where(h1,h2,h3,h4,h5,h6)')\n ]\n .filter((el) => el.id && el.hasChildNodes())\n .map((el) => {\n const level = Number(el.tagName[1]);\n return {\n element: el,\n title: serializeHeader(el),\n link: '#' + el.id,\n level\n };\n });\n return resolveHeaders(headers, range);\n}\nfunction serializeHeader(h) {\n let ret = '';\n for (const node of h.childNodes) {\n if (node.nodeType === 1) {\n if (node.classList.contains('VPBadge') ||\n node.classList.contains('header-anchor') ||\n node.classList.contains('ignore-header')) {\n continue;\n }\n ret += node.textContent;\n }\n else if (node.nodeType === 3) {\n ret += node.textContent;\n }\n }\n return ret.trim();\n}\nexport function resolveHeaders(headers, range) {\n if (range === false) {\n return [];\n }\n const levelsRange = (typeof range === 'object' && !Array.isArray(range)\n ? range.level\n : range) || 2;\n const [high, low] = typeof levelsRange === 'number'\n ? [levelsRange, levelsRange]\n : levelsRange === 'deep'\n ? [2, 6]\n : levelsRange;\n headers = headers.filter((h) => h.level >= high && h.level <= low);\n // clear previous caches\n resolvedHeaders.length = 0;\n // update global header list for active link rendering\n for (const { element, link } of headers) {\n resolvedHeaders.push({ element, link });\n }\n const ret = [];\n outer: for (let i = 0; i < headers.length; i++) {\n const cur = headers[i];\n if (i === 0) {\n ret.push(cur);\n }\n else {\n for (let j = i - 1; j >= 0; j--) {\n const prev = headers[j];\n if (prev.level < cur.level) {\n ;\n (prev.children || (prev.children = [])).push(cur);\n continue outer;\n }\n }\n ret.push(cur);\n }\n }\n return ret;\n}\nexport function useActiveAnchor(container, marker) {\n const { isAsideEnabled } = useAside();\n const onScroll = throttleAndDebounce(setActiveLink, 100);\n let prevActiveLink = null;\n onMounted(() => {\n requestAnimationFrame(setActiveLink);\n window.addEventListener('scroll', onScroll);\n });\n onUpdated(() => {\n // sidebar update means a route change\n activateLink(location.hash);\n });\n onUnmounted(() => {\n window.removeEventListener('scroll', onScroll);\n });\n function setActiveLink() {\n if (!isAsideEnabled.value) {\n return;\n }\n const scrollY = window.scrollY;\n const innerHeight = window.innerHeight;\n const offsetHeight = document.body.offsetHeight;\n const isBottom = Math.abs(scrollY + innerHeight - offsetHeight) < 1;\n // resolvedHeaders may be repositioned, hidden or fix positioned\n const headers = resolvedHeaders\n .map(({ element, link }) => ({\n link,\n top: getAbsoluteTop(element)\n }))\n .filter(({ top }) => !Number.isNaN(top))\n .sort((a, b) => a.top - b.top);\n // no headers available for active link\n if (!headers.length) {\n activateLink(null);\n return;\n }\n // page top\n if (scrollY < 1) {\n activateLink(null);\n return;\n }\n // page bottom - highlight last link\n if (isBottom) {\n activateLink(headers[headers.length - 1].link);\n return;\n }\n // find the last header above the top of viewport\n let activeLink = null;\n for (const { link, top } of headers) {\n if (top > scrollY + getScrollOffset() + 4) {\n break;\n }\n activeLink = link;\n }\n activateLink(activeLink);\n }\n function activateLink(hash) {\n if (prevActiveLink) {\n prevActiveLink.classList.remove('active');\n }\n if (hash == null) {\n prevActiveLink = null;\n }\n else {\n prevActiveLink = container.value.querySelector(`a[href=\"${decodeURIComponent(hash)}\"]`);\n }\n const activeLink = prevActiveLink;\n if (activeLink) {\n activeLink.classList.add('active');\n marker.value.style.top = activeLink.offsetTop + 39 + 'px';\n marker.value.style.opacity = '1';\n }\n else {\n marker.value.style.top = '33px';\n marker.value.style.opacity = '0';\n }\n }\n}\nfunction getAbsoluteTop(element) {\n let offsetTop = 0;\n while (element !== document.body) {\n if (element === null) {\n // child element is:\n // - not attached to the DOM (display: none)\n // - set to fixed position (not scrollable)\n // - body or html element (null offsetParent)\n return NaN;\n }\n offsetTop += element.offsetTop;\n element = element.offsetParent;\n }\n return offsetTop;\n}\n"], + "mappings": "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", + "names": ["default", "dir", "theme", "theme"] +} diff --git a/docs/.vitepress/cache/deps/_metadata.json b/docs/.vitepress/cache/deps/_metadata.json new file mode 100644 index 0000000..bf9e181 --- /dev/null +++ b/docs/.vitepress/cache/deps/_metadata.json @@ -0,0 +1,40 @@ +{ + "hash": "9a47e5ac", + "configHash": "35bce0e8", + "lockfileHash": "adca43db", + "browserHash": "8ac9408a", + "optimized": { + "vue": { + "src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js", + "file": "vue.js", + "fileHash": "18c21f51", + "needsInterop": false + }, + "vitepress > @vue/devtools-api": { + "src": "../../../../node_modules/@vue/devtools-api/dist/index.js", + "file": "vitepress___@vue_devtools-api.js", + "fileHash": "ab6cf902", + "needsInterop": false + }, + "vitepress > @vueuse/core": { + "src": "../../../../node_modules/@vueuse/core/index.mjs", + "file": "vitepress___@vueuse_core.js", + "fileHash": "0dc2ef5e", + "needsInterop": false + }, + "@theme/index": { + "src": "../../../../node_modules/vitepress/dist/client/theme-default/index.js", + "file": "@theme_index.js", + "fileHash": "0e3164a8", + "needsInterop": false + } + }, + "chunks": { + "chunk-B2WI2LE3": { + "file": "chunk-B2WI2LE3.js" + }, + "chunk-BJ3OZQ3N": { + "file": "chunk-BJ3OZQ3N.js" + } + } +} \ No newline at end of file diff --git a/docs/.vitepress/cache/deps/chunk-B2WI2LE3.js b/docs/.vitepress/cache/deps/chunk-B2WI2LE3.js new file mode 100644 index 0000000..4fed6e0 --- /dev/null +++ b/docs/.vitepress/cache/deps/chunk-B2WI2LE3.js @@ -0,0 +1,9172 @@ +import { + Fragment, + TransitionGroup, + computed, + customRef, + defineComponent, + effectScope, + getCurrentInstance, + getCurrentScope, + h, + inject, + isReactive, + isReadonly, + isRef, + markRaw, + nextTick, + onBeforeMount, + onBeforeUnmount, + onBeforeUpdate, + onMounted, + onScopeDispose, + onUnmounted, + onUpdated, + provide, + reactive, + readonly, + ref, + shallowReactive, + shallowRef, + toRef, + toRefs, + unref, + version, + watch, + watchEffect +} from "./chunk-BJ3OZQ3N.js"; + +// node_modules/vitepress/lib/vue-demi.mjs +var isVue2 = false; +var isVue3 = true; +function set(target, key, val) { + if (Array.isArray(target)) { + target.length = Math.max(target.length, key); + target.splice(key, 1, val); + return val; + } + target[key] = val; + return val; +} +function del(target, key) { + if (Array.isArray(target)) { + target.splice(key, 1); + return; + } + delete target[key]; +} + +// node_modules/@vueuse/shared/index.mjs +function computedEager(fn, options) { + var _a; + const result = shallowRef(); + watchEffect(() => { + result.value = fn(); + }, { + ...options, + flush: (_a = options == null ? void 0 : options.flush) != null ? _a : "sync" + }); + return readonly(result); +} +function computedWithControl(source, fn) { + let v = void 0; + let track; + let trigger; + const dirty = ref(true); + const update = () => { + dirty.value = true; + trigger(); + }; + watch(source, update, { flush: "sync" }); + const get2 = typeof fn === "function" ? fn : fn.get; + const set3 = typeof fn === "function" ? void 0 : fn.set; + const result = customRef((_track, _trigger) => { + track = _track; + trigger = _trigger; + return { + get() { + if (dirty.value) { + v = get2(); + dirty.value = false; + } + track(); + return v; + }, + set(v2) { + set3 == null ? void 0 : set3(v2); + } + }; + }); + if (Object.isExtensible(result)) + result.trigger = update; + return result; +} +function tryOnScopeDispose(fn) { + if (getCurrentScope()) { + onScopeDispose(fn); + return true; + } + return false; +} +function createEventHook() { + const fns = /* @__PURE__ */ new Set(); + const off = (fn) => { + fns.delete(fn); + }; + const on = (fn) => { + fns.add(fn); + const offFn = () => off(fn); + tryOnScopeDispose(offFn); + return { + off: offFn + }; + }; + const trigger = (...args) => { + return Promise.all(Array.from(fns).map((fn) => fn(...args))); + }; + return { + on, + off, + trigger + }; +} +function createGlobalState(stateFactory) { + let initialized = false; + let state; + const scope = effectScope(true); + return (...args) => { + if (!initialized) { + state = scope.run(() => stateFactory(...args)); + initialized = true; + } + return state; + }; +} +var localProvidedStateMap = /* @__PURE__ */ new WeakMap(); +var provideLocal = (key, value) => { + var _a; + const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy; + if (instance == null) + throw new Error("provideLocal must be called in setup"); + if (!localProvidedStateMap.has(instance)) + localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null)); + const localProvidedState = localProvidedStateMap.get(instance); + localProvidedState[key] = value; + provide(key, value); +}; +var injectLocal = (...args) => { + var _a; + const key = args[0]; + const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy; + if (instance == null) + throw new Error("injectLocal must be called in setup"); + if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance)) + return localProvidedStateMap.get(instance)[key]; + return inject(...args); +}; +function createInjectionState(composable, options) { + const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || "InjectionState"); + const defaultValue = options == null ? void 0 : options.defaultValue; + const useProvidingState = (...args) => { + const state = composable(...args); + provideLocal(key, state); + return state; + }; + const useInjectedState = () => injectLocal(key, defaultValue); + return [useProvidingState, useInjectedState]; +} +function createSharedComposable(composable) { + let subscribers = 0; + let state; + let scope; + const dispose = () => { + subscribers -= 1; + if (scope && subscribers <= 0) { + scope.stop(); + state = void 0; + scope = void 0; + } + }; + return (...args) => { + subscribers += 1; + if (!state) { + scope = effectScope(true); + state = scope.run(() => composable(...args)); + } + tryOnScopeDispose(dispose); + return state; + }; +} +function extendRef(ref2, extend, { enumerable = false, unwrap = true } = {}) { + if (!isVue3 && !version.startsWith("2.7.")) { + if (true) + throw new Error("[VueUse] extendRef only works in Vue 2.7 or above."); + return; + } + for (const [key, value] of Object.entries(extend)) { + if (key === "value") + continue; + if (isRef(value) && unwrap) { + Object.defineProperty(ref2, key, { + get() { + return value.value; + }, + set(v) { + value.value = v; + }, + enumerable + }); + } else { + Object.defineProperty(ref2, key, { value, enumerable }); + } + } + return ref2; +} +function get(obj, key) { + if (key == null) + return unref(obj); + return unref(obj)[key]; +} +function isDefined(v) { + return unref(v) != null; +} +function makeDestructurable(obj, arr) { + if (typeof Symbol !== "undefined") { + const clone = { ...obj }; + Object.defineProperty(clone, Symbol.iterator, { + enumerable: false, + value() { + let index = 0; + return { + next: () => ({ + value: arr[index++], + done: index > arr.length + }) + }; + } + }); + return clone; + } else { + return Object.assign([...arr], obj); + } +} +function toValue(r) { + return typeof r === "function" ? r() : unref(r); +} +var resolveUnref = toValue; +function reactify(fn, options) { + const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue; + return function(...args) { + return computed(() => fn.apply(this, args.map((i) => unrefFn(i)))); + }; +} +function reactifyObject(obj, optionsOrKeys = {}) { + let keys2 = []; + let options; + if (Array.isArray(optionsOrKeys)) { + keys2 = optionsOrKeys; + } else { + options = optionsOrKeys; + const { includeOwnProperties = true } = optionsOrKeys; + keys2.push(...Object.keys(obj)); + if (includeOwnProperties) + keys2.push(...Object.getOwnPropertyNames(obj)); + } + return Object.fromEntries( + keys2.map((key) => { + const value = obj[key]; + return [ + key, + typeof value === "function" ? reactify(value.bind(obj), options) : value + ]; + }) + ); +} +function toReactive(objectRef) { + if (!isRef(objectRef)) + return reactive(objectRef); + const proxy = new Proxy({}, { + get(_, p, receiver) { + return unref(Reflect.get(objectRef.value, p, receiver)); + }, + set(_, p, value) { + if (isRef(objectRef.value[p]) && !isRef(value)) + objectRef.value[p].value = value; + else + objectRef.value[p] = value; + return true; + }, + deleteProperty(_, p) { + return Reflect.deleteProperty(objectRef.value, p); + }, + has(_, p) { + return Reflect.has(objectRef.value, p); + }, + ownKeys() { + return Object.keys(objectRef.value); + }, + getOwnPropertyDescriptor() { + return { + enumerable: true, + configurable: true + }; + } + }); + return reactive(proxy); +} +function reactiveComputed(fn) { + return toReactive(computed(fn)); +} +function reactiveOmit(obj, ...keys2) { + const flatKeys = keys2.flat(); + const predicate = flatKeys[0]; + return reactiveComputed(() => typeof predicate === "function" ? Object.fromEntries(Object.entries(toRefs(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs(obj)).filter((e) => !flatKeys.includes(e[0])))); +} +var isClient = typeof window !== "undefined" && typeof document !== "undefined"; +var isWorker = typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope; +var isDef = (val) => typeof val !== "undefined"; +var notNullish = (val) => val != null; +var assert = (condition, ...infos) => { + if (!condition) + console.warn(...infos); +}; +var toString = Object.prototype.toString; +var isObject = (val) => toString.call(val) === "[object Object]"; +var now = () => Date.now(); +var timestamp = () => +Date.now(); +var clamp = (n, min, max) => Math.min(max, Math.max(min, n)); +var noop = () => { +}; +var rand = (min, max) => { + min = Math.ceil(min); + max = Math.floor(max); + return Math.floor(Math.random() * (max - min + 1)) + min; +}; +var hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key); +var isIOS = getIsIOS(); +function getIsIOS() { + var _a, _b; + return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent)); +} +function createFilterWrapper(filter, fn) { + function wrapper(...args) { + return new Promise((resolve, reject) => { + Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject); + }); + } + return wrapper; +} +var bypassFilter = (invoke2) => { + return invoke2(); +}; +function debounceFilter(ms, options = {}) { + let timer; + let maxTimer; + let lastRejector = noop; + const _clearTimeout = (timer2) => { + clearTimeout(timer2); + lastRejector(); + lastRejector = noop; + }; + const filter = (invoke2) => { + const duration = toValue(ms); + const maxDuration = toValue(options.maxWait); + if (timer) + _clearTimeout(timer); + if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) { + if (maxTimer) { + _clearTimeout(maxTimer); + maxTimer = null; + } + return Promise.resolve(invoke2()); + } + return new Promise((resolve, reject) => { + lastRejector = options.rejectOnCancel ? reject : resolve; + if (maxDuration && !maxTimer) { + maxTimer = setTimeout(() => { + if (timer) + _clearTimeout(timer); + maxTimer = null; + resolve(invoke2()); + }, maxDuration); + } + timer = setTimeout(() => { + if (maxTimer) + _clearTimeout(maxTimer); + maxTimer = null; + resolve(invoke2()); + }, duration); + }); + }; + return filter; +} +function throttleFilter(...args) { + let lastExec = 0; + let timer; + let isLeading = true; + let lastRejector = noop; + let lastValue; + let ms; + let trailing; + let leading; + let rejectOnCancel; + if (!isRef(args[0]) && typeof args[0] === "object") + ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]); + else + [ms, trailing = true, leading = true, rejectOnCancel = false] = args; + const clear = () => { + if (timer) { + clearTimeout(timer); + timer = void 0; + lastRejector(); + lastRejector = noop; + } + }; + const filter = (_invoke) => { + const duration = toValue(ms); + const elapsed = Date.now() - lastExec; + const invoke2 = () => { + return lastValue = _invoke(); + }; + clear(); + if (duration <= 0) { + lastExec = Date.now(); + return invoke2(); + } + if (elapsed > duration && (leading || !isLeading)) { + lastExec = Date.now(); + invoke2(); + } else if (trailing) { + lastValue = new Promise((resolve, reject) => { + lastRejector = rejectOnCancel ? reject : resolve; + timer = setTimeout(() => { + lastExec = Date.now(); + isLeading = true; + resolve(invoke2()); + clear(); + }, Math.max(0, duration - elapsed)); + }); + } + if (!leading && !timer) + timer = setTimeout(() => isLeading = true, duration); + isLeading = false; + return lastValue; + }; + return filter; +} +function pausableFilter(extendFilter = bypassFilter) { + const isActive = ref(true); + function pause() { + isActive.value = false; + } + function resume() { + isActive.value = true; + } + const eventFilter = (...args) => { + if (isActive.value) + extendFilter(...args); + }; + return { isActive: readonly(isActive), pause, resume, eventFilter }; +} +var directiveHooks = { + mounted: isVue3 ? "mounted" : "inserted", + updated: isVue3 ? "updated" : "componentUpdated", + unmounted: isVue3 ? "unmounted" : "unbind" +}; +function cacheStringFunction(fn) { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; +} +var hyphenateRE = /\B([A-Z])/g; +var hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase()); +var camelizeRE = /-(\w)/g; +var camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); +}); +function promiseTimeout(ms, throwOnTimeout = false, reason = "Timeout") { + return new Promise((resolve, reject) => { + if (throwOnTimeout) + setTimeout(() => reject(reason), ms); + else + setTimeout(resolve, ms); + }); +} +function identity(arg) { + return arg; +} +function createSingletonPromise(fn) { + let _promise; + function wrapper() { + if (!_promise) + _promise = fn(); + return _promise; + } + wrapper.reset = async () => { + const _prev = _promise; + _promise = void 0; + if (_prev) + await _prev; + }; + return wrapper; +} +function invoke(fn) { + return fn(); +} +function containsProp(obj, ...props) { + return props.some((k) => k in obj); +} +function increaseWithUnit(target, delta) { + var _a; + if (typeof target === "number") + return target + delta; + const value = ((_a = target.match(/^-?\d+\.?\d*/)) == null ? void 0 : _a[0]) || ""; + const unit = target.slice(value.length); + const result = Number.parseFloat(value) + delta; + if (Number.isNaN(result)) + return target; + return result + unit; +} +function objectPick(obj, keys2, omitUndefined = false) { + return keys2.reduce((n, k) => { + if (k in obj) { + if (!omitUndefined || obj[k] !== void 0) + n[k] = obj[k]; + } + return n; + }, {}); +} +function objectOmit(obj, keys2, omitUndefined = false) { + return Object.fromEntries(Object.entries(obj).filter(([key, value]) => { + return (!omitUndefined || value !== void 0) && !keys2.includes(key); + })); +} +function objectEntries(obj) { + return Object.entries(obj); +} +function getLifeCycleTarget(target) { + return target || getCurrentInstance(); +} +function toRef2(...args) { + if (args.length !== 1) + return toRef(...args); + const r = args[0]; + return typeof r === "function" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r); +} +var resolveRef = toRef2; +function reactivePick(obj, ...keys2) { + const flatKeys = keys2.flat(); + const predicate = flatKeys[0]; + return reactiveComputed(() => typeof predicate === "function" ? Object.fromEntries(Object.entries(toRefs(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef2(obj, k)]))); +} +function refAutoReset(defaultValue, afterMs = 1e4) { + return customRef((track, trigger) => { + let value = toValue(defaultValue); + let timer; + const resetAfter = () => setTimeout(() => { + value = toValue(defaultValue); + trigger(); + }, toValue(afterMs)); + tryOnScopeDispose(() => { + clearTimeout(timer); + }); + return { + get() { + track(); + return value; + }, + set(newValue) { + value = newValue; + trigger(); + clearTimeout(timer); + timer = resetAfter(); + } + }; + }); +} +function useDebounceFn(fn, ms = 200, options = {}) { + return createFilterWrapper( + debounceFilter(ms, options), + fn + ); +} +function refDebounced(value, ms = 200, options = {}) { + const debounced = ref(value.value); + const updater = useDebounceFn(() => { + debounced.value = value.value; + }, ms, options); + watch(value, () => updater()); + return debounced; +} +function refDefault(source, defaultValue) { + return computed({ + get() { + var _a; + return (_a = source.value) != null ? _a : defaultValue; + }, + set(value) { + source.value = value; + } + }); +} +function useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) { + return createFilterWrapper( + throttleFilter(ms, trailing, leading, rejectOnCancel), + fn + ); +} +function refThrottled(value, delay = 200, trailing = true, leading = true) { + if (delay <= 0) + return value; + const throttled = ref(value.value); + const updater = useThrottleFn(() => { + throttled.value = value.value; + }, delay, trailing, leading); + watch(value, () => updater()); + return throttled; +} +function refWithControl(initial, options = {}) { + let source = initial; + let track; + let trigger; + const ref2 = customRef((_track, _trigger) => { + track = _track; + trigger = _trigger; + return { + get() { + return get2(); + }, + set(v) { + set3(v); + } + }; + }); + function get2(tracking = true) { + if (tracking) + track(); + return source; + } + function set3(value, triggering = true) { + var _a, _b; + if (value === source) + return; + const old = source; + if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false) + return; + source = value; + (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old); + if (triggering) + trigger(); + } + const untrackedGet = () => get2(false); + const silentSet = (v) => set3(v, false); + const peek = () => get2(false); + const lay = (v) => set3(v, false); + return extendRef( + ref2, + { + get: get2, + set: set3, + untrackedGet, + silentSet, + peek, + lay + }, + { enumerable: true } + ); +} +var controlledRef = refWithControl; +function set2(...args) { + if (args.length === 2) { + const [ref2, value] = args; + ref2.value = value; + } + if (args.length === 3) { + if (isVue2) { + set(...args); + } else { + const [target, key, value] = args; + target[key] = value; + } + } +} +function watchWithFilter(source, cb, options = {}) { + const { + eventFilter = bypassFilter, + ...watchOptions + } = options; + return watch( + source, + createFilterWrapper( + eventFilter, + cb + ), + watchOptions + ); +} +function watchPausable(source, cb, options = {}) { + const { + eventFilter: filter, + ...watchOptions + } = options; + const { eventFilter, pause, resume, isActive } = pausableFilter(filter); + const stop = watchWithFilter( + source, + cb, + { + ...watchOptions, + eventFilter + } + ); + return { stop, pause, resume, isActive }; +} +function syncRef(left, right, ...[options]) { + const { + flush = "sync", + deep = false, + immediate = true, + direction = "both", + transform = {} + } = options || {}; + const watchers = []; + const transformLTR = "ltr" in transform && transform.ltr || ((v) => v); + const transformRTL = "rtl" in transform && transform.rtl || ((v) => v); + if (direction === "both" || direction === "ltr") { + watchers.push(watchPausable( + left, + (newValue) => { + watchers.forEach((w) => w.pause()); + right.value = transformLTR(newValue); + watchers.forEach((w) => w.resume()); + }, + { flush, deep, immediate } + )); + } + if (direction === "both" || direction === "rtl") { + watchers.push(watchPausable( + right, + (newValue) => { + watchers.forEach((w) => w.pause()); + left.value = transformRTL(newValue); + watchers.forEach((w) => w.resume()); + }, + { flush, deep, immediate } + )); + } + const stop = () => { + watchers.forEach((w) => w.stop()); + }; + return stop; +} +function syncRefs(source, targets, options = {}) { + const { + flush = "sync", + deep = false, + immediate = true + } = options; + if (!Array.isArray(targets)) + targets = [targets]; + return watch( + source, + (newValue) => targets.forEach((target) => target.value = newValue), + { flush, deep, immediate } + ); +} +function toRefs2(objectRef, options = {}) { + if (!isRef(objectRef)) + return toRefs(objectRef); + const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {}; + for (const key in objectRef.value) { + result[key] = customRef(() => ({ + get() { + return objectRef.value[key]; + }, + set(v) { + var _a; + const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true; + if (replaceRef) { + if (Array.isArray(objectRef.value)) { + const copy = [...objectRef.value]; + copy[key] = v; + objectRef.value = copy; + } else { + const newObject = { ...objectRef.value, [key]: v }; + Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value)); + objectRef.value = newObject; + } + } else { + objectRef.value[key] = v; + } + } + })); + } + return result; +} +function tryOnBeforeMount(fn, sync = true, target) { + const instance = getLifeCycleTarget(target); + if (instance) + onBeforeMount(fn, target); + else if (sync) + fn(); + else + nextTick(fn); +} +function tryOnBeforeUnmount(fn, target) { + const instance = getLifeCycleTarget(target); + if (instance) + onBeforeUnmount(fn, target); +} +function tryOnMounted(fn, sync = true, target) { + const instance = getLifeCycleTarget(); + if (instance) + onMounted(fn, target); + else if (sync) + fn(); + else + nextTick(fn); +} +function tryOnUnmounted(fn, target) { + const instance = getLifeCycleTarget(target); + if (instance) + onUnmounted(fn, target); +} +function createUntil(r, isNot = false) { + function toMatch(condition, { flush = "sync", deep = false, timeout, throwOnTimeout } = {}) { + let stop = null; + const watcher = new Promise((resolve) => { + stop = watch( + r, + (v) => { + if (condition(v) !== isNot) { + stop == null ? void 0 : stop(); + resolve(v); + } + }, + { + flush, + deep, + immediate: true + } + ); + }); + const promises = [watcher]; + if (timeout != null) { + promises.push( + promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop()) + ); + } + return Promise.race(promises); + } + function toBe(value, options) { + if (!isRef(value)) + return toMatch((v) => v === value, options); + const { flush = "sync", deep = false, timeout, throwOnTimeout } = options != null ? options : {}; + let stop = null; + const watcher = new Promise((resolve) => { + stop = watch( + [r, value], + ([v1, v2]) => { + if (isNot !== (v1 === v2)) { + stop == null ? void 0 : stop(); + resolve(v1); + } + }, + { + flush, + deep, + immediate: true + } + ); + }); + const promises = [watcher]; + if (timeout != null) { + promises.push( + promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => { + stop == null ? void 0 : stop(); + return toValue(r); + }) + ); + } + return Promise.race(promises); + } + function toBeTruthy(options) { + return toMatch((v) => Boolean(v), options); + } + function toBeNull(options) { + return toBe(null, options); + } + function toBeUndefined(options) { + return toBe(void 0, options); + } + function toBeNaN(options) { + return toMatch(Number.isNaN, options); + } + function toContains(value, options) { + return toMatch((v) => { + const array = Array.from(v); + return array.includes(value) || array.includes(toValue(value)); + }, options); + } + function changed(options) { + return changedTimes(1, options); + } + function changedTimes(n = 1, options) { + let count = -1; + return toMatch(() => { + count += 1; + return count >= n; + }, options); + } + if (Array.isArray(toValue(r))) { + const instance = { + toMatch, + toContains, + changed, + changedTimes, + get not() { + return createUntil(r, !isNot); + } + }; + return instance; + } else { + const instance = { + toMatch, + toBe, + toBeTruthy, + toBeNull, + toBeNaN, + toBeUndefined, + changed, + changedTimes, + get not() { + return createUntil(r, !isNot); + } + }; + return instance; + } +} +function until(r) { + return createUntil(r); +} +function defaultComparator(value, othVal) { + return value === othVal; +} +function useArrayDifference(...args) { + var _a; + const list = args[0]; + const values = args[1]; + let compareFn = (_a = args[2]) != null ? _a : defaultComparator; + if (typeof compareFn === "string") { + const key = compareFn; + compareFn = (value, othVal) => value[key] === othVal[key]; + } + return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1)); +} +function useArrayEvery(list, fn) { + return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array))); +} +function useArrayFilter(list, fn) { + return computed(() => toValue(list).map((i) => toValue(i)).filter(fn)); +} +function useArrayFind(list, fn) { + return computed(() => toValue( + toValue(list).find((element, index, array) => fn(toValue(element), index, array)) + )); +} +function useArrayFindIndex(list, fn) { + return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array))); +} +function findLast(arr, cb) { + let index = arr.length; + while (index-- > 0) { + if (cb(arr[index], index, arr)) + return arr[index]; + } + return void 0; +} +function useArrayFindLast(list, fn) { + return computed(() => toValue( + !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array)) + )); +} +function isArrayIncludesOptions(obj) { + return isObject(obj) && containsProp(obj, "formIndex", "comparator"); +} +function useArrayIncludes(...args) { + var _a; + const list = args[0]; + const value = args[1]; + let comparator = args[2]; + let formIndex = 0; + if (isArrayIncludesOptions(comparator)) { + formIndex = (_a = comparator.fromIndex) != null ? _a : 0; + comparator = comparator.comparator; + } + if (typeof comparator === "string") { + const key = comparator; + comparator = (element, value2) => element[key] === toValue(value2); + } + comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2); + return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator( + toValue(element), + toValue(value), + index, + toValue(array) + ))); +} +function useArrayJoin(list, separator) { + return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator))); +} +function useArrayMap(list, fn) { + return computed(() => toValue(list).map((i) => toValue(i)).map(fn)); +} +function useArrayReduce(list, reducer, ...args) { + const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index); + return computed(() => { + const resolved = toValue(list); + return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback); + }); +} +function useArraySome(list, fn) { + return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array))); +} +function uniq(array) { + return Array.from(new Set(array)); +} +function uniqueElementsBy(array, fn) { + return array.reduce((acc, v) => { + if (!acc.some((x) => fn(v, x, array))) + acc.push(v); + return acc; + }, []); +} +function useArrayUnique(list, compareFn) { + return computed(() => { + const resolvedList = toValue(list).map((element) => toValue(element)); + return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList); + }); +} +function useCounter(initialValue = 0, options = {}) { + let _initialValue = unref(initialValue); + const count = ref(initialValue); + const { + max = Number.POSITIVE_INFINITY, + min = Number.NEGATIVE_INFINITY + } = options; + const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min); + const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max); + const get2 = () => count.value; + const set3 = (val) => count.value = Math.max(min, Math.min(max, val)); + const reset = (val = _initialValue) => { + _initialValue = val; + return set3(val); + }; + return { count, inc, dec, get: get2, set: set3, reset }; +} +var REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[T\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/i; +var REGEX_FORMAT = /[YMDHhms]o|\[([^\]]+)\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g; +function defaultMeridiem(hours, minutes, isLowercase, hasPeriod) { + let m = hours < 12 ? "AM" : "PM"; + if (hasPeriod) + m = m.split("").reduce((acc, curr) => acc += `${curr}.`, ""); + return isLowercase ? m.toLowerCase() : m; +} +function formatOrdinal(num) { + const suffixes = ["th", "st", "nd", "rd"]; + const v = num % 100; + return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]); +} +function formatDate(date, formatStr, options = {}) { + var _a; + const years = date.getFullYear(); + const month = date.getMonth(); + const days = date.getDate(); + const hours = date.getHours(); + const minutes = date.getMinutes(); + const seconds = date.getSeconds(); + const milliseconds = date.getMilliseconds(); + const day = date.getDay(); + const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem; + const matches = { + Yo: () => formatOrdinal(years), + YY: () => String(years).slice(-2), + YYYY: () => years, + M: () => month + 1, + Mo: () => formatOrdinal(month + 1), + MM: () => `${month + 1}`.padStart(2, "0"), + MMM: () => date.toLocaleDateString(options.locales, { month: "short" }), + MMMM: () => date.toLocaleDateString(options.locales, { month: "long" }), + D: () => String(days), + Do: () => formatOrdinal(days), + DD: () => `${days}`.padStart(2, "0"), + H: () => String(hours), + Ho: () => formatOrdinal(hours), + HH: () => `${hours}`.padStart(2, "0"), + h: () => `${hours % 12 || 12}`.padStart(1, "0"), + ho: () => formatOrdinal(hours % 12 || 12), + hh: () => `${hours % 12 || 12}`.padStart(2, "0"), + m: () => String(minutes), + mo: () => formatOrdinal(minutes), + mm: () => `${minutes}`.padStart(2, "0"), + s: () => String(seconds), + so: () => formatOrdinal(seconds), + ss: () => `${seconds}`.padStart(2, "0"), + SSS: () => `${milliseconds}`.padStart(3, "0"), + d: () => day, + dd: () => date.toLocaleDateString(options.locales, { weekday: "narrow" }), + ddd: () => date.toLocaleDateString(options.locales, { weekday: "short" }), + dddd: () => date.toLocaleDateString(options.locales, { weekday: "long" }), + A: () => meridiem(hours, minutes), + AA: () => meridiem(hours, minutes, false, true), + a: () => meridiem(hours, minutes, true), + aa: () => meridiem(hours, minutes, true, true) + }; + return formatStr.replace(REGEX_FORMAT, (match, $1) => { + var _a2, _b; + return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match; + }); +} +function normalizeDate(date) { + if (date === null) + return new Date(Number.NaN); + if (date === void 0) + return /* @__PURE__ */ new Date(); + if (date instanceof Date) + return new Date(date); + if (typeof date === "string" && !/Z$/i.test(date)) { + const d = date.match(REGEX_PARSE); + if (d) { + const m = d[2] - 1 || 0; + const ms = (d[7] || "0").substring(0, 3); + return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms); + } + } + return new Date(date); +} +function useDateFormat(date, formatStr = "HH:mm:ss", options = {}) { + return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options)); +} +function useIntervalFn(cb, interval = 1e3, options = {}) { + const { + immediate = true, + immediateCallback = false + } = options; + let timer = null; + const isActive = ref(false); + function clean() { + if (timer) { + clearInterval(timer); + timer = null; + } + } + function pause() { + isActive.value = false; + clean(); + } + function resume() { + const intervalValue = toValue(interval); + if (intervalValue <= 0) + return; + isActive.value = true; + if (immediateCallback) + cb(); + clean(); + timer = setInterval(cb, intervalValue); + } + if (immediate && isClient) + resume(); + if (isRef(interval) || typeof interval === "function") { + const stopWatch = watch(interval, () => { + if (isActive.value && isClient) + resume(); + }); + tryOnScopeDispose(stopWatch); + } + tryOnScopeDispose(pause); + return { + isActive, + pause, + resume + }; +} +function useInterval(interval = 1e3, options = {}) { + const { + controls: exposeControls = false, + immediate = true, + callback + } = options; + const counter = ref(0); + const update = () => counter.value += 1; + const reset = () => { + counter.value = 0; + }; + const controls = useIntervalFn( + callback ? () => { + update(); + callback(counter.value); + } : update, + interval, + { immediate } + ); + if (exposeControls) { + return { + counter, + reset, + ...controls + }; + } else { + return counter; + } +} +function useLastChanged(source, options = {}) { + var _a; + const ms = ref((_a = options.initialValue) != null ? _a : null); + watch( + source, + () => ms.value = timestamp(), + options + ); + return ms; +} +function useTimeoutFn(cb, interval, options = {}) { + const { + immediate = true + } = options; + const isPending = ref(false); + let timer = null; + function clear() { + if (timer) { + clearTimeout(timer); + timer = null; + } + } + function stop() { + isPending.value = false; + clear(); + } + function start(...args) { + clear(); + isPending.value = true; + timer = setTimeout(() => { + isPending.value = false; + timer = null; + cb(...args); + }, toValue(interval)); + } + if (immediate) { + isPending.value = true; + if (isClient) + start(); + } + tryOnScopeDispose(stop); + return { + isPending: readonly(isPending), + start, + stop + }; +} +function useTimeout(interval = 1e3, options = {}) { + const { + controls: exposeControls = false, + callback + } = options; + const controls = useTimeoutFn( + callback != null ? callback : noop, + interval, + options + ); + const ready = computed(() => !controls.isPending.value); + if (exposeControls) { + return { + ready, + ...controls + }; + } else { + return ready; + } +} +function useToNumber(value, options = {}) { + const { + method = "parseFloat", + radix, + nanToZero + } = options; + return computed(() => { + let resolved = toValue(value); + if (typeof resolved === "string") + resolved = Number[method](resolved, radix); + if (nanToZero && Number.isNaN(resolved)) + resolved = 0; + return resolved; + }); +} +function useToString(value) { + return computed(() => `${toValue(value)}`); +} +function useToggle(initialValue = false, options = {}) { + const { + truthyValue = true, + falsyValue = false + } = options; + const valueIsRef = isRef(initialValue); + const _value = ref(initialValue); + function toggle(value) { + if (arguments.length) { + _value.value = value; + return _value.value; + } else { + const truthy = toValue(truthyValue); + _value.value = _value.value === truthy ? toValue(falsyValue) : truthy; + return _value.value; + } + } + if (valueIsRef) + return toggle; + else + return [_value, toggle]; +} +function watchArray(source, cb, options) { + let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)]; + return watch(source, (newList, _, onCleanup) => { + const oldListRemains = Array.from({ length: oldList.length }); + const added = []; + for (const obj of newList) { + let found = false; + for (let i = 0; i < oldList.length; i++) { + if (!oldListRemains[i] && obj === oldList[i]) { + oldListRemains[i] = true; + found = true; + break; + } + } + if (!found) + added.push(obj); + } + const removed = oldList.filter((_2, i) => !oldListRemains[i]); + cb(newList, oldList, added, removed, onCleanup); + oldList = [...newList]; + }, options); +} +function watchAtMost(source, cb, options) { + const { + count, + ...watchOptions + } = options; + const current = ref(0); + const stop = watchWithFilter( + source, + (...args) => { + current.value += 1; + if (current.value >= toValue(count)) + nextTick(() => stop()); + cb(...args); + }, + watchOptions + ); + return { count: current, stop }; +} +function watchDebounced(source, cb, options = {}) { + const { + debounce = 0, + maxWait = void 0, + ...watchOptions + } = options; + return watchWithFilter( + source, + cb, + { + ...watchOptions, + eventFilter: debounceFilter(debounce, { maxWait }) + } + ); +} +function watchDeep(source, cb, options) { + return watch( + source, + cb, + { + ...options, + deep: true + } + ); +} +function watchIgnorable(source, cb, options = {}) { + const { + eventFilter = bypassFilter, + ...watchOptions + } = options; + const filteredCb = createFilterWrapper( + eventFilter, + cb + ); + let ignoreUpdates; + let ignorePrevAsyncUpdates; + let stop; + if (watchOptions.flush === "sync") { + const ignore = ref(false); + ignorePrevAsyncUpdates = () => { + }; + ignoreUpdates = (updater) => { + ignore.value = true; + updater(); + ignore.value = false; + }; + stop = watch( + source, + (...args) => { + if (!ignore.value) + filteredCb(...args); + }, + watchOptions + ); + } else { + const disposables = []; + const ignoreCounter = ref(0); + const syncCounter = ref(0); + ignorePrevAsyncUpdates = () => { + ignoreCounter.value = syncCounter.value; + }; + disposables.push( + watch( + source, + () => { + syncCounter.value++; + }, + { ...watchOptions, flush: "sync" } + ) + ); + ignoreUpdates = (updater) => { + const syncCounterPrev = syncCounter.value; + updater(); + ignoreCounter.value += syncCounter.value - syncCounterPrev; + }; + disposables.push( + watch( + source, + (...args) => { + const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value; + ignoreCounter.value = 0; + syncCounter.value = 0; + if (ignore) + return; + filteredCb(...args); + }, + watchOptions + ) + ); + stop = () => { + disposables.forEach((fn) => fn()); + }; + } + return { stop, ignoreUpdates, ignorePrevAsyncUpdates }; +} +function watchImmediate(source, cb, options) { + return watch( + source, + cb, + { + ...options, + immediate: true + } + ); +} +function watchOnce(source, cb, options) { + const stop = watch(source, (...args) => { + nextTick(() => stop()); + return cb(...args); + }, options); + return stop; +} +function watchThrottled(source, cb, options = {}) { + const { + throttle = 0, + trailing = true, + leading = true, + ...watchOptions + } = options; + return watchWithFilter( + source, + cb, + { + ...watchOptions, + eventFilter: throttleFilter(throttle, trailing, leading) + } + ); +} +function watchTriggerable(source, cb, options = {}) { + let cleanupFn; + function onEffect() { + if (!cleanupFn) + return; + const fn = cleanupFn; + cleanupFn = void 0; + fn(); + } + function onCleanup(callback) { + cleanupFn = callback; + } + const _cb = (value, oldValue) => { + onEffect(); + return cb(value, oldValue, onCleanup); + }; + const res = watchIgnorable(source, _cb, options); + const { ignoreUpdates } = res; + const trigger = () => { + let res2; + ignoreUpdates(() => { + res2 = _cb(getWatchSources(source), getOldValue(source)); + }); + return res2; + }; + return { + ...res, + trigger + }; +} +function getWatchSources(sources) { + if (isReactive(sources)) + return sources; + if (Array.isArray(sources)) + return sources.map((item) => toValue(item)); + return toValue(sources); +} +function getOldValue(source) { + return Array.isArray(source) ? source.map(() => void 0) : void 0; +} +function whenever(source, cb, options) { + const stop = watch( + source, + (v, ov, onInvalidate) => { + if (v) { + if (options == null ? void 0 : options.once) + nextTick(() => stop()); + cb(v, ov, onInvalidate); + } + }, + { + ...options, + once: false + } + ); + return stop; +} + +// node_modules/@vueuse/core/index.mjs +function computedAsync(evaluationCallback, initialState, optionsOrRef) { + let options; + if (isRef(optionsOrRef)) { + options = { + evaluating: optionsOrRef + }; + } else { + options = optionsOrRef || {}; + } + const { + lazy = false, + evaluating = void 0, + shallow = true, + onError = noop + } = options; + const started = ref(!lazy); + const current = shallow ? shallowRef(initialState) : ref(initialState); + let counter = 0; + watchEffect(async (onInvalidate) => { + if (!started.value) + return; + counter++; + const counterAtBeginning = counter; + let hasFinished = false; + if (evaluating) { + Promise.resolve().then(() => { + evaluating.value = true; + }); + } + try { + const result = await evaluationCallback((cancelCallback) => { + onInvalidate(() => { + if (evaluating) + evaluating.value = false; + if (!hasFinished) + cancelCallback(); + }); + }); + if (counterAtBeginning === counter) + current.value = result; + } catch (e) { + onError(e); + } finally { + if (evaluating && counterAtBeginning === counter) + evaluating.value = false; + hasFinished = true; + } + }); + if (lazy) { + return computed(() => { + started.value = true; + return current.value; + }); + } else { + return current; + } +} +function computedInject(key, options, defaultSource, treatDefaultAsFactory) { + let source = inject(key); + if (defaultSource) + source = inject(key, defaultSource); + if (treatDefaultAsFactory) + source = inject(key, defaultSource, treatDefaultAsFactory); + if (typeof options === "function") { + return computed((ctx) => options(source, ctx)); + } else { + return computed({ + get: (ctx) => options.get(source, ctx), + set: options.set + }); + } +} +function createReusableTemplate(options = {}) { + if (!isVue3 && !version.startsWith("2.7.")) { + if (true) + throw new Error("[VueUse] createReusableTemplate only works in Vue 2.7 or above."); + return; + } + const { + inheritAttrs = true + } = options; + const render = shallowRef(); + const define = defineComponent({ + setup(_, { slots }) { + return () => { + render.value = slots.default; + }; + } + }); + const reuse = defineComponent({ + inheritAttrs, + setup(_, { attrs, slots }) { + return () => { + var _a; + if (!render.value && true) + throw new Error("[VueUse] Failed to find the definition of reusable template"); + const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots }); + return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode; + }; + } + }); + return makeDestructurable( + { define, reuse }, + [define, reuse] + ); +} +function keysToCamelKebabCase(obj) { + const newObj = {}; + for (const key in obj) + newObj[camelize(key)] = obj[key]; + return newObj; +} +function createTemplatePromise(options = {}) { + if (!isVue3) { + if (true) + throw new Error("[VueUse] createTemplatePromise only works in Vue 3 or above."); + return; + } + let index = 0; + const instances = ref([]); + function create(...args) { + const props = shallowReactive({ + key: index++, + args, + promise: void 0, + resolve: () => { + }, + reject: () => { + }, + isResolving: false, + options + }); + instances.value.push(props); + props.promise = new Promise((_resolve, _reject) => { + props.resolve = (v) => { + props.isResolving = true; + return _resolve(v); + }; + props.reject = _reject; + }).finally(() => { + props.promise = void 0; + const index2 = instances.value.indexOf(props); + if (index2 !== -1) + instances.value.splice(index2, 1); + }); + return props.promise; + } + function start(...args) { + if (options.singleton && instances.value.length > 0) + return instances.value[0].promise; + return create(...args); + } + const component = defineComponent((_, { slots }) => { + const renderList = () => instances.value.map((props) => { + var _a; + return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props)); + }); + if (options.transition) + return () => h(TransitionGroup, options.transition, renderList); + return renderList; + }); + component.start = start; + return component; +} +function createUnrefFn(fn) { + return function(...args) { + return fn.apply(this, args.map((i) => toValue(i))); + }; +} +function unrefElement(elRef) { + var _a; + const plain = toValue(elRef); + return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain; +} +var defaultWindow = isClient ? window : void 0; +var defaultDocument = isClient ? window.document : void 0; +var defaultNavigator = isClient ? window.navigator : void 0; +var defaultLocation = isClient ? window.location : void 0; +function useEventListener(...args) { + let target; + let events2; + let listeners; + let options; + if (typeof args[0] === "string" || Array.isArray(args[0])) { + [events2, listeners, options] = args; + target = defaultWindow; + } else { + [target, events2, listeners, options] = args; + } + if (!target) + return noop; + if (!Array.isArray(events2)) + events2 = [events2]; + if (!Array.isArray(listeners)) + listeners = [listeners]; + const cleanups = []; + const cleanup = () => { + cleanups.forEach((fn) => fn()); + cleanups.length = 0; + }; + const register = (el, event, listener, options2) => { + el.addEventListener(event, listener, options2); + return () => el.removeEventListener(event, listener, options2); + }; + const stopWatch = watch( + () => [unrefElement(target), toValue(options)], + ([el, options2]) => { + cleanup(); + if (!el) + return; + const optionsClone = isObject(options2) ? { ...options2 } : options2; + cleanups.push( + ...events2.flatMap((event) => { + return listeners.map((listener) => register(el, event, listener, optionsClone)); + }) + ); + }, + { immediate: true, flush: "post" } + ); + const stop = () => { + stopWatch(); + cleanup(); + }; + tryOnScopeDispose(stop); + return stop; +} +var _iOSWorkaround = false; +function onClickOutside(target, handler, options = {}) { + const { window: window2 = defaultWindow, ignore = [], capture = true, detectIframe = false } = options; + if (!window2) + return noop; + if (isIOS && !_iOSWorkaround) { + _iOSWorkaround = true; + Array.from(window2.document.body.children).forEach((el) => el.addEventListener("click", noop)); + window2.document.documentElement.addEventListener("click", noop); + } + let shouldListen = true; + const shouldIgnore = (event) => { + return ignore.some((target2) => { + if (typeof target2 === "string") { + return Array.from(window2.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el)); + } else { + const el = unrefElement(target2); + return el && (event.target === el || event.composedPath().includes(el)); + } + }); + }; + const listener = (event) => { + const el = unrefElement(target); + if (!el || el === event.target || event.composedPath().includes(el)) + return; + if (event.detail === 0) + shouldListen = !shouldIgnore(event); + if (!shouldListen) { + shouldListen = true; + return; + } + handler(event); + }; + const cleanup = [ + useEventListener(window2, "click", listener, { passive: true, capture }), + useEventListener(window2, "pointerdown", (e) => { + const el = unrefElement(target); + shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el)); + }, { passive: true }), + detectIframe && useEventListener(window2, "blur", (event) => { + setTimeout(() => { + var _a; + const el = unrefElement(target); + if (((_a = window2.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window2.document.activeElement))) { + handler(event); + } + }, 0); + }) + ].filter(Boolean); + const stop = () => cleanup.forEach((fn) => fn()); + return stop; +} +function createKeyPredicate(keyFilter) { + if (typeof keyFilter === "function") + return keyFilter; + else if (typeof keyFilter === "string") + return (event) => event.key === keyFilter; + else if (Array.isArray(keyFilter)) + return (event) => keyFilter.includes(event.key); + return () => true; +} +function onKeyStroke(...args) { + let key; + let handler; + let options = {}; + if (args.length === 3) { + key = args[0]; + handler = args[1]; + options = args[2]; + } else if (args.length === 2) { + if (typeof args[1] === "object") { + key = true; + handler = args[0]; + options = args[1]; + } else { + key = args[0]; + handler = args[1]; + } + } else { + key = true; + handler = args[0]; + } + const { + target = defaultWindow, + eventName = "keydown", + passive = false, + dedupe = false + } = options; + const predicate = createKeyPredicate(key); + const listener = (e) => { + if (e.repeat && toValue(dedupe)) + return; + if (predicate(e)) + handler(e); + }; + return useEventListener(target, eventName, listener, passive); +} +function onKeyDown(key, handler, options = {}) { + return onKeyStroke(key, handler, { ...options, eventName: "keydown" }); +} +function onKeyPressed(key, handler, options = {}) { + return onKeyStroke(key, handler, { ...options, eventName: "keypress" }); +} +function onKeyUp(key, handler, options = {}) { + return onKeyStroke(key, handler, { ...options, eventName: "keyup" }); +} +var DEFAULT_DELAY = 500; +var DEFAULT_THRESHOLD = 10; +function onLongPress(target, handler, options) { + var _a, _b; + const elementRef = computed(() => unrefElement(target)); + let timeout; + let posStart; + let startTimestamp; + let hasLongPressed = false; + function clear() { + if (timeout) { + clearTimeout(timeout); + timeout = void 0; + } + posStart = void 0; + startTimestamp = void 0; + hasLongPressed = false; + } + function onRelease(ev) { + var _a2, _b2, _c; + const [_startTimestamp, _posStart, _hasLongPressed] = [startTimestamp, posStart, hasLongPressed]; + clear(); + if (!(options == null ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp) + return; + if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value) + return; + if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent) + ev.preventDefault(); + if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop) + ev.stopPropagation(); + const dx = ev.x - _posStart.x; + const dy = ev.y - _posStart.y; + const distance = Math.sqrt(dx * dx + dy * dy); + options.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed); + } + function onDown(ev) { + var _a2, _b2, _c, _d; + if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value) + return; + clear(); + if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent) + ev.preventDefault(); + if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop) + ev.stopPropagation(); + posStart = { + x: ev.x, + y: ev.y + }; + startTimestamp = ev.timeStamp; + timeout = setTimeout( + () => { + hasLongPressed = true; + handler(ev); + }, + (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY + ); + } + function onMove(ev) { + var _a2, _b2, _c, _d; + if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value) + return; + if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false) + return; + if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent) + ev.preventDefault(); + if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop) + ev.stopPropagation(); + const dx = ev.x - posStart.x; + const dy = ev.y - posStart.y; + const distance = Math.sqrt(dx * dx + dy * dy); + if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD)) + clear(); + } + const listenerOptions = { + capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture, + once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once + }; + const cleanup = [ + useEventListener(elementRef, "pointerdown", onDown, listenerOptions), + useEventListener(elementRef, "pointermove", onMove, listenerOptions), + useEventListener(elementRef, ["pointerup", "pointerleave"], onRelease, listenerOptions) + ]; + const stop = () => cleanup.forEach((fn) => fn()); + return stop; +} +function isFocusedElementEditable() { + const { activeElement, body } = document; + if (!activeElement) + return false; + if (activeElement === body) + return false; + switch (activeElement.tagName) { + case "INPUT": + case "TEXTAREA": + return true; + } + return activeElement.hasAttribute("contenteditable"); +} +function isTypedCharValid({ + keyCode, + metaKey, + ctrlKey, + altKey +}) { + if (metaKey || ctrlKey || altKey) + return false; + if (keyCode >= 48 && keyCode <= 57) + return true; + if (keyCode >= 65 && keyCode <= 90) + return true; + if (keyCode >= 97 && keyCode <= 122) + return true; + return false; +} +function onStartTyping(callback, options = {}) { + const { document: document2 = defaultDocument } = options; + const keydown = (event) => { + !isFocusedElementEditable() && isTypedCharValid(event) && callback(event); + }; + if (document2) + useEventListener(document2, "keydown", keydown, { passive: true }); +} +function templateRef(key, initialValue = null) { + const instance = getCurrentInstance(); + let _trigger = () => { + }; + const element = customRef((track, trigger) => { + _trigger = trigger; + return { + get() { + var _a, _b; + track(); + return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue; + }, + set() { + } + }; + }); + tryOnMounted(_trigger); + onUpdated(_trigger); + return element; +} +function useMounted() { + const isMounted = ref(false); + const instance = getCurrentInstance(); + if (instance) { + onMounted(() => { + isMounted.value = true; + }, isVue2 ? void 0 : instance); + } + return isMounted; +} +function useSupported(callback) { + const isMounted = useMounted(); + return computed(() => { + isMounted.value; + return Boolean(callback()); + }); +} +function useMutationObserver(target, callback, options = {}) { + const { window: window2 = defaultWindow, ...mutationOptions } = options; + let observer; + const isSupported = useSupported(() => window2 && "MutationObserver" in window2); + const cleanup = () => { + if (observer) { + observer.disconnect(); + observer = void 0; + } + }; + const targets = computed(() => { + const value = toValue(target); + const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish); + return new Set(items); + }); + const stopWatch = watch( + () => targets.value, + (targets2) => { + cleanup(); + if (isSupported.value && targets2.size) { + observer = new MutationObserver(callback); + targets2.forEach((el) => observer.observe(el, mutationOptions)); + } + }, + { immediate: true, flush: "post" } + ); + const takeRecords = () => { + return observer == null ? void 0 : observer.takeRecords(); + }; + const stop = () => { + cleanup(); + stopWatch(); + }; + tryOnScopeDispose(stop); + return { + isSupported, + stop, + takeRecords + }; +} +function useActiveElement(options = {}) { + var _a; + const { + window: window2 = defaultWindow, + deep = true, + triggerOnRemoval = false + } = options; + const document2 = (_a = options.document) != null ? _a : window2 == null ? void 0 : window2.document; + const getDeepActiveElement = () => { + var _a2; + let element = document2 == null ? void 0 : document2.activeElement; + if (deep) { + while (element == null ? void 0 : element.shadowRoot) + element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement; + } + return element; + }; + const activeElement = ref(); + const trigger = () => { + activeElement.value = getDeepActiveElement(); + }; + if (window2) { + useEventListener(window2, "blur", (event) => { + if (event.relatedTarget !== null) + return; + trigger(); + }, true); + useEventListener(window2, "focus", trigger, true); + } + if (triggerOnRemoval) { + useMutationObserver(document2, (mutations) => { + mutations.filter((m) => m.removedNodes.length).map((n) => Array.from(n.removedNodes)).flat().forEach((node) => { + if (node === activeElement.value) + trigger(); + }); + }, { + childList: true, + subtree: true + }); + } + trigger(); + return activeElement; +} +function useRafFn(fn, options = {}) { + const { + immediate = true, + fpsLimit = void 0, + window: window2 = defaultWindow + } = options; + const isActive = ref(false); + const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null; + let previousFrameTimestamp = 0; + let rafId = null; + function loop(timestamp2) { + if (!isActive.value || !window2) + return; + if (!previousFrameTimestamp) + previousFrameTimestamp = timestamp2; + const delta = timestamp2 - previousFrameTimestamp; + if (intervalLimit && delta < intervalLimit) { + rafId = window2.requestAnimationFrame(loop); + return; + } + previousFrameTimestamp = timestamp2; + fn({ delta, timestamp: timestamp2 }); + rafId = window2.requestAnimationFrame(loop); + } + function resume() { + if (!isActive.value && window2) { + isActive.value = true; + previousFrameTimestamp = 0; + rafId = window2.requestAnimationFrame(loop); + } + } + function pause() { + isActive.value = false; + if (rafId != null && window2) { + window2.cancelAnimationFrame(rafId); + rafId = null; + } + } + if (immediate) + resume(); + tryOnScopeDispose(pause); + return { + isActive: readonly(isActive), + pause, + resume + }; +} +function useAnimate(target, keyframes, options) { + let config; + let animateOptions; + if (isObject(options)) { + config = options; + animateOptions = objectOmit(options, ["window", "immediate", "commitStyles", "persist", "onReady", "onError"]); + } else { + config = { duration: options }; + animateOptions = options; + } + const { + window: window2 = defaultWindow, + immediate = true, + commitStyles, + persist, + playbackRate: _playbackRate = 1, + onReady, + onError = (e) => { + console.error(e); + } + } = config; + const isSupported = useSupported(() => window2 && HTMLElement && "animate" in HTMLElement.prototype); + const animate = shallowRef(void 0); + const store = shallowReactive({ + startTime: null, + currentTime: null, + timeline: null, + playbackRate: _playbackRate, + pending: false, + playState: immediate ? "idle" : "paused", + replaceState: "active" + }); + const pending = computed(() => store.pending); + const playState = computed(() => store.playState); + const replaceState = computed(() => store.replaceState); + const startTime = computed({ + get() { + return store.startTime; + }, + set(value) { + store.startTime = value; + if (animate.value) + animate.value.startTime = value; + } + }); + const currentTime = computed({ + get() { + return store.currentTime; + }, + set(value) { + store.currentTime = value; + if (animate.value) { + animate.value.currentTime = value; + syncResume(); + } + } + }); + const timeline = computed({ + get() { + return store.timeline; + }, + set(value) { + store.timeline = value; + if (animate.value) + animate.value.timeline = value; + } + }); + const playbackRate = computed({ + get() { + return store.playbackRate; + }, + set(value) { + store.playbackRate = value; + if (animate.value) + animate.value.playbackRate = value; + } + }); + const play = () => { + if (animate.value) { + try { + animate.value.play(); + syncResume(); + } catch (e) { + syncPause(); + onError(e); + } + } else { + update(); + } + }; + const pause = () => { + var _a; + try { + (_a = animate.value) == null ? void 0 : _a.pause(); + syncPause(); + } catch (e) { + onError(e); + } + }; + const reverse = () => { + var _a; + !animate.value && update(); + try { + (_a = animate.value) == null ? void 0 : _a.reverse(); + syncResume(); + } catch (e) { + syncPause(); + onError(e); + } + }; + const finish = () => { + var _a; + try { + (_a = animate.value) == null ? void 0 : _a.finish(); + syncPause(); + } catch (e) { + onError(e); + } + }; + const cancel = () => { + var _a; + try { + (_a = animate.value) == null ? void 0 : _a.cancel(); + syncPause(); + } catch (e) { + onError(e); + } + }; + watch(() => unrefElement(target), (el) => { + el && update(); + }); + watch(() => keyframes, (value) => { + !animate.value && update(); + if (!unrefElement(target) && animate.value) { + animate.value.effect = new KeyframeEffect( + unrefElement(target), + toValue(value), + animateOptions + ); + } + }, { deep: true }); + tryOnMounted(() => { + nextTick(() => update(true)); + }); + tryOnScopeDispose(cancel); + function update(init) { + const el = unrefElement(target); + if (!isSupported.value || !el) + return; + if (!animate.value) + animate.value = el.animate(toValue(keyframes), animateOptions); + if (persist) + animate.value.persist(); + if (_playbackRate !== 1) + animate.value.playbackRate = _playbackRate; + if (init && !immediate) + animate.value.pause(); + else + syncResume(); + onReady == null ? void 0 : onReady(animate.value); + } + useEventListener(animate, ["cancel", "finish", "remove"], syncPause); + useEventListener(animate, "finish", () => { + var _a; + if (commitStyles) + (_a = animate.value) == null ? void 0 : _a.commitStyles(); + }); + const { resume: resumeRef, pause: pauseRef } = useRafFn(() => { + if (!animate.value) + return; + store.pending = animate.value.pending; + store.playState = animate.value.playState; + store.replaceState = animate.value.replaceState; + store.startTime = animate.value.startTime; + store.currentTime = animate.value.currentTime; + store.timeline = animate.value.timeline; + store.playbackRate = animate.value.playbackRate; + }, { immediate: false }); + function syncResume() { + if (isSupported.value) + resumeRef(); + } + function syncPause() { + if (isSupported.value && window2) + window2.requestAnimationFrame(pauseRef); + } + return { + isSupported, + animate, + // actions + play, + pause, + reverse, + finish, + cancel, + // state + pending, + playState, + replaceState, + startTime, + currentTime, + timeline, + playbackRate + }; +} +function useAsyncQueue(tasks, options) { + const { + interrupt = true, + onError = noop, + onFinished = noop, + signal + } = options || {}; + const promiseState = { + aborted: "aborted", + fulfilled: "fulfilled", + pending: "pending", + rejected: "rejected" + }; + const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null })); + const result = reactive(initialResult); + const activeIndex = ref(-1); + if (!tasks || tasks.length === 0) { + onFinished(); + return { + activeIndex, + result + }; + } + function updateResult(state, res) { + activeIndex.value++; + result[activeIndex.value].data = res; + result[activeIndex.value].state = state; + } + tasks.reduce((prev, curr) => { + return prev.then((prevRes) => { + var _a; + if (signal == null ? void 0 : signal.aborted) { + updateResult(promiseState.aborted, new Error("aborted")); + return; + } + if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) { + onFinished(); + return; + } + const done = curr(prevRes).then((currentRes) => { + updateResult(promiseState.fulfilled, currentRes); + activeIndex.value === tasks.length - 1 && onFinished(); + return currentRes; + }); + if (!signal) + return done; + return Promise.race([done, whenAborted(signal)]); + }).catch((e) => { + if (signal == null ? void 0 : signal.aborted) { + updateResult(promiseState.aborted, e); + return e; + } + updateResult(promiseState.rejected, e); + onError(); + return e; + }); + }, Promise.resolve()); + return { + activeIndex, + result + }; +} +function whenAborted(signal) { + return new Promise((resolve, reject) => { + const error = new Error("aborted"); + if (signal.aborted) + reject(error); + else + signal.addEventListener("abort", () => reject(error), { once: true }); + }); +} +function useAsyncState(promise, initialState, options) { + const { + immediate = true, + delay = 0, + onError = noop, + onSuccess = noop, + resetOnExecute = true, + shallow = true, + throwError + } = options != null ? options : {}; + const state = shallow ? shallowRef(initialState) : ref(initialState); + const isReady = ref(false); + const isLoading = ref(false); + const error = shallowRef(void 0); + async function execute(delay2 = 0, ...args) { + if (resetOnExecute) + state.value = initialState; + error.value = void 0; + isReady.value = false; + isLoading.value = true; + if (delay2 > 0) + await promiseTimeout(delay2); + const _promise = typeof promise === "function" ? promise(...args) : promise; + try { + const data = await _promise; + state.value = data; + isReady.value = true; + onSuccess(data); + } catch (e) { + error.value = e; + onError(e); + if (throwError) + throw e; + } finally { + isLoading.value = false; + } + return state.value; + } + if (immediate) + execute(delay); + const shell = { + state, + isReady, + isLoading, + error, + execute + }; + function waitUntilIsLoaded() { + return new Promise((resolve, reject) => { + until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject); + }); + } + return { + ...shell, + then(onFulfilled, onRejected) { + return waitUntilIsLoaded().then(onFulfilled, onRejected); + } + }; +} +var defaults = { + array: (v) => JSON.stringify(v), + object: (v) => JSON.stringify(v), + set: (v) => JSON.stringify(Array.from(v)), + map: (v) => JSON.stringify(Object.fromEntries(v)), + null: () => "" +}; +function getDefaultSerialization(target) { + if (!target) + return defaults.null; + if (target instanceof Map) + return defaults.map; + else if (target instanceof Set) + return defaults.set; + else if (Array.isArray(target)) + return defaults.array; + else + return defaults.object; +} +function useBase64(target, options) { + const base64 = ref(""); + const promise = ref(); + function execute() { + if (!isClient) + return; + promise.value = new Promise((resolve, reject) => { + try { + const _target = toValue(target); + if (_target == null) { + resolve(""); + } else if (typeof _target === "string") { + resolve(blobToBase64(new Blob([_target], { type: "text/plain" }))); + } else if (_target instanceof Blob) { + resolve(blobToBase64(_target)); + } else if (_target instanceof ArrayBuffer) { + resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target)))); + } else if (_target instanceof HTMLCanvasElement) { + resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality)); + } else if (_target instanceof HTMLImageElement) { + const img = _target.cloneNode(false); + img.crossOrigin = "Anonymous"; + imgLoaded(img).then(() => { + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d"); + canvas.width = img.width; + canvas.height = img.height; + ctx.drawImage(img, 0, 0, canvas.width, canvas.height); + resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality)); + }).catch(reject); + } else if (typeof _target === "object") { + const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target); + const serialized = _serializeFn(_target); + return resolve(blobToBase64(new Blob([serialized], { type: "application/json" }))); + } else { + reject(new Error("target is unsupported types")); + } + } catch (error) { + reject(error); + } + }); + promise.value.then((res) => base64.value = res); + return promise.value; + } + if (isRef(target) || typeof target === "function") + watch(target, execute, { immediate: true }); + else + execute(); + return { + base64, + promise, + execute + }; +} +function imgLoaded(img) { + return new Promise((resolve, reject) => { + if (!img.complete) { + img.onload = () => { + resolve(); + }; + img.onerror = reject; + } else { + resolve(); + } + }); +} +function blobToBase64(blob) { + return new Promise((resolve, reject) => { + const fr = new FileReader(); + fr.onload = (e) => { + resolve(e.target.result); + }; + fr.onerror = reject; + fr.readAsDataURL(blob); + }); +} +function useBattery(options = {}) { + const { navigator = defaultNavigator } = options; + const events2 = ["chargingchange", "chargingtimechange", "dischargingtimechange", "levelchange"]; + const isSupported = useSupported(() => navigator && "getBattery" in navigator && typeof navigator.getBattery === "function"); + const charging = ref(false); + const chargingTime = ref(0); + const dischargingTime = ref(0); + const level = ref(1); + let battery; + function updateBatteryInfo() { + charging.value = this.charging; + chargingTime.value = this.chargingTime || 0; + dischargingTime.value = this.dischargingTime || 0; + level.value = this.level; + } + if (isSupported.value) { + navigator.getBattery().then((_battery) => { + battery = _battery; + updateBatteryInfo.call(battery); + useEventListener(battery, events2, updateBatteryInfo, { passive: true }); + }); + } + return { + isSupported, + charging, + chargingTime, + dischargingTime, + level + }; +} +function useBluetooth(options) { + let { + acceptAllDevices = false + } = options || {}; + const { + filters = void 0, + optionalServices = void 0, + navigator = defaultNavigator + } = options || {}; + const isSupported = useSupported(() => navigator && "bluetooth" in navigator); + const device = shallowRef(void 0); + const error = shallowRef(null); + watch(device, () => { + connectToBluetoothGATTServer(); + }); + async function requestDevice() { + if (!isSupported.value) + return; + error.value = null; + if (filters && filters.length > 0) + acceptAllDevices = false; + try { + device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({ + acceptAllDevices, + filters, + optionalServices + })); + } catch (err) { + error.value = err; + } + } + const server = ref(); + const isConnected = computed(() => { + var _a; + return ((_a = server.value) == null ? void 0 : _a.connected) || false; + }); + async function connectToBluetoothGATTServer() { + error.value = null; + if (device.value && device.value.gatt) { + device.value.addEventListener("gattserverdisconnected", () => { + }); + try { + server.value = await device.value.gatt.connect(); + } catch (err) { + error.value = err; + } + } + } + tryOnMounted(() => { + var _a; + if (device.value) + (_a = device.value.gatt) == null ? void 0 : _a.connect(); + }); + tryOnScopeDispose(() => { + var _a; + if (device.value) + (_a = device.value.gatt) == null ? void 0 : _a.disconnect(); + }); + return { + isSupported, + isConnected, + // Device: + device, + requestDevice, + // Server: + server, + // Errors: + error + }; +} +function useMediaQuery(query, options = {}) { + const { window: window2 = defaultWindow } = options; + const isSupported = useSupported(() => window2 && "matchMedia" in window2 && typeof window2.matchMedia === "function"); + let mediaQuery; + const matches = ref(false); + const handler = (event) => { + matches.value = event.matches; + }; + const cleanup = () => { + if (!mediaQuery) + return; + if ("removeEventListener" in mediaQuery) + mediaQuery.removeEventListener("change", handler); + else + mediaQuery.removeListener(handler); + }; + const stopWatch = watchEffect(() => { + if (!isSupported.value) + return; + cleanup(); + mediaQuery = window2.matchMedia(toValue(query)); + if ("addEventListener" in mediaQuery) + mediaQuery.addEventListener("change", handler); + else + mediaQuery.addListener(handler); + matches.value = mediaQuery.matches; + }); + tryOnScopeDispose(() => { + stopWatch(); + cleanup(); + mediaQuery = void 0; + }); + return matches; +} +var breakpointsTailwind = { + "sm": 640, + "md": 768, + "lg": 1024, + "xl": 1280, + "2xl": 1536 +}; +var breakpointsBootstrapV5 = { + xs: 0, + sm: 576, + md: 768, + lg: 992, + xl: 1200, + xxl: 1400 +}; +var breakpointsVuetifyV2 = { + xs: 0, + sm: 600, + md: 960, + lg: 1264, + xl: 1904 +}; +var breakpointsVuetifyV3 = { + xs: 0, + sm: 600, + md: 960, + lg: 1280, + xl: 1920, + xxl: 2560 +}; +var breakpointsVuetify = breakpointsVuetifyV2; +var breakpointsAntDesign = { + xs: 480, + sm: 576, + md: 768, + lg: 992, + xl: 1200, + xxl: 1600 +}; +var breakpointsQuasar = { + xs: 0, + sm: 600, + md: 1024, + lg: 1440, + xl: 1920 +}; +var breakpointsSematic = { + mobileS: 320, + mobileM: 375, + mobileL: 425, + tablet: 768, + laptop: 1024, + laptopL: 1440, + desktop4K: 2560 +}; +var breakpointsMasterCss = { + "3xs": 360, + "2xs": 480, + "xs": 600, + "sm": 768, + "md": 1024, + "lg": 1280, + "xl": 1440, + "2xl": 1600, + "3xl": 1920, + "4xl": 2560 +}; +var breakpointsPrimeFlex = { + sm: 576, + md: 768, + lg: 992, + xl: 1200 +}; +function useBreakpoints(breakpoints, options = {}) { + function getValue2(k, delta) { + let v = toValue(breakpoints[toValue(k)]); + if (delta != null) + v = increaseWithUnit(v, delta); + if (typeof v === "number") + v = `${v}px`; + return v; + } + const { window: window2 = defaultWindow, strategy = "min-width" } = options; + function match(query) { + if (!window2) + return false; + return window2.matchMedia(query).matches; + } + const greaterOrEqual = (k) => { + return useMediaQuery(() => `(min-width: ${getValue2(k)})`, options); + }; + const smallerOrEqual = (k) => { + return useMediaQuery(() => `(max-width: ${getValue2(k)})`, options); + }; + const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => { + Object.defineProperty(shortcuts, k, { + get: () => strategy === "min-width" ? greaterOrEqual(k) : smallerOrEqual(k), + enumerable: true, + configurable: true + }); + return shortcuts; + }, {}); + function current() { + const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]); + return computed(() => points.filter(([, v]) => v.value).map(([k]) => k)); + } + return Object.assign(shortcutMethods, { + greaterOrEqual, + smallerOrEqual, + greater(k) { + return useMediaQuery(() => `(min-width: ${getValue2(k, 0.1)})`, options); + }, + smaller(k) { + return useMediaQuery(() => `(max-width: ${getValue2(k, -0.1)})`, options); + }, + between(a, b) { + return useMediaQuery(() => `(min-width: ${getValue2(a)}) and (max-width: ${getValue2(b, -0.1)})`, options); + }, + isGreater(k) { + return match(`(min-width: ${getValue2(k, 0.1)})`); + }, + isGreaterOrEqual(k) { + return match(`(min-width: ${getValue2(k)})`); + }, + isSmaller(k) { + return match(`(max-width: ${getValue2(k, -0.1)})`); + }, + isSmallerOrEqual(k) { + return match(`(max-width: ${getValue2(k)})`); + }, + isInBetween(a, b) { + return match(`(min-width: ${getValue2(a)}) and (max-width: ${getValue2(b, -0.1)})`); + }, + current, + active() { + const bps = current(); + return computed(() => bps.value.length === 0 ? "" : bps.value.at(-1)); + } + }); +} +function useBroadcastChannel(options) { + const { + name, + window: window2 = defaultWindow + } = options; + const isSupported = useSupported(() => window2 && "BroadcastChannel" in window2); + const isClosed = ref(false); + const channel = ref(); + const data = ref(); + const error = shallowRef(null); + const post = (data2) => { + if (channel.value) + channel.value.postMessage(data2); + }; + const close = () => { + if (channel.value) + channel.value.close(); + isClosed.value = true; + }; + if (isSupported.value) { + tryOnMounted(() => { + error.value = null; + channel.value = new BroadcastChannel(name); + channel.value.addEventListener("message", (e) => { + data.value = e.data; + }, { passive: true }); + channel.value.addEventListener("messageerror", (e) => { + error.value = e; + }, { passive: true }); + channel.value.addEventListener("close", () => { + isClosed.value = true; + }); + }); + } + tryOnScopeDispose(() => { + close(); + }); + return { + isSupported, + channel, + data, + post, + close, + error, + isClosed + }; +} +var WRITABLE_PROPERTIES = [ + "hash", + "host", + "hostname", + "href", + "pathname", + "port", + "protocol", + "search" +]; +function useBrowserLocation(options = {}) { + const { window: window2 = defaultWindow } = options; + const refs = Object.fromEntries( + WRITABLE_PROPERTIES.map((key) => [key, ref()]) + ); + for (const [key, ref2] of objectEntries(refs)) { + watch(ref2, (value) => { + if (!(window2 == null ? void 0 : window2.location) || window2.location[key] === value) + return; + window2.location[key] = value; + }); + } + const buildState = (trigger) => { + var _a; + const { state: state2, length } = (window2 == null ? void 0 : window2.history) || {}; + const { origin } = (window2 == null ? void 0 : window2.location) || {}; + for (const key of WRITABLE_PROPERTIES) + refs[key].value = (_a = window2 == null ? void 0 : window2.location) == null ? void 0 : _a[key]; + return reactive({ + trigger, + state: state2, + length, + origin, + ...refs + }); + }; + const state = ref(buildState("load")); + if (window2) { + useEventListener(window2, "popstate", () => state.value = buildState("popstate"), { passive: true }); + useEventListener(window2, "hashchange", () => state.value = buildState("hashchange"), { passive: true }); + } + return state; +} +function useCached(refValue, comparator = (a, b) => a === b, watchOptions) { + const cachedValue = ref(refValue.value); + watch(() => refValue.value, (value) => { + if (!comparator(value, cachedValue.value)) + cachedValue.value = value; + }, watchOptions); + return cachedValue; +} +function usePermission(permissionDesc, options = {}) { + const { + controls = false, + navigator = defaultNavigator + } = options; + const isSupported = useSupported(() => navigator && "permissions" in navigator); + let permissionStatus; + const desc = typeof permissionDesc === "string" ? { name: permissionDesc } : permissionDesc; + const state = ref(); + const onChange = () => { + if (permissionStatus) + state.value = permissionStatus.state; + }; + const query = createSingletonPromise(async () => { + if (!isSupported.value) + return; + if (!permissionStatus) { + try { + permissionStatus = await navigator.permissions.query(desc); + useEventListener(permissionStatus, "change", onChange); + onChange(); + } catch (e) { + state.value = "prompt"; + } + } + return permissionStatus; + }); + query(); + if (controls) { + return { + state, + isSupported, + query + }; + } else { + return state; + } +} +function useClipboard(options = {}) { + const { + navigator = defaultNavigator, + read = false, + source, + copiedDuring = 1500, + legacy = false + } = options; + const isClipboardApiSupported = useSupported(() => navigator && "clipboard" in navigator); + const permissionRead = usePermission("clipboard-read"); + const permissionWrite = usePermission("clipboard-write"); + const isSupported = computed(() => isClipboardApiSupported.value || legacy); + const text = ref(""); + const copied = ref(false); + const timeout = useTimeoutFn(() => copied.value = false, copiedDuring); + function updateText() { + if (isClipboardApiSupported.value && isAllowed(permissionRead.value)) { + navigator.clipboard.readText().then((value) => { + text.value = value; + }); + } else { + text.value = legacyRead(); + } + } + if (isSupported.value && read) + useEventListener(["copy", "cut"], updateText); + async function copy(value = toValue(source)) { + if (isSupported.value && value != null) { + if (isClipboardApiSupported.value && isAllowed(permissionWrite.value)) + await navigator.clipboard.writeText(value); + else + legacyCopy(value); + text.value = value; + copied.value = true; + timeout.start(); + } + } + function legacyCopy(value) { + const ta = document.createElement("textarea"); + ta.value = value != null ? value : ""; + ta.style.position = "absolute"; + ta.style.opacity = "0"; + document.body.appendChild(ta); + ta.select(); + document.execCommand("copy"); + ta.remove(); + } + function legacyRead() { + var _a, _b, _c; + return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : ""; + } + function isAllowed(status) { + return status === "granted" || status === "prompt"; + } + return { + isSupported, + text, + copied, + copy + }; +} +function useClipboardItems(options = {}) { + const { + navigator = defaultNavigator, + read = false, + source, + copiedDuring = 1500 + } = options; + const isSupported = useSupported(() => navigator && "clipboard" in navigator); + const content = ref([]); + const copied = ref(false); + const timeout = useTimeoutFn(() => copied.value = false, copiedDuring); + function updateContent() { + if (isSupported.value) { + navigator.clipboard.read().then((items) => { + content.value = items; + }); + } + } + if (isSupported.value && read) + useEventListener(["copy", "cut"], updateContent); + async function copy(value = toValue(source)) { + if (isSupported.value && value != null) { + await navigator.clipboard.write(value); + content.value = value; + copied.value = true; + timeout.start(); + } + } + return { + isSupported, + content, + copied, + copy + }; +} +function cloneFnJSON(source) { + return JSON.parse(JSON.stringify(source)); +} +function useCloned(source, options = {}) { + const cloned = ref({}); + const { + manual, + clone = cloneFnJSON, + // watch options + deep = true, + immediate = true + } = options; + function sync() { + cloned.value = clone(toValue(source)); + } + if (!manual && (isRef(source) || typeof source === "function")) { + watch(source, sync, { + ...options, + deep, + immediate + }); + } else { + sync(); + } + return { cloned, sync }; +} +var _global = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; +var globalKey = "__vueuse_ssr_handlers__"; +var handlers = getHandlers(); +function getHandlers() { + if (!(globalKey in _global)) + _global[globalKey] = _global[globalKey] || {}; + return _global[globalKey]; +} +function getSSRHandler(key, fallback) { + return handlers[key] || fallback; +} +function setSSRHandler(key, fn) { + handlers[key] = fn; +} +function guessSerializerType(rawInit) { + return rawInit == null ? "any" : rawInit instanceof Set ? "set" : rawInit instanceof Map ? "map" : rawInit instanceof Date ? "date" : typeof rawInit === "boolean" ? "boolean" : typeof rawInit === "string" ? "string" : typeof rawInit === "object" ? "object" : !Number.isNaN(rawInit) ? "number" : "any"; +} +var StorageSerializers = { + boolean: { + read: (v) => v === "true", + write: (v) => String(v) + }, + object: { + read: (v) => JSON.parse(v), + write: (v) => JSON.stringify(v) + }, + number: { + read: (v) => Number.parseFloat(v), + write: (v) => String(v) + }, + any: { + read: (v) => v, + write: (v) => String(v) + }, + string: { + read: (v) => v, + write: (v) => String(v) + }, + map: { + read: (v) => new Map(JSON.parse(v)), + write: (v) => JSON.stringify(Array.from(v.entries())) + }, + set: { + read: (v) => new Set(JSON.parse(v)), + write: (v) => JSON.stringify(Array.from(v)) + }, + date: { + read: (v) => new Date(v), + write: (v) => v.toISOString() + } +}; +var customStorageEventName = "vueuse-storage"; +function useStorage(key, defaults2, storage, options = {}) { + var _a; + const { + flush = "pre", + deep = true, + listenToStorageChanges = true, + writeDefaults = true, + mergeDefaults = false, + shallow, + window: window2 = defaultWindow, + eventFilter, + onError = (e) => { + console.error(e); + }, + initOnMounted + } = options; + const data = (shallow ? shallowRef : ref)(typeof defaults2 === "function" ? defaults2() : defaults2); + if (!storage) { + try { + storage = getSSRHandler("getDefaultStorage", () => { + var _a2; + return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage; + })(); + } catch (e) { + onError(e); + } + } + if (!storage) + return data; + const rawInit = toValue(defaults2); + const type = guessSerializerType(rawInit); + const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type]; + const { pause: pauseWatch, resume: resumeWatch } = watchPausable( + data, + () => write(data.value), + { flush, deep, eventFilter } + ); + if (window2 && listenToStorageChanges) { + tryOnMounted(() => { + useEventListener(window2, "storage", update); + useEventListener(window2, customStorageEventName, updateFromCustomEvent); + if (initOnMounted) + update(); + }); + } + if (!initOnMounted) + update(); + function dispatchWriteEvent(oldValue, newValue) { + if (window2) { + window2.dispatchEvent(new CustomEvent(customStorageEventName, { + detail: { + key, + oldValue, + newValue, + storageArea: storage + } + })); + } + } + function write(v) { + try { + const oldValue = storage.getItem(key); + if (v == null) { + dispatchWriteEvent(oldValue, null); + storage.removeItem(key); + } else { + const serialized = serializer.write(v); + if (oldValue !== serialized) { + storage.setItem(key, serialized); + dispatchWriteEvent(oldValue, serialized); + } + } + } catch (e) { + onError(e); + } + } + function read(event) { + const rawValue = event ? event.newValue : storage.getItem(key); + if (rawValue == null) { + if (writeDefaults && rawInit != null) + storage.setItem(key, serializer.write(rawInit)); + return rawInit; + } else if (!event && mergeDefaults) { + const value = serializer.read(rawValue); + if (typeof mergeDefaults === "function") + return mergeDefaults(value, rawInit); + else if (type === "object" && !Array.isArray(value)) + return { ...rawInit, ...value }; + return value; + } else if (typeof rawValue !== "string") { + return rawValue; + } else { + return serializer.read(rawValue); + } + } + function update(event) { + if (event && event.storageArea !== storage) + return; + if (event && event.key == null) { + data.value = rawInit; + return; + } + if (event && event.key !== key) + return; + pauseWatch(); + try { + if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value)) + data.value = read(event); + } catch (e) { + onError(e); + } finally { + if (event) + nextTick(resumeWatch); + else + resumeWatch(); + } + } + function updateFromCustomEvent(event) { + update(event.detail); + } + return data; +} +function usePreferredDark(options) { + return useMediaQuery("(prefers-color-scheme: dark)", options); +} +function useColorMode(options = {}) { + const { + selector = "html", + attribute = "class", + initialValue = "auto", + window: window2 = defaultWindow, + storage, + storageKey = "vueuse-color-scheme", + listenToStorageChanges = true, + storageRef, + emitAuto, + disableTransition = true + } = options; + const modes = { + auto: "", + light: "light", + dark: "dark", + ...options.modes || {} + }; + const preferredDark = usePreferredDark({ window: window2 }); + const system = computed(() => preferredDark.value ? "dark" : "light"); + const store = storageRef || (storageKey == null ? toRef2(initialValue) : useStorage(storageKey, initialValue, storage, { window: window2, listenToStorageChanges })); + const state = computed(() => store.value === "auto" ? system.value : store.value); + const updateHTMLAttrs = getSSRHandler( + "updateHTMLAttrs", + (selector2, attribute2, value) => { + const el = typeof selector2 === "string" ? window2 == null ? void 0 : window2.document.querySelector(selector2) : unrefElement(selector2); + if (!el) + return; + let style; + if (disableTransition) { + style = window2.document.createElement("style"); + const styleString = "*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}"; + style.appendChild(document.createTextNode(styleString)); + window2.document.head.appendChild(style); + } + if (attribute2 === "class") { + const current = value.split(/\s/g); + Object.values(modes).flatMap((i) => (i || "").split(/\s/g)).filter(Boolean).forEach((v) => { + if (current.includes(v)) + el.classList.add(v); + else + el.classList.remove(v); + }); + } else { + el.setAttribute(attribute2, value); + } + if (disableTransition) { + window2.getComputedStyle(style).opacity; + document.head.removeChild(style); + } + } + ); + function defaultOnChanged(mode) { + var _a; + updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode); + } + function onChanged(mode) { + if (options.onChanged) + options.onChanged(mode, defaultOnChanged); + else + defaultOnChanged(mode); + } + watch(state, onChanged, { flush: "post", immediate: true }); + tryOnMounted(() => onChanged(state.value)); + const auto = computed({ + get() { + return emitAuto ? store.value : state.value; + }, + set(v) { + store.value = v; + } + }); + try { + return Object.assign(auto, { store, system, state }); + } catch (e) { + return auto; + } +} +function useConfirmDialog(revealed = ref(false)) { + const confirmHook = createEventHook(); + const cancelHook = createEventHook(); + const revealHook = createEventHook(); + let _resolve = noop; + const reveal = (data) => { + revealHook.trigger(data); + revealed.value = true; + return new Promise((resolve) => { + _resolve = resolve; + }); + }; + const confirm = (data) => { + revealed.value = false; + confirmHook.trigger(data); + _resolve({ data, isCanceled: false }); + }; + const cancel = (data) => { + revealed.value = false; + cancelHook.trigger(data); + _resolve({ data, isCanceled: true }); + }; + return { + isRevealed: computed(() => revealed.value), + reveal, + confirm, + cancel, + onReveal: revealHook.on, + onConfirm: confirmHook.on, + onCancel: cancelHook.on + }; +} +function useCssVar(prop, target, options = {}) { + const { window: window2 = defaultWindow, initialValue = "", observe = false } = options; + const variable = ref(initialValue); + const elRef = computed(() => { + var _a; + return unrefElement(target) || ((_a = window2 == null ? void 0 : window2.document) == null ? void 0 : _a.documentElement); + }); + function updateCssVar() { + var _a; + const key = toValue(prop); + const el = toValue(elRef); + if (el && window2) { + const value = (_a = window2.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim(); + variable.value = value || initialValue; + } + } + if (observe) { + useMutationObserver(elRef, updateCssVar, { + attributeFilter: ["style", "class"], + window: window2 + }); + } + watch( + [elRef, () => toValue(prop)], + updateCssVar, + { immediate: true } + ); + watch( + variable, + (val) => { + var _a; + if ((_a = elRef.value) == null ? void 0 : _a.style) + elRef.value.style.setProperty(toValue(prop), val); + } + ); + return variable; +} +function useCurrentElement(rootComponent) { + const vm = getCurrentInstance(); + const currentElement = computedWithControl( + () => null, + () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el + ); + onUpdated(currentElement.trigger); + onMounted(currentElement.trigger); + return currentElement; +} +function useCycleList(list, options) { + const state = shallowRef(getInitialValue()); + const listRef = toRef2(list); + const index = computed({ + get() { + var _a; + const targetList = listRef.value; + let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value); + if (index2 < 0) + index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0; + return index2; + }, + set(v) { + set3(v); + } + }); + function set3(i) { + const targetList = listRef.value; + const length = targetList.length; + const index2 = (i % length + length) % length; + const value = targetList[index2]; + state.value = value; + return value; + } + function shift(delta = 1) { + return set3(index.value + delta); + } + function next(n = 1) { + return shift(n); + } + function prev(n = 1) { + return shift(-n); + } + function getInitialValue() { + var _a, _b; + return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0; + } + watch(listRef, () => set3(index.value)); + return { + state, + index, + next, + prev, + go: set3 + }; +} +function useDark(options = {}) { + const { + valueDark = "dark", + valueLight = "", + window: window2 = defaultWindow + } = options; + const mode = useColorMode({ + ...options, + onChanged: (mode2, defaultHandler) => { + var _a; + if (options.onChanged) + (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === "dark", defaultHandler, mode2); + else + defaultHandler(mode2); + }, + modes: { + dark: valueDark, + light: valueLight + } + }); + const system = computed(() => { + if (mode.system) { + return mode.system.value; + } else { + const preferredDark = usePreferredDark({ window: window2 }); + return preferredDark.value ? "dark" : "light"; + } + }); + const isDark = computed({ + get() { + return mode.value === "dark"; + }, + set(v) { + const modeVal = v ? "dark" : "light"; + if (system.value === modeVal) + mode.value = "auto"; + else + mode.value = modeVal; + } + }); + return isDark; +} +function fnBypass(v) { + return v; +} +function fnSetSource(source, value) { + return source.value = value; +} +function defaultDump(clone) { + return clone ? typeof clone === "function" ? clone : cloneFnJSON : fnBypass; +} +function defaultParse(clone) { + return clone ? typeof clone === "function" ? clone : cloneFnJSON : fnBypass; +} +function useManualRefHistory(source, options = {}) { + const { + clone = false, + dump = defaultDump(clone), + parse = defaultParse(clone), + setSource = fnSetSource + } = options; + function _createHistoryRecord() { + return markRaw({ + snapshot: dump(source.value), + timestamp: timestamp() + }); + } + const last = ref(_createHistoryRecord()); + const undoStack = ref([]); + const redoStack = ref([]); + const _setSource = (record) => { + setSource(source, parse(record.snapshot)); + last.value = record; + }; + const commit = () => { + undoStack.value.unshift(last.value); + last.value = _createHistoryRecord(); + if (options.capacity && undoStack.value.length > options.capacity) + undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY); + if (redoStack.value.length) + redoStack.value.splice(0, redoStack.value.length); + }; + const clear = () => { + undoStack.value.splice(0, undoStack.value.length); + redoStack.value.splice(0, redoStack.value.length); + }; + const undo = () => { + const state = undoStack.value.shift(); + if (state) { + redoStack.value.unshift(last.value); + _setSource(state); + } + }; + const redo = () => { + const state = redoStack.value.shift(); + if (state) { + undoStack.value.unshift(last.value); + _setSource(state); + } + }; + const reset = () => { + _setSource(last.value); + }; + const history = computed(() => [last.value, ...undoStack.value]); + const canUndo = computed(() => undoStack.value.length > 0); + const canRedo = computed(() => redoStack.value.length > 0); + return { + source, + undoStack, + redoStack, + last, + history, + canUndo, + canRedo, + clear, + commit, + reset, + undo, + redo + }; +} +function useRefHistory(source, options = {}) { + const { + deep = false, + flush = "pre", + eventFilter + } = options; + const { + eventFilter: composedFilter, + pause, + resume: resumeTracking, + isActive: isTracking + } = pausableFilter(eventFilter); + const { + ignoreUpdates, + ignorePrevAsyncUpdates, + stop + } = watchIgnorable( + source, + commit, + { deep, flush, eventFilter: composedFilter } + ); + function setSource(source2, value) { + ignorePrevAsyncUpdates(); + ignoreUpdates(() => { + source2.value = value; + }); + } + const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource }); + const { clear, commit: manualCommit } = manualHistory; + function commit() { + ignorePrevAsyncUpdates(); + manualCommit(); + } + function resume(commitNow) { + resumeTracking(); + if (commitNow) + commit(); + } + function batch(fn) { + let canceled = false; + const cancel = () => canceled = true; + ignoreUpdates(() => { + fn(cancel); + }); + if (!canceled) + commit(); + } + function dispose() { + stop(); + clear(); + } + return { + ...manualHistory, + isTracking, + pause, + resume, + commit, + batch, + dispose + }; +} +function useDebouncedRefHistory(source, options = {}) { + const filter = options.debounce ? debounceFilter(options.debounce) : void 0; + const history = useRefHistory(source, { ...options, eventFilter: filter }); + return { + ...history + }; +} +function useDeviceMotion(options = {}) { + const { + window: window2 = defaultWindow, + eventFilter = bypassFilter + } = options; + const acceleration = ref({ x: null, y: null, z: null }); + const rotationRate = ref({ alpha: null, beta: null, gamma: null }); + const interval = ref(0); + const accelerationIncludingGravity = ref({ + x: null, + y: null, + z: null + }); + if (window2) { + const onDeviceMotion = createFilterWrapper( + eventFilter, + (event) => { + acceleration.value = event.acceleration; + accelerationIncludingGravity.value = event.accelerationIncludingGravity; + rotationRate.value = event.rotationRate; + interval.value = event.interval; + } + ); + useEventListener(window2, "devicemotion", onDeviceMotion); + } + return { + acceleration, + accelerationIncludingGravity, + rotationRate, + interval + }; +} +function useDeviceOrientation(options = {}) { + const { window: window2 = defaultWindow } = options; + const isSupported = useSupported(() => window2 && "DeviceOrientationEvent" in window2); + const isAbsolute = ref(false); + const alpha = ref(null); + const beta = ref(null); + const gamma = ref(null); + if (window2 && isSupported.value) { + useEventListener(window2, "deviceorientation", (event) => { + isAbsolute.value = event.absolute; + alpha.value = event.alpha; + beta.value = event.beta; + gamma.value = event.gamma; + }); + } + return { + isSupported, + isAbsolute, + alpha, + beta, + gamma + }; +} +function useDevicePixelRatio(options = {}) { + const { + window: window2 = defaultWindow + } = options; + const pixelRatio = ref(1); + if (window2) { + let observe2 = function() { + pixelRatio.value = window2.devicePixelRatio; + cleanup2(); + media = window2.matchMedia(`(resolution: ${pixelRatio.value}dppx)`); + media.addEventListener("change", observe2, { once: true }); + }, cleanup2 = function() { + media == null ? void 0 : media.removeEventListener("change", observe2); + }; + let media; + observe2(); + tryOnScopeDispose(cleanup2); + } + return { pixelRatio }; +} +function useDevicesList(options = {}) { + const { + navigator = defaultNavigator, + requestPermissions = false, + constraints = { audio: true, video: true }, + onUpdated: onUpdated2 + } = options; + const devices = ref([]); + const videoInputs = computed(() => devices.value.filter((i) => i.kind === "videoinput")); + const audioInputs = computed(() => devices.value.filter((i) => i.kind === "audioinput")); + const audioOutputs = computed(() => devices.value.filter((i) => i.kind === "audiooutput")); + const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices); + const permissionGranted = ref(false); + let stream; + async function update() { + if (!isSupported.value) + return; + devices.value = await navigator.mediaDevices.enumerateDevices(); + onUpdated2 == null ? void 0 : onUpdated2(devices.value); + if (stream) { + stream.getTracks().forEach((t) => t.stop()); + stream = null; + } + } + async function ensurePermissions() { + if (!isSupported.value) + return false; + if (permissionGranted.value) + return true; + const { state, query } = usePermission("camera", { controls: true }); + await query(); + if (state.value !== "granted") { + stream = await navigator.mediaDevices.getUserMedia(constraints); + update(); + permissionGranted.value = true; + } else { + permissionGranted.value = true; + } + return permissionGranted.value; + } + if (isSupported.value) { + if (requestPermissions) + ensurePermissions(); + useEventListener(navigator.mediaDevices, "devicechange", update); + update(); + } + return { + devices, + ensurePermissions, + permissionGranted, + videoInputs, + audioInputs, + audioOutputs, + isSupported + }; +} +function useDisplayMedia(options = {}) { + var _a; + const enabled = ref((_a = options.enabled) != null ? _a : false); + const video = options.video; + const audio = options.audio; + const { navigator = defaultNavigator } = options; + const isSupported = useSupported(() => { + var _a2; + return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia; + }); + const constraint = { audio, video }; + const stream = shallowRef(); + async function _start() { + var _a2; + if (!isSupported.value || stream.value) + return; + stream.value = await navigator.mediaDevices.getDisplayMedia(constraint); + (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.addEventListener("ended", stop)); + return stream.value; + } + async function _stop() { + var _a2; + (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop()); + stream.value = void 0; + } + function stop() { + _stop(); + enabled.value = false; + } + async function start() { + await _start(); + if (stream.value) + enabled.value = true; + return stream.value; + } + watch( + enabled, + (v) => { + if (v) + _start(); + else + _stop(); + }, + { immediate: true } + ); + return { + isSupported, + stream, + start, + stop, + enabled + }; +} +function useDocumentVisibility(options = {}) { + const { document: document2 = defaultDocument } = options; + if (!document2) + return ref("visible"); + const visibility = ref(document2.visibilityState); + useEventListener(document2, "visibilitychange", () => { + visibility.value = document2.visibilityState; + }); + return visibility; +} +function useDraggable(target, options = {}) { + var _a, _b; + const { + pointerTypes, + preventDefault: preventDefault2, + stopPropagation, + exact, + onMove, + onEnd, + onStart, + initialValue, + axis = "both", + draggingElement = defaultWindow, + containerElement, + handle: draggingHandle = target + } = options; + const position = ref( + (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 } + ); + const pressedDelta = ref(); + const filterEvent = (e) => { + if (pointerTypes) + return pointerTypes.includes(e.pointerType); + return true; + }; + const handleEvent = (e) => { + if (toValue(preventDefault2)) + e.preventDefault(); + if (toValue(stopPropagation)) + e.stopPropagation(); + }; + const start = (e) => { + var _a2; + if (e.button !== 0) + return; + if (toValue(options.disabled) || !filterEvent(e)) + return; + if (toValue(exact) && e.target !== toValue(target)) + return; + const container = toValue(containerElement); + const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container); + const targetRect = toValue(target).getBoundingClientRect(); + const pos = { + x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left), + y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top) + }; + if ((onStart == null ? void 0 : onStart(pos, e)) === false) + return; + pressedDelta.value = pos; + handleEvent(e); + }; + const move = (e) => { + if (toValue(options.disabled) || !filterEvent(e)) + return; + if (!pressedDelta.value) + return; + const container = toValue(containerElement); + const targetRect = toValue(target).getBoundingClientRect(); + let { x, y } = position.value; + if (axis === "x" || axis === "both") { + x = e.clientX - pressedDelta.value.x; + if (container) + x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width); + } + if (axis === "y" || axis === "both") { + y = e.clientY - pressedDelta.value.y; + if (container) + y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height); + } + position.value = { + x, + y + }; + onMove == null ? void 0 : onMove(position.value, e); + handleEvent(e); + }; + const end = (e) => { + if (toValue(options.disabled) || !filterEvent(e)) + return; + if (!pressedDelta.value) + return; + pressedDelta.value = void 0; + onEnd == null ? void 0 : onEnd(position.value, e); + handleEvent(e); + }; + if (isClient) { + const config = { capture: (_b = options.capture) != null ? _b : true }; + useEventListener(draggingHandle, "pointerdown", start, config); + useEventListener(draggingElement, "pointermove", move, config); + useEventListener(draggingElement, "pointerup", end, config); + } + return { + ...toRefs2(position), + position, + isDragging: computed(() => !!pressedDelta.value), + style: computed( + () => `left:${position.value.x}px;top:${position.value.y}px;` + ) + }; +} +function useDropZone(target, options = {}) { + const isOverDropZone = ref(false); + const files = shallowRef(null); + let counter = 0; + let isDataTypeIncluded = true; + if (isClient) { + const _options = typeof options === "function" ? { onDrop: options } : options; + const getFiles = (event) => { + var _a, _b; + const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []); + return files.value = list.length === 0 ? null : list; + }; + useEventListener(target, "dragenter", (event) => { + var _a, _b; + const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === "file" ? i.type : null).filter(notNullish); + if (_options.dataTypes && event.dataTransfer) { + const dataTypes = unref(_options.dataTypes); + isDataTypeIncluded = typeof dataTypes === "function" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true; + if (!isDataTypeIncluded) + return; + } + event.preventDefault(); + counter += 1; + isOverDropZone.value = true; + (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event); + }); + useEventListener(target, "dragover", (event) => { + var _a; + if (!isDataTypeIncluded) + return; + event.preventDefault(); + (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event); + }); + useEventListener(target, "dragleave", (event) => { + var _a; + if (!isDataTypeIncluded) + return; + event.preventDefault(); + counter -= 1; + if (counter === 0) + isOverDropZone.value = false; + (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event); + }); + useEventListener(target, "drop", (event) => { + var _a; + event.preventDefault(); + counter = 0; + isOverDropZone.value = false; + (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event); + }); + } + return { + files, + isOverDropZone + }; +} +function useResizeObserver(target, callback, options = {}) { + const { window: window2 = defaultWindow, ...observerOptions } = options; + let observer; + const isSupported = useSupported(() => window2 && "ResizeObserver" in window2); + const cleanup = () => { + if (observer) { + observer.disconnect(); + observer = void 0; + } + }; + const targets = computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]); + const stopWatch = watch( + targets, + (els) => { + cleanup(); + if (isSupported.value && window2) { + observer = new ResizeObserver(callback); + for (const _el of els) + _el && observer.observe(_el, observerOptions); + } + }, + { immediate: true, flush: "post" } + ); + const stop = () => { + cleanup(); + stopWatch(); + }; + tryOnScopeDispose(stop); + return { + isSupported, + stop + }; +} +function useElementBounding(target, options = {}) { + const { + reset = true, + windowResize = true, + windowScroll = true, + immediate = true + } = options; + const height = ref(0); + const bottom = ref(0); + const left = ref(0); + const right = ref(0); + const top = ref(0); + const width = ref(0); + const x = ref(0); + const y = ref(0); + function update() { + const el = unrefElement(target); + if (!el) { + if (reset) { + height.value = 0; + bottom.value = 0; + left.value = 0; + right.value = 0; + top.value = 0; + width.value = 0; + x.value = 0; + y.value = 0; + } + return; + } + const rect = el.getBoundingClientRect(); + height.value = rect.height; + bottom.value = rect.bottom; + left.value = rect.left; + right.value = rect.right; + top.value = rect.top; + width.value = rect.width; + x.value = rect.x; + y.value = rect.y; + } + useResizeObserver(target, update); + watch(() => unrefElement(target), (ele) => !ele && update()); + useMutationObserver(target, update, { + attributeFilter: ["style", "class"] + }); + if (windowScroll) + useEventListener("scroll", update, { capture: true, passive: true }); + if (windowResize) + useEventListener("resize", update, { passive: true }); + tryOnMounted(() => { + if (immediate) + update(); + }); + return { + height, + bottom, + left, + right, + top, + width, + x, + y, + update + }; +} +function useElementByPoint(options) { + const { + x, + y, + document: document2 = defaultDocument, + multiple, + interval = "requestAnimationFrame", + immediate = true + } = options; + const isSupported = useSupported(() => { + if (toValue(multiple)) + return document2 && "elementsFromPoint" in document2; + return document2 && "elementFromPoint" in document2; + }); + const element = ref(null); + const cb = () => { + var _a, _b; + element.value = toValue(multiple) ? (_a = document2 == null ? void 0 : document2.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document2 == null ? void 0 : document2.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null; + }; + const controls = interval === "requestAnimationFrame" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate }); + return { + isSupported, + element, + ...controls + }; +} +function useElementHover(el, options = {}) { + const { + delayEnter = 0, + delayLeave = 0, + window: window2 = defaultWindow + } = options; + const isHovered = ref(false); + let timer; + const toggle = (entering) => { + const delay = entering ? delayEnter : delayLeave; + if (timer) { + clearTimeout(timer); + timer = void 0; + } + if (delay) + timer = setTimeout(() => isHovered.value = entering, delay); + else + isHovered.value = entering; + }; + if (!window2) + return isHovered; + useEventListener(el, "mouseenter", () => toggle(true), { passive: true }); + useEventListener(el, "mouseleave", () => toggle(false), { passive: true }); + return isHovered; +} +function useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) { + const { window: window2 = defaultWindow, box = "content-box" } = options; + const isSVG = computed(() => { + var _a, _b; + return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes("svg"); + }); + const width = ref(initialSize.width); + const height = ref(initialSize.height); + const { stop: stop1 } = useResizeObserver( + target, + ([entry]) => { + const boxSize = box === "border-box" ? entry.borderBoxSize : box === "content-box" ? entry.contentBoxSize : entry.devicePixelContentBoxSize; + if (window2 && isSVG.value) { + const $elem = unrefElement(target); + if ($elem) { + const rect = $elem.getBoundingClientRect(); + width.value = rect.width; + height.value = rect.height; + } + } else { + if (boxSize) { + const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize]; + width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0); + height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0); + } else { + width.value = entry.contentRect.width; + height.value = entry.contentRect.height; + } + } + }, + options + ); + tryOnMounted(() => { + const ele = unrefElement(target); + if (ele) { + width.value = "offsetWidth" in ele ? ele.offsetWidth : initialSize.width; + height.value = "offsetHeight" in ele ? ele.offsetHeight : initialSize.height; + } + }); + const stop2 = watch( + () => unrefElement(target), + (ele) => { + width.value = ele ? initialSize.width : 0; + height.value = ele ? initialSize.height : 0; + } + ); + function stop() { + stop1(); + stop2(); + } + return { + width, + height, + stop + }; +} +function useIntersectionObserver(target, callback, options = {}) { + const { + root, + rootMargin = "0px", + threshold = 0.1, + window: window2 = defaultWindow, + immediate = true + } = options; + const isSupported = useSupported(() => window2 && "IntersectionObserver" in window2); + const targets = computed(() => { + const _target = toValue(target); + return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish); + }); + let cleanup = noop; + const isActive = ref(immediate); + const stopWatch = isSupported.value ? watch( + () => [targets.value, unrefElement(root), isActive.value], + ([targets2, root2]) => { + cleanup(); + if (!isActive.value) + return; + if (!targets2.length) + return; + const observer = new IntersectionObserver( + callback, + { + root: unrefElement(root2), + rootMargin, + threshold + } + ); + targets2.forEach((el) => el && observer.observe(el)); + cleanup = () => { + observer.disconnect(); + cleanup = noop; + }; + }, + { immediate, flush: "post" } + ) : noop; + const stop = () => { + cleanup(); + stopWatch(); + isActive.value = false; + }; + tryOnScopeDispose(stop); + return { + isSupported, + isActive, + pause() { + cleanup(); + isActive.value = false; + }, + resume() { + isActive.value = true; + }, + stop + }; +} +function useElementVisibility(element, options = {}) { + const { window: window2 = defaultWindow, scrollTarget, threshold = 0 } = options; + const elementIsVisible = ref(false); + useIntersectionObserver( + element, + (intersectionObserverEntries) => { + let isIntersecting = elementIsVisible.value; + let latestTime = 0; + for (const entry of intersectionObserverEntries) { + if (entry.time >= latestTime) { + latestTime = entry.time; + isIntersecting = entry.isIntersecting; + } + } + elementIsVisible.value = isIntersecting; + }, + { + root: scrollTarget, + window: window2, + threshold + } + ); + return elementIsVisible; +} +var events = /* @__PURE__ */ new Map(); +function useEventBus(key) { + const scope = getCurrentScope(); + function on(listener) { + var _a; + const listeners = events.get(key) || /* @__PURE__ */ new Set(); + listeners.add(listener); + events.set(key, listeners); + const _off = () => off(listener); + (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off); + return _off; + } + function once(listener) { + function _listener(...args) { + off(_listener); + listener(...args); + } + return on(_listener); + } + function off(listener) { + const listeners = events.get(key); + if (!listeners) + return; + listeners.delete(listener); + if (!listeners.size) + reset(); + } + function reset() { + events.delete(key); + } + function emit(event, payload) { + var _a; + (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload)); + } + return { on, once, off, emit, reset }; +} +function resolveNestedOptions$1(options) { + if (options === true) + return {}; + return options; +} +function useEventSource(url, events2 = [], options = {}) { + const event = ref(null); + const data = ref(null); + const status = ref("CONNECTING"); + const eventSource = ref(null); + const error = shallowRef(null); + const urlRef = toRef2(url); + const lastEventId = shallowRef(null); + let explicitlyClosed = false; + let retried = 0; + const { + withCredentials = false, + immediate = true + } = options; + const close = () => { + if (isClient && eventSource.value) { + eventSource.value.close(); + eventSource.value = null; + status.value = "CLOSED"; + explicitlyClosed = true; + } + }; + const _init = () => { + if (explicitlyClosed || typeof urlRef.value === "undefined") + return; + const es = new EventSource(urlRef.value, { withCredentials }); + status.value = "CONNECTING"; + eventSource.value = es; + es.onopen = () => { + status.value = "OPEN"; + error.value = null; + }; + es.onerror = (e) => { + status.value = "CLOSED"; + error.value = e; + if (es.readyState === 2 && !explicitlyClosed && options.autoReconnect) { + es.close(); + const { + retries = -1, + delay = 1e3, + onFailed + } = resolveNestedOptions$1(options.autoReconnect); + retried += 1; + if (typeof retries === "number" && (retries < 0 || retried < retries)) + setTimeout(_init, delay); + else if (typeof retries === "function" && retries()) + setTimeout(_init, delay); + else + onFailed == null ? void 0 : onFailed(); + } + }; + es.onmessage = (e) => { + event.value = null; + data.value = e.data; + lastEventId.value = e.lastEventId; + }; + for (const event_name of events2) { + useEventListener(es, event_name, (e) => { + event.value = event_name; + data.value = e.data || null; + }); + } + }; + const open = () => { + if (!isClient) + return; + close(); + explicitlyClosed = false; + retried = 0; + _init(); + }; + if (immediate) + watch(urlRef, open, { immediate: true }); + tryOnScopeDispose(close); + return { + eventSource, + event, + data, + status, + error, + open, + close, + lastEventId + }; +} +function useEyeDropper(options = {}) { + const { initialValue = "" } = options; + const isSupported = useSupported(() => typeof window !== "undefined" && "EyeDropper" in window); + const sRGBHex = ref(initialValue); + async function open(openOptions) { + if (!isSupported.value) + return; + const eyeDropper = new window.EyeDropper(); + const result = await eyeDropper.open(openOptions); + sRGBHex.value = result.sRGBHex; + return result; + } + return { isSupported, sRGBHex, open }; +} +function useFavicon(newIcon = null, options = {}) { + const { + baseUrl = "", + rel = "icon", + document: document2 = defaultDocument + } = options; + const favicon = toRef2(newIcon); + const applyIcon = (icon) => { + const elements = document2 == null ? void 0 : document2.head.querySelectorAll(`link[rel*="${rel}"]`); + if (!elements || elements.length === 0) { + const link = document2 == null ? void 0 : document2.createElement("link"); + if (link) { + link.rel = rel; + link.href = `${baseUrl}${icon}`; + link.type = `image/${icon.split(".").pop()}`; + document2 == null ? void 0 : document2.head.append(link); + } + return; + } + elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`); + }; + watch( + favicon, + (i, o) => { + if (typeof i === "string" && i !== o) + applyIcon(i); + }, + { immediate: true } + ); + return favicon; +} +var payloadMapping = { + json: "application/json", + text: "text/plain" +}; +function isFetchOptions(obj) { + return obj && containsProp(obj, "immediate", "refetch", "initialData", "timeout", "beforeFetch", "afterFetch", "onFetchError", "fetch", "updateDataOnError"); +} +var reAbsolute = /^(?:[a-z][a-z\d+\-.]*:)?\/\//i; +function isAbsoluteURL(url) { + return reAbsolute.test(url); +} +function headersToObject(headers) { + if (typeof Headers !== "undefined" && headers instanceof Headers) + return Object.fromEntries(headers.entries()); + return headers; +} +function combineCallbacks(combination, ...callbacks) { + if (combination === "overwrite") { + return async (ctx) => { + const callback = callbacks[callbacks.length - 1]; + if (callback) + return { ...ctx, ...await callback(ctx) }; + return ctx; + }; + } else { + return async (ctx) => { + for (const callback of callbacks) { + if (callback) + ctx = { ...ctx, ...await callback(ctx) }; + } + return ctx; + }; + } +} +function createFetch(config = {}) { + const _combination = config.combination || "chain"; + const _options = config.options || {}; + const _fetchOptions = config.fetchOptions || {}; + function useFactoryFetch(url, ...args) { + const computedUrl = computed(() => { + const baseUrl = toValue(config.baseUrl); + const targetUrl = toValue(url); + return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl; + }); + let options = _options; + let fetchOptions = _fetchOptions; + if (args.length > 0) { + if (isFetchOptions(args[0])) { + options = { + ...options, + ...args[0], + beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch), + afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch), + onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError) + }; + } else { + fetchOptions = { + ...fetchOptions, + ...args[0], + headers: { + ...headersToObject(fetchOptions.headers) || {}, + ...headersToObject(args[0].headers) || {} + } + }; + } + } + if (args.length > 1 && isFetchOptions(args[1])) { + options = { + ...options, + ...args[1], + beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch), + afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch), + onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError) + }; + } + return useFetch(computedUrl, fetchOptions, options); + } + return useFactoryFetch; +} +function useFetch(url, ...args) { + var _a; + const supportsAbort = typeof AbortController === "function"; + let fetchOptions = {}; + let options = { + immediate: true, + refetch: false, + timeout: 0, + updateDataOnError: false + }; + const config = { + method: "GET", + type: "text", + payload: void 0 + }; + if (args.length > 0) { + if (isFetchOptions(args[0])) + options = { ...options, ...args[0] }; + else + fetchOptions = args[0]; + } + if (args.length > 1) { + if (isFetchOptions(args[1])) + options = { ...options, ...args[1] }; + } + const { + fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch, + initialData, + timeout + } = options; + const responseEvent = createEventHook(); + const errorEvent = createEventHook(); + const finallyEvent = createEventHook(); + const isFinished = ref(false); + const isFetching = ref(false); + const aborted = ref(false); + const statusCode = ref(null); + const response = shallowRef(null); + const error = shallowRef(null); + const data = shallowRef(initialData || null); + const canAbort = computed(() => supportsAbort && isFetching.value); + let controller; + let timer; + const abort = () => { + if (supportsAbort) { + controller == null ? void 0 : controller.abort(); + controller = new AbortController(); + controller.signal.onabort = () => aborted.value = true; + fetchOptions = { + ...fetchOptions, + signal: controller.signal + }; + } + }; + const loading = (isLoading) => { + isFetching.value = isLoading; + isFinished.value = !isLoading; + }; + if (timeout) + timer = useTimeoutFn(abort, timeout, { immediate: false }); + let executeCounter = 0; + const execute = async (throwOnFailed = false) => { + var _a2, _b; + abort(); + loading(true); + error.value = null; + statusCode.value = null; + aborted.value = false; + executeCounter += 1; + const currentExecuteCounter = executeCounter; + const defaultFetchOptions = { + method: config.method, + headers: {} + }; + if (config.payload) { + const headers = headersToObject(defaultFetchOptions.headers); + const payload = toValue(config.payload); + if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData)) + config.payloadType = "json"; + if (config.payloadType) + headers["Content-Type"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType; + defaultFetchOptions.body = config.payloadType === "json" ? JSON.stringify(payload) : payload; + } + let isCanceled = false; + const context = { + url: toValue(url), + options: { + ...defaultFetchOptions, + ...fetchOptions + }, + cancel: () => { + isCanceled = true; + } + }; + if (options.beforeFetch) + Object.assign(context, await options.beforeFetch(context)); + if (isCanceled || !fetch) { + loading(false); + return Promise.resolve(null); + } + let responseData = null; + if (timer) + timer.start(); + return fetch( + context.url, + { + ...defaultFetchOptions, + ...context.options, + headers: { + ...headersToObject(defaultFetchOptions.headers), + ...headersToObject((_b = context.options) == null ? void 0 : _b.headers) + } + } + ).then(async (fetchResponse) => { + response.value = fetchResponse; + statusCode.value = fetchResponse.status; + responseData = await fetchResponse.clone()[config.type](); + if (!fetchResponse.ok) { + data.value = initialData || null; + throw new Error(fetchResponse.statusText); + } + if (options.afterFetch) { + ({ data: responseData } = await options.afterFetch({ + data: responseData, + response: fetchResponse + })); + } + data.value = responseData; + responseEvent.trigger(fetchResponse); + return fetchResponse; + }).catch(async (fetchError) => { + let errorData = fetchError.message || fetchError.name; + if (options.onFetchError) { + ({ error: errorData, data: responseData } = await options.onFetchError({ + data: responseData, + error: fetchError, + response: response.value + })); + } + error.value = errorData; + if (options.updateDataOnError) + data.value = responseData; + errorEvent.trigger(fetchError); + if (throwOnFailed) + throw fetchError; + return null; + }).finally(() => { + if (currentExecuteCounter === executeCounter) + loading(false); + if (timer) + timer.stop(); + finallyEvent.trigger(null); + }); + }; + const refetch = toRef2(options.refetch); + watch( + [ + refetch, + toRef2(url) + ], + ([refetch2]) => refetch2 && execute(), + { deep: true } + ); + const shell = { + isFinished: readonly(isFinished), + isFetching: readonly(isFetching), + statusCode, + response, + error, + data, + canAbort, + aborted, + abort, + execute, + onFetchResponse: responseEvent.on, + onFetchError: errorEvent.on, + onFetchFinally: finallyEvent.on, + // method + get: setMethod("GET"), + put: setMethod("PUT"), + post: setMethod("POST"), + delete: setMethod("DELETE"), + patch: setMethod("PATCH"), + head: setMethod("HEAD"), + options: setMethod("OPTIONS"), + // type + json: setType("json"), + text: setType("text"), + blob: setType("blob"), + arrayBuffer: setType("arrayBuffer"), + formData: setType("formData") + }; + function setMethod(method) { + return (payload, payloadType) => { + if (!isFetching.value) { + config.method = method; + config.payload = payload; + config.payloadType = payloadType; + if (isRef(config.payload)) { + watch( + [ + refetch, + toRef2(config.payload) + ], + ([refetch2]) => refetch2 && execute(), + { deep: true } + ); + } + return { + ...shell, + then(onFulfilled, onRejected) { + return waitUntilFinished().then(onFulfilled, onRejected); + } + }; + } + return void 0; + }; + } + function waitUntilFinished() { + return new Promise((resolve, reject) => { + until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2)); + }); + } + function setType(type) { + return () => { + if (!isFetching.value) { + config.type = type; + return { + ...shell, + then(onFulfilled, onRejected) { + return waitUntilFinished().then(onFulfilled, onRejected); + } + }; + } + return void 0; + }; + } + if (options.immediate) + Promise.resolve().then(() => execute()); + return { + ...shell, + then(onFulfilled, onRejected) { + return waitUntilFinished().then(onFulfilled, onRejected); + } + }; +} +function joinPaths(start, end) { + if (!start.endsWith("/") && !end.startsWith("/")) + return `${start}/${end}`; + return `${start}${end}`; +} +var DEFAULT_OPTIONS = { + multiple: true, + accept: "*", + reset: false, + directory: false +}; +function useFileDialog(options = {}) { + const { + document: document2 = defaultDocument + } = options; + const files = ref(null); + const { on: onChange, trigger } = createEventHook(); + let input; + if (document2) { + input = document2.createElement("input"); + input.type = "file"; + input.onchange = (event) => { + const result = event.target; + files.value = result.files; + trigger(files.value); + }; + } + const reset = () => { + files.value = null; + if (input && input.value) { + input.value = ""; + trigger(null); + } + }; + const open = (localOptions) => { + if (!input) + return; + const _options = { + ...DEFAULT_OPTIONS, + ...options, + ...localOptions + }; + input.multiple = _options.multiple; + input.accept = _options.accept; + input.webkitdirectory = _options.directory; + if (hasOwn(_options, "capture")) + input.capture = _options.capture; + if (_options.reset) + reset(); + input.click(); + }; + return { + files: readonly(files), + open, + reset, + onChange + }; +} +function useFileSystemAccess(options = {}) { + const { + window: _window = defaultWindow, + dataType = "Text" + } = options; + const window2 = _window; + const isSupported = useSupported(() => window2 && "showSaveFilePicker" in window2 && "showOpenFilePicker" in window2); + const fileHandle = ref(); + const data = ref(); + const file = ref(); + const fileName = computed(() => { + var _a, _b; + return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : ""; + }); + const fileMIME = computed(() => { + var _a, _b; + return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : ""; + }); + const fileSize = computed(() => { + var _a, _b; + return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0; + }); + const fileLastModified = computed(() => { + var _a, _b; + return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0; + }); + async function open(_options = {}) { + if (!isSupported.value) + return; + const [handle] = await window2.showOpenFilePicker({ ...toValue(options), ..._options }); + fileHandle.value = handle; + await updateData(); + } + async function create(_options = {}) { + if (!isSupported.value) + return; + fileHandle.value = await window2.showSaveFilePicker({ ...options, ..._options }); + data.value = void 0; + await updateData(); + } + async function save(_options = {}) { + if (!isSupported.value) + return; + if (!fileHandle.value) + return saveAs(_options); + if (data.value) { + const writableStream = await fileHandle.value.createWritable(); + await writableStream.write(data.value); + await writableStream.close(); + } + await updateFile(); + } + async function saveAs(_options = {}) { + if (!isSupported.value) + return; + fileHandle.value = await window2.showSaveFilePicker({ ...options, ..._options }); + if (data.value) { + const writableStream = await fileHandle.value.createWritable(); + await writableStream.write(data.value); + await writableStream.close(); + } + await updateFile(); + } + async function updateFile() { + var _a; + file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile()); + } + async function updateData() { + var _a, _b; + await updateFile(); + const type = toValue(dataType); + if (type === "Text") + data.value = await ((_a = file.value) == null ? void 0 : _a.text()); + else if (type === "ArrayBuffer") + data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer()); + else if (type === "Blob") + data.value = file.value; + } + watch(() => toValue(dataType), updateData); + return { + isSupported, + data, + file, + fileName, + fileMIME, + fileSize, + fileLastModified, + open, + create, + save, + saveAs, + updateData + }; +} +function useFocus(target, options = {}) { + const { initialValue = false, focusVisible = false, preventScroll = false } = options; + const innerFocused = ref(false); + const targetElement = computed(() => unrefElement(target)); + useEventListener(targetElement, "focus", (event) => { + var _a, _b; + if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, ":focus-visible"))) + innerFocused.value = true; + }); + useEventListener(targetElement, "blur", () => innerFocused.value = false); + const focused = computed({ + get: () => innerFocused.value, + set(value) { + var _a, _b; + if (!value && innerFocused.value) + (_a = targetElement.value) == null ? void 0 : _a.blur(); + else if (value && !innerFocused.value) + (_b = targetElement.value) == null ? void 0 : _b.focus({ preventScroll }); + } + }); + watch( + targetElement, + () => { + focused.value = initialValue; + }, + { immediate: true, flush: "post" } + ); + return { focused }; +} +function useFocusWithin(target, options = {}) { + const activeElement = useActiveElement(options); + const targetElement = computed(() => unrefElement(target)); + const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false); + return { focused }; +} +function useFps(options) { + var _a; + const fps = ref(0); + if (typeof performance === "undefined") + return fps; + const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10; + let last = performance.now(); + let ticks = 0; + useRafFn(() => { + ticks += 1; + if (ticks >= every) { + const now2 = performance.now(); + const diff = now2 - last; + fps.value = Math.round(1e3 / (diff / ticks)); + last = now2; + ticks = 0; + } + }); + return fps; +} +var eventHandlers = [ + "fullscreenchange", + "webkitfullscreenchange", + "webkitendfullscreen", + "mozfullscreenchange", + "MSFullscreenChange" +]; +function useFullscreen(target, options = {}) { + const { + document: document2 = defaultDocument, + autoExit = false + } = options; + const targetRef = computed(() => { + var _a; + return (_a = unrefElement(target)) != null ? _a : document2 == null ? void 0 : document2.querySelector("html"); + }); + const isFullscreen = ref(false); + const requestMethod = computed(() => { + return [ + "requestFullscreen", + "webkitRequestFullscreen", + "webkitEnterFullscreen", + "webkitEnterFullScreen", + "webkitRequestFullScreen", + "mozRequestFullScreen", + "msRequestFullscreen" + ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value); + }); + const exitMethod = computed(() => { + return [ + "exitFullscreen", + "webkitExitFullscreen", + "webkitExitFullScreen", + "webkitCancelFullScreen", + "mozCancelFullScreen", + "msExitFullscreen" + ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value); + }); + const fullscreenEnabled = computed(() => { + return [ + "fullScreen", + "webkitIsFullScreen", + "webkitDisplayingFullscreen", + "mozFullScreen", + "msFullscreenElement" + ].find((m) => document2 && m in document2 || targetRef.value && m in targetRef.value); + }); + const fullscreenElementMethod = [ + "fullscreenElement", + "webkitFullscreenElement", + "mozFullScreenElement", + "msFullscreenElement" + ].find((m) => document2 && m in document2); + const isSupported = useSupported(() => targetRef.value && document2 && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0); + const isCurrentElementFullScreen = () => { + if (fullscreenElementMethod) + return (document2 == null ? void 0 : document2[fullscreenElementMethod]) === targetRef.value; + return false; + }; + const isElementFullScreen = () => { + if (fullscreenEnabled.value) { + if (document2 && document2[fullscreenEnabled.value] != null) { + return document2[fullscreenEnabled.value]; + } else { + const target2 = targetRef.value; + if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) { + return Boolean(target2[fullscreenEnabled.value]); + } + } + } + return false; + }; + async function exit() { + if (!isSupported.value || !isFullscreen.value) + return; + if (exitMethod.value) { + if ((document2 == null ? void 0 : document2[exitMethod.value]) != null) { + await document2[exitMethod.value](); + } else { + const target2 = targetRef.value; + if ((target2 == null ? void 0 : target2[exitMethod.value]) != null) + await target2[exitMethod.value](); + } + } + isFullscreen.value = false; + } + async function enter() { + if (!isSupported.value || isFullscreen.value) + return; + if (isElementFullScreen()) + await exit(); + const target2 = targetRef.value; + if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) { + await target2[requestMethod.value](); + isFullscreen.value = true; + } + } + async function toggle() { + await (isFullscreen.value ? exit() : enter()); + } + const handlerCallback = () => { + const isElementFullScreenValue = isElementFullScreen(); + if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen()) + isFullscreen.value = isElementFullScreenValue; + }; + useEventListener(document2, eventHandlers, handlerCallback, false); + useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false); + if (autoExit) + tryOnScopeDispose(exit); + return { + isSupported, + isFullscreen, + enter, + exit, + toggle + }; +} +function mapGamepadToXbox360Controller(gamepad) { + return computed(() => { + if (gamepad.value) { + return { + buttons: { + a: gamepad.value.buttons[0], + b: gamepad.value.buttons[1], + x: gamepad.value.buttons[2], + y: gamepad.value.buttons[3] + }, + bumper: { + left: gamepad.value.buttons[4], + right: gamepad.value.buttons[5] + }, + triggers: { + left: gamepad.value.buttons[6], + right: gamepad.value.buttons[7] + }, + stick: { + left: { + horizontal: gamepad.value.axes[0], + vertical: gamepad.value.axes[1], + button: gamepad.value.buttons[10] + }, + right: { + horizontal: gamepad.value.axes[2], + vertical: gamepad.value.axes[3], + button: gamepad.value.buttons[11] + } + }, + dpad: { + up: gamepad.value.buttons[12], + down: gamepad.value.buttons[13], + left: gamepad.value.buttons[14], + right: gamepad.value.buttons[15] + }, + back: gamepad.value.buttons[8], + start: gamepad.value.buttons[9] + }; + } + return null; + }); +} +function useGamepad(options = {}) { + const { + navigator = defaultNavigator + } = options; + const isSupported = useSupported(() => navigator && "getGamepads" in navigator); + const gamepads = ref([]); + const onConnectedHook = createEventHook(); + const onDisconnectedHook = createEventHook(); + const stateFromGamepad = (gamepad) => { + const hapticActuators = []; + const vibrationActuator = "vibrationActuator" in gamepad ? gamepad.vibrationActuator : null; + if (vibrationActuator) + hapticActuators.push(vibrationActuator); + if (gamepad.hapticActuators) + hapticActuators.push(...gamepad.hapticActuators); + return { + id: gamepad.id, + index: gamepad.index, + connected: gamepad.connected, + mapping: gamepad.mapping, + timestamp: gamepad.timestamp, + vibrationActuator: gamepad.vibrationActuator, + hapticActuators, + axes: gamepad.axes.map((axes) => axes), + buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value })) + }; + }; + const updateGamepadState = () => { + const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || []; + for (const gamepad of _gamepads) { + if (gamepad && gamepads.value[gamepad.index]) + gamepads.value[gamepad.index] = stateFromGamepad(gamepad); + } + }; + const { isActive, pause, resume } = useRafFn(updateGamepadState); + const onGamepadConnected = (gamepad) => { + if (!gamepads.value.some(({ index }) => index === gamepad.index)) { + gamepads.value.push(stateFromGamepad(gamepad)); + onConnectedHook.trigger(gamepad.index); + } + resume(); + }; + const onGamepadDisconnected = (gamepad) => { + gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index); + onDisconnectedHook.trigger(gamepad.index); + }; + useEventListener("gamepadconnected", (e) => onGamepadConnected(e.gamepad)); + useEventListener("gamepaddisconnected", (e) => onGamepadDisconnected(e.gamepad)); + tryOnMounted(() => { + const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || []; + for (const gamepad of _gamepads) { + if (gamepad && gamepads.value[gamepad.index]) + onGamepadConnected(gamepad); + } + }); + pause(); + return { + isSupported, + onConnected: onConnectedHook.on, + onDisconnected: onDisconnectedHook.on, + gamepads, + pause, + resume, + isActive + }; +} +function useGeolocation(options = {}) { + const { + enableHighAccuracy = true, + maximumAge = 3e4, + timeout = 27e3, + navigator = defaultNavigator, + immediate = true + } = options; + const isSupported = useSupported(() => navigator && "geolocation" in navigator); + const locatedAt = ref(null); + const error = shallowRef(null); + const coords = ref({ + accuracy: 0, + latitude: Number.POSITIVE_INFINITY, + longitude: Number.POSITIVE_INFINITY, + altitude: null, + altitudeAccuracy: null, + heading: null, + speed: null + }); + function updatePosition(position) { + locatedAt.value = position.timestamp; + coords.value = position.coords; + error.value = null; + } + let watcher; + function resume() { + if (isSupported.value) { + watcher = navigator.geolocation.watchPosition( + updatePosition, + (err) => error.value = err, + { + enableHighAccuracy, + maximumAge, + timeout + } + ); + } + } + if (immediate) + resume(); + function pause() { + if (watcher && navigator) + navigator.geolocation.clearWatch(watcher); + } + tryOnScopeDispose(() => { + pause(); + }); + return { + isSupported, + coords, + locatedAt, + error, + resume, + pause + }; +} +var defaultEvents$1 = ["mousemove", "mousedown", "resize", "keydown", "touchstart", "wheel"]; +var oneMinute = 6e4; +function useIdle(timeout = oneMinute, options = {}) { + const { + initialState = false, + listenForVisibilityChange = true, + events: events2 = defaultEvents$1, + window: window2 = defaultWindow, + eventFilter = throttleFilter(50) + } = options; + const idle = ref(initialState); + const lastActive = ref(timestamp()); + let timer; + const reset = () => { + idle.value = false; + clearTimeout(timer); + timer = setTimeout(() => idle.value = true, timeout); + }; + const onEvent = createFilterWrapper( + eventFilter, + () => { + lastActive.value = timestamp(); + reset(); + } + ); + if (window2) { + const document2 = window2.document; + for (const event of events2) + useEventListener(window2, event, onEvent, { passive: true }); + if (listenForVisibilityChange) { + useEventListener(document2, "visibilitychange", () => { + if (!document2.hidden) + onEvent(); + }); + } + reset(); + } + return { + idle, + lastActive, + reset + }; +} +async function loadImage(options) { + return new Promise((resolve, reject) => { + const img = new Image(); + const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options; + img.src = src; + if (srcset) + img.srcset = srcset; + if (sizes) + img.sizes = sizes; + if (clazz) + img.className = clazz; + if (loading) + img.loading = loading; + if (crossorigin) + img.crossOrigin = crossorigin; + if (referrerPolicy) + img.referrerPolicy = referrerPolicy; + img.onload = () => resolve(img); + img.onerror = reject; + }); +} +function useImage(options, asyncStateOptions = {}) { + const state = useAsyncState( + () => loadImage(toValue(options)), + void 0, + { + resetOnExecute: true, + ...asyncStateOptions + } + ); + watch( + () => toValue(options), + () => state.execute(asyncStateOptions.delay), + { deep: true } + ); + return state; +} +var ARRIVED_STATE_THRESHOLD_PIXELS = 1; +function useScroll(element, options = {}) { + const { + throttle = 0, + idle = 200, + onStop = noop, + onScroll = noop, + offset = { + left: 0, + right: 0, + top: 0, + bottom: 0 + }, + eventListenerOptions = { + capture: false, + passive: true + }, + behavior = "auto", + window: window2 = defaultWindow, + onError = (e) => { + console.error(e); + } + } = options; + const internalX = ref(0); + const internalY = ref(0); + const x = computed({ + get() { + return internalX.value; + }, + set(x2) { + scrollTo2(x2, void 0); + } + }); + const y = computed({ + get() { + return internalY.value; + }, + set(y2) { + scrollTo2(void 0, y2); + } + }); + function scrollTo2(_x, _y) { + var _a, _b, _c, _d; + if (!window2) + return; + const _element = toValue(element); + if (!_element) + return; + (_c = _element instanceof Document ? window2.document.body : _element) == null ? void 0 : _c.scrollTo({ + top: (_a = toValue(_y)) != null ? _a : y.value, + left: (_b = toValue(_x)) != null ? _b : x.value, + behavior: toValue(behavior) + }); + const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element; + if (x != null) + internalX.value = scrollContainer.scrollLeft; + if (y != null) + internalY.value = scrollContainer.scrollTop; + } + const isScrolling = ref(false); + const arrivedState = reactive({ + left: true, + right: false, + top: true, + bottom: false + }); + const directions = reactive({ + left: false, + right: false, + top: false, + bottom: false + }); + const onScrollEnd = (e) => { + if (!isScrolling.value) + return; + isScrolling.value = false; + directions.left = false; + directions.right = false; + directions.top = false; + directions.bottom = false; + onStop(e); + }; + const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle); + const setArrivedState = (target) => { + var _a; + if (!window2) + return; + const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target); + const { display, flexDirection } = getComputedStyle(el); + const scrollLeft = el.scrollLeft; + directions.left = scrollLeft < internalX.value; + directions.right = scrollLeft > internalX.value; + const left = Math.abs(scrollLeft) <= (offset.left || 0); + const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS; + if (display === "flex" && flexDirection === "row-reverse") { + arrivedState.left = right; + arrivedState.right = left; + } else { + arrivedState.left = left; + arrivedState.right = right; + } + internalX.value = scrollLeft; + let scrollTop = el.scrollTop; + if (target === window2.document && !scrollTop) + scrollTop = window2.document.body.scrollTop; + directions.top = scrollTop < internalY.value; + directions.bottom = scrollTop > internalY.value; + const top = Math.abs(scrollTop) <= (offset.top || 0); + const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS; + if (display === "flex" && flexDirection === "column-reverse") { + arrivedState.top = bottom; + arrivedState.bottom = top; + } else { + arrivedState.top = top; + arrivedState.bottom = bottom; + } + internalY.value = scrollTop; + }; + const onScrollHandler = (e) => { + var _a; + if (!window2) + return; + const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target; + setArrivedState(eventTarget); + isScrolling.value = true; + onScrollEndDebounced(e); + onScroll(e); + }; + useEventListener( + element, + "scroll", + throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, + eventListenerOptions + ); + tryOnMounted(() => { + try { + const _element = toValue(element); + if (!_element) + return; + setArrivedState(_element); + } catch (e) { + onError(e); + } + }); + useEventListener( + element, + "scrollend", + onScrollEnd, + eventListenerOptions + ); + return { + x, + y, + isScrolling, + arrivedState, + directions, + measure() { + const _element = toValue(element); + if (window2 && _element) + setArrivedState(_element); + } + }; +} +function resolveElement(el) { + if (typeof Window !== "undefined" && el instanceof Window) + return el.document.documentElement; + if (typeof Document !== "undefined" && el instanceof Document) + return el.documentElement; + return el; +} +function useInfiniteScroll(element, onLoadMore, options = {}) { + var _a; + const { + direction = "bottom", + interval = 100, + canLoadMore = () => true + } = options; + const state = reactive(useScroll( + element, + { + ...options, + offset: { + [direction]: (_a = options.distance) != null ? _a : 0, + ...options.offset + } + } + )); + const promise = ref(); + const isLoading = computed(() => !!promise.value); + const observedElement = computed(() => { + return resolveElement(toValue(element)); + }); + const isElementVisible = useElementVisibility(observedElement); + function checkAndLoad() { + state.measure(); + if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value)) + return; + const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value; + const isNarrower = direction === "bottom" || direction === "top" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth; + if (state.arrivedState[direction] || isNarrower) { + if (!promise.value) { + promise.value = Promise.all([ + onLoadMore(state), + new Promise((resolve) => setTimeout(resolve, interval)) + ]).finally(() => { + promise.value = null; + nextTick(() => checkAndLoad()); + }); + } + } + } + watch( + () => [state.arrivedState[direction], isElementVisible.value], + checkAndLoad, + { immediate: true } + ); + return { + isLoading + }; +} +var defaultEvents = ["mousedown", "mouseup", "keydown", "keyup"]; +function useKeyModifier(modifier, options = {}) { + const { + events: events2 = defaultEvents, + document: document2 = defaultDocument, + initial = null + } = options; + const state = ref(initial); + if (document2) { + events2.forEach((listenerEvent) => { + useEventListener(document2, listenerEvent, (evt) => { + if (typeof evt.getModifierState === "function") + state.value = evt.getModifierState(modifier); + }); + }); + } + return state; +} +function useLocalStorage(key, initialValue, options = {}) { + const { window: window2 = defaultWindow } = options; + return useStorage(key, initialValue, window2 == null ? void 0 : window2.localStorage, options); +} +var DefaultMagicKeysAliasMap = { + ctrl: "control", + command: "meta", + cmd: "meta", + option: "alt", + up: "arrowup", + down: "arrowdown", + left: "arrowleft", + right: "arrowright" +}; +function useMagicKeys(options = {}) { + const { + reactive: useReactive = false, + target = defaultWindow, + aliasMap = DefaultMagicKeysAliasMap, + passive = true, + onEventFired = noop + } = options; + const current = reactive(/* @__PURE__ */ new Set()); + const obj = { + toJSON() { + return {}; + }, + current + }; + const refs = useReactive ? reactive(obj) : obj; + const metaDeps = /* @__PURE__ */ new Set(); + const usedKeys = /* @__PURE__ */ new Set(); + function setRefs(key, value) { + if (key in refs) { + if (useReactive) + refs[key] = value; + else + refs[key].value = value; + } + } + function reset() { + current.clear(); + for (const key of usedKeys) + setRefs(key, false); + } + function updateRefs(e, value) { + var _a, _b; + const key = (_a = e.key) == null ? void 0 : _a.toLowerCase(); + const code = (_b = e.code) == null ? void 0 : _b.toLowerCase(); + const values = [code, key].filter(Boolean); + if (key) { + if (value) + current.add(key); + else + current.delete(key); + } + for (const key2 of values) { + usedKeys.add(key2); + setRefs(key2, value); + } + if (key === "meta" && !value) { + metaDeps.forEach((key2) => { + current.delete(key2); + setRefs(key2, false); + }); + metaDeps.clear(); + } else if (typeof e.getModifierState === "function" && e.getModifierState("Meta") && value) { + [...current, ...values].forEach((key2) => metaDeps.add(key2)); + } + } + useEventListener(target, "keydown", (e) => { + updateRefs(e, true); + return onEventFired(e); + }, { passive }); + useEventListener(target, "keyup", (e) => { + updateRefs(e, false); + return onEventFired(e); + }, { passive }); + useEventListener("blur", reset, { passive: true }); + useEventListener("focus", reset, { passive: true }); + const proxy = new Proxy( + refs, + { + get(target2, prop, rec) { + if (typeof prop !== "string") + return Reflect.get(target2, prop, rec); + prop = prop.toLowerCase(); + if (prop in aliasMap) + prop = aliasMap[prop]; + if (!(prop in refs)) { + if (/[+_-]/.test(prop)) { + const keys2 = prop.split(/[+_-]/g).map((i) => i.trim()); + refs[prop] = computed(() => keys2.every((key) => toValue(proxy[key]))); + } else { + refs[prop] = ref(false); + } + } + const r = Reflect.get(target2, prop, rec); + return useReactive ? toValue(r) : r; + } + } + ); + return proxy; +} +function usingElRef(source, cb) { + if (toValue(source)) + cb(toValue(source)); +} +function timeRangeToArray(timeRanges) { + let ranges = []; + for (let i = 0; i < timeRanges.length; ++i) + ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]]; + return ranges; +} +function tracksToArray(tracks) { + return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType })); +} +var defaultOptions = { + src: "", + tracks: [] +}; +function useMediaControls(target, options = {}) { + target = toRef2(target); + options = { + ...defaultOptions, + ...options + }; + const { + document: document2 = defaultDocument + } = options; + const currentTime = ref(0); + const duration = ref(0); + const seeking = ref(false); + const volume = ref(1); + const waiting = ref(false); + const ended = ref(false); + const playing = ref(false); + const rate = ref(1); + const stalled = ref(false); + const buffered = ref([]); + const tracks = ref([]); + const selectedTrack = ref(-1); + const isPictureInPicture = ref(false); + const muted = ref(false); + const supportsPictureInPicture = document2 && "pictureInPictureEnabled" in document2; + const sourceErrorEvent = createEventHook(); + const disableTrack = (track) => { + usingElRef(target, (el) => { + if (track) { + const id = typeof track === "number" ? track : track.id; + el.textTracks[id].mode = "disabled"; + } else { + for (let i = 0; i < el.textTracks.length; ++i) + el.textTracks[i].mode = "disabled"; + } + selectedTrack.value = -1; + }); + }; + const enableTrack = (track, disableTracks = true) => { + usingElRef(target, (el) => { + const id = typeof track === "number" ? track : track.id; + if (disableTracks) + disableTrack(); + el.textTracks[id].mode = "showing"; + selectedTrack.value = id; + }); + }; + const togglePictureInPicture = () => { + return new Promise((resolve, reject) => { + usingElRef(target, async (el) => { + if (supportsPictureInPicture) { + if (!isPictureInPicture.value) { + el.requestPictureInPicture().then(resolve).catch(reject); + } else { + document2.exitPictureInPicture().then(resolve).catch(reject); + } + } + }); + }); + }; + watchEffect(() => { + if (!document2) + return; + const el = toValue(target); + if (!el) + return; + const src = toValue(options.src); + let sources = []; + if (!src) + return; + if (typeof src === "string") + sources = [{ src }]; + else if (Array.isArray(src)) + sources = src; + else if (isObject(src)) + sources = [src]; + el.querySelectorAll("source").forEach((e) => { + e.removeEventListener("error", sourceErrorEvent.trigger); + e.remove(); + }); + sources.forEach(({ src: src2, type }) => { + const source = document2.createElement("source"); + source.setAttribute("src", src2); + source.setAttribute("type", type || ""); + source.addEventListener("error", sourceErrorEvent.trigger); + el.appendChild(source); + }); + el.load(); + }); + tryOnScopeDispose(() => { + const el = toValue(target); + if (!el) + return; + el.querySelectorAll("source").forEach((e) => e.removeEventListener("error", sourceErrorEvent.trigger)); + }); + watch([target, volume], () => { + const el = toValue(target); + if (!el) + return; + el.volume = volume.value; + }); + watch([target, muted], () => { + const el = toValue(target); + if (!el) + return; + el.muted = muted.value; + }); + watch([target, rate], () => { + const el = toValue(target); + if (!el) + return; + el.playbackRate = rate.value; + }); + watchEffect(() => { + if (!document2) + return; + const textTracks = toValue(options.tracks); + const el = toValue(target); + if (!textTracks || !textTracks.length || !el) + return; + el.querySelectorAll("track").forEach((e) => e.remove()); + textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => { + const track = document2.createElement("track"); + track.default = isDefault || false; + track.kind = kind; + track.label = label; + track.src = src; + track.srclang = srcLang; + if (track.default) + selectedTrack.value = i; + el.appendChild(track); + }); + }); + const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => { + const el = toValue(target); + if (!el) + return; + el.currentTime = time; + }); + const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => { + const el = toValue(target); + if (!el) + return; + isPlaying ? el.play() : el.pause(); + }); + useEventListener(target, "timeupdate", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime)); + useEventListener(target, "durationchange", () => duration.value = toValue(target).duration); + useEventListener(target, "progress", () => buffered.value = timeRangeToArray(toValue(target).buffered)); + useEventListener(target, "seeking", () => seeking.value = true); + useEventListener(target, "seeked", () => seeking.value = false); + useEventListener(target, ["waiting", "loadstart"], () => { + waiting.value = true; + ignorePlayingUpdates(() => playing.value = false); + }); + useEventListener(target, "loadeddata", () => waiting.value = false); + useEventListener(target, "playing", () => { + waiting.value = false; + ended.value = false; + ignorePlayingUpdates(() => playing.value = true); + }); + useEventListener(target, "ratechange", () => rate.value = toValue(target).playbackRate); + useEventListener(target, "stalled", () => stalled.value = true); + useEventListener(target, "ended", () => ended.value = true); + useEventListener(target, "pause", () => ignorePlayingUpdates(() => playing.value = false)); + useEventListener(target, "play", () => ignorePlayingUpdates(() => playing.value = true)); + useEventListener(target, "enterpictureinpicture", () => isPictureInPicture.value = true); + useEventListener(target, "leavepictureinpicture", () => isPictureInPicture.value = false); + useEventListener(target, "volumechange", () => { + const el = toValue(target); + if (!el) + return; + volume.value = el.volume; + muted.value = el.muted; + }); + const listeners = []; + const stop = watch([target], () => { + const el = toValue(target); + if (!el) + return; + stop(); + listeners[0] = useEventListener(el.textTracks, "addtrack", () => tracks.value = tracksToArray(el.textTracks)); + listeners[1] = useEventListener(el.textTracks, "removetrack", () => tracks.value = tracksToArray(el.textTracks)); + listeners[2] = useEventListener(el.textTracks, "change", () => tracks.value = tracksToArray(el.textTracks)); + }); + tryOnScopeDispose(() => listeners.forEach((listener) => listener())); + return { + currentTime, + duration, + waiting, + seeking, + ended, + stalled, + buffered, + playing, + rate, + // Volume + volume, + muted, + // Tracks + tracks, + selectedTrack, + enableTrack, + disableTrack, + // Picture in Picture + supportsPictureInPicture, + togglePictureInPicture, + isPictureInPicture, + // Events + onSourceError: sourceErrorEvent.on + }; +} +function getMapVue2Compat() { + const data = shallowReactive({}); + return { + get: (key) => data[key], + set: (key, value) => set(data, key, value), + has: (key) => hasOwn(data, key), + delete: (key) => del(data, key), + clear: () => { + Object.keys(data).forEach((key) => { + del(data, key); + }); + } + }; +} +function useMemoize(resolver, options) { + const initCache = () => { + if (options == null ? void 0 : options.cache) + return shallowReactive(options.cache); + if (isVue2) + return getMapVue2Compat(); + return shallowReactive(/* @__PURE__ */ new Map()); + }; + const cache = initCache(); + const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args); + const _loadData = (key, ...args) => { + cache.set(key, resolver(...args)); + return cache.get(key); + }; + const loadData = (...args) => _loadData(generateKey(...args), ...args); + const deleteData = (...args) => { + cache.delete(generateKey(...args)); + }; + const clearData = () => { + cache.clear(); + }; + const memoized = (...args) => { + const key = generateKey(...args); + if (cache.has(key)) + return cache.get(key); + return _loadData(key, ...args); + }; + memoized.load = loadData; + memoized.delete = deleteData; + memoized.clear = clearData; + memoized.generateKey = generateKey; + memoized.cache = cache; + return memoized; +} +function useMemory(options = {}) { + const memory = ref(); + const isSupported = useSupported(() => typeof performance !== "undefined" && "memory" in performance); + if (isSupported.value) { + const { interval = 1e3 } = options; + useIntervalFn(() => { + memory.value = performance.memory; + }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback }); + } + return { isSupported, memory }; +} +var UseMouseBuiltinExtractors = { + page: (event) => [event.pageX, event.pageY], + client: (event) => [event.clientX, event.clientY], + screen: (event) => [event.screenX, event.screenY], + movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY] +}; +function useMouse(options = {}) { + const { + type = "page", + touch = true, + resetOnTouchEnds = false, + initialValue = { x: 0, y: 0 }, + window: window2 = defaultWindow, + target = window2, + scroll = true, + eventFilter + } = options; + let _prevMouseEvent = null; + const x = ref(initialValue.x); + const y = ref(initialValue.y); + const sourceType = ref(null); + const extractor = typeof type === "function" ? type : UseMouseBuiltinExtractors[type]; + const mouseHandler = (event) => { + const result = extractor(event); + _prevMouseEvent = event; + if (result) { + [x.value, y.value] = result; + sourceType.value = "mouse"; + } + }; + const touchHandler = (event) => { + if (event.touches.length > 0) { + const result = extractor(event.touches[0]); + if (result) { + [x.value, y.value] = result; + sourceType.value = "touch"; + } + } + }; + const scrollHandler = () => { + if (!_prevMouseEvent || !window2) + return; + const pos = extractor(_prevMouseEvent); + if (_prevMouseEvent instanceof MouseEvent && pos) { + x.value = pos[0] + window2.scrollX; + y.value = pos[1] + window2.scrollY; + } + }; + const reset = () => { + x.value = initialValue.x; + y.value = initialValue.y; + }; + const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event); + const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event); + const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler(); + if (target) { + const listenerOptions = { passive: true }; + useEventListener(target, ["mousemove", "dragover"], mouseHandlerWrapper, listenerOptions); + if (touch && type !== "movement") { + useEventListener(target, ["touchstart", "touchmove"], touchHandlerWrapper, listenerOptions); + if (resetOnTouchEnds) + useEventListener(target, "touchend", reset, listenerOptions); + } + if (scroll && type === "page") + useEventListener(window2, "scroll", scrollHandlerWrapper, { passive: true }); + } + return { + x, + y, + sourceType + }; +} +function useMouseInElement(target, options = {}) { + const { + handleOutside = true, + window: window2 = defaultWindow + } = options; + const type = options.type || "page"; + const { x, y, sourceType } = useMouse(options); + const targetRef = ref(target != null ? target : window2 == null ? void 0 : window2.document.body); + const elementX = ref(0); + const elementY = ref(0); + const elementPositionX = ref(0); + const elementPositionY = ref(0); + const elementHeight = ref(0); + const elementWidth = ref(0); + const isOutside = ref(true); + let stop = () => { + }; + if (window2) { + stop = watch( + [targetRef, x, y], + () => { + const el = unrefElement(targetRef); + if (!el) + return; + const { + left, + top, + width, + height + } = el.getBoundingClientRect(); + elementPositionX.value = left + (type === "page" ? window2.pageXOffset : 0); + elementPositionY.value = top + (type === "page" ? window2.pageYOffset : 0); + elementHeight.value = height; + elementWidth.value = width; + const elX = x.value - elementPositionX.value; + const elY = y.value - elementPositionY.value; + isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height; + if (handleOutside || !isOutside.value) { + elementX.value = elX; + elementY.value = elY; + } + }, + { immediate: true } + ); + useEventListener(document, "mouseleave", () => { + isOutside.value = true; + }); + } + return { + x, + y, + sourceType, + elementX, + elementY, + elementPositionX, + elementPositionY, + elementHeight, + elementWidth, + isOutside, + stop + }; +} +function useMousePressed(options = {}) { + const { + touch = true, + drag = true, + capture = false, + initialValue = false, + window: window2 = defaultWindow + } = options; + const pressed = ref(initialValue); + const sourceType = ref(null); + if (!window2) { + return { + pressed, + sourceType + }; + } + const onPressed = (srcType) => () => { + pressed.value = true; + sourceType.value = srcType; + }; + const onReleased = () => { + pressed.value = false; + sourceType.value = null; + }; + const target = computed(() => unrefElement(options.target) || window2); + useEventListener(target, "mousedown", onPressed("mouse"), { passive: true, capture }); + useEventListener(window2, "mouseleave", onReleased, { passive: true, capture }); + useEventListener(window2, "mouseup", onReleased, { passive: true, capture }); + if (drag) { + useEventListener(target, "dragstart", onPressed("mouse"), { passive: true, capture }); + useEventListener(window2, "drop", onReleased, { passive: true, capture }); + useEventListener(window2, "dragend", onReleased, { passive: true, capture }); + } + if (touch) { + useEventListener(target, "touchstart", onPressed("touch"), { passive: true, capture }); + useEventListener(window2, "touchend", onReleased, { passive: true, capture }); + useEventListener(window2, "touchcancel", onReleased, { passive: true, capture }); + } + return { + pressed, + sourceType + }; +} +function useNavigatorLanguage(options = {}) { + const { window: window2 = defaultWindow } = options; + const navigator = window2 == null ? void 0 : window2.navigator; + const isSupported = useSupported(() => navigator && "language" in navigator); + const language = ref(navigator == null ? void 0 : navigator.language); + useEventListener(window2, "languagechange", () => { + if (navigator) + language.value = navigator.language; + }); + return { + isSupported, + language + }; +} +function useNetwork(options = {}) { + const { window: window2 = defaultWindow } = options; + const navigator = window2 == null ? void 0 : window2.navigator; + const isSupported = useSupported(() => navigator && "connection" in navigator); + const isOnline = ref(true); + const saveData = ref(false); + const offlineAt = ref(void 0); + const onlineAt = ref(void 0); + const downlink = ref(void 0); + const downlinkMax = ref(void 0); + const rtt = ref(void 0); + const effectiveType = ref(void 0); + const type = ref("unknown"); + const connection = isSupported.value && navigator.connection; + function updateNetworkInformation() { + if (!navigator) + return; + isOnline.value = navigator.onLine; + offlineAt.value = isOnline.value ? void 0 : Date.now(); + onlineAt.value = isOnline.value ? Date.now() : void 0; + if (connection) { + downlink.value = connection.downlink; + downlinkMax.value = connection.downlinkMax; + effectiveType.value = connection.effectiveType; + rtt.value = connection.rtt; + saveData.value = connection.saveData; + type.value = connection.type; + } + } + if (window2) { + useEventListener(window2, "offline", () => { + isOnline.value = false; + offlineAt.value = Date.now(); + }); + useEventListener(window2, "online", () => { + isOnline.value = true; + onlineAt.value = Date.now(); + }); + } + if (connection) + useEventListener(connection, "change", updateNetworkInformation, false); + updateNetworkInformation(); + return { + isSupported, + isOnline, + saveData, + offlineAt, + onlineAt, + downlink, + downlinkMax, + effectiveType, + rtt, + type + }; +} +function useNow(options = {}) { + const { + controls: exposeControls = false, + interval = "requestAnimationFrame" + } = options; + const now2 = ref(/* @__PURE__ */ new Date()); + const update = () => now2.value = /* @__PURE__ */ new Date(); + const controls = interval === "requestAnimationFrame" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true }); + if (exposeControls) { + return { + now: now2, + ...controls + }; + } else { + return now2; + } +} +function useObjectUrl(object) { + const url = ref(); + const release = () => { + if (url.value) + URL.revokeObjectURL(url.value); + url.value = void 0; + }; + watch( + () => toValue(object), + (newObject) => { + release(); + if (newObject) + url.value = URL.createObjectURL(newObject); + }, + { immediate: true } + ); + tryOnScopeDispose(release); + return readonly(url); +} +function useClamp(value, min, max) { + if (typeof value === "function" || isReadonly(value)) + return computed(() => clamp(toValue(value), toValue(min), toValue(max))); + const _value = ref(value); + return computed({ + get() { + return _value.value = clamp(_value.value, toValue(min), toValue(max)); + }, + set(value2) { + _value.value = clamp(value2, toValue(min), toValue(max)); + } + }); +} +function useOffsetPagination(options) { + const { + total = Number.POSITIVE_INFINITY, + pageSize = 10, + page = 1, + onPageChange = noop, + onPageSizeChange = noop, + onPageCountChange = noop + } = options; + const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY); + const pageCount = computed(() => Math.max( + 1, + Math.ceil(toValue(total) / toValue(currentPageSize)) + )); + const currentPage = useClamp(page, 1, pageCount); + const isFirstPage = computed(() => currentPage.value === 1); + const isLastPage = computed(() => currentPage.value === pageCount.value); + if (isRef(page)) { + syncRef(page, currentPage, { + direction: isReadonly(page) ? "ltr" : "both" + }); + } + if (isRef(pageSize)) { + syncRef(pageSize, currentPageSize, { + direction: isReadonly(pageSize) ? "ltr" : "both" + }); + } + function prev() { + currentPage.value--; + } + function next() { + currentPage.value++; + } + const returnValue = { + currentPage, + currentPageSize, + pageCount, + isFirstPage, + isLastPage, + prev, + next + }; + watch(currentPage, () => { + onPageChange(reactive(returnValue)); + }); + watch(currentPageSize, () => { + onPageSizeChange(reactive(returnValue)); + }); + watch(pageCount, () => { + onPageCountChange(reactive(returnValue)); + }); + return returnValue; +} +function useOnline(options = {}) { + const { isOnline } = useNetwork(options); + return isOnline; +} +function usePageLeave(options = {}) { + const { window: window2 = defaultWindow } = options; + const isLeft = ref(false); + const handler = (event) => { + if (!window2) + return; + event = event || window2.event; + const from = event.relatedTarget || event.toElement; + isLeft.value = !from; + }; + if (window2) { + useEventListener(window2, "mouseout", handler, { passive: true }); + useEventListener(window2.document, "mouseleave", handler, { passive: true }); + useEventListener(window2.document, "mouseenter", handler, { passive: true }); + } + return isLeft; +} +function useScreenOrientation(options = {}) { + const { + window: window2 = defaultWindow + } = options; + const isSupported = useSupported(() => window2 && "screen" in window2 && "orientation" in window2.screen); + const screenOrientation = isSupported.value ? window2.screen.orientation : {}; + const orientation = ref(screenOrientation.type); + const angle = ref(screenOrientation.angle || 0); + if (isSupported.value) { + useEventListener(window2, "orientationchange", () => { + orientation.value = screenOrientation.type; + angle.value = screenOrientation.angle; + }); + } + const lockOrientation = (type) => { + if (isSupported.value && typeof screenOrientation.lock === "function") + return screenOrientation.lock(type); + return Promise.reject(new Error("Not supported")); + }; + const unlockOrientation = () => { + if (isSupported.value && typeof screenOrientation.unlock === "function") + screenOrientation.unlock(); + }; + return { + isSupported, + orientation, + angle, + lockOrientation, + unlockOrientation + }; +} +function useParallax(target, options = {}) { + const { + deviceOrientationTiltAdjust = (i) => i, + deviceOrientationRollAdjust = (i) => i, + mouseTiltAdjust = (i) => i, + mouseRollAdjust = (i) => i, + window: window2 = defaultWindow + } = options; + const orientation = reactive(useDeviceOrientation({ window: window2 })); + const screenOrientation = reactive(useScreenOrientation({ window: window2 })); + const { + elementX: x, + elementY: y, + elementWidth: width, + elementHeight: height + } = useMouseInElement(target, { handleOutside: false, window: window2 }); + const source = computed(() => { + if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) { + return "deviceOrientation"; + } + return "mouse"; + }); + const roll = computed(() => { + if (source.value === "deviceOrientation") { + let value; + switch (screenOrientation.orientation) { + case "landscape-primary": + value = orientation.gamma / 90; + break; + case "landscape-secondary": + value = -orientation.gamma / 90; + break; + case "portrait-primary": + value = -orientation.beta / 90; + break; + case "portrait-secondary": + value = orientation.beta / 90; + break; + default: + value = -orientation.beta / 90; + } + return deviceOrientationRollAdjust(value); + } else { + const value = -(y.value - height.value / 2) / height.value; + return mouseRollAdjust(value); + } + }); + const tilt = computed(() => { + if (source.value === "deviceOrientation") { + let value; + switch (screenOrientation.orientation) { + case "landscape-primary": + value = orientation.beta / 90; + break; + case "landscape-secondary": + value = -orientation.beta / 90; + break; + case "portrait-primary": + value = orientation.gamma / 90; + break; + case "portrait-secondary": + value = -orientation.gamma / 90; + break; + default: + value = orientation.gamma / 90; + } + return deviceOrientationTiltAdjust(value); + } else { + const value = (x.value - width.value / 2) / width.value; + return mouseTiltAdjust(value); + } + }); + return { roll, tilt, source }; +} +function useParentElement(element = useCurrentElement()) { + const parentElement = shallowRef(); + const update = () => { + const el = unrefElement(element); + if (el) + parentElement.value = el.parentElement; + }; + tryOnMounted(update); + watch(() => toValue(element), update); + return parentElement; +} +function usePerformanceObserver(options, callback) { + const { + window: window2 = defaultWindow, + immediate = true, + ...performanceOptions + } = options; + const isSupported = useSupported(() => window2 && "PerformanceObserver" in window2); + let observer; + const stop = () => { + observer == null ? void 0 : observer.disconnect(); + }; + const start = () => { + if (isSupported.value) { + stop(); + observer = new PerformanceObserver(callback); + observer.observe(performanceOptions); + } + }; + tryOnScopeDispose(stop); + if (immediate) + start(); + return { + isSupported, + start, + stop + }; +} +var defaultState = { + x: 0, + y: 0, + pointerId: 0, + pressure: 0, + tiltX: 0, + tiltY: 0, + width: 0, + height: 0, + twist: 0, + pointerType: null +}; +var keys = Object.keys(defaultState); +function usePointer(options = {}) { + const { + target = defaultWindow + } = options; + const isInside = ref(false); + const state = ref(options.initialValue || {}); + Object.assign(state.value, defaultState, state.value); + const handler = (event) => { + isInside.value = true; + if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType)) + return; + state.value = objectPick(event, keys, false); + }; + if (target) { + const listenerOptions = { passive: true }; + useEventListener(target, ["pointerdown", "pointermove", "pointerup"], handler, listenerOptions); + useEventListener(target, "pointerleave", () => isInside.value = false, listenerOptions); + } + return { + ...toRefs2(state), + isInside + }; +} +function usePointerLock(target, options = {}) { + const { document: document2 = defaultDocument } = options; + const isSupported = useSupported(() => document2 && "pointerLockElement" in document2); + const element = ref(); + const triggerElement = ref(); + let targetElement; + if (isSupported.value) { + useEventListener(document2, "pointerlockchange", () => { + var _a; + const currentElement = (_a = document2.pointerLockElement) != null ? _a : element.value; + if (targetElement && currentElement === targetElement) { + element.value = document2.pointerLockElement; + if (!element.value) + targetElement = triggerElement.value = null; + } + }); + useEventListener(document2, "pointerlockerror", () => { + var _a; + const currentElement = (_a = document2.pointerLockElement) != null ? _a : element.value; + if (targetElement && currentElement === targetElement) { + const action = document2.pointerLockElement ? "release" : "acquire"; + throw new Error(`Failed to ${action} pointer lock.`); + } + }); + } + async function lock(e) { + var _a; + if (!isSupported.value) + throw new Error("Pointer Lock API is not supported by your browser."); + triggerElement.value = e instanceof Event ? e.currentTarget : null; + targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e); + if (!targetElement) + throw new Error("Target element undefined."); + targetElement.requestPointerLock(); + return await until(element).toBe(targetElement); + } + async function unlock() { + if (!element.value) + return false; + document2.exitPointerLock(); + await until(element).toBeNull(); + return true; + } + return { + isSupported, + element, + triggerElement, + lock, + unlock + }; +} +function usePointerSwipe(target, options = {}) { + const targetRef = toRef2(target); + const { + threshold = 50, + onSwipe, + onSwipeEnd, + onSwipeStart, + disableTextSelect = false + } = options; + const posStart = reactive({ x: 0, y: 0 }); + const updatePosStart = (x, y) => { + posStart.x = x; + posStart.y = y; + }; + const posEnd = reactive({ x: 0, y: 0 }); + const updatePosEnd = (x, y) => { + posEnd.x = x; + posEnd.y = y; + }; + const distanceX = computed(() => posStart.x - posEnd.x); + const distanceY = computed(() => posStart.y - posEnd.y); + const { max, abs } = Math; + const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold); + const isSwiping = ref(false); + const isPointerDown = ref(false); + const direction = computed(() => { + if (!isThresholdExceeded.value) + return "none"; + if (abs(distanceX.value) > abs(distanceY.value)) { + return distanceX.value > 0 ? "left" : "right"; + } else { + return distanceY.value > 0 ? "up" : "down"; + } + }); + const eventIsAllowed = (e) => { + var _a, _b, _c; + const isReleasingButton = e.buttons === 0; + const isPrimaryButton = e.buttons === 1; + return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true; + }; + const stops = [ + useEventListener(target, "pointerdown", (e) => { + if (!eventIsAllowed(e)) + return; + isPointerDown.value = true; + const eventTarget = e.target; + eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId); + const { clientX: x, clientY: y } = e; + updatePosStart(x, y); + updatePosEnd(x, y); + onSwipeStart == null ? void 0 : onSwipeStart(e); + }), + useEventListener(target, "pointermove", (e) => { + if (!eventIsAllowed(e)) + return; + if (!isPointerDown.value) + return; + const { clientX: x, clientY: y } = e; + updatePosEnd(x, y); + if (!isSwiping.value && isThresholdExceeded.value) + isSwiping.value = true; + if (isSwiping.value) + onSwipe == null ? void 0 : onSwipe(e); + }), + useEventListener(target, "pointerup", (e) => { + if (!eventIsAllowed(e)) + return; + if (isSwiping.value) + onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value); + isPointerDown.value = false; + isSwiping.value = false; + }) + ]; + tryOnMounted(() => { + var _a, _b, _c, _d, _e, _f, _g, _h; + (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty("touch-action", "none"); + if (disableTextSelect) { + (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty("-webkit-user-select", "none"); + (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty("-ms-user-select", "none"); + (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty("user-select", "none"); + } + }); + const stop = () => stops.forEach((s) => s()); + return { + isSwiping: readonly(isSwiping), + direction: readonly(direction), + posStart: readonly(posStart), + posEnd: readonly(posEnd), + distanceX, + distanceY, + stop + }; +} +function usePreferredColorScheme(options) { + const isLight = useMediaQuery("(prefers-color-scheme: light)", options); + const isDark = useMediaQuery("(prefers-color-scheme: dark)", options); + return computed(() => { + if (isDark.value) + return "dark"; + if (isLight.value) + return "light"; + return "no-preference"; + }); +} +function usePreferredContrast(options) { + const isMore = useMediaQuery("(prefers-contrast: more)", options); + const isLess = useMediaQuery("(prefers-contrast: less)", options); + const isCustom = useMediaQuery("(prefers-contrast: custom)", options); + return computed(() => { + if (isMore.value) + return "more"; + if (isLess.value) + return "less"; + if (isCustom.value) + return "custom"; + return "no-preference"; + }); +} +function usePreferredLanguages(options = {}) { + const { window: window2 = defaultWindow } = options; + if (!window2) + return ref(["en"]); + const navigator = window2.navigator; + const value = ref(navigator.languages); + useEventListener(window2, "languagechange", () => { + value.value = navigator.languages; + }); + return value; +} +function usePreferredReducedMotion(options) { + const isReduced = useMediaQuery("(prefers-reduced-motion: reduce)", options); + return computed(() => { + if (isReduced.value) + return "reduce"; + return "no-preference"; + }); +} +function usePrevious(value, initialValue) { + const previous = shallowRef(initialValue); + watch( + toRef2(value), + (_, oldValue) => { + previous.value = oldValue; + }, + { flush: "sync" } + ); + return readonly(previous); +} +var topVarName = "--vueuse-safe-area-top"; +var rightVarName = "--vueuse-safe-area-right"; +var bottomVarName = "--vueuse-safe-area-bottom"; +var leftVarName = "--vueuse-safe-area-left"; +function useScreenSafeArea() { + const top = ref(""); + const right = ref(""); + const bottom = ref(""); + const left = ref(""); + if (isClient) { + const topCssVar = useCssVar(topVarName); + const rightCssVar = useCssVar(rightVarName); + const bottomCssVar = useCssVar(bottomVarName); + const leftCssVar = useCssVar(leftVarName); + topCssVar.value = "env(safe-area-inset-top, 0px)"; + rightCssVar.value = "env(safe-area-inset-right, 0px)"; + bottomCssVar.value = "env(safe-area-inset-bottom, 0px)"; + leftCssVar.value = "env(safe-area-inset-left, 0px)"; + update(); + useEventListener("resize", useDebounceFn(update)); + } + function update() { + top.value = getValue(topVarName); + right.value = getValue(rightVarName); + bottom.value = getValue(bottomVarName); + left.value = getValue(leftVarName); + } + return { + top, + right, + bottom, + left, + update + }; +} +function getValue(position) { + return getComputedStyle(document.documentElement).getPropertyValue(position); +} +function useScriptTag(src, onLoaded = noop, options = {}) { + const { + immediate = true, + manual = false, + type = "text/javascript", + async = true, + crossOrigin, + referrerPolicy, + noModule, + defer, + document: document2 = defaultDocument, + attrs = {} + } = options; + const scriptTag = ref(null); + let _promise = null; + const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => { + const resolveWithElement = (el2) => { + scriptTag.value = el2; + resolve(el2); + return el2; + }; + if (!document2) { + resolve(false); + return; + } + let shouldAppend = false; + let el = document2.querySelector(`script[src="${toValue(src)}"]`); + if (!el) { + el = document2.createElement("script"); + el.type = type; + el.async = async; + el.src = toValue(src); + if (defer) + el.defer = defer; + if (crossOrigin) + el.crossOrigin = crossOrigin; + if (noModule) + el.noModule = noModule; + if (referrerPolicy) + el.referrerPolicy = referrerPolicy; + Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value)); + shouldAppend = true; + } else if (el.hasAttribute("data-loaded")) { + resolveWithElement(el); + } + el.addEventListener("error", (event) => reject(event)); + el.addEventListener("abort", (event) => reject(event)); + el.addEventListener("load", () => { + el.setAttribute("data-loaded", "true"); + onLoaded(el); + resolveWithElement(el); + }); + if (shouldAppend) + el = document2.head.appendChild(el); + if (!waitForScriptLoad) + resolveWithElement(el); + }); + const load = (waitForScriptLoad = true) => { + if (!_promise) + _promise = loadScript(waitForScriptLoad); + return _promise; + }; + const unload = () => { + if (!document2) + return; + _promise = null; + if (scriptTag.value) + scriptTag.value = null; + const el = document2.querySelector(`script[src="${toValue(src)}"]`); + if (el) + document2.head.removeChild(el); + }; + if (immediate && !manual) + tryOnMounted(load); + if (!manual) + tryOnUnmounted(unload); + return { scriptTag, load, unload }; +} +function checkOverflowScroll(ele) { + const style = window.getComputedStyle(ele); + if (style.overflowX === "scroll" || style.overflowY === "scroll" || style.overflowX === "auto" && ele.clientWidth < ele.scrollWidth || style.overflowY === "auto" && ele.clientHeight < ele.scrollHeight) { + return true; + } else { + const parent = ele.parentNode; + if (!parent || parent.tagName === "BODY") + return false; + return checkOverflowScroll(parent); + } +} +function preventDefault(rawEvent) { + const e = rawEvent || window.event; + const _target = e.target; + if (checkOverflowScroll(_target)) + return false; + if (e.touches.length > 1) + return true; + if (e.preventDefault) + e.preventDefault(); + return false; +} +var elInitialOverflow = /* @__PURE__ */ new WeakMap(); +function useScrollLock(element, initialState = false) { + const isLocked = ref(initialState); + let stopTouchMoveListener = null; + let initialOverflow = ""; + watch(toRef2(element), (el) => { + const target = resolveElement(toValue(el)); + if (target) { + const ele = target; + if (!elInitialOverflow.get(ele)) + elInitialOverflow.set(ele, ele.style.overflow); + if (ele.style.overflow !== "hidden") + initialOverflow = ele.style.overflow; + if (ele.style.overflow === "hidden") + return isLocked.value = true; + if (isLocked.value) + return ele.style.overflow = "hidden"; + } + }, { + immediate: true + }); + const lock = () => { + const el = resolveElement(toValue(element)); + if (!el || isLocked.value) + return; + if (isIOS) { + stopTouchMoveListener = useEventListener( + el, + "touchmove", + (e) => { + preventDefault(e); + }, + { passive: false } + ); + } + el.style.overflow = "hidden"; + isLocked.value = true; + }; + const unlock = () => { + const el = resolveElement(toValue(element)); + if (!el || !isLocked.value) + return; + isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener()); + el.style.overflow = initialOverflow; + elInitialOverflow.delete(el); + isLocked.value = false; + }; + tryOnScopeDispose(unlock); + return computed({ + get() { + return isLocked.value; + }, + set(v) { + if (v) + lock(); + else unlock(); + } + }); +} +function useSessionStorage(key, initialValue, options = {}) { + const { window: window2 = defaultWindow } = options; + return useStorage(key, initialValue, window2 == null ? void 0 : window2.sessionStorage, options); +} +function useShare(shareOptions = {}, options = {}) { + const { navigator = defaultNavigator } = options; + const _navigator = navigator; + const isSupported = useSupported(() => _navigator && "canShare" in _navigator); + const share = async (overrideOptions = {}) => { + if (isSupported.value) { + const data = { + ...toValue(shareOptions), + ...toValue(overrideOptions) + }; + let granted = true; + if (data.files && _navigator.canShare) + granted = _navigator.canShare({ files: data.files }); + if (granted) + return _navigator.share(data); + } + }; + return { + isSupported, + share + }; +} +var defaultSortFn = (source, compareFn) => source.sort(compareFn); +var defaultCompare = (a, b) => a - b; +function useSorted(...args) { + var _a, _b, _c, _d; + const [source] = args; + let compareFn = defaultCompare; + let options = {}; + if (args.length === 2) { + if (typeof args[1] === "object") { + options = args[1]; + compareFn = (_a = options.compareFn) != null ? _a : defaultCompare; + } else { + compareFn = (_b = args[1]) != null ? _b : defaultCompare; + } + } else if (args.length > 2) { + compareFn = (_c = args[1]) != null ? _c : defaultCompare; + options = (_d = args[2]) != null ? _d : {}; + } + const { + dirty = false, + sortFn = defaultSortFn + } = options; + if (!dirty) + return computed(() => sortFn([...toValue(source)], compareFn)); + watchEffect(() => { + const result = sortFn(toValue(source), compareFn); + if (isRef(source)) + source.value = result; + else + source.splice(0, source.length, ...result); + }); + return source; +} +function useSpeechRecognition(options = {}) { + const { + interimResults = true, + continuous = true, + window: window2 = defaultWindow + } = options; + const lang = toRef2(options.lang || "en-US"); + const isListening = ref(false); + const isFinal = ref(false); + const result = ref(""); + const error = shallowRef(void 0); + const toggle = (value = !isListening.value) => { + isListening.value = value; + }; + const start = () => { + isListening.value = true; + }; + const stop = () => { + isListening.value = false; + }; + const SpeechRecognition = window2 && (window2.SpeechRecognition || window2.webkitSpeechRecognition); + const isSupported = useSupported(() => SpeechRecognition); + let recognition; + if (isSupported.value) { + recognition = new SpeechRecognition(); + recognition.continuous = continuous; + recognition.interimResults = interimResults; + recognition.lang = toValue(lang); + recognition.onstart = () => { + isFinal.value = false; + }; + watch(lang, (lang2) => { + if (recognition && !isListening.value) + recognition.lang = lang2; + }); + recognition.onresult = (event) => { + const currentResult = event.results[event.resultIndex]; + const { transcript } = currentResult[0]; + isFinal.value = currentResult.isFinal; + result.value = transcript; + error.value = void 0; + }; + recognition.onerror = (event) => { + error.value = event; + }; + recognition.onend = () => { + isListening.value = false; + recognition.lang = toValue(lang); + }; + watch(isListening, () => { + if (isListening.value) + recognition.start(); + else + recognition.stop(); + }); + } + tryOnScopeDispose(() => { + isListening.value = false; + }); + return { + isSupported, + isListening, + isFinal, + recognition, + result, + error, + toggle, + start, + stop + }; +} +function useSpeechSynthesis(text, options = {}) { + const { + pitch = 1, + rate = 1, + volume = 1, + window: window2 = defaultWindow + } = options; + const synth = window2 && window2.speechSynthesis; + const isSupported = useSupported(() => synth); + const isPlaying = ref(false); + const status = ref("init"); + const spokenText = toRef2(text || ""); + const lang = toRef2(options.lang || "en-US"); + const error = shallowRef(void 0); + const toggle = (value = !isPlaying.value) => { + isPlaying.value = value; + }; + const bindEventsForUtterance = (utterance2) => { + utterance2.lang = toValue(lang); + utterance2.voice = toValue(options.voice) || null; + utterance2.pitch = toValue(pitch); + utterance2.rate = toValue(rate); + utterance2.volume = volume; + utterance2.onstart = () => { + isPlaying.value = true; + status.value = "play"; + }; + utterance2.onpause = () => { + isPlaying.value = false; + status.value = "pause"; + }; + utterance2.onresume = () => { + isPlaying.value = true; + status.value = "play"; + }; + utterance2.onend = () => { + isPlaying.value = false; + status.value = "end"; + }; + utterance2.onerror = (event) => { + error.value = event; + }; + }; + const utterance = computed(() => { + isPlaying.value = false; + status.value = "init"; + const newUtterance = new SpeechSynthesisUtterance(spokenText.value); + bindEventsForUtterance(newUtterance); + return newUtterance; + }); + const speak = () => { + synth.cancel(); + utterance && synth.speak(utterance.value); + }; + const stop = () => { + synth.cancel(); + isPlaying.value = false; + }; + if (isSupported.value) { + bindEventsForUtterance(utterance.value); + watch(lang, (lang2) => { + if (utterance.value && !isPlaying.value) + utterance.value.lang = lang2; + }); + if (options.voice) { + watch(options.voice, () => { + synth.cancel(); + }); + } + watch(isPlaying, () => { + if (isPlaying.value) + synth.resume(); + else + synth.pause(); + }); + } + tryOnScopeDispose(() => { + isPlaying.value = false; + }); + return { + isSupported, + isPlaying, + status, + utterance, + error, + stop, + toggle, + speak + }; +} +function useStepper(steps, initialStep) { + const stepsRef = ref(steps); + const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value)); + const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0])); + const current = computed(() => at(index.value)); + const isFirst = computed(() => index.value === 0); + const isLast = computed(() => index.value === stepNames.value.length - 1); + const next = computed(() => stepNames.value[index.value + 1]); + const previous = computed(() => stepNames.value[index.value - 1]); + function at(index2) { + if (Array.isArray(stepsRef.value)) + return stepsRef.value[index2]; + return stepsRef.value[stepNames.value[index2]]; + } + function get2(step) { + if (!stepNames.value.includes(step)) + return; + return at(stepNames.value.indexOf(step)); + } + function goTo(step) { + if (stepNames.value.includes(step)) + index.value = stepNames.value.indexOf(step); + } + function goToNext() { + if (isLast.value) + return; + index.value++; + } + function goToPrevious() { + if (isFirst.value) + return; + index.value--; + } + function goBackTo(step) { + if (isAfter(step)) + goTo(step); + } + function isNext(step) { + return stepNames.value.indexOf(step) === index.value + 1; + } + function isPrevious(step) { + return stepNames.value.indexOf(step) === index.value - 1; + } + function isCurrent(step) { + return stepNames.value.indexOf(step) === index.value; + } + function isBefore(step) { + return index.value < stepNames.value.indexOf(step); + } + function isAfter(step) { + return index.value > stepNames.value.indexOf(step); + } + return { + steps: stepsRef, + stepNames, + index, + current, + next, + previous, + isFirst, + isLast, + at, + get: get2, + goTo, + goToNext, + goToPrevious, + goBackTo, + isNext, + isPrevious, + isCurrent, + isBefore, + isAfter + }; +} +function useStorageAsync(key, initialValue, storage, options = {}) { + var _a; + const { + flush = "pre", + deep = true, + listenToStorageChanges = true, + writeDefaults = true, + mergeDefaults = false, + shallow, + window: window2 = defaultWindow, + eventFilter, + onError = (e) => { + console.error(e); + } + } = options; + const rawInit = toValue(initialValue); + const type = guessSerializerType(rawInit); + const data = (shallow ? shallowRef : ref)(initialValue); + const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type]; + if (!storage) { + try { + storage = getSSRHandler("getDefaultStorageAsync", () => { + var _a2; + return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage; + })(); + } catch (e) { + onError(e); + } + } + async function read(event) { + if (!storage || event && event.key !== key) + return; + try { + const rawValue = event ? event.newValue : await storage.getItem(key); + if (rawValue == null) { + data.value = rawInit; + if (writeDefaults && rawInit !== null) + await storage.setItem(key, await serializer.write(rawInit)); + } else if (mergeDefaults) { + const value = await serializer.read(rawValue); + if (typeof mergeDefaults === "function") + data.value = mergeDefaults(value, rawInit); + else if (type === "object" && !Array.isArray(value)) + data.value = { ...rawInit, ...value }; + else data.value = value; + } else { + data.value = await serializer.read(rawValue); + } + } catch (e) { + onError(e); + } + } + read(); + if (window2 && listenToStorageChanges) + useEventListener(window2, "storage", (e) => Promise.resolve().then(() => read(e))); + if (storage) { + watchWithFilter( + data, + async () => { + try { + if (data.value == null) + await storage.removeItem(key); + else + await storage.setItem(key, await serializer.write(data.value)); + } catch (e) { + onError(e); + } + }, + { + flush, + deep, + eventFilter + } + ); + } + return data; +} +var _id = 0; +function useStyleTag(css, options = {}) { + const isLoaded = ref(false); + const { + document: document2 = defaultDocument, + immediate = true, + manual = false, + id = `vueuse_styletag_${++_id}` + } = options; + const cssRef = ref(css); + let stop = () => { + }; + const load = () => { + if (!document2) + return; + const el = document2.getElementById(id) || document2.createElement("style"); + if (!el.isConnected) { + el.id = id; + if (options.media) + el.media = options.media; + document2.head.appendChild(el); + } + if (isLoaded.value) + return; + stop = watch( + cssRef, + (value) => { + el.textContent = value; + }, + { immediate: true } + ); + isLoaded.value = true; + }; + const unload = () => { + if (!document2 || !isLoaded.value) + return; + stop(); + document2.head.removeChild(document2.getElementById(id)); + isLoaded.value = false; + }; + if (immediate && !manual) + tryOnMounted(load); + if (!manual) + tryOnScopeDispose(unload); + return { + id, + css: cssRef, + unload, + load, + isLoaded: readonly(isLoaded) + }; +} +function useSwipe(target, options = {}) { + const { + threshold = 50, + onSwipe, + onSwipeEnd, + onSwipeStart, + passive = true, + window: window2 = defaultWindow + } = options; + const coordsStart = reactive({ x: 0, y: 0 }); + const coordsEnd = reactive({ x: 0, y: 0 }); + const diffX = computed(() => coordsStart.x - coordsEnd.x); + const diffY = computed(() => coordsStart.y - coordsEnd.y); + const { max, abs } = Math; + const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold); + const isSwiping = ref(false); + const direction = computed(() => { + if (!isThresholdExceeded.value) + return "none"; + if (abs(diffX.value) > abs(diffY.value)) { + return diffX.value > 0 ? "left" : "right"; + } else { + return diffY.value > 0 ? "up" : "down"; + } + }); + const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY]; + const updateCoordsStart = (x, y) => { + coordsStart.x = x; + coordsStart.y = y; + }; + const updateCoordsEnd = (x, y) => { + coordsEnd.x = x; + coordsEnd.y = y; + }; + let listenerOptions; + const isPassiveEventSupported = checkPassiveEventSupport(window2 == null ? void 0 : window2.document); + if (!passive) + listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true }; + else + listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false }; + const onTouchEnd = (e) => { + if (isSwiping.value) + onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value); + isSwiping.value = false; + }; + const stops = [ + useEventListener(target, "touchstart", (e) => { + if (e.touches.length !== 1) + return; + if (listenerOptions.capture && !listenerOptions.passive) + e.preventDefault(); + const [x, y] = getTouchEventCoords(e); + updateCoordsStart(x, y); + updateCoordsEnd(x, y); + onSwipeStart == null ? void 0 : onSwipeStart(e); + }, listenerOptions), + useEventListener(target, "touchmove", (e) => { + if (e.touches.length !== 1) + return; + const [x, y] = getTouchEventCoords(e); + updateCoordsEnd(x, y); + if (!isSwiping.value && isThresholdExceeded.value) + isSwiping.value = true; + if (isSwiping.value) + onSwipe == null ? void 0 : onSwipe(e); + }, listenerOptions), + useEventListener(target, ["touchend", "touchcancel"], onTouchEnd, listenerOptions) + ]; + const stop = () => stops.forEach((s) => s()); + return { + isPassiveEventSupported, + isSwiping, + direction, + coordsStart, + coordsEnd, + lengthX: diffX, + lengthY: diffY, + stop + }; +} +function checkPassiveEventSupport(document2) { + if (!document2) + return false; + let supportsPassive = false; + const optionsBlock = { + get passive() { + supportsPassive = true; + return false; + } + }; + document2.addEventListener("x", noop, optionsBlock); + document2.removeEventListener("x", noop); + return supportsPassive; +} +function useTemplateRefsList() { + const refs = ref([]); + refs.value.set = (el) => { + if (el) + refs.value.push(el); + }; + onBeforeUpdate(() => { + refs.value.length = 0; + }); + return refs; +} +function useTextDirection(options = {}) { + const { + document: document2 = defaultDocument, + selector = "html", + observe = false, + initialValue = "ltr" + } = options; + function getValue2() { + var _a, _b; + return (_b = (_a = document2 == null ? void 0 : document2.querySelector(selector)) == null ? void 0 : _a.getAttribute("dir")) != null ? _b : initialValue; + } + const dir = ref(getValue2()); + tryOnMounted(() => dir.value = getValue2()); + if (observe && document2) { + useMutationObserver( + document2.querySelector(selector), + () => dir.value = getValue2(), + { attributes: true } + ); + } + return computed({ + get() { + return dir.value; + }, + set(v) { + var _a, _b; + dir.value = v; + if (!document2) + return; + if (dir.value) + (_a = document2.querySelector(selector)) == null ? void 0 : _a.setAttribute("dir", dir.value); + else + (_b = document2.querySelector(selector)) == null ? void 0 : _b.removeAttribute("dir"); + } + }); +} +function getRangesFromSelection(selection) { + var _a; + const rangeCount = (_a = selection.rangeCount) != null ? _a : 0; + return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i)); +} +function useTextSelection(options = {}) { + const { + window: window2 = defaultWindow + } = options; + const selection = ref(null); + const text = computed(() => { + var _a, _b; + return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : ""; + }); + const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []); + const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect())); + function onSelectionChange() { + selection.value = null; + if (window2) + selection.value = window2.getSelection(); + } + if (window2) + useEventListener(window2.document, "selectionchange", onSelectionChange); + return { + text, + rects, + ranges, + selection + }; +} +function useTextareaAutosize(options) { + var _a; + const textarea = ref(options == null ? void 0 : options.element); + const input = ref(options == null ? void 0 : options.input); + const styleProp = (_a = options == null ? void 0 : options.styleProp) != null ? _a : "height"; + const textareaScrollHeight = ref(1); + function triggerResize() { + var _a2; + if (!textarea.value) + return; + let height = ""; + textarea.value.style[styleProp] = "1px"; + textareaScrollHeight.value = (_a2 = textarea.value) == null ? void 0 : _a2.scrollHeight; + if (options == null ? void 0 : options.styleTarget) + toValue(options.styleTarget).style[styleProp] = `${textareaScrollHeight.value}px`; + else + height = `${textareaScrollHeight.value}px`; + textarea.value.style[styleProp] = height; + } + watch([input, textarea], () => nextTick(triggerResize), { immediate: true }); + watch(textareaScrollHeight, () => { + var _a2; + return (_a2 = options == null ? void 0 : options.onResize) == null ? void 0 : _a2.call(options); + }); + useResizeObserver(textarea, () => triggerResize()); + if (options == null ? void 0 : options.watch) + watch(options.watch, triggerResize, { immediate: true, deep: true }); + return { + textarea, + input, + triggerResize + }; +} +function useThrottledRefHistory(source, options = {}) { + const { throttle = 200, trailing = true } = options; + const filter = throttleFilter(throttle, trailing); + const history = useRefHistory(source, { ...options, eventFilter: filter }); + return { + ...history + }; +} +var DEFAULT_UNITS = [ + { max: 6e4, value: 1e3, name: "second" }, + { max: 276e4, value: 6e4, name: "minute" }, + { max: 72e6, value: 36e5, name: "hour" }, + { max: 5184e5, value: 864e5, name: "day" }, + { max: 24192e5, value: 6048e5, name: "week" }, + { max: 28512e6, value: 2592e6, name: "month" }, + { max: Number.POSITIVE_INFINITY, value: 31536e6, name: "year" } +]; +var DEFAULT_MESSAGES = { + justNow: "just now", + past: (n) => n.match(/\d/) ? `${n} ago` : n, + future: (n) => n.match(/\d/) ? `in ${n}` : n, + month: (n, past) => n === 1 ? past ? "last month" : "next month" : `${n} month${n > 1 ? "s" : ""}`, + year: (n, past) => n === 1 ? past ? "last year" : "next year" : `${n} year${n > 1 ? "s" : ""}`, + day: (n, past) => n === 1 ? past ? "yesterday" : "tomorrow" : `${n} day${n > 1 ? "s" : ""}`, + week: (n, past) => n === 1 ? past ? "last week" : "next week" : `${n} week${n > 1 ? "s" : ""}`, + hour: (n) => `${n} hour${n > 1 ? "s" : ""}`, + minute: (n) => `${n} minute${n > 1 ? "s" : ""}`, + second: (n) => `${n} second${n > 1 ? "s" : ""}`, + invalid: "" +}; +function DEFAULT_FORMATTER(date) { + return date.toISOString().slice(0, 10); +} +function useTimeAgo(time, options = {}) { + const { + controls: exposeControls = false, + updateInterval = 3e4 + } = options; + const { now: now2, ...controls } = useNow({ interval: updateInterval, controls: true }); + const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now2))); + if (exposeControls) { + return { + timeAgo, + ...controls + }; + } else { + return timeAgo; + } +} +function formatTimeAgo(from, options = {}, now2 = Date.now()) { + var _a; + const { + max, + messages = DEFAULT_MESSAGES, + fullDateFormatter = DEFAULT_FORMATTER, + units = DEFAULT_UNITS, + showSecond = false, + rounding = "round" + } = options; + const roundFn = typeof rounding === "number" ? (n) => +n.toFixed(rounding) : Math[rounding]; + const diff = +now2 - +from; + const absDiff = Math.abs(diff); + function getValue2(diff2, unit) { + return roundFn(Math.abs(diff2) / unit.value); + } + function format(diff2, unit) { + const val = getValue2(diff2, unit); + const past = diff2 > 0; + const str = applyFormat(unit.name, val, past); + return applyFormat(past ? "past" : "future", str, past); + } + function applyFormat(name, val, isPast) { + const formatter = messages[name]; + if (typeof formatter === "function") + return formatter(val, isPast); + return formatter.replace("{0}", val.toString()); + } + if (absDiff < 6e4 && !showSecond) + return messages.justNow; + if (typeof max === "number" && absDiff > max) + return fullDateFormatter(new Date(from)); + if (typeof max === "string") { + const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max; + if (unitMax && absDiff > unitMax) + return fullDateFormatter(new Date(from)); + } + for (const [idx, unit] of units.entries()) { + const val = getValue2(diff, unit); + if (val <= 0 && units[idx - 1]) + return format(diff, units[idx - 1]); + if (absDiff < unit.max) + return format(diff, unit); + } + return messages.invalid; +} +function useTimeoutPoll(fn, interval, timeoutPollOptions) { + const { start } = useTimeoutFn(loop, interval, { immediate: false }); + const isActive = ref(false); + async function loop() { + if (!isActive.value) + return; + await fn(); + start(); + } + function resume() { + if (!isActive.value) { + isActive.value = true; + loop(); + } + } + function pause() { + isActive.value = false; + } + if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate) + resume(); + tryOnScopeDispose(pause); + return { + isActive, + pause, + resume + }; +} +function useTimestamp(options = {}) { + const { + controls: exposeControls = false, + offset = 0, + immediate = true, + interval = "requestAnimationFrame", + callback + } = options; + const ts = ref(timestamp() + offset); + const update = () => ts.value = timestamp() + offset; + const cb = callback ? () => { + update(); + callback(ts.value); + } : update; + const controls = interval === "requestAnimationFrame" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate }); + if (exposeControls) { + return { + timestamp: ts, + ...controls + }; + } else { + return ts; + } +} +function useTitle(newTitle = null, options = {}) { + var _a, _b, _c; + const { + document: document2 = defaultDocument, + restoreOnUnmount = (t) => t + } = options; + const originalTitle = (_a = document2 == null ? void 0 : document2.title) != null ? _a : ""; + const title = toRef2((_b = newTitle != null ? newTitle : document2 == null ? void 0 : document2.title) != null ? _b : null); + const isReadonly2 = newTitle && typeof newTitle === "function"; + function format(t) { + if (!("titleTemplate" in options)) + return t; + const template = options.titleTemplate || "%s"; + return typeof template === "function" ? template(t) : toValue(template).replace(/%s/g, t); + } + watch( + title, + (t, o) => { + if (t !== o && document2) + document2.title = format(typeof t === "string" ? t : ""); + }, + { immediate: true } + ); + if (options.observe && !options.titleTemplate && document2 && !isReadonly2) { + useMutationObserver( + (_c = document2.head) == null ? void 0 : _c.querySelector("title"), + () => { + if (document2 && document2.title !== title.value) + title.value = format(document2.title); + }, + { childList: true } + ); + } + tryOnBeforeUnmount(() => { + if (restoreOnUnmount) { + const restoredTitle = restoreOnUnmount(originalTitle, title.value || ""); + if (restoredTitle != null && document2) + document2.title = restoredTitle; + } + }); + return title; +} +var _TransitionPresets = { + easeInSine: [0.12, 0, 0.39, 0], + easeOutSine: [0.61, 1, 0.88, 1], + easeInOutSine: [0.37, 0, 0.63, 1], + easeInQuad: [0.11, 0, 0.5, 0], + easeOutQuad: [0.5, 1, 0.89, 1], + easeInOutQuad: [0.45, 0, 0.55, 1], + easeInCubic: [0.32, 0, 0.67, 0], + easeOutCubic: [0.33, 1, 0.68, 1], + easeInOutCubic: [0.65, 0, 0.35, 1], + easeInQuart: [0.5, 0, 0.75, 0], + easeOutQuart: [0.25, 1, 0.5, 1], + easeInOutQuart: [0.76, 0, 0.24, 1], + easeInQuint: [0.64, 0, 0.78, 0], + easeOutQuint: [0.22, 1, 0.36, 1], + easeInOutQuint: [0.83, 0, 0.17, 1], + easeInExpo: [0.7, 0, 0.84, 0], + easeOutExpo: [0.16, 1, 0.3, 1], + easeInOutExpo: [0.87, 0, 0.13, 1], + easeInCirc: [0.55, 0, 1, 0.45], + easeOutCirc: [0, 0.55, 0.45, 1], + easeInOutCirc: [0.85, 0, 0.15, 1], + easeInBack: [0.36, 0, 0.66, -0.56], + easeOutBack: [0.34, 1.56, 0.64, 1], + easeInOutBack: [0.68, -0.6, 0.32, 1.6] +}; +var TransitionPresets = Object.assign({}, { linear: identity }, _TransitionPresets); +function createEasingFunction([p0, p1, p2, p3]) { + const a = (a1, a2) => 1 - 3 * a2 + 3 * a1; + const b = (a1, a2) => 3 * a2 - 6 * a1; + const c = (a1) => 3 * a1; + const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t; + const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1); + const getTforX = (x) => { + let aGuessT = x; + for (let i = 0; i < 4; ++i) { + const currentSlope = getSlope(aGuessT, p0, p2); + if (currentSlope === 0) + return aGuessT; + const currentX = calcBezier(aGuessT, p0, p2) - x; + aGuessT -= currentX / currentSlope; + } + return aGuessT; + }; + return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3); +} +function lerp(a, b, alpha) { + return a + alpha * (b - a); +} +function toVec(t) { + return (typeof t === "number" ? [t] : t) || []; +} +function executeTransition(source, from, to, options = {}) { + var _a, _b; + const fromVal = toValue(from); + const toVal = toValue(to); + const v1 = toVec(fromVal); + const v2 = toVec(toVal); + const duration = (_a = toValue(options.duration)) != null ? _a : 1e3; + const startedAt = Date.now(); + const endAt = Date.now() + duration; + const trans = typeof options.transition === "function" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity; + const ease = typeof trans === "function" ? trans : createEasingFunction(trans); + return new Promise((resolve) => { + source.value = fromVal; + const tick = () => { + var _a2; + if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) { + resolve(); + return; + } + const now2 = Date.now(); + const alpha = ease((now2 - startedAt) / duration); + const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha)); + if (Array.isArray(source.value)) + source.value = arr.map((n, i) => { + var _a3, _b2; + return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha); + }); + else if (typeof source.value === "number") + source.value = arr[0]; + if (now2 < endAt) { + requestAnimationFrame(tick); + } else { + source.value = toVal; + resolve(); + } + }; + tick(); + }); +} +function useTransition(source, options = {}) { + let currentId = 0; + const sourceVal = () => { + const v = toValue(source); + return typeof v === "number" ? v : v.map(toValue); + }; + const outputRef = ref(sourceVal()); + watch(sourceVal, async (to) => { + var _a, _b; + if (toValue(options.disabled)) + return; + const id = ++currentId; + if (options.delay) + await promiseTimeout(toValue(options.delay)); + if (id !== currentId) + return; + const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to); + (_a = options.onStarted) == null ? void 0 : _a.call(options); + await executeTransition(outputRef, outputRef.value, toVal, { + ...options, + abort: () => { + var _a2; + return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options)); + } + }); + (_b = options.onFinished) == null ? void 0 : _b.call(options); + }, { deep: true }); + watch(() => toValue(options.disabled), (disabled) => { + if (disabled) { + currentId++; + outputRef.value = sourceVal(); + } + }); + tryOnScopeDispose(() => { + currentId++; + }); + return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value); +} +function useUrlSearchParams(mode = "history", options = {}) { + const { + initialValue = {}, + removeNullishValues = true, + removeFalsyValues = false, + write: enableWrite = true, + window: window2 = defaultWindow + } = options; + if (!window2) + return reactive(initialValue); + const state = reactive({}); + function getRawParams() { + if (mode === "history") { + return window2.location.search || ""; + } else if (mode === "hash") { + const hash = window2.location.hash || ""; + const index = hash.indexOf("?"); + return index > 0 ? hash.slice(index) : ""; + } else { + return (window2.location.hash || "").replace(/^#/, ""); + } + } + function constructQuery(params) { + const stringified = params.toString(); + if (mode === "history") + return `${stringified ? `?${stringified}` : ""}${window2.location.hash || ""}`; + if (mode === "hash-params") + return `${window2.location.search || ""}${stringified ? `#${stringified}` : ""}`; + const hash = window2.location.hash || "#"; + const index = hash.indexOf("?"); + if (index > 0) + return `${hash.slice(0, index)}${stringified ? `?${stringified}` : ""}`; + return `${hash}${stringified ? `?${stringified}` : ""}`; + } + function read() { + return new URLSearchParams(getRawParams()); + } + function updateState(params) { + const unusedKeys = new Set(Object.keys(state)); + for (const key of params.keys()) { + const paramsForKey = params.getAll(key); + state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || ""; + unusedKeys.delete(key); + } + Array.from(unusedKeys).forEach((key) => delete state[key]); + } + const { pause, resume } = watchPausable( + state, + () => { + const params = new URLSearchParams(""); + Object.keys(state).forEach((key) => { + const mapEntry = state[key]; + if (Array.isArray(mapEntry)) + mapEntry.forEach((value) => params.append(key, value)); + else if (removeNullishValues && mapEntry == null) + params.delete(key); + else if (removeFalsyValues && !mapEntry) + params.delete(key); + else + params.set(key, mapEntry); + }); + write(params); + }, + { deep: true } + ); + function write(params, shouldUpdate) { + pause(); + if (shouldUpdate) + updateState(params); + window2.history.replaceState( + window2.history.state, + window2.document.title, + window2.location.pathname + constructQuery(params) + ); + resume(); + } + function onChanged() { + if (!enableWrite) + return; + write(read(), true); + } + useEventListener(window2, "popstate", onChanged, false); + if (mode !== "history") + useEventListener(window2, "hashchange", onChanged, false); + const initial = read(); + if (initial.keys().next().value) + updateState(initial); + else + Object.assign(state, initialValue); + return state; +} +function useUserMedia(options = {}) { + var _a, _b; + const enabled = ref((_a = options.enabled) != null ? _a : false); + const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true); + const constraints = ref(options.constraints); + const { navigator = defaultNavigator } = options; + const isSupported = useSupported(() => { + var _a2; + return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia; + }); + const stream = shallowRef(); + function getDeviceOptions(type) { + switch (type) { + case "video": { + if (constraints.value) + return constraints.value.video || false; + break; + } + case "audio": { + if (constraints.value) + return constraints.value.audio || false; + break; + } + } + } + async function _start() { + if (!isSupported.value || stream.value) + return; + stream.value = await navigator.mediaDevices.getUserMedia({ + video: getDeviceOptions("video"), + audio: getDeviceOptions("audio") + }); + return stream.value; + } + function _stop() { + var _a2; + (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop()); + stream.value = void 0; + } + function stop() { + _stop(); + enabled.value = false; + } + async function start() { + await _start(); + if (stream.value) + enabled.value = true; + return stream.value; + } + async function restart() { + _stop(); + return await start(); + } + watch( + enabled, + (v) => { + if (v) + _start(); + else _stop(); + }, + { immediate: true } + ); + watch( + constraints, + () => { + if (autoSwitch.value && stream.value) + restart(); + }, + { immediate: true } + ); + tryOnScopeDispose(() => { + stop(); + }); + return { + isSupported, + stream, + start, + stop, + restart, + constraints, + enabled, + autoSwitch + }; +} +function useVModel(props, key, emit, options = {}) { + var _a, _b, _c, _d, _e; + const { + clone = false, + passive = false, + eventName, + deep = false, + defaultValue, + shouldEmit + } = options; + const vm = getCurrentInstance(); + const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy)); + let event = eventName; + if (!key) { + if (isVue2) { + const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model; + key = (modelOptions == null ? void 0 : modelOptions.value) || "value"; + if (!eventName) + event = (modelOptions == null ? void 0 : modelOptions.event) || "input"; + } else { + key = "modelValue"; + } + } + event = event || `update:${key.toString()}`; + const cloneFn = (val) => !clone ? val : typeof clone === "function" ? clone(val) : cloneFnJSON(val); + const getValue2 = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue; + const triggerEmit = (value) => { + if (shouldEmit) { + if (shouldEmit(value)) + _emit(event, value); + } else { + _emit(event, value); + } + }; + if (passive) { + const initialValue = getValue2(); + const proxy = ref(initialValue); + let isUpdating = false; + watch( + () => props[key], + (v) => { + if (!isUpdating) { + isUpdating = true; + proxy.value = cloneFn(v); + nextTick(() => isUpdating = false); + } + } + ); + watch( + proxy, + (v) => { + if (!isUpdating && (v !== props[key] || deep)) + triggerEmit(v); + }, + { deep } + ); + return proxy; + } else { + return computed({ + get() { + return getValue2(); + }, + set(value) { + triggerEmit(value); + } + }); + } +} +function useVModels(props, emit, options = {}) { + const ret = {}; + for (const key in props) { + ret[key] = useVModel( + props, + key, + emit, + options + ); + } + return ret; +} +function useVibrate(options) { + const { + pattern = [], + interval = 0, + navigator = defaultNavigator + } = options || {}; + const isSupported = useSupported(() => typeof navigator !== "undefined" && "vibrate" in navigator); + const patternRef = toRef2(pattern); + let intervalControls; + const vibrate = (pattern2 = patternRef.value) => { + if (isSupported.value) + navigator.vibrate(pattern2); + }; + const stop = () => { + if (isSupported.value) + navigator.vibrate(0); + intervalControls == null ? void 0 : intervalControls.pause(); + }; + if (interval > 0) { + intervalControls = useIntervalFn( + vibrate, + interval, + { + immediate: false, + immediateCallback: false + } + ); + } + return { + isSupported, + pattern, + intervalControls, + vibrate, + stop + }; +} +function useVirtualList(list, options) { + const { containerStyle, wrapperProps, scrollTo: scrollTo2, calculateRange, currentList, containerRef } = "itemHeight" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list); + return { + list: currentList, + scrollTo: scrollTo2, + containerProps: { + ref: containerRef, + onScroll: () => { + calculateRange(); + }, + style: containerStyle + }, + wrapperProps + }; +} +function useVirtualListResources(list) { + const containerRef = ref(null); + const size = useElementSize(containerRef); + const currentList = ref([]); + const source = shallowRef(list); + const state = ref({ start: 0, end: 10 }); + return { state, source, currentList, size, containerRef }; +} +function createGetViewCapacity(state, source, itemSize) { + return (containerSize) => { + if (typeof itemSize === "number") + return Math.ceil(containerSize / itemSize); + const { start = 0 } = state.value; + let sum = 0; + let capacity = 0; + for (let i = start; i < source.value.length; i++) { + const size = itemSize(i); + sum += size; + capacity = i; + if (sum > containerSize) + break; + } + return capacity - start; + }; +} +function createGetOffset(source, itemSize) { + return (scrollDirection) => { + if (typeof itemSize === "number") + return Math.floor(scrollDirection / itemSize) + 1; + let sum = 0; + let offset = 0; + for (let i = 0; i < source.value.length; i++) { + const size = itemSize(i); + sum += size; + if (sum >= scrollDirection) { + offset = i; + break; + } + } + return offset + 1; + }; +} +function createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) { + return () => { + const element = containerRef.value; + if (element) { + const offset = getOffset(type === "vertical" ? element.scrollTop : element.scrollLeft); + const viewCapacity = getViewCapacity(type === "vertical" ? element.clientHeight : element.clientWidth); + const from = offset - overscan; + const to = offset + viewCapacity + overscan; + state.value = { + start: from < 0 ? 0 : from, + end: to > source.value.length ? source.value.length : to + }; + currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({ + data: ele, + index: index + state.value.start + })); + } + }; +} +function createGetDistance(itemSize, source) { + return (index) => { + if (typeof itemSize === "number") { + const size2 = index * itemSize; + return size2; + } + const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0); + return size; + }; +} +function useWatchForSizes(size, list, containerRef, calculateRange) { + watch([size.width, size.height, list, containerRef], () => { + calculateRange(); + }); +} +function createComputedTotalSize(itemSize, source) { + return computed(() => { + if (typeof itemSize === "number") + return source.value.length * itemSize; + return source.value.reduce((sum, _, index) => sum + itemSize(index), 0); + }); +} +var scrollToDictionaryForElementScrollKey = { + horizontal: "scrollLeft", + vertical: "scrollTop" +}; +function createScrollTo(type, calculateRange, getDistance, containerRef) { + return (index) => { + if (containerRef.value) { + containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index); + calculateRange(); + } + }; +} +function useHorizontalVirtualList(options, list) { + const resources = useVirtualListResources(list); + const { state, source, currentList, size, containerRef } = resources; + const containerStyle = { overflowX: "auto" }; + const { itemWidth, overscan = 5 } = options; + const getViewCapacity = createGetViewCapacity(state, source, itemWidth); + const getOffset = createGetOffset(source, itemWidth); + const calculateRange = createCalculateRange("horizontal", overscan, getOffset, getViewCapacity, resources); + const getDistanceLeft = createGetDistance(itemWidth, source); + const offsetLeft = computed(() => getDistanceLeft(state.value.start)); + const totalWidth = createComputedTotalSize(itemWidth, source); + useWatchForSizes(size, list, containerRef, calculateRange); + const scrollTo2 = createScrollTo("horizontal", calculateRange, getDistanceLeft, containerRef); + const wrapperProps = computed(() => { + return { + style: { + height: "100%", + width: `${totalWidth.value - offsetLeft.value}px`, + marginLeft: `${offsetLeft.value}px`, + display: "flex" + } + }; + }); + return { + scrollTo: scrollTo2, + calculateRange, + wrapperProps, + containerStyle, + currentList, + containerRef + }; +} +function useVerticalVirtualList(options, list) { + const resources = useVirtualListResources(list); + const { state, source, currentList, size, containerRef } = resources; + const containerStyle = { overflowY: "auto" }; + const { itemHeight, overscan = 5 } = options; + const getViewCapacity = createGetViewCapacity(state, source, itemHeight); + const getOffset = createGetOffset(source, itemHeight); + const calculateRange = createCalculateRange("vertical", overscan, getOffset, getViewCapacity, resources); + const getDistanceTop = createGetDistance(itemHeight, source); + const offsetTop = computed(() => getDistanceTop(state.value.start)); + const totalHeight = createComputedTotalSize(itemHeight, source); + useWatchForSizes(size, list, containerRef, calculateRange); + const scrollTo2 = createScrollTo("vertical", calculateRange, getDistanceTop, containerRef); + const wrapperProps = computed(() => { + return { + style: { + width: "100%", + height: `${totalHeight.value - offsetTop.value}px`, + marginTop: `${offsetTop.value}px` + } + }; + }); + return { + calculateRange, + scrollTo: scrollTo2, + containerStyle, + wrapperProps, + currentList, + containerRef + }; +} +function useWakeLock(options = {}) { + const { + navigator = defaultNavigator, + document: document2 = defaultDocument + } = options; + let wakeLock; + const isSupported = useSupported(() => navigator && "wakeLock" in navigator); + const isActive = ref(false); + async function onVisibilityChange() { + if (!isSupported.value || !wakeLock) + return; + if (document2 && document2.visibilityState === "visible") + wakeLock = await navigator.wakeLock.request("screen"); + isActive.value = !wakeLock.released; + } + if (document2) + useEventListener(document2, "visibilitychange", onVisibilityChange, { passive: true }); + async function request(type) { + if (!isSupported.value) + return; + wakeLock = await navigator.wakeLock.request(type); + isActive.value = !wakeLock.released; + } + async function release() { + if (!isSupported.value || !wakeLock) + return; + await wakeLock.release(); + isActive.value = !wakeLock.released; + wakeLock = null; + } + return { + isSupported, + isActive, + request, + release + }; +} +function useWebNotification(options = {}) { + const { + window: window2 = defaultWindow, + requestPermissions: _requestForPermissions = true + } = options; + const defaultWebNotificationOptions = options; + const isSupported = useSupported(() => { + if (!window2 || !("Notification" in window2)) + return false; + try { + new Notification(""); + } catch (e) { + return false; + } + return true; + }); + const permissionGranted = ref(isSupported.value && "permission" in Notification && Notification.permission === "granted"); + const notification = ref(null); + const ensurePermissions = async () => { + if (!isSupported.value) + return; + if (!permissionGranted.value && Notification.permission !== "denied") { + const result = await Notification.requestPermission(); + if (result === "granted") + permissionGranted.value = true; + } + return permissionGranted.value; + }; + const { on: onClick, trigger: clickTrigger } = createEventHook(); + const { on: onShow, trigger: showTrigger } = createEventHook(); + const { on: onError, trigger: errorTrigger } = createEventHook(); + const { on: onClose, trigger: closeTrigger } = createEventHook(); + const show = async (overrides) => { + if (!isSupported.value || !permissionGranted.value) + return; + const options2 = Object.assign({}, defaultWebNotificationOptions, overrides); + notification.value = new Notification(options2.title || "", options2); + notification.value.onclick = clickTrigger; + notification.value.onshow = showTrigger; + notification.value.onerror = errorTrigger; + notification.value.onclose = closeTrigger; + return notification.value; + }; + const close = () => { + if (notification.value) + notification.value.close(); + notification.value = null; + }; + if (_requestForPermissions) + tryOnMounted(ensurePermissions); + tryOnScopeDispose(close); + if (isSupported.value && window2) { + const document2 = window2.document; + useEventListener(document2, "visibilitychange", (e) => { + e.preventDefault(); + if (document2.visibilityState === "visible") { + close(); + } + }); + } + return { + isSupported, + notification, + ensurePermissions, + permissionGranted, + show, + close, + onClick, + onShow, + onError, + onClose + }; +} +var DEFAULT_PING_MESSAGE = "ping"; +function resolveNestedOptions(options) { + if (options === true) + return {}; + return options; +} +function useWebSocket(url, options = {}) { + const { + onConnected, + onDisconnected, + onError, + onMessage, + immediate = true, + autoClose = true, + protocols = [] + } = options; + const data = ref(null); + const status = ref("CLOSED"); + const wsRef = ref(); + const urlRef = toRef2(url); + let heartbeatPause; + let heartbeatResume; + let explicitlyClosed = false; + let retried = 0; + let bufferedData = []; + let pongTimeoutWait; + const _sendBuffer = () => { + if (bufferedData.length && wsRef.value && status.value === "OPEN") { + for (const buffer of bufferedData) + wsRef.value.send(buffer); + bufferedData = []; + } + }; + const resetHeartbeat = () => { + clearTimeout(pongTimeoutWait); + pongTimeoutWait = void 0; + }; + const close = (code = 1e3, reason) => { + if (!isClient || !wsRef.value) + return; + explicitlyClosed = true; + resetHeartbeat(); + heartbeatPause == null ? void 0 : heartbeatPause(); + wsRef.value.close(code, reason); + wsRef.value = void 0; + }; + const send = (data2, useBuffer = true) => { + if (!wsRef.value || status.value !== "OPEN") { + if (useBuffer) + bufferedData.push(data2); + return false; + } + _sendBuffer(); + wsRef.value.send(data2); + return true; + }; + const _init = () => { + if (explicitlyClosed || typeof urlRef.value === "undefined") + return; + const ws = new WebSocket(urlRef.value, protocols); + wsRef.value = ws; + status.value = "CONNECTING"; + ws.onopen = () => { + status.value = "OPEN"; + onConnected == null ? void 0 : onConnected(ws); + heartbeatResume == null ? void 0 : heartbeatResume(); + _sendBuffer(); + }; + ws.onclose = (ev) => { + status.value = "CLOSED"; + onDisconnected == null ? void 0 : onDisconnected(ws, ev); + if (!explicitlyClosed && options.autoReconnect) { + const { + retries = -1, + delay = 1e3, + onFailed + } = resolveNestedOptions(options.autoReconnect); + retried += 1; + if (typeof retries === "number" && (retries < 0 || retried < retries)) + setTimeout(_init, delay); + else if (typeof retries === "function" && retries()) + setTimeout(_init, delay); + else + onFailed == null ? void 0 : onFailed(); + } + }; + ws.onerror = (e) => { + onError == null ? void 0 : onError(ws, e); + }; + ws.onmessage = (e) => { + if (options.heartbeat) { + resetHeartbeat(); + const { + message = DEFAULT_PING_MESSAGE + } = resolveNestedOptions(options.heartbeat); + if (e.data === message) + return; + } + data.value = e.data; + onMessage == null ? void 0 : onMessage(ws, e); + }; + }; + if (options.heartbeat) { + const { + message = DEFAULT_PING_MESSAGE, + interval = 1e3, + pongTimeout = 1e3 + } = resolveNestedOptions(options.heartbeat); + const { pause, resume } = useIntervalFn( + () => { + send(message, false); + if (pongTimeoutWait != null) + return; + pongTimeoutWait = setTimeout(() => { + close(); + explicitlyClosed = false; + }, pongTimeout); + }, + interval, + { immediate: false } + ); + heartbeatPause = pause; + heartbeatResume = resume; + } + if (autoClose) { + if (isClient) + useEventListener("beforeunload", () => close()); + tryOnScopeDispose(close); + } + const open = () => { + if (!isClient && !isWorker) + return; + close(); + explicitlyClosed = false; + retried = 0; + _init(); + }; + if (immediate) + open(); + watch(urlRef, open); + return { + data, + status, + close, + send, + open, + ws: wsRef + }; +} +function useWebWorker(arg0, workerOptions, options) { + const { + window: window2 = defaultWindow + } = options != null ? options : {}; + const data = ref(null); + const worker = shallowRef(); + const post = (...args) => { + if (!worker.value) + return; + worker.value.postMessage(...args); + }; + const terminate = function terminate2() { + if (!worker.value) + return; + worker.value.terminate(); + }; + if (window2) { + if (typeof arg0 === "string") + worker.value = new Worker(arg0, workerOptions); + else if (typeof arg0 === "function") + worker.value = arg0(); + else + worker.value = arg0; + worker.value.onmessage = (e) => { + data.value = e.data; + }; + tryOnScopeDispose(() => { + if (worker.value) + worker.value.terminate(); + }); + } + return { + data, + post, + terminate, + worker + }; +} +function jobRunner(userFunc) { + return (e) => { + const userFuncArgs = e.data[0]; + return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => { + postMessage(["SUCCESS", result]); + }).catch((error) => { + postMessage(["ERROR", error]); + }); + }; +} +function depsParser(deps, localDeps) { + if (deps.length === 0 && localDeps.length === 0) + return ""; + const depsString = deps.map((dep) => `'${dep}'`).toString(); + const depsFunctionString = localDeps.filter((dep) => typeof dep === "function").map((fn) => { + const str = fn.toString(); + if (str.trim().startsWith("function")) { + return str; + } else { + const name = fn.name; + return `const ${name} = ${str}`; + } + }).join(";"); + const importString = `importScripts(${depsString});`; + return `${depsString.trim() === "" ? "" : importString} ${depsFunctionString}`; +} +function createWorkerBlobUrl(fn, deps, localDeps) { + const blobCode = `${depsParser(deps, localDeps)}; onmessage=(${jobRunner})(${fn})`; + const blob = new Blob([blobCode], { type: "text/javascript" }); + const url = URL.createObjectURL(blob); + return url; +} +function useWebWorkerFn(fn, options = {}) { + const { + dependencies = [], + localDependencies = [], + timeout, + window: window2 = defaultWindow + } = options; + const worker = ref(); + const workerStatus = ref("PENDING"); + const promise = ref({}); + const timeoutId = ref(); + const workerTerminate = (status = "PENDING") => { + if (worker.value && worker.value._url && window2) { + worker.value.terminate(); + URL.revokeObjectURL(worker.value._url); + promise.value = {}; + worker.value = void 0; + window2.clearTimeout(timeoutId.value); + workerStatus.value = status; + } + }; + workerTerminate(); + tryOnScopeDispose(workerTerminate); + const generateWorker = () => { + const blobUrl = createWorkerBlobUrl(fn, dependencies, localDependencies); + const newWorker = new Worker(blobUrl); + newWorker._url = blobUrl; + newWorker.onmessage = (e) => { + const { resolve = () => { + }, reject = () => { + } } = promise.value; + const [status, result] = e.data; + switch (status) { + case "SUCCESS": + resolve(result); + workerTerminate(status); + break; + default: + reject(result); + workerTerminate("ERROR"); + break; + } + }; + newWorker.onerror = (e) => { + const { reject = () => { + } } = promise.value; + e.preventDefault(); + reject(e); + workerTerminate("ERROR"); + }; + if (timeout) { + timeoutId.value = setTimeout( + () => workerTerminate("TIMEOUT_EXPIRED"), + timeout + ); + } + return newWorker; + }; + const callWorker = (...fnArgs) => new Promise((resolve, reject) => { + promise.value = { + resolve, + reject + }; + worker.value && worker.value.postMessage([[...fnArgs]]); + workerStatus.value = "RUNNING"; + }); + const workerFn = (...fnArgs) => { + if (workerStatus.value === "RUNNING") { + console.error( + "[useWebWorkerFn] You can only run one instance of the worker at a time." + ); + return Promise.reject(); + } + worker.value = generateWorker(); + return callWorker(...fnArgs); + }; + return { + workerFn, + workerStatus, + workerTerminate + }; +} +function useWindowFocus(options = {}) { + const { window: window2 = defaultWindow } = options; + if (!window2) + return ref(false); + const focused = ref(window2.document.hasFocus()); + useEventListener(window2, "blur", () => { + focused.value = false; + }); + useEventListener(window2, "focus", () => { + focused.value = true; + }); + return focused; +} +function useWindowScroll(options = {}) { + const { window: window2 = defaultWindow, behavior = "auto" } = options; + if (!window2) { + return { + x: ref(0), + y: ref(0) + }; + } + const internalX = ref(window2.scrollX); + const internalY = ref(window2.scrollY); + const x = computed({ + get() { + return internalX.value; + }, + set(x2) { + scrollTo({ left: x2, behavior }); + } + }); + const y = computed({ + get() { + return internalY.value; + }, + set(y2) { + scrollTo({ top: y2, behavior }); + } + }); + useEventListener( + window2, + "scroll", + () => { + internalX.value = window2.scrollX; + internalY.value = window2.scrollY; + }, + { + capture: false, + passive: true + } + ); + return { x, y }; +} +function useWindowSize(options = {}) { + const { + window: window2 = defaultWindow, + initialWidth = Number.POSITIVE_INFINITY, + initialHeight = Number.POSITIVE_INFINITY, + listenOrientation = true, + includeScrollbar = true + } = options; + const width = ref(initialWidth); + const height = ref(initialHeight); + const update = () => { + if (window2) { + if (includeScrollbar) { + width.value = window2.innerWidth; + height.value = window2.innerHeight; + } else { + width.value = window2.document.documentElement.clientWidth; + height.value = window2.document.documentElement.clientHeight; + } + } + }; + update(); + tryOnMounted(update); + useEventListener("resize", update, { passive: true }); + if (listenOrientation) { + const matches = useMediaQuery("(orientation: portrait)"); + watch(matches, () => update()); + } + return { width, height }; +} + +export { + computedEager, + computedWithControl, + tryOnScopeDispose, + createEventHook, + createGlobalState, + provideLocal, + injectLocal, + createInjectionState, + createSharedComposable, + extendRef, + get, + isDefined, + makeDestructurable, + toValue, + resolveUnref, + reactify, + reactifyObject, + toReactive, + reactiveComputed, + reactiveOmit, + isClient, + isWorker, + isDef, + notNullish, + assert, + isObject, + now, + timestamp, + clamp, + noop, + rand, + hasOwn, + isIOS, + createFilterWrapper, + bypassFilter, + debounceFilter, + throttleFilter, + pausableFilter, + directiveHooks, + hyphenate, + camelize, + promiseTimeout, + identity, + createSingletonPromise, + invoke, + containsProp, + increaseWithUnit, + objectPick, + objectOmit, + objectEntries, + getLifeCycleTarget, + toRef2 as toRef, + resolveRef, + reactivePick, + refAutoReset, + useDebounceFn, + refDebounced, + refDefault, + useThrottleFn, + refThrottled, + refWithControl, + controlledRef, + set2 as set, + watchWithFilter, + watchPausable, + syncRef, + syncRefs, + toRefs2 as toRefs, + tryOnBeforeMount, + tryOnBeforeUnmount, + tryOnMounted, + tryOnUnmounted, + until, + useArrayDifference, + useArrayEvery, + useArrayFilter, + useArrayFind, + useArrayFindIndex, + useArrayFindLast, + useArrayIncludes, + useArrayJoin, + useArrayMap, + useArrayReduce, + useArraySome, + useArrayUnique, + useCounter, + formatDate, + normalizeDate, + useDateFormat, + useIntervalFn, + useInterval, + useLastChanged, + useTimeoutFn, + useTimeout, + useToNumber, + useToString, + useToggle, + watchArray, + watchAtMost, + watchDebounced, + watchDeep, + watchIgnorable, + watchImmediate, + watchOnce, + watchThrottled, + watchTriggerable, + whenever, + computedAsync, + computedInject, + createReusableTemplate, + createTemplatePromise, + createUnrefFn, + unrefElement, + defaultWindow, + defaultDocument, + defaultNavigator, + defaultLocation, + useEventListener, + onClickOutside, + onKeyStroke, + onKeyDown, + onKeyPressed, + onKeyUp, + onLongPress, + onStartTyping, + templateRef, + useMounted, + useSupported, + useMutationObserver, + useActiveElement, + useRafFn, + useAnimate, + useAsyncQueue, + useAsyncState, + useBase64, + useBattery, + useBluetooth, + useMediaQuery, + breakpointsTailwind, + breakpointsBootstrapV5, + breakpointsVuetifyV2, + breakpointsVuetifyV3, + breakpointsVuetify, + breakpointsAntDesign, + breakpointsQuasar, + breakpointsSematic, + breakpointsMasterCss, + breakpointsPrimeFlex, + useBreakpoints, + useBroadcastChannel, + useBrowserLocation, + useCached, + usePermission, + useClipboard, + useClipboardItems, + cloneFnJSON, + useCloned, + getSSRHandler, + setSSRHandler, + StorageSerializers, + customStorageEventName, + useStorage, + usePreferredDark, + useColorMode, + useConfirmDialog, + useCssVar, + useCurrentElement, + useCycleList, + useDark, + useManualRefHistory, + useRefHistory, + useDebouncedRefHistory, + useDeviceMotion, + useDeviceOrientation, + useDevicePixelRatio, + useDevicesList, + useDisplayMedia, + useDocumentVisibility, + useDraggable, + useDropZone, + useResizeObserver, + useElementBounding, + useElementByPoint, + useElementHover, + useElementSize, + useIntersectionObserver, + useElementVisibility, + useEventBus, + useEventSource, + useEyeDropper, + useFavicon, + createFetch, + useFetch, + useFileDialog, + useFileSystemAccess, + useFocus, + useFocusWithin, + useFps, + useFullscreen, + mapGamepadToXbox360Controller, + useGamepad, + useGeolocation, + useIdle, + useImage, + useScroll, + useInfiniteScroll, + useKeyModifier, + useLocalStorage, + DefaultMagicKeysAliasMap, + useMagicKeys, + useMediaControls, + useMemoize, + useMemory, + useMouse, + useMouseInElement, + useMousePressed, + useNavigatorLanguage, + useNetwork, + useNow, + useObjectUrl, + useOffsetPagination, + useOnline, + usePageLeave, + useScreenOrientation, + useParallax, + useParentElement, + usePerformanceObserver, + usePointer, + usePointerLock, + usePointerSwipe, + usePreferredColorScheme, + usePreferredContrast, + usePreferredLanguages, + usePreferredReducedMotion, + usePrevious, + useScreenSafeArea, + useScriptTag, + useScrollLock, + useSessionStorage, + useShare, + useSorted, + useSpeechRecognition, + useSpeechSynthesis, + useStepper, + useStorageAsync, + useStyleTag, + useSwipe, + useTemplateRefsList, + useTextDirection, + useTextSelection, + useTextareaAutosize, + useThrottledRefHistory, + useTimeAgo, + formatTimeAgo, + useTimeoutPoll, + useTimestamp, + useTitle, + TransitionPresets, + executeTransition, + useTransition, + useUrlSearchParams, + useUserMedia, + useVModel, + useVModels, + useVibrate, + useVirtualList, + useWakeLock, + useWebNotification, + useWebSocket, + useWebWorker, + useWebWorkerFn, + useWindowFocus, + useWindowScroll, + useWindowSize +}; +/*! Bundled license information: + +vitepress/lib/vue-demi.mjs: + (** + * vue-demi v0.14.7 + * Copyright (c) 2020-present, Anthony Fu + * @license MIT + *) +*/ +//# sourceMappingURL=chunk-B2WI2LE3.js.map diff --git a/docs/.vitepress/cache/deps/chunk-B2WI2LE3.js.map b/docs/.vitepress/cache/deps/chunk-B2WI2LE3.js.map new file mode 100644 index 0000000..369d933 --- /dev/null +++ b/docs/.vitepress/cache/deps/chunk-B2WI2LE3.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../../../node_modules/vitepress/lib/vue-demi.mjs", "../../../../node_modules/@vueuse/shared/index.mjs", "../../../../node_modules/@vueuse/core/index.mjs"], + "sourcesContent": ["/**\n * vue-demi v0.14.7\n * Copyright (c) 2020-present, Anthony Fu\n * @license MIT\n */\n\nimport * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport { Vue, Vue2, isVue2, isVue3, install }\n", "import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n const defaultValue = options == null ? void 0 : options.defaultValue;\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key, defaultValue);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(...args) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n let ms;\n let trailing;\n let leading;\n let rejectOnCancel;\n if (!isRef(args[0]) && typeof args[0] === \"object\")\n ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);\n else\n [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?\\d+\\.?\\d*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n const stop = watch(\n source,\n (v, ov, onInvalidate) => {\n if (v) {\n if (options == null ? void 0 : options.once)\n nextTick(() => stop());\n cb(v, ov, onInvalidate);\n }\n },\n {\n ...options,\n once: false\n }\n );\n return stop;\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n", "import { noop, makeDestructurable, camelize, toValue, isClient, isObject, tryOnScopeDispose, isIOS, tryOnMounted, notNullish, objectOmit, promiseTimeout, until, increaseWithUnit, objectEntries, createSingletonPromise, useTimeoutFn, pausableWatch, toRef, createEventHook, computedWithControl, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, toRefs, useIntervalFn, containsProp, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, tryOnBeforeUnmount, identity, isDef, isWorker } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, isVue3, version, defineComponent, h, TransitionGroup, shallowReactive, Fragment, watch, getCurrentInstance, customRef, onUpdated, onMounted, isVue2, readonly, nextTick, reactive, markRaw, unref, getCurrentScope, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nfunction createReusableTemplate(options = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = shallowRef();\n const define = /* #__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = ref([]);\n function create(...args) {\n const props = shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => h(TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => toValue(i)));\n };\n}\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return noop;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement))) {\n handler(event);\n }\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keydown\" });\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keypress\" });\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keyup\" });\n}\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n let posStart;\n let startTimestamp;\n let hasLongPressed = false;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n startTimestamp = void 0;\n hasLongPressed = false;\n }\n function onRelease(ev) {\n var _a2, _b2, _c;\n const [_startTimestamp, _posStart, _hasLongPressed] = [startTimestamp, posStart, hasLongPressed];\n clear();\n if (!(options == null ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp)\n return;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - _posStart.x;\n const dy = ev.y - _posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n options.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n startTimestamp = ev.timeStamp;\n timeout = setTimeout(\n () => {\n hasLongPressed = true;\n handler(ev);\n },\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n const instance = getCurrentInstance();\n if (instance) {\n onMounted(() => {\n isMounted.value = true;\n }, isVue2 ? void 0 : instance);\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const value = toValue(target);\n const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish);\n return new Set(items);\n });\n const stopWatch = watch(\n () => targets.value,\n (targets2) => {\n cleanup();\n if (isSupported.value && targets2.size) {\n observer = new MutationObserver(callback);\n targets2.forEach((el) => observer.observe(el, mutationOptions));\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true,\n triggerOnRemoval = false\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = ref();\n const trigger = () => {\n activeElement.value = getDeepActiveElement();\n };\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n trigger();\n }, true);\n useEventListener(window, \"focus\", trigger, true);\n }\n if (triggerOnRemoval) {\n useMutationObserver(document, (mutations) => {\n mutations.filter((m) => m.removedNodes.length).map((n) => Array.from(n.removedNodes)).flat().forEach((node) => {\n if (node === activeElement.value)\n trigger();\n });\n }, {\n childList: true,\n subtree: true\n });\n }\n trigger();\n return activeElement;\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n if (!previousFrameTimestamp)\n previousFrameTimestamp = timestamp;\n const delta = timestamp - previousFrameTimestamp;\n if (intervalLimit && delta < intervalLimit) {\n rafId = window.requestAnimationFrame(loop);\n return;\n }\n previousFrameTimestamp = timestamp;\n fn({ delta, timestamp });\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n previousFrameTimestamp = 0;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (isObject(options)) {\n config = options;\n animateOptions = objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = shallowRef(void 0);\n const store = shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = computed(() => store.pending);\n const playState = computed(() => store.playState);\n const replaceState = computed(() => store.replaceState);\n const startTime = computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n !animate.value && update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n watch(() => unrefElement(target), (el) => {\n el && update();\n });\n watch(() => keyframes, (value) => {\n !animate.value && update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n tryOnMounted(() => {\n nextTick(() => update(true));\n });\n tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n if (!animate.value)\n animate.value = el.animate(toValue(keyframes), animateOptions);\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n useEventListener(animate, \"finish\", () => {\n var _a;\n if (commitStyles)\n (_a = animate.value) == null ? void 0 : _a.commitStyles();\n });\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop,\n signal\n } = options || {};\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || typeof target === \"function\")\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery(options = {}) {\n const { navigator = defaultNavigator } = options;\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetifyV2 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1264,\n xl: 1904\n};\nconst breakpointsVuetifyV3 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560\n};\nconst breakpointsVuetify = breakpointsVuetifyV2;\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 0,\n sm: 600,\n md: 1024,\n lg: 1440,\n xl: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\nconst breakpointsPrimeFlex = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = toValue(breakpoints[toValue(k)]);\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow, strategy = \"min-width\" } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n };\n const smallerOrEqual = (k) => {\n return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n function current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n return Object.assign(shortcutMethods, {\n greaterOrEqual,\n smallerOrEqual,\n greater(k) {\n return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);\n },\n smaller(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);\n },\n between(a, b) {\n return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current,\n active() {\n const bps = current();\n return computed(() => bps.value.length === 0 ? \"\" : bps.value.at(-1));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation(options = {}) {\n const { window = defaultWindow } = options;\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, ref()])\n );\n for (const [key, ref2] of objectEntries(refs)) {\n watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return reactive({\n trigger,\n state: state2,\n length,\n origin,\n ...refs\n });\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const permissionRead = usePermission(\"clipboard-read\");\n const permissionWrite = usePermission(\"clipboard-write\");\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value && isAllowed(permissionRead.value)) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value && isAllowed(permissionWrite.value))\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n function isAllowed(status) {\n return status === \"granted\" || status === \"prompt\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nfunction useClipboardItems(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500\n } = options;\n const isSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const content = ref([]);\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateContent() {\n if (isSupported.value) {\n navigator.clipboard.read().then((items) => {\n content.value = items;\n });\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateContent);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n await navigator.clipboard.write(value);\n content.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n return {\n isSupported,\n content,\n copied,\n copy\n };\n}\n\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(toValue(source));\n }\n if (!manual && (isRef(source) || typeof source === \"function\")) {\n watch(source, sync, {\n ...options,\n deep,\n immediate\n });\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n tryOnMounted(() => {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n function dispatchWriteEvent(oldValue, newValue) {\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue,\n storageArea: storage\n }\n }));\n }\n }\n function write(v) {\n try {\n const oldValue = storage.getItem(key);\n if (v == null) {\n dispatchWriteEvent(oldValue, null);\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n dispatchWriteEvent(oldValue, serialized);\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n return data;\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n const styleString = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n style.appendChild(document.createTextNode(styleString));\n window.document.head.appendChild(style);\n }\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue = \"\", observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n updateCssVar,\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(toValue(prop), val);\n }\n );\n return variable;\n}\n\nfunction useCurrentElement(rootComponent) {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(\n () => null,\n () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el\n );\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = shallowRef(getInitialValue());\n const listRef = toRef(list);\n const index = computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;\n }\n watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev,\n go: set\n };\n}\n\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode({\n ...options,\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n });\n const system = computed(() => {\n if (mode.system) {\n return mode.system.value;\n } else {\n const preferredDark = usePreferredDark({ window });\n return preferredDark.value ? \"dark\" : \"light\";\n }\n });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return {\n ...manualHistory,\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n };\n}\n\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const pixelRatio = ref(1);\n if (window) {\n let observe2 = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup2();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe2, { once: true });\n }, cleanup2 = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe2);\n };\n let media;\n observe2();\n tryOnScopeDispose(cleanup2);\n }\n return { pixelRatio };\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n var _a2;\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.addEventListener(\"ended\", stop));\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility(options = {}) {\n const { document = defaultDocument } = options;\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n containerElement,\n handle: draggingHandle = target\n } = options;\n const position = ref(\n (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (toValue(preventDefault))\n e.preventDefault();\n if (toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (e.button !== 0)\n return;\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (toValue(exact) && e.target !== toValue(target))\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),\n y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n const container = toValue(containerElement);\n const targetRect = toValue(target).getBoundingClientRect();\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\") {\n x = e.clientX - pressedDelta.value.x;\n if (container)\n x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n }\n if (axis === \"y\" || axis === \"both\") {\n y = e.clientY - pressedDelta.value.y;\n if (container)\n y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n }\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return {\n ...toRefs(position),\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n };\n}\n\nfunction useDropZone(target, options = {}) {\n const isOverDropZone = ref(false);\n const files = shallowRef(null);\n let counter = 0;\n let isDataTypeIncluded = true;\n if (isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const getFiles = (event) => {\n var _a, _b;\n const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n return files.value = list.length === 0 ? null : list;\n };\n useEventListener(target, \"dragenter\", (event) => {\n var _a, _b;\n const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === \"file\" ? i.type : null).filter(notNullish);\n if (_options.dataTypes && event.dataTransfer) {\n const dataTypes = unref(_options.dataTypes);\n isDataTypeIncluded = typeof dataTypes === \"function\" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true;\n if (!isDataTypeIncluded)\n return;\n }\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragover\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragleave\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"drop\", (event) => {\n var _a;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]);\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els)\n _el && observer.observe(_el, observerOptions);\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n useMutationObserver(target, update, {\n attributeFilter: [\"style\", \"class\"]\n });\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = ref(null);\n const cb = () => {\n var _a, _b;\n element.value = toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n return {\n isSupported,\n element,\n ...controls\n };\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const rect = $elem.getBoundingClientRect();\n width.value = rect.width;\n height.value = rect.height;\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget, threshold = 0 } = options;\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction resolveNestedOptions$1(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = shallowRef(null);\n const urlRef = toRef(url);\n const lastEventId = shallowRef(null);\n let explicitlyClosed = false;\n let retried = 0;\n const {\n withCredentials = false,\n immediate = true\n } = options;\n const close = () => {\n if (isClient && eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n explicitlyClosed = true;\n }\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const es = new EventSource(urlRef.value, { withCredentials });\n status.value = \"CONNECTING\";\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n if (es.readyState === 2 && !explicitlyClosed && options.autoReconnect) {\n es.close();\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions$1(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n lastEventId.value = e.lastEventId;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n };\n const open = () => {\n if (!isClient)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n tryOnScopeDispose(close);\n return {\n eventSource,\n event,\n data,\n status,\n error,\n open,\n close,\n lastEventId\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = toRef(newIcon);\n const applyIcon = (icon) => {\n const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n if (!elements || elements.length === 0) {\n const link = document == null ? void 0 : document.createElement(\"link\");\n if (link) {\n link.rel = rel;\n link.href = `${baseUrl}${icon}`;\n link.type = `image/${icon.split(\".\").pop()}`;\n document == null ? void 0 : document.head.append(link);\n }\n return;\n }\n elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n return reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries(headers.entries());\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return { ...ctx, ...await callback(ctx) };\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = { ...ctx, ...await callback(ctx) };\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = toValue(config.baseUrl);\n const targetUrl = toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = {\n ...options,\n ...args[0],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n };\n } else {\n fetchOptions = {\n ...fetchOptions,\n ...args[0],\n headers: {\n ...headersToObject(fetchOptions.headers) || {},\n ...headersToObject(args[0].headers) || {}\n }\n };\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = {\n ...options,\n ...args[1],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n };\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = {\n immediate: true,\n refetch: false,\n timeout: 0,\n updateDataOnError: false\n };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = { ...options, ...args[0] };\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = { ...options, ...args[1] };\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData || null);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = {\n ...fetchOptions,\n signal: controller.signal\n };\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n let executeCounter = 0;\n const execute = async (throwOnFailed = false) => {\n var _a2, _b;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n executeCounter += 1;\n const currentExecuteCounter = executeCounter;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: toValue(url),\n options: {\n ...defaultFetchOptions,\n ...fetchOptions\n },\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return fetch(\n context.url,\n {\n ...defaultFetchOptions,\n ...context.options,\n headers: {\n ...headersToObject(defaultFetchOptions.headers),\n ...headersToObject((_b = context.options) == null ? void 0 : _b.headers)\n }\n }\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse.clone()[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch) {\n ({ data: responseData } = await options.afterFetch({\n data: responseData,\n response: fetchResponse\n }));\n }\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return fetchResponse;\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError) {\n ({ error: errorData, data: responseData } = await options.onFetchError({\n data: responseData,\n error: fetchError,\n response: response.value\n }));\n }\n error.value = errorData;\n if (options.updateDataOnError)\n data.value = responseData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n throw fetchError;\n return null;\n }).finally(() => {\n if (currentExecuteCounter === executeCounter)\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n };\n const refetch = toRef(options.refetch);\n watch(\n [\n refetch,\n toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished: readonly(isFinished),\n isFetching: readonly(isFetching),\n statusCode,\n response,\n error,\n data,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch(\n [\n refetch,\n toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false,\n directory: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n const { on: onChange, trigger } = createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n trigger(files.value);\n };\n }\n const reset = () => {\n files.value = null;\n if (input && input.value) {\n input.value = \"\";\n trigger(null);\n }\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n ...localOptions\n };\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n input.webkitdirectory = _options.directory;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: readonly(files),\n open,\n reset,\n onChange\n };\n}\n\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker({ ...toValue(options), ..._options });\n fileHandle.value = handle;\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n data.value = void 0;\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n await updateFile();\n const type = toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n watch(() => toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false, preventScroll = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus({ preventScroll });\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = ref(false);\n const requestMethod = computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n id: gamepad.id,\n index: gamepad.index,\n connected: gamepad.connected,\n mapping: gamepad.mapping,\n timestamp: gamepad.timestamp,\n vibrationActuator: gamepad.vibrationActuator,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n onGamepadConnected(gamepad);\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = shallowRef(null);\n const coords = ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c, _d;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element;\n if (x != null)\n internalX.value = scrollContainer.scrollLeft;\n if (y != null)\n internalY.value = scrollContainer.scrollTop;\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n tryOnMounted(() => {\n try {\n const _element = toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n } catch (e) {\n onError(e);\n }\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n return resolveElement(toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => toValue(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nfunction usingElRef(source, cb) {\n if (toValue(source))\n cb(toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n target = toRef(target);\n options = {\n ...defaultOptions,\n ...options\n };\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = toValue(target);\n if (!el)\n return;\n const src = toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch([target, volume], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n watch([target, muted], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n watch([target, rate], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = toValue(options.tracks);\n const el = toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = toValue(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = shallowReactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return shallowReactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return shallowReactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window.scrollX;\n y.value = pos[1] + window.scrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const type = options.type || \"page\";\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n elementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n capture = false,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true, capture });\n useEventListener(window, \"mouseup\", onReleased, { passive: true, capture });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"drop\", onReleased, { passive: true, capture });\n useEventListener(window, \"dragend\", onReleased, { passive: true, capture });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true, capture });\n useEventListener(window, \"touchend\", onReleased, { passive: true, capture });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true, capture });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return {\n now,\n ...controls\n };\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(\n () => toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = computed(() => Math.max(\n 1,\n Math.ceil(toValue(total) / toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page)) {\n syncRef(page, currentPage, {\n direction: isReadonly(page) ? \"ltr\" : \"both\"\n });\n }\n if (isRef(pageSize)) {\n syncRef(pageSize, currentPageSize, {\n direction: isReadonly(pageSize) ? \"ltr\" : \"both\"\n });\n }\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (isSupported.value && typeof screenOrientation.lock === \"function\")\n return screenOrientation.lock(type);\n return Promise.reject(new Error(\"Not supported\"));\n };\n const unlockOrientation = () => {\n if (isSupported.value && typeof screenOrientation.unlock === \"function\")\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const screenOrientation = reactive(useScreenOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) {\n return \"deviceOrientation\";\n }\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.gamma / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.gamma / 90;\n break;\n case \"portrait-primary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-secondary\":\n value = orientation.beta / 90;\n break;\n default:\n value = -orientation.beta / 90;\n }\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.beta / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-primary\":\n value = orientation.gamma / 90;\n break;\n case \"portrait-secondary\":\n value = -orientation.gamma / 90;\n break;\n default:\n value = orientation.gamma / 90;\n }\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n tryOnMounted(update);\n watch(() => toValue(element), update);\n return parentElement;\n}\n\nfunction usePerformanceObserver(options, callback) {\n const {\n window = defaultWindow,\n immediate = true,\n ...performanceOptions\n } = options;\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return {\n ...toRefs(state),\n isInside\n };\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock();\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n disableTextSelect = false\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n })\n ];\n tryOnMounted(() => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n if (disableTextSelect) {\n (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty(\"-webkit-user-select\", \"none\");\n (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty(\"-ms-user-select\", \"none\");\n (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty(\"user-select\", \"none\");\n }\n });\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(\n toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return readonly(previous);\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow = \"\";\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, ele.style.overflow);\n if (ele.style.overflow !== \"hidden\")\n initialOverflow = ele.style.overflow;\n if (ele.style.overflow === \"hidden\")\n return isLocked.value = true;\n if (isLocked.value)\n return ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n el.style.overflow = initialOverflow;\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = {\n ...toValue(shareOptions),\n ...toValue(overrideOptions)\n };\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...toValue(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(toValue(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = toRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = toValue(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const currentResult = event.results[event.resultIndex];\n const { transcript } = currentResult[0];\n isFinal.value = currentResult.isFinal;\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = toValue(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = toRef(text || \"\");\n const lang = toRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = toValue(lang);\n utterance2.voice = toValue(options.voice) || null;\n utterance2.pitch = toValue(pitch);\n utterance2.rate = toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorageAsync\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = { ...rawInit, ...value };\n else data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n var _a;\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n const styleProp = (_a = options == null ? void 0 : options.styleProp) != null ? _a : \"height\";\n const textareaScrollHeight = ref(1);\n function triggerResize() {\n var _a2;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style[styleProp] = \"1px\";\n textareaScrollHeight.value = (_a2 = textarea.value) == null ? void 0 : _a2.scrollHeight;\n if (options == null ? void 0 : options.styleTarget)\n toValue(options.styleTarget).style[styleProp] = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style[styleProp] = height;\n }\n watch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n watch(textareaScrollHeight, () => {\n var _a2;\n return (_a2 = options == null ? void 0 : options.onResize) == null ? void 0 : _a2.call(options);\n });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const { now, ...controls } = useNow({ interval: updateInterval, controls: true });\n const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n if (exposeControls) {\n return {\n timeAgo,\n ...controls\n };\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval, { immediate: false });\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b, _c;\n const {\n document = defaultDocument,\n restoreOnUnmount = (t) => t\n } = options;\n const originalTitle = (_a = document == null ? void 0 : document.title) != null ? _a : \"\";\n const title = toRef((_b = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _b : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n }\n watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_c = document.head) == null ? void 0 : _c.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n tryOnBeforeUnmount(() => {\n if (restoreOnUnmount) {\n const restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n if (restoredTitle != null && document)\n document.title = restoredTitle;\n }\n });\n return title;\n}\n\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = toValue(from);\n const toVal = toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = toValue(source);\n return typeof v === \"number\" ? v : v.map(toValue);\n };\n const outputRef = ref(sourceVal());\n watch(sourceVal, async (to) => {\n var _a, _b;\n if (toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await promiseTimeout(toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, {\n ...options,\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n });\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n watch(() => toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n tryOnScopeDispose(() => {\n currentId++;\n });\n return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else _stop();\n },\n { immediate: true }\n );\n watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n tryOnScopeDispose(() => {\n stop();\n });\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n let isUpdating = false;\n watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n nextTick(() => isUpdating = false);\n }\n }\n );\n watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props) {\n ret[key] = useVModel(\n props,\n key,\n emit,\n options\n );\n }\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, containerRef, calculateRange) {\n watch([size.width, size.height, list, containerRef], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n}\n\nfunction useWebNotification(options = {}) {\n const {\n window = defaultWindow,\n requestPermissions: _requestForPermissions = true\n } = options;\n const defaultWebNotificationOptions = options;\n const isSupported = useSupported(() => {\n if (!window || !(\"Notification\" in window))\n return false;\n try {\n new Notification(\"\");\n } catch (e) {\n return false;\n }\n return true;\n });\n const permissionGranted = ref(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n const notification = ref(null);\n const ensurePermissions = async () => {\n if (!isSupported.value)\n return;\n if (!permissionGranted.value && Notification.permission !== \"denied\") {\n const result = await Notification.requestPermission();\n if (result === \"granted\")\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n };\n const { on: onClick, trigger: clickTrigger } = createEventHook();\n const { on: onShow, trigger: showTrigger } = createEventHook();\n const { on: onError, trigger: errorTrigger } = createEventHook();\n const { on: onClose, trigger: closeTrigger } = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value || !permissionGranted.value)\n return;\n const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);\n notification.value = new Notification(options2.title || \"\", options2);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n if (_requestForPermissions)\n tryOnMounted(ensurePermissions);\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n ensurePermissions,\n permissionGranted,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const close = (code = 1e3, reason) => {\n if (!isClient || !wsRef.value)\n return;\n explicitlyClosed = true;\n resetHeartbeat();\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n wsRef.value = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n explicitlyClosed = false;\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n if (isClient)\n useEventListener(\"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n if (!isClient && !isWorker)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n open();\n watch(urlRef, open);\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction depsParser(deps, localDeps) {\n if (deps.length === 0 && localDeps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n const depsFunctionString = localDeps.filter((dep) => typeof dep === \"function\").map((fn) => {\n const str = fn.toString();\n if (str.trim().startsWith(\"function\")) {\n return str;\n } else {\n const name = fn.name;\n return `const ${name} = ${str}`;\n }\n }).join(\";\");\n const importString = `importScripts(${depsString});`;\n return `${depsString.trim() === \"\" ? \"\" : importString} ${depsFunctionString}`;\n}\n\nfunction createWorkerBlobUrl(fn, deps, localDeps) {\n const blobCode = `${depsParser(deps, localDeps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n localDependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies, localDependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n e.preventDefault();\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll(options = {}) {\n const { window = defaultWindow, behavior = \"auto\" } = options;\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const internalX = ref(window.scrollX);\n const internalY = ref(window.scrollY);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo({ left: x2, behavior });\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo({ top: y2, behavior });\n }\n });\n useEventListener(\n window,\n \"scroll\",\n () => {\n internalX.value = window.scrollX;\n internalY.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n watch(matches, () => update());\n }\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, breakpointsVuetifyV2, breakpointsVuetifyV3, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n"], + "mappings": "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", + "names": ["get", "set", "ref", "keys", "invoke", "toRef", "toRefs", "events", "window", "document", "timestamp", "getValue", "defaults", "toRef", "set", "onUpdated", "preventDefault", "toRefs", "now", "scrollTo", "keys", "get", "isReadonly"] +} diff --git a/docs/.vitepress/cache/deps/chunk-BJ3OZQ3N.js b/docs/.vitepress/cache/deps/chunk-BJ3OZQ3N.js new file mode 100644 index 0000000..d9c17b1 --- /dev/null +++ b/docs/.vitepress/cache/deps/chunk-BJ3OZQ3N.js @@ -0,0 +1,11451 @@ +// node_modules/@vue/shared/dist/shared.esm-bundler.js +function makeMap(str, expectsLowerCase) { + const set2 = new Set(str.split(",")); + return expectsLowerCase ? (val) => set2.has(val.toLowerCase()) : (val) => set2.has(val); +} +var EMPTY_OBJ = true ? Object.freeze({}) : {}; +var EMPTY_ARR = true ? Object.freeze([]) : []; +var NOOP = () => { +}; +var NO = () => false; +var isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter +(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); +var isModelListener = (key) => key.startsWith("onUpdate:"); +var extend = Object.assign; +var remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } +}; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var hasOwn = (val, key) => hasOwnProperty.call(val, key); +var isArray = Array.isArray; +var isMap = (val) => toTypeString(val) === "[object Map]"; +var isSet = (val) => toTypeString(val) === "[object Set]"; +var isDate = (val) => toTypeString(val) === "[object Date]"; +var isRegExp = (val) => toTypeString(val) === "[object RegExp]"; +var isFunction = (val) => typeof val === "function"; +var isString = (val) => typeof val === "string"; +var isSymbol = (val) => typeof val === "symbol"; +var isObject = (val) => val !== null && typeof val === "object"; +var isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); +}; +var objectToString = Object.prototype.toString; +var toTypeString = (value) => objectToString.call(value); +var toRawType = (value) => { + return toTypeString(value).slice(8, -1); +}; +var isPlainObject = (val) => toTypeString(val) === "[object Object]"; +var isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; +var isReservedProp = makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" +); +var isBuiltInDirective = makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" +); +var cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }; +}; +var camelizeRE = /-(\w)/g; +var camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : ""); +}); +var hyphenateRE = /\B([A-Z])/g; +var hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() +); +var capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); +}); +var toHandlerKey = cacheStringFunction((str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; +}); +var hasChanged = (value, oldValue) => !Object.is(value, oldValue); +var invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } +}; +var def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); +}; +var looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; +}; +var toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; +}; +var _globalThis; +var getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); +}; +var GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error"; +var isGloballyAllowed = makeMap(GLOBALS_ALLOWED); +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } +} +var listDelimiterRE = /;(?![^(]*\))/g; +var propertyDelimiterRE = /:([^]+)/; +var styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function stringifyStyle(styles) { + let ret = ""; + if (!styles || isString(styles)) { + return ret; + } + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; +} +var HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; +var SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; +var MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; +var VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; +var isHTMLTag = makeMap(HTML_TAGS); +var isSVGTag = makeMap(SVG_TAGS); +var isMathMLTag = makeMap(MATH_TAGS); +var isVoidTag = makeMap(VOID_TAGS); +var specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; +var isSpecialBooleanAttr = makeMap(specialBooleanAttrs); +var isBooleanAttr = makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` +); +function includeBooleanAttr(value) { + return !!value || value === ""; +} +var isKnownHtmlAttr = makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` +); +var isKnownSvgAttr = makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` +); +function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; +} +function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; +} +function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); +} +function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); +} +var toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val); +}; +var replacer = (_key, val) => { + if (val && val.__v_isRef) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +var stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); +}; + +// node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js +function warn(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); +} +var activeEffectScope; +var EffectScope = class { + constructor(detached = false) { + this.detached = detached; + this._active = true; + this.effects = []; + this.cleanups = []; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else if (true) { + warn(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + activeEffectScope = this; + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + activeEffectScope = this.parent; + } + stop(fromParent) { + if (this._active) { + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + this._active = false; + } + } +}; +function effectScope(detached) { + return new EffectScope(detached); +} +function recordEffectScope(effect2, scope = activeEffectScope) { + if (scope && scope.active) { + scope.effects.push(effect2); + } +} +function getCurrentScope() { + return activeEffectScope; +} +function onScopeDispose(fn) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (true) { + warn( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } +} +var activeEffect; +var ReactiveEffect = class { + constructor(fn, trigger2, scheduler, scope) { + this.fn = fn; + this.trigger = trigger2; + this.scheduler = scheduler; + this.active = true; + this.deps = []; + this._dirtyLevel = 5; + this._trackId = 0; + this._runnings = 0; + this._shouldSchedule = false; + this._depsLength = 0; + recordEffectScope(this, scope); + } + get dirty() { + if (this._dirtyLevel === 2) + return false; + if (this._dirtyLevel === 3 || this._dirtyLevel === 4) { + this._dirtyLevel = 1; + pauseTracking(); + for (let i = 0; i < this._depsLength; i++) { + const dep = this.deps[i]; + if (dep.computed) { + if (dep.computed.effect._dirtyLevel === 2) + return true; + triggerComputed(dep.computed); + if (this._dirtyLevel >= 5) { + break; + } + } + } + if (this._dirtyLevel === 1) { + this._dirtyLevel = 0; + } + resetTracking(); + } + return this._dirtyLevel >= 5; + } + set dirty(v) { + this._dirtyLevel = v ? 5 : 0; + } + run() { + this._dirtyLevel = 0; + if (!this.active) { + return this.fn(); + } + let lastShouldTrack = shouldTrack; + let lastEffect = activeEffect; + try { + shouldTrack = true; + activeEffect = this; + this._runnings++; + preCleanupEffect(this); + return this.fn(); + } finally { + postCleanupEffect(this); + this._runnings--; + activeEffect = lastEffect; + shouldTrack = lastShouldTrack; + } + } + stop() { + if (this.active) { + preCleanupEffect(this); + postCleanupEffect(this); + this.onStop && this.onStop(); + this.active = false; + } + } +}; +function triggerComputed(computed3) { + return computed3.value; +} +function preCleanupEffect(effect2) { + effect2._trackId++; + effect2._depsLength = 0; +} +function postCleanupEffect(effect2) { + if (effect2.deps.length > effect2._depsLength) { + for (let i = effect2._depsLength; i < effect2.deps.length; i++) { + cleanupDepEffect(effect2.deps[i], effect2); + } + effect2.deps.length = effect2._depsLength; + } +} +function cleanupDepEffect(dep, effect2) { + const trackId = dep.get(effect2); + if (trackId !== void 0 && effect2._trackId !== trackId) { + dep.delete(effect2); + if (dep.size === 0) { + dep.cleanup(); + } + } +} +function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const _effect = new ReactiveEffect(fn, NOOP, () => { + if (_effect.dirty) { + _effect.run(); + } + }); + if (options) { + extend(_effect, options); + if (options.scope) recordEffectScope(_effect, options.scope); + } + if (!options || !options.lazy) { + _effect.run(); + } + const runner = _effect.run.bind(_effect); + runner.effect = _effect; + return runner; +} +function stop(runner) { + runner.effect.stop(); +} +var shouldTrack = true; +var pauseScheduleStack = 0; +var trackStack = []; +function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; +} +function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; +} +function pauseScheduling() { + pauseScheduleStack++; +} +function resetScheduling() { + pauseScheduleStack--; + while (!pauseScheduleStack && queueEffectSchedulers.length) { + queueEffectSchedulers.shift()(); + } +} +function trackEffect(effect2, dep, debuggerEventExtraInfo) { + var _a; + if (dep.get(effect2) !== effect2._trackId) { + dep.set(effect2, effect2._trackId); + const oldDep = effect2.deps[effect2._depsLength]; + if (oldDep !== dep) { + if (oldDep) { + cleanupDepEffect(oldDep, effect2); + } + effect2.deps[effect2._depsLength++] = dep; + } else { + effect2._depsLength++; + } + if (true) { + (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); + } + } +} +var queueEffectSchedulers = []; +function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) { + var _a; + pauseScheduling(); + for (const effect2 of dep.keys()) { + if (!dep.computed && effect2.computed) { + if (dep.get(effect2) === effect2._trackId && effect2._runnings > 0) { + effect2._dirtyLevel = 2; + continue; + } + } + let tracking; + if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) { + effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0); + if (effect2.computed && effect2._dirtyLevel === 2) { + effect2._shouldSchedule = true; + } + effect2._dirtyLevel = dirtyLevel; + } + if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) { + if (true) { + (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo)); + } + effect2.trigger(); + if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 3) { + effect2._shouldSchedule = false; + if (effect2.scheduler) { + queueEffectSchedulers.push(effect2.scheduler); + } + } + } + } + resetScheduling(); +} +var createDep = (cleanup, computed3) => { + const dep = /* @__PURE__ */ new Map(); + dep.cleanup = cleanup; + dep.computed = computed3; + return dep; +}; +var targetMap = /* @__PURE__ */ new WeakMap(); +var ITERATE_KEY = Symbol(true ? "iterate" : ""); +var MAP_KEY_ITERATE_KEY = Symbol(true ? "Map key iterate" : ""); +function track(target, type, key) { + if (shouldTrack && activeEffect) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = createDep(() => depsMap.delete(key))); + } + trackEffect( + activeEffect, + dep, + true ? { + target, + type, + key + } : void 0 + ); + } +} +function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + return; + } + let deps = []; + if (type === "clear") { + deps = [...depsMap.values()]; + } else if (key === "length" && isArray(target)) { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || !isSymbol(key2) && key2 >= newLength) { + deps.push(dep); + } + }); + } else { + if (key !== void 0) { + deps.push(depsMap.get(key)); + } + switch (type) { + case "add": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isIntegerKey(key)) { + deps.push(depsMap.get("length")); + } + break; + case "delete": + if (!isArray(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + deps.push(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + deps.push(depsMap.get(ITERATE_KEY)); + } + break; + } + } + pauseScheduling(); + for (const dep of deps) { + if (dep) { + triggerEffects( + dep, + 5, + true ? { + target, + type, + key, + newValue, + oldValue, + oldTarget + } : void 0 + ); + } + } + resetScheduling(); +} +function getDepFromReactive(object, key) { + const depsMap = targetMap.get(object); + return depsMap && depsMap.get(key); +} +var isNonTrackableKeys = makeMap(`__proto__,__v_isRef,__isVue`); +var builtInSymbols = new Set( + Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) +); +var arrayInstrumentations = createArrayInstrumentations(); +function createArrayInstrumentations() { + const instrumentations = {}; + ["includes", "indexOf", "lastIndexOf"].forEach((key) => { + instrumentations[key] = function(...args) { + const arr = toRaw(this); + for (let i = 0, l = this.length; i < l; i++) { + track(arr, "get", i + ""); + } + const res = arr[key](...args); + if (res === -1 || res === false) { + return arr[key](...args.map(toRaw)); + } else { + return res; + } + }; + }); + ["push", "pop", "shift", "unshift", "splice"].forEach((key) => { + instrumentations[key] = function(...args) { + pauseTracking(); + pauseScheduling(); + const res = toRaw(this)[key].apply(this, args); + resetScheduling(); + resetTracking(); + return res; + }; + }); + return instrumentations; +} +function hasOwnProperty2(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); +} +var BaseReactiveHandler = class { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the reciever is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + if (targetIsArray && hasOwn(arrayInstrumentations, key)) { + return Reflect.get(arrayInstrumentations, key, receiver); + } + if (key === "hasOwnProperty") { + return hasOwnProperty2; + } + } + const res = Reflect.get(target, key, receiver); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + return targetIsArray && isIntegerKey(key) ? res : res.value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } +}; +var MutableReactiveHandler = class extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArray(target) && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + return false; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set(target, key, value, receiver); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } +}; +var ReadonlyReactiveHandler = class extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + if (true) { + warn( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + if (true) { + warn( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } +}; +var mutableHandlers = new MutableReactiveHandler(); +var readonlyHandlers = new ReadonlyReactiveHandler(); +var shallowReactiveHandlers = new MutableReactiveHandler( + true +); +var shallowReadonlyHandlers = new ReadonlyReactiveHandler(true); +var toShallow = (value) => value; +var getProto = (v) => Reflect.getPrototypeOf(v); +function get(target, key, isReadonly2 = false, isShallow2 = false) { + target = target["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has: has2 } = getProto(rawTarget); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + if (has2.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has2.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } +} +function has(key, isReadonly2 = false) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!isReadonly2) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); +} +function size(target, isReadonly2 = false) { + target = target["__v_raw"]; + !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY); + return Reflect.get(target, "size", target); +} +function add(value) { + value = toRaw(value); + const target = toRaw(this); + const proto = getProto(target); + const hadKey = proto.has.call(target, value); + if (!hadKey) { + target.add(value); + trigger(target, "add", value, value); + } + return this; +} +function set(key, value) { + value = toRaw(value); + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (true) { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; +} +function deleteEntry(key) { + const target = toRaw(this); + const { has: has2, get: get2 } = getProto(target); + let hadKey = has2.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has2.call(target, key); + } else if (true) { + checkIdentityKeys(target, has2, key); + } + const oldValue = get2 ? get2.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; +} +function clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0; + const result = target.clear(); + if (hadItems) { + trigger(target, "clear", void 0, void 0, oldTarget); + } + return result; +} +function createForEach(isReadonly2, isShallow2) { + return function forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + }; +} +function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + }, + // iterable protocol + [Symbol.iterator]() { + return this; + } + }; + }; +} +function createReadonlyMethod(type) { + return function(...args) { + if (true) { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; +} +function createInstrumentations() { + const mutableInstrumentations2 = { + get(key) { + return get(this, key); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, false) + }; + const shallowInstrumentations2 = { + get(key) { + return get(this, key, false, true); + }, + get size() { + return size(this); + }, + has, + add, + set, + delete: deleteEntry, + clear, + forEach: createForEach(false, true) + }; + const readonlyInstrumentations2 = { + get(key) { + return get(this, key, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, false) + }; + const shallowReadonlyInstrumentations2 = { + get(key) { + return get(this, key, true, true); + }, + get size() { + return size(this, true); + }, + has(key) { + return has.call(this, key, true); + }, + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear"), + forEach: createForEach(true, true) + }; + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + mutableInstrumentations2[method] = createIterableMethod(method, false, false); + readonlyInstrumentations2[method] = createIterableMethod(method, true, false); + shallowInstrumentations2[method] = createIterableMethod(method, false, true); + shallowReadonlyInstrumentations2[method] = createIterableMethod( + method, + true, + true + ); + }); + return [ + mutableInstrumentations2, + readonlyInstrumentations2, + shallowInstrumentations2, + shallowReadonlyInstrumentations2 + ]; +} +var [ + mutableInstrumentations, + readonlyInstrumentations, + shallowInstrumentations, + shallowReadonlyInstrumentations +] = createInstrumentations(); +function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations; + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; +} +var mutableCollectionHandlers = { + get: createInstrumentationGetter(false, false) +}; +var shallowCollectionHandlers = { + get: createInstrumentationGetter(false, true) +}; +var readonlyCollectionHandlers = { + get: createInstrumentationGetter(true, false) +}; +var shallowReadonlyCollectionHandlers = { + get: createInstrumentationGetter(true, true) +}; +function checkIdentityKeys(target, has2, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has2.call(target, rawKey)) { + const type = toRawType(target); + warn( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } +} +var reactiveMap = /* @__PURE__ */ new WeakMap(); +var shallowReactiveMap = /* @__PURE__ */ new WeakMap(); +var readonlyMap = /* @__PURE__ */ new WeakMap(); +var shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); +function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2; + default: + return 0; + } +} +function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value)); +} +function reactive(target) { + if (isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); +} +function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); +} +function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); +} +function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); +} +function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + if (true) { + warn( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const targetType = getTargetType(target); + if (targetType === 0) { + return target; + } + const proxy = new Proxy( + target, + targetType === 2 ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; +} +function isReactive(value) { + if (isReadonly(value)) { + return isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); +} +function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); +} +function isShallow(value) { + return !!(value && value["__v_isShallow"]); +} +function isProxy(value) { + return value ? !!value["__v_raw"] : false; +} +function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? toRaw(raw) : observed; +} +function markRaw(value) { + if (Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; +} +var toReactive = (value) => isObject(value) ? reactive(value) : value; +var toReadonly = (value) => isObject(value) ? readonly(value) : value; +var COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`; +var ComputedRefImpl = class { + constructor(getter, _setter, isReadonly2, isSSR) { + this.getter = getter; + this._setter = _setter; + this.dep = void 0; + this.__v_isRef = true; + this["__v_isReadonly"] = false; + this.effect = new ReactiveEffect( + () => getter(this._value), + () => triggerRefValue( + this, + this.effect._dirtyLevel === 3 ? 3 : 4 + ) + ); + this.effect.computed = this; + this.effect.active = this._cacheable = !isSSR; + this["__v_isReadonly"] = isReadonly2; + } + get value() { + const self2 = toRaw(this); + if ((!self2._cacheable || self2.effect.dirty) && hasChanged(self2._value, self2._value = self2.effect.run())) { + triggerRefValue(self2, 5); + } + trackRefValue(self2); + if (self2.effect._dirtyLevel >= 2) { + if (this._warnRecursive) { + warn(COMPUTED_SIDE_EFFECT_WARN, ` + +getter: `, this.getter); + } + triggerRefValue(self2, 3); + } + return self2._value; + } + set value(newValue) { + this._setter(newValue); + } + // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x + get _dirty() { + return this.effect.dirty; + } + set _dirty(v) { + this.effect.dirty = v; + } + // #endregion +}; +function computed(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + const onlyGetter = isFunction(getterOrOptions); + if (onlyGetter) { + getter = getterOrOptions; + setter = true ? () => { + warn("Write operation failed: computed value is readonly"); + } : NOOP; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR); + if (debugOptions && !isSSR) { + cRef.effect.onTrack = debugOptions.onTrack; + cRef.effect.onTrigger = debugOptions.onTrigger; + } + return cRef; +} +function trackRefValue(ref2) { + var _a; + if (shouldTrack && activeEffect) { + ref2 = toRaw(ref2); + trackEffect( + activeEffect, + (_a = ref2.dep) != null ? _a : ref2.dep = createDep( + () => ref2.dep = void 0, + ref2 instanceof ComputedRefImpl ? ref2 : void 0 + ), + true ? { + target: ref2, + type: "get", + key: "value" + } : void 0 + ); + } +} +function triggerRefValue(ref2, dirtyLevel = 5, newVal, oldVal) { + ref2 = toRaw(ref2); + const dep = ref2.dep; + if (dep) { + triggerEffects( + dep, + dirtyLevel, + true ? { + target: ref2, + type: "set", + key: "value", + newValue: newVal, + oldValue: oldVal + } : void 0 + ); + } +} +function isRef(r) { + return !!(r && r.__v_isRef === true); +} +function ref(value) { + return createRef(value, false); +} +function shallowRef(value) { + return createRef(value, true); +} +function createRef(rawValue, shallow) { + if (isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); +} +var RefImpl = class { + constructor(value, __v_isShallow) { + this.__v_isShallow = __v_isShallow; + this.dep = void 0; + this.__v_isRef = true; + this._rawValue = __v_isShallow ? value : toRaw(value); + this._value = __v_isShallow ? value : toReactive(value); + } + get value() { + trackRefValue(this); + return this._value; + } + set value(newVal) { + const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal); + newVal = useDirectValue ? newVal : toRaw(newVal); + if (hasChanged(newVal, this._rawValue)) { + const oldVal = this._rawValue; + this._rawValue = newVal; + this._value = useDirectValue ? newVal : toReactive(newVal); + triggerRefValue(this, 5, newVal, oldVal); + } + } +}; +function triggerRef(ref2) { + triggerRefValue(ref2, 5, true ? ref2.value : void 0); +} +function unref(ref2) { + return isRef(ref2) ? ref2.value : ref2; +} +function toValue(source) { + return isFunction(source) ? source() : unref(source); +} +var shallowUnwrapHandlers = { + get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (isRef(oldValue) && !isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } +}; +function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); +} +var CustomRefImpl = class { + constructor(factory) { + this.dep = void 0; + this.__v_isRef = true; + const { get: get2, set: set2 } = factory( + () => trackRefValue(this), + () => triggerRefValue(this) + ); + this._get = get2; + this._set = set2; + } + get value() { + return this._get(); + } + set value(newVal) { + this._set(newVal); + } +}; +function customRef(factory) { + return new CustomRefImpl(factory); +} +function toRefs(object) { + if (!isProxy(object)) { + warn(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; +} +var ObjectRefImpl = class { + constructor(_object, _key, _defaultValue) { + this._object = _object; + this._key = _key; + this._defaultValue = _defaultValue; + this.__v_isRef = true; + } + get value() { + const val = this._object[this._key]; + return val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(toRaw(this._object), this._key); + } +}; +var GetterRefImpl = class { + constructor(_getter) { + this._getter = _getter; + this.__v_isRef = true; + this.__v_isReadonly = true; + } + get value() { + return this._getter(); + } +}; +function toRef(source, key, defaultValue) { + if (isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return ref(source); + } +} +function propertyToRef(source, key, defaultValue) { + const val = source[key]; + return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue); +} +var TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" +}; +var TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" +}; + +// node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +var stack = []; +function pushWarningContext(vnode) { + stack.push(vnode); +} +function popWarningContext() { + stack.pop(); +} +function warn$1(msg, ...args) { + pauseTracking(); + const instance = stack.length ? stack[stack.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); +} +function getComponentTrace() { + let currentVNode = stack[stack.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; +} +function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; +} +function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; +} +function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; +} +function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } +} +function assertNumber(val, type) { + if (false) return; + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1(`${type} is NaN - the duration expression might be incorrect.`); + } +} +var ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "WATCH_GETTER": 2, + "2": "WATCH_GETTER", + "WATCH_CALLBACK": 3, + "3": "WATCH_CALLBACK", + "WATCH_CLEANUP": 4, + "4": "WATCH_CLEANUP", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER" +}; +var ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core ." +}; +function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } +} +function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } else if (true) { + warn$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } +} +function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = true ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + const appErrorHandler = instance.appContext.config.errorHandler; + if (appErrorHandler) { + pauseTracking(); + callWithErrorHandling( + appErrorHandler, + null, + 10, + [err, exposedInstance, errorInfo] + ); + resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev); +} +function logError(err, type, contextVNode, throwInDev = true) { + if (true) { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } else { + console.error(err); + } +} +var isFlushing = false; +var isFlushPending = false; +var queue = []; +var flushIndex = 0; +var pendingPostFlushCbs = []; +var activePostFlushCbs = null; +var postFlushIndex = 0; +var resolvedPromise = Promise.resolve(); +var currentFlushPromise = null; +var RECURSION_LIMIT = 100; +function nextTick(fn) { + const p2 = currentFlushPromise || resolvedPromise; + return fn ? p2.then(this ? fn.bind(this) : fn) : p2; +} +function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.pre) { + start = middle + 1; + } else { + end = middle; + } + } + return start; +} +function queueJob(job) { + if (!queue.length || !queue.includes( + job, + isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex + )) { + if (job.id == null) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(job.id), 0, job); + } + queueFlush(); + } +} +function queueFlush() { + if (!isFlushing && !isFlushPending) { + isFlushPending = true; + currentFlushPromise = resolvedPromise.then(flushJobs); + } +} +function invalidateJob(job) { + const i = queue.indexOf(job); + if (i > flushIndex) { + queue.splice(i, 1); + } +} +function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (!activePostFlushCbs || !activePostFlushCbs.includes( + cb, + cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex + )) { + pendingPostFlushCbs.push(cb); + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); +} +function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) { + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.pre) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + cb(); + } + } +} +function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + if (cb.active !== false) cb(); + } + activePostFlushCbs = null; + postFlushIndex = 0; + } +} +var getId = (job) => job.id == null ? Infinity : job.id; +var comparator = (a, b) => { + const diff = getId(a) - getId(b); + if (diff === 0) { + if (a.pre && !b.pre) return -1; + if (b.pre && !a.pre) return 1; + } + return diff; +}; +function flushJobs(seen) { + isFlushPending = false; + isFlushing = true; + if (true) { + seen = seen || /* @__PURE__ */ new Map(); + } + queue.sort(comparator); + const check = true ? (job) => checkRecursiveUpdates(seen, job) : NOOP; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && job.active !== false) { + if (check(job)) { + continue; + } + callWithErrorHandling(job, null, 14); + } + } + } finally { + flushIndex = 0; + queue.length = 0; + flushPostFlushCbs(seen); + isFlushing = false; + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } +} +function checkRecursiveUpdates(seen, fn) { + if (!seen.has(fn)) { + seen.set(fn, 1); + } else { + const count = seen.get(fn); + if (count > RECURSION_LIMIT) { + const instance = fn.ownerInstance; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } else { + seen.set(fn, count + 1); + } + } +} +var isHmrUpdating = false; +var hmrDirtyComponents = /* @__PURE__ */ new Set(); +if (true) { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; +} +var map = /* @__PURE__ */ new Map(); +function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); +} +function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); +} +function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; +} +function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; +} +function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + instance.effect.dirty = true; + instance.update(); + isHmrUpdating = false; + }); +} +function reload(id, newComp) { + const record = map.get(id); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (const instance of instances) { + const oldComp = normalizeClassComponent(instance.type); + if (!hmrDirtyComponents.has(oldComp)) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.add(oldComp); + } + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + hmrDirtyComponents.add(oldComp); + instance.ceReload(newComp.styles); + hmrDirtyComponents.delete(oldComp); + } else if (instance.parent) { + instance.parent.effect.dirty = true; + queueJob(() => { + instance.parent.update(); + hmrDirtyComponents.delete(oldComp); + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + } + queuePostFlushCb(() => { + for (const instance of instances) { + hmrDirtyComponents.delete( + normalizeClassComponent(instance.type) + ); + } + }); +} +function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } +} +function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; +} +var devtools$1; +var buffer = []; +var devtoolsNotInstalled = false; +function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } +} +function setDevtoolsHook$1(hook, target) { + var _a, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } +} +function devtoolsInitApp(app, version2) { + emit$1("app:init", app, version2, { + Fragment, + Text, + Comment, + Static + }); +} +function devtoolsUnmountApp(app) { + emit$1("app:unmount", app); +} +var devtoolsComponentAdded = createDevtoolsComponentHook( + "component:added" + /* COMPONENT_ADDED */ +); +var devtoolsComponentUpdated = createDevtoolsComponentHook( + "component:updated" + /* COMPONENT_UPDATED */ +); +var _devtoolsComponentRemoved = createDevtoolsComponentHook( + "component:removed" + /* COMPONENT_REMOVED */ +); +var devtoolsComponentRemoved = (component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } +}; +function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; +} +var devtoolsPerfStart = createDevtoolsPerformanceHook( + "perf:start" + /* PERFORMANCE_START */ +); +var devtoolsPerfEnd = createDevtoolsPerformanceHook( + "perf:end" + /* PERFORMANCE_END */ +); +function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; +} +function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit", + component.appContext.app, + component, + event, + params + ); +} +function emit(instance, event, ...rawArgs) { + if (instance.isUnmounted) return; + const props = instance.vnode.props || EMPTY_OBJ; + if (true) { + const { + emitsOptions, + propsOptions: [propsOptions] + } = instance; + if (emitsOptions) { + if (!(event in emitsOptions) && true) { + if (!propsOptions || !(toHandlerKey(event) in propsOptions)) { + warn$1( + `Component emitted event "${event}" but it is neither declared in the emits option nor as an "${toHandlerKey(event)}" prop.` + ); + } + } else { + const validator = emitsOptions[event]; + if (isFunction(validator)) { + const isValid = validator(...rawArgs); + if (!isValid) { + warn$1( + `Invalid event arguments: event validation failed for event "${event}".` + ); + } + } + } + } + } + let args = rawArgs; + const isModelListener2 = event.startsWith("update:"); + const modelArg = isModelListener2 && event.slice(7); + if (modelArg && modelArg in props) { + const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`; + const { number, trim } = props[modifiersKey] || EMPTY_OBJ; + if (trim) { + args = rawArgs.map((a) => isString(a) ? a.trim() : a); + } + if (number) { + args = rawArgs.map(looseToNumber); + } + } + if (true) { + devtoolsComponentEmit(instance, event, args); + } + if (true) { + const lowerCaseEvent = event.toLowerCase(); + if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) { + warn$1( + `Event "${lowerCaseEvent}" is emitted in component ${formatComponentName( + instance, + instance.type + )} but the handler is registered for "${event}". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use "${hyphenate( + event + )}" instead of "${event}".` + ); + } + } + let handlerName; + let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249) + props[handlerName = toHandlerKey(camelize(event))]; + if (!handler && isModelListener2) { + handler = props[handlerName = toHandlerKey(hyphenate(event))]; + } + if (handler) { + callWithAsyncErrorHandling( + handler, + instance, + 6, + args + ); + } + const onceHandler = props[handlerName + `Once`]; + if (onceHandler) { + if (!instance.emitted) { + instance.emitted = {}; + } else if (instance.emitted[handlerName]) { + return; + } + instance.emitted[handlerName] = true; + callWithAsyncErrorHandling( + onceHandler, + instance, + 6, + args + ); + } +} +function normalizeEmitsOptions(comp, appContext, asMixin = false) { + const cache = appContext.emitsCache; + const cached = cache.get(comp); + if (cached !== void 0) { + return cached; + } + const raw = comp.emits; + let normalized = {}; + let hasExtends = false; + if (__VUE_OPTIONS_API__ && !isFunction(comp)) { + const extendEmits = (raw2) => { + const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true); + if (normalizedFromExtend) { + hasExtends = true; + extend(normalized, normalizedFromExtend); + } + }; + if (!asMixin && appContext.mixins.length) { + appContext.mixins.forEach(extendEmits); + } + if (comp.extends) { + extendEmits(comp.extends); + } + if (comp.mixins) { + comp.mixins.forEach(extendEmits); + } + } + if (!raw && !hasExtends) { + if (isObject(comp)) { + cache.set(comp, null); + } + return null; + } + if (isArray(raw)) { + raw.forEach((key) => normalized[key] = null); + } else { + extend(normalized, raw); + } + if (isObject(comp)) { + cache.set(comp, normalized); + } + return normalized; +} +function isEmitListener(options, key) { + if (!options || !isOn(key)) { + return false; + } + key = key.slice(2).replace(/Once$/, ""); + return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key); +} +var currentRenderingInstance = null; +var currentScopeId = null; +function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; +} +function pushScopeId(id) { + currentScopeId = id; +} +function popScopeId() { + currentScopeId = null; +} +var withScopeId = (_id) => withCtx; +function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + if (true) { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; +} +var accessedAttrs = false; +function markAttrsAccessed() { + accessedAttrs = true; +} +function renderComponentRoot(instance) { + const { + type: Component, + vnode, + proxy, + withProxy, + propsOptions: [propsOptions], + slots, + attrs, + emit: emit2, + render: render2, + renderCache, + props, + data, + setupState, + ctx, + inheritAttrs + } = instance; + const prev = setCurrentRenderingInstance(instance); + let result; + let fallthroughAttrs; + if (true) { + accessedAttrs = false; + } + try { + if (vnode.shapeFlag & 4) { + const proxyToUse = withProxy || proxy; + const thisProxy = setupState.__isScriptSetup ? new Proxy(proxyToUse, { + get(target, key, receiver) { + warn$1( + `Property '${String( + key + )}' was accessed via 'this'. Avoid using 'this' in templates.` + ); + return Reflect.get(target, key, receiver); + } + }) : proxyToUse; + result = normalizeVNode( + render2.call( + thisProxy, + proxyToUse, + renderCache, + true ? shallowReadonly(props) : props, + setupState, + data, + ctx + ) + ); + fallthroughAttrs = attrs; + } else { + const render22 = Component; + if (attrs === props) { + markAttrsAccessed(); + } + result = normalizeVNode( + render22.length > 1 ? render22( + true ? shallowReadonly(props) : props, + true ? { + get attrs() { + markAttrsAccessed(); + return shallowReadonly(attrs); + }, + slots, + emit: emit2 + } : { attrs, slots, emit: emit2 } + ) : render22( + true ? shallowReadonly(props) : props, + null + ) + ); + fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs); + } + } catch (err) { + blockStack.length = 0; + handleError(err, instance, 1); + result = createVNode(Comment); + } + let root = result; + let setRoot = void 0; + if (result.patchFlag > 0 && result.patchFlag & 2048) { + [root, setRoot] = getChildRoot(result); + } + if (fallthroughAttrs && inheritAttrs !== false) { + const keys = Object.keys(fallthroughAttrs); + const { shapeFlag } = root; + if (keys.length) { + if (shapeFlag & (1 | 6)) { + if (propsOptions && keys.some(isModelListener)) { + fallthroughAttrs = filterModelListeners( + fallthroughAttrs, + propsOptions + ); + } + root = cloneVNode(root, fallthroughAttrs, false, true); + } else if (!accessedAttrs && root.type !== Comment) { + const allAttrs = Object.keys(attrs); + const eventAttrs = []; + const extraAttrs = []; + for (let i = 0, l = allAttrs.length; i < l; i++) { + const key = allAttrs[i]; + if (isOn(key)) { + if (!isModelListener(key)) { + eventAttrs.push(key[2].toLowerCase() + key.slice(3)); + } + } else { + extraAttrs.push(key); + } + } + if (extraAttrs.length) { + warn$1( + `Extraneous non-props attributes (${extraAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.` + ); + } + if (eventAttrs.length) { + warn$1( + `Extraneous non-emits event listeners (${eventAttrs.join(", ")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the "emits" option.` + ); + } + } + } + } + if (vnode.dirs) { + if (!isElementRoot(root)) { + warn$1( + `Runtime directive used on component with non-element root node. The directives will not function as intended.` + ); + } + root = cloneVNode(root, null, false, true); + root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs; + } + if (vnode.transition) { + if (!isElementRoot(root)) { + warn$1( + `Component inside renders non-element root node that cannot be animated.` + ); + } + root.transition = vnode.transition; + } + if (setRoot) { + setRoot(root); + } else { + result = root; + } + setCurrentRenderingInstance(prev); + return result; +} +var getChildRoot = (vnode) => { + const rawChildren = vnode.children; + const dynamicChildren = vnode.dynamicChildren; + const childRoot = filterSingleRoot(rawChildren, false); + if (!childRoot) { + return [vnode, void 0]; + } else if (childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) { + return getChildRoot(childRoot); + } + const index = rawChildren.indexOf(childRoot); + const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1; + const setRoot = (updatedRoot) => { + rawChildren[index] = updatedRoot; + if (dynamicChildren) { + if (dynamicIndex > -1) { + dynamicChildren[dynamicIndex] = updatedRoot; + } else if (updatedRoot.patchFlag > 0) { + vnode.dynamicChildren = [...dynamicChildren, updatedRoot]; + } + } + }; + return [normalizeVNode(childRoot), setRoot]; +}; +function filterSingleRoot(children, recurse = true) { + let singleRoot; + for (let i = 0; i < children.length; i++) { + const child = children[i]; + if (isVNode(child)) { + if (child.type !== Comment || child.children === "v-if") { + if (singleRoot) { + return; + } else { + singleRoot = child; + if (recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) { + return filterSingleRoot(singleRoot.children); + } + } + } + } else { + return; + } + } + return singleRoot; +} +var getFunctionalFallthrough = (attrs) => { + let res; + for (const key in attrs) { + if (key === "class" || key === "style" || isOn(key)) { + (res || (res = {}))[key] = attrs[key]; + } + } + return res; +}; +var filterModelListeners = (attrs, props) => { + const res = {}; + for (const key in attrs) { + if (!isModelListener(key) || !(key.slice(9) in props)) { + res[key] = attrs[key]; + } + } + return res; +}; +var isElementRoot = (vnode) => { + return vnode.shapeFlag & (6 | 1) || vnode.type === Comment; +}; +function shouldUpdateComponent(prevVNode, nextVNode, optimized) { + const { props: prevProps, children: prevChildren, component } = prevVNode; + const { props: nextProps, children: nextChildren, patchFlag } = nextVNode; + const emits = component.emitsOptions; + if ((prevChildren || nextChildren) && isHmrUpdating) { + return true; + } + if (nextVNode.dirs || nextVNode.transition) { + return true; + } + if (optimized && patchFlag >= 0) { + if (patchFlag & 1024) { + return true; + } + if (patchFlag & 16) { + if (!prevProps) { + return !!nextProps; + } + return hasPropsChanged(prevProps, nextProps, emits); + } else if (patchFlag & 8) { + const dynamicProps = nextVNode.dynamicProps; + for (let i = 0; i < dynamicProps.length; i++) { + const key = dynamicProps[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) { + return true; + } + } + } + } else { + if (prevChildren || nextChildren) { + if (!nextChildren || !nextChildren.$stable) { + return true; + } + } + if (prevProps === nextProps) { + return false; + } + if (!prevProps) { + return !!nextProps; + } + if (!nextProps) { + return true; + } + return hasPropsChanged(prevProps, nextProps, emits); + } + return false; +} +function hasPropsChanged(prevProps, nextProps, emitsOptions) { + const nextKeys = Object.keys(nextProps); + if (nextKeys.length !== Object.keys(prevProps).length) { + return true; + } + for (let i = 0; i < nextKeys.length; i++) { + const key = nextKeys[i]; + if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) { + return true; + } + } + return false; +} +function updateHOCHostEl({ vnode, parent }, el) { + while (parent) { + const root = parent.subTree; + if (root.suspense && root.suspense.activeBranch === vnode) { + root.el = vnode.el; + } + if (root === vnode) { + (vnode = parent.vnode).el = el; + parent = parent.parent; + } else { + break; + } + } +} +var COMPONENTS = "components"; +var DIRECTIVES = "directives"; +function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; +} +var NULL_DYNAMIC_COMPONENT = Symbol.for("v-ndc"); +function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } +} +function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); +} +function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else if (true) { + warn$1( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } +} +function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); +} +var isSuspense = (type) => type.__isSuspense; +var suspenseId = 0; +var SuspenseImpl = { + name: "Suspense", + // In order to make Suspense tree-shakable, we need to avoid importing it + // directly in the renderer. The renderer checks for the __isSuspense flag + // on a vnode's type and calls the `process` method, passing in renderer + // internals. + __isSuspense: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + if (n1 == null) { + mountSuspense( + n2, + container, + anchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } else { + if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) { + n2.suspense = n1.suspense; + n2.suspense.vnode = n2; + n2.el = n1.el; + return; + } + patchSuspense( + n1, + n2, + container, + anchor, + parentComponent, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + } + }, + hydrate: hydrateSuspense, + create: createSuspenseBoundary, + normalize: normalizeSuspenseChildren +}; +var Suspense = SuspenseImpl; +function triggerEvent(vnode, name) { + const eventListener = vnode.props && vnode.props[name]; + if (isFunction(eventListener)) { + eventListener(); + } +} +function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) { + const { + p: patch, + o: { createElement } + } = rendererInternals; + const hiddenContainer = createElement("div"); + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + container, + hiddenContainer, + anchor, + namespace, + slotScopeIds, + optimized, + rendererInternals + ); + patch( + null, + suspense.pendingBranch = vnode.ssContent, + hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds + ); + if (suspense.deps > 0) { + triggerEvent(vnode, "onPending"); + triggerEvent(vnode, "onFallback"); + patch( + null, + vnode.ssFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds + ); + setActiveBranch(suspense, vnode.ssFallback); + } else { + suspense.resolve(false, true); + } +} +function patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) { + const suspense = n2.suspense = n1.suspense; + suspense.vnode = n2; + n2.el = n1.el; + const newBranch = n2.ssContent; + const newFallback = n2.ssFallback; + const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense; + if (pendingBranch) { + suspense.pendingBranch = newBranch; + if (isSameVNodeType(newBranch, pendingBranch)) { + patch( + pendingBranch, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else if (isInFallback) { + if (!isHydrating) { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } + } else { + suspense.pendingId = suspenseId++; + if (isHydrating) { + suspense.isHydrating = false; + suspense.activeBranch = pendingBranch; + } else { + unmount(pendingBranch, parentComponent, suspense); + } + suspense.deps = 0; + suspense.effects.length = 0; + suspense.hiddenContainer = createElement("div"); + if (isInFallback) { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + patch( + activeBranch, + newFallback, + container, + anchor, + parentComponent, + null, + // fallback tree will not have suspense context + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newFallback); + } + } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + suspense.resolve(true); + } else { + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } + } + } + } else { + if (activeBranch && isSameVNodeType(newBranch, activeBranch)) { + patch( + activeBranch, + newBranch, + container, + anchor, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, newBranch); + } else { + triggerEvent(n2, "onPending"); + suspense.pendingBranch = newBranch; + if (newBranch.shapeFlag & 512) { + suspense.pendingId = newBranch.component.suspenseId; + } else { + suspense.pendingId = suspenseId++; + } + patch( + null, + newBranch, + suspense.hiddenContainer, + null, + parentComponent, + suspense, + namespace, + slotScopeIds, + optimized + ); + if (suspense.deps <= 0) { + suspense.resolve(); + } else { + const { timeout, pendingId } = suspense; + if (timeout > 0) { + setTimeout(() => { + if (suspense.pendingId === pendingId) { + suspense.fallback(newFallback); + } + }, timeout); + } else if (timeout === 0) { + suspense.fallback(newFallback); + } + } + } + } +} +var hasWarned = false; +function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) { + if (!hasWarned) { + hasWarned = true; + console[console.info ? "info" : "log"]( + ` is an experimental feature and its API will likely change.` + ); + } + const { + p: patch, + m: move, + um: unmount, + n: next, + o: { parentNode, remove: remove2 } + } = rendererInternals; + let parentSuspenseId; + const isSuspensible = isVNodeSuspensible(vnode); + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch) { + parentSuspenseId = parentSuspense.pendingId; + parentSuspense.deps++; + } + } + const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0; + if (true) { + assertNumber(timeout, `Suspense timeout`); + } + const initialAnchor = anchor; + const suspense = { + vnode, + parent: parentSuspense, + parentComponent, + namespace, + container, + hiddenContainer, + deps: 0, + pendingId: suspenseId++, + timeout: typeof timeout === "number" ? timeout : -1, + activeBranch: null, + pendingBranch: null, + isInFallback: !isHydrating, + isHydrating, + isUnmounted: false, + effects: [], + resolve(resume = false, sync = false) { + if (true) { + if (!resume && !suspense.pendingBranch) { + throw new Error( + `suspense.resolve() is called without a pending branch.` + ); + } + if (suspense.isUnmounted) { + throw new Error( + `suspense.resolve() is called on an already unmounted suspense boundary.` + ); + } + } + const { + vnode: vnode2, + activeBranch, + pendingBranch, + pendingId, + effects, + parentComponent: parentComponent2, + container: container2 + } = suspense; + let delayEnter = false; + if (suspense.isHydrating) { + suspense.isHydrating = false; + } else if (!resume) { + delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = () => { + if (pendingId === suspense.pendingId) { + move( + pendingBranch, + container2, + anchor === initialAnchor ? next(activeBranch) : anchor, + 0 + ); + queuePostFlushCb(effects); + } + }; + } + if (activeBranch) { + if (parentNode(activeBranch.el) !== suspense.hiddenContainer) { + anchor = next(activeBranch); + } + unmount(activeBranch, parentComponent2, suspense, true); + } + if (!delayEnter) { + move(pendingBranch, container2, anchor, 0); + } + } + setActiveBranch(suspense, pendingBranch); + suspense.pendingBranch = null; + suspense.isInFallback = false; + let parent = suspense.parent; + let hasUnresolvedAncestor = false; + while (parent) { + if (parent.pendingBranch) { + parent.effects.push(...effects); + hasUnresolvedAncestor = true; + break; + } + parent = parent.parent; + } + if (!hasUnresolvedAncestor && !delayEnter) { + queuePostFlushCb(effects); + } + suspense.effects = []; + if (isSuspensible) { + if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) { + parentSuspense.deps--; + if (parentSuspense.deps === 0 && !sync) { + parentSuspense.resolve(); + } + } + } + triggerEvent(vnode2, "onResolve"); + }, + fallback(fallbackVNode) { + if (!suspense.pendingBranch) { + return; + } + const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense; + triggerEvent(vnode2, "onFallback"); + const anchor2 = next(activeBranch); + const mountFallback = () => { + if (!suspense.isInFallback) { + return; + } + patch( + null, + fallbackVNode, + container2, + anchor2, + parentComponent2, + null, + // fallback tree will not have suspense context + namespace2, + slotScopeIds, + optimized + ); + setActiveBranch(suspense, fallbackVNode); + }; + const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in"; + if (delayEnter) { + activeBranch.transition.afterLeave = mountFallback; + } + suspense.isInFallback = true; + unmount( + activeBranch, + parentComponent2, + null, + // no suspense so unmount hooks fire now + true + // shouldRemove + ); + if (!delayEnter) { + mountFallback(); + } + }, + move(container2, anchor2, type) { + suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type); + suspense.container = container2; + }, + next() { + return suspense.activeBranch && next(suspense.activeBranch); + }, + registerDep(instance, setupRenderEffect, optimized2) { + const isInPendingSuspense = !!suspense.pendingBranch; + if (isInPendingSuspense) { + suspense.deps++; + } + const hydratedEl = instance.vnode.el; + instance.asyncDep.catch((err) => { + handleError(err, instance, 0); + }).then((asyncSetupResult) => { + if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) { + return; + } + instance.asyncResolved = true; + const { vnode: vnode2 } = instance; + if (true) { + pushWarningContext(vnode2); + } + handleSetupResult(instance, asyncSetupResult, false); + if (hydratedEl) { + vnode2.el = hydratedEl; + } + const placeholder = !hydratedEl && instance.subTree.el; + setupRenderEffect( + instance, + vnode2, + // component may have been moved before resolve. + // if this is not a hydration, instance.subTree will be the comment + // placeholder. + parentNode(hydratedEl || instance.subTree.el), + // anchor will not be used if this is hydration, so only need to + // consider the comment placeholder case. + hydratedEl ? null : next(instance.subTree), + suspense, + namespace, + optimized2 + ); + if (placeholder) { + remove2(placeholder); + } + updateHOCHostEl(instance, vnode2.el); + if (true) { + popWarningContext(); + } + if (isInPendingSuspense && --suspense.deps === 0) { + suspense.resolve(); + } + }); + }, + unmount(parentSuspense2, doRemove) { + suspense.isUnmounted = true; + if (suspense.activeBranch) { + unmount( + suspense.activeBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + if (suspense.pendingBranch) { + unmount( + suspense.pendingBranch, + parentComponent, + parentSuspense2, + doRemove + ); + } + } + }; + return suspense; +} +function hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) { + const suspense = vnode.suspense = createSuspenseBoundary( + vnode, + parentSuspense, + parentComponent, + node.parentNode, + // eslint-disable-next-line no-restricted-globals + document.createElement("div"), + null, + namespace, + slotScopeIds, + optimized, + rendererInternals, + true + ); + const result = hydrateNode( + node, + suspense.pendingBranch = vnode.ssContent, + parentComponent, + suspense, + slotScopeIds, + optimized + ); + if (suspense.deps === 0) { + suspense.resolve(false, true); + } + return result; +} +function normalizeSuspenseChildren(vnode) { + const { shapeFlag, children } = vnode; + const isSlotChildren = shapeFlag & 32; + vnode.ssContent = normalizeSuspenseSlot( + isSlotChildren ? children.default : children + ); + vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment); +} +function normalizeSuspenseSlot(s) { + let block; + if (isFunction(s)) { + const trackBlock = isBlockTreeEnabled && s._c; + if (trackBlock) { + s._d = false; + openBlock(); + } + s = s(); + if (trackBlock) { + s._d = true; + block = currentBlock; + closeBlock(); + } + } + if (isArray(s)) { + const singleChild = filterSingleRoot(s); + if (!singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) { + warn$1(` slots expect a single root node.`); + } + s = singleChild; + } + s = normalizeVNode(s); + if (block && !s.dynamicChildren) { + s.dynamicChildren = block.filter((c) => c !== s); + } + return s; +} +function queueEffectWithSuspense(fn, suspense) { + if (suspense && suspense.pendingBranch) { + if (isArray(fn)) { + suspense.effects.push(...fn); + } else { + suspense.effects.push(fn); + } + } else { + queuePostFlushCb(fn); + } +} +function setActiveBranch(suspense, branch) { + suspense.activeBranch = branch; + const { vnode, parentComponent } = suspense; + let el = branch.el; + while (!el && branch.component) { + branch = branch.component.subTree; + el = branch.el; + } + vnode.el = el; + if (parentComponent && parentComponent.subTree === vnode) { + parentComponent.vnode.el = el; + updateHOCHostEl(parentComponent, el); + } +} +function isVNodeSuspensible(vnode) { + const suspensible = vnode.props && vnode.props.suspensible; + return suspensible != null && suspensible !== false; +} +function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else if (true) { + const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` + ); + } +} +var createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } +}; +var onBeforeMount = createHook("bm"); +var onMounted = createHook("m"); +var onBeforeUpdate = createHook("bu"); +var onUpdated = createHook("u"); +var onBeforeUnmount = createHook("bum"); +var onUnmounted = createHook("um"); +var onServerPrefetch = createHook("sp"); +var onRenderTriggered = createHook( + "rtg" +); +var onRenderTracked = createHook( + "rtc" +); +function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); +} +function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } +} +function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + warn$1(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; +} +function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } +} +function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + if (isArray(source) || isString(source)) { + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem(source[i], i, void 0, cached && cached[i]); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source)) { + warn$1(`The v-for range expect an integer value but got ${source}.`); + } + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; +} +function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; +} +function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8326: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; +} +var isAsyncWrapper = (i) => !!i.type.__asyncLoader; +function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve2, reject) => { + const userRetry = () => resolve2(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || isInSSRComponentSetup) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.effect.dirty = true; + queueJob(instance.parent.update); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createVNode(loadingComponent); + } + }; + } + }); +} +function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; +} +function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) { + if (name !== "default") props.name = name; + return createVNode("slot", props, fallback && fallback()); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const rendered = createBlock( + Fragment, + { + key: props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key || `_${name}` + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; +} +function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; +} +function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; +} +var getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); +}; +var publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => true ? shallowReadonly(i.props) : i.props, + $attrs: (i) => true ? shallowReadonly(i.attrs) : i.attrs, + $slots: (i) => true ? shallowReadonly(i.slots) : i.slots, + $refs: (i) => true ? shallowReadonly(i.refs) : i.refs, + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $emit: (i) => i.emit, + $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type, + $forceUpdate: (i) => i.f || (i.f = () => { + i.effect.dirty = true; + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP + }) +); +var isReservedPrefix = (key) => key === "_" || key === "$"; +var hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); +var PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + let normalizedProps; + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1: + return setupState[key]; + case 2: + return data[key]; + case 4: + return ctx[key]; + case 3: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2; + return data[key]; + } else if ( + // only cache other properties when instance has declared (thus stable) + // props + (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key) + ) { + accessCache[key] = 3; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) { + accessCache[key] = 0; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance.attrs, "get", ""); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn$1(`Cannot mutate

    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

  • 交流合作 ​