From 1d253224370c493cd634539b572f8c2d887e25c2 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Fri, 3 Jul 2026 15:18:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=BD=93=E5=89=8D=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin/.nuxt/components.d.ts | 2 + apps/admin/.nuxt/imports.d.ts | 4 +- apps/admin/.nuxt/manifest/latest.json | 2 +- .../1a398374-98c8-4def-95d3-61ae1c7c5483.json | 1 + apps/admin/.nuxt/manifest/meta/dev.json | 2 +- apps/admin/.nuxt/nitro.json | 6 +- apps/admin/.nuxt/nuxt.d.ts | 2 +- apps/admin/.nuxt/nuxt.lock | 9 - apps/admin/.nuxt/nuxt.node.d.ts | 2 +- apps/admin/.nuxt/tailwind/postcss.mjs | 2 +- apps/admin/.nuxt/tsconfig.app.json | 4 +- apps/admin/.nuxt/tsconfig.json | 2 +- apps/admin/.nuxt/tsconfig.shared.json | 2 +- apps/admin/.nuxt/types/build.d.ts | 2 - apps/admin/.nuxt/types/components.d.ts | 2 + apps/admin/.nuxt/types/imports.d.ts | 9 +- apps/admin/.nuxt/types/plugins.d.ts | 9 +- apps/admin/.output/nitro.json | 2 +- apps/admin/.output/public/_nuxt/0ubqzWuP.js | 1 - .../public/_nuxt/{DrdHHbY3.js => 1YPtusTp.js} | 2 +- apps/admin/.output/public/_nuxt/6n4fu-B8.js | 1 - apps/admin/.output/public/_nuxt/9B2ftqmN.js | 1 + apps/admin/.output/public/_nuxt/B3ns_poC.js | 1 - apps/admin/.output/public/_nuxt/BIBu1qhq.js | 1 + apps/admin/.output/public/_nuxt/BL6E8nSe.js | 1 - apps/admin/.output/public/_nuxt/BMr4oSI7.js | 1 - apps/admin/.output/public/_nuxt/BVGGsVu4.js | 1 + apps/admin/.output/public/_nuxt/B_JvM6BO.js | 1 + apps/admin/.output/public/_nuxt/BbMitk9t.js | 1 - apps/admin/.output/public/_nuxt/BeU4EYjt.js | 1 + apps/admin/.output/public/_nuxt/Bi5c3E0c.js | 4 + .../public/_nuxt/{BlypHpHg.js => BroHRKpP.js} | 2 +- apps/admin/.output/public/_nuxt/Bxcdr2qc.js | 1 + apps/admin/.output/public/_nuxt/C2sLAWj2.js | 1 + apps/admin/.output/public/_nuxt/CACbmIlS.js | 4 - apps/admin/.output/public/_nuxt/CF8arGVK.js | 1 + .../public/_nuxt/CTAruH_8.js} | 6 +- apps/admin/.output/public/_nuxt/CVUxyiJx.js | 1 - apps/admin/.output/public/_nuxt/CZnZfJ5f.js | 1 + apps/admin/.output/public/_nuxt/CnkSDgVO.js | 1 + .../public/_nuxt/{RqmPeXlN.js => CnuHOwQV.js} | 2 +- apps/admin/.output/public/_nuxt/Cx-e2Cok.js | 1 + .../public/_nuxt/Cy8zKM7T.js} | 8 +- apps/admin/.output/public/_nuxt/D9HxoMhB.js | 1 + apps/admin/.output/public/_nuxt/DGXiXcCA.js | 1 - apps/admin/.output/public/_nuxt/DN5T-G_F.js | 1 - apps/admin/.output/public/_nuxt/DNKl-FHZ.js | 1 + apps/admin/.output/public/_nuxt/Do83zqYq.js | 1 - .../public/_nuxt/{C5ETpaZb.js => DpWhlKu2.js} | 2 +- apps/admin/.output/public/_nuxt/Dqy3UYuS.js | 1 - apps/admin/.output/public/_nuxt/Dw5yL0ut.js | 1 - apps/admin/.output/public/_nuxt/EIJPD_ga.js | 1 + apps/admin/.output/public/_nuxt/FZLr1rN5.js | 1 + apps/admin/.output/public/_nuxt/GZxzc1Rc.js | 1 + apps/admin/.output/public/_nuxt/KP2C5FJ6.js | 1 - .../public/_nuxt/{BbBrUj30.js => P2ZWRt51.js} | 2 +- apps/admin/.output/public/_nuxt/UoJ1COMF.js | 1 + .../public/_nuxt/appconfig.j94fgYL_.css | 1 + .../.output/public/_nuxt/apps.B7hnJBQU.css | 1 + .../.output/public/_nuxt/builds/latest.json | 2 +- .../1539df2f-ed1e-4567-85ef-b3b4ac8648ab.json | 1 + .../ec4737f4-4bc1-4016-bf94-c7164a1b5e0d.json | 1 - .../public/_nuxt/dashboard.DGy90zSJ.css | 1 - .../public/_nuxt/dashboard.bI0rfjl_.css | 1 + .../.output/public/_nuxt/default.miyQHb0v.css | 1 + apps/admin/.output/public/_nuxt/dltdoXck.js | 1 - .../.output/public/_nuxt/entry.BUc396Qi.css | 1 + .../.output/public/_nuxt/entry.DS97S_sV.css | 1 - apps/admin/.output/public/_nuxt/lLLegusN.js | 1 + apps/admin/.output/public/_nuxt/p0Tfj-xC.js | 1 - .../public/_nuxt/serviceconfig.Io3AqtMK.css | 1 + .../public/_nuxt/serviceconfig.htjoqj-Q.css | 1 - .../public/_nuxt/systemconfig.DaWusDMu.css | 1 + apps/admin/.output/public/_nuxt/uwVesjjP.js | 1 + apps/admin/.output/public/_nuxt/v5y5DMRc.js | 4 - apps/admin/.output/public/_nuxt/vesedpp3.js | 7 + apps/admin/.output/public/_nuxt/yUUyh6cG.js | 1 + .../build/LangSelect-styles.C7_U3Izz.mjs | 8 + .../build/LangSelect-styles.C7_U3Izz.mjs.map | 1 + ...nts-Bou39dJh.mjs => accounts-BlBS367g.mjs} | 8 +- .../chunks/build/accounts-BlBS367g.mjs.map | 1 + .../chunks/build/accounts-Bou39dJh.mjs.map | 1 - .../chunks/build/appconfig-b7qb0UVr.mjs | 192 ++++ .../chunks/build/appconfig-b7qb0UVr.mjs.map | 1 + .../build/appconfig-styles.C960WaXM.mjs | 8 + .../build/appconfig-styles.C960WaXM.mjs.map | 1 + .../server/chunks/build/apps-DL1E6wot.mjs | 140 --- .../server/chunks/build/apps-DL1E6wot.mjs.map | 1 - .../server/chunks/build/apps-DkgvJNjV.mjs | 273 ++++++ .../server/chunks/build/apps-DkgvJNjV.mjs.map | 1 + .../chunks/build/apps-styles._bNp0Sh6.mjs | 8 + .../chunks/build/apps-styles._bNp0Sh6.mjs.map | 1 + ...6glzS4R.mjs => calltranslate-B1hhAqN7.mjs} | 8 +- .../build/calltranslate-B1hhAqN7.mjs.map | 1 + .../build/calltranslate-C6glzS4R.mjs.map | 1 - .../chunks/build/client.precomputed.mjs | 2 +- .../{code-Bi0p3nMD.mjs => code-BQgGcfFH.mjs} | 8 +- .../server/chunks/build/code-BQgGcfFH.mjs.map | 1 + .../server/chunks/build/code-Bi0p3nMD.mjs.map | 1 - ...rd-ClL32CVK.mjs => dashboard-BeG8w5Q7.mjs} | 50 +- .../chunks/build/dashboard-BeG8w5Q7.mjs.map | 1 + .../chunks/build/dashboard-ClL32CVK.mjs.map | 1 - .../build/dashboard-styles.CGuiyPm5.mjs | 8 + .../build/dashboard-styles.CGuiyPm5.mjs.map | 1 + .../build/dashboard-styles.YHe4qmhV.mjs | 8 - .../build/dashboard-styles.YHe4qmhV.mjs.map | 1 - .../chunks/build/default-CKIkgZOu.mjs.map | 1 - ...ault-CKIkgZOu.mjs => default-DDIg74_f.mjs} | 56 +- .../chunks/build/default-DDIg74_f.mjs.map | 1 + .../chunks/build/default-styles.BZwnP0YX.mjs | 8 + .../build/default-styles.BZwnP0YX.mjs.map | 1 + .../chunks/build/device-BeGbj3n2.mjs.map | 1 - ...evice-BeGbj3n2.mjs => device-CraC512i.mjs} | 8 +- .../chunks/build/device-CraC512i.mjs.map | 1 + .../chunks/build/environments-SWB_O04K.mjs | 120 +++ .../build/environments-SWB_O04K.mjs.map | 1 + ...04-DHCmSEsF.mjs => error-404-BZja4_wg.mjs} | 4 +- .../chunks/build/error-404-BZja4_wg.mjs.map | 1 + .../chunks/build/error-404-DHCmSEsF.mjs.map | 1 - ...tory-CpK-E5oz.mjs => factory-C8vqM9Rd.mjs} | 8 +- .../chunks/build/factory-C8vqM9Rd.mjs.map | 1 + .../chunks/build/factory-CpK-E5oz.mjs.map | 1 - .../build/globalconfig-B8x1DBTX.mjs.map | 1 - ...B8x1DBTX.mjs => globalconfig-VTDKVQk0.mjs} | 8 +- .../build/globalconfig-VTDKVQk0.mjs.map | 1 + ...{index-DQ1sfbFW.mjs => index-CilMQOs1.mjs} | 4 +- .../chunks/build/index-CilMQOs1.mjs.map | 1 + .../chunks/build/index-DQ1sfbFW.mjs.map | 1 - ...ig-ctvtKFMJ.mjs => mcpconfig-CBH98Fue.mjs} | 8 +- .../chunks/build/mcpconfig-CBH98Fue.mjs.map | 1 + .../chunks/build/mcpconfig-ctvtKFMJ.mjs.map | 1 - .../build/meettemplates-BLKHVh2U.mjs.map | 1 - ...LKHVh2U.mjs => meettemplates-JHBZiczV.mjs} | 8 +- .../build/meettemplates-JHBZiczV.mjs.map | 1 + .../chunks/build/nuxt-link-BpF9-8DI.mjs.map | 1 - ...nk-BpF9-8DI.mjs => nuxt-link-CQqhT_O_.mjs} | 4 +- .../chunks/build/nuxt-link-CQqhT_O_.mjs.map | 1 + ...duct-kmWP87Mw.mjs => product-B4xMZxup.mjs} | 8 +- .../chunks/build/product-B4xMZxup.mjs.map | 1 + .../chunks/build/product-kmWP87Mw.mjs.map | 1 - .../.output/server/chunks/build/server.mjs | 107 ++- .../chunks/build/serviceconfig-BTX37VDF.mjs | 205 ----- .../build/serviceconfig-BTX37VDF.mjs.map | 1 - .../chunks/build/serviceconfig-DRqotJ7A.mjs | 489 ++++++++++ .../build/serviceconfig-DRqotJ7A.mjs.map | 1 + .../serviceconfig-styles-1.mjs-BjhBSOse.mjs | 4 + ...erviceconfig-styles-1.mjs-BjhBSOse.mjs.map | 1 + .../build/serviceconfig-styles.BE2TPkT0.mjs | 8 - .../serviceconfig-styles.BE2TPkT0.mjs.map | 1 - .../build/serviceconfig-styles.BhKw9izr.mjs | 11 + .../serviceconfig-styles.BhKw9izr.mjs.map | 1 + ...eToast-BwtTR9dH.mjs => state-DQnwRar-.mjs} | 25 +- .../chunks/build/state-DQnwRar-.mjs.map | 1 + .../chunks/build/statlog-CB_u8NxU.mjs.map | 1 - ...tlog-CB_u8NxU.mjs => statlog-DjkPa7zJ.mjs} | 8 +- .../chunks/build/statlog-DjkPa7zJ.mjs.map | 1 + .../.output/server/chunks/build/styles.mjs | 12 +- .../chunks/build/systemconfig-C0cMeH0T.mjs | 302 ++++++ .../build/systemconfig-C0cMeH0T.mjs.map | 1 + .../build/systemconfig-styles.DgvtwCbS.mjs | 8 + .../systemconfig-styles.DgvtwCbS.mjs.map | 1 + ...seApi-B7CB0Cnn.mjs => useApi-B6h53Mkt.mjs} | 20 +- .../chunks/build/useApi-B6h53Mkt.mjs.map | 1 + .../chunks/build/useApi-B7CB0Cnn.mjs.map | 1 - .../chunks/build/useLoading-D6mc40Wj.mjs | 17 + .../chunks/build/useLoading-D6mc40Wj.mjs.map | 1 + .../chunks/build/useToast-BwtTR9dH.mjs.map | 1 - .../server/chunks/build/useToast-C76a6bSX.mjs | 26 + .../chunks/build/useToast-C76a6bSX.mjs.map | 1 + ...{users-QyiQmRX_.mjs => users-CqhWenqn.mjs} | 8 +- .../chunks/build/users-CqhWenqn.mjs.map | 1 + .../chunks/build/users-QyiQmRX_.mjs.map | 1 - .../.output/server/chunks/nitro/nitro.mjs | 363 +++++--- apps/admin/app/components/LangSelect.vue | 169 ++++ apps/admin/app/composables/useLangOptions.ts | 42 + apps/admin/app/layouts/default.vue | 10 +- apps/admin/app/pages/appconfig.vue | 470 +++++----- apps/admin/app/pages/apps.vue | 864 ++++++++++++++---- apps/admin/app/pages/environments.vue | 341 +++++++ apps/admin/app/pages/serviceconfig.vue | 766 +++++++++++++--- .../.cache/nuxt/.nuxt/components.d.ts | 4 + .../nuxt/.nuxt/dist/client/_nuxt/0ubqzWuP.js | 1 - .../client/_nuxt/{DrdHHbY3.js => 1YPtusTp.js} | 2 +- .../nuxt/.nuxt/dist/client/_nuxt/6n4fu-B8.js | 1 - .../nuxt/.nuxt/dist/client/_nuxt/9B2ftqmN.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/B3ns_poC.js | 1 - .../nuxt/.nuxt/dist/client/_nuxt/BIBu1qhq.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/BL6E8nSe.js | 1 - .../nuxt/.nuxt/dist/client/_nuxt/BMr4oSI7.js | 1 - .../nuxt/.nuxt/dist/client/_nuxt/BVGGsVu4.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/B_JvM6BO.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/BbMitk9t.js | 1 - .../nuxt/.nuxt/dist/client/_nuxt/BeU4EYjt.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/Bi5c3E0c.js | 4 + .../client/_nuxt/{BlypHpHg.js => BroHRKpP.js} | 2 +- .../nuxt/.nuxt/dist/client/_nuxt/Bxcdr2qc.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/C2sLAWj2.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/CACbmIlS.js | 4 - .../nuxt/.nuxt/dist/client/_nuxt/CF8arGVK.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/CTAruH_8.js} | 6 +- .../nuxt/.nuxt/dist/client/_nuxt/CVUxyiJx.js | 1 - .../nuxt/.nuxt/dist/client/_nuxt/CZnZfJ5f.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/CnkSDgVO.js | 1 + .../client/_nuxt/{RqmPeXlN.js => CnuHOwQV.js} | 2 +- .../nuxt/.nuxt/dist/client/_nuxt/Cx-e2Cok.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/Cy8zKM7T.js} | 8 +- .../nuxt/.nuxt/dist/client/_nuxt/D9HxoMhB.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/DGXiXcCA.js | 1 - .../nuxt/.nuxt/dist/client/_nuxt/DN5T-G_F.js | 1 - .../nuxt/.nuxt/dist/client/_nuxt/DNKl-FHZ.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/Do83zqYq.js | 1 - .../client/_nuxt/{C5ETpaZb.js => DpWhlKu2.js} | 2 +- .../nuxt/.nuxt/dist/client/_nuxt/Dqy3UYuS.js | 1 - .../nuxt/.nuxt/dist/client/_nuxt/Dw5yL0ut.js | 1 - .../nuxt/.nuxt/dist/client/_nuxt/EIJPD_ga.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/FZLr1rN5.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/GZxzc1Rc.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/KP2C5FJ6.js | 1 - .../client/_nuxt/{BbBrUj30.js => P2ZWRt51.js} | 2 +- .../nuxt/.nuxt/dist/client/_nuxt/UoJ1COMF.js | 1 + .../dist/client/_nuxt/appconfig.j94fgYL_.css | 1 + .../.nuxt/dist/client/_nuxt/apps.B7hnJBQU.css | 1 + .../dist/client/_nuxt/dashboard.DGy90zSJ.css | 1 - .../dist/client/_nuxt/dashboard.bI0rfjl_.css | 1 + .../dist/client/_nuxt/default.miyQHb0v.css | 1 + .../nuxt/.nuxt/dist/client/_nuxt/dltdoXck.js | 1 - .../dist/client/_nuxt/entry.BUc396Qi.css | 1 + .../dist/client/_nuxt/entry.DS97S_sV.css | 1 - .../nuxt/.nuxt/dist/client/_nuxt/lLLegusN.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/p0Tfj-xC.js | 1 - .../client/_nuxt/serviceconfig.Io3AqtMK.css | 1 + .../client/_nuxt/serviceconfig.htjoqj-Q.css | 1 - .../client/_nuxt/systemconfig.DaWusDMu.css | 1 + .../nuxt/.nuxt/dist/client/_nuxt/uwVesjjP.js | 1 + .../nuxt/.nuxt/dist/client/_nuxt/v5y5DMRc.js | 4 - .../nuxt/.nuxt/dist/client/_nuxt/vesedpp3.js | 7 + .../nuxt/.nuxt/dist/client/_nuxt/yUUyh6cG.js | 1 + .../_nuxt/LangSelect-styles.C7_U3Izz.mjs | 4 + ...ounts-Bou39dJh.js => accounts-BlBS367g.js} | 8 +- ...u39dJh.js.map => accounts-BlBS367g.js.map} | 2 +- .../_nuxt/accounts-BlBS367g.js.map.json | 1 + .../_nuxt/accounts-Bou39dJh.js.map.json | 1 - .../dist/server/_nuxt/appconfig-b7qb0UVr.js | 187 ++++ .../server/_nuxt/appconfig-b7qb0UVr.js.map | 1 + .../_nuxt/appconfig-b7qb0UVr.js.map.json | 1 + .../_nuxt/appconfig-styles-1.mjs-D6A0tq1Y.js | 5 + .../appconfig-styles-1.mjs-D6A0tq1Y.js.map | 1 + ...ppconfig-styles-1.mjs-D6A0tq1Y.js.map.json | 1 + .../_nuxt/appconfig-styles.C960WaXM.mjs | 4 + .../.nuxt/dist/server/_nuxt/apps-DL1E6wot.js | 135 --- .../dist/server/_nuxt/apps-DL1E6wot.js.map | 1 - .../server/_nuxt/apps-DL1E6wot.js.map.json | 1 - .../.nuxt/dist/server/_nuxt/apps-DkgvJNjV.js | 268 ++++++ .../dist/server/_nuxt/apps-DkgvJNjV.js.map | 1 + .../server/_nuxt/apps-DkgvJNjV.js.map.json | 1 + .../_nuxt/apps-styles-1.mjs-BfSytJy7.js | 5 + .../_nuxt/apps-styles-1.mjs-BfSytJy7.js.map | 1 + .../apps-styles-1.mjs-BfSytJy7.js.map.json | 1 + .../server/_nuxt/apps-styles._bNp0Sh6.mjs | 4 + ...-C6glzS4R.js => calltranslate-B1hhAqN7.js} | 8 +- ...R.js.map => calltranslate-B1hhAqN7.js.map} | 2 +- .../_nuxt/calltranslate-B1hhAqN7.js.map.json | 1 + .../_nuxt/calltranslate-C6glzS4R.js.map.json | 1 - .../{code-Bi0p3nMD.js => code-BQgGcfFH.js} | 8 +- ...e-Bi0p3nMD.js.map => code-BQgGcfFH.js.map} | 2 +- .../server/_nuxt/code-BQgGcfFH.js.map.json | 1 + .../server/_nuxt/code-Bi0p3nMD.js.map.json | 1 - ...oard-ClL32CVK.js => dashboard-BeG8w5Q7.js} | 50 +- .../server/_nuxt/dashboard-BeG8w5Q7.js.map | 1 + .../_nuxt/dashboard-BeG8w5Q7.js.map.json | 1 + .../server/_nuxt/dashboard-ClL32CVK.js.map | 1 - .../_nuxt/dashboard-ClL32CVK.js.map.json | 1 - .../_nuxt/dashboard-styles-1.mjs-BJ6WqDaB.js | 5 - .../dashboard-styles-1.mjs-BJ6WqDaB.js.map | 1 - ...ashboard-styles-1.mjs-BJ6WqDaB.js.map.json | 1 - .../_nuxt/dashboard-styles-1.mjs-Cr2VlWVR.js | 5 + .../dashboard-styles-1.mjs-Cr2VlWVR.js.map | 1 + ...ashboard-styles-1.mjs-Cr2VlWVR.js.map.json | 1 + .../_nuxt/dashboard-styles.CGuiyPm5.mjs | 4 + .../_nuxt/dashboard-styles.YHe4qmhV.mjs | 4 - .../dist/server/_nuxt/default-CKIkgZOu.js.map | 1 - .../server/_nuxt/default-CKIkgZOu.js.map.json | 1 - ...efault-CKIkgZOu.js => default-DDIg74_f.js} | 56 +- .../dist/server/_nuxt/default-DDIg74_f.js.map | 1 + .../server/_nuxt/default-DDIg74_f.js.map.json | 1 + .../_nuxt/default-styles-1.mjs-BoF2cEDw.js | 5 + .../default-styles-1.mjs-BoF2cEDw.js.map | 1 + .../default-styles-1.mjs-BoF2cEDw.js.map.json | 1 + .../server/_nuxt/default-styles.BZwnP0YX.mjs | 4 + .../server/_nuxt/device-BeGbj3n2.js.map.json | 1 - ...{device-BeGbj3n2.js => device-CraC512i.js} | 8 +- ...BeGbj3n2.js.map => device-CraC512i.js.map} | 2 +- .../server/_nuxt/device-CraC512i.js.map.json | 1 + .../server/_nuxt/environments-SWB_O04K.js | 115 +++ .../server/_nuxt/environments-SWB_O04K.js.map | 1 + .../_nuxt/environments-SWB_O04K.js.map.json | 1 + ...-404-DHCmSEsF.js => error-404-BZja4_wg.js} | 4 +- ...mSEsF.js.map => error-404-BZja4_wg.js.map} | 2 +- ...ap.json => error-404-BZja4_wg.js.map.json} | 2 +- ...actory-CpK-E5oz.js => factory-C8vqM9Rd.js} | 8 +- ...pK-E5oz.js.map => factory-C8vqM9Rd.js.map} | 2 +- .../server/_nuxt/factory-C8vqM9Rd.js.map.json | 1 + .../server/_nuxt/factory-CpK-E5oz.js.map.json | 1 - .../_nuxt/globalconfig-B8x1DBTX.js.map.json | 1 - ...g-B8x1DBTX.js => globalconfig-VTDKVQk0.js} | 8 +- ...TX.js.map => globalconfig-VTDKVQk0.js.map} | 2 +- .../_nuxt/globalconfig-VTDKVQk0.js.map.json | 1 + .../{index-DQ1sfbFW.js => index-CilMQOs1.js} | 4 +- ...-DQ1sfbFW.js.map => index-CilMQOs1.js.map} | 2 +- ...js.map.json => index-CilMQOs1.js.map.json} | 2 +- ...nfig-ctvtKFMJ.js => mcpconfig-CBH98Fue.js} | 8 +- ...tKFMJ.js.map => mcpconfig-CBH98Fue.js.map} | 2 +- .../_nuxt/mcpconfig-CBH98Fue.js.map.json | 1 + .../_nuxt/mcpconfig-ctvtKFMJ.js.map.json | 1 - .../_nuxt/meettemplates-BLKHVh2U.js.map.json | 1 - ...-BLKHVh2U.js => meettemplates-JHBZiczV.js} | 8 +- ...U.js.map => meettemplates-JHBZiczV.js.map} | 2 +- .../_nuxt/meettemplates-JHBZiczV.js.map.json | 1 + ...link-BpF9-8DI.js => nuxt-link-CQqhT_O_.js} | 4 +- ...9-8DI.js.map => nuxt-link-CQqhT_O_.js.map} | 2 +- ...ap.json => nuxt-link-CQqhT_O_.js.map.json} | 2 +- ...roduct-kmWP87Mw.js => product-B4xMZxup.js} | 8 +- ...mWP87Mw.js.map => product-B4xMZxup.js.map} | 2 +- .../server/_nuxt/product-B4xMZxup.js.map.json | 1 + .../server/_nuxt/product-kmWP87Mw.js.map.json | 1 - .../server/_nuxt/serviceconfig-BTX37VDF.js | 200 ---- .../_nuxt/serviceconfig-BTX37VDF.js.map | 1 - .../_nuxt/serviceconfig-BTX37VDF.js.map.json | 1 - .../server/_nuxt/serviceconfig-DRqotJ7A.js | 484 ++++++++++ .../_nuxt/serviceconfig-DRqotJ7A.js.map | 1 + .../_nuxt/serviceconfig-DRqotJ7A.js.map.json | 1 + .../serviceconfig-styles-1.mjs-BjhBSOse.js | 5 + ...serviceconfig-styles-1.mjs-BjhBSOse.js.map | 1 + ...ceconfig-styles-1.mjs-BjhBSOse.js.map.json | 1 + .../serviceconfig-styles-1.mjs-C3NfMX4J.js | 5 - ...serviceconfig-styles-1.mjs-C3NfMX4J.js.map | 1 - ...ceconfig-styles-1.mjs-C3NfMX4J.js.map.json | 1 - .../serviceconfig-styles-2.mjs-fse8fz7H.js | 5 + ...serviceconfig-styles-2.mjs-fse8fz7H.js.map | 1 + ...ceconfig-styles-2.mjs-fse8fz7H.js.map.json | 1 + .../_nuxt/serviceconfig-styles.BE2TPkT0.mjs | 4 - .../_nuxt/serviceconfig-styles.BhKw9izr.mjs | 6 + ...useToast-BwtTR9dH.js => state-DQnwRar-.js} | 25 +- .../dist/server/_nuxt/state-DQnwRar-.js.map | 1 + .../server/_nuxt/state-DQnwRar-.js.map.json | 1 + .../server/_nuxt/statlog-CB_u8NxU.js.map.json | 1 - ...tatlog-CB_u8NxU.js => statlog-DjkPa7zJ.js} | 8 +- ...B_u8NxU.js.map => statlog-DjkPa7zJ.js.map} | 2 +- .../server/_nuxt/statlog-DjkPa7zJ.js.map.json | 1 + .../server/_nuxt/systemconfig-C0cMeH0T.js | 297 ++++++ .../server/_nuxt/systemconfig-C0cMeH0T.js.map | 1 + .../_nuxt/systemconfig-C0cMeH0T.js.map.json | 1 + .../systemconfig-styles-1.mjs-DGb_v6ce.js | 5 + .../systemconfig-styles-1.mjs-DGb_v6ce.js.map | 1 + ...emconfig-styles-1.mjs-DGb_v6ce.js.map.json | 1 + .../_nuxt/systemconfig-styles.DgvtwCbS.mjs | 4 + ...{useApi-B7CB0Cnn.js => useApi-B6h53Mkt.js} | 20 +- .../dist/server/_nuxt/useApi-B6h53Mkt.js.map | 1 + .../server/_nuxt/useApi-B6h53Mkt.js.map.json | 1 + .../dist/server/_nuxt/useApi-B7CB0Cnn.js.map | 1 - .../server/_nuxt/useApi-B7CB0Cnn.js.map.json | 1 - .../dist/server/_nuxt/useLoading-D6mc40Wj.js | 17 + .../server/_nuxt/useLoading-D6mc40Wj.js.map | 1 + .../_nuxt/useLoading-D6mc40Wj.js.map.json | 1 + .../server/_nuxt/useToast-BwtTR9dH.js.map | 1 - .../_nuxt/useToast-BwtTR9dH.js.map.json | 1 - .../dist/server/_nuxt/useToast-C76a6bSX.js | 26 + .../server/_nuxt/useToast-C76a6bSX.js.map | 1 + .../_nuxt/useToast-C76a6bSX.js.map.json | 1 + .../{users-QyiQmRX_.js => users-CqhWenqn.js} | 8 +- ...-QyiQmRX_.js.map => users-CqhWenqn.js.map} | 2 +- .../server/_nuxt/users-CqhWenqn.js.map.json | 1 + .../server/_nuxt/users-QyiQmRX_.js.map.json | 1 - .../.nuxt/dist/server/client.manifest.mjs | 2 +- .../.nuxt/dist/server/client.precomputed.mjs | 2 +- .../.cache/nuxt/.nuxt/dist/server/server.mjs | 109 ++- .../nuxt/.nuxt/dist/server/server.mjs.map | 2 +- .../.nuxt/dist/server/server.mjs.map.json | 2 +- .../.cache/nuxt/.nuxt/dist/server/styles.mjs | 12 +- .../.cache/nuxt/.nuxt/imports.d.ts | 2 + .../.cache/nuxt/.nuxt/manifest/latest.json | 2 +- .../1539df2f-ed1e-4567-85ef-b3b4ac8648ab.json | 1 + .../ec4737f4-4bc1-4016-bf94-c7164a1b5e0d.json | 1 - .../node_modules/.cache/nuxt/.nuxt/nuxt.d.ts | 2 +- .../.cache/nuxt/.nuxt/nuxt.node.d.ts | 2 +- .../.cache/nuxt/.nuxt/tailwind/postcss.mjs | 2 +- .../.cache/nuxt/.nuxt/tsconfig.app.json | 2 +- .../.cache/nuxt/.nuxt/tsconfig.json | 2 +- .../.cache/nuxt/.nuxt/tsconfig.shared.json | 2 +- .../.cache/nuxt/.nuxt/types/components.d.ts | 4 + .../.cache/nuxt/.nuxt/types/imports.d.ts | 9 + apps/services/comm/const.go | 16 +- apps/services/comm/crypto.go | 75 ++ apps/services/comm/moduleconfig.go | 242 +++++ apps/services/comm/nats.go | 3 + apps/services/comm/svcruntime.go | 176 ++++ apps/services/dump.rdb | Bin 44652 -> 44468 bytes apps/services/log/console.log | 36 +- apps/services/modules/console/api_agent.go | 201 ++++ apps/services/modules/console/api_config.go | 68 +- .../modules/console/api_environment.go | 283 ++++++ .../modules/console/api_moduleconfig.go | 173 ++++ apps/services/modules/console/api_product.go | 125 +++ .../services/modules/console/api_svcconfig.go | 233 +++-- .../modules/console/api_svcruntime.go | 185 ++++ .../modules/console/api_svctemplate.go | 265 ++++++ apps/services/modules/console/conntest.go | 21 + apps/services/modules/console/deploy_exec.go | 227 +++++ apps/services/modules/console/model_agent.go | 63 ++ .../modules/console/model_environment.go | 80 ++ .../modules/console/model_moduleconfig.go | 51 ++ .../services/modules/console/model_product.go | 63 ++ .../modules/console/model_registry.go | 46 +- .../modules/console/model_svcconfig.go | 40 +- .../modules/console/model_svcruntime.go | 53 ++ .../modules/console/model_svctemplate.go | 25 + apps/services/modules/console/server.go | 87 +- apps/services/services/api/main.go | 26 +- apps/services/services/home/main.go | 20 +- apps/services/sys/auth/google/auth.go | 10 +- apps/services/sys/pay/wechat/wechat.go | 10 +- 421 files changed, 8758 insertions(+), 2019 deletions(-) create mode 100644 apps/admin/.nuxt/manifest/meta/1a398374-98c8-4def-95d3-61ae1c7c5483.json delete mode 100644 apps/admin/.nuxt/nuxt.lock delete mode 100644 apps/admin/.output/public/_nuxt/0ubqzWuP.js rename apps/admin/.output/public/_nuxt/{DrdHHbY3.js => 1YPtusTp.js} (71%) delete mode 100644 apps/admin/.output/public/_nuxt/6n4fu-B8.js create mode 100644 apps/admin/.output/public/_nuxt/9B2ftqmN.js delete mode 100644 apps/admin/.output/public/_nuxt/B3ns_poC.js create mode 100644 apps/admin/.output/public/_nuxt/BIBu1qhq.js delete mode 100644 apps/admin/.output/public/_nuxt/BL6E8nSe.js delete mode 100644 apps/admin/.output/public/_nuxt/BMr4oSI7.js create mode 100644 apps/admin/.output/public/_nuxt/BVGGsVu4.js create mode 100644 apps/admin/.output/public/_nuxt/B_JvM6BO.js delete mode 100644 apps/admin/.output/public/_nuxt/BbMitk9t.js create mode 100644 apps/admin/.output/public/_nuxt/BeU4EYjt.js create mode 100644 apps/admin/.output/public/_nuxt/Bi5c3E0c.js rename apps/admin/.output/public/_nuxt/{BlypHpHg.js => BroHRKpP.js} (94%) create mode 100644 apps/admin/.output/public/_nuxt/Bxcdr2qc.js create mode 100644 apps/admin/.output/public/_nuxt/C2sLAWj2.js delete mode 100644 apps/admin/.output/public/_nuxt/CACbmIlS.js create mode 100644 apps/admin/.output/public/_nuxt/CF8arGVK.js rename apps/admin/{node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/96IDI_OR.js => .output/public/_nuxt/CTAruH_8.js} (68%) delete mode 100644 apps/admin/.output/public/_nuxt/CVUxyiJx.js create mode 100644 apps/admin/.output/public/_nuxt/CZnZfJ5f.js create mode 100644 apps/admin/.output/public/_nuxt/CnkSDgVO.js rename apps/admin/.output/public/_nuxt/{RqmPeXlN.js => CnuHOwQV.js} (86%) create mode 100644 apps/admin/.output/public/_nuxt/Cx-e2Cok.js rename apps/admin/{node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/D6jD5keW.js => .output/public/_nuxt/Cy8zKM7T.js} (68%) create mode 100644 apps/admin/.output/public/_nuxt/D9HxoMhB.js delete mode 100644 apps/admin/.output/public/_nuxt/DGXiXcCA.js delete mode 100644 apps/admin/.output/public/_nuxt/DN5T-G_F.js create mode 100644 apps/admin/.output/public/_nuxt/DNKl-FHZ.js delete mode 100644 apps/admin/.output/public/_nuxt/Do83zqYq.js rename apps/admin/.output/public/_nuxt/{C5ETpaZb.js => DpWhlKu2.js} (80%) delete mode 100644 apps/admin/.output/public/_nuxt/Dqy3UYuS.js delete mode 100644 apps/admin/.output/public/_nuxt/Dw5yL0ut.js create mode 100644 apps/admin/.output/public/_nuxt/EIJPD_ga.js create mode 100644 apps/admin/.output/public/_nuxt/FZLr1rN5.js create mode 100644 apps/admin/.output/public/_nuxt/GZxzc1Rc.js delete mode 100644 apps/admin/.output/public/_nuxt/KP2C5FJ6.js rename apps/admin/.output/public/_nuxt/{BbBrUj30.js => P2ZWRt51.js} (96%) create mode 100644 apps/admin/.output/public/_nuxt/UoJ1COMF.js create mode 100644 apps/admin/.output/public/_nuxt/appconfig.j94fgYL_.css create mode 100644 apps/admin/.output/public/_nuxt/apps.B7hnJBQU.css create mode 100644 apps/admin/.output/public/_nuxt/builds/meta/1539df2f-ed1e-4567-85ef-b3b4ac8648ab.json delete mode 100644 apps/admin/.output/public/_nuxt/builds/meta/ec4737f4-4bc1-4016-bf94-c7164a1b5e0d.json delete mode 100644 apps/admin/.output/public/_nuxt/dashboard.DGy90zSJ.css create mode 100644 apps/admin/.output/public/_nuxt/dashboard.bI0rfjl_.css create mode 100644 apps/admin/.output/public/_nuxt/default.miyQHb0v.css delete mode 100644 apps/admin/.output/public/_nuxt/dltdoXck.js create mode 100644 apps/admin/.output/public/_nuxt/entry.BUc396Qi.css delete mode 100644 apps/admin/.output/public/_nuxt/entry.DS97S_sV.css create mode 100644 apps/admin/.output/public/_nuxt/lLLegusN.js delete mode 100644 apps/admin/.output/public/_nuxt/p0Tfj-xC.js create mode 100644 apps/admin/.output/public/_nuxt/serviceconfig.Io3AqtMK.css delete mode 100644 apps/admin/.output/public/_nuxt/serviceconfig.htjoqj-Q.css create mode 100644 apps/admin/.output/public/_nuxt/systemconfig.DaWusDMu.css create mode 100644 apps/admin/.output/public/_nuxt/uwVesjjP.js delete mode 100644 apps/admin/.output/public/_nuxt/v5y5DMRc.js create mode 100644 apps/admin/.output/public/_nuxt/vesedpp3.js create mode 100644 apps/admin/.output/public/_nuxt/yUUyh6cG.js create mode 100644 apps/admin/.output/server/chunks/build/LangSelect-styles.C7_U3Izz.mjs create mode 100644 apps/admin/.output/server/chunks/build/LangSelect-styles.C7_U3Izz.mjs.map rename apps/admin/.output/server/chunks/build/{accounts-Bou39dJh.mjs => accounts-BlBS367g.mjs} (98%) create mode 100644 apps/admin/.output/server/chunks/build/accounts-BlBS367g.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/accounts-Bou39dJh.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/appconfig-b7qb0UVr.mjs create mode 100644 apps/admin/.output/server/chunks/build/appconfig-b7qb0UVr.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/appconfig-styles.C960WaXM.mjs create mode 100644 apps/admin/.output/server/chunks/build/appconfig-styles.C960WaXM.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/apps-DL1E6wot.mjs delete mode 100644 apps/admin/.output/server/chunks/build/apps-DL1E6wot.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/apps-DkgvJNjV.mjs create mode 100644 apps/admin/.output/server/chunks/build/apps-DkgvJNjV.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/apps-styles._bNp0Sh6.mjs create mode 100644 apps/admin/.output/server/chunks/build/apps-styles._bNp0Sh6.mjs.map rename apps/admin/.output/server/chunks/build/{calltranslate-C6glzS4R.mjs => calltranslate-B1hhAqN7.mjs} (98%) create mode 100644 apps/admin/.output/server/chunks/build/calltranslate-B1hhAqN7.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/calltranslate-C6glzS4R.mjs.map rename apps/admin/.output/server/chunks/build/{code-Bi0p3nMD.mjs => code-BQgGcfFH.mjs} (97%) create mode 100644 apps/admin/.output/server/chunks/build/code-BQgGcfFH.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/code-Bi0p3nMD.mjs.map rename apps/admin/.output/server/chunks/build/{dashboard-ClL32CVK.mjs => dashboard-BeG8w5Q7.mjs} (75%) create mode 100644 apps/admin/.output/server/chunks/build/dashboard-BeG8w5Q7.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/dashboard-ClL32CVK.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/dashboard-styles.CGuiyPm5.mjs create mode 100644 apps/admin/.output/server/chunks/build/dashboard-styles.CGuiyPm5.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/dashboard-styles.YHe4qmhV.mjs delete mode 100644 apps/admin/.output/server/chunks/build/dashboard-styles.YHe4qmhV.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/default-CKIkgZOu.mjs.map rename apps/admin/.output/server/chunks/build/{default-CKIkgZOu.mjs => default-DDIg74_f.mjs} (81%) create mode 100644 apps/admin/.output/server/chunks/build/default-DDIg74_f.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/default-styles.BZwnP0YX.mjs create mode 100644 apps/admin/.output/server/chunks/build/default-styles.BZwnP0YX.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/device-BeGbj3n2.mjs.map rename apps/admin/.output/server/chunks/build/{device-BeGbj3n2.mjs => device-CraC512i.mjs} (99%) create mode 100644 apps/admin/.output/server/chunks/build/device-CraC512i.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/environments-SWB_O04K.mjs create mode 100644 apps/admin/.output/server/chunks/build/environments-SWB_O04K.mjs.map rename apps/admin/.output/server/chunks/build/{error-404-DHCmSEsF.mjs => error-404-BZja4_wg.mjs} (98%) create mode 100644 apps/admin/.output/server/chunks/build/error-404-BZja4_wg.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/error-404-DHCmSEsF.mjs.map rename apps/admin/.output/server/chunks/build/{factory-CpK-E5oz.mjs => factory-C8vqM9Rd.mjs} (96%) create mode 100644 apps/admin/.output/server/chunks/build/factory-C8vqM9Rd.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/factory-CpK-E5oz.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/globalconfig-B8x1DBTX.mjs.map rename apps/admin/.output/server/chunks/build/{globalconfig-B8x1DBTX.mjs => globalconfig-VTDKVQk0.mjs} (97%) create mode 100644 apps/admin/.output/server/chunks/build/globalconfig-VTDKVQk0.mjs.map rename apps/admin/.output/server/chunks/build/{index-DQ1sfbFW.mjs => index-CilMQOs1.mjs} (97%) create mode 100644 apps/admin/.output/server/chunks/build/index-CilMQOs1.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/index-DQ1sfbFW.mjs.map rename apps/admin/.output/server/chunks/build/{mcpconfig-ctvtKFMJ.mjs => mcpconfig-CBH98Fue.mjs} (97%) create mode 100644 apps/admin/.output/server/chunks/build/mcpconfig-CBH98Fue.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/mcpconfig-ctvtKFMJ.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/meettemplates-BLKHVh2U.mjs.map rename apps/admin/.output/server/chunks/build/{meettemplates-BLKHVh2U.mjs => meettemplates-JHBZiczV.mjs} (97%) create mode 100644 apps/admin/.output/server/chunks/build/meettemplates-JHBZiczV.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/nuxt-link-BpF9-8DI.mjs.map rename apps/admin/.output/server/chunks/build/{nuxt-link-BpF9-8DI.mjs => nuxt-link-CQqhT_O_.mjs} (98%) create mode 100644 apps/admin/.output/server/chunks/build/nuxt-link-CQqhT_O_.mjs.map rename apps/admin/.output/server/chunks/build/{product-kmWP87Mw.mjs => product-B4xMZxup.mjs} (98%) create mode 100644 apps/admin/.output/server/chunks/build/product-B4xMZxup.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/product-kmWP87Mw.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/serviceconfig-BTX37VDF.mjs delete mode 100644 apps/admin/.output/server/chunks/build/serviceconfig-BTX37VDF.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/serviceconfig-DRqotJ7A.mjs create mode 100644 apps/admin/.output/server/chunks/build/serviceconfig-DRqotJ7A.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/serviceconfig-styles-1.mjs-BjhBSOse.mjs create mode 100644 apps/admin/.output/server/chunks/build/serviceconfig-styles-1.mjs-BjhBSOse.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/serviceconfig-styles.BE2TPkT0.mjs delete mode 100644 apps/admin/.output/server/chunks/build/serviceconfig-styles.BE2TPkT0.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/serviceconfig-styles.BhKw9izr.mjs create mode 100644 apps/admin/.output/server/chunks/build/serviceconfig-styles.BhKw9izr.mjs.map rename apps/admin/.output/server/chunks/build/{useToast-BwtTR9dH.mjs => state-DQnwRar-.mjs} (58%) create mode 100644 apps/admin/.output/server/chunks/build/state-DQnwRar-.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/statlog-CB_u8NxU.mjs.map rename apps/admin/.output/server/chunks/build/{statlog-CB_u8NxU.mjs => statlog-DjkPa7zJ.mjs} (97%) create mode 100644 apps/admin/.output/server/chunks/build/statlog-DjkPa7zJ.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/systemconfig-C0cMeH0T.mjs create mode 100644 apps/admin/.output/server/chunks/build/systemconfig-C0cMeH0T.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/systemconfig-styles.DgvtwCbS.mjs create mode 100644 apps/admin/.output/server/chunks/build/systemconfig-styles.DgvtwCbS.mjs.map rename apps/admin/.output/server/chunks/build/{useApi-B7CB0Cnn.mjs => useApi-B6h53Mkt.mjs} (74%) create mode 100644 apps/admin/.output/server/chunks/build/useApi-B6h53Mkt.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/useApi-B7CB0Cnn.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/useLoading-D6mc40Wj.mjs create mode 100644 apps/admin/.output/server/chunks/build/useLoading-D6mc40Wj.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/useToast-BwtTR9dH.mjs.map create mode 100644 apps/admin/.output/server/chunks/build/useToast-C76a6bSX.mjs create mode 100644 apps/admin/.output/server/chunks/build/useToast-C76a6bSX.mjs.map rename apps/admin/.output/server/chunks/build/{users-QyiQmRX_.mjs => users-CqhWenqn.mjs} (97%) create mode 100644 apps/admin/.output/server/chunks/build/users-CqhWenqn.mjs.map delete mode 100644 apps/admin/.output/server/chunks/build/users-QyiQmRX_.mjs.map create mode 100644 apps/admin/app/components/LangSelect.vue create mode 100644 apps/admin/app/composables/useLangOptions.ts create mode 100644 apps/admin/app/pages/environments.vue delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/0ubqzWuP.js rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/{DrdHHbY3.js => 1YPtusTp.js} (71%) delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/6n4fu-B8.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/9B2ftqmN.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/B3ns_poC.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/BIBu1qhq.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/BL6E8nSe.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/BMr4oSI7.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/BVGGsVu4.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/B_JvM6BO.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/BbMitk9t.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/BeU4EYjt.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Bi5c3E0c.js rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/{BlypHpHg.js => BroHRKpP.js} (94%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Bxcdr2qc.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/C2sLAWj2.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CACbmIlS.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CF8arGVK.js rename apps/admin/{.output/public/_nuxt/96IDI_OR.js => node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CTAruH_8.js} (68%) delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CVUxyiJx.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CZnZfJ5f.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/CnkSDgVO.js rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/{RqmPeXlN.js => CnuHOwQV.js} (86%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Cx-e2Cok.js rename apps/admin/{.output/public/_nuxt/D6jD5keW.js => node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Cy8zKM7T.js} (68%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/D9HxoMhB.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DGXiXcCA.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DN5T-G_F.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/DNKl-FHZ.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Do83zqYq.js rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/{C5ETpaZb.js => DpWhlKu2.js} (80%) delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Dqy3UYuS.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/Dw5yL0ut.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/EIJPD_ga.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/FZLr1rN5.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/GZxzc1Rc.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/KP2C5FJ6.js rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/{BbBrUj30.js => P2ZWRt51.js} (96%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/UoJ1COMF.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/appconfig.j94fgYL_.css create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/apps.B7hnJBQU.css delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/dashboard.DGy90zSJ.css create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/dashboard.bI0rfjl_.css create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/default.miyQHb0v.css delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/dltdoXck.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/entry.BUc396Qi.css delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/entry.DS97S_sV.css create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/lLLegusN.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/p0Tfj-xC.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/serviceconfig.Io3AqtMK.css delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/serviceconfig.htjoqj-Q.css create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/systemconfig.DaWusDMu.css create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/uwVesjjP.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/v5y5DMRc.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/vesedpp3.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/yUUyh6cG.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/LangSelect-styles.C7_U3Izz.mjs rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{accounts-Bou39dJh.js => accounts-BlBS367g.js} (98%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{accounts-Bou39dJh.js.map => accounts-BlBS367g.js.map} (79%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/accounts-BlBS367g.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/accounts-Bou39dJh.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-b7qb0UVr.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-b7qb0UVr.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-b7qb0UVr.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles-1.mjs-D6A0tq1Y.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles-1.mjs-D6A0tq1Y.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles-1.mjs-D6A0tq1Y.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles.C960WaXM.mjs delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DL1E6wot.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DL1E6wot.js.map delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DL1E6wot.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DkgvJNjV.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DkgvJNjV.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DkgvJNjV.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles-1.mjs-BfSytJy7.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles-1.mjs-BfSytJy7.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles-1.mjs-BfSytJy7.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles._bNp0Sh6.mjs rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{calltranslate-C6glzS4R.js => calltranslate-B1hhAqN7.js} (98%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{calltranslate-C6glzS4R.js.map => calltranslate-B1hhAqN7.js.map} (78%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-B1hhAqN7.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-C6glzS4R.js.map.json rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{code-Bi0p3nMD.js => code-BQgGcfFH.js} (98%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{code-Bi0p3nMD.js.map => code-BQgGcfFH.js.map} (84%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-BQgGcfFH.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-Bi0p3nMD.js.map.json rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{dashboard-ClL32CVK.js => dashboard-BeG8w5Q7.js} (77%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-BeG8w5Q7.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-BeG8w5Q7.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-ClL32CVK.js.map delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-ClL32CVK.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-BJ6WqDaB.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-BJ6WqDaB.js.map delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-BJ6WqDaB.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-Cr2VlWVR.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-Cr2VlWVR.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-Cr2VlWVR.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles.CGuiyPm5.mjs delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles.YHe4qmhV.mjs delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-CKIkgZOu.js.map delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-CKIkgZOu.js.map.json rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{default-CKIkgZOu.js => default-DDIg74_f.js} (82%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-DDIg74_f.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-DDIg74_f.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles-1.mjs-BoF2cEDw.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles-1.mjs-BoF2cEDw.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles-1.mjs-BoF2cEDw.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles.BZwnP0YX.mjs delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-BeGbj3n2.js.map.json rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{device-BeGbj3n2.js => device-CraC512i.js} (99%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{device-BeGbj3n2.js.map => device-CraC512i.js.map} (83%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-CraC512i.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/environments-SWB_O04K.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/environments-SWB_O04K.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/environments-SWB_O04K.js.map.json rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{error-404-DHCmSEsF.js => error-404-BZja4_wg.js} (98%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{error-404-DHCmSEsF.js.map => error-404-BZja4_wg.js.map} (98%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{error-404-DHCmSEsF.js.map.json => error-404-BZja4_wg.js.map.json} (98%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{factory-CpK-E5oz.js => factory-C8vqM9Rd.js} (97%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{factory-CpK-E5oz.js.map => factory-C8vqM9Rd.js.map} (85%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-C8vqM9Rd.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-CpK-E5oz.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-B8x1DBTX.js.map.json rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{globalconfig-B8x1DBTX.js => globalconfig-VTDKVQk0.js} (97%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{globalconfig-B8x1DBTX.js.map => globalconfig-VTDKVQk0.js.map} (78%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-VTDKVQk0.js.map.json rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{index-DQ1sfbFW.js => index-CilMQOs1.js} (97%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{index-DQ1sfbFW.js.map => index-CilMQOs1.js.map} (98%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{index-DQ1sfbFW.js.map.json => index-CilMQOs1.js.map.json} (98%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{mcpconfig-ctvtKFMJ.js => mcpconfig-CBH98Fue.js} (97%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{mcpconfig-ctvtKFMJ.js.map => mcpconfig-CBH98Fue.js.map} (77%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-CBH98Fue.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-ctvtKFMJ.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-BLKHVh2U.js.map.json rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{meettemplates-BLKHVh2U.js => meettemplates-JHBZiczV.js} (98%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{meettemplates-BLKHVh2U.js.map => meettemplates-JHBZiczV.js.map} (78%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-JHBZiczV.js.map.json rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{nuxt-link-BpF9-8DI.js => nuxt-link-CQqhT_O_.js} (98%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{nuxt-link-BpF9-8DI.js.map => nuxt-link-CQqhT_O_.js.map} (99%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{nuxt-link-BpF9-8DI.js.map.json => nuxt-link-CQqhT_O_.js.map.json} (99%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{product-kmWP87Mw.js => product-B4xMZxup.js} (98%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{product-kmWP87Mw.js.map => product-B4xMZxup.js.map} (82%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-B4xMZxup.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-kmWP87Mw.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-BTX37VDF.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-BTX37VDF.js.map delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-BTX37VDF.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-DRqotJ7A.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-DRqotJ7A.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-DRqotJ7A.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-BjhBSOse.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-BjhBSOse.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-BjhBSOse.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-C3NfMX4J.js delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-C3NfMX4J.js.map delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-C3NfMX4J.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-2.mjs-fse8fz7H.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-2.mjs-fse8fz7H.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-2.mjs-fse8fz7H.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles.BE2TPkT0.mjs create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles.BhKw9izr.mjs rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{useToast-BwtTR9dH.js => state-DQnwRar-.js} (59%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/state-DQnwRar-.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/state-DQnwRar-.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-CB_u8NxU.js.map.json rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{statlog-CB_u8NxU.js => statlog-DjkPa7zJ.js} (98%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{statlog-CB_u8NxU.js.map => statlog-DjkPa7zJ.js.map} (73%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-DjkPa7zJ.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-C0cMeH0T.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-C0cMeH0T.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-C0cMeH0T.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles-1.mjs-DGb_v6ce.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles-1.mjs-DGb_v6ce.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles-1.mjs-DGb_v6ce.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles.DgvtwCbS.mjs rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{useApi-B7CB0Cnn.js => useApi-B6h53Mkt.js} (74%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B6h53Mkt.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B6h53Mkt.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B7CB0Cnn.js.map delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B7CB0Cnn.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useLoading-D6mc40Wj.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useLoading-D6mc40Wj.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useLoading-D6mc40Wj.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-BwtTR9dH.js.map delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-BwtTR9dH.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-C76a6bSX.js create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-C76a6bSX.js.map create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-C76a6bSX.js.map.json rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{users-QyiQmRX_.js => users-CqhWenqn.js} (98%) rename apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/{users-QyiQmRX_.js.map => users-CqhWenqn.js.map} (73%) create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-CqhWenqn.js.map.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-QyiQmRX_.js.map.json create mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/manifest/meta/1539df2f-ed1e-4567-85ef-b3b4ac8648ab.json delete mode 100644 apps/admin/node_modules/.cache/nuxt/.nuxt/manifest/meta/ec4737f4-4bc1-4016-bf94-c7164a1b5e0d.json create mode 100644 apps/services/comm/crypto.go create mode 100644 apps/services/comm/moduleconfig.go create mode 100644 apps/services/comm/svcruntime.go create mode 100644 apps/services/modules/console/api_agent.go create mode 100644 apps/services/modules/console/api_environment.go create mode 100644 apps/services/modules/console/api_moduleconfig.go create mode 100644 apps/services/modules/console/api_product.go create mode 100644 apps/services/modules/console/api_svcruntime.go create mode 100644 apps/services/modules/console/api_svctemplate.go create mode 100644 apps/services/modules/console/deploy_exec.go create mode 100644 apps/services/modules/console/model_agent.go create mode 100644 apps/services/modules/console/model_environment.go create mode 100644 apps/services/modules/console/model_moduleconfig.go create mode 100644 apps/services/modules/console/model_product.go create mode 100644 apps/services/modules/console/model_svcruntime.go create mode 100644 apps/services/modules/console/model_svctemplate.go diff --git a/apps/admin/.nuxt/components.d.ts b/apps/admin/.nuxt/components.d.ts index d57751d1..0b8892e1 100644 --- a/apps/admin/.nuxt/components.d.ts +++ b/apps/admin/.nuxt/components.d.ts @@ -16,6 +16,7 @@ type LazyComponent = DefineComponent export const LazyAppToast: LazyComponent +export const LazyLangSelect: LazyComponent export const LazyNuxtWelcome: LazyComponent export const LazyNuxtLayout: LazyComponent export const LazyNuxtErrorBoundary: LazyComponent diff --git a/apps/admin/.nuxt/imports.d.ts b/apps/admin/.nuxt/imports.d.ts index c36e6da9..fb343975 100644 --- a/apps/admin/.nuxt/imports.d.ts +++ b/apps/admin/.nuxt/imports.d.ts @@ -32,8 +32,8 @@ export { setInterval } from '#app/compat/interval'; export { definePageMeta, PageMeta } from '#app/composables/pages'; export { defineLazyHydrationComponent } from '#app/composables/lazy-hydration'; export { useApi } from '../app/composables/useApi'; +export { LANG_OPTIONS, langName, LangOption } from '../app/composables/useLangOptions'; export { useLoading } from '../app/composables/useLoading'; export { useToast, ToastType, Toast } from '../app/composables/useToast'; export { IDENTITY_LABELS, useAuthStore } from '../app/stores/auth'; -export { defineStore, acceptHMRUpdate, usePinia, storeToRefs } from '../node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/composables'; -export { useNuxtDevTools } from '../node_modules/.pnpm/@nuxt+devtools@3.2.4_vite@7.3.5_jiti@2.7.0_terser@5.48.0_yaml@2.9.0__vue@3.5.38_typescript@5.9.3_/node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools'; \ No newline at end of file +export { defineStore, acceptHMRUpdate, usePinia, storeToRefs } from '../node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/composables'; \ No newline at end of file diff --git a/apps/admin/.nuxt/manifest/latest.json b/apps/admin/.nuxt/manifest/latest.json index 8b6d1600..521feda1 100644 --- a/apps/admin/.nuxt/manifest/latest.json +++ b/apps/admin/.nuxt/manifest/latest.json @@ -1 +1 @@ -{"id":"dev","timestamp":1782719244117} \ No newline at end of file +{"id":"dev","timestamp":1782957264073} \ No newline at end of file diff --git a/apps/admin/.nuxt/manifest/meta/1a398374-98c8-4def-95d3-61ae1c7c5483.json b/apps/admin/.nuxt/manifest/meta/1a398374-98c8-4def-95d3-61ae1c7c5483.json new file mode 100644 index 00000000..9e26dfee --- /dev/null +++ b/apps/admin/.nuxt/manifest/meta/1a398374-98c8-4def-95d3-61ae1c7c5483.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/apps/admin/.nuxt/manifest/meta/dev.json b/apps/admin/.nuxt/manifest/meta/dev.json index 9b82d903..2205ddfd 100644 --- a/apps/admin/.nuxt/manifest/meta/dev.json +++ b/apps/admin/.nuxt/manifest/meta/dev.json @@ -1 +1 @@ -{"id":"dev","timestamp":1782719244117,"prerendered":[]} \ No newline at end of file +{"id":"dev","timestamp":1782957264073,"prerendered":[]} \ No newline at end of file diff --git a/apps/admin/.nuxt/nitro.json b/apps/admin/.nuxt/nitro.json index 731eb3f9..016c1c3e 100644 --- a/apps/admin/.nuxt/nitro.json +++ b/apps/admin/.nuxt/nitro.json @@ -1,5 +1,5 @@ { - "date": "2026-06-29T07:47:25.178Z", + "date": "2026-07-02T01:54:25.086Z", "preset": "nitro-dev", "framework": { "name": "nuxt", @@ -9,9 +9,9 @@ "nitro": "2.13.4" }, "dev": { - "pid": 9287, + "pid": 58824, "workerAddress": { - "socketPath": "/var/folders/1w/40ft_rjj7qx8xn21kb1lj51r0000gn/T/nitro-worker-9287-1-1-5267.sock" + "socketPath": "/var/folders/1w/40ft_rjj7qx8xn21kb1lj51r0000gn/T/nitro-worker-58824-1-1-597.sock" } } } \ No newline at end of file diff --git a/apps/admin/.nuxt/nuxt.d.ts b/apps/admin/.nuxt/nuxt.d.ts index 60fc7d9a..fba75790 100644 --- a/apps/admin/.nuxt/nuxt.d.ts +++ b/apps/admin/.nuxt/nuxt.d.ts @@ -1,5 +1,5 @@ -/// /// +/// /// /// /// diff --git a/apps/admin/.nuxt/nuxt.lock b/apps/admin/.nuxt/nuxt.lock deleted file mode 100644 index e81b5075..00000000 --- a/apps/admin/.nuxt/nuxt.lock +++ /dev/null @@ -1,9 +0,0 @@ -{ - "pid": 9287, - "startedAt": 1782719243662, - "command": "dev", - "cwd": "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin", - "port": 3000, - "hostname": "::1", - "url": "http://[::1]:3000" -} \ No newline at end of file diff --git a/apps/admin/.nuxt/nuxt.node.d.ts b/apps/admin/.nuxt/nuxt.node.d.ts index e33601ff..4c46b465 100644 --- a/apps/admin/.nuxt/nuxt.node.d.ts +++ b/apps/admin/.nuxt/nuxt.node.d.ts @@ -1,5 +1,5 @@ -/// /// +/// /// /// /// diff --git a/apps/admin/.nuxt/tailwind/postcss.mjs b/apps/admin/.nuxt/tailwind/postcss.mjs index 97782c39..bc029e39 100644 --- a/apps/admin/.nuxt/tailwind/postcss.mjs +++ b/apps/admin/.nuxt/tailwind/postcss.mjs @@ -1,4 +1,4 @@ -// generated by the @nuxtjs/tailwindcss module at 6/29/2026, 5:27:44 PM +// generated by the @nuxtjs/tailwindcss module at 7/2/2026, 8:24:14 PM import "@nuxtjs/tailwindcss/config-ctx" import configMerger from "@nuxtjs/tailwindcss/merger"; diff --git a/apps/admin/.nuxt/tsconfig.app.json b/apps/admin/.nuxt/tsconfig.app.json index 05ace571..dab2b1eb 100644 --- a/apps/admin/.nuxt/tsconfig.app.json +++ b/apps/admin/.nuxt/tsconfig.app.json @@ -107,7 +107,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/dev.json" + "./manifest/meta/1a398374-98c8-4def-95d3-61ae1c7c5483.json" ], "#components": [ "./components" @@ -197,7 +197,7 @@ "../node_modules/.pnpm/@nuxt+telemetry@2.8.0_@nuxt+kit@4.4.8_magicast@0.5.3_/node_modules/dist/runtime/server", "../node_modules/.pnpm/@nuxt+telemetry@2.8.0_@nuxt+kit@4.4.8_magicast@0.5.3_/node_modules/*.*", "../node_modules/.pnpm/@nuxt+telemetry@2.8.0_@nuxt+kit@4.4.8_magicast@0.5.3_/node_modules/dist/*.*", - "dev", + "../.output", "../server" ], "vueCompilerOptions": { diff --git a/apps/admin/.nuxt/tsconfig.json b/apps/admin/.nuxt/tsconfig.json index 58db1c92..72f7b6e3 100644 --- a/apps/admin/.nuxt/tsconfig.json +++ b/apps/admin/.nuxt/tsconfig.json @@ -107,7 +107,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/dev.json" + "./manifest/meta/1a398374-98c8-4def-95d3-61ae1c7c5483.json" ], "#components": [ "./components" diff --git a/apps/admin/.nuxt/tsconfig.shared.json b/apps/admin/.nuxt/tsconfig.shared.json index a6bf4890..68d202a9 100644 --- a/apps/admin/.nuxt/tsconfig.shared.json +++ b/apps/admin/.nuxt/tsconfig.shared.json @@ -107,7 +107,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/dev.json" + "./manifest/meta/1a398374-98c8-4def-95d3-61ae1c7c5483.json" ], "#build": [ "." diff --git a/apps/admin/.nuxt/types/build.d.ts b/apps/admin/.nuxt/types/build.d.ts index 86af7751..813a333a 100644 --- a/apps/admin/.nuxt/types/build.d.ts +++ b/apps/admin/.nuxt/types/build.d.ts @@ -12,8 +12,6 @@ declare module "#build/paths.mjs"; declare module "#build/root-component.mjs"; declare module "#build/plugins.server.mjs"; declare module "#build/test-component-wrapper.mjs"; -declare module "#build/devtools/settings.mjs"; -declare module "#build/runtime.vue-devtools-client.8eTWAfLgVpINiZM922q1ozAHX8JlyUM2pBnpX1z932g.js"; declare module "#build/routes.mjs"; declare module "#build/pages.mjs"; declare module "#build/router.options.mjs"; diff --git a/apps/admin/.nuxt/types/components.d.ts b/apps/admin/.nuxt/types/components.d.ts index 77e3fa8b..a889b5a6 100644 --- a/apps/admin/.nuxt/types/components.d.ts +++ b/apps/admin/.nuxt/types/components.d.ts @@ -16,6 +16,7 @@ type LazyComponent = DefineComponent LazyAppToast: LazyComponent + LazyLangSelect: LazyComponent LazyNuxtWelcome: LazyComponent LazyNuxtLayout: LazyComponent LazyNuxtErrorBoundary: LazyComponent diff --git a/apps/admin/.nuxt/types/imports.d.ts b/apps/admin/.nuxt/types/imports.d.ts index b5a38c38..86781c5c 100644 --- a/apps/admin/.nuxt/types/imports.d.ts +++ b/apps/admin/.nuxt/types/imports.d.ts @@ -2,6 +2,7 @@ export {} declare global { const IDENTITY_LABELS: typeof import('../../app/stores/auth').IDENTITY_LABELS + const LANG_OPTIONS: typeof import('../../app/composables/useLangOptions').LANG_OPTIONS const abortNavigation: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/router').abortNavigation const acceptHMRUpdate: typeof import('../../node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/composables').acceptHMRUpdate const addRouteMiddleware: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/router').addRouteMiddleware @@ -47,6 +48,7 @@ declare global { const isShallow: typeof import('vue').isShallow const isVue2: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/compat/vue-demi').isVue2 const isVue3: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/compat/vue-demi').isVue3 + const langName: typeof import('../../app/composables/useLangOptions').langName const loadPayload: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/payload').loadPayload const markRaw: typeof import('vue').markRaw const navigateTo: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/router').navigateTo @@ -123,7 +125,6 @@ declare global { const useModel: typeof import('vue').useModel const useNuxtApp: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/nuxt').useNuxtApp const useNuxtData: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/asyncData').useNuxtData - const useNuxtDevTools: typeof import('../../node_modules/.pnpm/@nuxt+devtools@3.2.4_vite@7.3.5_jiti@2.7.0_terser@5.48.0_yaml@2.9.0__vue@3.5.38_typescript@5.9.3_/node_modules/@nuxt/devtools/dist/runtime/use-nuxt-devtools').useNuxtDevTools const usePinia: typeof import('../../node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/composables').usePinia const usePreviewMode: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/preview').usePreviewMode const useRequestEvent: typeof import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/ssr').useRequestEvent @@ -210,6 +211,9 @@ declare global { export type { PageMeta } from '../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/pages' import('../../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/pages') // @ts-ignore + export type { LangOption } from '../../app/composables/useLangOptions' + import('../../app/composables/useLangOptions') + // @ts-ignore export type { ToastType, Toast } from '../../app/composables/useToast' import('../../app/composables/useToast') } @@ -218,6 +222,7 @@ import { UnwrapRef } from 'vue' declare module 'vue' { interface ComponentCustomProperties { readonly IDENTITY_LABELS: UnwrapRef + readonly LANG_OPTIONS: UnwrapRef readonly abortNavigation: UnwrapRef readonly acceptHMRUpdate: UnwrapRef readonly addRouteMiddleware: UnwrapRef @@ -263,6 +268,7 @@ declare module 'vue' { readonly isShallow: UnwrapRef readonly isVue2: UnwrapRef readonly isVue3: UnwrapRef + readonly langName: UnwrapRef readonly loadPayload: UnwrapRef readonly markRaw: UnwrapRef readonly navigateTo: UnwrapRef @@ -339,7 +345,6 @@ declare module 'vue' { readonly useModel: UnwrapRef readonly useNuxtApp: UnwrapRef readonly useNuxtData: UnwrapRef - readonly useNuxtDevTools: UnwrapRef readonly usePinia: UnwrapRef readonly usePreviewMode: UnwrapRef readonly useRequestEvent: UnwrapRef diff --git a/apps/admin/.nuxt/types/plugins.d.ts b/apps/admin/.nuxt/types/plugins.d.ts index 9c3e8c30..2679918d 100644 --- a/apps/admin/.nuxt/types/plugins.d.ts +++ b/apps/admin/.nuxt/types/plugins.d.ts @@ -10,27 +10,20 @@ type NuxtAppInjections = InjectionType & InjectionType & InjectionType & - InjectionType & InjectionType & - InjectionType & InjectionType & InjectionType & InjectionType & InjectionType & InjectionType & InjectionType & - InjectionType & - InjectionType & - InjectionType & - InjectionType & - InjectionType & InjectionType declare module '#app' { interface NuxtApp extends NuxtAppInjections { } interface NuxtAppLiterals { - pluginName: 'vue-devtools-client' | 'nuxt:revive-payload:client' | 'nuxt:head' | 'nuxt:router' | 'nuxt:browser-devtools-timing' | 'nuxt:payload' | 'nuxt:revive-payload:server' | 'nuxt:chunk-reload' | 'pinia' | 'nuxt:global-components' | 'nuxt:prefetch' | 'nuxt:checkIfPageUnused' | 'nuxt:checkIfLayoutUsed' + pluginName: 'nuxt:revive-payload:client' | 'nuxt:head' | 'nuxt:router' | 'nuxt:payload' | 'nuxt:revive-payload:server' | 'nuxt:chunk-reload' | 'pinia' | 'nuxt:global-components' | 'nuxt:prefetch' } } diff --git a/apps/admin/.output/nitro.json b/apps/admin/.output/nitro.json index 8cef4e5e..666326a7 100644 --- a/apps/admin/.output/nitro.json +++ b/apps/admin/.output/nitro.json @@ -1,5 +1,5 @@ { - "date": "2026-06-25T01:39:28.611Z", + "date": "2026-07-02T12:24:29.523Z", "preset": "node-server", "framework": { "name": "nuxt", diff --git a/apps/admin/.output/public/_nuxt/0ubqzWuP.js b/apps/admin/.output/public/_nuxt/0ubqzWuP.js deleted file mode 100644 index 0e632449..00000000 --- a/apps/admin/.output/public/_nuxt/0ubqzWuP.js +++ /dev/null @@ -1 +0,0 @@ -import{g as j,z as P,e as q,j as E,M as N,N as U,H,O as I,P as A,Q as _,R as F,S as V,T as z,s as D,U as O,V as W,J as f,W as M,C as x,X as $,Y as B,Z as Q,$ as G,a0 as J,a1 as X,a2 as Y}from"./96IDI_OR.js";const Z=(...t)=>t.find(r=>r!==void 0);function T(t){let r=t.replace(/[\u0000-\u001F\s]+/g,"");for(;r.toLowerCase().startsWith("view-source:");)r=r.slice(12);const c=r.indexOf(":");return c>0&&Q(r.slice(0,c+1))?null:t}function K(t){const r=t.componentName||"NuxtLink";function c(e){return typeof e=="string"&&e.startsWith("#")}function R(e,s,d){const a=d??t.trailingSlash;if(!e||a!=="append"&&a!=="remove")return e;if(typeof e=="string")return w(e,a);const i="path"in e&&e.path!==void 0?e.path:s(e).path;return{...e,name:void 0,path:w(i,a)}}function k(e){const s=P(),d=G(),a=x(()=>!!f(e.target)&&f(e.target)!=="_self"),i=x(()=>{const o=f(e.to)||f(e.href)||"";return typeof o=="string"&&B(o,{acceptRelative:!0})}),C=_("RouterLink"),y=typeof C!="string"?C.useLink:void 0,v=x(()=>{if(f(e.external))return!0;const o=f(e.to)||f(e.href)||"";return typeof o=="object"?!1:o===""||i.value}),l=x(()=>{const o=f(e.to)||f(e.href)||"";return v.value?o:R(o,s.resolve,f(e.trailingSlash))}),b=v.value?void 0:y?.({...e,to:l,viewTransition:f(e.viewTransition)}),m=x(()=>{const o=f(e.trailingSlash)??t.trailingSlash;if(!l.value||i.value||c(l.value)){const h=l.value;return typeof h=="string"?T(h):h}if(v.value){const h=typeof l.value=="object"&&"path"in l.value?O(l.value):l.value,p=typeof h=="object"?s.resolve(h).href:h,u=typeof p=="string"?T(p):p;return u===null?null:w(u,o)}return typeof l.value=="object"?s.resolve(l.value)?.href??null:w($(d.app.baseURL,l.value),o)});return{to:l,hasTarget:a,isAbsoluteUrl:i,isExternal:v,href:m,isActive:b?.isActive??x(()=>l.value===s.currentRoute.value.path),isExactActive:b?.isExactActive??x(()=>l.value===s.currentRoute.value.path),route:b?.route??x(()=>s.resolve(l.value)),async navigate(o){m.value!==null&&await M(m.value,{replace:f(e.replace),external:v.value||a.value})}}}return j({name:r,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1},trailingSlash:{type:String,default:void 0,required:!1}},useLink:k,setup(e,{slots:s}){const d=P(),{to:a,href:i,navigate:C,isExternal:y,hasTarget:v,isAbsoluteUrl:l}=k(e),b=z(!1),m=D(null),o=u=>{m.value=e.custom?u?.$el?.nextElementSibling:u?.$el};function h(u){return!b.value&&(typeof e.prefetchOn=="string"?e.prefetchOn===u:e.prefetchOn?.[u]??t.prefetchOn?.[u])&&(e.prefetch??t.prefetch)!==!1&&e.noPrefetch!==!0&&e.target!=="_blank"&&!ae()}async function p(u=q()){if(b.value||i.value===null)return;b.value=!0;const g=typeof a.value=="string"?a.value:y.value?O(a.value):d.resolve(a.value).fullPath,n=y.value?new URL(g,window.location.href).href:g;await Promise.all([u.hooks.callHook("link:prefetch",n)?.catch(()=>{}),!y.value&&!v.value&&W(a.value,d).catch(()=>{})])}if(h("visibility")){const u=q();let g,n=null;E(()=>{const S=ee();N(()=>{g=U(()=>{m?.value?.tagName&&(n=S.observe(m.value,async()=>{n?.(),n=null,await p(u)}))})})}),H(()=>{g&&I(g),n?.(),n=null})}return()=>{if(!y.value&&!v.value&&!c(a.value)){const n={ref:o,to:a.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(h("interaction")&&(n.onPointerenter=p.bind(null,void 0),n.onFocus=p.bind(null,void 0)),b.value&&(n.class=e.prefetchedClass||t.prefetchedClass),n.rel=e.rel||void 0),A(_("RouterLink"),n,s.default)}const u=e.target||null,g=Z(e.noRel?"":e.rel,t.externalRelAttribute,l.value||v.value?"noopener noreferrer":"")||null;return e.custom?s.default?s.default({href:i.value,navigate:C,prefetch:p,get route(){if(!i.value)return;const n=new URL(i.value,window.location.href);return{path:n.pathname,fullPath:n.pathname,get query(){return F(n.search)},hash:n.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:i.value}},rel:g,target:u,isExternal:y.value||v.value,isActive:!1,isExactActive:!1}):null:A("a",{ref:m,href:i.value||null,rel:g,target:u,onClick:async n=>{if(!(y.value||v.value)){n.preventDefault();try{const S=V(i.value??"");return await(e.replace?d.replace(S):d.push(S))}finally{if(c(a.value)){const S=a.value.slice(1);let L=S;try{L=decodeURIComponent(S)}catch{}document.getElementById(L)?.focus()}}}}},s.default?.())}}})}const le=K(Y);function w(t,r){const c=r==="append"?J:X;return B(t)&&!t.startsWith("http")?t:c(t,!0)}function ee(){const t=q();if(t._observer)return t._observer;let r=null;const c=new Map,R=(e,s)=>(r||=new IntersectionObserver(d=>{for(const a of d){const i=c.get(a.target);(a.isIntersecting||a.intersectionRatio>0)&&i&&i()}}),c.set(e,s),r.observe(e),()=>{c.delete(e),r?.unobserve(e),c.size===0&&(r?.disconnect(),r=null)});return t._observer={observe:R}}const te=/2g/;function ae(){const t=navigator.connection;return!!(t&&(t.saveData||te.test(t.effectiveType)))}export{le as _}; diff --git a/apps/admin/.output/public/_nuxt/DrdHHbY3.js b/apps/admin/.output/public/_nuxt/1YPtusTp.js similarity index 71% rename from apps/admin/.output/public/_nuxt/DrdHHbY3.js rename to apps/admin/.output/public/_nuxt/1YPtusTp.js index bf0ba4bf..7f0c064a 100644 --- a/apps/admin/.output/public/_nuxt/DrdHHbY3.js +++ b/apps/admin/.output/public/_nuxt/1YPtusTp.js @@ -1 +1 @@ -import{_ as t,o,c as s,I as c}from"./96IDI_OR.js";const r={},a={class:"min-h-screen","data-theme":"corporate"};function n(e,_){return o(),s("div",a,[c(e.$slots,"default")])}const l=t(r,[["render",n]]);export{l as default}; +import{_ as t,o,c as s,L as c}from"./CTAruH_8.js";const r={},a={class:"min-h-screen","data-theme":"corporate"};function n(e,_){return o(),s("div",a,[c(e.$slots,"default")])}const l=t(r,[["render",n]]);export{l as default}; diff --git a/apps/admin/.output/public/_nuxt/6n4fu-B8.js b/apps/admin/.output/public/_nuxt/6n4fu-B8.js deleted file mode 100644 index 5904eff5..00000000 --- a/apps/admin/.output/public/_nuxt/6n4fu-B8.js +++ /dev/null @@ -1 +0,0 @@ -import{g as ue,x as A,j as ce,c as o,k as i,v as L,a as e,l as g,F as h,r as C,t as r,A as H,m as v,p as S,d as O,q as Q,s as m,C as me,o as a,n as be}from"./96IDI_OR.js";import{u as pe}from"./Do83zqYq.js";import{u as ve}from"./CVUxyiJx.js";const fe={class:"flex items-center justify-between mb-5"},ge={class:"bg-white rounded-xl shadow-sm border border-slate-100"},xe={class:"overflow-x-auto"},ye={class:"table table-zebra text-sm"},we={key:0},ke={key:1},he={class:"font-mono text-sm"},_e=["src"],Ve={key:1,class:"w-10 h-10 rounded bg-slate-100 flex items-center justify-center text-slate-300"},Ce={class:"font-medium"},Ue={class:"badge badge-outline badge-sm"},Ee={class:"text-sm"},Ie={key:0},Ne={key:1,class:"text-slate-300"},$e={class:"text-xs text-slate-500"},De={class:"flex gap-1"},Le=["onClick"],Se=["onClick"],Be=["onClick"],Fe={class:"flex items-center gap-3 mb-5"},Me={class:"text-lg font-semibold text-slate-800"},Te={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-3xl"},je={class:"form-control mb-4"},ze={class:"grid grid-cols-2 gap-4 mb-4"},Ae={class:"form-control"},Oe=["value"],Pe={class:"form-control"},qe=["value"],Je={class:"grid grid-cols-2 gap-4 mb-4"},Ke={class:"form-control"},Ye={class:"form-control"},He={class:"grid grid-cols-2 gap-4 mb-4"},Qe={class:"form-control"},Re={class:"mb-4"},Ge={class:"grid grid-cols-3 gap-4"},We={class:"form-control"},Xe={class:"form-control"},Ze={class:"form-control"},et={class:"form-control mb-4"},tt={class:"flex items-start gap-4"},st={class:"flex-1"},lt={class:"flex items-center gap-2"},nt=["disabled"],ot={key:0,class:"loading loading-spinner loading-xs"},at={key:0},it=["src"],dt={class:"grid grid-cols-3 gap-4 mb-4"},rt={class:"form-control"},ut={class:"form-control"},ct={class:"form-control"},mt={class:"grid grid-cols-3 gap-3 mb-6"},bt=["onUpdate:modelValue"],pt={class:"text-sm"},vt={class:"flex gap-3"},ft=["disabled"],gt={key:0,class:"loading loading-spinner loading-xs"},xt={class:"flex items-center gap-3 mb-5"},yt={class:"text-lg font-semibold text-slate-800"},wt={key:0,class:"bg-white rounded-xl shadow-sm border border-slate-100 p-4 mb-5"},kt={class:"flex items-center gap-6 text-sm flex-wrap"},ht={class:"font-mono"},_t={class:"badge badge-primary badge-sm"},Vt={class:"text-xs"},Ct={class:"text-xs max-w-md truncate"},Ut={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-5 mb-5"},Et={class:"grid grid-cols-2 gap-4 mb-3"},It={class:"form-control"},Nt={class:"form-control"},$t={class:"form-control mb-3"},Dt={class:"flex items-center gap-3"},Lt={class:"flex items-center gap-2 cursor-pointer"},St=["disabled"],Bt={key:0,class:"loading loading-spinner loading-xs"},Ft={class:"bg-white rounded-xl shadow-sm border border-slate-100"},Mt={class:"overflow-x-auto"},Tt={class:"table table-zebra text-sm"},jt={key:0},zt={key:0,class:"badge badge-success badge-xs ml-1"},At={class:"text-sm"},Ot={class:"text-xs text-slate-400 max-w-xs truncate"},Pt={class:"flex gap-1"},qt={key:0,class:"text-xs text-slate-400"},Jt=["onClick"],Kt=["onClick"],Gt=ue({__name:"product",setup(Yt){const{webApi:p,uploadFile:P}=pe(),{success:x,error:f,warn:B}=ve(),R={0:"未知",1:"经典蓝牙",2:"BLE双端",3:"BLE单端",4:"录音笔",5:"智能眼镜",6:"激活码卡片"},G={0:"未知",1:"经典蓝牙耳机",2:"BLE双端",3:"BLE单端",4:"智能录音笔",5:"智能眼镜",6:"激活码卡片"},y=[{key:"iscanbindagain",label:"可重复绑定奖励"},{key:"iscontinuouschat",label:"连续对话"},{key:"eqenable",label:"EQ 均衡器"},{key:"keyenable",label:"按键控制"},{key:"workmodeenable",label:"工作模式"},{key:"callmodeenable",label:"通话模式"},{key:"ledenable",label:"LED 灯"},{key:"finddeviceenable",label:"查找设备"},{key:"noisereductionenable",label:"降噪"},{key:"shutdownenable",label:"定时关机"},{key:"showcasebattery",label:"充电盒电量"},{key:"wakeupenable",label:"唤醒控制"},{key:"broadcastpeertranslate",label:"播报对方翻译"},{key:"hideaiassistant",label:"隐藏AI助手"}],w=m("list"),U=m([]),q=m({}),F=m([]),M=m(!1),E=m(!1),_=m(!1);function W(){const l={};return y.forEach(t=>{l[t.key]=!1}),l}const n=A({id:0,devicename:"",factoryid:0,devicetype:0,scanuuid:"",devicecodecount:1,productimage:"",channel:"official",bindrewardvpitime:0,bindrewardtranslate:0,bindrewardmeeting:0,toggles:W()}),c=A({platform_id:"",platform_key:"",tui:""});function J(l){return l?Number(l).toString(16).toUpperCase():""}function X(l){return y.filter(t=>!!l[t.key]).length}async function T(){M.value=!0;try{const l=await p("getfactorys",{}),t={};(l?.factorys??[]).forEach(b=>{t[b.id]=b.factory}),q.value=t;const s=await p("getproducts",{});U.value=s?.products??[]}catch(l){f(l?.message??"获取产品列表失败"),U.value=[]}finally{M.value=!1}}async function Z(){try{const l=await p("getfactorys",{});F.value=l?.factorys??[]}catch{F.value=[]}}function I(){w.value="list",T()}function K(l){if(Z(),l){_.value=!0,n.id=l.id,n.devicename=l.devicename||"",n.factoryid=l.factoryid||0,n.devicetype=l.devicetype||0,n.scanuuid=l.scanuuid||"",n.devicecodecount=l.devicecodecount===2?2:1,n.productimage=l.productimage||"",n.channel=l.channel||"official",n.bindrewardvpitime=l.bindrewardvpitime||0,n.bindrewardtranslate=l.bindrewardtranslate||0,n.bindrewardmeeting=l.bindrewardmeeting||0;let t={};try{t=l.channelextra?JSON.parse(l.channelextra):{}}catch{t={}}c.platform_id=t.platform_id||"",c.platform_key=t.platform_key||"",c.tui=t.tui||"",y.forEach(s=>{n.toggles[s.key]=!!l[s.key]})}else _.value=!1,n.id=0,n.devicename="",n.factoryid=0,n.devicetype=0,n.scanuuid="",n.devicecodecount=1,n.productimage="",n.channel="official",n.bindrewardvpitime=0,n.bindrewardtranslate=0,n.bindrewardmeeting=0,c.platform_id="",c.platform_key="",c.tui="",y.forEach(t=>{n.toggles[t.key]=!1});w.value="form"}async function ee(){E.value=!0;try{let l="";n.channel==="mobile"&&(l=JSON.stringify({platform_id:c.platform_id||"",platform_key:c.platform_key||"",tui:c.tui||""}));const t={devicename:n.devicename,factoryid:Number(n.factoryid)||0,devicetype:Number(n.devicetype)||0,scanuuid:n.scanuuid,devicecodecount:Number(n.devicecodecount)||1,productimage:n.productimage,channel:n.channel,channelextra:l,bindrewardvpitime:Number(n.bindrewardvpitime)||0,bindrewardtranslate:Number(n.bindrewardtranslate)||0,bindrewardmeeting:Number(n.bindrewardmeeting)||0};y.forEach(s=>{t[s.key]=n.toggles[s.key]}),_.value&&(t.id=Number(n.id)),await p(_.value?"updateproduct":"addproduct",{product:t}),x("保存成功"),I()}catch(l){f(l?.message??"保存失败")}finally{E.value=!1}}function te(l){window.confirm(`确定删除产品 "${l.devicename}" 吗?`)&&p("delproduct",{id:l.id}).then(()=>{x("已删除"),T()}).catch(t=>f(t?.message??"删除失败"))}const j=m(null),N=m(!1);function se(l){j.value=l.target.files?.[0]??null}async function le(){if(!j.value){B("请先选择图片");return}N.value=!0;try{const l=n.id?`products/${n.id}/images/`:"products/images/",t=await P(j.value,l);n.productimage=t,x("上传成功")}catch(l){f(l?.message??"上传失败")}finally{N.value=!1}}const d=m(null),V=m([]),$=m(!1),u=A({version:"",desc:"",isuse:!1}),k=m(null),ne=me(()=>!!u.version.trim()&&!!k.value);function z(l){return!!d.value?.versionid&&l.id===d.value.versionid}async function oe(l){w.value="version",d.value=null,V.value=[],u.version="",u.desc="",u.isuse=!1,k.value=null;try{const t=await p("getproduct",{id:l.id});d.value=t?.product??l}catch{d.value=l}await D(l.id)}async function D(l){try{const t=await p("getproductversions",{pid:l});V.value=t?.versions??[]}catch{V.value=[]}}function ae(l){k.value=l.target.files?.[0]??null}async function Y(l){if(!d.value)return f("产品信息未加载"),!1;const t={...d.value,versionid:l.id};try{await p("updateproduct",{product:t});const s=await p("getproduct",{id:t.id});return d.value=s?.product??t,!0}catch(s){return f(s?.message??"切换失败"),!1}}function ie(l){window.confirm(`确定将版本 "${l.version}" 设为当前使用版本?`)&&Y(l).then(t=>{t&&(x("切换成功"),d.value&&D(d.value.id))})}async function de(){const l=d.value?.id;if(!l){f("产品ID不存在");return}if(!u.version.trim()){B("请输入版本号");return}if(!k.value){B("请选择固件文件");return}$.value=!0;try{const t=await P(k.value,`products/${l}/`),s=await p("addproductversion",{version:{productid:l,version:u.version.trim(),description:u.desc,updatepackageaddress:t},isuse:!1});x("添加成功"),u.isuse&&s?.version&&await Y(s.version),u.version="",u.desc="",u.isuse=!1,k.value=null,await D(l)}catch(t){f(t?.message??"添加失败")}finally{$.value=!1}}function re(l){if(d.value?.versionid===l.id){f("不能删除当前使用中的版本");return}window.confirm("删除此版本?")&&p("delproductversion",{id:l.id}).then(()=>{x("已删除"),d.value&&D(d.value.id)}).catch(t=>f(t?.message??"删除失败"))}return ce(T),(l,t)=>(a(),o("div",null,[i(e("div",null,[e("div",fe,[t[20]||(t[20]=e("h2",{class:"text-lg font-semibold text-slate-800"},"产品列表",-1)),e("button",{class:"btn btn-primary btn-sm text-white",onClick:t[0]||(t[0]=s=>K())},"+ 新增产品")]),e("div",ge,[e("div",xe,[e("table",ye,[t[24]||(t[24]=e("thead",null,[e("tr",null,[e("th",null,"ID"),e("th",null,"图片"),e("th",null,"名称"),e("th",null,"工厂"),e("th",null,"类型"),e("th",null,"版本"),e("th",null,"功能"),e("th",null,"操作")])],-1)),e("tbody",null,[M.value?(a(),o("tr",we,[...t[21]||(t[21]=[e("td",{colspan:"8",class:"text-center py-8"},[e("span",{class:"loading loading-spinner loading-sm"})],-1)])])):U.value.length?g("",!0):(a(),o("tr",ke,[...t[22]||(t[22]=[e("td",{colspan:"8",class:"text-center text-slate-400 py-8"},"暂无数据",-1)])])),(a(!0),o(h,null,C(U.value,s=>(a(),o("tr",{key:s.id},[e("td",he,r(J(s.id)),1),e("td",null,[s.productimage?(a(),o("img",{key:0,src:s.productimage,class:"w-10 h-10 rounded object-cover"},null,8,_e)):(a(),o("div",Ve,[...t[23]||(t[23]=[e("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})],-1)])]))]),e("td",Ce,r(s.devicename),1),e("td",null,r(q.value[s.factoryid]||""),1),e("td",null,[e("span",Ue,r(R[s.devicetype]||s.devicetype),1)]),e("td",Ee,[s.version?(a(),o("span",Ie,r(s.version),1)):(a(),o("span",Ne,"-"))]),e("td",null,[e("span",$e,r(X(s))+"/14",1)]),e("td",null,[e("div",De,[e("button",{class:"btn btn-ghost btn-xs",onClick:b=>K(s)},"编辑",8,Le),e("button",{class:"btn btn-ghost btn-xs text-indigo-600",onClick:b=>oe(s)},"版本",8,Se),e("button",{class:"btn btn-ghost btn-xs text-red-500",onClick:b=>te(s)},"删除",8,Be)])])]))),128))])])])])],512),[[L,w.value==="list"]]),i(e("div",null,[e("div",Fe,[e("button",{class:"btn btn-ghost btn-sm",onClick:t[1]||(t[1]=s=>I())},"← 返回列表"),e("h2",Me,r(_.value?"编辑产品":"新增产品"),1)]),e("div",Te,[e("form",{onSubmit:H(ee,["prevent"])},[t[43]||(t[43]=e("h3",{class:"text-sm font-semibold text-slate-500 mb-3"},"基本信息",-1)),e("div",je,[t[25]||(t[25]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"产品名称 *")],-1)),i(e("input",{"onUpdate:modelValue":t[2]||(t[2]=s=>n.devicename=s),type:"text",class:"input input-bordered w-full",required:""},null,512),[[v,n.devicename]])]),e("div",ze,[e("div",Ae,[t[27]||(t[27]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"所属工厂")],-1)),i(e("select",{"onUpdate:modelValue":t[3]||(t[3]=s=>n.factoryid=s),class:"select select-bordered w-full"},[t[26]||(t[26]=e("option",{value:0},"请选择",-1)),(a(!0),o(h,null,C(F.value,s=>(a(),o("option",{key:s.id,value:s.id},r(s.factory),9,Oe))),128))],512),[[S,n.factoryid,void 0,{number:!0}]])]),e("div",Pe,[t[28]||(t[28]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"设备类型")],-1)),i(e("select",{"onUpdate:modelValue":t[4]||(t[4]=s=>n.devicetype=s),class:"select select-bordered w-full"},[(a(),o(h,null,C(G,(s,b)=>e("option",{key:b,value:Number(b)},r(s),9,qe)),64))],512),[[S,n.devicetype,void 0,{number:!0}]])])]),e("div",Je,[e("div",Ke,[t[29]||(t[29]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"扫描UUID")],-1)),i(e("input",{"onUpdate:modelValue":t[5]||(t[5]=s=>n.scanuuid=s),type:"text",class:"input input-bordered w-full"},null,512),[[v,n.scanuuid]])]),e("div",Ye,[t[31]||(t[31]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"设备码数量(每副)")],-1)),i(e("select",{"onUpdate:modelValue":t[6]||(t[6]=s=>n.devicecodecount=s),class:"select select-bordered w-full"},[...t[30]||(t[30]=[e("option",{value:1},"单份 (1个/副)",-1),e("option",{value:2},"双份 (2个/副)",-1)])],512),[[S,n.devicecodecount,void 0,{number:!0}]])])]),e("div",He,[e("div",Qe,[t[33]||(t[33]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"渠道方")],-1)),i(e("select",{"onUpdate:modelValue":t[7]||(t[7]=s=>n.channel=s),class:"select select-bordered w-full"},[...t[32]||(t[32]=[e("option",{value:"official"},"官方",-1),e("option",{value:"mobile"},"移动",-1)])],512),[[S,n.channel]])])]),i(e("div",Re,[e("div",Ge,[e("div",We,[t[34]||(t[34]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"移动平台ID")],-1)),i(e("input",{"onUpdate:modelValue":t[8]||(t[8]=s=>c.platform_id=s),type:"text",class:"input input-bordered w-full",placeholder:"移动平台分配的 ID"},null,512),[[v,c.platform_id]])]),e("div",Xe,[t[35]||(t[35]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"移动平台KEY")],-1)),i(e("input",{"onUpdate:modelValue":t[9]||(t[9]=s=>c.platform_key=s),type:"text",class:"input input-bordered w-full",placeholder:"移动平台分配的 KEY"},null,512),[[v,c.platform_key]])]),e("div",Ze,[t[36]||(t[36]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"TUI(8位)")],-1)),i(e("input",{"onUpdate:modelValue":t[10]||(t[10]=s=>c.tui=s),type:"text",maxlength:"8",class:"input input-bordered w-full",placeholder:"CMEI 前缀,如 11113396"},null,512),[[v,c.tui]])])])],512),[[L,n.channel==="mobile"]]),e("div",et,[t[38]||(t[38]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"产品图片")],-1)),e("div",tt,[e("div",st,[i(e("input",{"onUpdate:modelValue":t[11]||(t[11]=s=>n.productimage=s),type:"text",class:"input input-bordered w-full input-sm mb-2",placeholder:"图片URL(可手动输入或上传)"},null,512),[[v,n.productimage]]),e("div",lt,[e("input",{type:"file",accept:"image/*",class:"file-input file-input-bordered file-input-sm flex-1",onChange:se},null,32),e("button",{type:"button",class:"btn btn-outline btn-sm btn-primary",disabled:N.value,onClick:le},[N.value?(a(),o("span",ot)):g("",!0),t[37]||(t[37]=O("上传 ",-1))],8,nt)])]),n.productimage?(a(),o("div",at,[e("img",{src:n.productimage,class:"w-20 h-20 object-cover rounded-lg border"},null,8,it)])):g("",!0)])]),t[44]||(t[44]=e("div",{class:"divider text-sm text-slate-400"},"绑定奖励设置",-1)),e("div",dt,[e("div",rt,[t[39]||(t[39]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"VIP时长(天)")],-1)),i(e("input",{"onUpdate:modelValue":t[12]||(t[12]=s=>n.bindrewardvpitime=s),type:"number",min:"0",class:"input input-bordered w-full"},null,512),[[v,n.bindrewardvpitime,void 0,{number:!0}]])]),e("div",ut,[t[40]||(t[40]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"翻译时长(分钟)")],-1)),i(e("input",{"onUpdate:modelValue":t[13]||(t[13]=s=>n.bindrewardtranslate=s),type:"number",min:"0",class:"input input-bordered w-full"},null,512),[[v,n.bindrewardtranslate,void 0,{number:!0}]])]),e("div",ct,[t[41]||(t[41]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"会议时长(分钟)")],-1)),i(e("input",{"onUpdate:modelValue":t[14]||(t[14]=s=>n.bindrewardmeeting=s),type:"number",min:"0",class:"input input-bordered w-full"},null,512),[[v,n.bindrewardmeeting,void 0,{number:!0}]])])]),t[45]||(t[45]=e("div",{class:"divider text-sm text-slate-400"},"功能开关",-1)),e("div",mt,[(a(),o(h,null,C(y,s=>e("label",{key:s.key,class:"flex items-center gap-2 cursor-pointer"},[i(e("input",{"onUpdate:modelValue":b=>n.toggles[s.key]=b,type:"checkbox",class:"toggle toggle-primary toggle-sm"},null,8,bt),[[Q,n.toggles[s.key]]]),e("span",pt,r(s.label),1)])),64))]),e("div",vt,[e("button",{type:"button",class:"btn btn-ghost",onClick:t[15]||(t[15]=s=>I())},"取消"),e("button",{type:"submit",class:"btn btn-primary text-white",disabled:E.value},[E.value?(a(),o("span",gt)):g("",!0),t[42]||(t[42]=O("保存 ",-1))],8,ft)])],32)])],512),[[L,w.value==="form"]]),i(e("div",null,[e("div",xt,[e("button",{class:"btn btn-ghost btn-sm",onClick:t[16]||(t[16]=s=>I())},"← 返回产品列表"),e("h2",yt,"版本管理 - "+r(d.value?.devicename||""),1)]),d.value?(a(),o("div",wt,[e("div",kt,[t[46]||(t[46]=e("span",{class:"text-slate-400"},"产品ID:",-1)),e("span",ht,r(J(d.value.id)),1),t[47]||(t[47]=e("span",{class:"text-slate-400"},"当前版本:",-1)),e("span",_t,r(d.value.version||"无"),1),t[48]||(t[48]=e("span",{class:"text-slate-400"},"版本ID:",-1)),e("span",Vt,r(d.value.versionid||"无"),1),t[49]||(t[49]=e("span",{class:"text-slate-400"},"更新包:",-1)),e("span",Ct,r(d.value.updatepackageaddress||"无"),1)])])):g("",!0),e("div",Ut,[t[55]||(t[55]=e("h3",{class:"text-sm font-semibold text-slate-700 mb-3"},"添加新版本",-1)),e("form",{onSubmit:H(de,["prevent"])},[e("div",Et,[e("div",It,[t[50]||(t[50]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"版本号 *")],-1)),i(e("input",{"onUpdate:modelValue":t[17]||(t[17]=s=>u.version=s),type:"text",class:"input input-bordered input-sm w-full",placeholder:"如 1.2.0"},null,512),[[v,u.version]])]),e("div",Nt,[t[51]||(t[51]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"描述")],-1)),i(e("input",{"onUpdate:modelValue":t[18]||(t[18]=s=>u.desc=s),type:"text",class:"input input-bordered input-sm w-full",placeholder:"版本描述"},null,512),[[v,u.desc]])])]),e("div",$t,[t[52]||(t[52]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"OTA 更新包 *")],-1)),e("input",{type:"file",class:"file-input file-input-bordered file-input-sm w-full",accept:".bin,.hex,.zip,.gz,.tar,.ota,.ufw,.fot",onChange:ae},null,32)]),e("div",Dt,[e("label",Lt,[i(e("input",{"onUpdate:modelValue":t[19]||(t[19]=s=>u.isuse=s),type:"checkbox",class:"checkbox checkbox-primary checkbox-sm"},null,512),[[Q,u.isuse]]),t[53]||(t[53]=e("span",{class:"text-sm"},"设为当前使用版本",-1))]),e("button",{type:"submit",class:"btn btn-primary btn-sm text-white ml-auto",disabled:!ne.value||$.value},[$.value?(a(),o("span",Bt)):g("",!0),t[54]||(t[54]=O("添加版本 ",-1))],8,St)])],32)]),e("div",Ft,[e("div",Mt,[e("table",Tt,[t[57]||(t[57]=e("thead",null,[e("tr",null,[e("th",null,"ID"),e("th",null,"版本号"),e("th",null,"描述"),e("th",null,"更新包地址"),e("th",null,"操作")])],-1)),e("tbody",null,[V.value.length?g("",!0):(a(),o("tr",jt,[...t[56]||(t[56]=[e("td",{colspan:"5",class:"text-center text-slate-400 py-8"},"暂无版本",-1)])])),(a(!0),o(h,null,C(V.value,s=>(a(),o("tr",{key:s.id},[e("td",null,r(s.id),1),e("td",null,[e("span",{class:be(["badge badge-sm",z(s)?"badge-primary":"badge-outline"])},r(s.version),3),z(s)?(a(),o("span",zt,"当前")):g("",!0)]),e("td",At,r(s.description||""),1),e("td",Ot,r(s.updatepackageaddress||""),1),e("td",null,[e("div",Pt,[z(s)?(a(),o("span",qt,"使用中")):(a(),o(h,{key:1},[e("button",{class:"btn btn-ghost btn-xs text-indigo-600",onClick:b=>ie(s)},"设为当前",8,Jt),e("button",{class:"btn btn-ghost btn-xs text-red-500",onClick:b=>re(s)},"删除",8,Kt)],64))])])]))),128))])])])])],512),[[L,w.value==="version"]])]))}});export{Gt as default}; diff --git a/apps/admin/.output/public/_nuxt/9B2ftqmN.js b/apps/admin/.output/public/_nuxt/9B2ftqmN.js new file mode 100644 index 00000000..2fc001e9 --- /dev/null +++ b/apps/admin/.output/public/_nuxt/9B2ftqmN.js @@ -0,0 +1 @@ +import{C as l,z as d}from"./CTAruH_8.js";import{u as h}from"./D9HxoMhB.js";async function c(n,a,i){const e=l(),u=d(),s={"Content-Type":"application/json"};e.token&&(s.Authorization=e.token),i&&Object.assign(s,i);const t=await fetch(n,{method:"POST",headers:s,body:JSON.stringify(a)});if(!t.ok)throw new Error(`HTTP error: ${t.status}`);const o=await t.json();if(o.code===18)throw e.logout(),u.push("/"),new Error(o.msg||"Unauthorized");if(o.code!==0)throw new Error(o.msg||"Unknown error");return o.data}const w=/^(get|list|load|query|fetch|search|count|stat|export|check)/i;function y(n){return!w.test(n)}function k(){const n=l(),{begin:a,end:i}=h();async function e(t,o){const r={};if(n.currentAppId&&(r["X-App-Id"]=String(n.currentAppId)),!y(t))return c(`/web/api/api_${t}`,o??{},r);a();try{return await c(`/web/api/api_${t}`,o??{},r)}finally{i()}}async function u(t,o){return c(`/console/api/${t}`,o??{})}async function s(t,o){const r=await e("getcostoken",{path:o}),p=r.upload_url||r.url||"",f=await fetch(p,{method:"PUT",headers:{"Content-Type":t.type||"application/octet-stream"},body:t});if(!f.ok)throw new Error(`Upload failed: ${f.status}`);return p.split("?")[0]}return{webApi:e,consoleApi:u,uploadFile:s}}export{k as u}; diff --git a/apps/admin/.output/public/_nuxt/B3ns_poC.js b/apps/admin/.output/public/_nuxt/B3ns_poC.js deleted file mode 100644 index 558b28ce..00000000 --- a/apps/admin/.output/public/_nuxt/B3ns_poC.js +++ /dev/null @@ -1 +0,0 @@ -import{g as I,j as A,c as a,k as n,v as T,a as e,F as C,r as M,p as P,m as b,l as B,t as d,A as j,n as H,q,s as u,x as z,C as R,o as i}from"./96IDI_OR.js";import{u as G}from"./Do83zqYq.js";import{u as O}from"./CVUxyiJx.js";const Y={class:"flex items-center justify-between mb-5"},J={class:"flex items-center gap-3 mb-4"},K=["value"],Q={class:"bg-white rounded-xl shadow-sm border border-slate-100"},W={class:"overflow-x-auto"},X={class:"table table-zebra"},Z={key:0},ee={key:1},te={class:"font-mono text-sm font-medium"},le={class:"text-sm"},se={class:"badge badge-ghost badge-sm"},oe={class:"badge badge-sm badge-outline"},ne=["title"],ae={class:"text-sm text-slate-400"},ie={key:0},de={key:1,class:"text-slate-300"},re={key:0,class:"badge badge-success badge-sm text-white"},ue={key:1,class:"badge badge-ghost badge-sm"},be={class:"text-right"},me={class:"inline-flex gap-1"},pe=["onClick"],ce=["onClick"],ve={class:"flex items-center gap-3 mb-5"},fe={class:"text-lg font-semibold text-slate-800"},ge={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-2xl"},xe={class:"grid grid-cols-2 gap-4"},ye={class:"form-control mb-4"},we=["readonly"],_e={class:"text-xs text-slate-400 mt-1"},he={class:"form-control mb-4"},ke={class:"form-control mb-4"},Ce=["value"],Me={class:"form-control mb-4"},Pe={class:"form-control mb-4"},Ve={class:"form-control mb-4"},Se={class:"form-control mb-4"},Ue={class:"form-control mb-6"},Te={class:"label cursor-pointer justify-start gap-3"},Le={class:"flex gap-3"},De=["disabled"],Ie=I({__name:"mcpconfig",setup(Ee){const f=[{value:1,label:"中国"},{value:2,label:"美国"},{value:3,label:"东亚"},{value:4,label:"东南亚"},{value:5,label:"南亚"},{value:6,label:"中东"},{value:7,label:"欧洲"},{value:8,label:"俄罗斯"},{value:9,label:"非洲"},{value:10,label:"南美"},{value:11,label:"北美"},{value:12,label:"大洋洲"},{value:13,label:"巴西"},{value:14,label:"印度"}];function L(o){const t=Number(o)||0,l=f.find(k=>k.value===t);return l?l.label:t===0?"通用":"区域"+t}const D={0:"HTTP",1:"SSE"};function E(o){const t=Number(o)||0;return D[t]||String(o??"HTTP")}const{webApi:g}=G(),{success:V,error:x,warn:N}=O(),p=u("list"),c=u([]),y=u(!1),w=u(!1),r=u(!1),m=u(0),_=u(""),s=z({id:"",name:"",region:1,type:0,url:"",tools:"",description:"",enable:!0}),S=R(()=>{const o=_.value.trim().toLowerCase();return o?c.value.filter(t=>((t.id||"")+(t.name||"")).toLowerCase().includes(o)):c.value});async function v(){y.value=!0;try{const o=await g("getmcpservers",{region:m.value});c.value=o?.servers??[]}catch(o){x(o?.message??"获取 MCP 服务失败"),c.value=[]}finally{y.value=!1}}function h(){p.value="list",v()}function U(o){o?(r.value=!0,s.id=o.id||"",s.name=o.name||"",s.region=o.region||1,s.type=o.type!=null?o.type:0,s.url=o.url||"",s.tools=o.tools||"",s.description=o.description||"",s.enable=!!o.enable):(r.value=!1,s.id="",s.name="",s.region=m.value>0?m.value:1,s.type=0,s.url="",s.tools="",s.description="",s.enable=!0),p.value="form"}async function $(){const o={id:s.id.trim(),name:s.name.trim(),region:Number(s.region)||0,type:Number(s.type)||0,url:s.url.trim(),tools:s.tools.trim(),description:s.description.trim(),enable:s.enable};if(!o.id){N("服务ID 必填");return}w.value=!0;try{await g(r.value?"updatemcpserver":"addmcpserver",o),V("保存成功"),h()}catch(t){x(t?.message??"保存失败")}finally{w.value=!1}}function F(o){window.confirm(`确定删除 MCP 服务 "${o}" 吗?`)&&g("delmcpserver",{ids:[o]}).then(()=>{V("删除成功"),v()}).catch(t=>x(t?.message??"删除失败"))}return A(v),(o,t)=>(i(),a("div",null,[n(e("div",null,[e("div",Y,[t[13]||(t[13]=e("div",null,[e("h2",{class:"text-lg font-semibold text-slate-800"},"MCP 配置"),e("p",{class:"text-xs text-slate-400 mt-1"},"MCP(模型上下文协议)服务器,按区域分组,所有应用共享。修改后各服务约 10 分钟内自动同步。")],-1)),e("button",{class:"btn btn-primary btn-sm text-white",onClick:t[0]||(t[0]=l=>U())},"+ 新增 MCP 服务")]),e("div",J,[t[15]||(t[15]=e("span",{class:"text-sm text-slate-500"},"区域筛选",-1)),n(e("select",{"onUpdate:modelValue":t[1]||(t[1]=l=>m.value=l),class:"select select-bordered select-sm",onChange:v},[t[14]||(t[14]=e("option",{value:0},"全部区域",-1)),(i(),a(C,null,M(f,l=>e("option",{key:l.value,value:l.value},d(l.label),9,K)),64))],544),[[P,m.value,void 0,{number:!0}]]),n(e("input",{"onUpdate:modelValue":t[2]||(t[2]=l=>_.value=l),class:"input input-bordered input-sm w-48",placeholder:"按ID/名称搜索"},null,512),[[b,_.value]])]),e("div",Q,[e("div",W,[e("table",X,[t[18]||(t[18]=e("thead",null,[e("tr",null,[e("th",null,"服务ID"),e("th",null,"名称"),e("th",null,"区域"),e("th",null,"类型"),e("th",null,"地址"),e("th",null,"工具"),e("th",null,"状态"),e("th",{class:"text-right"},"操作")])],-1)),e("tbody",null,[y.value?(i(),a("tr",Z,[...t[16]||(t[16]=[e("td",{colspan:"8",class:"text-center py-8"},[e("span",{class:"loading loading-spinner loading-sm"})],-1)])])):S.value.length?B("",!0):(i(),a("tr",ee,[...t[17]||(t[17]=[e("td",{colspan:"8",class:"text-center text-slate-400 py-8"},"暂无 MCP 服务",-1)])])),(i(!0),a(C,null,M(S.value,l=>(i(),a("tr",{key:l.id},[e("td",te,d(l.id||""),1),e("td",le,d(l.name||""),1),e("td",null,[e("span",se,d(L(l.region)),1)]),e("td",null,[e("span",oe,d(E(l.type)),1)]),e("td",{class:"text-sm text-slate-500 max-w-xs truncate",title:l.url||""},d(l.url||""),9,ne),e("td",ae,[l.tools&&l.tools.trim()?(i(),a("span",ie,d(l.tools),1)):(i(),a("span",de,"全部"))]),e("td",null,[l.enable?(i(),a("span",re,"启用")):(i(),a("span",ue,"停用"))]),e("td",be,[e("div",me,[e("button",{class:"btn btn-ghost btn-xs",onClick:k=>U(l)},"编辑",8,pe),e("button",{class:"btn btn-ghost btn-xs text-red-500",onClick:k=>F(l.id)},"删除",8,ce)])])]))),128))])])])])],512),[[T,p.value==="list"]]),n(e("div",null,[e("div",ve,[e("button",{class:"btn btn-ghost btn-sm",onClick:t[3]||(t[3]=l=>h())},"← 返回列表"),e("h2",fe,d(r.value?"编辑 MCP 服务":"新增 MCP 服务"),1)]),e("div",ge,[e("form",{onSubmit:j($,["prevent"])},[e("div",xe,[e("div",ye,[t[19]||(t[19]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"服务ID *")],-1)),n(e("input",{"onUpdate:modelValue":t[4]||(t[4]=l=>s.id=l),type:"text",class:H(["input input-bordered w-full",{"bg-slate-100":r.value}]),readonly:r.value,required:"",placeholder:"如 gaode_map"},null,10,we),[[b,s.id]]),e("span",_e,d(r.value?"编辑模式下不可修改":"唯一标识,创建后不可修改"),1)]),e("div",he,[t[20]||(t[20]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"名称")],-1)),n(e("input",{"onUpdate:modelValue":t[5]||(t[5]=l=>s.name=l),type:"text",class:"input input-bordered w-full"},null,512),[[b,s.name]])]),e("div",ke,[t[21]||(t[21]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"区域 *")],-1)),n(e("select",{"onUpdate:modelValue":t[6]||(t[6]=l=>s.region=l),class:"select select-bordered w-full"},[(i(),a(C,null,M(f,l=>e("option",{key:l.value,value:l.value},d(l.label),9,Ce)),64))],512),[[P,s.region,void 0,{number:!0}]])]),e("div",Me,[t[23]||(t[23]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"类型")],-1)),n(e("select",{"onUpdate:modelValue":t[7]||(t[7]=l=>s.type=l),class:"select select-bordered w-full"},[...t[22]||(t[22]=[e("option",{value:0},"HTTP",-1),e("option",{value:1},"SSE",-1)])],512),[[P,s.type,void 0,{number:!0}]])])]),e("div",Pe,[t[24]||(t[24]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"服务地址 (url)")],-1)),n(e("input",{"onUpdate:modelValue":t[8]||(t[8]=l=>s.url=l),type:"text",class:"input input-bordered w-full font-mono text-sm",placeholder:"https://..."},null,512),[[b,s.url]])]),e("div",Ve,[t[25]||(t[25]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"启用工具 (tools)")],-1)),n(e("input",{"onUpdate:modelValue":t[9]||(t[9]=l=>s.tools=l),type:"text",class:"input input-bordered w-full",placeholder:"逗号分隔,留空表示全部启用"},null,512),[[b,s.tools]])]),e("div",Se,[t[26]||(t[26]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"描述")],-1)),n(e("input",{"onUpdate:modelValue":t[10]||(t[10]=l=>s.description=l),type:"text",class:"input input-bordered w-full"},null,512),[[b,s.description]])]),e("div",Ue,[e("label",Te,[n(e("input",{"onUpdate:modelValue":t[11]||(t[11]=l=>s.enable=l),type:"checkbox",class:"toggle toggle-primary"},null,512),[[q,s.enable]]),t[27]||(t[27]=e("span",{class:"label-text font-medium"},"启用该服务",-1))])]),e("div",Le,[e("button",{type:"button",class:"btn btn-ghost",onClick:t[12]||(t[12]=l=>h())},"取消"),e("button",{type:"submit",class:"btn btn-primary text-white",disabled:w.value},"保存",8,De)])],32)])],512),[[T,p.value==="form"]])]))}});export{Ie as default}; diff --git a/apps/admin/.output/public/_nuxt/BIBu1qhq.js b/apps/admin/.output/public/_nuxt/BIBu1qhq.js new file mode 100644 index 00000000..52f03bd7 --- /dev/null +++ b/apps/admin/.output/public/_nuxt/BIBu1qhq.js @@ -0,0 +1 @@ +import{g as Z,C as $,j as ee,c as l,a as e,k as v,p as j,l as D,F as y,r as h,m as w,I as te,D as se,t as i,d as B,s as u,A as _,x as ne,o}from"./CTAruH_8.js";import{u as le}from"./9B2ftqmN.js";import{u as oe}from"./lLLegusN.js";import"./D9HxoMhB.js";import"./yUUyh6cG.js";const ae={class:"space-y-6"},ie={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-4"},re={class:"flex items-end gap-3 flex-wrap"},de={class:"form-control"},ue={key:0,value:""},ce=["value"],pe={class:"form-control"},me={key:0,value:""},ve=["value"],be={class:"form-control"},fe=["onKeydown"],xe={key:0,class:"bg-white rounded-xl shadow-sm border border-slate-100 p-12 text-center text-slate-400"},ge={key:1,class:"space-y-5"},ye={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-5 flex items-center gap-4"},he=["src"],we={key:1,class:"w-14 h-14 rounded-full bg-indigo-100 text-indigo-600 flex items-center justify-center text-xl font-bold"},_e={class:"text-lg font-semibold text-slate-800"},ke={class:"text-xs text-slate-400 font-mono mt-0.5"},Ie={class:"ml-auto flex items-center gap-3"},Ae={class:"badge badge-primary badge-outline"},Ue={class:"px-5 py-3 border-b border-slate-50 text-sm font-semibold text-slate-700"},Ve={class:"px-5 py-3 grid grid-cols-1 md:grid-cols-2 gap-x-8"},Ce={class:"text-xs text-slate-400 shrink-0"},De={class:"text-sm text-slate-700 break-all text-right"},Ne={class:"modal-box max-w-md"},Me={class:"text-xs text-slate-400 mb-4"},Se={class:"font-mono text-slate-600"},Ge={class:"grid grid-cols-3 gap-3"},Pe={class:"form-control"},je={class:"form-control"},Be={class:"form-control"},Re=Z({__name:"users",setup(Te){const{webApi:N,consoleApi:T}=le(),{success:q,error:M,warn:c}=oe(),b=$(),E={cn:"中国",us:"美国",hw:"海外",ea:"东亚",sea:"东南亚",sa:"南亚",me:"中东",eu:"欧洲",ru:"俄罗斯",af:"非洲",sam:"南美",nam:"北美",oc:"大洋洲",br:"巴西",in:"印度"};function F(s){return E[s]||s||"默认"}const f=u([]),p=u(""),m=u(""),k=u(""),r=u(null),S=u("请输入查询条件后点击「搜索」"),I=u(""),x=u(""),K=_(()=>[1,2,3].includes(b.identity)),g=u(null),a=ne({vipday:0,trademin:0,meetmin:0}),A=_(()=>{const s=[];return f.value.forEach(t=>{s.includes(t.name)||s.push(t.name)}),s}),U=_(()=>f.value.filter(s=>s.name===p.value));function G(){const s=U.value;m.value=s.length?s[0].id:""}function L(s){return s?new Date(s*1e3).toLocaleString():"-"}function R(s){return s?"是":"否"}function H(s){return s===1?"男":s===2?"女":"未知"}function V(s){return s==null||s===""?"-":s}const O=[{title:"基本信息",rows:[["uid","UID"],["name","用户名"],["account","登录账号"],["mail","邮箱"],["phone","手机号"],["gender","性别","gender"],["language","语言"],["version","版本"],["channel","渠道"],["State","状态"],["country_code","国家码"],["continent_code","大洲码"],["servicetag","服务区"],["phonemodel","手机型号"],["phonemac","设备ID"]]},{title:"第三方登录",rows:[["wxopenid","微信 openid"],["googleopenid","Google openid"],["facebookopenid","Facebook openid"],["appleopenid","Apple openid"]]},{title:"会员与积分",rows:[["viplv","VIP等级"],["vipexptime","VIP到期","ts"],["aichatintegral","AI积分"],["aichattotalintegral","AI累计积分"],["tradeintegral","翻译积分"],["tradetotalintegral","翻译累计积分"],["meetintegral","会议积分"],["meettotalintegral","会议累计积分"],["lastbindproductid","最后绑定产品ID"],["isactivatecode","已领激活码","bool"],["isgiveaway","首次绑定赠送","bool"]]},{title:"时间",rows:[["createtime","注册时间","ts"],["lastsgintime","最后登录","ts"],["canceltime","注销时间","ts"]]}];function z(s,t){const n=t[2],d=s[t[0]];return n==="ts"?L(d):n==="bool"?R(d):n==="gender"?H(d):V(d)}const J=_(()=>{const s=r.value;return s?String(s.name||s.uid||"?").charAt(0).toUpperCase():"?"});async function C(){if(!p.value){c("请选择应用");return}if(!m.value){c("请选择区域");return}const s=k.value.trim();if(!s){c("请输入用户UID");return}const t=Number(m.value);I.value=t,x.value=s,b.setCurrentApp(t);try{const n=await N("getuserinfo",{uid:s});r.value=n||{}}catch(n){M(n?.message||"查询失败"),r.value=null,S.value=n?.message||"未找到该用户"}}function Q(){if(!x.value){c("请先查询用户");return}a.vipday=0,a.trademin=0,a.meetmin=0,g.value?.showModal()}function W(){g.value?.close()}async function X(){const s=Number(a.vipday)||0,t=Number(a.trademin)||0,n=Number(a.meetmin)||0;if(s<0||t<0||n<0){c("数量不能为负");return}if(!s&&!t&&!n){c("请至少填写一项");return}if(!I.value||!x.value){c("请先查询用户");return}b.setCurrentApp(Number(I.value));try{await N("giftuserresource",{uid:x.value,vipday:s,trademin:t,meetmin:n}),q("赠送成功"),g.value?.close(),C()}catch(d){M(d?.message||"赠送失败")}}function P(){const s=A.value;if(!s.length){p.value="",m.value="";return}p.value=s[0],G()}async function Y(){if(b.identity===3){f.value=(b.appbinds||[]).map(s=>({id:s.id,name:s.name,region:s.region,enabled:!0})),P();return}try{const s=await T("apps/list",{});f.value=(s||[]).filter(t=>t.enabled)}catch{f.value=[]}P()}return ee(Y),(s,t)=>(o(),l("div",ae,[e("div",ie,[e("div",re,[e("div",de,[t[6]||(t[6]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"应用")],-1)),v(e("select",{"onUpdate:modelValue":t[0]||(t[0]=n=>p.value=n),class:"select select-bordered select-sm",style:{"min-width":"180px"},onChange:G},[A.value.length?D("",!0):(o(),l("option",ue,"无可用应用")),(o(!0),l(y,null,h(A.value,n=>(o(),l("option",{key:n,value:n},i(n),9,ce))),128))],544),[[j,p.value]])]),e("div",pe,[t[7]||(t[7]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"区域")],-1)),v(e("select",{"onUpdate:modelValue":t[1]||(t[1]=n=>m.value=n),class:"select select-bordered select-sm",style:{"min-width":"140px"}},[U.value.length?D("",!0):(o(),l("option",me,"无可用区域")),(o(!0),l(y,null,h(U.value,n=>(o(),l("option",{key:n.id,value:n.id},i(F(n.region)),9,ve))),128))],512),[[j,m.value]])]),e("div",be,[t[8]||(t[8]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"用户UID")],-1)),v(e("input",{"onUpdate:modelValue":t[2]||(t[2]=n=>k.value=n),type:"text",class:"input input-bordered input-sm",style:{"min-width":"240px"},placeholder:"输入用户 UID",onKeydown:te(se(C,["prevent"]),["enter"])},null,40,fe),[[w,k.value]])]),e("button",{class:"btn btn-primary btn-sm text-white",onClick:C},"搜索")]),t[9]||(t[9]=e("p",{class:"text-xs text-slate-400 mt-2"},"选择应用与区域后输入 UID,直接查询该部署业务库中的用户信息。",-1))]),r.value?(o(),l("div",ge,[e("div",ye,[r.value.avatar?(o(),l("img",{key:0,src:r.value.avatar,class:"w-14 h-14 rounded-full object-cover border border-slate-100"},null,8,he)):(o(),l("div",we,i(J.value),1)),e("div",null,[e("div",_e,i(V(r.value.name)),1),e("div",ke,i(V(r.value.uid)),1)]),e("div",Ie,[e("span",Ae,"VIP "+i(r.value.viplv||0),1),K.value?(o(),l("button",{key:0,class:"btn btn-success btn-sm text-white",onClick:Q},"赠送资源点")):D("",!0)])]),(o(),l(y,null,h(O,n=>e("div",{key:n.title,class:"bg-white rounded-xl shadow-sm border border-slate-100 overflow-hidden"},[e("div",Ue,i(n.title),1),e("div",Ve,[(o(!0),l(y,null,h(n.rows,d=>(o(),l("div",{key:d[0],class:"flex justify-between gap-3 py-1.5 border-b border-slate-50"},[e("span",Ce,i(d[1]),1),e("span",De,i(z(r.value,d)),1)]))),128))])])),64))])):(o(),l("div",xe,i(S.value),1)),e("dialog",{ref_key:"giftModal",ref:g,class:"modal"},[e("div",Ne,[t[15]||(t[15]=e("h3",{class:"font-bold text-lg mb-1 text-slate-800"},"赠送资源点",-1)),e("p",Me,[t[10]||(t[10]=B("目标用户 UID:",-1)),e("span",Se,i(x.value),1),t[11]||(t[11]=B("。代理账号将从自己的资源点余额中扣减,超管/管理员无消耗。",-1))]),e("div",Ge,[e("div",Pe,[t[12]||(t[12]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-sm"},"VIP天数")],-1)),v(e("input",{"onUpdate:modelValue":t[3]||(t[3]=n=>a.vipday=n),type:"number",class:"input input-bordered",min:"0"},null,512),[[w,a.vipday,void 0,{number:!0}]])]),e("div",je,[t[13]||(t[13]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-sm"},"翻译分钟")],-1)),v(e("input",{"onUpdate:modelValue":t[4]||(t[4]=n=>a.trademin=n),type:"number",class:"input input-bordered",min:"0"},null,512),[[w,a.trademin,void 0,{number:!0}]])]),e("div",Be,[t[14]||(t[14]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-sm"},"会议分钟")],-1)),v(e("input",{"onUpdate:modelValue":t[5]||(t[5]=n=>a.meetmin=n),type:"number",class:"input input-bordered",min:"0"},null,512),[[w,a.meetmin,void 0,{number:!0}]])])]),e("div",{class:"modal-action"},[e("button",{class:"btn btn-sm",onClick:W},"取消"),e("button",{class:"btn btn-success btn-sm text-white",onClick:X},"确认赠送")])]),t[16]||(t[16]=e("form",{method:"dialog",class:"modal-backdrop"},[e("button",null,"close")],-1))],512)]))}});export{Re as default}; diff --git a/apps/admin/.output/public/_nuxt/BL6E8nSe.js b/apps/admin/.output/public/_nuxt/BL6E8nSe.js deleted file mode 100644 index f6960318..00000000 --- a/apps/admin/.output/public/_nuxt/BL6E8nSe.js +++ /dev/null @@ -1 +0,0 @@ -import{g as xe,j as me,c as n,l as A,a as e,k as r,p as he,F as v,r as y,v as te,D as w,t as u,m as x,q as S,d as le,s as p,x as ye,C as se,o,n as z,G as B,A as fe,_ as _e}from"./96IDI_OR.js";import{u as ge}from"./Do83zqYq.js";import{u as ke}from"./CVUxyiJx.js";const we={key:0,class:"mb-4 rounded-lg px-4 py-3 text-sm",style:{background:"#fffbeb",border:"1px solid #fde68a",color:"#92400e"}},Ce={class:"flex items-center justify-between mb-5"},Ve={class:"flex items-center gap-3"},Se=["value"],Ue={class:"flex gap-4",style:{"align-items":"flex-start"}},Te={style:{width:"248px","flex-shrink":"0"}},Me={class:"flex flex-col gap-2"},De=["onClick"],Ae={style:{"min-width":"0",flex:"1"}},$e={class:"flex items-center gap-2"},je={class:"font-semibold text-slate-800 text-sm truncate"},Le={class:"flex flex-wrap gap-1 mt-1"},Ne={key:0,class:"lock-badge"},Oe={key:0,class:"text-xs text-slate-400 text-center py-8"},Re={class:"flex-1 min-w-0"},Fe={class:"bg-white rounded-2xl border border-slate-100 shadow-sm p-6"},Ie={key:0,class:"text-center text-slate-300 py-20"},ze={class:"flex items-center justify-between mb-5"},Be={class:"flex items-center gap-3"},Ee={class:"text-base font-semibold text-slate-800"},He={class:"text-xs text-slate-400 mt-0.5"},Ge={class:"flex gap-2"},Je={class:"grid grid-cols-2 gap-4 mb-4"},qe={class:"form-control"},Ke={class:"form-control"},Pe={class:"form-control mb-4"},Qe={class:"mb-4"},We={class:"flex flex-wrap gap-3"},Xe=["value"],Ye={class:"text-xs text-slate-600"},Ze={key:0,class:"text-xs text-slate-400 py-4 text-center"},et={key:1,class:"overflow-x-auto"},tt={class:"table text-xs"},lt=["onUpdate:modelValue"],st=["onUpdate:modelValue"],nt={class:"text-center"},ot=["onUpdate:modelValue"],at={class:"relative"},it=["type","onUpdate:modelValue"],dt=["onClick"],ct=["onUpdate:modelValue"],ut=["onClick"],rt={class:"flex items-center justify-between mb-5"},vt={class:"flex gap-2"},pt={class:"grid grid-cols-2 gap-4 mb-4"},bt={class:"form-control"},xt={class:"form-control"},mt={class:"form-control mb-4"},ht={class:"mb-4"},yt={class:"flex flex-wrap gap-3"},ft=["value"],_t={class:"text-xs text-slate-600"},gt={key:0,class:"text-xs text-slate-400 py-4 text-center"},kt={key:1,class:"overflow-x-auto"},wt={class:"table text-xs"},Ct=["onUpdate:modelValue"],Vt=["onUpdate:modelValue"],St={class:"text-center"},Ut=["onUpdate:modelValue"],Tt={class:"relative"},Mt=["type","onUpdate:modelValue"],Dt=["onClick"],At=["onUpdate:modelValue"],$t=["onClick"],jt={key:0,class:"text-center py-10 text-slate-400"},Lt={class:"flex items-center justify-between mb-5"},Nt={class:"flex items-center gap-3"},Ot={class:"text-base font-semibold text-slate-800"},Rt={class:"badge badge-warning badge-sm mt-0.5"},Ft={class:"rounded-lg px-3 py-2 mb-4 text-xs",style:{background:"#fefce8",border:"1px solid #fde047",color:"#854d0e"}},It={class:"overflow-x-auto"},zt={class:"table text-xs"},Bt={class:"font-mono text-slate-700"},Et={class:"text-slate-500"},Ht={class:"text-center"},Gt={key:0,class:"override-badge"},Jt={key:1,class:"inherit-badge"},qt={class:"relative"},Kt=["type","onUpdate:modelValue"],Pt=["onClick"],Qt=["onUpdate:modelValue","placeholder"],Wt={class:"sync-overlay"},Xt={class:"sync-box"},Yt={class:"flex items-start gap-3 mb-4"},Zt={style:{width:"42px",height:"42px",background:"linear-gradient(135deg,#4f46e5,#7c3aed)","border-radius":"13px",display:"flex","align-items":"center","justify-content":"center","flex-shrink":"0"}},el={style:{width:"20px",height:"20px",color:"#fff"},fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},tl={class:"text-xs text-slate-400 mt-1"},ll=["innerHTML"],sl={class:"flex items-center justify-between mb-1"},nl={class:"flex gap-2"},ol={class:"sync-region-grid"},al=["onClick"],il=["checked","onClick"],dl=xe({__name:"serviceconfig",setup(cl){const U=[{value:1,label:"中国"},{value:2,label:"美国"},{value:3,label:"东亚"},{value:4,label:"东南亚"},{value:5,label:"南亚"},{value:6,label:"中东"},{value:7,label:"欧洲"},{value:8,label:"俄罗斯"},{value:9,label:"非洲"},{value:10,label:"南美"},{value:11,label:"北美"},{value:12,label:"大洋洲"},{value:13,label:"巴西"},{value:14,label:"印度"}],$=[{v:1,label:"STT 语音识别",short:"STT",color:"#0369a1",bg:"#dbeafe"},{v:2,label:"TTS 语音合成",short:"TTS",color:"#7c3aed",bg:"#ede9fe"},{v:3,label:"MT 机器翻译",short:"MT",color:"#059669",bg:"#dcfce7"},{v:4,label:"AST 端到端",short:"AST",color:"#c2410c",bg:"#fff7ed"},{v:5,label:"LLM 大语言",short:"LLM",color:"#b45309",bg:"#fef9c3"},{v:6,label:"存储 OSS/COS",short:"存储",color:"#475569",bg:"#f1f5f9"}],{webApi:g}=ge(),{success:T,error:k}=ke();function j(s){return $.find(l=>l.v===s)||{short:"?",color:"#999",bg:"#eee",v:0,label:""}}function E(s){return(s||"").split(",").map(l=>parseInt(l)||0).filter(l=>l>0)}function H(s){return(s.fields||[]).filter(l=>l.encrypted).length}const L=p(!0),C=p([]),a=p(null),b=p(0),m=p("empty"),c=ye({id:"",name:"",description:"",enable:!1}),_=p([]),h=p([]),M=p([]),N=p(!1),G=se(()=>{const s=U.find(l=>l.value===b.value);return s?s.label:"区域"+b.value});async function O(){try{const s=await g("getsvcconfigs",{});C.value=s?.items??[],L.value=!0}catch{L.value=!1,C.value=[];return}if(a.value){const s=C.value.find(l=>l.id===a.value.id);s&&D(s)}}function ne(){a.value?D(a.value):m.value!=="new"&&(m.value="empty")}function D(s){s&&(a.value=s,b.value===0?oe():de())}function oe(){const s=a.value;c.id=s.id,c.name=s.name||"",c.description=s.description||"",c.enable=!!s.enable,_.value=E(s.categories),h.value=JSON.parse(JSON.stringify(s.fields||[])).map(l=>({...l,_show:!1})),m.value="default"}function ae(){a.value=null,c.id="",c.name="",c.description="",c.enable=!1,_.value=[],h.value=[],m.value="new"}function ie(){a.value?D(a.value):m.value="empty"}function J(){h.value.push({key:"",description:"",encrypted:!1,def_value:"",sort:h.value.length,_show:!1})}function q(s){h.value.splice(s,1),h.value.forEach((l,t)=>{l.sort=t})}async function de(){const s=a.value;N.value=!0,m.value="region";try{const t=(await g("getsvcregionoverride",{svc_id:s.id,region:b.value}))?.fields??[];M.value=t.map(d=>({...d,_input:d.encrypted?"":d.is_overridden&&d.value||"",_show:!1}))}catch(l){k(l?.message??"加载区域覆盖失败"),M.value=[]}finally{N.value=!1}}function ce(s){const l={name:c.name||"",description:c.description||"",categories:_.value.slice().sort((t,d)=>t-d).join(","),enable:c.enable||!1,fields:h.value.map(t=>({key:t.key,description:t.description,encrypted:t.encrypted,def_value:t.def_value,sort:t.sort}))};return s?l.id=c.id||"":l.id=a.value.id,l}function ue(){const s={};return M.value.forEach(l=>{s[l.key]=l._input||""}),s}async function K(s){const l=s||!a.value;if(b.value===0){const t=ce(l);if(!t.id||!t.name)return k("服务ID 和名称 必填"),!1;const d=l?"addsvcconfig":"updatesvcconfig";try{const i=await g(d,t);return a.value=i,await O(),T("保存成功"),!0}catch(i){return k(i?.message??"保存失败"),!1}}else{const t=ue();try{return await g("savesvcregionoverride",{svc_id:a.value.id,region:b.value,overrides:t}),T("区域覆盖已保存"),!0}catch(d){return k(d?.message??"保存失败"),!1}}}async function re(){if(a.value&&window.confirm("确定删除服务「"+a.value.name+"」及其所有区域覆盖?")){try{await g("delsvcconfig",{id:a.value.id})}catch(s){k(s?.message??"删除失败");return}a.value=null,T("已删除"),await O(),m.value="empty"}}const R=p(!1),F=p(!1),P=p(""),Q=p(""),f=p([]),W=se(()=>U.filter(s=>s.value!==b.value));function I(s){F.value=s;const l=a.value?a.value.name:c.name||"新服务",t=b.value===0;P.value=t?"「"+l+"」默认配置将保存,可同步推送到其他区域。":"「"+l+"」在当前区域的字段覆盖将保存,可同步到其他区域。",Q.value=t?"✦ 同步内容:各字段默认值推送为目标区域「覆盖值」,目标区域原有覆盖值将被替换。":"✦ 同步内容:当前区域的字段覆盖值复制到目标区域。",f.value=[],R.value=!0}function X(s){const l=f.value.indexOf(s);l>=0?f.value.splice(l,1):f.value.push(s)}function Y(s){f.value=s?W.value.map(l=>l.value):[]}function Z(){R.value=!1}async function ve(){Z(),await K(F.value)}async function pe(){const s=f.value.slice();if(Z(),!await K(F.value)||!s.length)return;const t=a.value?a.value.id:null;if(!t)return;let d=0;try{d=(await g("syncsvctoregins",{svc_id:t,src_region:b.value,target_regions:s}))?.synced??0}catch(V){k(V?.message??"同步失败");return}const i=s.map(V=>{const ee=U.find(be=>be.value===V);return ee?ee.label:"区域"+V});T("已保存并同步到:"+i.join("、")+"("+d+" 个)")}return me(O),(s,l)=>(o(),n("div",null,[L.value?A("",!0):(o(),n("div",we," ⚠ 「依赖服务配置」的后端接口尚未迁移到当前 console 服务,功能暂不可用。 ")),e("div",Ce,[l[15]||(l[15]=e("div",null,[e("h2",{class:"text-lg font-semibold text-slate-800"},"依赖服务配置"),e("p",{class:"text-xs text-slate-400 mt-1"},"配置火山引擎、阿里云等第三方服务;字段支持加密存储。默认配置全区域共用,可按区域覆盖字段值。")],-1)),e("div",Ve,[r(e("select",{"onUpdate:modelValue":l[0]||(l[0]=t=>b.value=t),class:"select select-bordered select-sm",onChange:ne},[l[14]||(l[14]=e("option",{value:0},"默认(全区域)",-1)),(o(),n(v,null,y(U,t=>e("option",{key:t.value,value:t.value},u(t.label),9,Se)),64))],544),[[he,b.value,void 0,{number:!0}]]),r(e("button",{class:"btn btn-primary btn-sm text-white",onClick:ae},"+ 新增服务",512),[[te,b.value===0]])])]),e("div",Ue,[e("div",Te,[e("div",Me,[(o(!0),n(v,null,y(C.value,t=>(o(),n("div",{key:t.id,class:z(["svc-item",{active:a.value&&a.value.id===t.id}]),onClick:d=>D(t)},[e("div",{class:"svc-logo",style:w({background:t.color||"#6366f1"})},u(t.icon||(t.name||"").charAt(0)),5),e("div",Ae,[e("div",$e,[e("span",je,u(t.name),1),e("span",{class:z(["badge badge-xs",t.enable?"badge-success":"badge-ghost"])},u(t.enable?"启用":"停用"),3)]),e("div",Le,[(o(!0),n(v,null,y(E(t.categories),d=>(o(),n("span",{key:d,class:"cat-chip",style:w({color:j(d).color,background:j(d).bg})},u(j(d).short),5))),128)),H(t)?(o(),n("span",Ne,"🔒"+u(H(t)),1)):A("",!0)])])],10,De))),128)),C.value.length?A("",!0):(o(),n("p",Oe,"暂无服务"))])]),e("div",Re,[e("div",Fe,[m.value==="empty"?(o(),n("div",Ie,[...l[16]||(l[16]=[e("div",{class:"text-5xl mb-3"},"⚙️",-1),e("p",{class:"text-sm"},"从左侧选择一个服务开始配置",-1)])])):m.value==="default"&&a.value?(o(),n(v,{key:1},[e("div",ze,[e("div",Be,[e("div",{class:"svc-logo",style:w({background:a.value.color||"#6366f1",width:"44px",height:"44px",fontSize:"20px"})},u(a.value.icon||(a.value.name||"").charAt(0)),5),e("div",null,[e("h3",Ee,u(a.value.name),1),e("p",He,u(a.value.id),1)])]),e("div",Ge,[e("button",{class:"btn btn-error btn-sm btn-outline",onClick:re},"删除服务"),e("button",{class:"btn btn-primary btn-sm text-white",onClick:l[1]||(l[1]=t=>I(!1))},"保存")])]),l[23]||(l[23]=e("div",{class:"divider text-xs text-slate-400 my-3"},"基本信息",-1)),e("div",Je,[e("div",qe,[l[17]||(l[17]=e("label",{class:"label"},[e("span",{class:"label-text"},"服务名称 *")],-1)),r(e("input",{"onUpdate:modelValue":l[2]||(l[2]=t=>c.name=t),class:"input input-bordered"},null,512),[[x,c.name]])]),e("div",Ke,[l[18]||(l[18]=e("label",{class:"label"},[e("span",{class:"label-text"},"启用")],-1)),r(e("input",{"onUpdate:modelValue":l[3]||(l[3]=t=>c.enable=t),type:"checkbox",class:"toggle toggle-primary mt-3"},null,512),[[S,c.enable]])])]),e("div",Pe,[l[19]||(l[19]=e("label",{class:"label"},[e("span",{class:"label-text"},"服务描述")],-1)),r(e("input",{"onUpdate:modelValue":l[4]||(l[4]=t=>c.description=t),class:"input input-bordered"},null,512),[[x,c.description]])]),e("div",Qe,[l[20]||(l[20]=e("p",{class:"text-sm font-medium text-slate-700 mb-2"},[le("服务类别 "),e("span",{class:"text-slate-400 text-xs"},"(可多选)")],-1)),e("div",We,[(o(),n(v,null,y($,t=>e("label",{key:t.v,class:"flex items-center gap-2 cursor-pointer"},[r(e("input",{type:"checkbox",class:"checkbox checkbox-sm checkbox-primary",value:t.v,"onUpdate:modelValue":l[5]||(l[5]=d=>_.value=d)},null,8,Xe),[[S,_.value]]),e("span",{class:"cat-chip",style:w({color:t.color,background:t.bg})},u(t.short),5),e("span",Ye,u(t.label),1)])),64))])]),l[24]||(l[24]=e("div",{class:"divider text-xs text-slate-400 my-3"},"自定义字段",-1)),e("div",null,[h.value.length?(o(),n("div",et,[e("table",tt,[l[22]||(l[22]=e("thead",null,[e("tr",null,[e("th",{class:"w-32"},"字段名"),e("th",null,"字段描述"),e("th",{class:"w-16 text-center"},"加密"),e("th",null,"默认值"),e("th",{class:"w-12"})])],-1)),e("tbody",null,[(o(!0),n(v,null,y(h.value,(t,d)=>(o(),n("tr",{key:d},[e("td",null,[r(e("input",{class:"field-input","onUpdate:modelValue":i=>t.key=i,placeholder:"key"},null,8,lt),[[x,t.key]])]),e("td",null,[r(e("input",{class:"field-input","onUpdate:modelValue":i=>t.description=i,placeholder:"用途描述"},null,8,st),[[x,t.description]])]),e("td",nt,[r(e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary","onUpdate:modelValue":i=>t.encrypted=i},null,8,ot),[[S,t.encrypted]])]),e("td",null,[t.encrypted?(o(),n(v,{key:0},[e("div",at,[r(e("input",{type:t._show?"text":"password",class:"field-input pr-14","onUpdate:modelValue":i=>t.def_value=i,placeholder:"留空保留原值"},null,8,it),[[B,t.def_value]]),e("button",{type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-400 hover:text-slate-700",onClick:i=>t._show=!t._show},u(t._show?"隐藏":"显示"),9,dt)]),l[21]||(l[21]=e("span",{class:"lock-badge ml-1"},"🔒 加密",-1))],64)):r((o(),n("input",{key:1,class:"field-input","onUpdate:modelValue":i=>t.def_value=i},null,8,ct)),[[x,t.def_value]])]),e("td",null,[e("button",{class:"btn btn-ghost btn-xs text-error",onClick:i=>q(d)},"×",8,ut)])]))),128))])])])):(o(),n("p",Ze,"尚无自定义字段,点击下方添加")),e("button",{class:"btn btn-ghost btn-sm mt-2 text-primary",onClick:J},"+ 添加字段")])],64)):m.value==="new"?(o(),n(v,{key:2},[e("div",rt,[l[25]||(l[25]=e("h3",{class:"text-base font-semibold text-slate-800"},"新增依赖服务",-1)),e("div",vt,[e("button",{class:"btn btn-ghost btn-sm",onClick:ie},"取消"),e("button",{class:"btn btn-primary btn-sm text-white",onClick:l[6]||(l[6]=t=>I(!0))},"创建")])]),l[32]||(l[32]=e("div",{class:"divider text-xs text-slate-400 my-3"},"基本信息",-1)),e("div",pt,[e("div",bt,[l[26]||(l[26]=e("label",{class:"label"},[e("span",{class:"label-text"},[le("服务ID * "),e("span",{class:"text-slate-400 text-xs"},"(唯一,如 volcengine)")])],-1)),r(e("input",{"onUpdate:modelValue":l[7]||(l[7]=t=>c.id=t),class:"input input-bordered font-mono",placeholder:"volcengine"},null,512),[[x,c.id]])]),e("div",xt,[l[27]||(l[27]=e("label",{class:"label"},[e("span",{class:"label-text"},"服务名称 *")],-1)),r(e("input",{"onUpdate:modelValue":l[8]||(l[8]=t=>c.name=t),class:"input input-bordered",placeholder:"火山引擎"},null,512),[[x,c.name]])])]),e("div",mt,[l[28]||(l[28]=e("label",{class:"label"},[e("span",{class:"label-text"},"服务描述")],-1)),r(e("input",{"onUpdate:modelValue":l[9]||(l[9]=t=>c.description=t),class:"input input-bordered",placeholder:"简述该服务的用途"},null,512),[[x,c.description]])]),e("div",ht,[l[29]||(l[29]=e("p",{class:"text-sm font-medium text-slate-700 mb-2"},"服务类别",-1)),e("div",yt,[(o(),n(v,null,y($,t=>e("label",{key:t.v,class:"flex items-center gap-2 cursor-pointer"},[r(e("input",{type:"checkbox",class:"checkbox checkbox-sm checkbox-primary",value:t.v,"onUpdate:modelValue":l[10]||(l[10]=d=>_.value=d)},null,8,ft),[[S,_.value]]),e("span",{class:"cat-chip",style:w({color:t.color,background:t.bg})},u(t.short),5),e("span",_t,u(t.label),1)])),64))])]),l[33]||(l[33]=e("div",{class:"divider text-xs text-slate-400 my-3"},"自定义字段",-1)),e("div",null,[h.value.length?(o(),n("div",kt,[e("table",wt,[l[31]||(l[31]=e("thead",null,[e("tr",null,[e("th",{class:"w-32"},"字段名"),e("th",null,"字段描述"),e("th",{class:"w-16 text-center"},"加密"),e("th",null,"默认值"),e("th",{class:"w-12"})])],-1)),e("tbody",null,[(o(!0),n(v,null,y(h.value,(t,d)=>(o(),n("tr",{key:d},[e("td",null,[r(e("input",{class:"field-input","onUpdate:modelValue":i=>t.key=i,placeholder:"key"},null,8,Ct),[[x,t.key]])]),e("td",null,[r(e("input",{class:"field-input","onUpdate:modelValue":i=>t.description=i,placeholder:"用途描述"},null,8,Vt),[[x,t.description]])]),e("td",St,[r(e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary","onUpdate:modelValue":i=>t.encrypted=i},null,8,Ut),[[S,t.encrypted]])]),e("td",null,[t.encrypted?(o(),n(v,{key:0},[e("div",Tt,[r(e("input",{type:t._show?"text":"password",class:"field-input pr-14","onUpdate:modelValue":i=>t.def_value=i,placeholder:"留空保留原值"},null,8,Mt),[[B,t.def_value]]),e("button",{type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-400 hover:text-slate-700",onClick:i=>t._show=!t._show},u(t._show?"隐藏":"显示"),9,Dt)]),l[30]||(l[30]=e("span",{class:"lock-badge ml-1"},"🔒 加密",-1))],64)):r((o(),n("input",{key:1,class:"field-input","onUpdate:modelValue":i=>t.def_value=i},null,8,At)),[[x,t.def_value]])]),e("td",null,[e("button",{class:"btn btn-ghost btn-xs text-error",onClick:i=>q(d)},"×",8,$t)])]))),128))])])])):(o(),n("p",gt,"尚无自定义字段,点击下方添加")),e("button",{class:"btn btn-ghost btn-sm mt-2 text-primary",onClick:J},"+ 添加字段")])],64)):m.value==="region"&&a.value?(o(),n(v,{key:3},[N.value?(o(),n("div",jt,"加载中...")):(o(),n(v,{key:1},[e("div",Lt,[e("div",Nt,[e("div",{class:"svc-logo",style:w({background:a.value.color||"#6366f1",width:"44px",height:"44px",fontSize:"20px"})},u(a.value.icon||(a.value.name||"").charAt(0)),5),e("div",null,[e("h3",Ot,u(a.value.name),1),e("span",Rt,u(G.value)+" 覆盖模式",1)])]),e("button",{class:"btn btn-primary btn-sm text-white",onClick:l[11]||(l[11]=t=>I(!1))},"保存覆盖")]),e("div",Ft," ✦ 当前编辑「"+u(G.value)+"」的字段覆盖值。留空的字段将继承默认值。加密字段留空保留已存储密文。 ",1),e("div",It,[e("table",zt,[l[35]||(l[35]=e("thead",null,[e("tr",null,[e("th",{class:"w-32"},"字段名"),e("th",null,"字段描述"),e("th",{class:"w-24 text-center"},"状态"),e("th",null,"有效值")])],-1)),e("tbody",null,[(o(!0),n(v,null,y(M.value,(t,d)=>(o(),n("tr",{key:d},[e("td",Bt,u(t.key),1),e("td",Et,u(t.description),1),e("td",Ht,[t.is_overridden?(o(),n("span",Gt,"覆盖")):(o(),n("span",Jt,"继承"))]),e("td",null,[t.encrypted?(o(),n(v,{key:0},[e("div",qt,[r(e("input",{type:t._show?"text":"password",class:"field-input pr-14","onUpdate:modelValue":i=>t._input=i,placeholder:"留空继承默认"},null,8,Kt),[[B,t._input]]),e("button",{type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-400 hover:text-slate-700",onClick:i=>t._show=!t._show},u(t._show?"隐藏":"显示"),9,Pt)]),l[34]||(l[34]=e("span",{class:"lock-badge ml-1"},"🔒",-1))],64)):r((o(),n("input",{key:1,class:"field-input","onUpdate:modelValue":i=>t._input=i,placeholder:"留空继承:"+(t.value||"")},null,8,Qt)),[[x,t._input]])])]))),128))])])])],64))],64)):A("",!0)])])]),r(e("div",Wt,[e("div",Xt,[e("div",Yt,[e("div",Zt,[(o(),n("svg",el,[...l[36]||(l[36]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"},null,-1)])]))]),e("div",null,[l[37]||(l[37]=e("h3",{class:"text-base font-semibold text-slate-800"},"同步到其他区域",-1)),e("p",tl,u(P.value),1)])]),e("div",{class:"text-xs px-3 py-2 rounded-lg mb-3",style:{background:"#f0fdf4",border:"1px solid #bbf7d0",color:"#15803d"},innerHTML:Q.value},null,8,ll),e("div",sl,[l[38]||(l[38]=e("span",{class:"text-xs font-semibold text-slate-500"},"选择目标区域",-1)),e("div",nl,[e("button",{class:"btn btn-ghost btn-xs",onClick:l[12]||(l[12]=t=>Y(!0))},"全选"),e("button",{class:"btn btn-ghost btn-xs",onClick:l[13]||(l[13]=t=>Y(!1))},"清空")])]),e("div",ol,[(o(!0),n(v,null,y(W.value,t=>(o(),n("label",{key:t.value,class:z(["sync-region-item",{checked:f.value.includes(t.value)}]),onClick:d=>X(t.value)},[e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary",checked:f.value.includes(t.value),onClick:fe(d=>X(t.value),["stop"])},null,8,il),e("span",null,u(t.label),1)],10,al))),128))]),l[39]||(l[39]=e("p",{class:"text-[11px] text-slate-400 mb-5"},"⚠ 已勾选区域中与当前配置相同的字段将被覆盖;加密字段密文一并同步。",-1)),e("div",{class:"flex gap-3 justify-end"},[e("button",{class:"btn btn-ghost",onClick:ve},"仅保存当前区域"),e("button",{class:"btn btn-primary text-white",onClick:pe},"保存并同步")])])],512),[[te,R.value]])]))}}),pl=_e(dl,[["__scopeId","data-v-97419e3c"]]);export{pl as default}; diff --git a/apps/admin/.output/public/_nuxt/BMr4oSI7.js b/apps/admin/.output/public/_nuxt/BMr4oSI7.js deleted file mode 100644 index d2eac7d3..00000000 --- a/apps/admin/.output/public/_nuxt/BMr4oSI7.js +++ /dev/null @@ -1 +0,0 @@ -import{g as ot,j as at,o as n,c as o,k as r,v as A,a as s,l as D,F as y,r as k,t as p,n as it,m as w,p as H,d as m,q as M,s as b,x as B,_ as dt}from"./96IDI_OR.js";import{u as ut}from"./Do83zqYq.js";import{u as rt}from"./CVUxyiJx.js";const pt={class:"flex items-center justify-between mb-4"},ct={class:"bg-white rounded-xl shadow-sm border border-slate-100 overflow-hidden"},mt={class:"table table-sm"},bt={key:0},xt={key:1},vt={class:"font-mono"},ft={class:"font-medium"},yt={key:0,class:"text-green-600 text-xs"},gt={key:1,class:"text-slate-400 text-xs"},kt={key:0,class:"text-xs text-slate-500"},wt={key:1,class:"text-xs text-slate-300"},_t={key:1,class:"text-xs text-slate-300"},ht={key:2,class:"text-[11px] text-emerald-600 mt-0.5"},Ct={class:"text-xs text-slate-500"},Vt={class:"flex gap-1 justify-end"},Ut=["onClick"],It=["onClick"],St=["onClick"],Et=["onClick"],$t={class:"flex items-center gap-3 mb-5"},Nt={class:"text-lg font-semibold text-slate-800"},jt={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-2xl"},At={class:"grid grid-cols-2 gap-3"},Mt=["disabled"],Pt={class:"col-span-2"},Tt={class:"mt-4 border-t border-slate-100 pt-4"},Lt={class:"mb-3"},Ot={class:"flex flex-wrap gap-2"},Dt=["value"],Bt={class:"mb-3"},Gt={class:"flex flex-wrap gap-2"},Rt=["value"],Ft={key:1,class:"text-xs text-slate-300"},qt={class:"mb-3"},zt={class:"flex flex-wrap gap-2"},Ht=["value"],Jt={class:"max-h-56 overflow-y-auto pr-1 border border-slate-100 rounded-lg p-2"},Kt={key:0,class:"text-xs text-slate-300"},Qt={key:1,class:"text-xs text-slate-300"},Wt={class:"text-[11px] font-semibold text-slate-500 mb-1 sticky top-0 bg-white py-0.5"},Xt={class:"flex flex-wrap gap-2"},Yt=["value"],Zt={class:"flex gap-3 justify-end mt-6"},ts=["disabled"],ss={class:"modal-box max-w-md"},es={class:"text-xs text-slate-400 mb-3"},ls={class:"font-medium text-slate-600"},ns={class:"text-emerald-600"},os={class:"grid grid-cols-3 gap-3"},as={class:"modal-action"},is=ot({__name:"accounts",setup(ds){const{webApi:G,consoleApi:v}=ut(),{success:h,error:g,warn:J}=rt(),K={1:"超管",2:"管理员",3:"代理",4:"运营"},Q={1:"badge-error",2:"badge-primary",3:"badge-warning",4:"badge-info"},W=[["dashboard","仪表盘"],["factory","厂家管理"],["product","产品管理"],["device","生产管理"],["code","公码管理"],["user","用户查询"],["apps","应用注册"]],X=[["cn","中国"],["us","美国"],["ea","东亚"],["sea","东南亚"],["sa","南亚"],["me","中东"],["eu","欧洲"],["ru","俄罗斯"],["af","非洲"],["sam","南美"],["nam","北美"],["oc","大洋洲"],["br","巴西"],["in","印度"]],C=b("list"),V=b([]),U=b([]),P=b(!1),I=b(!1),f=b(0),a=B({username:"",password:"",identity:2,enabled:"1",remark:""}),d=B({access:[],apps:[],regions:[],products:[]}),_=b([]),T=b(!1);function x(l){return(l||"").split(",").map(t=>t.trim()).filter(t=>t)}function S(l){return l.join(",")}function R(l){const t=[];return l.apps&&t.push("应用:"+x(l.apps).length),l.regions&&t.push("区域:"+x(l.regions).length),l.products&&t.push("产品:"+x(l.products).length),l.access&&t.push("页面:"+x(l.access).length),t}async function E(){P.value=!0;try{try{U.value=await v("apps/list",{})??[]}catch{U.value=[]}const l=await v("accounts/list",{});V.value=l??[]}catch(l){g(l?.message??"获取账号列表失败"),V.value=[]}finally{P.value=!1}}async function Y(){T.value=!0,_.value=[];try{const[l,t]=await Promise.all([G("getfactorys",{}),G("getproducts",{})]),e=l?.factorys??[],i=t?.products??[],$={};e.forEach(c=>{$[c.id]=c.factory||"厂家#"+c.id});const N={};i.forEach(c=>{const j=String(c.factoryid||0);(N[j]=N[j]||[]).push(c)});const nt=Object.keys(N).sort((c,j)=>(parseInt(c)||0)-(parseInt(j)||0));_.value=nt.map(c=>({fid:c,label:$[c]||(parseInt(c)?"厂家#"+c:"未分组"),products:N[c]??[]}))}catch{_.value=[]}finally{T.value=!1}}function F(l){f.value=l?l.id:0,a.username=l&&l.username||"",a.password="",a.identity=l?l.identity:2,a.enabled=l&&!l.enabled?"0":"1",a.remark=l&&l.remark||"",d.access=x(l?.access),d.apps=x(l?.apps),d.regions=x(l?.regions),d.products=x(l?.products),Y(),C.value="form"}function L(){C.value="list",E()}async function Z(){const l=a.identity,t={identity:l,enabled:a.enabled==="1",remark:a.remark.trim(),access:"",apps:"",regions:"",products:""};(l===3||l===4)&&(t.access=S(d.access),t.apps=S(d.apps),t.regions=S(d.regions),t.products=S(d.products)),I.value=!0;try{if(f.value)t.id=f.value,await v("accounts/update",t);else{if(t.username=a.username.trim(),t.password=a.password,!t.username||!t.password){g("用户名和密码必填"),I.value=!1;return}await v("accounts/add",t)}h("已保存"),L()}catch(e){g(e?.message??"保存失败")}finally{I.value=!1}}async function tt(l,t){const e=window.prompt("为账号【"+t+"】设置新密码:");if(e)try{await v("accounts/resetpwd",{id:l,password:e}),h("密码已重置")}catch(i){g(i?.message??"失败")}}function st(l,t){window.confirm("确认删除账号【"+t+"】?该操作不可恢复。")&&v("accounts/del",{id:l}).then(()=>{h("已删除"),E()}).catch(e=>g(e?.message??"失败"))}const O=b(null),q=b(0),u=B({name:"",cur:"",vipday:0,trademin:0,meetmin:0});function et(l){q.value=l.id,u.name=l.username||"#"+l.id,u.cur="VIP"+(l.balance_vipday||0)+"天 · 翻译"+(l.balance_trademin||0)+"分 · 会议"+(l.balance_meetmin||0)+"分",u.vipday=0,u.trademin=0,u.meetmin=0,O.value?.showModal()}function z(){O.value?.close()}async function lt(){const l=Number(u.vipday)||0,t=Number(u.trademin)||0,e=Number(u.meetmin)||0;if(!l&&!t&&!e){J("请至少填写一项");return}try{await v("accounts/topup",{account_id:q.value,vipday:l,trademin:t,meetmin:e}),h("余额已更新"),z(),E()}catch(i){g(i?.message??"操作失败")}}return at(E),(l,t)=>(n(),o("div",null,[r(s("div",null,[s("div",pt,[t[18]||(t[18]=s("div",null,[s("h2",{class:"text-lg font-bold text-slate-700"},"后台账号"),s("p",{class:"text-xs text-slate-400 mt-0.5"},"超管 / 管理员 / 代理 / 运营。代理·运营可绑定应用·区域·产品,登录后仪表盘按绑定限制。")],-1)),s("button",{class:"btn btn-primary btn-sm text-white",onClick:t[0]||(t[0]=e=>F())},"+ 新建账号")]),s("div",ct,[s("table",mt,[t[21]||(t[21]=s("thead",null,[s("tr",{class:"text-slate-500"},[s("th",null,"ID"),s("th",null,"用户名"),s("th",null,"角色"),s("th",null,"状态"),s("th",null,"绑定作用域"),s("th",null,"备注"),s("th",{class:"text-right"},"操作")])],-1)),s("tbody",null,[P.value?(n(),o("tr",bt,[...t[19]||(t[19]=[s("td",{colspan:"7",class:"text-center text-slate-400 py-8"},"加载中...",-1)])])):V.value.length?D("",!0):(n(),o("tr",xt,[...t[20]||(t[20]=[s("td",{colspan:"7",class:"text-center text-slate-400 py-8"},"暂无账号(引导超管不在此列)",-1)])])),(n(!0),o(y,null,k(V.value,e=>(n(),o("tr",{key:e.id},[s("td",vt,p(e.id),1),s("td",ft,p(e.username||""),1),s("td",null,[s("span",{class:it(["badge badge-sm",Q[e.identity]||""])},p(K[e.identity]||e.identity),3)]),s("td",null,[e.enabled?(n(),o("span",yt,"启用")):(n(),o("span",gt,"停用"))]),s("td",null,[e.identity===3||e.identity===4?(n(),o(y,{key:0},[R(e).length?(n(),o("span",kt,p(R(e).join(" · ")),1)):(n(),o("span",wt,"未绑定(不限)"))],64)):(n(),o("span",_t,"全部权限")),e.identity===3?(n(),o("div",ht," 余额 VIP"+p(e.balance_vipday||0)+"天 · 翻译"+p(e.balance_trademin||0)+"分 · 会议"+p(e.balance_meetmin||0)+"分 ",1)):D("",!0)]),s("td",Ct,p(e.remark||""),1),s("td",null,[s("div",Vt,[e.identity===3?(n(),o("button",{key:0,class:"btn btn-ghost btn-xs text-emerald-600",onClick:i=>et(e)},"充值",8,Ut)):D("",!0),s("button",{class:"btn btn-ghost btn-xs",onClick:i=>F(e)},"编辑",8,It),s("button",{class:"btn btn-ghost btn-xs text-amber-600",onClick:i=>tt(e.id,e.username)},"改密",8,St),s("button",{class:"btn btn-ghost btn-xs text-red-500",onClick:i=>st(e.id,e.username)},"删除",8,Et)])])]))),128))])])])],512),[[A,C.value==="list"]]),r(s("div",null,[s("div",$t,[s("button",{class:"btn btn-ghost btn-sm",onClick:t[1]||(t[1]=e=>L())},"← 返回列表"),s("h2",Nt,p(f.value?"编辑账号 #"+f.value:"新建账号"),1)]),s("div",jt,[s("div",At,[s("div",null,[t[22]||(t[22]=s("label",{class:"text-xs text-slate-500"},"用户名",-1)),r(s("input",{"onUpdate:modelValue":t[2]||(t[2]=e=>a.username=e),disabled:!!f.value,class:"input input-bordered input-sm w-full",placeholder:"登录用户名"},null,8,Mt),[[w,a.username]])]),r(s("div",null,[t[23]||(t[23]=s("label",{class:"text-xs text-slate-500"},"密码",-1)),r(s("input",{"onUpdate:modelValue":t[3]||(t[3]=e=>a.password=e),type:"password",class:"input input-bordered input-sm w-full",placeholder:"登录密码"},null,512),[[w,a.password]])],512),[[A,!f.value]]),s("div",null,[t[25]||(t[25]=s("label",{class:"text-xs text-slate-500"},"角色",-1)),r(s("select",{"onUpdate:modelValue":t[4]||(t[4]=e=>a.identity=e),class:"select select-bordered select-sm w-full"},[...t[24]||(t[24]=[s("option",{value:2},"管理员(除账号管理外全部)",-1),s("option",{value:3},"代理(外部,按绑定限制)",-1),s("option",{value:4},"运营(内部,按绑定限制)",-1),s("option",{value:1},"超管(全部权限)",-1)])],512),[[H,a.identity,void 0,{number:!0}]])]),s("div",null,[t[27]||(t[27]=s("label",{class:"text-xs text-slate-500"},"状态",-1)),r(s("select",{"onUpdate:modelValue":t[5]||(t[5]=e=>a.enabled=e),class:"select select-bordered select-sm w-full"},[...t[26]||(t[26]=[s("option",{value:"1"},"启用",-1),s("option",{value:"0"},"停用",-1)])],512),[[H,a.enabled]])]),s("div",Pt,[t[28]||(t[28]=s("label",{class:"text-xs text-slate-500"},"备注",-1)),r(s("input",{"onUpdate:modelValue":t[6]||(t[6]=e=>a.remark=e),class:"input input-bordered input-sm w-full",placeholder:"可选"},null,512),[[w,a.remark]])])]),r(s("div",Tt,[t[33]||(t[33]=s("div",{class:"text-sm font-semibold text-slate-600 mb-2"},[m("作用域绑定 "),s("span",{class:"text-xs text-slate-400 font-normal"},"(代理/运营生效;勾选可访问页面,并限制仪表盘数据范围)")],-1)),s("div",Lt,[t[29]||(t[29]=s("div",{class:"text-xs text-slate-500 mb-1.5"},"可访问页面",-1)),s("div",Ot,[(n(),o(y,null,k(W,e=>s("label",{key:e[0],class:"chk"},[r(s("input",{"onUpdate:modelValue":t[7]||(t[7]=i=>d.access=i),type:"checkbox",value:e[0]},null,8,Dt),[[M,d.access]]),m(p(e[1]),1)])),64))])]),s("div",Bt,[t[30]||(t[30]=s("div",{class:"text-xs text-slate-500 mb-1.5"},[m("绑定应用 "),s("span",{class:"text-slate-300"},"(仪表盘只显示这些应用数据;不勾=不限)")],-1)),s("div",Gt,[U.value.length?(n(!0),o(y,{key:0},k(U.value,e=>(n(),o("label",{key:e.id,class:"chk"},[r(s("input",{"onUpdate:modelValue":t[8]||(t[8]=i=>d.apps=i),type:"checkbox",value:e.name},null,8,Rt),[[M,d.apps]]),m(p(e.name||"应用#"+e.id),1)]))),128)):(n(),o("span",Ft,"无注册应用"))])]),s("div",qt,[t[31]||(t[31]=s("div",{class:"text-xs text-slate-500 mb-1.5"},[m("绑定区域 "),s("span",{class:"text-slate-300"},"(不勾=不限)")],-1)),s("div",zt,[(n(),o(y,null,k(X,e=>s("label",{key:e[0],class:"chk"},[r(s("input",{"onUpdate:modelValue":t[9]||(t[9]=i=>d.regions=i),type:"checkbox",value:e[0]},null,8,Ht),[[M,d.regions]]),m(p(e[1]),1)])),64))])]),s("div",null,[t[32]||(t[32]=s("div",{class:"text-xs text-slate-500 mb-1.5"},[m("绑定产品 "),s("span",{class:"text-slate-300"},"(按厂家分组;仪表盘只显示这些产品数据;不勾=不限)")],-1)),s("div",Jt,[T.value?(n(),o("span",Kt,"加载产品中...")):_.value.length?(n(!0),o(y,{key:2},k(_.value,e=>(n(),o("div",{key:e.fid,class:"mb-2 last:mb-0"},[s("div",Wt,"🏭 "+p(e.label),1),s("div",Xt,[(n(!0),o(y,null,k(e.products,i=>(n(),o("label",{key:i.id,class:"chk"},[r(s("input",{"onUpdate:modelValue":t[10]||(t[10]=$=>d.products=$),type:"checkbox",value:String(i.id)},null,8,Yt),[[M,d.products]]),m(p((i.devicename||"产品")+" #"+i.id),1)]))),128))])]))),128)):(n(),o("span",Qt,"无产品"))])])],512),[[A,a.identity===3||a.identity===4]]),s("div",Zt,[s("button",{class:"btn btn-ghost btn-sm",onClick:t[11]||(t[11]=e=>L())},"取消"),s("button",{class:"btn btn-primary btn-sm text-white",disabled:I.value,onClick:t[12]||(t[12]=e=>Z())},"保存",8,ts)])])],512),[[A,C.value==="form"]]),s("dialog",{ref_key:"topupModal",ref:O,class:"modal"},[s("div",ss,[t[39]||(t[39]=s("h3",{class:"font-bold text-lg mb-1"},"充值 / 调整资源点",-1)),s("p",es,[t[34]||(t[34]=m("代理:",-1)),s("span",ls,p(u.name),1),t[35]||(t[35]=m("。填增量(可填负数下调),当前余额:",-1)),s("span",ns,p(u.cur),1)]),s("div",os,[s("div",null,[t[36]||(t[36]=s("label",{class:"text-xs text-slate-500"},"VIP天数",-1)),r(s("input",{"onUpdate:modelValue":t[13]||(t[13]=e=>u.vipday=e),type:"number",class:"input input-bordered input-sm w-full"},null,512),[[w,u.vipday,void 0,{number:!0}]])]),s("div",null,[t[37]||(t[37]=s("label",{class:"text-xs text-slate-500"},"翻译分钟",-1)),r(s("input",{"onUpdate:modelValue":t[14]||(t[14]=e=>u.trademin=e),type:"number",class:"input input-bordered input-sm w-full"},null,512),[[w,u.trademin,void 0,{number:!0}]])]),s("div",null,[t[38]||(t[38]=s("label",{class:"text-xs text-slate-500"},"会议分钟",-1)),r(s("input",{"onUpdate:modelValue":t[15]||(t[15]=e=>u.meetmin=e),type:"number",class:"input input-bordered input-sm w-full"},null,512),[[w,u.meetmin,void 0,{number:!0}]])])]),s("div",as,[s("button",{class:"btn btn-ghost btn-sm",onClick:t[16]||(t[16]=e=>z())},"取消"),s("button",{class:"btn btn-primary btn-sm text-white",onClick:t[17]||(t[17]=e=>lt())},"确认")])]),t[40]||(t[40]=s("form",{method:"dialog",class:"modal-backdrop"},[s("button",null,"close")],-1))],512)]))}}),cs=dt(is,[["__scopeId","data-v-eb25cf37"]]);export{cs as default}; diff --git a/apps/admin/.output/public/_nuxt/BVGGsVu4.js b/apps/admin/.output/public/_nuxt/BVGGsVu4.js new file mode 100644 index 00000000..a21d2018 --- /dev/null +++ b/apps/admin/.output/public/_nuxt/BVGGsVu4.js @@ -0,0 +1 @@ +import{g as K,j as T,c as a,k as c,v as E,a as t,l as M,F as C,r as V,t as r,D as N,m as v,I as z,s as d,x as A,o as n,d as q}from"./CTAruH_8.js";import{u as H}from"./9B2ftqmN.js";import{u as G}from"./lLLegusN.js";import"./D9HxoMhB.js";import"./yUUyh6cG.js";const J={class:"flex items-center justify-between mb-5"},O={class:"bg-white rounded-xl shadow-sm border border-slate-100"},P={class:"overflow-x-auto"},Q={class:"table table-zebra"},R={key:0},W={key:1},X={class:"font-mono text-sm"},Y={class:"font-medium"},Z={class:"badge badge-ghost badge-sm"},tt={class:"text-sm"},et={key:1,class:"text-slate-300"},st={class:"text-sm text-slate-500"},lt={class:"flex gap-1"},ot=["onClick"],at=["onClick"],nt={class:"flex items-center gap-3 mb-5"},it={class:"text-lg font-semibold text-slate-800"},rt={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-2xl"},dt={class:"form-control mb-4"},ut={class:"form-control mb-4"},ct={class:"form-control mb-4"},mt={class:"form-control mb-6"},bt={class:"space-y-2"},pt={key:0,class:"text-xs text-slate-400"},ft={class:"badge badge-lg gap-1 bg-slate-100 border-slate-200"},vt=["onClick"],yt={class:"flex gap-2 mt-2"},gt=["onKeydown"],xt={class:"flex gap-3"},ht=["disabled"],$t=K({__name:"factory",setup(_t){const{webApi:y}=H(),{success:F,error:g,warn:U}=G(),p=d("list"),f=d([]),x=d(!1),h=d(!1),m=d(!1),i=d([]),b=d(""),o=A({id:0,factory:"",factoryflag:"",description:""});function j(s){return s?Number(s).toString(16).toUpperCase():""}function _(s){return(s||"").split(",").map(e=>e.trim()).filter(Boolean)}async function w(){x.value=!0;try{const s=await y("getfactorys",{});f.value=s?.factorys??[]}catch(s){g(s?.message??"获取厂家列表失败"),f.value=[]}finally{x.value=!1}}function k(){p.value="list",w()}function $(s){s?(m.value=!0,o.id=s.id,o.factory=s.factory||"",o.factoryflag=s.factoryflag||"",o.description=s.description||"",i.value=_(s.contactmails)):(m.value=!1,o.id=0,o.factory="",o.factoryflag="",o.description="",i.value=[]),b.value="",p.value="form"}function B(){const s=b.value.trim();if(s){if(i.value.includes(s)){U("邮箱已存在");return}i.value.push(s),b.value=""}}function L(s){i.value.splice(s,1)}async function S(){h.value=!0;try{const s={Factory:{factory:o.factory,factoryflag:o.factoryflag,description:o.description,contactmails:i.value.join(",")}};m.value&&(s.Factory.id=Number(o.id)),await y(m.value?"updatefactory":"addfactory",s),F("保存成功"),k()}catch(s){g(s?.message??"保存失败")}finally{h.value=!1}}function I(s){window.confirm(`确定删除工厂 "${s.factory}" 吗?`)&&y("delfactory",{id:s.id}).then(()=>{F("删除成功"),w()}).catch(e=>g(e?.message??"删除失败"))}return T(w),(s,e)=>(n(),a("div",null,[c(t("div",null,[t("div",J,[e[7]||(e[7]=t("h2",{class:"text-lg font-semibold text-slate-800"},"厂家列表",-1)),t("button",{class:"btn btn-primary btn-sm text-white",onClick:e[0]||(e[0]=l=>$())},"+ 新增工厂")]),t("div",O,[t("div",P,[t("table",Q,[e[10]||(e[10]=t("thead",null,[t("tr",null,[t("th",null,"ID"),t("th",null,"工厂名称"),t("th",null,"标识"),t("th",null,"联系邮箱"),t("th",null,"批次"),t("th",null,"产品"),t("th",null,"操作")])],-1)),t("tbody",null,[x.value?(n(),a("tr",R,[...e[8]||(e[8]=[t("td",{colspan:"7",class:"text-center py-8"},[t("span",{class:"loading loading-spinner loading-sm"})],-1)])])):f.value.length?M("",!0):(n(),a("tr",W,[...e[9]||(e[9]=[t("td",{colspan:"7",class:"text-center text-slate-400 py-8"},"暂无数据",-1)])])),(n(!0),a(C,null,V(f.value,l=>(n(),a("tr",{key:l.id},[t("td",X,r(j(l.id)),1),t("td",Y,r(l.factory),1),t("td",null,[t("span",Z,r(l.factoryflag),1)]),t("td",tt,[_(l.contactmails).length?(n(!0),a(C,{key:0},V(_(l.contactmails),(u,D)=>(n(),a("span",{key:D,class:"badge badge-ghost badge-sm mr-1"},r(u),1))),128)):(n(),a("span",et,"-"))]),t("td",null,r(l.probatch||0),1),t("td",st,r(l.productlists||""),1),t("td",null,[t("div",lt,[t("button",{class:"btn btn-ghost btn-xs",onClick:u=>$(l)},"编辑",8,ot),t("button",{class:"btn btn-ghost btn-xs text-red-500",onClick:u=>I(l)},"删除",8,at)])])]))),128))])])])])],512),[[E,p.value==="list"]]),c(t("div",null,[t("div",nt,[t("button",{class:"btn btn-ghost btn-sm",onClick:e[1]||(e[1]=l=>k())},"← 返回列表"),t("h2",it,r(m.value?"编辑工厂":"新增工厂"),1)]),t("div",rt,[t("form",{onSubmit:N(S,["prevent"])},[t("div",dt,[e[11]||(e[11]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"工厂名称 *")],-1)),c(t("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>o.factory=l),type:"text",class:"input input-bordered w-full",required:""},null,512),[[v,o.factory]])]),t("div",ut,[e[12]||(e[12]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"工厂标识")],-1)),c(t("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>o.factoryflag=l),type:"text",class:"input input-bordered w-full"},null,512),[[v,o.factoryflag]])]),t("div",ct,[e[13]||(e[13]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"描述")],-1)),c(t("textarea",{"onUpdate:modelValue":e[4]||(e[4]=l=>o.description=l),class:"textarea textarea-bordered w-full",rows:"3"},null,512),[[v,o.description]])]),t("div",mt,[e[15]||(e[15]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"联系邮箱")],-1)),t("div",bt,[i.value.length?M("",!0):(n(),a("p",pt,"暂无邮箱")),(n(!0),a(C,null,V(i.value,(l,u)=>(n(),a("div",{key:u,class:"flex items-center gap-2"},[t("span",ft,[e[14]||(e[14]=t("svg",{class:"h-3 w-3 text-slate-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})],-1)),q(" "+r(l),1)]),t("button",{type:"button",class:"btn btn-ghost btn-xs text-red-400 hover:text-red-600",onClick:D=>L(u)},"×",8,vt)]))),128))]),t("div",yt,[c(t("input",{"onUpdate:modelValue":e[5]||(e[5]=l=>b.value=l),type:"email",class:"input input-bordered input-sm flex-1",placeholder:"输入邮箱地址",onKeydown:z(N(B,["prevent"]),["enter"])},null,40,gt),[[v,b.value]]),t("button",{type:"button",class:"btn btn-outline btn-sm btn-primary",onClick:B},"添加")])]),t("div",xt,[t("button",{type:"button",class:"btn btn-ghost",onClick:e[6]||(e[6]=l=>k())},"取消"),t("button",{type:"submit",class:"btn btn-primary text-white",disabled:h.value},"保存",8,ht)])],32)])],512),[[E,p.value==="form"]])]))}});export{$t as default}; diff --git a/apps/admin/.output/public/_nuxt/B_JvM6BO.js b/apps/admin/.output/public/_nuxt/B_JvM6BO.js new file mode 100644 index 00000000..02977086 --- /dev/null +++ b/apps/admin/.output/public/_nuxt/B_JvM6BO.js @@ -0,0 +1 @@ +import{g as W,y as X,z as Y,j as Z,c as a,a as s,t as d,l as c,d as f,k as V,p as T,F as h,r as U,A as k,x as A,s as v,o as l,n as ee,m as $,B as te,_ as se}from"./CTAruH_8.js";import{u as ae}from"./9B2ftqmN.js";import{u as le}from"./lLLegusN.js";import"./D9HxoMhB.js";import"./yUUyh6cG.js";const oe={class:"rounded-xl px-5 py-4 mb-5",style:{background:"linear-gradient(135deg,#eef2ff,#faf5ff)",border:"1px solid #e0e7ff"}},ne={class:"flex items-center gap-4"},de={class:"app-avatar"},ie={class:"flex-1 min-w-0"},ue={class:"flex items-center gap-2 flex-wrap"},ce={class:"text-base font-bold text-slate-800"},re={class:"badge badge-sm",style:{background:"#e0e7ff",color:"#4338ca",border:"none"}},pe={key:0,class:"badge badge-ghost badge-sm"},me={key:1,class:"badge badge-ghost badge-sm"},ve={key:2,class:"badge badge-warning badge-sm text-amber-900"},_e={key:3,class:"badge badge-success badge-sm text-white"},xe={class:"text-[11px] text-slate-500 mt-1 flex flex-wrap gap-x-4 gap-y-0.5"},ge={key:0},ye={class:"font-mono"},be={class:"font-mono"},fe={class:"flex items-center gap-2 mt-3 pt-3 border-t border-indigo-100"},he=["disabled"],ke=["value"],we={key:0,class:"loading loading-spinner loading-xs text-indigo-400"},Ce={class:"bg-white rounded-2xl border border-slate-100 shadow-sm p-5"},Ve={key:0,class:"alert alert-warning py-2 text-sm mb-3"},Ue={key:1,class:"py-12 text-center"},Me={key:2,class:"flex gap-5"},Be={class:"w-48 shrink-0"},Ne={class:"text-[11px] font-semibold text-slate-400 px-2 mb-1"},Ae=["onClick"],De={key:0,class:"w-1.5 h-1.5 rounded-full bg-emerald-400 inline-block"},Ie={class:"flex-1 min-w-0"},Se={class:"flex items-center justify-between mb-3"},je={class:"text-sm font-semibold text-slate-800"},qe={key:0,class:"text-[11px] text-slate-400 mt-0.5"},Ee={class:"flex items-center gap-2"},Te=["disabled"],$e=["disabled"],ze={class:"grid grid-cols-1 gap-3 max-w-2xl"},Fe={class:"label py-0.5"},Re={class:"label-text text-sm"},Le={key:0,class:"text-rose-400"},Oe={key:1,class:"lock-tag ml-1"},Pe={class:"text-[10px] font-normal text-slate-300 ml-1 font-mono"},Ge={key:0,class:"cursor-pointer flex items-center gap-2"},He=["checked","onChange"],Je={class:"text-xs text-slate-500"},Ke=["onUpdate:modelValue"],Qe=["value"],We=["onUpdate:modelValue","placeholder"],Xe={key:3,class:"relative"},Ye=["onUpdate:modelValue","type"],Ze=["onClick"],et=["onUpdate:modelValue","placeholder"],tt={key:5,class:"text-[11px] text-slate-400 mt-0.5"},st={key:1,class:"py-10 text-center text-slate-400 text-sm"},at=W({__name:"appconfig",setup(lt){const{consoleApi:_}=ae(),{success:D,error:w}=le(),j=X(),z=Y(),y=k(()=>Number(j.query.id)||0),q=k(()=>j.query.name||"未指定应用"),F=k(()=>(i.app_name||q.value||"A").charAt(0).toUpperCase()),i=A({id:0,app_name:"",status:"",name:"",region:"",env_id:0,base_url:"",service_dsn:""}),E=v([]),b=v(0),M=v(!1),x=v([]),u=v(""),r=A({}),B=A(new Set),N=A({}),I=v(!1),g=v(!1),C=v(""),m=k(()=>x.value.find(o=>o.module===u.value)||null),p=k(()=>r[u.value]||{}),R=k(()=>{const o=[],t=new Map;for(const e of x.value)t.has(e.group)||(t.set(e.group,[]),o.push(e.group)),t.get(e.group).push(e);return o.map(e=>({name:e,modules:t.get(e)}))});function L(o,t){const e=r[u.value]||(r[u.value]={});e[o]=t.target.checked?"true":"false"}function O(){z.push("/apps")}function P(o){const t=(o||"").match(/\/([^/?]+)\?/);return t?t[1]:o?"(自定义)":"—"}async function G(){try{const[o,t]=await Promise.all([_("apps/list",{}),_("envs/list",{})]),e=(o??[]).find(n=>n.id===y.value);e&&Object.assign(i,e),E.value=t??[],b.value=i.env_id||0}catch(o){w(o?.message??"获取应用信息失败")}}async function H(){try{const o=await _("modulecfg/catalog",{});x.value=o?.modules??[];for(const t of x.value)r[t.module]||(r[t.module]={});x.value.length&&!u.value&&(u.value=x.value[0].module)}catch(o){w(o?.message??"获取配置目录失败")}}async function S(){if(y.value){I.value=!0,C.value="";try{const o=await _("modulecfg/list",{app_id:y.value});for(const t of x.value)r[t.module]={};B.clear();for(const t of o?.items??[])r[t.module]||(r[t.module]={}),r[t.module][t.key]=t.value,B.add(t.module)}catch(o){C.value=o?.message??"连接失败"}finally{I.value=!1}}}async function J(){if(i.id){M.value=!0;try{await _("apps/bindenv",{id:i.id,env_id:b.value}),i.env_id=b.value,D("部署环境已更新")}catch(o){w(o?.message??"切换环境失败"),b.value=i.env_id||0}finally{M.value=!1}}}async function K(){if(m.value){g.value=!0;try{const o=m.value.fields.map(t=>({key:t.key,value:r[u.value]?.[t.key]??""}));await _("modulecfg/save",{app_id:y.value,module:u.value,items:o}),D("配置已保存"),await S()}catch(o){w(o?.message??"保存失败")}finally{g.value=!1}}}async function Q(){if(u.value&&confirm(`确认清空「${m.value?.name}」的全部配置?`)){g.value=!0;try{await _("modulecfg/del",{app_id:y.value,module:u.value}),D("已清空"),await S()}catch(o){w(o?.message??"清空失败")}finally{g.value=!1}}}return Z(async()=>{await G(),await H(),await S()}),(o,t)=>(l(),a("div",null,[s("div",{class:"flex items-center gap-2 mb-4"},[s("button",{class:"btn btn-ghost btn-sm",onClick:O},"← 返回应用列表"),t[1]||(t[1]=s("span",{class:"text-slate-300"},"/",-1)),t[2]||(t[2]=s("h2",{class:"text-lg font-semibold text-slate-800"},"应用服务配置",-1))]),s("div",oe,[s("div",ne,[s("div",de,d(F.value),1),s("div",ie,[s("div",ue,[s("span",ce,d(i.name||q.value),1),s("span",re,"#"+d(y.value),1),i.app_name?(l(),a("span",pe,"应用:"+d(i.app_name),1)):c("",!0),i.region?(l(),a("span",me,d(i.region),1)):c("",!0),i.status==="pending"?(l(),a("span",ve,"待部署")):(l(),a("span",_e,"已接入"))]),s("div",xe,[i.base_url?(l(),a("span",ge,[t[3]||(t[3]=f("地址:",-1)),s("span",ye,d(i.base_url),1)])):c("",!0),s("span",null,[t[4]||(t[4]=f("业务库:",-1)),s("span",be,d(P(i.service_dsn)),1)])])])]),s("div",fe,[t[6]||(t[6]=s("span",{class:"text-xs text-slate-500 shrink-0"},"部署环境",-1)),V(s("select",{"onUpdate:modelValue":t[0]||(t[0]=e=>b.value=e),class:"select select-bordered select-sm w-64",disabled:M.value,onChange:J},[t[5]||(t[5]=s("option",{value:0},"未绑定",-1)),(l(!0),a(h,null,U(E.value,e=>(l(),a("option",{key:e.id,value:e.id},d(e.name)+"("+d(e.code||"-")+")",9,ke))),128))],40,he),[[T,b.value,void 0,{number:!0}]]),M.value?(l(),a("span",we)):c("",!0),t[7]||(t[7]=s("span",{class:"text-[11px] text-slate-400"},"切换后即时保存。",-1))])]),s("div",Ce,[t[12]||(t[12]=s("div",{class:"mb-3"},[s("h3",{class:"text-base font-semibold text-slate-800"},"业务功能配置"),s("p",{class:"text-[11px] text-slate-400 mt-0.5"},[f(" 登录 / 短信 / 邮件 / 支付等应用独立配置,保存在"),s("b",null,"该部署的业务库"),f("(不进公共库)。密钥字段加密落库,显示时脱敏。 ")])],-1)),C.value?(l(),a("div",Ve,[s("span",null,[f("无法连接应用业务库:"+d(C.value),1),t[8]||(t[8]=s("br",null,null,-1)),t[9]||(t[9]=s("span",{class:"text-xs opacity-70"},"待部署的应用先完成部署、或检查业务库 DSN 连通后再配置。",-1))])])):c("",!0),I.value?(l(),a("div",Ue,[...t[10]||(t[10]=[s("span",{class:"loading loading-spinner loading-sm"},null,-1)])])):(l(),a("div",Me,[s("aside",Be,[(l(!0),a(h,null,U(R.value,e=>(l(),a("div",{key:e.name,class:"mb-3"},[s("div",Ne,d(e.name),1),(l(!0),a(h,null,U(e.modules,n=>(l(),a("button",{key:n.module,class:ee(["w-full flex items-center justify-between text-left px-3 py-2 rounded-lg text-sm mb-0.5 transition-colors",u.value===n.module?"bg-indigo-50 text-indigo-700 font-medium":"text-slate-600 hover:bg-slate-50"]),onClick:ot=>u.value=n.module},[s("span",null,d(n.name),1),B.has(n.module)?(l(),a("span",De)):c("",!0)],10,Ae))),128))]))),128))]),s("section",Ie,[m.value?(l(),a(h,{key:0},[s("div",Se,[s("div",null,[s("div",je,d(m.value.name),1),m.value.desc?(l(),a("div",qe,d(m.value.desc),1)):c("",!0)]),s("div",Ee,[B.has(u.value)?(l(),a("button",{key:0,class:"btn btn-ghost btn-xs text-rose-500",disabled:g.value,onClick:Q},"清空",8,Te)):c("",!0),s("button",{class:"btn btn-primary btn-sm text-white",disabled:g.value||C.value!=="",onClick:K},d(g.value?"保存中…":"保存"),9,$e)])]),s("div",ze,[(l(!0),a(h,null,U(m.value.fields,e=>(l(),a("div",{key:e.key,class:"form-control"},[s("label",Fe,[s("span",Re,[f(d(e.label)+" ",1),e.required?(l(),a("span",Le,"*")):c("",!0),e.secret?(l(),a("span",Oe,"🔒")):c("",!0),s("span",Pe,d(e.key),1)])]),e.type==="bool"?(l(),a("label",Ge,[s("input",{type:"checkbox",class:"toggle toggle-sm toggle-primary",checked:p.value[e.key]==="true",onChange:n=>L(e.key,n)},null,40,He),s("span",Je,d(p.value[e.key]==="true"?"开启":"关闭"),1)])):e.type==="select"?V((l(),a("select",{key:1,"onUpdate:modelValue":n=>p.value[e.key]=n,class:"select select-bordered select-sm w-full"},[t[11]||(t[11]=s("option",{value:""},"请选择",-1)),(l(!0),a(h,null,U(e.options,n=>(l(),a("option",{key:n.value,value:n.value},d(n.label),9,Qe))),128))],8,Ke)),[[T,p.value[e.key]]]):e.type==="textarea"?V((l(),a("textarea",{key:2,"onUpdate:modelValue":n=>p.value[e.key]=n,class:"textarea textarea-bordered w-full font-mono text-xs",rows:"3",placeholder:e.secret?"留空/保持 [encrypted] 则不变":e.placeholder||""},null,8,We)),[[$,p.value[e.key]]]):e.type==="password"?(l(),a("div",Xe,[V(s("input",{"onUpdate:modelValue":n=>p.value[e.key]=n,type:N[e.key]?"text":"password",class:"input input-bordered input-sm w-full font-mono text-xs pr-14",placeholder:"留空/保持 [encrypted] 则不变"},null,8,Ye),[[te,p.value[e.key]]]),s("button",{type:"button",class:"absolute right-3 top-1/2 -translate-y-1/2 text-xs text-slate-400 hover:text-slate-700",onClick:n=>N[e.key]=!N[e.key]},d(N[e.key]?"隐藏":"显示"),9,Ze)])):V((l(),a("input",{key:4,"onUpdate:modelValue":n=>p.value[e.key]=n,type:"text",class:"input input-bordered input-sm w-full font-mono text-xs",placeholder:e.placeholder||""},null,8,et)),[[$,p.value[e.key]]]),e.desc?(l(),a("span",tt,d(e.desc),1)):c("",!0)]))),128))])],64)):(l(),a("div",st,"暂无可配置的业务模块。"))])]))])]))}}),rt=se(at,[["__scopeId","data-v-a2d8388e"]]);export{rt as default}; diff --git a/apps/admin/.output/public/_nuxt/BbMitk9t.js b/apps/admin/.output/public/_nuxt/BbMitk9t.js deleted file mode 100644 index 060b6e1f..00000000 --- a/apps/admin/.output/public/_nuxt/BbMitk9t.js +++ /dev/null @@ -1 +0,0 @@ -import{g as oe,j as ie,c as a,l as p,a as e,k as d,p as m,F as r,r as u,v as F,t as i,q as G,n as N,d as de,s as c,x as ce,C as re,o,A as $,_ as ue}from"./96IDI_OR.js";import{u as ve}from"./Do83zqYq.js";import{u as be}from"./CVUxyiJx.js";const me={key:0,class:"mb-4 rounded-lg px-4 py-3 text-sm",style:{background:"#fffbeb",border:"1px solid #fde68a",color:"#92400e"}},xe={class:"flex items-center justify-between mb-5"},pe={class:"flex items-center gap-3"},fe=["value"],_e={class:"editor-panel"},ge={class:"flex items-center justify-between mb-4"},ye={class:"font-semibold text-slate-800 text-sm"},ke={class:"grid grid-cols-3 gap-4 mb-4"},he={class:"form-control"},Se=["value"],Te={class:"form-control"},Ce=["value"],we={class:"form-control"},Ae={class:"flex gap-3 mb-4"},Ve={key:0,class:"grid grid-cols-3 gap-4"},Me={class:"form-control"},je={key:0,value:""},Re=["value"],Ue={class:"form-control"},Ne={key:0,value:""},$e=["value"],Oe={class:"form-control"},Pe={key:0,value:""},ze=["value"],Be={key:1,class:"form-control max-w-xs"},De={key:0,value:""},Ee=["value"],Le={class:"flex items-center justify-between pt-4 border-t border-slate-100 mt-4"},Ie={class:"flex items-center gap-2 text-sm"},Fe={class:"grid grid-cols-1 gap-4",style:{"grid-template-columns":"repeat(auto-fill,minmax(360px,1fr))"}},Ge={key:0,class:"col-span-full text-center py-20 text-slate-300"},qe=["onClick"],He={class:"flex items-center justify-between"},Je={class:"flex items-center gap-2"},Ke={class:"lang-badge"},Qe={class:"text-slate-400 font-bold text-lg"},We={class:"lang-badge"},Xe={class:"flex items-center gap-2"},Ye={key:0,class:"mode-badge mode-pipeline"},Ze={key:1,class:"mode-badge mode-e2e"},et={key:2,class:"badge badge-success badge-xs"},tt={key:3,class:"badge badge-ghost badge-xs"},st=["onClick"],lt={key:0,class:"flex flex-wrap items-center gap-2 mt-3"},nt={class:"svc-pill",style:{background:"#1664ff"}},at={class:"svc-pill",style:{background:"#059669"}},ot={class:"svc-pill",style:{background:"#7c3aed"}},it={key:1,class:"flex items-center gap-2 mt-3"},dt={class:"svc-pill",style:{background:"#f97316"}},ct={class:"sync-overlay"},rt={class:"sync-box"},ut={class:"flex items-start gap-3 mb-4"},vt={style:{width:"42px",height:"42px",background:"linear-gradient(135deg,#4f46e5,#7c3aed)","border-radius":"13px",display:"flex","align-items":"center","justify-content":"center","flex-shrink":"0"}},bt={style:{width:"20px",height:"20px",color:"#fff"},fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},mt={class:"text-xs text-slate-400 mt-1"},xt={class:"flex items-center justify-between mb-1"},pt={class:"flex gap-2"},ft={class:"sync-region-grid"},_t=["onClick"],gt=["checked","onClick"],q=1,H=2,J=3,K=4,yt=oe({__name:"calltranslate",setup(kt){const j=[{c:"zh",n:"中文"},{c:"en",n:"英文"},{c:"ja",n:"日语"},{c:"ko",n:"韩语"},{c:"fr",n:"法语"},{c:"de",n:"德语"},{c:"es",n:"西班牙语"},{c:"pt",n:"葡萄牙语"},{c:"ru",n:"俄语"},{c:"ar",n:"阿拉伯语"},{c:"th",n:"泰语"},{c:"vi",n:"越南语"},{c:"id",n:"印尼语"},{c:"ms",n:"马来语"},{c:"hi",n:"印地语"}];function h(l){const t=j.find(s=>s.c===l);return t?t.n:l||""}const f=[{value:1,label:"中国"},{value:2,label:"美国"},{value:3,label:"东亚"},{value:4,label:"东南亚"},{value:5,label:"南亚"},{value:6,label:"中东"},{value:7,label:"欧洲"},{value:8,label:"俄罗斯"},{value:9,label:"非洲"},{value:10,label:"南美"},{value:11,label:"北美"},{value:12,label:"大洋洲"},{value:13,label:"巴西"},{value:14,label:"印度"}];function Q(l){const t=f.find(s=>s.value===l);return t?t.label:"区域"+l}const{webApi:_}=ve(),{success:S,error:T}=be(),R=c(!0),C=c([]),g=c([]),y=c(f.length?f[0].value:1),w=c(!1),x=c(null),O=c(0),n=ce({src:"zh",dst:"en",bidir:!1,mode:0,asr:"",mt:"",tts:"",ast:"",enable:!0});async function W(){try{const l=await _("getsvcconfigs",{});C.value=l?.items??[]}catch{R.value=!1,C.value=[]}}async function A(){try{const l=await _("getcalltranslatepairs",{region:y.value});g.value=l?.items??[]}catch{R.value=!1,g.value=[]}}function v(l){return C.value.filter(t=>t.enable&&(t.categories||"").split(",").map(Number).indexOf(l)>=0)}function V(l){const t=C.value.find(s=>s.id===l);return t?t.name:l||"未配置"}function P(l){n.src=l?.src_lang||"zh",n.dst=l?.dst_lang||"en",n.bidir=!!l?.bidir,n.mode=l?.mode!=null?l.mode:0,n.asr=l?.asr_svc_id||"",n.mt=l?.mt_svc_id||"",n.tts=l?.tts_svc_id||"",n.ast=l?.ast_svc_id||"",n.enable=l?l.enable!==!1:!0}function X(){x.value=null,P(null),w.value=!0}function Y(l){const t=g.value.find(s=>s.id===l)||null;x.value=t,P(t),w.value=!0}function M(){w.value=!1,x.value=null}function Z(){const l=n.mode;return{id:x.value?x.value.id:0,region:y.value,src_lang:n.src,dst_lang:n.dst,bidir:n.bidir,mode:l,asr_svc_id:l===0&&n.asr||"",mt_svc_id:l===0&&n.mt||"",tts_svc_id:l===0&&n.tts||"",ast_svc_id:l===1&&n.ast||"",enable:n.enable}}async function z(){const l=Z();if(!l.src_lang||!l.dst_lang)return T("源语言和目标语言必填"),!1;try{const t=await _("savecalltranslatepair",l);return O.value=t?.id??0,await A(),!0}catch(t){return T(t?.message??"保存失败"),!1}}function ee(l){window.confirm("确定删除这条语言对配置?")&&_("delcalltranslatepair",{ids:[l]}).then(()=>{S("已删除"),A()}).catch(t=>T(t?.message??"删除失败"))}const U=c(!1),B=c(""),b=c([]),D=re(()=>f.filter(l=>l.value!==y.value));function te(){const l=n.mode===0?"三段式拼接":"端到端 AST";B.value="将「"+h(n.src)+" → "+h(n.dst)+"」("+l+(n.bidir?",双向":"")+" )的服务编排同步到其他区域。",b.value=[],U.value=!0}function E(l){const t=b.value.indexOf(l);t>=0?b.value.splice(t,1):b.value.push(l)}function L(l){b.value=l?D.value.map(t=>t.value):[]}function I(){U.value=!1}async function se(){I(),await z()&&(M(),S("保存成功"))}async function le(){const l=[...b.value];if(I(),!!await z()){if(M(),!l.length){S("保存成功");return}try{const k=(await _("synccalltranslatepairs",{pair_ids:[O.value],target_regions:l}))?.synced??0,ne=l.map(ae=>Q(ae));S("已保存并同步到:"+ne.join("、")+"("+k+" 个)")}catch(s){T(s?.message??"同步失败")}}}return ie(async()=>{await Promise.all([W(),A()])}),(l,t)=>(o(),a("div",null,[R.value?p("",!0):(o(),a("div",me," ⚠ 「通话翻译配置」的后端接口尚未迁移到当前 console 服务,功能暂不可用。 ")),e("div",xe,[t[14]||(t[14]=e("div",null,[e("h2",{class:"text-lg font-semibold text-slate-800"},"通话翻译配置"),e("p",{class:"text-xs text-slate-400 mt-1"},"按区域和语言对配置翻译服务。支持三段式(ASR→MT→TTS)和端到端 AST 两种模式。")],-1)),e("div",pe,[t[13]||(t[13]=e("span",{class:"text-sm text-slate-500"},"区域",-1)),d(e("select",{"onUpdate:modelValue":t[0]||(t[0]=s=>y.value=s),class:"select select-bordered select-sm",onChange:A},[(o(),a(r,null,u(f,s=>e("option",{key:s.value,value:s.value},i(s.label),9,fe)),64))],544),[[m,y.value,void 0,{number:!0}]]),e("button",{class:"btn btn-primary btn-sm text-white",onClick:X},"+ 新增语言对")])]),d(e("div",_e,[e("div",ge,[e("h3",ye,i(x.value?"编辑语言对":"新增语言对"),1),e("button",{class:"btn btn-ghost btn-xs",onClick:M},"✕ 关闭")]),e("div",ke,[e("div",he,[t[15]||(t[15]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"源语言 *")],-1)),d(e("select",{"onUpdate:modelValue":t[1]||(t[1]=s=>n.src=s),class:"select select-bordered select-sm"},[(o(),a(r,null,u(j,s=>e("option",{key:s.c,value:s.c},i(s.n),9,Se)),64))],512),[[m,n.src]])]),e("div",Te,[t[16]||(t[16]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"目标语言 *")],-1)),d(e("select",{"onUpdate:modelValue":t[2]||(t[2]=s=>n.dst=s),class:"select select-bordered select-sm"},[(o(),a(r,null,u(j,s=>e("option",{key:s.c,value:s.c},i(s.n),9,Ce)),64))],512),[[m,n.dst]])]),e("div",we,[t[17]||(t[17]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"双向")],-1)),d(e("input",{"onUpdate:modelValue":t[3]||(t[3]=s=>n.bidir=s),type:"checkbox",class:"toggle toggle-primary mt-1"},null,512),[[G,n.bidir]])])]),e("div",Ae,[e("div",{class:N(["mtab",{on:n.mode===0}]),onClick:t[4]||(t[4]=s=>n.mode=0)},[...t[18]||(t[18]=[e("div",null,[e("div",{class:"font-bold text-sm"},"🧩 三段式拼接"),e("div",{class:"text-xs text-slate-400 mt-0.5"},"ASR → MT → TTS")],-1)])],2),e("div",{class:N(["mtab",{on:n.mode===1}]),onClick:t[5]||(t[5]=s=>n.mode=1)},[...t[19]||(t[19]=[e("div",null,[e("div",{class:"font-bold text-sm"},"⚡ 端到端 AST"),e("div",{class:"text-xs text-slate-400 mt-0.5"},"单服务直接完成语音翻译")],-1)])],2)]),e("div",null,[n.mode===0?(o(),a("div",Ve,[e("div",Me,[t[20]||(t[20]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"语音识别(ASR)")],-1)),d(e("select",{"onUpdate:modelValue":t[6]||(t[6]=s=>n.asr=s),class:"select select-bordered select-sm"},[v(q).length?p("",!0):(o(),a("option",je,"(无可用服务)")),(o(!0),a(r,null,u(v(q),s=>(o(),a("option",{key:s.id,value:s.id},i(s.name),9,Re))),128))],512),[[m,n.asr]])]),e("div",Ue,[t[21]||(t[21]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"机器翻译(MT)")],-1)),d(e("select",{"onUpdate:modelValue":t[7]||(t[7]=s=>n.mt=s),class:"select select-bordered select-sm"},[v(J).length?p("",!0):(o(),a("option",Ne,"(无可用服务)")),(o(!0),a(r,null,u(v(J),s=>(o(),a("option",{key:s.id,value:s.id},i(s.name),9,$e))),128))],512),[[m,n.mt]])]),e("div",Oe,[t[22]||(t[22]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"语音合成(TTS)")],-1)),d(e("select",{"onUpdate:modelValue":t[8]||(t[8]=s=>n.tts=s),class:"select select-bordered select-sm"},[v(H).length?p("",!0):(o(),a("option",Pe,"(无可用服务)")),(o(!0),a(r,null,u(v(H),s=>(o(),a("option",{key:s.id,value:s.id},i(s.name),9,ze))),128))],512),[[m,n.tts]])])])):(o(),a("div",Be,[t[23]||(t[23]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"端到端语音翻译服务(AST)")],-1)),d(e("select",{"onUpdate:modelValue":t[9]||(t[9]=s=>n.ast=s),class:"select select-bordered select-sm"},[v(K).length?p("",!0):(o(),a("option",De,"(无可用服务)")),(o(!0),a(r,null,u(v(K),s=>(o(),a("option",{key:s.id,value:s.id},i(s.name),9,Ee))),128))],512),[[m,n.ast]])]))]),e("div",Le,[e("label",Ie,[d(e("input",{"onUpdate:modelValue":t[10]||(t[10]=s=>n.enable=s),type:"checkbox",class:"checkbox checkbox-sm checkbox-primary"},null,512),[[G,n.enable]]),t[24]||(t[24]=de(" 启用 ",-1))]),e("div",{class:"flex gap-2"},[e("button",{class:"btn btn-ghost btn-sm",onClick:M},"取消"),e("button",{class:"btn btn-primary btn-sm text-white",onClick:te},"保存")])])],512),[[F,w.value]]),e("div",Fe,[g.value.length?p("",!0):(o(),a("div",Ge,[...t[25]||(t[25]=[e("div",{class:"text-5xl mb-3"},"🌐",-1),e("p",{class:"text-sm"},"当前区域暂无语言对配置",-1)])])),(o(!0),a(r,null,u(g.value,s=>(o(),a("div",{key:s.id,class:"pair-card",onClick:k=>Y(s.id)},[e("div",He,[e("div",Je,[e("span",Ke,i(h(s.src_lang)),1),e("span",Qe,i(s.bidir?"⇄":"→"),1),e("span",We,i(h(s.dst_lang)),1)]),e("div",Xe,[s.mode===0?(o(),a("span",Ye,"三段式拼接")):(o(),a("span",Ze,"端到端 AST")),s.enable?(o(),a("span",et,"启用")):(o(),a("span",tt,"停用")),e("button",{class:"btn btn-ghost btn-xs text-error",onClick:$(k=>ee(s.id),["stop"])},"删除",8,st)])]),s.mode===0?(o(),a("div",lt,[e("span",nt,"ASR: "+i(V(s.asr_svc_id)),1),t[26]||(t[26]=e("span",{class:"text-slate-300 text-sm"},"→",-1)),e("span",at,"MT: "+i(V(s.mt_svc_id)),1),t[27]||(t[27]=e("span",{class:"text-slate-300 text-sm"},"→",-1)),e("span",ot,"TTS: "+i(V(s.tts_svc_id)),1)])):(o(),a("div",it,[e("span",dt,"AST: "+i(V(s.ast_svc_id)),1)]))],8,qe))),128))]),d(e("div",ct,[e("div",rt,[e("div",ut,[e("div",vt,[(o(),a("svg",bt,[...t[28]||(t[28]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"},null,-1)])]))]),e("div",null,[t[29]||(t[29]=e("h3",{class:"text-base font-semibold text-slate-800"},"同步到其他区域",-1)),e("p",mt,i(B.value),1)])]),t[31]||(t[31]=e("div",{class:"text-xs px-3 py-2 rounded-lg mb-3",style:{background:"#f0fdf4",border:"1px solid #bbf7d0",color:"#15803d"}}," ✦ 同步内容:服务组合(模式 + 各段服务)将被复制到目标区域。 ",-1)),e("div",xt,[t[30]||(t[30]=e("span",{class:"text-xs font-semibold text-slate-500"},"选择目标区域",-1)),e("div",pt,[e("button",{class:"btn btn-ghost btn-xs",onClick:t[11]||(t[11]=s=>L(!0))},"全选"),e("button",{class:"btn btn-ghost btn-xs",onClick:t[12]||(t[12]=s=>L(!1))},"清空")])]),e("div",ft,[(o(!0),a(r,null,u(D.value,s=>(o(),a("label",{key:s.value,class:N(["sync-region-item",{checked:b.value.includes(s.value)}]),onClick:$(k=>E(s.value),["prevent"])},[e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary",checked:b.value.includes(s.value),onClick:$(k=>E(s.value),["stop"])},null,8,gt),e("span",null,i(s.label),1)],10,_t))),128))]),t[32]||(t[32]=e("p",{class:"text-[11px] text-slate-400 mb-5"},"⚠ 目标区域相同语言对已存在则覆盖,否则新建。",-1)),e("div",{class:"flex gap-3 justify-end"},[e("button",{class:"btn btn-ghost",onClick:se},"仅保存当前区域"),e("button",{class:"btn btn-primary text-white",onClick:le},"保存并同步")])])],512),[[F,U.value]])]))}}),Ct=ue(yt,[["__scopeId","data-v-51f11136"]]);export{Ct as default}; diff --git a/apps/admin/.output/public/_nuxt/BeU4EYjt.js b/apps/admin/.output/public/_nuxt/BeU4EYjt.js new file mode 100644 index 00000000..5d14f607 --- /dev/null +++ b/apps/admin/.output/public/_nuxt/BeU4EYjt.js @@ -0,0 +1 @@ +import{g as I,j as A,c as a,k as n,v as T,a as e,F as C,r as M,p as P,m,l as B,t as d,D as j,n as H,q,s as u,x as z,A as R,o as i}from"./CTAruH_8.js";import{u as G}from"./9B2ftqmN.js";import{u as O}from"./lLLegusN.js";import"./D9HxoMhB.js";import"./yUUyh6cG.js";const Y={class:"flex items-center justify-between mb-5"},J={class:"flex items-center gap-3 mb-4"},K=["value"],Q={class:"bg-white rounded-xl shadow-sm border border-slate-100"},W={class:"overflow-x-auto"},X={class:"table table-zebra"},Z={key:0},ee={key:1},te={class:"font-mono text-sm font-medium"},le={class:"text-sm"},se={class:"badge badge-ghost badge-sm"},oe={class:"badge badge-sm badge-outline"},ne=["title"],ae={class:"text-sm text-slate-400"},ie={key:0},de={key:1,class:"text-slate-300"},re={key:0,class:"badge badge-success badge-sm text-white"},ue={key:1,class:"badge badge-ghost badge-sm"},me={class:"text-right"},be={class:"inline-flex gap-1"},pe=["onClick"],ce=["onClick"],ve={class:"flex items-center gap-3 mb-5"},fe={class:"text-lg font-semibold text-slate-800"},ge={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-2xl"},xe={class:"grid grid-cols-2 gap-4"},ye={class:"form-control mb-4"},we=["readonly"],_e={class:"text-xs text-slate-400 mt-1"},he={class:"form-control mb-4"},ke={class:"form-control mb-4"},Ce=["value"],Me={class:"form-control mb-4"},Pe={class:"form-control mb-4"},Ve={class:"form-control mb-4"},Se={class:"form-control mb-4"},Ue={class:"form-control mb-6"},Te={class:"label cursor-pointer justify-start gap-3"},De={class:"flex gap-3"},Le=["disabled"],Be=I({__name:"mcpconfig",setup(Ee){const f=[{value:1,label:"中国"},{value:2,label:"美国"},{value:3,label:"东亚"},{value:4,label:"东南亚"},{value:5,label:"南亚"},{value:6,label:"中东"},{value:7,label:"欧洲"},{value:8,label:"俄罗斯"},{value:9,label:"非洲"},{value:10,label:"南美"},{value:11,label:"北美"},{value:12,label:"大洋洲"},{value:13,label:"巴西"},{value:14,label:"印度"}];function D(o){const t=Number(o)||0,l=f.find(k=>k.value===t);return l?l.label:t===0?"通用":"区域"+t}const L={0:"HTTP",1:"SSE"};function E(o){const t=Number(o)||0;return L[t]||String(o??"HTTP")}const{webApi:g}=G(),{success:V,error:x,warn:N}=O(),p=u("list"),c=u([]),y=u(!1),w=u(!1),r=u(!1),b=u(0),_=u(""),s=z({id:"",name:"",region:1,type:0,url:"",tools:"",description:"",enable:!0}),S=R(()=>{const o=_.value.trim().toLowerCase();return o?c.value.filter(t=>((t.id||"")+(t.name||"")).toLowerCase().includes(o)):c.value});async function v(){y.value=!0;try{const o=await g("getmcpservers",{region:b.value});c.value=o?.servers??[]}catch(o){x(o?.message??"获取 MCP 服务失败"),c.value=[]}finally{y.value=!1}}function h(){p.value="list",v()}function U(o){o?(r.value=!0,s.id=o.id||"",s.name=o.name||"",s.region=o.region||1,s.type=o.type!=null?o.type:0,s.url=o.url||"",s.tools=o.tools||"",s.description=o.description||"",s.enable=!!o.enable):(r.value=!1,s.id="",s.name="",s.region=b.value>0?b.value:1,s.type=0,s.url="",s.tools="",s.description="",s.enable=!0),p.value="form"}async function $(){const o={id:s.id.trim(),name:s.name.trim(),region:Number(s.region)||0,type:Number(s.type)||0,url:s.url.trim(),tools:s.tools.trim(),description:s.description.trim(),enable:s.enable};if(!o.id){N("服务ID 必填");return}w.value=!0;try{await g(r.value?"updatemcpserver":"addmcpserver",o),V("保存成功"),h()}catch(t){x(t?.message??"保存失败")}finally{w.value=!1}}function F(o){window.confirm(`确定删除 MCP 服务 "${o}" 吗?`)&&g("delmcpserver",{ids:[o]}).then(()=>{V("删除成功"),v()}).catch(t=>x(t?.message??"删除失败"))}return A(v),(o,t)=>(i(),a("div",null,[n(e("div",null,[e("div",Y,[t[13]||(t[13]=e("div",null,[e("h2",{class:"text-lg font-semibold text-slate-800"},"MCP 配置"),e("p",{class:"text-xs text-slate-400 mt-1"},"MCP(模型上下文协议)服务器,按区域分组,所有应用共享。修改后各服务约 10 分钟内自动同步。")],-1)),e("button",{class:"btn btn-primary btn-sm text-white",onClick:t[0]||(t[0]=l=>U())},"+ 新增 MCP 服务")]),e("div",J,[t[15]||(t[15]=e("span",{class:"text-sm text-slate-500"},"区域筛选",-1)),n(e("select",{"onUpdate:modelValue":t[1]||(t[1]=l=>b.value=l),class:"select select-bordered select-sm",onChange:v},[t[14]||(t[14]=e("option",{value:0},"全部区域",-1)),(i(),a(C,null,M(f,l=>e("option",{key:l.value,value:l.value},d(l.label),9,K)),64))],544),[[P,b.value,void 0,{number:!0}]]),n(e("input",{"onUpdate:modelValue":t[2]||(t[2]=l=>_.value=l),class:"input input-bordered input-sm w-48",placeholder:"按ID/名称搜索"},null,512),[[m,_.value]])]),e("div",Q,[e("div",W,[e("table",X,[t[18]||(t[18]=e("thead",null,[e("tr",null,[e("th",null,"服务ID"),e("th",null,"名称"),e("th",null,"区域"),e("th",null,"类型"),e("th",null,"地址"),e("th",null,"工具"),e("th",null,"状态"),e("th",{class:"text-right"},"操作")])],-1)),e("tbody",null,[y.value?(i(),a("tr",Z,[...t[16]||(t[16]=[e("td",{colspan:"8",class:"text-center py-8"},[e("span",{class:"loading loading-spinner loading-sm"})],-1)])])):S.value.length?B("",!0):(i(),a("tr",ee,[...t[17]||(t[17]=[e("td",{colspan:"8",class:"text-center text-slate-400 py-8"},"暂无 MCP 服务",-1)])])),(i(!0),a(C,null,M(S.value,l=>(i(),a("tr",{key:l.id},[e("td",te,d(l.id||""),1),e("td",le,d(l.name||""),1),e("td",null,[e("span",se,d(D(l.region)),1)]),e("td",null,[e("span",oe,d(E(l.type)),1)]),e("td",{class:"text-sm text-slate-500 max-w-xs truncate",title:l.url||""},d(l.url||""),9,ne),e("td",ae,[l.tools&&l.tools.trim()?(i(),a("span",ie,d(l.tools),1)):(i(),a("span",de,"全部"))]),e("td",null,[l.enable?(i(),a("span",re,"启用")):(i(),a("span",ue,"停用"))]),e("td",me,[e("div",be,[e("button",{class:"btn btn-ghost btn-xs",onClick:k=>U(l)},"编辑",8,pe),e("button",{class:"btn btn-ghost btn-xs text-red-500",onClick:k=>F(l.id)},"删除",8,ce)])])]))),128))])])])])],512),[[T,p.value==="list"]]),n(e("div",null,[e("div",ve,[e("button",{class:"btn btn-ghost btn-sm",onClick:t[3]||(t[3]=l=>h())},"← 返回列表"),e("h2",fe,d(r.value?"编辑 MCP 服务":"新增 MCP 服务"),1)]),e("div",ge,[e("form",{onSubmit:j($,["prevent"])},[e("div",xe,[e("div",ye,[t[19]||(t[19]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"服务ID *")],-1)),n(e("input",{"onUpdate:modelValue":t[4]||(t[4]=l=>s.id=l),type:"text",class:H(["input input-bordered w-full",{"bg-slate-100":r.value}]),readonly:r.value,required:"",placeholder:"如 gaode_map"},null,10,we),[[m,s.id]]),e("span",_e,d(r.value?"编辑模式下不可修改":"唯一标识,创建后不可修改"),1)]),e("div",he,[t[20]||(t[20]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"名称")],-1)),n(e("input",{"onUpdate:modelValue":t[5]||(t[5]=l=>s.name=l),type:"text",class:"input input-bordered w-full"},null,512),[[m,s.name]])]),e("div",ke,[t[21]||(t[21]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"区域 *")],-1)),n(e("select",{"onUpdate:modelValue":t[6]||(t[6]=l=>s.region=l),class:"select select-bordered w-full"},[(i(),a(C,null,M(f,l=>e("option",{key:l.value,value:l.value},d(l.label),9,Ce)),64))],512),[[P,s.region,void 0,{number:!0}]])]),e("div",Me,[t[23]||(t[23]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"类型")],-1)),n(e("select",{"onUpdate:modelValue":t[7]||(t[7]=l=>s.type=l),class:"select select-bordered w-full"},[...t[22]||(t[22]=[e("option",{value:0},"HTTP",-1),e("option",{value:1},"SSE",-1)])],512),[[P,s.type,void 0,{number:!0}]])])]),e("div",Pe,[t[24]||(t[24]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"服务地址 (url)")],-1)),n(e("input",{"onUpdate:modelValue":t[8]||(t[8]=l=>s.url=l),type:"text",class:"input input-bordered w-full font-mono text-sm",placeholder:"https://..."},null,512),[[m,s.url]])]),e("div",Ve,[t[25]||(t[25]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"启用工具 (tools)")],-1)),n(e("input",{"onUpdate:modelValue":t[9]||(t[9]=l=>s.tools=l),type:"text",class:"input input-bordered w-full",placeholder:"逗号分隔,留空表示全部启用"},null,512),[[m,s.tools]])]),e("div",Se,[t[26]||(t[26]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"描述")],-1)),n(e("input",{"onUpdate:modelValue":t[10]||(t[10]=l=>s.description=l),type:"text",class:"input input-bordered w-full"},null,512),[[m,s.description]])]),e("div",Ue,[e("label",Te,[n(e("input",{"onUpdate:modelValue":t[11]||(t[11]=l=>s.enable=l),type:"checkbox",class:"toggle toggle-primary"},null,512),[[q,s.enable]]),t[27]||(t[27]=e("span",{class:"label-text font-medium"},"启用该服务",-1))])]),e("div",De,[e("button",{type:"button",class:"btn btn-ghost",onClick:t[12]||(t[12]=l=>h())},"取消"),e("button",{type:"submit",class:"btn btn-primary text-white",disabled:w.value},"保存",8,Le)])],32)])],512),[[T,p.value==="form"]])]))}});export{Be as default}; diff --git a/apps/admin/.output/public/_nuxt/Bi5c3E0c.js b/apps/admin/.output/public/_nuxt/Bi5c3E0c.js new file mode 100644 index 00000000..e9c92ee2 --- /dev/null +++ b/apps/admin/.output/public/_nuxt/Bi5c3E0c.js @@ -0,0 +1,4 @@ +import{g as z,j as G,K as P,c as a,a as e,d as u,k as x,p as U,F as f,r as B,m as Y,q as Z,t as n,s as i,A as E,o,n as F,l as A,_ as J}from"./CTAruH_8.js";import{u as Q}from"./9B2ftqmN.js";import{u as W}from"./lLLegusN.js";import"./D9HxoMhB.js";import"./yUUyh6cG.js";const X=globalThis.setInterval,$={class:"flex items-center justify-between mb-4 flex-wrap gap-3"},tt={class:"flex items-center gap-2 flex-wrap"},et=["value"],st={class:"flex items-center gap-1 text-xs text-slate-500 cursor-pointer"},lt={class:"flex items-center gap-4 mb-3 text-xs text-slate-500"},nt={class:"text-slate-700"},at={class:"text-slate-700"},ot={class:"text-slate-700"},rt={class:"muted"},ut={class:"panel overflow-hidden"},it={id:"logBody",style:{"max-height":"calc(100vh - 230px)","overflow-y":"auto"}},ct={key:0,class:"text-center text-slate-400 py-10"},dt={key:1,class:"text-center text-red-400 py-10"},vt={key:2,class:"text-center text-slate-400 py-10"},pt={class:"t"},mt={class:"app-name"},ft={key:0,class:"unreg",title:"该应用名未在 console 注册,快照已收到但不会写入统计库"},gt={key:1,class:"muted"},xt={class:"muted"},_t={class:"muted"},yt={class:"muted"},bt={key:0,class:"muted"},ht={class:"t"},wt={key:0,class:"late"},kt=z({__name:"statlog",setup(Ct){const{webApi:I}=Q(),{success:O,error:R}=W(),j={cn:"中国",us:"美国",ea:"东亚",sea:"东南亚",sa:"南亚",me:"中东",eu:"欧洲",ru:"俄罗斯",af:"非洲",sam:"南美",nam:"北美",oc:"大洋洲",br:"巴西",in:"印度"};function D(l){return l?j[l]||l:"-"}const c=i([]),_=i(!1),g=i(""),L=i("-"),N=i("-"),y=i(""),v=i(0),b=i(""),h=i(""),w=i(!1);let d=null;function p(l=0){const s=new Date(Date.now()+l*864e5),t=new Intl.DateTimeFormat("en-CA",{timeZone:"Asia/Shanghai",year:"numeric",month:"2-digit",day:"2-digit"}).format(s);return parseInt(t.replace(/-/g,""),10)}function k(l){const s=""+l;return s.length===8?s.slice(0,4)+"-"+s.slice(4,6)+"-"+s.slice(6,8):s}function C(l){if(!l)return"--";const s=new Date(l*1e3),t=r=>r<10?"0"+r:""+r;return t(s.getHours())+":"+t(s.getMinutes())+":"+t(s.getSeconds())}function S(l){return l?"0x"+(l>>>0).toString(16).toUpperCase():"全部"}const V=E(()=>[{value:p(0),label:"今天 "+k(p(0))},{value:p(-1),label:"昨天 "+k(p(-1))}]);function M(l){return l==="error"?{cls:"lv-error",txt:"解析失败"}:l==="warn"?{cls:"lv-warn",txt:"未落库"}:{cls:"lv-info",txt:"已落库"}}function H(l){return!!(l.snap_ts&&l.ts&&l.ts-l.snap_ts>120)}const T=E(()=>{const l=b.value,s=h.value.trim().toLowerCase();return c.value.filter(t=>!(l&&t.level!==l||s&&((t.app||"")+" "+(t.region||"")+" "+D(t.region)+" "+(t.product_id||"")+" "+S(t.product_id)+" "+(t.stat_day||"")).toLowerCase().indexOf(s)<0))});async function m(){_.value=!0,g.value="";try{const l=await I("getstatlogs",{day:v.value||0});c.value=l?.entries||[],L.value=l?.total!=null?l.total:c.value.length,N.value=c.value.length?C(c.value[0].ts):"--"}catch(l){g.value=l?.message||"网络异常"}finally{_.value=!1}}async function K(){const l=v.value||0,s=V.value.find(r=>r.value===l),t=s?s.label:""+l;if(window.confirm("确定清空「"+t+`」的接收流水吗? + +只清除本核对面板的记录,不影响已落库的统计数据。 +清空后可重新触发埋点,观察是否正常进来。`))try{const r=await I("clearstatlogs",{day:l});O("已清空 "+(r&&r.cleared!=null?r.cleared:0)+" 条"),m()}catch(r){R("清空失败:"+(r?.message||"网络异常"))}}function q(){w.value?(d=X(m,15e3),y.value="· 每 15 秒自动刷新"):(d&&clearInterval(d),d=null,y.value="")}return G(()=>{v.value=p(0),m()}),P(()=>{d&&clearInterval(d)}),(l,s)=>(o(),a("div",null,[e("div",$,[s[6]||(s[6]=e("div",null,[e("h2",{class:"text-lg font-bold text-slate-700"},"统计日志"),e("p",{class:"text-xs text-slate-400 mt-0.5"},[u("console 从 NATS 收到的「当日统计快照」接收流水(最新在前,按接收时间分天存 Redis)。各业务部署每个同步周期/启动时/0点 推送一次当日绝对快照,console 收到后覆盖落库。用于核对每个部署是否在正常汇报;带 "),e("span",{class:"unreg"},"未注册"),u(" 的应用快照已收到但"),e("b",null,"不会落库"),u("(应用名需与 console 注册表完全一致)。")])],-1)),e("div",tt,[x(e("select",{"onUpdate:modelValue":s[0]||(s[0]=t=>v.value=t),class:"select select-bordered select-sm",onChange:m},[(o(!0),a(f,null,B(V.value,t=>(o(),a("option",{key:t.value,value:t.value},n(t.label),9,et))),128))],544),[[U,v.value,void 0,{number:!0}]]),x(e("select",{"onUpdate:modelValue":s[1]||(s[1]=t=>b.value=t),class:"select select-bordered select-sm"},[...s[4]||(s[4]=[e("option",{value:""},"全部级别",-1),e("option",{value:"info"},"已落库",-1),e("option",{value:"warn"},"未落库",-1),e("option",{value:"error"},"解析失败",-1)])],512),[[U,b.value]]),x(e("input",{"onUpdate:modelValue":s[2]||(s[2]=t=>h.value=t),class:"input input-bordered input-sm w-44",placeholder:"筛选 应用/区域/产品"},null,512),[[Y,h.value]]),e("label",st,[x(e("input",{"onUpdate:modelValue":s[3]||(s[3]=t=>w.value=t),type:"checkbox",class:"checkbox checkbox-xs",onChange:q},null,544),[[Z,w.value]]),s[5]||(s[5]=u(" 自动刷新 ",-1))]),e("button",{class:"btn btn-primary btn-sm text-white",onClick:m},"刷新"),e("button",{class:"btn btn-outline btn-error btn-sm",title:"清空本日核对流水(不影响已落库的统计数据),清空后可重新观察埋点是否正常进来",onClick:K},"清空本日")])]),e("div",lt,[e("span",null,[s[7]||(s[7]=u("该日保留 ",-1)),e("b",nt,n(L.value),1),s[8]||(s[8]=u(" 条",-1))]),e("span",null,[s[9]||(s[9]=u("当前显示 ",-1)),e("b",at,n(T.value.length),1),s[10]||(s[10]=u(" 条",-1))]),e("span",null,[s[11]||(s[11]=u("最近接收 ",-1)),e("b",ot,n(N.value),1)]),e("span",rt,n(y.value),1)]),e("div",ut,[s[12]||(s[12]=e("div",{id:"logHead"},[e("div",null,"接收时间"),e("div",null,"级别"),e("div",null,"应用 · 区域 · 产品"),e("div",null,"统计日"),e("div",null,"指标摘要 / 说明"),e("div",null,"快照时间")],-1)),e("div",it,[_.value?(o(),a("div",ct,"加载中...")):g.value?(o(),a("div",dt,"加载失败:"+n(g.value),1)):T.value.length?(o(!0),a(f,{key:3},B(T.value,(t,r)=>(o(),a("div",{key:r,class:"logrow"},[e("div",pt,n(C(t.ts)),1),e("div",null,[e("span",{class:F(["lv",M(t.level).cls])},n(M(t.level).txt),3)]),e("div",null,[t.app?(o(),a(f,{key:0},[e("span",mt,n(t.app),1),t.registered?A("",!0):(o(),a("span",ft,"未注册"))],64)):(o(),a("span",gt,"(无应用名)")),e("span",xt," · "+n(D(t.region)),1),e("span",_t," · "+n(S(t.product_id)),1)]),e("div",yt,n(t.stat_day?k(t.stat_day):"-"),1),e("div",null,[t.msg?(o(),a(f,{key:0},[e("span",{class:F(t.level==="error"?"text-red-600":"text-amber-600")},n(t.msg),3),t.summary?(o(),a("span",bt," · "+n(t.summary),1)):A("",!0)],64)):(o(),a(f,{key:1},[u(n(t.summary||"无增量"),1)],64))]),e("div",ht,[u(n(C(t.snap_ts)),1),H(t)?(o(),a("span",wt,"迟到"+n(t.ts-t.snap_ts)+"s",1)):A("",!0)])]))),128)):(o(),a("div",vt,n(c.value.length?"无匹配记录":"该日暂无接收记录"),1))])])]))}}),Nt=J(kt,[["__scopeId","data-v-742ee359"]]);export{Nt as default}; diff --git a/apps/admin/.output/public/_nuxt/BlypHpHg.js b/apps/admin/.output/public/_nuxt/BroHRKpP.js similarity index 94% rename from apps/admin/.output/public/_nuxt/BlypHpHg.js rename to apps/admin/.output/public/_nuxt/BroHRKpP.js index b8d83d85..788926c2 100644 --- a/apps/admin/.output/public/_nuxt/BlypHpHg.js +++ b/apps/admin/.output/public/_nuxt/BroHRKpP.js @@ -1 +1 @@ -import{_ as s}from"./0ubqzWuP.js";import{_ as a,o as i,c as u,a as t,t as n,b as c,w as l,d}from"./96IDI_OR.js";import{u as f}from"./C5ETpaZb.js";const p={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},m={class:"max-w-520px text-center"},h=["textContent"],b=["textContent"],x=["textContent"],g={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:404},statusText:{type:String,default:"Page not found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const r=e;return f({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--un-default-border-color,#e5e7eb)}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,_)=>{const o=s;return i(),u("div",p,[t("div",m,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:n(e.status)},null,8,h),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:n(e.statusText)},null,8,b),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:n(e.description)},null,8,x),t("div",g,[c(o,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:l(()=>[d(n(e.backHome),1)]),_:1})])])])}}},z=a(y,[["__scopeId","data-v-52418c85"]]);export{z as default}; +import{_ as s}from"./CnkSDgVO.js";import{_ as a,o as i,c as u,a as t,t as n,b as c,w as l,d}from"./CTAruH_8.js";import{u as f}from"./DpWhlKu2.js";const p={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},m={class:"max-w-520px text-center"},h=["textContent"],b=["textContent"],x=["textContent"],g={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:404},statusText:{type:String,default:"Page not found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const r=e;return f({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{box-sizing:border-box;border-width:0;border-style:solid;border-color:var(--un-default-border-color,#e5e7eb)}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,_)=>{const o=s;return i(),u("div",p,[t("div",m,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:n(e.status)},null,8,h),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:n(e.statusText)},null,8,b),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:n(e.description)},null,8,x),t("div",g,[c(o,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:l(()=>[d(n(e.backHome),1)]),_:1})])])])}}},z=a(y,[["__scopeId","data-v-52418c85"]]);export{z as default}; diff --git a/apps/admin/.output/public/_nuxt/Bxcdr2qc.js b/apps/admin/.output/public/_nuxt/Bxcdr2qc.js new file mode 100644 index 00000000..c1b34b0e --- /dev/null +++ b/apps/admin/.output/public/_nuxt/Bxcdr2qc.js @@ -0,0 +1 @@ +import{g as P,j as R,c as r,k as n,v as V,a as t,l as B,F as H,r as I,t as i,D as L,m as a,q as O,s as b,x as E,A as q,o as u,n as D,d as z}from"./CTAruH_8.js";import{u as G}from"./9B2ftqmN.js";import{u as K}from"./lLLegusN.js";import"./D9HxoMhB.js";import"./yUUyh6cG.js";const Y={class:"flex items-center justify-between mb-5"},J={class:"bg-white rounded-xl shadow-sm border border-slate-100"},Q={class:"overflow-x-auto"},W={class:"table table-zebra text-sm"},X={key:0},Z={key:1},tt={class:"font-mono"},st={class:"font-medium"},et={class:"font-mono text-xs text-slate-500"},lt={class:"text-xs text-slate-500"},ot={key:0,class:"text-green-600"},nt={key:1,class:"text-slate-400"},at={class:"flex gap-1"},dt=["onClick"],it=["onClick"],rt={class:"flex items-center gap-3 mb-5"},ut={class:"text-lg font-semibold text-slate-800"},pt={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-3xl"},mt={class:"grid grid-cols-2 gap-4"},bt={class:"form-control"},ft={class:"form-control"},ct={class:"grid grid-cols-3 gap-4"},xt={class:"form-control col-span-2"},vt={class:"form-control"},gt={class:"form-control mt-4"},yt={class:"form-control mt-4"},_t={class:"grid grid-cols-2 gap-4"},kt={class:"form-control"},wt={class:"form-control"},ht={class:"form-control"},St={class:"form-control"},Vt={class:"grid grid-cols-2 gap-4"},Ut={class:"form-control"},Ct={class:"form-control"},Ht={class:"grid grid-cols-2 gap-4 mt-4"},It={class:"form-control"},Et={class:"form-control"},Dt={class:"form-control mt-4"},Tt={class:"flex items-center gap-2 mt-4"},Nt={class:"flex items-center gap-2 cursor-pointer"},$t={class:"mt-4 text-sm space-y-0.5"},jt={class:"flex gap-3 mt-6"},At=["disabled"],Ft=["disabled"],qt=P({__name:"environments",setup(Mt){const{consoleApi:c}=G(),{success:_,error:m}=K(),x=b("list"),v=b([]),k=b(!1),g=b(!1),f=b(!1),y=b(!1),d=E({show:!1,ok:!1,ssh_ok:!1,ssh_msg:"",etcd_ok:!1,etcd_msg:"",redis_ok:!1,redis_msg:"",nats_ok:!1,nats_msg:""}),T=q(()=>[{key:"ssh",label:"SSH 部署机",ok:d.ssh_ok,msg:d.ssh_msg},{key:"etcd",label:"ETCD",ok:d.etcd_ok,msg:d.etcd_msg},{key:"redis",label:"Redis",ok:d.redis_ok,msg:d.redis_msg},{key:"nats",label:"NATS",ok:d.nats_ok,msg:d.nats_msg}]);function w(){return{id:0,name:"",code:"",remark:"",enabled:!0,ssh_host:"",ssh_port:22,ssh_user:"root",ssh_private_key:"",registry:"",registry_user:"",registry_pass:"",docker_network:"1panel-network",etcd_servers:"",redis_addr:"",redis_pwd:"",nats_url:""}}const l=E(w());function U(o){Object.assign(l,w(),o)}function N(o){return o.ssh_host?`${o.ssh_user||"root"}@${o.ssh_host}:${o.ssh_port||22}`:"-"}function $(o){return o.registry||"-"}async function h(){k.value=!0;try{const o=await c("envs/list",{});v.value=o??[]}catch(o){m(o?.message??"获取环境列表失败"),v.value=[]}finally{k.value=!1}}function p(){f.value=!1,d.show=!1}function S(){x.value="list",h()}function C(o){o?(g.value=!0,U(o)):(g.value=!1,U(w())),p(),x.value="form"}async function j(){if(!l.ssh_host.trim()){m("请先填 SSH 主机");return}y.value=!0;try{const o=await c("envs/test",{...l});Object.assign(d,o,{show:!0}),f.value=!!o.ok,f.value?_("SSH 握手成功,可以保存"):m("SSH 未通过,请检查主机/私钥/用户")}catch(o){m(o?.message??"测试失败")}finally{y.value=!1}}async function A(){if(!f.value){m("请先「测试连接」通过再保存");return}const o={...l};let s="envs/add";g.value&&l.id?(o.id=Number(l.id),s="envs/update"):delete o.id;try{await c(s,o),_("保存成功"),S()}catch(e){m(e?.message??"失败")}}function F(o){window.confirm(`删除环境 #${o} ?(该环境下若有应用关联将被拒绝)`)&&c("envs/del",{id:o}).then(()=>{_("已删除"),h()}).catch(s=>m(s?.message??"失败"))}return R(h),(o,s)=>(u(),r("div",null,[n(t("div",null,[t("div",Y,[s[19]||(s[19]=t("div",null,[t("h2",{class:"text-lg font-semibold text-slate-800"},"环境节点(部署服务器)"),t("p",{class:"text-sm text-slate-400 mt-1"},"部署服务器节点(如 上海 / 日本 / 新加坡):远端 IP、SSH 登录账号与私钥、私有镜像仓库、区域共享基础设施。应用管理里「部署到目标环境」从这里选择、两边对应;下一期即可从页面直接更新服务/部署应用。密钥加密存储,不回显明文。")],-1)),t("button",{class:"btn btn-primary btn-sm text-white",onClick:s[0]||(s[0]=e=>C())},"+ 新增节点")]),t("div",J,[t("div",Q,[t("table",W,[s[22]||(s[22]=t("thead",null,[t("tr",null,[t("th",null,"ID"),t("th",null,"名称"),t("th",null,"区域码"),t("th",null,"SSH 目标"),t("th",null,"镜像仓库"),t("th",null,"启用"),t("th",null,"操作")])],-1)),t("tbody",null,[k.value?(u(),r("tr",X,[...s[20]||(s[20]=[t("td",{colspan:"7",class:"text-center py-8"},[t("span",{class:"loading loading-spinner loading-sm"})],-1)])])):v.value.length?B("",!0):(u(),r("tr",Z,[...s[21]||(s[21]=[t("td",{colspan:"7",class:"text-center text-slate-400 py-8"},"暂无环境",-1)])])),(u(!0),r(H,null,I(v.value,e=>(u(),r("tr",{key:e.id},[t("td",tt,i(e.id),1),t("td",st,i(e.name||""),1),t("td",null,i(e.code||""),1),t("td",et,i(N(e)),1),t("td",lt,i($(e)),1),t("td",null,[e.enabled?(u(),r("span",ot,"是")):(u(),r("span",nt,"否"))]),t("td",null,[t("div",at,[t("button",{class:"btn btn-ghost btn-xs",onClick:M=>C(e)},"编辑",8,dt),t("button",{class:"btn btn-ghost btn-xs text-red-500",onClick:M=>F(e.id)},"删除",8,it)])])]))),128))])])])])],512),[[V,x.value==="list"]]),n(t("div",null,[t("div",rt,[t("button",{class:"btn btn-ghost btn-sm",onClick:s[1]||(s[1]=e=>S())},"← 返回"),t("h2",ut,i(g.value?"编辑节点":"新增节点"),1)]),t("div",pt,[t("form",{onSubmit:L(A,["prevent"])},[t("div",mt,[t("div",bt,[s[23]||(s[23]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"名称 *")],-1)),n(t("input",{"onUpdate:modelValue":s[2]||(s[2]=e=>l.name=e),type:"text",class:"input input-bordered w-full",required:"",placeholder:"如 上海生产"},null,512),[[a,l.name]])]),t("div",ft,[s[24]||(s[24]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"区域码")],-1)),n(t("input",{"onUpdate:modelValue":s[3]||(s[3]=e=>l.code=e),type:"text",class:"input input-bordered w-full",list:"env-code-list",placeholder:"shanghai / japan / singapore"},null,512),[[a,l.code]]),s[25]||(s[25]=t("datalist",{id:"env-code-list"},[t("option",{value:"shanghai"}),t("option",{value:"japan"}),t("option",{value:"singapore"})],-1))])]),s[41]||(s[41]=t("div",{class:"divider text-xs text-slate-400 mt-6"},"SSH 部署目标",-1)),t("div",ct,[t("div",xt,[s[26]||(s[26]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"SSH 主机")],-1)),n(t("input",{"onUpdate:modelValue":s[4]||(s[4]=e=>l.ssh_host=e),type:"text",class:"input input-bordered w-full",placeholder:"139.224.212.237",onInput:p},null,544),[[a,l.ssh_host]])]),t("div",vt,[s[27]||(s[27]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"端口")],-1)),n(t("input",{"onUpdate:modelValue":s[5]||(s[5]=e=>l.ssh_port=e),type:"number",class:"input input-bordered w-full",placeholder:"22",onInput:p},null,544),[[a,l.ssh_port,void 0,{number:!0}]])])]),t("div",gt,[s[28]||(s[28]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"SSH 用户")],-1)),n(t("input",{"onUpdate:modelValue":s[6]||(s[6]=e=>l.ssh_user=e),type:"text",class:"input input-bordered w-full",placeholder:"root",onInput:p},null,544),[[a,l.ssh_user]])]),t("div",yt,[s[29]||(s[29]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"SSH 私钥 (PEM)")],-1)),n(t("textarea",{"onUpdate:modelValue":s[7]||(s[7]=e=>l.ssh_private_key=e),class:"textarea textarea-bordered w-full font-mono text-xs h-28",placeholder:"-----BEGIN OPENSSH PRIVATE KEY-----",onInput:p},null,544),[[a,l.ssh_private_key]]),s[30]||(s[30]=t("span",{class:"text-xs text-slate-400 mt-1"},"加密存储;编辑时显示 [encrypted] 表示不改,如需更换直接粘贴新私钥。",-1))]),s[42]||(s[42]=t("div",{class:"divider text-xs text-slate-400 mt-6"},"私有镜像仓库 + Docker 网络",-1)),t("div",_t,[t("div",kt,[s[31]||(s[31]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"仓库地址")],-1)),n(t("input",{"onUpdate:modelValue":s[8]||(s[8]=e=>l.registry=e),type:"text",class:"input input-bordered w-full",placeholder:"docker-registry.ideapsound.com"},null,512),[[a,l.registry]])]),t("div",wt,[s[32]||(s[32]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"Docker 网络")],-1)),n(t("input",{"onUpdate:modelValue":s[9]||(s[9]=e=>l.docker_network=e),type:"text",class:"input input-bordered w-full",placeholder:"1panel-network"},null,512),[[a,l.docker_network]])]),t("div",ht,[s[33]||(s[33]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"仓库账号")],-1)),n(t("input",{"onUpdate:modelValue":s[10]||(s[10]=e=>l.registry_user=e),type:"text",class:"input input-bordered w-full",autocomplete:"off"},null,512),[[a,l.registry_user]])]),t("div",St,[s[34]||(s[34]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"仓库密码")],-1)),n(t("input",{"onUpdate:modelValue":s[11]||(s[11]=e=>l.registry_pass=e),type:"password",class:"input input-bordered w-full",autocomplete:"new-password",placeholder:"[encrypted]"},null,512),[[a,l.registry_pass]])])]),s[43]||(s[43]=t("div",{class:"divider text-xs text-slate-400 mt-6"},"节点共享集群服务",-1)),s[44]||(s[44]=t("p",{class:"text-xs text-slate-400 -mt-2 mb-2"},"该服务器上各应用共用的地址。各应用自己的部署目录、业务库 DSN、镜像、redis 库号等,在「应用管理 → 部署到目标环境」里按应用填。",-1)),t("div",Vt,[t("div",Ut,[s[35]||(s[35]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"ETCD")],-1)),n(t("input",{"onUpdate:modelValue":s[12]||(s[12]=e=>l.etcd_servers=e),type:"text",class:"input input-bordered w-full font-mono text-xs",placeholder:"etcd:2379",onInput:p},null,544),[[a,l.etcd_servers]])]),t("div",Ct,[s[36]||(s[36]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"NATS")],-1)),n(t("input",{"onUpdate:modelValue":s[13]||(s[13]=e=>l.nats_url=e),type:"text",class:"input input-bordered w-full font-mono text-xs",placeholder:"nats://nats:4222",onInput:p},null,544),[[a,l.nats_url]])])]),t("div",Ht,[t("div",It,[s[37]||(s[37]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"Redis 地址")],-1)),n(t("input",{"onUpdate:modelValue":s[14]||(s[14]=e=>l.redis_addr=e),type:"text",class:"input input-bordered w-full font-mono text-xs",placeholder:"redis:6379",onInput:p},null,544),[[a,l.redis_addr]])]),t("div",Et,[s[38]||(s[38]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"Redis 密码")],-1)),n(t("input",{"onUpdate:modelValue":s[15]||(s[15]=e=>l.redis_pwd=e),type:"password",class:"input input-bordered w-full",autocomplete:"new-password",placeholder:"[encrypted]"},null,512),[[a,l.redis_pwd]])])]),t("div",Dt,[s[39]||(s[39]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"备注")],-1)),n(t("input",{"onUpdate:modelValue":s[16]||(s[16]=e=>l.remark=e),type:"text",class:"input input-bordered w-full"},null,512),[[a,l.remark]])]),t("div",Tt,[t("label",Nt,[n(t("input",{"onUpdate:modelValue":s[17]||(s[17]=e=>l.enabled=e),type:"checkbox",class:"toggle toggle-primary toggle-sm"},null,512),[[O,l.enabled]]),s[40]||(s[40]=t("span",{class:"text-sm"},"启用",-1))])]),n(t("div",$t,[(u(!0),r(H,null,I(T.value,e=>(u(),r("div",{key:e.key,class:D(e.ok?"text-green-700":"text-red-600")},[t("span",{class:D(e.ok?"text-green-600":"text-red-500")},i(e.ok?"✓":"✗"),3),z(" "+i(e.label)+":"+i(e.msg),1)],2))),128))],512),[[V,d.show]]),t("div",jt,[t("button",{type:"button",class:"btn btn-ghost",onClick:s[18]||(s[18]=e=>S())},"取消"),t("button",{type:"button",class:"btn btn-outline",disabled:y.value,onClick:j},i(y.value?"测试中...":"测试连接"),9,At),t("button",{type:"submit",class:"btn btn-primary text-white",disabled:!f.value},"保存",8,Ft)]),s[45]||(s[45]=t("p",{class:"text-xs text-slate-400 mt-2"},"需先「测试连接」(SSH 握手成功即可保存;基础设施逐项仅作提示)。",-1))],32)])],512),[[V,x.value==="form"]])]))}});export{qt as default}; diff --git a/apps/admin/.output/public/_nuxt/C2sLAWj2.js b/apps/admin/.output/public/_nuxt/C2sLAWj2.js new file mode 100644 index 00000000..e524eb08 --- /dev/null +++ b/apps/admin/.output/public/_nuxt/C2sLAWj2.js @@ -0,0 +1 @@ +import{g as ot,j as at,o as n,c as o,k as r,v as A,a as s,l as D,F as y,r as k,t as p,n as it,m as w,p as H,d as m,q as M,s as b,x as B,_ as dt}from"./CTAruH_8.js";import{u as ut}from"./9B2ftqmN.js";import{u as rt}from"./lLLegusN.js";import"./D9HxoMhB.js";import"./yUUyh6cG.js";const pt={class:"flex items-center justify-between mb-4"},ct={class:"bg-white rounded-xl shadow-sm border border-slate-100 overflow-hidden"},mt={class:"table table-sm"},bt={key:0},xt={key:1},vt={class:"font-mono"},ft={class:"font-medium"},yt={key:0,class:"text-green-600 text-xs"},gt={key:1,class:"text-slate-400 text-xs"},kt={key:0,class:"text-xs text-slate-500"},wt={key:1,class:"text-xs text-slate-300"},_t={key:1,class:"text-xs text-slate-300"},ht={key:2,class:"text-[11px] text-emerald-600 mt-0.5"},Ct={class:"text-xs text-slate-500"},Vt={class:"flex gap-1 justify-end"},Ut=["onClick"],It=["onClick"],St=["onClick"],Et=["onClick"],$t={class:"flex items-center gap-3 mb-5"},Nt={class:"text-lg font-semibold text-slate-800"},jt={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-2xl"},At={class:"grid grid-cols-2 gap-3"},Mt=["disabled"],Pt={class:"col-span-2"},Tt={class:"mt-4 border-t border-slate-100 pt-4"},Lt={class:"mb-3"},Ot={class:"flex flex-wrap gap-2"},Dt=["value"],Bt={class:"mb-3"},Gt={class:"flex flex-wrap gap-2"},Rt=["value"],Ft={key:1,class:"text-xs text-slate-300"},qt={class:"mb-3"},zt={class:"flex flex-wrap gap-2"},Ht=["value"],Jt={class:"max-h-56 overflow-y-auto pr-1 border border-slate-100 rounded-lg p-2"},Kt={key:0,class:"text-xs text-slate-300"},Qt={key:1,class:"text-xs text-slate-300"},Wt={class:"text-[11px] font-semibold text-slate-500 mb-1 sticky top-0 bg-white py-0.5"},Xt={class:"flex flex-wrap gap-2"},Yt=["value"],Zt={class:"flex gap-3 justify-end mt-6"},ts=["disabled"],ss={class:"modal-box max-w-md"},es={class:"text-xs text-slate-400 mb-3"},ls={class:"font-medium text-slate-600"},ns={class:"text-emerald-600"},os={class:"grid grid-cols-3 gap-3"},as={class:"modal-action"},is=ot({__name:"accounts",setup(ds){const{webApi:G,consoleApi:v}=ut(),{success:h,error:g,warn:J}=rt(),K={1:"超管",2:"管理员",3:"代理",4:"运营"},Q={1:"badge-error",2:"badge-primary",3:"badge-warning",4:"badge-info"},W=[["dashboard","仪表盘"],["factory","厂家管理"],["product","产品管理"],["device","生产管理"],["code","公码管理"],["user","用户查询"],["apps","应用注册"]],X=[["cn","中国"],["us","美国"],["ea","东亚"],["sea","东南亚"],["sa","南亚"],["me","中东"],["eu","欧洲"],["ru","俄罗斯"],["af","非洲"],["sam","南美"],["nam","北美"],["oc","大洋洲"],["br","巴西"],["in","印度"]],C=b("list"),V=b([]),U=b([]),P=b(!1),I=b(!1),f=b(0),a=B({username:"",password:"",identity:2,enabled:"1",remark:""}),d=B({access:[],apps:[],regions:[],products:[]}),_=b([]),T=b(!1);function x(l){return(l||"").split(",").map(t=>t.trim()).filter(t=>t)}function S(l){return l.join(",")}function R(l){const t=[];return l.apps&&t.push("应用:"+x(l.apps).length),l.regions&&t.push("区域:"+x(l.regions).length),l.products&&t.push("产品:"+x(l.products).length),l.access&&t.push("页面:"+x(l.access).length),t}async function E(){P.value=!0;try{try{U.value=await v("apps/list",{})??[]}catch{U.value=[]}const l=await v("accounts/list",{});V.value=l??[]}catch(l){g(l?.message??"获取账号列表失败"),V.value=[]}finally{P.value=!1}}async function Y(){T.value=!0,_.value=[];try{const[l,t]=await Promise.all([G("getfactorys",{}),G("getproducts",{})]),e=l?.factorys??[],i=t?.products??[],$={};e.forEach(c=>{$[c.id]=c.factory||"厂家#"+c.id});const N={};i.forEach(c=>{const j=String(c.factoryid||0);(N[j]=N[j]||[]).push(c)});const nt=Object.keys(N).sort((c,j)=>(parseInt(c)||0)-(parseInt(j)||0));_.value=nt.map(c=>({fid:c,label:$[c]||(parseInt(c)?"厂家#"+c:"未分组"),products:N[c]??[]}))}catch{_.value=[]}finally{T.value=!1}}function F(l){f.value=l?l.id:0,a.username=l&&l.username||"",a.password="",a.identity=l?l.identity:2,a.enabled=l&&!l.enabled?"0":"1",a.remark=l&&l.remark||"",d.access=x(l?.access),d.apps=x(l?.apps),d.regions=x(l?.regions),d.products=x(l?.products),Y(),C.value="form"}function L(){C.value="list",E()}async function Z(){const l=a.identity,t={identity:l,enabled:a.enabled==="1",remark:a.remark.trim(),access:"",apps:"",regions:"",products:""};(l===3||l===4)&&(t.access=S(d.access),t.apps=S(d.apps),t.regions=S(d.regions),t.products=S(d.products)),I.value=!0;try{if(f.value)t.id=f.value,await v("accounts/update",t);else{if(t.username=a.username.trim(),t.password=a.password,!t.username||!t.password){g("用户名和密码必填"),I.value=!1;return}await v("accounts/add",t)}h("已保存"),L()}catch(e){g(e?.message??"保存失败")}finally{I.value=!1}}async function tt(l,t){const e=window.prompt("为账号【"+t+"】设置新密码:");if(e)try{await v("accounts/resetpwd",{id:l,password:e}),h("密码已重置")}catch(i){g(i?.message??"失败")}}function st(l,t){window.confirm("确认删除账号【"+t+"】?该操作不可恢复。")&&v("accounts/del",{id:l}).then(()=>{h("已删除"),E()}).catch(e=>g(e?.message??"失败"))}const O=b(null),q=b(0),u=B({name:"",cur:"",vipday:0,trademin:0,meetmin:0});function et(l){q.value=l.id,u.name=l.username||"#"+l.id,u.cur="VIP"+(l.balance_vipday||0)+"天 · 翻译"+(l.balance_trademin||0)+"分 · 会议"+(l.balance_meetmin||0)+"分",u.vipday=0,u.trademin=0,u.meetmin=0,O.value?.showModal()}function z(){O.value?.close()}async function lt(){const l=Number(u.vipday)||0,t=Number(u.trademin)||0,e=Number(u.meetmin)||0;if(!l&&!t&&!e){J("请至少填写一项");return}try{await v("accounts/topup",{account_id:q.value,vipday:l,trademin:t,meetmin:e}),h("余额已更新"),z(),E()}catch(i){g(i?.message??"操作失败")}}return at(E),(l,t)=>(n(),o("div",null,[r(s("div",null,[s("div",pt,[t[18]||(t[18]=s("div",null,[s("h2",{class:"text-lg font-bold text-slate-700"},"后台账号"),s("p",{class:"text-xs text-slate-400 mt-0.5"},"超管 / 管理员 / 代理 / 运营。代理·运营可绑定应用·区域·产品,登录后仪表盘按绑定限制。")],-1)),s("button",{class:"btn btn-primary btn-sm text-white",onClick:t[0]||(t[0]=e=>F())},"+ 新建账号")]),s("div",ct,[s("table",mt,[t[21]||(t[21]=s("thead",null,[s("tr",{class:"text-slate-500"},[s("th",null,"ID"),s("th",null,"用户名"),s("th",null,"角色"),s("th",null,"状态"),s("th",null,"绑定作用域"),s("th",null,"备注"),s("th",{class:"text-right"},"操作")])],-1)),s("tbody",null,[P.value?(n(),o("tr",bt,[...t[19]||(t[19]=[s("td",{colspan:"7",class:"text-center text-slate-400 py-8"},"加载中...",-1)])])):V.value.length?D("",!0):(n(),o("tr",xt,[...t[20]||(t[20]=[s("td",{colspan:"7",class:"text-center text-slate-400 py-8"},"暂无账号(引导超管不在此列)",-1)])])),(n(!0),o(y,null,k(V.value,e=>(n(),o("tr",{key:e.id},[s("td",vt,p(e.id),1),s("td",ft,p(e.username||""),1),s("td",null,[s("span",{class:it(["badge badge-sm",Q[e.identity]||""])},p(K[e.identity]||e.identity),3)]),s("td",null,[e.enabled?(n(),o("span",yt,"启用")):(n(),o("span",gt,"停用"))]),s("td",null,[e.identity===3||e.identity===4?(n(),o(y,{key:0},[R(e).length?(n(),o("span",kt,p(R(e).join(" · ")),1)):(n(),o("span",wt,"未绑定(不限)"))],64)):(n(),o("span",_t,"全部权限")),e.identity===3?(n(),o("div",ht," 余额 VIP"+p(e.balance_vipday||0)+"天 · 翻译"+p(e.balance_trademin||0)+"分 · 会议"+p(e.balance_meetmin||0)+"分 ",1)):D("",!0)]),s("td",Ct,p(e.remark||""),1),s("td",null,[s("div",Vt,[e.identity===3?(n(),o("button",{key:0,class:"btn btn-ghost btn-xs text-emerald-600",onClick:i=>et(e)},"充值",8,Ut)):D("",!0),s("button",{class:"btn btn-ghost btn-xs",onClick:i=>F(e)},"编辑",8,It),s("button",{class:"btn btn-ghost btn-xs text-amber-600",onClick:i=>tt(e.id,e.username)},"改密",8,St),s("button",{class:"btn btn-ghost btn-xs text-red-500",onClick:i=>st(e.id,e.username)},"删除",8,Et)])])]))),128))])])])],512),[[A,C.value==="list"]]),r(s("div",null,[s("div",$t,[s("button",{class:"btn btn-ghost btn-sm",onClick:t[1]||(t[1]=e=>L())},"← 返回列表"),s("h2",Nt,p(f.value?"编辑账号 #"+f.value:"新建账号"),1)]),s("div",jt,[s("div",At,[s("div",null,[t[22]||(t[22]=s("label",{class:"text-xs text-slate-500"},"用户名",-1)),r(s("input",{"onUpdate:modelValue":t[2]||(t[2]=e=>a.username=e),disabled:!!f.value,class:"input input-bordered input-sm w-full",placeholder:"登录用户名"},null,8,Mt),[[w,a.username]])]),r(s("div",null,[t[23]||(t[23]=s("label",{class:"text-xs text-slate-500"},"密码",-1)),r(s("input",{"onUpdate:modelValue":t[3]||(t[3]=e=>a.password=e),type:"password",class:"input input-bordered input-sm w-full",placeholder:"登录密码"},null,512),[[w,a.password]])],512),[[A,!f.value]]),s("div",null,[t[25]||(t[25]=s("label",{class:"text-xs text-slate-500"},"角色",-1)),r(s("select",{"onUpdate:modelValue":t[4]||(t[4]=e=>a.identity=e),class:"select select-bordered select-sm w-full"},[...t[24]||(t[24]=[s("option",{value:2},"管理员(除账号管理外全部)",-1),s("option",{value:3},"代理(外部,按绑定限制)",-1),s("option",{value:4},"运营(内部,按绑定限制)",-1),s("option",{value:1},"超管(全部权限)",-1)])],512),[[H,a.identity,void 0,{number:!0}]])]),s("div",null,[t[27]||(t[27]=s("label",{class:"text-xs text-slate-500"},"状态",-1)),r(s("select",{"onUpdate:modelValue":t[5]||(t[5]=e=>a.enabled=e),class:"select select-bordered select-sm w-full"},[...t[26]||(t[26]=[s("option",{value:"1"},"启用",-1),s("option",{value:"0"},"停用",-1)])],512),[[H,a.enabled]])]),s("div",Pt,[t[28]||(t[28]=s("label",{class:"text-xs text-slate-500"},"备注",-1)),r(s("input",{"onUpdate:modelValue":t[6]||(t[6]=e=>a.remark=e),class:"input input-bordered input-sm w-full",placeholder:"可选"},null,512),[[w,a.remark]])])]),r(s("div",Tt,[t[33]||(t[33]=s("div",{class:"text-sm font-semibold text-slate-600 mb-2"},[m("作用域绑定 "),s("span",{class:"text-xs text-slate-400 font-normal"},"(代理/运营生效;勾选可访问页面,并限制仪表盘数据范围)")],-1)),s("div",Lt,[t[29]||(t[29]=s("div",{class:"text-xs text-slate-500 mb-1.5"},"可访问页面",-1)),s("div",Ot,[(n(),o(y,null,k(W,e=>s("label",{key:e[0],class:"chk"},[r(s("input",{"onUpdate:modelValue":t[7]||(t[7]=i=>d.access=i),type:"checkbox",value:e[0]},null,8,Dt),[[M,d.access]]),m(p(e[1]),1)])),64))])]),s("div",Bt,[t[30]||(t[30]=s("div",{class:"text-xs text-slate-500 mb-1.5"},[m("绑定应用 "),s("span",{class:"text-slate-300"},"(仪表盘只显示这些应用数据;不勾=不限)")],-1)),s("div",Gt,[U.value.length?(n(!0),o(y,{key:0},k(U.value,e=>(n(),o("label",{key:e.id,class:"chk"},[r(s("input",{"onUpdate:modelValue":t[8]||(t[8]=i=>d.apps=i),type:"checkbox",value:e.name},null,8,Rt),[[M,d.apps]]),m(p(e.name||"应用#"+e.id),1)]))),128)):(n(),o("span",Ft,"无注册应用"))])]),s("div",qt,[t[31]||(t[31]=s("div",{class:"text-xs text-slate-500 mb-1.5"},[m("绑定区域 "),s("span",{class:"text-slate-300"},"(不勾=不限)")],-1)),s("div",zt,[(n(),o(y,null,k(X,e=>s("label",{key:e[0],class:"chk"},[r(s("input",{"onUpdate:modelValue":t[9]||(t[9]=i=>d.regions=i),type:"checkbox",value:e[0]},null,8,Ht),[[M,d.regions]]),m(p(e[1]),1)])),64))])]),s("div",null,[t[32]||(t[32]=s("div",{class:"text-xs text-slate-500 mb-1.5"},[m("绑定产品 "),s("span",{class:"text-slate-300"},"(按厂家分组;仪表盘只显示这些产品数据;不勾=不限)")],-1)),s("div",Jt,[T.value?(n(),o("span",Kt,"加载产品中...")):_.value.length?(n(!0),o(y,{key:2},k(_.value,e=>(n(),o("div",{key:e.fid,class:"mb-2 last:mb-0"},[s("div",Wt,"🏭 "+p(e.label),1),s("div",Xt,[(n(!0),o(y,null,k(e.products,i=>(n(),o("label",{key:i.id,class:"chk"},[r(s("input",{"onUpdate:modelValue":t[10]||(t[10]=$=>d.products=$),type:"checkbox",value:String(i.id)},null,8,Yt),[[M,d.products]]),m(p((i.devicename||"产品")+" #"+i.id),1)]))),128))])]))),128)):(n(),o("span",Qt,"无产品"))])])],512),[[A,a.identity===3||a.identity===4]]),s("div",Zt,[s("button",{class:"btn btn-ghost btn-sm",onClick:t[11]||(t[11]=e=>L())},"取消"),s("button",{class:"btn btn-primary btn-sm text-white",disabled:I.value,onClick:t[12]||(t[12]=e=>Z())},"保存",8,ts)])])],512),[[A,C.value==="form"]]),s("dialog",{ref_key:"topupModal",ref:O,class:"modal"},[s("div",ss,[t[39]||(t[39]=s("h3",{class:"font-bold text-lg mb-1"},"充值 / 调整资源点",-1)),s("p",es,[t[34]||(t[34]=m("代理:",-1)),s("span",ls,p(u.name),1),t[35]||(t[35]=m("。填增量(可填负数下调),当前余额:",-1)),s("span",ns,p(u.cur),1)]),s("div",os,[s("div",null,[t[36]||(t[36]=s("label",{class:"text-xs text-slate-500"},"VIP天数",-1)),r(s("input",{"onUpdate:modelValue":t[13]||(t[13]=e=>u.vipday=e),type:"number",class:"input input-bordered input-sm w-full"},null,512),[[w,u.vipday,void 0,{number:!0}]])]),s("div",null,[t[37]||(t[37]=s("label",{class:"text-xs text-slate-500"},"翻译分钟",-1)),r(s("input",{"onUpdate:modelValue":t[14]||(t[14]=e=>u.trademin=e),type:"number",class:"input input-bordered input-sm w-full"},null,512),[[w,u.trademin,void 0,{number:!0}]])]),s("div",null,[t[38]||(t[38]=s("label",{class:"text-xs text-slate-500"},"会议分钟",-1)),r(s("input",{"onUpdate:modelValue":t[15]||(t[15]=e=>u.meetmin=e),type:"number",class:"input input-bordered input-sm w-full"},null,512),[[w,u.meetmin,void 0,{number:!0}]])])]),s("div",as,[s("button",{class:"btn btn-ghost btn-sm",onClick:t[16]||(t[16]=e=>z())},"取消"),s("button",{class:"btn btn-primary btn-sm text-white",onClick:t[17]||(t[17]=e=>lt())},"确认")])]),t[40]||(t[40]=s("form",{method:"dialog",class:"modal-backdrop"},[s("button",null,"close")],-1))],512)]))}}),bs=dt(is,[["__scopeId","data-v-eb25cf37"]]);export{bs as default}; diff --git a/apps/admin/.output/public/_nuxt/CACbmIlS.js b/apps/admin/.output/public/_nuxt/CACbmIlS.js deleted file mode 100644 index 5e95e5b2..00000000 --- a/apps/admin/.output/public/_nuxt/CACbmIlS.js +++ /dev/null @@ -1,4 +0,0 @@ -import{g as ot,y as lt,z as at,j as rt,c as r,k as c,v as z,a as t,l as G,F as g,r as j,t as a,A as it,m as v,B as dt,p as ut,q as pt,n as _,d as u,s as f,x as q,o as i}from"./96IDI_OR.js";import{u as ct}from"./Do83zqYq.js";import{u as mt}from"./CVUxyiJx.js";const bt={class:"flex items-center justify-between mb-5"},xt={class:"bg-white rounded-xl shadow-sm border border-slate-100"},gt={class:"overflow-x-auto"},ft={class:"table table-zebra text-sm"},vt={key:0},_t={key:1},yt={class:"font-mono"},kt={class:"font-medium"},wt={class:"text-xs text-slate-500"},ht={class:"font-mono text-xs"},Ct={key:0,class:"text-green-600"},Mt={key:1,class:"text-slate-400"},Tt={class:"flex gap-1"},Nt=["onClick"],St=["onClick"],It=["onClick"],zt=["onClick"],Ot={class:"flex items-center gap-3 mb-5"},Vt={class:"text-lg font-semibold text-slate-800"},At={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-3xl"},$t={class:"grid grid-cols-2 gap-4"},Ut={class:"form-control"},Dt={class:"form-control"},Lt={class:"form-control mt-4"},jt={class:"form-control mt-4"},qt={class:"form-control mt-4"},Bt={class:"flex items-center gap-2 mt-4"},Rt={class:"flex items-center gap-2 cursor-pointer"},Ft={class:"mt-4 text-sm"},Pt={class:"flex gap-3 mt-6"},Et=["disabled"],Jt=["disabled"],Yt={class:"modal-box"},Gt={class:"text-sm text-slate-500 mt-1"},Ht={class:"grid grid-cols-2 gap-3 mt-4"},Kt={key:0,class:"bg-slate-50 border border-slate-200 rounded-lg p-3"},Qt={class:"flex justify-between items-center text-xs mb-1.5"},Wt={class:"text-slate-600"},Xt={class:"font-mono text-slate-400"},Zt=["value"],te={class:"mt-2 text-xs space-y-0.5"},ee={key:1,class:"text-red-600"},se={key:2,class:"bg-green-50 border border-green-100 rounded-lg p-3"},ne={class:"grid grid-cols-2 gap-x-4 gap-y-1 text-xs text-slate-600 mb-2"},oe={class:"border-t border-green-100 pt-2 text-xs"},le={class:"text-slate-500"},ae={class:"font-mono text-slate-700"},re={class:"modal-action"},ie=["disabled"],me=ot({__name:"apps",setup(de){const{consoleApi:y}=ct(),{success:k,error:b}=mt(),B=lt(),H=at(),C=f("list"),M=f([]),O=f(!1),T=f(!1),w=f(!1),N=f(!1),d=q({show:!1,apiOk:!1,apiMsg:"",dbOk:!1,dbMsg:""}),l=q({id:0,name:"",region:"",base_url:"",service_dsn:"",remark:"",enabled:!0});function K(o){const e=(o||"").match(/\/([^/?]+)\?/);return e?e[1]:"-"}async function S(){O.value=!0;try{const o=await y("apps/list",{});M.value=o??[]}catch(o){b(o?.message??"获取应用列表失败"),M.value=[]}finally{O.value=!1}}function V(){w.value=!1,d.show=!1,d.apiMsg="",d.dbMsg=""}function A(){C.value="list",S()}function R(o){o?(T.value=!0,l.id=o.id,l.name=o.name||"",l.region=o.region||"",l.base_url=o.base_url||"",l.service_dsn=o.service_dsn||"",l.remark=o.remark||"",l.enabled=!!o.enabled):(T.value=!1,l.id=0,l.name="",l.region="",l.base_url="",l.service_dsn="",l.remark="",l.enabled=!0),V(),C.value="form"}async function Q(){const o=l.base_url.trim(),e=l.service_dsn.trim();if(!o||!e){b("请先填应用地址和业务库 DSN");return}N.value=!0;try{const n=await y("apps/test",{base_url:o,service_dsn:e});d.apiOk=!!n.api_ok,d.apiMsg=n.api_msg,d.dbOk=!!n.db_ok,d.dbMsg=n.db_msg,d.show=!0,w.value=!!n.ok,w.value?k("检测通过,可以保存"):b("检测未通过")}catch(n){b(n?.message??"测试失败")}finally{N.value=!1}}async function W(){if(!w.value){b("请先「测试连接」通过再保存");return}const o={name:l.name,region:l.region,base_url:l.base_url,service_dsn:l.service_dsn,remark:l.remark,enabled:l.enabled};let e="apps/add";T.value&&l.id&&(o.id=Number(l.id),e="apps/update");try{await y(e,o),k("保存成功"),A()}catch(n){b(n?.message??"失败")}}function X(o){window.confirm(`删除注册应用 #${o} ?(不影响应用自身的库)`)&&y("apps/del",{id:o}).then(()=>{k("已删除"),S()}).catch(e=>b(e?.message??"失败"))}const $=f(null),s=q({appId:0,appLabel:"",start:"",end:"",resultShow:!1,resultClass:"",mode:"",steps:[],curIndex:0,curTotal:0,curName:"",pct:0,errMsg:"",report:null,running:!1,btnText:"开始分析"});function F(o){return parseInt((o||"").replace(/-/g,""))||0}function Z(o,e){s.appId=o,s.appLabel="应用:"+e+" (#"+o+")",s.start="",s.end="",s.resultShow=!1,s.mode="",s.report=null,s.errMsg="",s.steps=[],s.curIndex=0,s.curTotal=0,s.curName="",s.pct=0,s.running=!1,s.btnText="开始分析",$.value?.showModal()}function tt(){$.value?.close()}function et(o){s.steps[o.index-1]=o.name,s.pct=Math.round(o.index/(o.total+1)*100),s.curIndex=o.index,s.curTotal=o.total,s.curName=o.name}async function st(){const o=s.appLabel,e=s.start||"最早",n=s.end||"至今";if(!window.confirm(`将先删除【${o}】在 ${e} ~ ${n} 区间的历史统计数据,然后重新分析写入。 - -确认继续?`))return;s.running=!0,s.btnText="分析中...",s.resultShow=!0,s.resultClass="",s.mode="progress",s.steps=[],s.curIndex=0,s.curTotal=0,s.curName="",s.pct=0,s.report=null,s.errMsg="";const m={app_id:s.appId,start_day:F(s.start),end_day:F(s.end)};let U=null,h=null,P=!1;function E(x){if(x=(x||"").trim(),!x)return;let p;try{p=JSON.parse(x)}catch{return}if(p.code===18){P=!0;return}if(p.code!==void 0&&p.code!==0){h=p.msg||"请求被拒绝";return}p.type==="progress"?et(p):p.type==="done"?U=p.report:p.type==="error"&&(h=p.msg)}try{const p=(await fetch("/console/api/apps/analyze",{method:"POST",headers:{"Content-Type":"application/json",Authorization:B.token},body:JSON.stringify(m)})).body.getReader(),J=new TextDecoder;let I="";for(;;){const Y=await p.read();if(Y.done)break;I+=J.decode(Y.value,{stream:!0});const D=I.split(` -`);I=D.pop();for(let L=0;L{k("已发送 → "+(e&&e.subject))}).catch(e=>b(e?.message??"失败"))}return rt(S),(o,e)=>(i(),r("div",null,[c(t("div",null,[t("div",bt,[e[11]||(e[11]=t("div",null,[t("h2",{class:"text-lg font-semibold text-slate-800"},"应用注册"),t("p",{class:"text-sm text-slate-400 mt-1"},"注册各应用的地址与业务库 DSN(仅「重置设备码」清用户绑定时用);厂家/产品/设备码统一在 console 主库,无需逐应用配。")],-1)),t("button",{class:"btn btn-primary btn-sm text-white",onClick:e[0]||(e[0]=n=>R())},"+ 注册应用")]),t("div",xt,[t("div",gt,[t("table",ft,[e[14]||(e[14]=t("thead",null,[t("tr",null,[t("th",null,"ID"),t("th",null,"名称"),t("th",null,"区域"),t("th",null,"应用地址"),t("th",null,"业务库"),t("th",null,"启用"),t("th",null,"操作")])],-1)),t("tbody",null,[O.value?(i(),r("tr",vt,[...e[12]||(e[12]=[t("td",{colspan:"7",class:"text-center py-8"},[t("span",{class:"loading loading-spinner loading-sm"})],-1)])])):M.value.length?G("",!0):(i(),r("tr",_t,[...e[13]||(e[13]=[t("td",{colspan:"7",class:"text-center text-slate-400 py-8"},"暂无注册应用",-1)])])),(i(!0),r(g,null,j(M.value,n=>(i(),r("tr",{key:n.id},[t("td",yt,a(n.id),1),t("td",kt,a(n.name||""),1),t("td",null,a(n.region||""),1),t("td",wt,a(n.base_url||""),1),t("td",ht,a(K(n.service_dsn)),1),t("td",null,[n.enabled?(i(),r("span",Ct,"是")):(i(),r("span",Mt,"否"))]),t("td",null,[t("div",Tt,[t("button",{class:"btn btn-ghost btn-xs",onClick:m=>R(n)},"编辑",8,Nt),t("button",{class:"btn btn-ghost btn-xs text-emerald-600",onClick:m=>Z(n.id,n.name||"应用#"+n.id)},"分析历史",8,St),t("button",{class:"btn btn-ghost btn-xs text-indigo-500",onClick:m=>nt(n.id)},"发事件",8,It),t("button",{class:"btn btn-ghost btn-xs text-red-500",onClick:m=>X(n.id)},"删除",8,zt)])])]))),128))])])])])],512),[[z,C.value==="list"]]),c(t("div",null,[t("div",Ot,[t("button",{class:"btn btn-ghost btn-sm",onClick:e[1]||(e[1]=n=>A())},"← 返回"),t("h2",Vt,a(T.value?"编辑应用":"注册应用"),1)]),t("div",At,[t("form",{onSubmit:it(W,["prevent"])},[t("div",$t,[t("div",Ut,[e[15]||(e[15]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"名称 *")],-1)),c(t("input",{"onUpdate:modelValue":e[2]||(e[2]=n=>l.name=n),type:"text",class:"input input-bordered w-full",required:"",placeholder:"如 Voitrans(国内)"},null,512),[[v,l.name]])]),t("div",Dt,[e[17]||(e[17]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"区域")],-1)),c(t("select",{"onUpdate:modelValue":e[3]||(e[3]=n=>l.region=n),class:"select select-bordered w-full"},[...e[16]||(e[16]=[dt('',15)])],512),[[ut,l.region]])])]),t("div",Lt,[e[18]||(e[18]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"应用地址 *")],-1)),c(t("input",{"onUpdate:modelValue":e[4]||(e[4]=n=>l.base_url=n),type:"text",class:"input input-bordered w-full",required:"",placeholder:"https://api.xxx.com/",onInput:V},null,544),[[v,l.base_url]]),e[19]||(e[19]=t("span",{class:"text-xs text-slate-400 mt-1"},"用于通知应用业务服务事件(如配置更新)",-1))]),t("div",jt,[e[20]||(e[20]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"业务库 DSN *")],-1)),c(t("input",{"onUpdate:modelValue":e[5]||(e[5]=n=>l.service_dsn=n),type:"text",class:"input input-bordered w-full font-mono text-xs",required:"",placeholder:"root:pwd@tcp(host:3306)/earphone?charset=utf8mb4&parseTime=True&loc=Local",onInput:V},null,544),[[v,l.service_dsn]]),e[21]||(e[21]=t("span",{class:"text-xs text-slate-400 mt-1"},"用于读取业务数据(重置设备码时清 userdevice/product_stat)",-1))]),t("div",qt,[e[22]||(e[22]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"备注")],-1)),c(t("input",{"onUpdate:modelValue":e[6]||(e[6]=n=>l.remark=n),type:"text",class:"input input-bordered w-full"},null,512),[[v,l.remark]])]),t("div",Bt,[t("label",Rt,[c(t("input",{"onUpdate:modelValue":e[7]||(e[7]=n=>l.enabled=n),type:"checkbox",class:"toggle toggle-primary toggle-sm"},null,512),[[pt,l.enabled]]),e[23]||(e[23]=t("span",{class:"text-sm"},"启用",-1))])]),c(t("div",Ft,[t("div",{class:_(d.apiOk?"text-green-700":"text-red-600")},[t("span",{class:_(d.apiOk?"text-green-600":"text-red-500")},a(d.apiOk?"✓":"✗"),3),u(" 应用地址:"+a(d.apiMsg),1)],2),t("div",{class:_(d.dbOk?"text-green-700":"text-red-600")},[t("span",{class:_(d.dbOk?"text-green-600":"text-red-500")},a(d.dbOk?"✓":"✗"),3),u(" 业务库:"+a(d.dbMsg),1)],2)],512),[[z,d.show]]),t("div",Pt,[t("button",{type:"button",class:"btn btn-ghost",onClick:e[8]||(e[8]=n=>A())},"取消"),t("button",{type:"button",class:"btn btn-outline",disabled:N.value,onClick:Q},a(N.value?"测试中...":"测试连接"),9,Et),t("button",{type:"submit",class:"btn btn-primary text-white",disabled:!w.value},"保存",8,Jt)]),e[24]||(e[24]=t("p",{class:"text-xs text-slate-400 mt-2"},"需先「测试连接」通过(应用地址可达 + 业务库可连)才能保存。",-1))],32)])],512),[[z,C.value==="form"]]),t("dialog",{ref_key:"analyzeModal",ref:$,class:"modal"},[t("div",Yt,[e[32]||(e[32]=t("h3",{class:"font-bold text-lg"},"分析历史数据",-1)),t("p",Gt,a(s.appLabel),1),e[33]||(e[33]=t("div",{class:"text-xs text-amber-700 mt-3 bg-amber-50 border border-amber-100 rounded-lg p-3 leading-relaxed"},[u(" 扫描该应用业务库,按 "),t("b",null,"天 + 产品 + 区域"),u(" 生成历史统计(新增用户 / 订单 / 资源发放·使用 / 激活绑定设备),汇入 console 主库。"),t("br"),u(" · "),t("b",null,"分析前会先清理该应用+区域在所选区间内的旧统计行"),u(",避免数据重叠。"),t("br"),u(" · 登录、活跃用户、AI对话等无每日原始记录,历史无法还原(由实时管道往后采集)。"),t("br"),u(" · 仅对实时管道上线前的区间运行。留空 = 全部历史。大库可能耗时。 ")],-1)),t("div",Ht,[t("div",null,[e[25]||(e[25]=t("label",{class:"text-xs text-slate-500"},"起始日(含)",-1)),c(t("input",{"onUpdate:modelValue":e[9]||(e[9]=n=>s.start=n),type:"date",class:"input input-bordered input-sm w-full"},null,512),[[v,s.start]])]),t("div",null,[e[26]||(e[26]=t("label",{class:"text-xs text-slate-500"},"结束日(含)",-1)),c(t("input",{"onUpdate:modelValue":e[10]||(e[10]=n=>s.end=n),type:"date",class:"input input-bordered input-sm w-full"},null,512),[[v,s.end]])])]),c(t("div",{class:_(["text-sm mt-3",s.resultClass])},[s.mode==="progress"?(i(),r("div",Kt,[t("div",Qt,[t("span",Wt,[s.curName?(i(),r(g,{key:0},[e[27]||(e[27]=t("span",{class:"loading loading-spinner loading-xs"},null,-1)),u(" 正在:"+a(s.curName)+" ("+a(s.curIndex)+"/"+a(s.curTotal)+") ",1)],64)):(i(),r(g,{key:1},[u("准备中...")],64))]),t("span",Xt,a(s.pct)+"%",1)]),t("progress",{class:"progress progress-primary w-full h-2",value:s.pct,max:"100"},null,8,Zt),t("div",te,[(i(!0),r(g,null,j(s.steps,(n,m)=>(i(),r("div",{key:m,class:_(m===s.curIndex-1?"text-slate-600":"text-green-600")},[m===s.curIndex-1?(i(),r(g,{key:0},[e[28]||(e[28]=t("span",{class:"loading loading-spinner loading-xs"},null,-1)),u(" "+a(n),1)],64)):(i(),r(g,{key:1},[u("✓ "+a(n),1)],64))],2))),128))])])):s.mode==="error"?(i(),r("div",ee,"✗ "+a(s.errMsg),1)):s.mode==="done"&&s.report?(i(),r("div",se,[e[31]||(e[31]=t("div",{class:"font-semibold text-green-700 mb-2"},"✓ 分析完成",-1)),t("div",ne,[t("div",null,[e[29]||(e[29]=u("应用:",-1)),t("b",null,a(s.report.app_name||""),1)]),t("div",null,"区域:"+a(s.report.region||"未指定"),1),t("div",null,"区间:"+a((s.report.start_day||"不限")+" ~ "+(s.report.end_day||"不限")),1),t("div",null,"清理旧行:"+a(s.report.cleared_rows||0),1),t("div",null,[e[30]||(e[30]=u("写入天数:",-1)),t("b",null,a(s.report.days_written||0),1)]),t("div",null,"写入行数:"+a(s.report.rows_written||0),1)]),t("div",oe,[(i(!0),r(g,null,j(s.report.steps||[],(n,m)=>(i(),r("div",{key:m,class:"flex justify-between py-0.5"},[t("span",le,a(n.name),1),t("span",ae,a((n.groups||0)+" 组"),1)]))),128))])])):G("",!0)],2),[[z,s.resultShow]]),t("div",re,[t("button",{class:"btn btn-ghost btn-sm",onClick:tt},"关闭"),t("button",{class:"btn btn-primary btn-sm text-white",disabled:s.running,onClick:st},a(s.btnText),9,ie)])]),e[34]||(e[34]=t("form",{method:"dialog",class:"modal-backdrop"},[t("button",null,"close")],-1))],512)]))}});export{me as default}; diff --git a/apps/admin/.output/public/_nuxt/CF8arGVK.js b/apps/admin/.output/public/_nuxt/CF8arGVK.js new file mode 100644 index 00000000..29a2b09c --- /dev/null +++ b/apps/admin/.output/public/_nuxt/CF8arGVK.js @@ -0,0 +1 @@ +import{g as Ce,o as n,c as o,F as v,a as e,r as h,d as N,t as d,l as g,n as z,A as E,_ as Se,j as We,k as c,p as ie,G as B,m as y,q as O,v as Ve,s as x,x as Ue,J as R,B as ee,D as Xe}from"./CTAruH_8.js";import{u as Ye}from"./9B2ftqmN.js";import{u as Qe}from"./lLLegusN.js";import"./D9HxoMhB.js";import"./yUUyh6cG.js";const $e=[{code:"zh-CN",name:"中文(简体)"},{code:"zh-TW",name:"中文(繁体)"},{code:"zh-HK",name:"中文(香港)"},{code:"yue-HK",name:"粤语"},{code:"en-US",name:"英语(美国)"},{code:"en-GB",name:"英语(英国)"},{code:"ja-JP",name:"日语"},{code:"ko-KR",name:"韩语"},{code:"id-ID",name:"印尼语"},{code:"es-ES",name:"西班牙语(西)"},{code:"es-MX",name:"西班牙语(墨)"},{code:"pt-BR",name:"葡萄牙语(巴西)"},{code:"pt-PT",name:"葡萄牙语(葡)"},{code:"de-DE",name:"德语"},{code:"fr-FR",name:"法语"},{code:"it-IT",name:"意大利语"},{code:"nl-NL",name:"荷兰语"},{code:"pl-PL",name:"波兰语"},{code:"ru-RU",name:"俄语"},{code:"uk-UA",name:"乌克兰语"},{code:"tr-TR",name:"土耳其语"},{code:"vi-VN",name:"越南语"},{code:"th-TH",name:"泰语"},{code:"ms-MY",name:"马来语"},{code:"fil-PH",name:"菲律宾语"},{code:"ar-SA",name:"阿拉伯语"}];function Ze(M){const D=$e.find(w=>w.code===M);return D?D.name:M}const et={class:"lang-select"},tt={class:"lang-chip-name"},lt=["onClick"],st={key:0,class:"lang-empty"},nt={key:0,class:"lang-dd"},ot={class:"lang-dd-sum"},at={class:"lang-dd-panel"},dt=["checked","onChange"],it={class:"lang-opt-code"},ut={class:"lang-opt-name"},ct=["value","disabled"],rt=["value"],pt=Ce({__name:"LangSelect",props:{modelValue:{},multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},options:{default:void 0}},emits:["update:modelValue"],setup(M,{emit:D}){const w=M,V=D,W=E(()=>w.options&&w.options.length?w.options:$e),U=E(()=>(w.modelValue||"").split(",").map(T=>T.trim()).filter(Boolean));function S(T){return Ze(T)}function $(T){if(w.disabled)return;const j=U.value.slice(),m=j.indexOf(T);m>=0?j.splice(m,1):j.push(T),V("update:modelValue",j.join(","))}function H(T){V("update:modelValue",T.target.value)}return(T,j)=>(n(),o("div",et,[M.multiple?(n(),o(v,{key:0},[e("div",{class:z(["lang-chips",{"lang-disabled":M.disabled}])},[(n(!0),o(v,null,h(U.value,m=>(n(),o("span",{key:m,class:"lang-chip"},[N(d(m),1),e("span",tt,d(S(m)),1),e("button",{type:"button",class:"lang-x",onClick:X=>$(m)},"×",8,lt)]))),128)),U.value.length?g("",!0):(n(),o("span",st,"未选择语言"))],2),M.disabled?g("",!0):(n(),o("details",nt,[e("summary",ot,"+ 选择语言(已选 "+d(U.value.length)+")",1),e("div",at,[(n(!0),o(v,null,h(W.value,m=>(n(),o("label",{key:m.code,class:"lang-opt"},[e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary",checked:U.value.includes(m.code),onChange:X=>$(m.code)},null,40,dt),e("span",it,d(m.code),1),e("span",ut,d(m.name),1)]))),128))])]))],64)):(n(),o("select",{key:1,class:"select select-bordered select-sm w-full text-xs",value:M.modelValue,disabled:M.disabled,onChange:H},[j[0]||(j[0]=e("option",{value:""},"(未设置)",-1)),(n(!0),o(v,null,h(W.value,m=>(n(),o("option",{key:m.code,value:m.code},d(m.code)+" · "+d(m.name),9,rt))),128))],40,ct))]))}}),vt=Object.assign(Se(pt,[["__scopeId","data-v-4903af59"]]),{__name:"LangSelect"}),mt={key:0,class:"mb-4 rounded-lg px-4 py-3 text-sm",style:{background:"#fffbeb",border:"1px solid #fde68a",color:"#92400e"}},bt={class:"flex items-center justify-between mb-5"},xt={class:"flex items-center gap-3"},yt=["value"],_t=["value"],ht={class:"flex gap-4",style:{"align-items":"flex-start"}},gt={style:{width:"248px","flex-shrink":"0"}},kt={class:"flex flex-col gap-2"},ft=["onClick"],wt={style:{"min-width":"0",flex:"1"}},Vt={class:"flex items-center gap-2"},Ut={class:"font-semibold text-slate-800 text-sm truncate"},Ct={class:"flex flex-wrap gap-1 mt-1 items-center"},St={key:0,class:"provider-chip"},$t={key:1,class:"lock-badge"},Tt={key:0,class:"text-xs text-slate-400 text-center py-8"},At={class:"flex-1 min-w-0"},Mt={class:"bg-white rounded-2xl border border-slate-100 shadow-sm p-6"},zt={key:0,class:"text-center text-slate-300 py-20"},Dt={class:"flex items-center justify-between mb-5"},jt={class:"flex items-center gap-3"},Ft={class:"text-base font-semibold text-slate-800"},Nt={class:"text-xs text-slate-400 mt-0.5"},Lt={key:0},Rt={class:"flex gap-2"},It={class:"grid grid-cols-2 gap-4 mb-4"},Bt={class:"form-control"},Ot={class:"form-control"},Et={class:"form-control mb-4"},Ht={class:"mb-4"},Pt={class:"text-xs text-slate-500 ml-2"},Gt={key:0,class:"text-xs text-slate-400 py-4 text-center"},Jt={key:1,class:"overflow-x-auto"},Kt={class:"table text-xs"},qt=["onUpdate:modelValue","title"],Wt=["onUpdate:modelValue"],Xt={class:"text-center"},Yt=["onUpdate:modelValue"],Qt={class:"relative"},Zt=["type","onUpdate:modelValue"],el=["onClick"],tl=["onUpdate:modelValue"],ll=["onClick"],sl={class:"wizard-steps mb-5"},nl={key:0},ol={key:0},al={class:"type-grid"},dl=["onClick"],il={class:"text-sm text-slate-700 mt-2"},ul={class:"flex items-center justify-between mb-3"},cl={class:"text-sm text-slate-500"},rl={class:"type-grid"},pl=["onClick"],vl={class:"provider-chip"},ml={class:"text-sm text-slate-700 mt-2"},bl={class:"text-[11px] text-slate-400 mt-0.5"},xl={key:0,class:"text-xs text-slate-400 mt-2"},yl={class:"flex items-center justify-between mb-3"},_l={class:"flex items-center gap-2"},hl={key:0,class:"provider-chip"},gl={class:"flex gap-2"},kl={class:"grid grid-cols-2 gap-4 mb-4"},fl={class:"form-control"},wl={class:"form-control"},Vl={class:"grid grid-cols-2 gap-4 mb-4"},Ul={class:"form-control"},Cl={class:"form-control"},Sl={class:"form-control mb-4"},$l={key:0,class:"text-xs text-slate-400 py-4 text-center"},Tl={key:1,class:"overflow-x-auto"},Al={class:"table text-xs"},Ml=["onUpdate:modelValue","title"],zl=["onUpdate:modelValue"],Dl={class:"text-center"},jl=["onUpdate:modelValue"],Fl={class:"relative"},Nl=["type","onUpdate:modelValue"],Ll=["onClick"],Rl=["onUpdate:modelValue"],Il=["onClick"],Bl={key:0,class:"text-center py-10 text-slate-400"},Ol={class:"flex items-center justify-between mb-5"},El={class:"flex items-center gap-3"},Hl={class:"text-base font-semibold text-slate-800"},Pl={class:"badge badge-warning badge-sm mt-0.5"},Gl={class:"rounded-lg px-3 py-2 mb-4 text-xs",style:{background:"#fefce8",border:"1px solid #fde047",color:"#854d0e"}},Jl={class:"overflow-x-auto"},Kl={class:"table text-xs"},ql=["title"],Wl={class:"text-slate-500"},Xl={class:"text-center"},Yl={key:0,class:"disabled-badge"},Ql={key:1,class:"override-badge"},Zl={key:2,class:"inherit-badge"},es={class:"text-center"},ts=["onUpdate:modelValue"],ls={class:"relative"},ss=["type","onUpdate:modelValue","disabled"],ns=["onClick"],os=["onUpdate:modelValue","disabled","placeholder"],as={key:0},ds={class:"divider text-xs text-slate-400 my-3"},is={key:0,class:"text-xs text-slate-400 py-2 text-center"},us={key:1,class:"overflow-x-auto"},cs={class:"table text-xs"},rs=["onUpdate:modelValue","title"],ps=["onUpdate:modelValue"],vs={class:"text-center"},ms=["onUpdate:modelValue"],bs={class:"relative"},xs=["type","onUpdate:modelValue"],ys=["onClick"],_s=["onUpdate:modelValue"],hs=["onClick"],gs={class:"sync-overlay"},ks={class:"sync-box"},fs={class:"flex items-start gap-3 mb-4"},ws={style:{width:"42px",height:"42px",background:"linear-gradient(135deg,#4f46e5,#7c3aed)","border-radius":"13px",display:"flex","align-items":"center","justify-content":"center","flex-shrink":"0"}},Vs={style:{width:"20px",height:"20px",color:"#fff"},fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Us={class:"text-xs text-slate-400 mt-1"},Cs=["innerHTML"],Ss={class:"flex items-center justify-between mb-1"},$s={class:"flex gap-2"},Ts={class:"sync-region-grid"},As=["onClick"],Ms=["checked","onClick"],zs={class:"sync-overlay"},Ds={class:"tpl-box"},js={class:"flex items-center justify-between mb-4"},Fs={class:"flex gap-2"},Ns={class:"tpl-list"},Ls={class:"text-xs font-semibold text-slate-500 mb-1"},Rs={style:{"min-width":"0",flex:"1"}},Is={class:"flex items-center gap-2"},Bs={class:"font-semibold text-sm text-slate-800 truncate"},Os={class:"provider-chip"},Es={key:0,class:"badge badge-xs badge-ghost"},Hs={class:"text-xs text-slate-400 mt-0.5"},Ps={class:"flex gap-1"},Gs=["onClick"],Js=["onClick"],Ks={key:0,class:"text-xs text-slate-400 text-center py-6"},qs={class:"flex items-center justify-between mb-4"},Ws={class:"text-base font-semibold text-slate-800"},Xs={class:"flex gap-2"},Ys={class:"grid grid-cols-2 gap-3 mb-3"},Qs={class:"form-control"},Zs=["disabled"],en={class:"form-control"},tn=["value"],ln={class:"form-control"},sn={class:"form-control"},nn={class:"form-control mb-3"},on={class:"overflow-x-auto",style:{"max-height":"34vh"}},an={class:"table text-xs"},dn=["onUpdate:modelValue","title"],un=["onUpdate:modelValue"],cn={class:"text-center"},rn=["onUpdate:modelValue"],pn=["onUpdate:modelValue"],vn=["onClick"],mn={key:0},bn=Ce({__name:"serviceconfig",setup(M){const D=[{value:1,label:"中国"},{value:2,label:"美国"},{value:3,label:"东亚"},{value:4,label:"东南亚"},{value:5,label:"南亚"},{value:6,label:"中东"},{value:7,label:"欧洲"},{value:8,label:"俄罗斯"},{value:9,label:"非洲"},{value:10,label:"南美"},{value:11,label:"北美"},{value:12,label:"大洋洲"},{value:13,label:"巴西"},{value:14,label:"印度"}],w=[{v:1,label:"STT 语音识别",short:"STT",color:"#0369a1",bg:"#dbeafe"},{v:2,label:"TTS 语音合成",short:"TTS",color:"#7c3aed",bg:"#ede9fe"},{v:3,label:"MT 机器翻译",short:"MT",color:"#059669",bg:"#dcfce7"},{v:4,label:"AST 端到端翻译",short:"AST",color:"#c2410c",bg:"#fff7ed"},{v:5,label:"LLM 大语言",short:"LLM",color:"#b45309",bg:"#fef9c3"},{v:7,label:"STS 端到端对话",short:"STS",color:"#be185d",bg:"#fce7f3"},{v:6,label:"存储 OSS/COS",short:"存储",color:"#475569",bg:"#f1f5f9"}],{webApi:V,consoleApi:W}=Ye(),{success:U,error:S}=Qe(),$=x(""),H=x([]);async function T(){try{const s=await W("products/list",{});H.value=(s??[]).map(l=>l.name).filter(Boolean)}catch{H.value=[]}}function j(){p.value=null,C.value="empty",Y()}function m(s){return w.find(l=>l.v===s)||{short:"?",color:"#999",bg:"#eee",v:0,label:""}}function X(s){return(s||"").split(",").map(l=>parseInt(l)||0).filter(l=>l>0)}function ue(s){return(s.fields||[]).filter(l=>l.encrypted).length}const te=x(!0),P=x([]),p=x(null),A=x(0),C=x("empty"),i=Ue({id:"",name:"",provider:"",description:"",enable:!1}),_=x(0),f=x([]),G=x(""),k=x(1),J=x([]),I=x([]),le=x(!1),K=x([]),se=E(()=>{const s=D.find(l=>l.value===A.value);return s?s.label:"区域"+A.value}),Te=E(()=>w.map(s=>({cat:s.v,label:s.label,items:K.value.filter(l=>l.category===s.v)})).filter(s=>s.items.length));async function Y(){try{const s=await V("getsvcconfigs",{app_name:$.value});P.value=s?.items??[],te.value=!0}catch{te.value=!1,P.value=[];return}if(p.value){const s=P.value.find(l=>l.id===p.value.id);s&&Q(s)}}async function ne(){try{const s=await V("getsvctemplates",{});K.value=s?.items??[]}catch{K.value=[]}}function Ae(){p.value?Q(p.value):C.value!=="new"&&(C.value="empty")}function Q(s){s&&(p.value=s,A.value===0?Me():Fe())}function Me(){const s=p.value;i.id=s.id,i.name=s.name||"",i.provider=s.provider||"",i.description=s.description||"",i.enable=!!s.enable,_.value=X(s.categories)[0]||0,f.value=JSON.parse(JSON.stringify(s.fields||[])).map(l=>({...l,_show:!1})),C.value="default"}function ze(){p.value=null,i.id="",i.name="",i.provider="",i.description="",i.enable=!1,_.value=0,f.value=[],G.value="",k.value=1,C.value="new"}const ce=E(()=>K.value.filter(s=>s.category===_.value));function De(s){_.value!==s&&(_.value=s,G.value="",i.provider="",f.value=[]),k.value=2}function re(s){s?(G.value=s.id,i.provider=s.provider||"",i.name||(i.name=s.name||""),i.id||(i.id=s.id||""),i.description||(i.description=s.description||""),f.value=(s.fields||[]).map(l=>({key:l.key,description:l.description,type:l.type||"",encrypted:!!l.encrypted,def_value:l.def_value||"",sort:l.sort,_show:!1}))):(G.value="",i.provider="",f.value=[]),k.value=3}function je(){p.value?Q(p.value):C.value="empty"}function pe(){f.value.push({key:"",description:"",encrypted:!1,def_value:"",sort:f.value.length,_show:!1})}function ve(s){f.value.splice(s,1),f.value.forEach((l,r)=>{l.sort=r})}async function Fe(){const s=p.value;le.value=!0,C.value="region";try{const r=(await V("getsvcregionoverride",{app_name:$.value,svc_id:s.id,region:A.value}))?.fields??[];J.value=r.filter(t=>!t.region_only).map(t=>({key:t.key,description:t.description,type:t.type||"",encrypted:!!t.encrypted,is_overridden:!!t.is_overridden,disabled:!!t.disabled,value:t.value||"",_input:t.encrypted?"":t.is_overridden&&t.value||"",_show:!1})),I.value=r.filter(t=>t.region_only).map(t=>({key:t.key,description:t.description,encrypted:!!t.encrypted,_input:t.encrypted?"":t.value||"",_show:!1}))}catch(l){S(l?.message??"加载区域分叉失败"),J.value=[],I.value=[]}finally{le.value=!1}}function Ne(){I.value.push({key:"",description:"",encrypted:!1,_input:"",_show:!1})}function Le(s){I.value.splice(s,1)}function Re(s){const l={name:i.name||"",provider:i.provider||"",description:i.description||"",categories:_.value?String(_.value):"",enable:i.enable||!1,fields:f.value.map(r=>({key:r.key,description:r.description,type:r.type||"",encrypted:r.encrypted,def_value:r.def_value,sort:r.sort}))};return s?l.id=i.id||"":l.id=p.value.id,l.app_name=$.value,l}function Ie(){const s={},l=[];J.value.forEach(t=>{s[t.key]=t._input||"",t.disabled&&l.push(t.key)});const r=I.value.filter(t=>(t.key||"").trim()).map((t,u)=>({key:t.key.trim(),description:t.description,encrypted:t.encrypted,def_value:t._input||"",sort:u}));return{overrides:s,disabled_keys:l,extra_fields:r}}async function me(s){const l=s||!p.value;if(A.value===0){const r=Re(l);if(!r.id||!r.name)return S("服务ID 和名称 必填"),!1;const t=l?"addsvcconfig":"updatesvcconfig";try{const u=await V(t,r);return p.value=u,await Y(),U("保存成功"),!0}catch(u){return S(u?.message??"保存失败"),!1}}else{const{overrides:r,disabled_keys:t,extra_fields:u}=Ie();try{return await V("savesvcregionoverride",{app_name:$.value,svc_id:p.value.id,region:A.value,overrides:r,disabled_keys:t,extra_fields:u}),U("区域分叉已保存"),!0}catch(a){return S(a?.message??"保存失败"),!1}}}async function Be(){if(p.value&&window.confirm("确定删除服务「"+p.value.name+"」及其所有区域分叉?")){try{await V("delsvcconfig",{app_name:$.value,id:p.value.id})}catch(s){S(s?.message??"删除失败");return}p.value=null,U("已删除"),await Y(),C.value="empty"}}const oe=x(!1),ae=x(!1),be=x(""),xe=x(""),L=x([]),ye=E(()=>D.filter(s=>s.value!==A.value));function de(s){ae.value=s;const l=p.value?p.value.name:i.name||"新服务",r=A.value===0;be.value=r?"「"+l+"」默认配置将保存,可同步推送到其他区域。":"「"+l+"」在当前区域的字段分叉将保存,可同步到其他区域。",xe.value=r?"✦ 同步内容:各字段默认值推送为目标区域「覆盖值」,目标区域原有分叉将被替换。":"✦ 同步内容:当前区域的值覆盖 / 区域专属字段 / 停用字段整体复制到目标区域。",L.value=[],oe.value=!0}function _e(s){const l=L.value.indexOf(s);l>=0?L.value.splice(l,1):L.value.push(s)}function he(s){L.value=s?ye.value.map(l=>l.value):[]}function ge(){oe.value=!1}async function Oe(){ge(),await me(ae.value)}async function Ee(){const s=L.value.slice();if(ge(),!await me(ae.value)||!s.length)return;const r=p.value?p.value.id:null;if(!r)return;let t=0;try{t=(await V("syncsvctoregins",{app_name:$.value,svc_id:r,src_region:A.value,target_regions:s}))?.synced??0}catch(a){S(a?.message??"同步失败");return}const u=s.map(a=>{const we=D.find(qe=>qe.value===a);return we?we.label:"区域"+a});U("已保存并同步到:"+u.join("、")+"("+t+" 个)")}const ke=x(!1),Z=x("list"),q=x(!1),b=Ue({id:"",category:2,provider:"",name:"",description:""}),F=x([]);function He(){ke.value=!1}function fe(s){s?(q.value=!0,b.id=s.id,b.category=s.category||2,b.provider=s.provider||"",b.name=s.name||"",b.description=s.description||"",F.value=(s.fields||[]).map(l=>({key:l.key,description:l.description,type:l.type||"",encrypted:!!l.encrypted,def_value:l.def_value||"",sort:l.sort}))):(q.value=!1,b.id="",b.category=2,b.provider="",b.name="",b.description="",F.value=[]),Z.value="form"}function Pe(){F.value.push({key:"",description:"",encrypted:!1,def_value:"",sort:F.value.length})}function Ge(s){F.value.splice(s,1),F.value.forEach((l,r)=>{l.sort=r})}async function Je(){if(!b.id.trim()||!b.name.trim()||!b.provider.trim()){S("模板ID / 展示名 / 服务商标识 必填");return}const s={id:b.id.trim(),category:Number(b.category)||0,provider:b.provider.trim(),name:b.name.trim(),description:b.description.trim(),fields:F.value.map((l,r)=>({key:l.key,description:l.description,type:l.type||"",encrypted:l.encrypted,def_value:l.def_value,sort:r}))};try{await V(q.value?"updatesvctemplate":"addsvctemplate",s)}catch(l){S(l?.message??"保存失败");return}U("模板已保存"),await ne(),Z.value="list"}async function Ke(s){if(window.confirm("确定删除模板「"+s.name+"」?"+(s.builtin?"(内置模板下次启动会被重新补回)":""))){try{await V("delsvctemplate",{id:s.id})}catch(l){S(l?.message??"删除失败");return}U("已删除"),await ne()}}return We(()=>{T(),Y(),ne()}),(s,l)=>{const r=vt;return n(),o("div",null,[te.value?g("",!0):(n(),o("div",mt," ⚠ 「第三方服务配置」后端接口暂不可用(连接失败),请检查 console 服务是否运行。 ")),e("div",bt,[l[29]||(l[29]=e("div",null,[e("h2",{class:"text-lg font-semibold text-slate-800"},"第三方服务配置"),e("p",{class:"text-xs text-slate-400 mt-1"},[N("按服务类型分组管理已接入的第三方服务(火山引擎、阿里云、Azure 等)。默认展示"),e("b",null,"全局默认"),N("配置,可切换到具体应用;区域默认"),e("b",null,"中国"),N(",切换区域可为该区域覆盖字段值。")])],-1)),e("div",xt,[c(e("select",{"onUpdate:modelValue":l[0]||(l[0]=t=>$.value=t),class:"select select-bordered select-sm",onChange:j},[l[27]||(l[27]=e("option",{value:""},"全局默认",-1)),(n(!0),o(v,null,h(H.value,t=>(n(),o("option",{key:t,value:t},"应用:"+d(t),9,yt))),128))],544),[[ie,$.value]]),c(e("select",{"onUpdate:modelValue":l[1]||(l[1]=t=>A.value=t),class:"select select-bordered select-sm",onChange:Ae},[(n(),o(v,null,h(D,t=>e("option",{key:t.value,value:t.value},d(t.label),9,_t)),64)),l[28]||(l[28]=e("option",{value:0},"默认(全区域)",-1))],544),[[ie,A.value,void 0,{number:!0}]]),e("button",{class:"btn btn-primary btn-sm text-white",onClick:ze},"+ 添加服务")])]),e("div",ht,[e("div",gt,[e("div",kt,[(n(!0),o(v,null,h(P.value,t=>(n(),o("div",{key:t.id,class:z(["svc-item",{active:p.value&&p.value.id===t.id}]),onClick:u=>Q(t)},[e("div",{class:"svc-logo",style:B({background:t.color||"#6366f1"})},d(t.icon||(t.name||"").charAt(0)),5),e("div",wt,[e("div",Vt,[e("span",Ut,d(t.name),1),e("span",{class:z(["badge badge-xs",t.enable?"badge-success":"badge-ghost"])},d(t.enable?"启用":"停用"),3)]),e("div",Ct,[t.provider?(n(),o("span",St,d(t.provider),1)):g("",!0),(n(!0),o(v,null,h(X(t.categories),u=>(n(),o("span",{key:u,class:"cat-chip",style:B({color:m(u).color,background:m(u).bg})},d(m(u).short),5))),128)),ue(t)?(n(),o("span",$t,"🔒"+d(ue(t)),1)):g("",!0)])])],10,ft))),128)),P.value.length?g("",!0):(n(),o("p",Tt,"暂无服务"))])]),e("div",At,[e("div",Mt,[C.value==="empty"?(n(),o("div",zt,[...l[30]||(l[30]=[e("div",{class:"text-5xl mb-3"},"⚙️",-1),e("p",{class:"text-sm"},"从左侧选择一个服务开始配置",-1)])])):C.value==="default"&&p.value?(n(),o(v,{key:1},[e("div",Dt,[e("div",jt,[e("div",{class:"svc-logo",style:B({background:p.value.color||"#6366f1",width:"44px",height:"44px",fontSize:"20px"})},d(p.value.icon||(p.value.name||"").charAt(0)),5),e("div",null,[e("h3",Ft,d(p.value.name),1),e("p",Nt,[N(d(p.value.id),1),i.provider?(n(),o("span",Lt," · 服务商 "+d(i.provider),1)):g("",!0)])])]),e("div",Rt,[e("button",{class:"btn btn-error btn-sm btn-outline",onClick:Be},"删除服务"),e("button",{class:"btn btn-primary btn-sm text-white",onClick:l[2]||(l[2]=t=>de(!1))},"保存")])]),l[38]||(l[38]=e("div",{class:"divider text-xs text-slate-400 my-3"},"基本信息",-1)),e("div",It,[e("div",Bt,[l[31]||(l[31]=e("label",{class:"label"},[e("span",{class:"label-text"},"服务名称 *")],-1)),c(e("input",{"onUpdate:modelValue":l[3]||(l[3]=t=>i.name=t),class:"input input-bordered"},null,512),[[y,i.name]])]),e("div",Ot,[l[32]||(l[32]=e("label",{class:"label"},[e("span",{class:"label-text"},"启用")],-1)),c(e("input",{"onUpdate:modelValue":l[4]||(l[4]=t=>i.enable=t),type:"checkbox",class:"toggle toggle-primary mt-3"},null,512),[[O,i.enable]])])]),e("div",Et,[l[33]||(l[33]=e("label",{class:"label"},[e("span",{class:"label-text"},"服务描述")],-1)),c(e("input",{"onUpdate:modelValue":l[5]||(l[5]=t=>i.description=t),class:"input input-bordered"},null,512),[[y,i.description]])]),e("div",Ht,[l[34]||(l[34]=e("p",{class:"text-sm font-medium text-slate-700 mb-2"},"服务类型",-1)),_.value?(n(),o("span",{key:0,class:"cat-chip",style:B({color:m(_.value).color,background:m(_.value).bg})},d(m(_.value).short),5)):g("",!0),e("span",Pt,d(_.value?m(_.value).label:"未设置"),1),l[35]||(l[35]=e("span",{class:"text-[11px] text-slate-400 ml-2"},"(类型在创建时确定,不可更改)",-1))]),l[39]||(l[39]=e("div",{class:"divider text-xs text-slate-400 my-3"},"配置字段(全区域共用)",-1)),e("div",null,[f.value.length?(n(),o("div",Jt,[e("table",Kt,[l[37]||(l[37]=e("thead",null,[e("tr",null,[e("th",{class:"w-44"},"字段名"),e("th",null,"字段描述"),e("th",{class:"w-16 text-center"},"加密"),e("th",null,"默认值"),e("th",{class:"w-12"})])],-1)),e("tbody",null,[(n(!0),o(v,null,h(f.value,(t,u)=>(n(),o("tr",{key:u},[e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.key=a,placeholder:"key",title:t.key},null,8,qt),[[y,t.key]])]),e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.description=a,placeholder:"用途描述"},null,8,Wt),[[y,t.description]])]),e("td",Xt,[c(e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary","onUpdate:modelValue":a=>t.encrypted=a},null,8,Yt),[[O,t.encrypted]])]),e("td",null,[t.type==="langs"?(n(),R(r,{key:0,modelValue:t.def_value,"onUpdate:modelValue":a=>t.def_value=a,multiple:!0},null,8,["modelValue","onUpdate:modelValue"])):t.type==="lang"?(n(),R(r,{key:1,modelValue:t.def_value,"onUpdate:modelValue":a=>t.def_value=a},null,8,["modelValue","onUpdate:modelValue"])):t.encrypted?(n(),o(v,{key:2},[e("div",Qt,[c(e("input",{type:t._show?"text":"password",class:"field-input pr-14","onUpdate:modelValue":a=>t.def_value=a,placeholder:"留空保留原值"},null,8,Zt),[[ee,t.def_value]]),e("button",{type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-400 hover:text-slate-700",onClick:a=>t._show=!t._show},d(t._show?"隐藏":"显示"),9,el)]),l[36]||(l[36]=e("span",{class:"lock-badge ml-1"},"🔒 加密",-1))],64)):c((n(),o("input",{key:3,class:"field-input","onUpdate:modelValue":a=>t.def_value=a},null,8,tl)),[[y,t.def_value]])]),e("td",null,[e("button",{class:"btn btn-ghost btn-xs text-error",onClick:a=>ve(u)},"×",8,ll)])]))),128))])])])):(n(),o("p",Gt,"尚无字段,点击下方添加")),e("button",{class:"btn btn-ghost btn-sm mt-2 text-primary",onClick:pe},"+ 添加字段")])],64)):C.value==="new"?(n(),o(v,{key:2},[e("div",{class:"flex items-center justify-between mb-4"},[l[40]||(l[40]=e("h3",{class:"text-base font-semibold text-slate-800"},"新增第三方服务",-1)),e("button",{class:"btn btn-ghost btn-sm",onClick:je},"取消")]),e("div",sl,[e("div",{class:z(["wstep",{on:k.value>=1,cur:k.value===1}]),onClick:l[6]||(l[6]=t=>k.value=1)},[l[41]||(l[41]=N("① 服务类型",-1)),_.value?(n(),o("span",nl," · "+d(m(_.value).short),1)):g("",!0)],2),l[43]||(l[43]=e("div",{class:"wline"},null,-1)),e("div",{class:z(["wstep",{on:k.value>=2,cur:k.value===2,disabled:!_.value}]),onClick:l[7]||(l[7]=t=>_.value&&(k.value=2))},[l[42]||(l[42]=N("② 服务商",-1)),i.provider?(n(),o("span",ol," · "+d(i.provider),1)):g("",!0)],2),l[44]||(l[44]=e("div",{class:"wline"},null,-1)),e("div",{class:z(["wstep",{on:k.value>=3,cur:k.value===3,disabled:k.value<3}])},"③ 配置",2)]),k.value===1?(n(),o(v,{key:0},[l[45]||(l[45]=e("p",{class:"text-sm text-slate-500 mb-3"},"请选择要接入的服务类型(每个服务归属单一类型,独立配置):",-1)),e("div",al,[(n(),o(v,null,h(w,t=>e("div",{key:t.v,class:z(["type-card",{on:_.value===t.v}]),onClick:u=>De(t.v)},[e("span",{class:"cat-chip",style:B({color:t.color,background:t.bg})},d(t.short),5),e("span",il,d(t.label),1)],10,dl)),64))])],64)):k.value===2?(n(),o(v,{key:1},[e("div",ul,[e("p",cl,"为「"+d(m(_.value).label)+"」选择服务商:",1),e("button",{class:"btn btn-ghost btn-xs",onClick:l[8]||(l[8]=t=>k.value=1)},"← 上一步")]),e("div",rl,[(n(!0),o(v,null,h(ce.value,t=>(n(),o("div",{key:t.id,class:z(["type-card",{on:G.value===t.id}]),onClick:u=>re(t)},[e("span",vl,d(t.provider),1),e("span",ml,d(t.name),1),e("span",bl,d((t.fields||[]).length)+" 字段",1)],10,pl))),128)),e("div",{class:"type-card",onClick:l[9]||(l[9]=t=>re(null))},[...l[46]||(l[46]=[e("span",{class:"provider-chip",style:{background:"#f1f5f9",color:"#475569"}},"自定义",-1),e("span",{class:"text-sm text-slate-700 mt-2"},"空白自定义",-1),e("span",{class:"text-[11px] text-slate-400 mt-0.5"},"手动添加字段",-1)])])]),ce.value.length?g("",!0):(n(),o("p",xl,"该类型暂无内置模板,可选「空白自定义」,或到「服务商模板」新增。"))],64)):(n(),o(v,{key:2},[e("div",yl,[e("div",_l,[e("span",{class:"cat-chip",style:B({color:m(_.value).color,background:m(_.value).bg})},d(m(_.value).short),5),i.provider?(n(),o("span",hl,d(i.provider),1)):g("",!0)]),e("div",gl,[e("button",{class:"btn btn-ghost btn-xs",onClick:l[10]||(l[10]=t=>k.value=2)},"← 上一步"),e("button",{class:"btn btn-primary btn-sm text-white",onClick:l[11]||(l[11]=t=>de(!0))},"创建")])]),e("div",kl,[e("div",fl,[l[47]||(l[47]=e("label",{class:"label"},[e("span",{class:"label-text"},[N("服务ID * "),e("span",{class:"text-slate-400 text-xs"},"(唯一,如 tts_azure)")])],-1)),c(e("input",{"onUpdate:modelValue":l[12]||(l[12]=t=>i.id=t),class:"input input-bordered font-mono",placeholder:"tts_azure"},null,512),[[y,i.id]])]),e("div",wl,[l[48]||(l[48]=e("label",{class:"label"},[e("span",{class:"label-text"},"服务名称 *")],-1)),c(e("input",{"onUpdate:modelValue":l[13]||(l[13]=t=>i.name=t),class:"input input-bordered",placeholder:"微软 Azure TTS"},null,512),[[y,i.name]])])]),e("div",Vl,[e("div",Ul,[l[49]||(l[49]=e("label",{class:"label"},[e("span",{class:"label-text"},[N("服务商标识 "),e("span",{class:"text-slate-400 text-xs"},"(如 azure/alibaba)")])],-1)),c(e("input",{"onUpdate:modelValue":l[14]||(l[14]=t=>i.provider=t),class:"input input-bordered font-mono",placeholder:"azure"},null,512),[[y,i.provider]])]),e("div",Cl,[l[50]||(l[50]=e("label",{class:"label"},[e("span",{class:"label-text"},"启用")],-1)),c(e("input",{"onUpdate:modelValue":l[15]||(l[15]=t=>i.enable=t),type:"checkbox",class:"toggle toggle-primary mt-3"},null,512),[[O,i.enable]])])]),e("div",Sl,[l[51]||(l[51]=e("label",{class:"label"},[e("span",{class:"label-text"},"服务描述")],-1)),c(e("input",{"onUpdate:modelValue":l[16]||(l[16]=t=>i.description=t),class:"input input-bordered",placeholder:"简述该服务的用途"},null,512),[[y,i.description]])]),l[54]||(l[54]=e("div",{class:"divider text-xs text-slate-400 my-3"},"配置字段",-1)),e("div",null,[f.value.length?(n(),o("div",Tl,[e("table",Al,[l[53]||(l[53]=e("thead",null,[e("tr",null,[e("th",{class:"w-44"},"字段名"),e("th",null,"字段描述"),e("th",{class:"w-16 text-center"},"加密"),e("th",null,"默认值"),e("th",{class:"w-12"})])],-1)),e("tbody",null,[(n(!0),o(v,null,h(f.value,(t,u)=>(n(),o("tr",{key:u},[e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.key=a,placeholder:"key",title:t.key},null,8,Ml),[[y,t.key]])]),e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.description=a,placeholder:"用途描述"},null,8,zl),[[y,t.description]])]),e("td",Dl,[c(e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary","onUpdate:modelValue":a=>t.encrypted=a},null,8,jl),[[O,t.encrypted]])]),e("td",null,[t.type==="langs"?(n(),R(r,{key:0,modelValue:t.def_value,"onUpdate:modelValue":a=>t.def_value=a,multiple:!0},null,8,["modelValue","onUpdate:modelValue"])):t.type==="lang"?(n(),R(r,{key:1,modelValue:t.def_value,"onUpdate:modelValue":a=>t.def_value=a},null,8,["modelValue","onUpdate:modelValue"])):t.encrypted?(n(),o(v,{key:2},[e("div",Fl,[c(e("input",{type:t._show?"text":"password",class:"field-input pr-14","onUpdate:modelValue":a=>t.def_value=a,placeholder:"留空保留原值"},null,8,Nl),[[ee,t.def_value]]),e("button",{type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-400 hover:text-slate-700",onClick:a=>t._show=!t._show},d(t._show?"隐藏":"显示"),9,Ll)]),l[52]||(l[52]=e("span",{class:"lock-badge ml-1"},"🔒 加密",-1))],64)):c((n(),o("input",{key:3,class:"field-input","onUpdate:modelValue":a=>t.def_value=a},null,8,Rl)),[[y,t.def_value]])]),e("td",null,[e("button",{class:"btn btn-ghost btn-xs text-error",onClick:a=>ve(u)},"×",8,Il)])]))),128))])])])):(n(),o("p",$l,"尚无字段,选模板自动带出或点击下方添加")),e("button",{class:"btn btn-ghost btn-sm mt-2 text-primary",onClick:pe},"+ 添加字段")])],64))],64)):C.value==="region"&&p.value?(n(),o(v,{key:3},[le.value?(n(),o("div",Bl,"加载中...")):(n(),o(v,{key:1},[e("div",Ol,[e("div",El,[e("div",{class:"svc-logo",style:B({background:p.value.color||"#6366f1",width:"44px",height:"44px",fontSize:"20px"})},d(p.value.icon||(p.value.name||"").charAt(0)),5),e("div",null,[e("h3",Hl,d(p.value.name),1),e("span",Pl,d(se.value)+" 分叉模式",1)])]),e("button",{class:"btn btn-primary btn-sm text-white",onClick:l[17]||(l[17]=t=>de(!1))},"保存分叉")]),e("div",Gl," ✦ 当前编辑「"+d(se.value)+"」的字段分叉:默认字段可覆盖值或勾选「不适用」停用;也可新增本区域专属字段。留空的覆盖字段继承默认值,加密字段留空保留已存储密文。 ",1),l[60]||(l[60]=e("p",{class:"text-sm font-medium text-slate-700 mb-2"},"默认字段",-1)),e("div",Jl,[e("table",Kl,[l[57]||(l[57]=e("thead",null,[e("tr",null,[e("th",{class:"w-44"},"字段名"),e("th",null,"字段描述"),e("th",{class:"w-24 text-center"},"状态"),e("th",{class:"w-20 text-center"},"本区域不适用"),e("th",null,"有效值")])],-1)),e("tbody",null,[(n(!0),o(v,null,h(J.value,(t,u)=>(n(),o("tr",{key:u,class:z({"opacity-50":t.disabled})},[e("td",{class:"font-mono text-slate-700 break-all",title:t.key},d(t.key),9,ql),e("td",Wl,d(t.description),1),e("td",Xl,[t.disabled?(n(),o("span",Yl,"停用")):t.is_overridden?(n(),o("span",Ql,"覆盖")):(n(),o("span",Zl,"继承"))]),e("td",es,[c(e("input",{type:"checkbox",class:"checkbox checkbox-xs","onUpdate:modelValue":a=>t.disabled=a},null,8,ts),[[O,t.disabled]])]),e("td",null,[t.type==="langs"?(n(),R(r,{key:0,modelValue:t._input,"onUpdate:modelValue":a=>t._input=a,multiple:!0,disabled:t.disabled},null,8,["modelValue","onUpdate:modelValue","disabled"])):t.type==="lang"?(n(),R(r,{key:1,modelValue:t._input,"onUpdate:modelValue":a=>t._input=a,disabled:t.disabled},null,8,["modelValue","onUpdate:modelValue","disabled"])):t.encrypted?(n(),o(v,{key:2},[e("div",ls,[c(e("input",{type:t._show?"text":"password",class:"field-input pr-14","onUpdate:modelValue":a=>t._input=a,disabled:t.disabled,placeholder:"留空继承默认"},null,8,ss),[[ee,t._input]]),e("button",{type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-400 hover:text-slate-700",onClick:a=>t._show=!t._show},d(t._show?"隐藏":"显示"),9,ns)]),l[55]||(l[55]=e("span",{class:"lock-badge ml-1"},"🔒",-1))],64)):c((n(),o("input",{key:3,class:"field-input","onUpdate:modelValue":a=>t._input=a,disabled:t.disabled,placeholder:"留空继承:"+(t.value||"")},null,8,os)),[[y,t._input]])])],2))),128)),J.value.length?g("",!0):(n(),o("tr",as,[...l[56]||(l[56]=[e("td",{colspan:"5",class:"text-center text-slate-400 py-3"},"该服务尚无默认字段",-1)])]))])])]),e("div",ds,d(se.value)+" 专属字段",1),e("div",null,[I.value.length?(n(),o("div",us,[e("table",cs,[l[59]||(l[59]=e("thead",null,[e("tr",null,[e("th",{class:"w-44"},"字段名"),e("th",null,"字段描述"),e("th",{class:"w-16 text-center"},"加密"),e("th",null,"值"),e("th",{class:"w-12"})])],-1)),e("tbody",null,[(n(!0),o(v,null,h(I.value,(t,u)=>(n(),o("tr",{key:u},[e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.key=a,placeholder:"key",title:t.key},null,8,rs),[[y,t.key]])]),e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.description=a,placeholder:"用途描述"},null,8,ps),[[y,t.description]])]),e("td",vs,[c(e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary","onUpdate:modelValue":a=>t.encrypted=a},null,8,ms),[[O,t.encrypted]])]),e("td",null,[t.encrypted?(n(),o(v,{key:0},[e("div",bs,[c(e("input",{type:t._show?"text":"password",class:"field-input pr-14","onUpdate:modelValue":a=>t._input=a,placeholder:"留空保留原值"},null,8,xs),[[ee,t._input]]),e("button",{type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-xs text-slate-400 hover:text-slate-700",onClick:a=>t._show=!t._show},d(t._show?"隐藏":"显示"),9,ys)]),l[58]||(l[58]=e("span",{class:"lock-badge ml-1"},"🔒",-1))],64)):c((n(),o("input",{key:1,class:"field-input","onUpdate:modelValue":a=>t._input=a},null,8,_s)),[[y,t._input]])]),e("td",null,[e("button",{class:"btn btn-ghost btn-xs text-error",onClick:a=>Le(u)},"×",8,hs)])]))),128))])])])):(n(),o("p",is,"尚无区域专属字段,点击下方添加")),e("button",{class:"btn btn-ghost btn-sm mt-2 text-primary",onClick:Ne},"+ 添加区域专属字段")])],64))],64)):g("",!0)])])]),c(e("div",gs,[e("div",ks,[e("div",fs,[e("div",ws,[(n(),o("svg",Vs,[...l[61]||(l[61]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"},null,-1)])]))]),e("div",null,[l[62]||(l[62]=e("h3",{class:"text-base font-semibold text-slate-800"},"同步到其他区域",-1)),e("p",Us,d(be.value),1)])]),e("div",{class:"text-xs px-3 py-2 rounded-lg mb-3",style:{background:"#f0fdf4",border:"1px solid #bbf7d0",color:"#15803d"},innerHTML:xe.value},null,8,Cs),e("div",Ss,[l[63]||(l[63]=e("span",{class:"text-xs font-semibold text-slate-500"},"选择目标区域",-1)),e("div",$s,[e("button",{class:"btn btn-ghost btn-xs",onClick:l[18]||(l[18]=t=>he(!0))},"全选"),e("button",{class:"btn btn-ghost btn-xs",onClick:l[19]||(l[19]=t=>he(!1))},"清空")])]),e("div",Ts,[(n(!0),o(v,null,h(ye.value,t=>(n(),o("label",{key:t.value,class:z(["sync-region-item",{checked:L.value.includes(t.value)}]),onClick:u=>_e(t.value)},[e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary",checked:L.value.includes(t.value),onClick:Xe(u=>_e(t.value),["stop"])},null,8,Ms),e("span",null,d(t.label),1)],10,As))),128))]),l[64]||(l[64]=e("p",{class:"text-[11px] text-slate-400 mb-5"},"⚠ 已勾选区域将被当前配置(值覆盖 / 区域专属字段 / 停用字段)整体替换;加密字段密文一并同步。",-1)),e("div",{class:"flex gap-3 justify-end"},[e("button",{class:"btn btn-ghost",onClick:Oe},"仅保存当前区域"),e("button",{class:"btn btn-primary text-white",onClick:Ee},"保存并同步")])])],512),[[Ve,oe.value]]),c(e("div",zs,[e("div",Ds,[Z.value==="list"?(n(),o(v,{key:0},[e("div",js,[l[65]||(l[65]=e("div",null,[e("h3",{class:"text-base font-semibold text-slate-800"},"服务商模板"),e("p",{class:"text-xs text-slate-400 mt-1"},"模板是字段预设,新增服务时可一键带出。内置模板可编辑;删除后重启会被重新补回。")],-1)),e("div",Fs,[e("button",{class:"btn btn-primary btn-sm text-white",onClick:l[20]||(l[20]=t=>fe())},"+ 新增模板"),e("button",{class:"btn btn-ghost btn-sm",onClick:He},"关闭")])]),e("div",Ns,[(n(!0),o(v,null,h(Te.value,t=>(n(),o("div",{key:t.cat,class:"mb-3"},[e("p",Ls,d(t.label),1),(n(!0),o(v,null,h(t.items,u=>(n(),o("div",{key:u.id,class:"tpl-row"},[e("div",Rs,[e("div",Is,[e("span",Bs,d(u.name),1),e("span",Os,d(u.provider),1),u.builtin?(n(),o("span",Es,"内置")):g("",!0)]),e("p",Hs,d(u.id)+" · "+d((u.fields||[]).length)+" 字段",1)]),e("div",Ps,[e("button",{class:"btn btn-ghost btn-xs",onClick:a=>fe(u)},"编辑",8,Gs),e("button",{class:"btn btn-ghost btn-xs text-error",onClick:a=>Ke(u)},"删除",8,Js)])]))),128))]))),128)),K.value.length?g("",!0):(n(),o("p",Ks,"暂无模板"))])],64)):(n(),o(v,{key:1},[e("div",qs,[e("h3",Ws,d(q.value?"编辑模板":"新增模板"),1),e("div",Xs,[e("button",{class:"btn btn-ghost btn-sm",onClick:l[21]||(l[21]=t=>Z.value="list")},"返回"),e("button",{class:"btn btn-primary btn-sm text-white",onClick:Je},"保存")])]),e("div",Ys,[e("div",Qs,[l[66]||(l[66]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"模板ID *")],-1)),c(e("input",{"onUpdate:modelValue":l[22]||(l[22]=t=>b.id=t),disabled:q.value,class:"input input-bordered input-sm font-mono",placeholder:"tts_azure"},null,8,Zs),[[y,b.id]])]),e("div",en,[l[67]||(l[67]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"类别 *")],-1)),c(e("select",{"onUpdate:modelValue":l[23]||(l[23]=t=>b.category=t),class:"select select-bordered select-sm"},[(n(),o(v,null,h(w,t=>e("option",{key:t.v,value:t.v},d(t.label),9,tn)),64))],512),[[ie,b.category,void 0,{number:!0}]])]),e("div",ln,[l[68]||(l[68]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"服务商标识 *")],-1)),c(e("input",{"onUpdate:modelValue":l[24]||(l[24]=t=>b.provider=t),class:"input input-bordered input-sm font-mono",placeholder:"azure"},null,512),[[y,b.provider]])]),e("div",sn,[l[69]||(l[69]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"展示名 *")],-1)),c(e("input",{"onUpdate:modelValue":l[25]||(l[25]=t=>b.name=t),class:"input input-bordered input-sm",placeholder:"微软 Azure TTS"},null,512),[[y,b.name]])])]),e("div",nn,[l[70]||(l[70]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"描述")],-1)),c(e("input",{"onUpdate:modelValue":l[26]||(l[26]=t=>b.description=t),class:"input input-bordered input-sm"},null,512),[[y,b.description]])]),l[73]||(l[73]=e("p",{class:"text-sm font-medium text-slate-700 mb-1"},"字段",-1)),e("div",on,[e("table",an,[l[72]||(l[72]=e("thead",null,[e("tr",null,[e("th",{class:"w-44"},"字段名"),e("th",null,"字段描述"),e("th",{class:"w-16 text-center"},"加密"),e("th",null,"默认/提示值"),e("th",{class:"w-12"})])],-1)),e("tbody",null,[(n(!0),o(v,null,h(F.value,(t,u)=>(n(),o("tr",{key:u},[e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.key=a,placeholder:"key",title:t.key},null,8,dn),[[y,t.key]])]),e("td",null,[c(e("input",{class:"field-input","onUpdate:modelValue":a=>t.description=a,placeholder:"用途描述"},null,8,un),[[y,t.description]])]),e("td",cn,[c(e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary","onUpdate:modelValue":a=>t.encrypted=a},null,8,rn),[[O,t.encrypted]])]),e("td",null,[t.type==="langs"?(n(),R(r,{key:0,modelValue:t.def_value,"onUpdate:modelValue":a=>t.def_value=a,multiple:!0},null,8,["modelValue","onUpdate:modelValue"])):t.type==="lang"?(n(),R(r,{key:1,modelValue:t.def_value,"onUpdate:modelValue":a=>t.def_value=a},null,8,["modelValue","onUpdate:modelValue"])):c((n(),o("input",{key:2,class:"field-input","onUpdate:modelValue":a=>t.def_value=a,placeholder:"可留空"},null,8,pn)),[[y,t.def_value]])]),e("td",null,[e("button",{class:"btn btn-ghost btn-xs text-error",onClick:a=>Ge(u)},"×",8,vn)])]))),128)),F.value.length?g("",!0):(n(),o("tr",mn,[...l[71]||(l[71]=[e("td",{colspan:"5",class:"text-center text-slate-400 py-2"},"尚无字段",-1)])]))])])]),e("button",{class:"btn btn-ghost btn-sm mt-2 text-primary",onClick:Pe},"+ 添加字段")],64))])],512),[[Ve,ke.value]])])}}}),kn=Se(bn,[["__scopeId","data-v-04ce4a7d"]]);export{kn as default}; diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/96IDI_OR.js b/apps/admin/.output/public/_nuxt/CTAruH_8.js similarity index 68% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/96IDI_OR.js rename to apps/admin/.output/public/_nuxt/CTAruH_8.js index 0237fe82..155f042d 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/96IDI_OR.js +++ b/apps/admin/.output/public/_nuxt/CTAruH_8.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BMr4oSI7.js","./Do83zqYq.js","./CVUxyiJx.js","./accounts.B82323Fi.css","./CACbmIlS.js","./BbMitk9t.js","./calltranslate.B6r4Q8-j.css","./Dqy3UYuS.js","./p0Tfj-xC.js","./dashboard.DGy90zSJ.css","./D6jD5keW.js","./dltdoXck.js","./KP2C5FJ6.js","./B3ns_poC.js","./DGXiXcCA.js","./6n4fu-B8.js","./BL6E8nSe.js","./serviceconfig.htjoqj-Q.css","./v5y5DMRc.js","./statlog.C1q_3yEh.css","./Dw5yL0ut.js","./RqmPeXlN.js","./index.4nAkFRy2.css","./DN5T-G_F.js","./0ubqzWuP.js","./BlypHpHg.js","./C5ETpaZb.js","./error-404.Dm-MYrAh.css","./BbBrUj30.js","./error-500.DM8oqBl3.css"])))=>i.map(i=>d[i]); -(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function ho(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const fe={},_n=[],pt=()=>{},Ta=()=>!1,lr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Wr=e=>e.startsWith("onUpdate:"),Te=Object.assign,po=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},au=Object.prototype.hasOwnProperty,ie=(e,t)=>au.call(e,t),G=Array.isArray,bn=e=>In(e)==="[object Map]",Mn=e=>In(e)==="[object Set]",Go=e=>In(e)==="[object Date]",lu=e=>In(e)==="[object RegExp]",Y=e=>typeof e=="function",he=e=>typeof e=="string",Ue=e=>typeof e=="symbol",se=e=>e!==null&&typeof e=="object",Ra=e=>(se(e)||Y(e))&&Y(e.then)&&Y(e.catch),Ca=Object.prototype.toString,In=e=>Ca.call(e),cu=e=>In(e).slice(8,-1),go=e=>In(e)==="[object Object]",qr=e=>he(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,en=ho(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),zr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},uu=/-\w/g,Le=zr(e=>e.replace(uu,t=>t.slice(1).toUpperCase())),fu=/\B([A-Z])/g,Kt=zr(e=>e.replace(fu,"-$1").toLowerCase()),Gr=zr(e=>e.charAt(0).toUpperCase()+e.slice(1)),fs=zr(e=>e?`on${Gr(e)}`:""),dt=(e,t)=>!Object.is(e,t),vn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Jr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Aa=e=>{const t=he(e)?Number(e):NaN;return isNaN(t)?e:t};let Jo;const Xr=()=>Jo||(Jo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Yr(e){if(G(e)){const t={};for(let n=0;n{if(n){const r=n.split(hu);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Qr(e){let t="";if(he(e))t=e;else if(G(e))for(let n=0;nBt(n,t))}const ka=e=>!!(e&&e.__v_isRef===!0),vu=e=>he(e)?e:e==null?"":G(e)||se(e)&&(e.toString===Ca||!Y(e.toString))?ka(e)?vu(e.value):JSON.stringify(e,Oa,2):String(e),Oa=(e,t)=>ka(t)?Oa(e,t.value):bn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[ds(r,o)+" =>"]=s,n),{})}:Mn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ds(n))}:Ue(t)?ds(t):se(t)&&!G(t)&&!go(t)?String(t):t,ds=(e,t="")=>{var n;return Ue(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Ee;class Ma{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Ee&&(Ee.active?(this.parent=Ee,this.index=(Ee.scopes||(Ee.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(Ee===this)Ee=this.prevScope;else{let t=Ee;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(zn){let t=zn;for(zn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;qn;){let t=qn;for(qn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Ha(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Na(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),vo(r),wu(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function Ls(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ja(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ja(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===tr)||(e.globalVersion=tr,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ls(e))))return;e.flags|=2;const t=e.dep,n=de,r=tt;de=e,tt=!0;try{Ha(e);const s=e.fn(e._value);(t.version===0||dt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{de=n,tt=r,Na(e),e.flags&=-3}}function vo(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)vo(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function wu(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let tt=!0;const Fa=[];function Pt(){Fa.push(tt),tt=!1}function At(){const e=Fa.pop();tt=e===void 0?!0:e}function Xo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=de;de=void 0;try{t()}finally{de=n}}}let tr=0;class Eu{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class wo{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!de||!tt||de===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==de)n=this.activeLink=new Eu(de,this),de.deps?(n.prevDep=de.depsTail,de.depsTail.nextDep=n,de.depsTail=n):de.deps=de.depsTail=n,Ba(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=de.depsTail,n.nextDep=void 0,de.depsTail.nextDep=n,de.depsTail=n,de.deps===n&&(de.deps=r)}return n}trigger(t){this.version++,tr++,this.notify(t)}notify(t){_o();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{bo()}}}function Ba(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Ba(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Pr=new WeakMap,tn=Symbol(""),Ds=Symbol(""),nr=Symbol("");function xe(e,t,n){if(tt&&de){let r=Pr.get(e);r||Pr.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new wo),s.map=r,s.key=n),s.track()}}function Et(e,t,n,r,s,o){const i=Pr.get(e);if(!i){tr++;return}const a=l=>{l&&l.trigger()};if(_o(),t==="clear")i.forEach(a);else{const l=G(e),f=l&&qr(n);if(l&&n==="length"){const c=Number(r);i.forEach((u,h)=>{(h==="length"||h===nr||!Ue(h)&&h>=c)&&a(u)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),f&&a(i.get(nr)),t){case"add":l?f&&a(i.get("length")):(a(i.get(tn)),bn(e)&&a(i.get(Ds)));break;case"delete":l||(a(i.get(tn)),bn(e)&&a(i.get(Ds)));break;case"set":bn(e)&&a(i.get(tn));break}}bo()}function Su(e,t){const n=Pr.get(e);return n&&n.get(t)}function un(e){const t=ne(e);return t===e?t:(xe(t,"iterate",nr),Be(e)?t:t.map(rt))}function es(e){return xe(e=ne(e),"iterate",nr),e}function ut(e,t){return yt(e)?Tn(gt(e)?rt(t):t):rt(t)}const Tu={__proto__:null,[Symbol.iterator](){return ps(this,Symbol.iterator,e=>ut(this,e))},concat(...e){return un(this).concat(...e.map(t=>G(t)?un(t):t))},entries(){return ps(this,"entries",e=>(e[1]=ut(this,e[1]),e))},every(e,t){return mt(this,"every",e,t,void 0,arguments)},filter(e,t){return mt(this,"filter",e,t,n=>n.map(r=>ut(this,r)),arguments)},find(e,t){return mt(this,"find",e,t,n=>ut(this,n),arguments)},findIndex(e,t){return mt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return mt(this,"findLast",e,t,n=>ut(this,n),arguments)},findLastIndex(e,t){return mt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return mt(this,"forEach",e,t,void 0,arguments)},includes(...e){return gs(this,"includes",e)},indexOf(...e){return gs(this,"indexOf",e)},join(e){return un(this).join(e)},lastIndexOf(...e){return gs(this,"lastIndexOf",e)},map(e,t){return mt(this,"map",e,t,void 0,arguments)},pop(){return Hn(this,"pop")},push(...e){return Hn(this,"push",e)},reduce(e,...t){return Yo(this,"reduce",e,t)},reduceRight(e,...t){return Yo(this,"reduceRight",e,t)},shift(){return Hn(this,"shift")},some(e,t){return mt(this,"some",e,t,void 0,arguments)},splice(...e){return Hn(this,"splice",e)},toReversed(){return un(this).toReversed()},toSorted(e){return un(this).toSorted(e)},toSpliced(...e){return un(this).toSpliced(...e)},unshift(...e){return Hn(this,"unshift",e)},values(){return ps(this,"values",e=>ut(this,e))}};function ps(e,t,n){const r=es(e),s=r[t]();return r!==e&&!Be(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const Ru=Array.prototype;function mt(e,t,n,r,s,o){const i=es(e),a=i!==e&&!Be(e),l=i[t];if(l!==Ru[t]){const u=l.apply(e,o);return a?rt(u):u}let f=n;i!==e&&(a?f=function(u,h){return n.call(this,ut(e,u),h,e)}:n.length>2&&(f=function(u,h){return n.call(this,u,h,e)}));const c=l.call(i,f,r);return a&&s?s(c):c}function Yo(e,t,n,r){const s=es(e),o=s!==e&&!Be(e);let i=n,a=!1;s!==e&&(o?(a=r.length===0,i=function(f,c,u){return a&&(a=!1,f=ut(e,f)),n.call(this,f,ut(e,c),u,e)}):n.length>3&&(i=function(f,c,u){return n.call(this,f,c,u,e)}));const l=s[t](i,...r);return a?ut(e,l):l}function gs(e,t,n){const r=ne(e);xe(r,"iterate",nr);const s=r[t](...n);return(s===-1||s===!1)&&ts(n[0])?(n[0]=ne(n[0]),r[t](...n)):s}function Hn(e,t,n=[]){Pt(),_o();const r=ne(e)[t].apply(e,n);return bo(),At(),r}const Cu=ho("__proto__,__v_isRef,__isVue"),Ua=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ue));function Pu(e){Ue(e)||(e=String(e));const t=ne(this);return xe(t,"has",e),t.hasOwnProperty(e)}class Va{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Hu:za:o?qa:Wa).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=G(t);if(!s){let l;if(i&&(l=Tu[n]))return l;if(n==="hasOwnProperty")return Pu}const a=Reflect.get(t,n,pe(t)?t:r);if((Ue(n)?Ua.has(n):Cu(n))||(s||xe(t,"get",n),o))return a;if(pe(a)){const l=i&&qr(n)?a:a.value;return s&&se(l)?Hs(l):l}return se(a)?s?Hs(a):ot(a):a}}class Ka extends Va{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=G(t)&&qr(n);if(!this._isShallow){const f=yt(o);if(!Be(r)&&!yt(r)&&(o=ne(o),r=ne(r)),!i&&pe(o)&&!pe(r))return f||(o.value=r),!0}const a=i?Number(n)e,hr=e=>Reflect.getPrototypeOf(e);function Mu(e,t,n){return function(...r){const s=this.__v_raw,o=ne(s),i=bn(o),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,f=s[e](...r),c=n?$s:t?Tn:rt;return!t&&xe(o,"iterate",l?Ds:tn),Te(Object.create(f),{next(){const{value:u,done:h}=f.next();return h?{value:u,done:h}:{value:a?[c(u[0]),c(u[1])]:c(u),done:h}}})}}function pr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Iu(e,t){const n={get(s){const o=this.__v_raw,i=ne(o),a=ne(s);e||(dt(s,a)&&xe(i,"get",s),xe(i,"get",a));const{has:l}=hr(i),f=t?$s:e?Tn:rt;if(l.call(i,s))return f(o.get(s));if(l.call(i,a))return f(o.get(a));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&xe(ne(s),"iterate",tn),s.size},has(s){const o=this.__v_raw,i=ne(o),a=ne(s);return e||(dt(s,a)&&xe(i,"has",s),xe(i,"has",a)),s===a?o.has(s):o.has(s)||o.has(a)},forEach(s,o){const i=this,a=i.__v_raw,l=ne(a),f=t?$s:e?Tn:rt;return!e&&xe(l,"iterate",tn),a.forEach((c,u)=>s.call(o,f(c),f(u),i))}};return Te(n,e?{add:pr("add"),set:pr("set"),delete:pr("delete"),clear:pr("clear")}:{add(s){const o=ne(this),i=hr(o),a=ne(s),l=!t&&!Be(s)&&!yt(s)?a:s;return i.has.call(o,l)||dt(s,l)&&i.has.call(o,s)||dt(a,l)&&i.has.call(o,a)||(o.add(l),Et(o,"add",l,l)),this},set(s,o){!t&&!Be(o)&&!yt(o)&&(o=ne(o));const i=ne(this),{has:a,get:l}=hr(i);let f=a.call(i,s);f||(s=ne(s),f=a.call(i,s));const c=l.call(i,s);return i.set(s,o),f?dt(o,c)&&Et(i,"set",s,o):Et(i,"add",s,o),this},delete(s){const o=ne(this),{has:i,get:a}=hr(o);let l=i.call(o,s);l||(s=ne(s),l=i.call(o,s)),a&&a.call(o,s);const f=o.delete(s);return l&&Et(o,"delete",s,void 0),f},clear(){const s=ne(this),o=s.size!==0,i=s.clear();return o&&Et(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Mu(s,e,t)}),n}function Eo(e,t){const n=Iu(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ie(n,s)&&s in r?n:r,s,o)}const Lu={get:Eo(!1,!1)},Du={get:Eo(!1,!0)},$u={get:Eo(!0,!1)};const Wa=new WeakMap,qa=new WeakMap,za=new WeakMap,Hu=new WeakMap;function Nu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ot(e){return yt(e)?e:So(e,!1,xu,Lu,Wa)}function Ze(e){return So(e,!1,Ou,Du,qa)}function Hs(e){return So(e,!0,ku,$u,za)}function So(e,t,n,r,s){if(!se(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const o=s.get(e);if(o)return o;const i=Nu(cu(e));if(i===0)return e;const a=new Proxy(e,i===2?r:n);return s.set(e,a),a}function gt(e){return yt(e)?gt(e.__v_raw):!!(e&&e.__v_isReactive)}function yt(e){return!!(e&&e.__v_isReadonly)}function Be(e){return!!(e&&e.__v_isShallow)}function ts(e){return e?!!e.__v_raw:!1}function ne(e){const t=e&&e.__v_raw;return t?ne(t):e}function To(e){return!ie(e,"__v_skip")&&Object.isExtensible(e)&&Pa(e,"__v_skip",!0),e}const rt=e=>se(e)?ot(e):e,Tn=e=>se(e)?Hs(e):e;function pe(e){return e?e.__v_isRef===!0:!1}function nt(e){return Ga(e,!1)}function Ut(e){return Ga(e,!0)}function Ga(e,t){return pe(e)?e:new ju(e,t)}class ju{constructor(t,n){this.dep=new wo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ne(t),this._value=n?t:rt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Be(t)||yt(t);t=r?t:ne(t),dt(t,n)&&(this._rawValue=t,this._value=r?t:rt(t),this.dep.trigger())}}function ae(e){return pe(e)?e.value:e}function ft(e){return Y(e)?e():ae(e)}const Fu={get:(e,t,n)=>t==="__v_raw"?e:ae(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return pe(s)&&!pe(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ja(e){return gt(e)?e:new Proxy(e,Fu)}function Bu(e){const t=G(e)?new Array(e.length):{};for(const n in e)t[n]=Ya(e,n);return t}class Uu{constructor(t,n,r){this._object=t,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._key=Ue(n)?n:String(n),this._raw=ne(t);let s=!0,o=t;if(!G(t)||Ue(this._key)||!qr(this._key))do s=!ts(o)||Be(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=ae(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&pe(this._raw[this._key])){const n=this._object[this._key];if(pe(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Su(this._raw,this._key)}}class Vu{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Xa(e,t,n){return pe(e)?e:Y(e)?new Vu(e):se(e)&&arguments.length>1?Ya(e,t,n):nt(e)}function Ya(e,t,n){return new Uu(e,t,n)}class Ku{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new wo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=tr-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&de!==this)return $a(this,!0),!0}get value(){const t=this.dep.track();return ja(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Wu(e,t,n=!1){let r,s;return Y(e)?r=e:(r=e.get,s=e.set),new Ku(r,s,n)}const gr={},Ar=new WeakMap;let Qt;function qu(e,t=!1,n=Qt){if(n){let r=Ar.get(n);r||Ar.set(n,r=[]),r.push(e)}}function zu(e,t,n=fe){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:a,call:l}=n,f=_=>s?_:Be(_)||s===!1||s===0?St(_,1):St(_);let c,u,h,d,y=!1,m=!1;if(pe(e)?(u=()=>e.value,y=Be(e)):gt(e)?(u=()=>f(e),y=!0):G(e)?(m=!0,y=e.some(_=>gt(_)||Be(_)),u=()=>e.map(_=>{if(pe(_))return _.value;if(gt(_))return f(_);if(Y(_))return l?l(_,2):_()})):Y(e)?t?u=l?()=>l(e,2):e:u=()=>{if(h){Pt();try{h()}finally{At()}}const _=Qt;Qt=c;try{return l?l(e,3,[d]):e(d)}finally{Qt=_}}:u=pt,t&&s){const _=u,w=s===!0?1/0:s;u=()=>St(_(),w)}const C=Zr(),E=()=>{c.stop(),C&&C.active&&po(C.effects,c)};if(o&&t){const _=t;t=(...w)=>{const k=_(...w);return E(),k}}let v=m?new Array(e.length).fill(gr):gr;const p=_=>{if(!(!(c.flags&1)||!c.dirty&&!_))if(t){const w=c.run();if(_||s||y||(m?w.some((k,A)=>dt(k,v[A])):dt(w,v))){h&&h();const k=Qt;Qt=c;try{const A=[w,v===gr?void 0:m&&v[0]===gr?[]:v,d];v=w,l?l(t,3,A):t(...A)}finally{Qt=k}}}else c.run()};return a&&a(p),c=new La(u),c.scheduler=i?()=>i(p,!1):p,d=_=>qu(_,!1,c),h=c.onStop=()=>{const _=Ar.get(c);if(_){if(l)l(_,4);else for(const w of _)w();Ar.delete(c)}},t?r?p(!0):v=c.run():i?i(p.bind(null,!0),!0):c.run(),E.pause=c.pause.bind(c),E.resume=c.resume.bind(c),E.stop=E,E}function St(e,t=1/0,n){if(t<=0||!se(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,pe(e))St(e.value,t,n);else if(G(e))for(let r=0;r{St(r,t,n)});else if(go(e)){for(const r in e)St(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&St(e[r],t,n)}return e}function cr(e,t,n,r){try{return r?e(...r):e()}catch(s){Ln(s,t,n)}}function Xe(e,t,n,r){if(Y(e)){const s=cr(e,t,n,r);return s&&Ra(s)&&s.catch(o=>{Ln(o,t,n)}),s}if(G(e)){const s=[];for(let o=0;o>>1,s=Ie[r],o=sr(s);o=sr(n)?Ie.push(e):Ie.splice(Ju(t),0,e),e.flags|=1,Za()}}function Za(){xr||(xr=Qa.then(el))}function rr(e){G(e)?wn.push(...e):$t&&e.id===-1?$t.splice(hn+1,0,e):e.flags&1||(wn.push(e),e.flags|=1),Za()}function Qo(e,t,n=lt+1){for(;nsr(n)-sr(r));if(wn.length=0,$t){$t.push(...t);return}for($t=t,hn=0;hn<$t.length;hn++){const n=$t[hn];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}$t=null,hn=0}}const sr=e=>e.id==null?e.flags&2?-1:1/0:e.id;function el(e){try{for(lt=0;lt{r._d&&Hr(-1);const o=Or(t);let i;try{i=e(...s)}finally{Or(o),r._d&&Hr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Wm(e,t){if(Ae===null)return e;const n=as(Ae),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&Y(t)?t.call(r&&r.proxy):t}}function ns(){return!!(an()||nn)}const Xu=Symbol.for("v-scx"),Yu=()=>Ce(Xu);function Qu(e,t){return Po(e,null,t)}function Rt(e,t,n){return Po(e,t,n)}function Po(e,t,n=fe){const{immediate:r,deep:s,flush:o,once:i}=n,a=Te({},n),l=t&&r||!t&&o!=="post";let f;if(Pn){if(o==="sync"){const d=Yu();f=d.__watcherHandles||(d.__watcherHandles=[])}else if(!l){const d=()=>{};return d.stop=pt,d.resume=pt,d.pause=pt,d}}const c=Pe;a.call=(d,y,m)=>Xe(d,c,y,m);let u=!1;o==="post"?a.scheduler=d=>{Se(d,c&&c.suspense)}:o!=="sync"&&(u=!0,a.scheduler=(d,y)=>{y?d():Ro(d)}),a.augmentJob=d=>{t&&(d.flags|=4),u&&(d.flags|=2,c&&(d.id=c.uid,d.i=c))};const h=zu(e,t,a);return Pn&&(f?f.push(h):l&&h()),h}function Zu(e,t,n){const r=this.proxy,s=he(e)?e.includes(".")?nl(r,e):()=>r[e]:e.bind(r,r);let o;Y(t)?o=t:(o=t.handler,n=t);const i=dr(this),a=Po(s,o.bind(r),n);return i(),a}function nl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,ze=Symbol("_leaveCb"),Nn=Symbol("_enterCb");function tf(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return xo(()=>{e.isMounted=!0}),fr(()=>{e.isUnmounting=!0}),e}const We=[Function,Array],sl={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:We,onEnter:We,onAfterEnter:We,onEnterCancelled:We,onBeforeLeave:We,onLeave:We,onAfterLeave:We,onLeaveCancelled:We,onBeforeAppear:We,onAppear:We,onAfterAppear:We,onAppearCancelled:We},ol=e=>{const t=e.subTree;return t.component?ol(t.component):t},nf={name:"BaseTransition",props:sl,setup(e,{slots:t}){const n=an(),r=tf();return()=>{const s=t.default&&ll(t.default(),!0),o=s&&s.length?il(s):n.subTree?Xf():void 0;if(!o)return;const i=ne(e),{mode:a}=i;if(r.isLeaving)return ys(o);const l=Zo(o);if(!l)return ys(o);let f=Ns(l,i,r,n,u=>f=u);l.type!==_e&&Rn(l,f);let c=n.subTree&&Zo(n.subTree);if(c&&c.type!==_e&&!et(c,l)&&ol(n).type!==_e){let u=Ns(c,i,r,n);if(Rn(c,u),a==="out-in"&&l.type!==_e)return r.isLeaving=!0,u.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete u.afterLeave,c=void 0},ys(o);a==="in-out"&&l.type!==_e?u.delayLeave=(h,d,y)=>{const m=al(r,c);m[String(c.key)]=c,h[ze]=()=>{d(),h[ze]=void 0,delete f.delayedLeave,c=void 0},f.delayedLeave=()=>{y(),delete f.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return o}}};function il(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==_e){t=n;break}}return t}const rf=nf;function al(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 Ns(e,t,n,r,s){const{appear:o,mode:i,persisted:a=!1,onBeforeEnter:l,onEnter:f,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:h,onLeave:d,onAfterLeave:y,onLeaveCancelled:m,onBeforeAppear:C,onAppear:E,onAfterAppear:v,onAppearCancelled:p}=t,_=String(e.key),w=al(n,e),k=(R,T)=>{R&&Xe(R,r,9,T)},A=(R,T)=>{const H=T[1];k(R,T),G(R)?R.every(L=>L.length<=1)&&H():R.length<=1&&H()},D={mode:i,persisted:a,beforeEnter(R){let T=l;if(!n.isMounted)if(o)T=C||l;else return;R[ze]&&R[ze](!0);const H=w[_];H&&et(e,H)&&H.el[ze]&&H.el[ze](),k(T,[R])},enter(R){if(w[_]===e)return;let T=f,H=c,L=u;if(!n.isMounted)if(o)T=E||f,H=v||c,L=p||u;else return;let W=!1;R[Nn]=te=>{W||(W=!0,te?k(L,[R]):k(H,[R]),D.delayedLeave&&D.delayedLeave(),R[Nn]=void 0)};const Z=R[Nn].bind(null,!1);T?A(T,[R,Z]):Z()},leave(R,T){const H=String(e.key);if(R[Nn]&&R[Nn](!0),n.isUnmounting)return T();k(h,[R]);let L=!1;R[ze]=Z=>{L||(L=!0,T(),Z?k(m,[R]):k(y,[R]),R[ze]=void 0,w[H]===e&&delete w[H])};const W=R[ze].bind(null,!1);w[H]=e,d?A(d,[R,W]):W()},clone(R){const T=Ns(R,t,n,r,s);return s&&s(T),T}};return D}function ys(e){if(ur(e))return e=kt(e),e.children=null,e}function Zo(e){if(!ur(e))return rl(e.type)&&e.children?il(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Y(n.default))return n.default()}}function Rn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Rn(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 ll(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oEn(m,t&&(G(t)?t[C]:t),n,r,s));return}if(Ct(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&En(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?as(r.component):r.el,i=s?null:o,{i:a,r:l}=e,f=t&&t.r,c=a.refs===fe?a.refs={}:a.refs,u=a.setupState,h=ne(u),d=u===fe?Ta:m=>ei(c,m)?!1:ie(h,m),y=(m,C)=>!(C&&ei(c,C));if(f!=null&&f!==l){if(ti(t),he(f))c[f]=null,d(f)&&(u[f]=null);else if(pe(f)){const m=t;y(f,m.k)&&(f.value=null),m.k&&(c[m.k]=null)}}if(Y(l))cr(l,a,12,[i,c]);else{const m=he(l),C=pe(l);if(m||C){const E=()=>{if(e.f){const v=m?d(l)?u[l]:c[l]:y()||!e.k?l.value:c[e.k];if(s)G(v)&&po(v,o);else if(G(v))v.includes(o)||v.push(o);else if(m)c[l]=[o],d(l)&&(u[l]=c[l]);else{const p=[o];y(l,e.k)&&(l.value=p),e.k&&(c[e.k]=p)}}else m?(c[l]=i,d(l)&&(u[l]=i)):C&&(y(l,e.k)&&(l.value=i),e.k&&(c[e.k]=i))};if(i){const v=()=>{E(),Mr.delete(e)};v.id=-1,Mr.set(e,v),Se(v,n)}else ti(e),E()}}}function ti(e){const t=Mr.get(e);t&&(t.flags|=8,Mr.delete(e))}let ni=!1;const fn=()=>{ni||(console.error("Hydration completed but contains mismatches."),ni=!0)},sf=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",of=e=>e.namespaceURI.includes("MathML"),yr=e=>{if(e.nodeType===1){if(sf(e))return"svg";if(of(e))return"mathml"}},yn=e=>e.nodeType===8;function af(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:a,insert:l,createComment:f}}=e,c=(p,_)=>{if(!_.hasChildNodes()){n(null,p,_),kr(),_._vnode=p;return}u(_.firstChild,p,null,null,null),kr(),_._vnode=p},u=(p,_,w,k,A,D=!1)=>{D=D||!!_.dynamicChildren;const R=yn(p)&&p.data==="[",T=()=>m(p,_,w,k,A,R),{type:H,ref:L,shapeFlag:W,patchFlag:Z}=_;let te=p.nodeType;_.el=p,Z===-2&&(D=!1,_.dynamicChildren=null);let F=null;switch(H){case rn:te!==3?_.children===""?(l(_.el=s(""),i(p),p),F=p):F=T():(p.data!==_.children&&(fn(),p.data=_.children),F=o(p));break;case _e:v(p)?(F=o(p),E(_.el=p.content.firstChild,p,w)):te!==8||R?F=T():F=o(p);break;case Jn:if(R&&(p=o(p),te=p.nodeType),te===1||te===3){F=p;const q=!_.children.length;for(let V=0;V<_.staticCount;V++)q&&(_.children+=F.nodeType===1?F.outerHTML:F.data),V===_.staticCount-1&&(_.anchor=F),F=o(F);return R?o(F):F}else T();break;case ke:R?F=y(p,_,w,k,A,D):F=T();break;default:if(W&1)(te!==1||_.type.toLowerCase()!==p.tagName.toLowerCase())&&!v(p)?F=T():F=h(p,_,w,k,A,D);else if(W&6){_.slotScopeIds=A;const q=i(p);if(R?F=C(p):yn(p)&&p.data==="teleport start"?F=C(p,p.data,"teleport end"):F=o(p),t(_,q,null,w,k,yr(q),D),Ct(_)&&!_.type.__asyncResolved){let V;R?(V=ye(ke),V.anchor=F?F.previousSibling:q.lastChild):V=p.nodeType===3?Kl(""):ye("div"),V.el=p,_.component.subTree=V}}else W&64?te!==8?F=T():F=_.type.hydrate(p,_,w,k,A,D,e,d):W&128&&(F=_.type.hydrate(p,_,w,k,yr(i(p)),A,D,e,u))}return L!=null&&En(L,null,k,_),F},h=(p,_,w,k,A,D)=>{D=D||!!_.dynamicChildren;const{type:R,props:T,patchFlag:H,shapeFlag:L,dirs:W,transition:Z}=_,te=R==="input"||R==="option";if(te||H!==-1){W&&ct(_,null,w,"created");let F=!1;if(v(p)){F=Il(null,Z)&&w&&w.vnode.props&&w.vnode.props.appear;const V=p.content.firstChild;if(F){const le=V.getAttribute("class");le&&(V.$cls=le),Z.beforeEnter(V)}E(V,p,w),_.el=p=V}if(L&16&&!(T&&(T.innerHTML||T.textContent))){let V=d(p.firstChild,_,p,w,k,A,D);for(V&&!mr(p,1)&&fn();V;){const le=V;V=V.nextSibling,a(le)}}else if(L&8){let V=_.children;V[0]===` +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./C2sLAWj2.js","./9B2ftqmN.js","./D9HxoMhB.js","./yUUyh6cG.js","./lLLegusN.js","./accounts.B82323Fi.css","./B_JvM6BO.js","./appconfig.j94fgYL_.css","./vesedpp3.js","./apps.B7hnJBQU.css","./DNKl-FHZ.js","./calltranslate.B6r4Q8-j.css","./UoJ1COMF.js","./Cx-e2Cok.js","./dashboard.bI0rfjl_.css","./Cy8zKM7T.js","./Bxcdr2qc.js","./BVGGsVu4.js","./uwVesjjP.js","./BeU4EYjt.js","./CZnZfJ5f.js","./GZxzc1Rc.js","./CF8arGVK.js","./serviceconfig.Io3AqtMK.css","./Bi5c3E0c.js","./statlog.C1q_3yEh.css","./EIJPD_ga.js","./systemconfig.DaWusDMu.css","./BIBu1qhq.js","./CnuHOwQV.js","./index.4nAkFRy2.css","./FZLr1rN5.js","./CnkSDgVO.js","./default.miyQHb0v.css","./BroHRKpP.js","./DpWhlKu2.js","./error-404.Dm-MYrAh.css","./P2ZWRt51.js","./error-500.DM8oqBl3.css"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function ho(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const fe={},_n=[],pt=()=>{},Ta=()=>!1,lr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Wr=e=>e.startsWith("onUpdate:"),Te=Object.assign,po=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},au=Object.prototype.hasOwnProperty,ie=(e,t)=>au.call(e,t),G=Array.isArray,bn=e=>In(e)==="[object Map]",Mn=e=>In(e)==="[object Set]",Go=e=>In(e)==="[object Date]",lu=e=>In(e)==="[object RegExp]",Y=e=>typeof e=="function",he=e=>typeof e=="string",Ue=e=>typeof e=="symbol",se=e=>e!==null&&typeof e=="object",Ra=e=>(se(e)||Y(e))&&Y(e.then)&&Y(e.catch),Ca=Object.prototype.toString,In=e=>Ca.call(e),cu=e=>In(e).slice(8,-1),go=e=>In(e)==="[object Object]",qr=e=>he(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,en=ho(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),zr=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},uu=/-\w/g,Le=zr(e=>e.replace(uu,t=>t.slice(1).toUpperCase())),fu=/\B([A-Z])/g,Kt=zr(e=>e.replace(fu,"-$1").toLowerCase()),Gr=zr(e=>e.charAt(0).toUpperCase()+e.slice(1)),fs=zr(e=>e?`on${Gr(e)}`:""),dt=(e,t)=>!Object.is(e,t),vn=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Jr=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Aa=e=>{const t=he(e)?Number(e):NaN;return isNaN(t)?e:t};let Jo;const Xr=()=>Jo||(Jo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Yr(e){if(G(e)){const t={};for(let n=0;n{if(n){const r=n.split(hu);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function Qr(e){let t="";if(he(e))t=e;else if(G(e))for(let n=0;nBt(n,t))}const ka=e=>!!(e&&e.__v_isRef===!0),vu=e=>he(e)?e:e==null?"":G(e)||se(e)&&(e.toString===Ca||!Y(e.toString))?ka(e)?vu(e.value):JSON.stringify(e,Oa,2):String(e),Oa=(e,t)=>ka(t)?Oa(e,t.value):bn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[ds(r,o)+" =>"]=s,n),{})}:Mn(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ds(n))}:Ue(t)?ds(t):se(t)&&!G(t)&&!go(t)?String(t):t,ds=(e,t="")=>{var n;return Ue(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let Ee;class Ma{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Ee&&(Ee.active?(this.parent=Ee,this.index=(Ee.scopes||(Ee.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0){if(Ee===this)Ee=this.prevScope;else{let t=Ee;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(zn){let t=zn;for(zn=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;qn;){let t=qn;for(qn=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Ha(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Na(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),vo(r),wu(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function Ls(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(ja(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function ja(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===tr)||(e.globalVersion=tr,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ls(e))))return;e.flags|=2;const t=e.dep,n=de,r=tt;de=e,tt=!0;try{Ha(e);const s=e.fn(e._value);(t.version===0||dt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{de=n,tt=r,Na(e),e.flags&=-3}}function vo(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let o=n.computed.deps;o;o=o.nextDep)vo(o,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function wu(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let tt=!0;const Fa=[];function Pt(){Fa.push(tt),tt=!1}function At(){const e=Fa.pop();tt=e===void 0?!0:e}function Xo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=de;de=void 0;try{t()}finally{de=n}}}let tr=0;class Eu{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class wo{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!de||!tt||de===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==de)n=this.activeLink=new Eu(de,this),de.deps?(n.prevDep=de.depsTail,de.depsTail.nextDep=n,de.depsTail=n):de.deps=de.depsTail=n,Ba(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=de.depsTail,n.nextDep=void 0,de.depsTail.nextDep=n,de.depsTail=n,de.deps===n&&(de.deps=r)}return n}trigger(t){this.version++,tr++,this.notify(t)}notify(t){_o();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{bo()}}}function Ba(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Ba(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Pr=new WeakMap,tn=Symbol(""),Ds=Symbol(""),nr=Symbol("");function xe(e,t,n){if(tt&&de){let r=Pr.get(e);r||Pr.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new wo),s.map=r,s.key=n),s.track()}}function Et(e,t,n,r,s,o){const i=Pr.get(e);if(!i){tr++;return}const a=l=>{l&&l.trigger()};if(_o(),t==="clear")i.forEach(a);else{const l=G(e),f=l&&qr(n);if(l&&n==="length"){const c=Number(r);i.forEach((u,h)=>{(h==="length"||h===nr||!Ue(h)&&h>=c)&&a(u)})}else switch((n!==void 0||i.has(void 0))&&a(i.get(n)),f&&a(i.get(nr)),t){case"add":l?f&&a(i.get("length")):(a(i.get(tn)),bn(e)&&a(i.get(Ds)));break;case"delete":l||(a(i.get(tn)),bn(e)&&a(i.get(Ds)));break;case"set":bn(e)&&a(i.get(tn));break}}bo()}function Su(e,t){const n=Pr.get(e);return n&&n.get(t)}function un(e){const t=ne(e);return t===e?t:(xe(t,"iterate",nr),Be(e)?t:t.map(rt))}function es(e){return xe(e=ne(e),"iterate",nr),e}function ut(e,t){return mt(e)?Tn(gt(e)?rt(t):t):rt(t)}const Tu={__proto__:null,[Symbol.iterator](){return ps(this,Symbol.iterator,e=>ut(this,e))},concat(...e){return un(this).concat(...e.map(t=>G(t)?un(t):t))},entries(){return ps(this,"entries",e=>(e[1]=ut(this,e[1]),e))},every(e,t){return yt(this,"every",e,t,void 0,arguments)},filter(e,t){return yt(this,"filter",e,t,n=>n.map(r=>ut(this,r)),arguments)},find(e,t){return yt(this,"find",e,t,n=>ut(this,n),arguments)},findIndex(e,t){return yt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return yt(this,"findLast",e,t,n=>ut(this,n),arguments)},findLastIndex(e,t){return yt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return yt(this,"forEach",e,t,void 0,arguments)},includes(...e){return gs(this,"includes",e)},indexOf(...e){return gs(this,"indexOf",e)},join(e){return un(this).join(e)},lastIndexOf(...e){return gs(this,"lastIndexOf",e)},map(e,t){return yt(this,"map",e,t,void 0,arguments)},pop(){return Hn(this,"pop")},push(...e){return Hn(this,"push",e)},reduce(e,...t){return Yo(this,"reduce",e,t)},reduceRight(e,...t){return Yo(this,"reduceRight",e,t)},shift(){return Hn(this,"shift")},some(e,t){return yt(this,"some",e,t,void 0,arguments)},splice(...e){return Hn(this,"splice",e)},toReversed(){return un(this).toReversed()},toSorted(e){return un(this).toSorted(e)},toSpliced(...e){return un(this).toSpliced(...e)},unshift(...e){return Hn(this,"unshift",e)},values(){return ps(this,"values",e=>ut(this,e))}};function ps(e,t,n){const r=es(e),s=r[t]();return r!==e&&!Be(e)&&(s._next=s.next,s.next=()=>{const o=s._next();return o.done||(o.value=n(o.value)),o}),s}const Ru=Array.prototype;function yt(e,t,n,r,s,o){const i=es(e),a=i!==e&&!Be(e),l=i[t];if(l!==Ru[t]){const u=l.apply(e,o);return a?rt(u):u}let f=n;i!==e&&(a?f=function(u,h){return n.call(this,ut(e,u),h,e)}:n.length>2&&(f=function(u,h){return n.call(this,u,h,e)}));const c=l.call(i,f,r);return a&&s?s(c):c}function Yo(e,t,n,r){const s=es(e),o=s!==e&&!Be(e);let i=n,a=!1;s!==e&&(o?(a=r.length===0,i=function(f,c,u){return a&&(a=!1,f=ut(e,f)),n.call(this,f,ut(e,c),u,e)}):n.length>3&&(i=function(f,c,u){return n.call(this,f,c,u,e)}));const l=s[t](i,...r);return a?ut(e,l):l}function gs(e,t,n){const r=ne(e);xe(r,"iterate",nr);const s=r[t](...n);return(s===-1||s===!1)&&ts(n[0])?(n[0]=ne(n[0]),r[t](...n)):s}function Hn(e,t,n=[]){Pt(),_o();const r=ne(e)[t].apply(e,n);return bo(),At(),r}const Cu=ho("__proto__,__v_isRef,__isVue"),Ua=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Ue));function Pu(e){Ue(e)||(e=String(e));const t=ne(this);return xe(t,"has",e),t.hasOwnProperty(e)}class Va{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?Hu:za:o?qa:Wa).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=G(t);if(!s){let l;if(i&&(l=Tu[n]))return l;if(n==="hasOwnProperty")return Pu}const a=Reflect.get(t,n,pe(t)?t:r);if((Ue(n)?Ua.has(n):Cu(n))||(s||xe(t,"get",n),o))return a;if(pe(a)){const l=i&&qr(n)?a:a.value;return s&&se(l)?Hs(l):l}return se(a)?s?Hs(a):ot(a):a}}class Ka extends Va{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];const i=G(t)&&qr(n);if(!this._isShallow){const f=mt(o);if(!Be(r)&&!mt(r)&&(o=ne(o),r=ne(r)),!i&&pe(o)&&!pe(r))return f||(o.value=r),!0}const a=i?Number(n)e,hr=e=>Reflect.getPrototypeOf(e);function Mu(e,t,n){return function(...r){const s=this.__v_raw,o=ne(s),i=bn(o),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,f=s[e](...r),c=n?$s:t?Tn:rt;return!t&&xe(o,"iterate",l?Ds:tn),Te(Object.create(f),{next(){const{value:u,done:h}=f.next();return h?{value:u,done:h}:{value:a?[c(u[0]),c(u[1])]:c(u),done:h}}})}}function pr(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Iu(e,t){const n={get(s){const o=this.__v_raw,i=ne(o),a=ne(s);e||(dt(s,a)&&xe(i,"get",s),xe(i,"get",a));const{has:l}=hr(i),f=t?$s:e?Tn:rt;if(l.call(i,s))return f(o.get(s));if(l.call(i,a))return f(o.get(a));o!==i&&o.get(s)},get size(){const s=this.__v_raw;return!e&&xe(ne(s),"iterate",tn),s.size},has(s){const o=this.__v_raw,i=ne(o),a=ne(s);return e||(dt(s,a)&&xe(i,"has",s),xe(i,"has",a)),s===a?o.has(s):o.has(s)||o.has(a)},forEach(s,o){const i=this,a=i.__v_raw,l=ne(a),f=t?$s:e?Tn:rt;return!e&&xe(l,"iterate",tn),a.forEach((c,u)=>s.call(o,f(c),f(u),i))}};return Te(n,e?{add:pr("add"),set:pr("set"),delete:pr("delete"),clear:pr("clear")}:{add(s){const o=ne(this),i=hr(o),a=ne(s),l=!t&&!Be(s)&&!mt(s)?a:s;return i.has.call(o,l)||dt(s,l)&&i.has.call(o,s)||dt(a,l)&&i.has.call(o,a)||(o.add(l),Et(o,"add",l,l)),this},set(s,o){!t&&!Be(o)&&!mt(o)&&(o=ne(o));const i=ne(this),{has:a,get:l}=hr(i);let f=a.call(i,s);f||(s=ne(s),f=a.call(i,s));const c=l.call(i,s);return i.set(s,o),f?dt(o,c)&&Et(i,"set",s,o):Et(i,"add",s,o),this},delete(s){const o=ne(this),{has:i,get:a}=hr(o);let l=i.call(o,s);l||(s=ne(s),l=i.call(o,s)),a&&a.call(o,s);const f=o.delete(s);return l&&Et(o,"delete",s,void 0),f},clear(){const s=ne(this),o=s.size!==0,i=s.clear();return o&&Et(s,"clear",void 0,void 0),i}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Mu(s,e,t)}),n}function Eo(e,t){const n=Iu(e,t);return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ie(n,s)&&s in r?n:r,s,o)}const Lu={get:Eo(!1,!1)},Du={get:Eo(!1,!0)},$u={get:Eo(!0,!1)};const Wa=new WeakMap,qa=new WeakMap,za=new WeakMap,Hu=new WeakMap;function Nu(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ot(e){return mt(e)?e:So(e,!1,xu,Lu,Wa)}function Ze(e){return So(e,!1,Ou,Du,qa)}function Hs(e){return So(e,!0,ku,$u,za)}function So(e,t,n,r,s){if(!se(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const o=s.get(e);if(o)return o;const i=Nu(cu(e));if(i===0)return e;const a=new Proxy(e,i===2?r:n);return s.set(e,a),a}function gt(e){return mt(e)?gt(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function Be(e){return!!(e&&e.__v_isShallow)}function ts(e){return e?!!e.__v_raw:!1}function ne(e){const t=e&&e.__v_raw;return t?ne(t):e}function To(e){return!ie(e,"__v_skip")&&Object.isExtensible(e)&&Pa(e,"__v_skip",!0),e}const rt=e=>se(e)?ot(e):e,Tn=e=>se(e)?Hs(e):e;function pe(e){return e?e.__v_isRef===!0:!1}function nt(e){return Ga(e,!1)}function Ut(e){return Ga(e,!0)}function Ga(e,t){return pe(e)?e:new ju(e,t)}class ju{constructor(t,n){this.dep=new wo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ne(t),this._value=n?t:rt(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Be(t)||mt(t);t=r?t:ne(t),dt(t,n)&&(this._rawValue=t,this._value=r?t:rt(t),this.dep.trigger())}}function ae(e){return pe(e)?e.value:e}function ft(e){return Y(e)?e():ae(e)}const Fu={get:(e,t,n)=>t==="__v_raw"?e:ae(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return pe(s)&&!pe(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function Ja(e){return gt(e)?e:new Proxy(e,Fu)}function Bu(e){const t=G(e)?new Array(e.length):{};for(const n in e)t[n]=Ya(e,n);return t}class Uu{constructor(t,n,r){this._object=t,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0,this._key=Ue(n)?n:String(n),this._raw=ne(t);let s=!0,o=t;if(!G(t)||Ue(this._key)||!qr(this._key))do s=!ts(o)||Be(o);while(s&&(o=o.__v_raw));this._shallow=s}get value(){let t=this._object[this._key];return this._shallow&&(t=ae(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&pe(this._raw[this._key])){const n=this._object[this._key];if(pe(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return Su(this._raw,this._key)}}class Vu{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Xa(e,t,n){return pe(e)?e:Y(e)?new Vu(e):se(e)&&arguments.length>1?Ya(e,t,n):nt(e)}function Ya(e,t,n){return new Uu(e,t,n)}class Ku{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new wo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=tr-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&de!==this)return $a(this,!0),!0}get value(){const t=this.dep.track();return ja(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Wu(e,t,n=!1){let r,s;return Y(e)?r=e:(r=e.get,s=e.set),new Ku(r,s,n)}const gr={},Ar=new WeakMap;let Qt;function qu(e,t=!1,n=Qt){if(n){let r=Ar.get(n);r||Ar.set(n,r=[]),r.push(e)}}function zu(e,t,n=fe){const{immediate:r,deep:s,once:o,scheduler:i,augmentJob:a,call:l}=n,f=_=>s?_:Be(_)||s===!1||s===0?St(_,1):St(_);let c,u,h,d,m=!1,y=!1;if(pe(e)?(u=()=>e.value,m=Be(e)):gt(e)?(u=()=>f(e),m=!0):G(e)?(y=!0,m=e.some(_=>gt(_)||Be(_)),u=()=>e.map(_=>{if(pe(_))return _.value;if(gt(_))return f(_);if(Y(_))return l?l(_,2):_()})):Y(e)?t?u=l?()=>l(e,2):e:u=()=>{if(h){Pt();try{h()}finally{At()}}const _=Qt;Qt=c;try{return l?l(e,3,[d]):e(d)}finally{Qt=_}}:u=pt,t&&s){const _=u,w=s===!0?1/0:s;u=()=>St(_(),w)}const C=Zr(),E=()=>{c.stop(),C&&C.active&&po(C.effects,c)};if(o&&t){const _=t;t=(...w)=>{const k=_(...w);return E(),k}}let v=y?new Array(e.length).fill(gr):gr;const p=_=>{if(!(!(c.flags&1)||!c.dirty&&!_))if(t){const w=c.run();if(_||s||m||(y?w.some((k,A)=>dt(k,v[A])):dt(w,v))){h&&h();const k=Qt;Qt=c;try{const A=[w,v===gr?void 0:y&&v[0]===gr?[]:v,d];v=w,l?l(t,3,A):t(...A)}finally{Qt=k}}}else c.run()};return a&&a(p),c=new La(u),c.scheduler=i?()=>i(p,!1):p,d=_=>qu(_,!1,c),h=c.onStop=()=>{const _=Ar.get(c);if(_){if(l)l(_,4);else for(const w of _)w();Ar.delete(c)}},t?r?p(!0):v=c.run():i?i(p.bind(null,!0),!0):c.run(),E.pause=c.pause.bind(c),E.resume=c.resume.bind(c),E.stop=E,E}function St(e,t=1/0,n){if(t<=0||!se(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,pe(e))St(e.value,t,n);else if(G(e))for(let r=0;r{St(r,t,n)});else if(go(e)){for(const r in e)St(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&St(e[r],t,n)}return e}function cr(e,t,n,r){try{return r?e(...r):e()}catch(s){Ln(s,t,n)}}function Xe(e,t,n,r){if(Y(e)){const s=cr(e,t,n,r);return s&&Ra(s)&&s.catch(o=>{Ln(o,t,n)}),s}if(G(e)){const s=[];for(let o=0;o>>1,s=Ie[r],o=sr(s);o=sr(n)?Ie.push(e):Ie.splice(Ju(t),0,e),e.flags|=1,Za()}}function Za(){xr||(xr=Qa.then(el))}function rr(e){G(e)?wn.push(...e):$t&&e.id===-1?$t.splice(hn+1,0,e):e.flags&1||(wn.push(e),e.flags|=1),Za()}function Qo(e,t,n=lt+1){for(;nsr(n)-sr(r));if(wn.length=0,$t){$t.push(...t);return}for($t=t,hn=0;hn<$t.length;hn++){const n=$t[hn];n.flags&4&&(n.flags&=-2),n.flags&8||n(),n.flags&=-2}$t=null,hn=0}}const sr=e=>e.id==null?e.flags&2?-1:1/0:e.id;function el(e){try{for(lt=0;lt{r._d&&Hr(-1);const o=Or(t);let i;try{i=e(...s)}finally{Or(o),r._d&&Hr(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function Gy(e,t){if(Ae===null)return e;const n=as(Ae),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&Y(t)?t.call(r&&r.proxy):t}}function ns(){return!!(an()||nn)}const Xu=Symbol.for("v-scx"),Yu=()=>Ce(Xu);function Qu(e,t){return Po(e,null,t)}function Rt(e,t,n){return Po(e,t,n)}function Po(e,t,n=fe){const{immediate:r,deep:s,flush:o,once:i}=n,a=Te({},n),l=t&&r||!t&&o!=="post";let f;if(Pn){if(o==="sync"){const d=Yu();f=d.__watcherHandles||(d.__watcherHandles=[])}else if(!l){const d=()=>{};return d.stop=pt,d.resume=pt,d.pause=pt,d}}const c=Pe;a.call=(d,m,y)=>Xe(d,c,m,y);let u=!1;o==="post"?a.scheduler=d=>{Se(d,c&&c.suspense)}:o!=="sync"&&(u=!0,a.scheduler=(d,m)=>{m?d():Ro(d)}),a.augmentJob=d=>{t&&(d.flags|=4),u&&(d.flags|=2,c&&(d.id=c.uid,d.i=c))};const h=zu(e,t,a);return Pn&&(f?f.push(h):l&&h()),h}function Zu(e,t,n){const r=this.proxy,s=he(e)?e.includes(".")?nl(r,e):()=>r[e]:e.bind(r,r);let o;Y(t)?o=t:(o=t.handler,n=t);const i=dr(this),a=Po(s,o.bind(r),n);return i(),a}function nl(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport,ze=Symbol("_leaveCb"),Nn=Symbol("_enterCb");function tf(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return xo(()=>{e.isMounted=!0}),fr(()=>{e.isUnmounting=!0}),e}const We=[Function,Array],sl={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:We,onEnter:We,onAfterEnter:We,onEnterCancelled:We,onBeforeLeave:We,onLeave:We,onAfterLeave:We,onLeaveCancelled:We,onBeforeAppear:We,onAppear:We,onAfterAppear:We,onAppearCancelled:We},ol=e=>{const t=e.subTree;return t.component?ol(t.component):t},nf={name:"BaseTransition",props:sl,setup(e,{slots:t}){const n=an(),r=tf();return()=>{const s=t.default&&ll(t.default(),!0),o=s&&s.length?il(s):n.subTree?Xf():void 0;if(!o)return;const i=ne(e),{mode:a}=i;if(r.isLeaving)return ms(o);const l=Zo(o);if(!l)return ms(o);let f=Ns(l,i,r,n,u=>f=u);l.type!==be&&Rn(l,f);let c=n.subTree&&Zo(n.subTree);if(c&&c.type!==be&&!et(c,l)&&ol(n).type!==be){let u=Ns(c,i,r,n);if(Rn(c,u),a==="out-in"&&l.type!==be)return r.isLeaving=!0,u.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete u.afterLeave,c=void 0},ms(o);a==="in-out"&&l.type!==be?u.delayLeave=(h,d,m)=>{const y=al(r,c);y[String(c.key)]=c,h[ze]=()=>{d(),h[ze]=void 0,delete f.delayedLeave,c=void 0},f.delayedLeave=()=>{m(),delete f.delayedLeave,c=void 0}}:c=void 0}else c&&(c=void 0);return o}}};function il(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==be){t=n;break}}return t}const rf=nf;function al(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 Ns(e,t,n,r,s){const{appear:o,mode:i,persisted:a=!1,onBeforeEnter:l,onEnter:f,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:h,onLeave:d,onAfterLeave:m,onLeaveCancelled:y,onBeforeAppear:C,onAppear:E,onAfterAppear:v,onAppearCancelled:p}=t,_=String(e.key),w=al(n,e),k=(R,T)=>{R&&Xe(R,r,9,T)},A=(R,T)=>{const H=T[1];k(R,T),G(R)?R.every(L=>L.length<=1)&&H():R.length<=1&&H()},D={mode:i,persisted:a,beforeEnter(R){let T=l;if(!n.isMounted)if(o)T=C||l;else return;R[ze]&&R[ze](!0);const H=w[_];H&&et(e,H)&&H.el[ze]&&H.el[ze](),k(T,[R])},enter(R){if(w[_]===e)return;let T=f,H=c,L=u;if(!n.isMounted)if(o)T=E||f,H=v||c,L=p||u;else return;let W=!1;R[Nn]=te=>{W||(W=!0,te?k(L,[R]):k(H,[R]),D.delayedLeave&&D.delayedLeave(),R[Nn]=void 0)};const Z=R[Nn].bind(null,!1);T?A(T,[R,Z]):Z()},leave(R,T){const H=String(e.key);if(R[Nn]&&R[Nn](!0),n.isUnmounting)return T();k(h,[R]);let L=!1;R[ze]=Z=>{L||(L=!0,T(),Z?k(y,[R]):k(m,[R]),R[ze]=void 0,w[H]===e&&delete w[H])};const W=R[ze].bind(null,!1);w[H]=e,d?A(d,[R,W]):W()},clone(R){const T=Ns(R,t,n,r,s);return s&&s(T),T}};return D}function ms(e){if(ur(e))return e=kt(e),e.children=null,e}function Zo(e){if(!ur(e))return rl(e.type)&&e.children?il(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Y(n.default))return n.default()}}function Rn(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Rn(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 ll(e,t=!1,n){let r=[],s=0;for(let o=0;o1)for(let o=0;oEn(y,t&&(G(t)?t[C]:t),n,r,s));return}if(Ct(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&En(e,t,n,r.component.subTree);return}const o=r.shapeFlag&4?as(r.component):r.el,i=s?null:o,{i:a,r:l}=e,f=t&&t.r,c=a.refs===fe?a.refs={}:a.refs,u=a.setupState,h=ne(u),d=u===fe?Ta:y=>ei(c,y)?!1:ie(h,y),m=(y,C)=>!(C&&ei(c,C));if(f!=null&&f!==l){if(ti(t),he(f))c[f]=null,d(f)&&(u[f]=null);else if(pe(f)){const y=t;m(f,y.k)&&(f.value=null),y.k&&(c[y.k]=null)}}if(Y(l))cr(l,a,12,[i,c]);else{const y=he(l),C=pe(l);if(y||C){const E=()=>{if(e.f){const v=y?d(l)?u[l]:c[l]:m()||!e.k?l.value:c[e.k];if(s)G(v)&&po(v,o);else if(G(v))v.includes(o)||v.push(o);else if(y)c[l]=[o],d(l)&&(u[l]=c[l]);else{const p=[o];m(l,e.k)&&(l.value=p),e.k&&(c[e.k]=p)}}else y?(c[l]=i,d(l)&&(u[l]=i)):C&&(m(l,e.k)&&(l.value=i),e.k&&(c[e.k]=i))};if(i){const v=()=>{E(),Mr.delete(e)};v.id=-1,Mr.set(e,v),Se(v,n)}else ti(e),E()}}}function ti(e){const t=Mr.get(e);t&&(t.flags|=8,Mr.delete(e))}let ni=!1;const fn=()=>{ni||(console.error("Hydration completed but contains mismatches."),ni=!0)},sf=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",of=e=>e.namespaceURI.includes("MathML"),mr=e=>{if(e.nodeType===1){if(sf(e))return"svg";if(of(e))return"mathml"}},mn=e=>e.nodeType===8;function af(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:a,insert:l,createComment:f}}=e,c=(p,_)=>{if(!_.hasChildNodes()){n(null,p,_),kr(),_._vnode=p;return}u(_.firstChild,p,null,null,null),kr(),_._vnode=p},u=(p,_,w,k,A,D=!1)=>{D=D||!!_.dynamicChildren;const R=mn(p)&&p.data==="[",T=()=>y(p,_,w,k,A,R),{type:H,ref:L,shapeFlag:W,patchFlag:Z}=_;let te=p.nodeType;_.el=p,Z===-2&&(D=!1,_.dynamicChildren=null);let F=null;switch(H){case rn:te!==3?_.children===""?(l(_.el=s(""),i(p),p),F=p):F=T():(p.data!==_.children&&(fn(),p.data=_.children),F=o(p));break;case be:v(p)?(F=o(p),E(_.el=p.content.firstChild,p,w)):te!==8||R?F=T():F=o(p);break;case Jn:if(R&&(p=o(p),te=p.nodeType),te===1||te===3){F=p;const q=!_.children.length;for(let V=0;V<_.staticCount;V++)q&&(_.children+=F.nodeType===1?F.outerHTML:F.data),V===_.staticCount-1&&(_.anchor=F),F=o(F);return R?o(F):F}else T();break;case ke:R?F=m(p,_,w,k,A,D):F=T();break;default:if(W&1)(te!==1||_.type.toLowerCase()!==p.tagName.toLowerCase())&&!v(p)?F=T():F=h(p,_,w,k,A,D);else if(W&6){_.slotScopeIds=A;const q=i(p);if(R?F=C(p):mn(p)&&p.data==="teleport start"?F=C(p,p.data,"teleport end"):F=o(p),t(_,q,null,w,k,mr(q),D),Ct(_)&&!_.type.__asyncResolved){let V;R?(V=ye(ke),V.anchor=F?F.previousSibling:q.lastChild):V=p.nodeType===3?Kl(""):ye("div"),V.el=p,_.component.subTree=V}}else W&64?te!==8?F=T():F=_.type.hydrate(p,_,w,k,A,D,e,d):W&128&&(F=_.type.hydrate(p,_,w,k,mr(i(p)),A,D,e,u))}return L!=null&&En(L,null,k,_),F},h=(p,_,w,k,A,D)=>{D=D||!!_.dynamicChildren;const{type:R,props:T,patchFlag:H,shapeFlag:L,dirs:W,transition:Z}=_,te=R==="input"||R==="option";if(te||H!==-1){W&&ct(_,null,w,"created");let F=!1;if(v(p)){F=Il(null,Z)&&w&&w.vnode.props&&w.vnode.props.appear;const V=p.content.firstChild;if(F){const le=V.getAttribute("class");le&&(V.$cls=le),Z.beforeEnter(V)}E(V,p,w),_.el=p=V}if(L&16&&!(T&&(T.innerHTML||T.textContent))){let V=d(p.firstChild,_,p,w,k,A,D);for(V&&!yr(p,1)&&fn();V;){const le=V;V=V.nextSibling,a(le)}}else if(L&8){let V=_.children;V[0]===` `&&(p.tagName==="PRE"||p.tagName==="TEXTAREA")&&(V=V.slice(1));const{textContent:le}=p;le!==V&&le!==V.replace(/\r\n|\r/g,` -`)&&(mr(p,0)||fn(),p.textContent=_.children)}if(T){if(te||!D||H&48){const V=p.tagName.includes("-");for(const le in T)(te&&(le.endsWith("value")||le==="indeterminate")||lr(le)&&!en(le)||le[0]==="."||V&&!en(le))&&r(p,le,null,T[le],void 0,w)}else if(T.onClick)r(p,"onClick",null,T.onClick,void 0,w);else if(H&4&>(T.style))for(const V in T.style)T.style[V]}let q;(q=T&&T.onVnodeBeforeMount)&&$e(q,w,_),W&&ct(_,null,w,"beforeMount"),((q=T&&T.onVnodeMounted)||W||F)&&Nl(()=>{q&&$e(q,w,_),F&&Z.enter(p),W&&ct(_,null,w,"mounted")},k)}return p.nextSibling},d=(p,_,w,k,A,D,R)=>{R=R||!!_.dynamicChildren;const T=_.children,H=T.length;let L=!1;for(let W=0;W{const{slotScopeIds:R}=_;R&&(A=A?A.concat(R):R);const T=i(p),H=d(o(p),_,T,w,k,A,D);return H&&yn(H)&&H.data==="]"?o(_.anchor=H):(fn(),l(_.anchor=f("]"),T,H),H)},m=(p,_,w,k,A,D)=>{if(mr(p.parentElement,1)||fn(),_.el=null,D){const H=C(p);for(;;){const L=o(p);if(L&&L!==H)a(L);else break}}const R=o(p),T=i(p);return a(p),n(null,_,T,R,w,k,yr(T),A),w&&(w.vnode.el=_.el,is(w,_.el)),R},C=(p,_="[",w="]")=>{let k=0;for(;p;)if(p=o(p),p&&yn(p)&&(p.data===_&&k++,p.data===w)){if(k===0)return o(p);k--}return p},E=(p,_,w)=>{const k=_.parentNode;k&&k.replaceChild(p,_);let A=w;for(;A;)A.vnode.el===_&&(A.vnode.el=A.subTree.el=p),A=A.parent},v=p=>p.nodeType===1&&p.tagName==="TEMPLATE";return[c,u]}const ri="data-allow-mismatch",lf={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function mr(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(ri);)e=e.parentElement;const n=e&&e.getAttribute(ri);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:r.includes(lf[t])}}Xr().requestIdleCallback;Xr().cancelIdleCallback;function cf(e,t){if(yn(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(yn(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const Ct=e=>!!e.type.__asyncLoader;function Ir(e){Y(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,hydrate:o,timeout:i,suspensible:a=!0,onError:l}=e;let f=null,c,u=0;const h=()=>(u++,f=null,d()),d=()=>{let y;return f||(y=f=t().catch(m=>{if(m=m instanceof Error?m:new Error(String(m)),l)return new Promise((C,E)=>{l(m,()=>C(h()),()=>E(m),u+1)});throw m}).then(m=>y!==f&&f?f:(m&&(m.__esModule||m[Symbol.toStringTag]==="Module")&&(m=m.default),c=m,m)))};return Wt({name:"AsyncComponentWrapper",__asyncLoader:d,__asyncHydrate(y,m,C){let E=!1;(m.bu||(m.bu=[])).push(()=>E=!0);const v=()=>{E||C()},p=o?()=>{const _=o(v,w=>cf(y,w));_&&(m.bum||(m.bum=[])).push(_)}:v;c?p():d().then(()=>!m.isUnmounted&&p())},get __asyncResolved(){return c},setup(){const y=Pe;if(Ao(y),c)return()=>_r(c,y);const m=w=>{f=null,Ln(w,y,13,!r)};if(a&&y.suspense||Pn)return d().then(w=>()=>_r(w,y)).catch(w=>(m(w),()=>r?ye(r,{error:w}):null));const C=nt(!1),E=nt(),v=nt(!!s);let p,_;return ss(()=>{p!=null&&clearTimeout(p),_!=null&&clearTimeout(_)}),s&&(_=setTimeout(()=>{y.isUnmounted||(v.value=!1)},s)),i!=null&&(p=setTimeout(()=>{if(!y.isUnmounted&&!C.value&&!E.value){const w=new Error(`Async component timed out after ${i}ms.`);m(w),E.value=w}},i)),d().then(()=>{y.isUnmounted||(C.value=!0,y.parent&&ur(y.parent.vnode)&&y.parent.update())}).catch(w=>{if(y.isUnmounted){f=null;return}m(w),E.value=w}),()=>{if(C.value&&c)return _r(c,y);if(E.value&&r)return ye(r,{error:E.value});if(n&&!v.value)return _r(n,y)}}})}function _r(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=ye(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const ur=e=>e.type.__isKeepAlive,uf={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=an(),r=n.ctx;if(!r.renderer)return()=>{const v=t.default&&t.default();return v&&v.length===1?v[0]:v};const s=new Map,o=new Set;let i=null;const a=n.suspense,{renderer:{p:l,m:f,um:c,o:{createElement:u}}}=r,h=u("div");r.activate=(v,p,_,w,k)=>{const A=v.component;f(v,p,_,0,a),l(A.vnode,v,p,_,A,a,w,v.slotScopeIds,k),Se(()=>{A.isDeactivated=!1,A.a&&vn(A.a);const D=v.props&&v.props.onVnodeMounted;D&&$e(D,A.parent,v)},a)},r.deactivate=v=>{const p=v.component;Dr(p.m),Dr(p.a),f(v,h,null,1,a),Se(()=>{p.da&&vn(p.da);const _=v.props&&v.props.onVnodeUnmounted;_&&$e(_,p.parent,v),p.isDeactivated=!0},a)};function d(v){ms(v),c(v,n,a,!0)}function y(v){s.forEach((p,_)=>{const w=zs(Ct(p)?p.type.__asyncResolved||{}:p.type);w&&!v(w)&&m(_)})}function m(v){const p=s.get(v);p&&(!i||!et(p,i))?d(p):i&&ms(i),s.delete(v),o.delete(v)}Rt(()=>[e.include,e.exclude],([v,p])=>{v&&y(_=>Vn(v,_)),p&&y(_=>!Vn(p,_))},{flush:"post",deep:!0});let C=null;const E=()=>{C!=null&&($r(n.subTree.type)?Se(()=>{s.set(C,br(n.subTree))},n.subTree.suspense):s.set(C,br(n.subTree)))};return xo(E),hl(E),fr(()=>{s.forEach(v=>{const{subTree:p,suspense:_}=n,w=br(p);if(v.type===w.type&&v.key===w.key){ms(w);const k=w.component.da;k&&Se(k,_);return}d(v)})}),()=>{if(C=null,!t.default)return i=null;const v=t.default(),p=v[0];if(v.length>1)return i=null,v;if(!sn(p)||!(p.shapeFlag&4)&&!(p.shapeFlag&128))return i=null,p;let _=br(p);if(_.type===_e)return i=null,_;const w=_.type,k=zs(Ct(_)?_.type.__asyncResolved||{}:w),{include:A,exclude:D,max:R}=e;if(A&&(!k||!Vn(A,k))||D&&k&&Vn(D,k))return _.shapeFlag&=-257,i=_,p;const T=_.key==null?w:_.key,H=s.get(T);return _.el&&(_=kt(_),p.shapeFlag&128&&(p.ssContent=_)),C=T,H?(_.el=H.el,_.component=H.component,_.transition&&Rn(_,_.transition),_.shapeFlag|=512,o.delete(T),o.add(T)):(o.add(T),R&&o.size>parseInt(R,10)&&m(o.values().next().value)),_.shapeFlag|=256,i=_,$r(p.type)?p:_}}},ff=uf;function Vn(e,t){return G(e)?e.some(n=>Vn(n,t)):he(e)?e.split(",").includes(t):lu(e)?(e.lastIndex=0,e.test(t)):!1}function cl(e,t){fl(e,"a",t)}function ul(e,t){fl(e,"da",t)}function fl(e,t,n=Pe){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(rs(t,r,n),n){let s=n.parent;for(;s&&s.parent;)ur(s.parent.vnode)&&df(r,t,n,s),s=s.parent}}function df(e,t,n,r){const s=rs(t,e,r,!0);ss(()=>{po(r[t],s)},n)}function ms(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function br(e){return e.shapeFlag&128?e.ssContent:e}function rs(e,t,n=Pe,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Pt();const a=dr(n),l=Xe(t,n,e,i);return a(),At(),l});return r?s.unshift(o):s.push(o),o}}const Ot=e=>(t,n=Pe)=>{(!Pn||e==="sp")&&rs(e,(...r)=>t(...r),n)},dl=Ot("bm"),xo=Ot("m"),hf=Ot("bu"),hl=Ot("u"),fr=Ot("bum"),ss=Ot("um"),pf=Ot("sp"),gf=Ot("rtg"),yf=Ot("rtc");function pl(e,t=Pe){rs("ec",e,t)}const gl="components";function qm(e,t){return ml(gl,e,!0,t)||e}const yl=Symbol.for("v-ndc");function mf(e){return he(e)?ml(gl,e,!1)||e:e||yl}function ml(e,t,n=!0,r=!1){const s=Ae||Pe;if(s){const o=s.type;{const a=zs(o,!1);if(a&&(a===t||a===Le(t)||a===Gr(Le(t))))return o}const i=si(s[e]||o[e],t)||si(s.appContext[e],t);return!i&&r?o:i}}function si(e,t){return e&&(e[t]||e[Le(t)]||e[Gr(Le(t))])}function zm(e,t,n,r){let s;const o=n,i=G(e);if(i||he(e)){const a=i&>(e);let l=!1,f=!1;a&&(l=!Be(e),f=yt(e),e=es(e)),s=new Array(e.length);for(let c=0,u=e.length;ct(a,l,void 0,o));else{const a=Object.keys(e);s=new Array(a.length);for(let l=0,f=a.length;l0;return Ge(),ht(ke,null,[ye("slot",n,r)],f?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),Ge();const i=o&&_l(o(n)),a=n.key||i&&i.key,l=ht(ke,{key:(a&&!Ue(a)?a:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),o&&o._c&&(o._d=!0),l}function _l(e){return e.some(t=>sn(t)?!(t.type===_e||t.type===ke&&!_l(t.children)):!0)?e:null}const js=e=>e?ql(e)?as(e):js(e.parent):null,Gn=Te(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=>js(e.parent),$root:e=>js(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>vl(e),$forceUpdate:e=>e.f||(e.f=()=>{Ro(e.update)}),$nextTick:e=>e.n||(e.n=xt.bind(e.proxy)),$watch:e=>Zu.bind(e)}),_s=(e,t)=>e!==fe&&!e.__isScriptSetup&&ie(e,t),_f={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:a,appContext:l}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(_s(r,t))return i[t]=1,r[t];if(s!==fe&&ie(s,t))return i[t]=2,s[t];if(ie(o,t))return i[t]=3,o[t];if(n!==fe&&ie(n,t))return i[t]=4,n[t];Fs&&(i[t]=0)}}const f=Gn[t];let c,u;if(f)return t==="$attrs"&&xe(e.attrs,"get",""),f(e);if((c=a.__cssModules)&&(c=c[t]))return c;if(n!==fe&&ie(n,t))return i[t]=4,n[t];if(u=l.config.globalProperties,ie(u,t))return u[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return _s(s,t)?(s[t]=n,!0):r!==fe&&ie(r,t)?(r[t]=n,!0):ie(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,props:o,type:i}},a){let l;return!!(n[a]||e!==fe&&a[0]!=="$"&&ie(e,a)||_s(t,a)||ie(o,a)||ie(r,a)||ie(Gn,a)||ie(s.config.globalProperties,a)||(l=i.__cssModules)&&l[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ie(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function oi(e){return G(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Fs=!0;function bf(e){const t=vl(e),n=e.proxy,r=e.ctx;Fs=!1,t.beforeCreate&&ii(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:a,provide:l,inject:f,created:c,beforeMount:u,mounted:h,beforeUpdate:d,updated:y,activated:m,deactivated:C,beforeDestroy:E,beforeUnmount:v,destroyed:p,unmounted:_,render:w,renderTracked:k,renderTriggered:A,errorCaptured:D,serverPrefetch:R,expose:T,inheritAttrs:H,components:L,directives:W,filters:Z}=t;if(f&&vf(f,r,null),i)for(const q in i){const V=i[q];Y(V)&&(r[q]=V.bind(n))}if(s){const q=s.call(n,n);se(q)&&(e.data=ot(q))}if(Fs=!0,o)for(const q in o){const V=o[q],le=Y(V)?V.bind(n,n):Y(V.get)?V.get.bind(n,n):pt,Mt=!Y(V)&&Y(V.set)?V.set.bind(n):pt,it=Re({get:le,set:Mt});Object.defineProperty(r,q,{enumerable:!0,configurable:!0,get:()=>it.value,set:De=>it.value=De})}if(a)for(const q in a)bl(a[q],r,n,q);if(l){const q=Y(l)?l.call(n):l;Reflect.ownKeys(q).forEach(V=>{jt(V,q[V])})}c&&ii(c,e,"c");function F(q,V){G(V)?V.forEach(le=>q(le.bind(n))):V&&q(V.bind(n))}if(F(dl,u),F(xo,h),F(hf,d),F(hl,y),F(cl,m),F(ul,C),F(pl,D),F(yf,k),F(gf,A),F(fr,v),F(ss,_),F(pf,R),G(T))if(T.length){const q=e.exposed||(e.exposed={});T.forEach(V=>{Object.defineProperty(q,V,{get:()=>n[V],set:le=>n[V]=le,enumerable:!0})})}else e.exposed||(e.exposed={});w&&e.render===pt&&(e.render=w),H!=null&&(e.inheritAttrs=H),L&&(e.components=L),W&&(e.directives=W),R&&Ao(e)}function vf(e,t,n=pt){G(e)&&(e=Bs(e));for(const r in e){const s=e[r];let o;se(s)?"default"in s?o=Ce(s.from||r,s.default,!0):o=Ce(s.from||r):o=Ce(s),pe(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function ii(e,t,n){Xe(G(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function bl(e,t,n,r){let s=r.includes(".")?nl(n,r):()=>n[r];if(he(e)){const o=t[e];Y(o)&&Rt(s,o)}else if(Y(e))Rt(s,e.bind(n));else if(se(e))if(G(e))e.forEach(o=>bl(o,t,n,r));else{const o=Y(e.handler)?e.handler.bind(n):t[e.handler];Y(o)&&Rt(s,o,e)}}function vl(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,a=o.get(t);let l;return a?l=a:!s.length&&!n&&!r?l=t:(l={},s.length&&s.forEach(f=>Lr(l,f,i,!0)),Lr(l,t,i)),se(t)&&o.set(t,l),l}function Lr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Lr(e,o,n,!0),s&&s.forEach(i=>Lr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const a=wf[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const wf={data:ai,props:li,emits:li,methods:Kn,computed:Kn,beforeCreate:Me,created:Me,beforeMount:Me,mounted:Me,beforeUpdate:Me,updated:Me,beforeDestroy:Me,beforeUnmount:Me,destroyed:Me,unmounted:Me,activated:Me,deactivated:Me,errorCaptured:Me,serverPrefetch:Me,components:Kn,directives:Kn,watch:Sf,provide:ai,inject:Ef};function ai(e,t){return t?e?function(){return Te(Y(e)?e.call(this,this):e,Y(t)?t.call(this,this):t)}:t:e}function Ef(e,t){return Kn(Bs(e),Bs(t))}function Bs(e){if(G(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Le(t)}Modifiers`]||e[`${Kt(t)}Modifiers`];function Pf(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||fe;let s=n;const o=t.startsWith("update:"),i=o&&Cf(r,t.slice(7));i&&(i.trim&&(s=n.map(c=>he(c)?c.trim():c)),i.number&&(s=n.map(Jr)));let a,l=r[a=fs(t)]||r[a=fs(Le(t))];!l&&o&&(l=r[a=fs(Kt(t))]),l&&Xe(l,e,6,s);const f=r[a+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Xe(f,e,6,s)}}const Af=new WeakMap;function El(e,t,n=!1){const r=n?Af:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},a=!1;if(!Y(e)){const l=f=>{const c=El(f,t,!0);c&&(a=!0,Te(i,c))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!o&&!a?(se(e)&&r.set(e,null),null):(G(o)?o.forEach(l=>i[l]=null):Te(i,o),se(e)&&r.set(e,i),i)}function os(e,t){return!e||!lr(t)?!1:(t=t.slice(2).replace(/Once$/,""),ie(e,t[0].toLowerCase()+t.slice(1))||ie(e,Kt(t))||ie(e,t))}function bs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:a,emit:l,render:f,renderCache:c,props:u,data:h,setupState:d,ctx:y,inheritAttrs:m}=e,C=Or(e);let E,v;try{if(n.shapeFlag&4){const _=s||r,w=_;E=Fe(f.call(w,_,c,u,d,h,y)),v=a}else{const _=t;E=Fe(_.length>1?_(u,{attrs:a,slots:i,emit:l}):_(u,null)),v=t.props?a:kf(a)}}catch(_){Xn.length=0,Ln(_,e,1),E=ye(_e)}let p=E;if(v&&m!==!1){const _=Object.keys(v),{shapeFlag:w}=p;_.length&&w&7&&(o&&_.some(Wr)&&(v=Of(v,o)),p=kt(p,v,!1,!0))}return n.dirs&&(p=kt(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&Rn(p,n.transition),E=p,Or(C),E}function xf(e,t=!0){let n;for(let r=0;r{let t;for(const n in e)(n==="class"||n==="style"||lr(n))&&((t||(t={}))[n]=e[n]);return t},Of=(e,t)=>{const n={};for(const r in e)(!Wr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Mf(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:a,patchFlag:l}=t,f=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return r?ci(r,i,f):!!i;if(l&8){const c=t.dynamicProps;for(let u=0;uObject.create(Tl),Cl=e=>Object.getPrototypeOf(e)===Tl;function If(e,t,n,r=!1){const s={},o=Rl();e.propsDefaults=Object.create(null),Pl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ze(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Lf(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,a=ne(s),[l]=e.propsOptions;let f=!1;if((r||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let u=0;u{l=!0;const[h,d]=Al(u,t,!0);Te(i,h),d&&a.push(...d)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!o&&!l)return se(e)&&r.set(e,_n),_n;if(G(o))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",Oo=e=>G(e)?e.map(Fe):[Fe(e)],$f=(e,t,n)=>{if(t._n)return t;const r=Co((...s)=>Oo(t(...s)),n);return r._c=!1,r},xl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(ko(s))continue;const o=e[s];if(Y(o))t[s]=$f(s,o,r);else if(o!=null){const i=Oo(o);t[s]=()=>i}}},kl=(e,t)=>{const n=Oo(t);e.slots.default=()=>n},Ol=(e,t,n)=>{for(const r in t)(n||!ko(r))&&(e[r]=t[r])},Hf=(e,t,n)=>{const r=e.slots=Rl();if(e.vnode.shapeFlag&32){const s=t._;s?(Ol(r,t,n),n&&Pa(r,"_",s,!0)):xl(t,r)}else t&&kl(e,t)},Nf=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=fe;if(r.shapeFlag&32){const a=t._;a?n&&a===1?o=!1:Ol(s,t,n):(o=!t.$stable,xl(t,s)),i=t}else t&&(kl(e,t),i={default:1});if(o)for(const a in s)!ko(a)&&i[a]==null&&delete s[a]},Se=Nl;function jf(e){return Ml(e)}function Ff(e){return Ml(e,af)}function Ml(e,t){const n=Xr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:a,createComment:l,setText:f,setElementText:c,parentNode:u,nextSibling:h,setScopeId:d=pt,insertStaticContent:y}=e,m=(g,b,S,M=null,P=null,O=null,j=void 0,N=null,$=!!b.dynamicChildren)=>{if(g===b)return;g&&!et(g,b)&&(M=x(g),De(g,P,O,!0),g=null),b.patchFlag===-2&&($=!1,b.dynamicChildren=null);const{type:I,ref:X,shapeFlag:U}=b;switch(I){case rn:C(g,b,S,M);break;case _e:E(g,b,S,M);break;case Jn:g==null&&v(b,S,M,j);break;case ke:L(g,b,S,M,P,O,j,N,$);break;default:U&1?w(g,b,S,M,P,O,j,N,$):U&6?W(g,b,S,M,P,O,j,N,$):(U&64||U&128)&&I.process(g,b,S,M,P,O,j,N,$,J)}X!=null&&P?En(X,g&&g.ref,O,b||g,!b):X==null&&g&&g.ref!=null&&En(g.ref,null,O,g,!0)},C=(g,b,S,M)=>{if(g==null)r(b.el=a(b.children),S,M);else{const P=b.el=g.el;b.children!==g.children&&f(P,b.children)}},E=(g,b,S,M)=>{g==null?r(b.el=l(b.children||""),S,M):b.el=g.el},v=(g,b,S,M)=>{[g.el,g.anchor]=y(g.children,b,S,M,g.el,g.anchor)},p=({el:g,anchor:b},S,M)=>{let P;for(;g&&g!==b;)P=h(g),r(g,S,M),g=P;r(b,S,M)},_=({el:g,anchor:b})=>{let S;for(;g&&g!==b;)S=h(g),s(g),g=S;s(b)},w=(g,b,S,M,P,O,j,N,$)=>{if(b.type==="svg"?j="svg":b.type==="math"&&(j="mathml"),g==null)k(b,S,M,P,O,j,N,$);else{const I=g.el&&g.el._isVueCE?g.el:null;try{I&&I._beginPatch(),R(g,b,P,O,j,N,$)}finally{I&&I._endPatch()}}},k=(g,b,S,M,P,O,j,N)=>{let $,I;const{props:X,shapeFlag:U,transition:z,dirs:Q}=g;if($=g.el=i(g.type,O,X&&X.is,X),U&8?c($,g.children):U&16&&D(g.children,$,null,M,P,vs(g,O),j,N),Q&&ct(g,null,M,"created"),A($,g,g.scopeId,j,M),X){for(const ue in X)ue!=="value"&&!en(ue)&&o($,ue,null,X[ue],O,M);"value"in X&&o($,"value",null,X.value,O),(I=X.onVnodeBeforeMount)&&$e(I,M,g)}Q&&ct(g,null,M,"beforeMount");const re=Il(P,z);re&&z.beforeEnter($),r($,b,S),((I=X&&X.onVnodeMounted)||re||Q)&&Se(()=>{I&&$e(I,M,g),re&&z.enter($),Q&&ct(g,null,M,"mounted")},P)},A=(g,b,S,M,P)=>{if(S&&d(g,S),M)for(let O=0;O{for(let I=$;I{const N=b.el=g.el;let{patchFlag:$,dynamicChildren:I,dirs:X}=b;$|=g.patchFlag&16;const U=g.props||fe,z=b.props||fe;let Q;if(S&&zt(S,!1),(Q=z.onVnodeBeforeUpdate)&&$e(Q,S,b,g),X&&ct(b,g,S,"beforeUpdate"),S&&zt(S,!0),(U.innerHTML&&z.innerHTML==null||U.textContent&&z.textContent==null)&&c(N,""),I?T(g.dynamicChildren,I,N,S,M,vs(b,P),O):j||V(g,b,N,null,S,M,vs(b,P),O,!1),$>0){if($&16)H(N,U,z,S,P);else if($&2&&U.class!==z.class&&o(N,"class",null,z.class,P),$&4&&o(N,"style",U.style,z.style,P),$&8){const re=b.dynamicProps;for(let ue=0;ue{Q&&$e(Q,S,b,g),X&&ct(b,g,S,"updated")},M)},T=(g,b,S,M,P,O,j)=>{for(let N=0;N{if(b!==S){if(b!==fe)for(const O in b)!en(O)&&!(O in S)&&o(g,O,b[O],null,P,M);for(const O in S){if(en(O))continue;const j=S[O],N=b[O];j!==N&&O!=="value"&&o(g,O,N,j,P,M)}"value"in S&&o(g,"value",b.value,S.value,P)}},L=(g,b,S,M,P,O,j,N,$)=>{const I=b.el=g?g.el:a(""),X=b.anchor=g?g.anchor:a("");let{patchFlag:U,dynamicChildren:z,slotScopeIds:Q}=b;Q&&(N=N?N.concat(Q):Q),g==null?(r(I,S,M),r(X,S,M),D(b.children||[],S,X,P,O,j,N,$)):U>0&&U&64&&z&&g.dynamicChildren&&g.dynamicChildren.length===z.length?(T(g.dynamicChildren,z,S,P,O,j,N),(b.key!=null||P&&b===P.subTree)&&Ll(g,b,!0)):V(g,b,S,X,P,O,j,N,$)},W=(g,b,S,M,P,O,j,N,$)=>{b.slotScopeIds=N,g==null?b.shapeFlag&512?P.ctx.activate(b,S,M,j,$):Z(b,S,M,P,O,j,$):te(g,b,$)},Z=(g,b,S,M,P,O,j)=>{const N=g.component=Zf(g,M,P);if(ur(g)&&(N.ctx.renderer=J),ed(N,!1,j),N.asyncDep){if(P&&P.registerDep(N,F,j),!g.el){const $=N.subTree=ye(_e);E(null,$,b,S),g.placeholder=$.el}}else F(N,g,b,S,P,O,j)},te=(g,b,S)=>{const M=b.component=g.component;if(Mf(g,b,S))if(M.asyncDep&&!M.asyncResolved){q(M,b,S);return}else M.next=b,M.update();else b.el=g.el,M.vnode=b},F=(g,b,S,M,P,O,j)=>{const N=()=>{if(g.isMounted){let{next:U,bu:z,u:Q,parent:re,vnode:ue}=g;{const Ne=Dl(g);if(Ne){U&&(U.el=ue.el,q(g,U,j)),Ne.asyncDep.then(()=>{Se(()=>{g.isUnmounted||I()},P)});return}}let ce=U,me;zt(g,!1),U?(U.el=ue.el,q(g,U,j)):U=ue,z&&vn(z),(me=U.props&&U.props.onVnodeBeforeUpdate)&&$e(me,re,U,ue),zt(g,!0);const ve=bs(g),Qe=g.subTree;g.subTree=ve,m(Qe,ve,u(Qe.el),x(Qe),g,P,O),U.el=ve.el,ce===null&&is(g,ve.el),Q&&Se(Q,P),(me=U.props&&U.props.onVnodeUpdated)&&Se(()=>$e(me,re,U,ue),P)}else{let U;const{el:z,props:Q}=b,{bm:re,m:ue,parent:ce,root:me,type:ve}=g,Qe=Ct(b);if(zt(g,!1),re&&vn(re),!Qe&&(U=Q&&Q.onVnodeBeforeMount)&&$e(U,ce,b),zt(g,!0),z&&ge){const Ne=()=>{g.subTree=bs(g),ge(z,g.subTree,g,P,null)};Qe&&ve.__asyncHydrate?ve.__asyncHydrate(z,g,Ne):Ne()}else{me.ce&&me.ce._hasShadowRoot()&&me.ce._injectChildStyle(ve,g.parent?g.parent.type:void 0);const Ne=g.subTree=bs(g);m(null,Ne,S,M,g,P,O),b.el=Ne.el}if(ue&&Se(ue,P),!Qe&&(U=Q&&Q.onVnodeMounted)){const Ne=b;Se(()=>$e(U,ce,Ne),P)}(b.shapeFlag&256||ce&&Ct(ce.vnode)&&ce.vnode.shapeFlag&256)&&g.a&&Se(g.a,P),g.isMounted=!0,b=S=M=null}};g.scope.on();const $=g.effect=new La(N);g.scope.off();const I=g.update=$.run.bind($),X=g.job=$.runIfDirty.bind($);X.i=g,X.id=g.uid,$.scheduler=()=>Ro(X),zt(g,!0),I()},q=(g,b,S)=>{b.component=g;const M=g.vnode.props;g.vnode=b,g.next=null,Lf(g,b.props,M,S),Nf(g,b.children,S),Pt(),Qo(g),At()},V=(g,b,S,M,P,O,j,N,$=!1)=>{const I=g&&g.children,X=g?g.shapeFlag:0,U=b.children,{patchFlag:z,shapeFlag:Q}=b;if(z>0){if(z&128){Mt(I,U,S,M,P,O,j,N,$);return}else if(z&256){le(I,U,S,M,P,O,j,N,$);return}}Q&8?(X&16&&Ke(I,P,O),U!==I&&c(S,U)):X&16?Q&16?Mt(I,U,S,M,P,O,j,N,$):Ke(I,P,O,!0):(X&8&&c(S,""),Q&16&&D(U,S,M,P,O,j,N,$))},le=(g,b,S,M,P,O,j,N,$)=>{g=g||_n,b=b||_n;const I=g.length,X=b.length,U=Math.min(I,X);let z;for(z=0;zX?Ke(g,P,O,!0,!1,U):D(b,S,M,P,O,j,N,$,U)},Mt=(g,b,S,M,P,O,j,N,$)=>{let I=0;const X=b.length;let U=g.length-1,z=X-1;for(;I<=U&&I<=z;){const Q=g[I],re=b[I]=$?wt(b[I]):Fe(b[I]);if(et(Q,re))m(Q,re,S,null,P,O,j,N,$);else break;I++}for(;I<=U&&I<=z;){const Q=g[U],re=b[z]=$?wt(b[z]):Fe(b[z]);if(et(Q,re))m(Q,re,S,null,P,O,j,N,$);else break;U--,z--}if(I>U){if(I<=z){const Q=z+1,re=Qz)for(;I<=U;)De(g[I],P,O,!0),I++;else{const Q=I,re=I,ue=new Map;for(I=re;I<=z;I++){const je=b[I]=$?wt(b[I]):Fe(b[I]);je.key!=null&&ue.set(je.key,I)}let ce,me=0;const ve=z-re+1;let Qe=!1,Ne=0;const $n=new Array(ve);for(I=0;I=ve){De(je,P,O,!0);continue}let at;if(je.key!=null)at=ue.get(je.key);else for(ce=re;ce<=z;ce++)if($n[ce-re]===0&&et(je,b[ce])){at=ce;break}at===void 0?De(je,P,O,!0):($n[at-re]=I+1,at>=Ne?Ne=at:Qe=!0,m(je,b[at],S,null,P,O,j,N,$),me++)}const Wo=Qe?Bf($n):_n;for(ce=Wo.length-1,I=ve-1;I>=0;I--){const je=re+I,at=b[je],qo=b[je+1],zo=je+1{const{el:O,type:j,transition:N,children:$,shapeFlag:I}=g;if(I&6){it(g.component.subTree,b,S,M);return}if(I&128){g.suspense.move(b,S,M);return}if(I&64){j.move(g,b,S,J);return}if(j===ke){r(O,b,S);for(let U=0;U<$.length;U++)it($[U],b,S,M);r(g.anchor,b,S);return}if(j===Jn){p(g,b,S);return}if(M!==2&&I&1&&N)if(M===0)N.persisted&&!O[ze]?r(O,b,S):(N.beforeEnter(O),r(O,b,S),Se(()=>N.enter(O),P));else{const{leave:U,delayLeave:z,afterLeave:Q}=N,re=()=>{g.ctx.isUnmounted?s(O):r(O,b,S)},ue=()=>{const ce=O._isLeaving||!!O[ze];O._isLeaving&&O[ze](!0),N.persisted&&!ce?re():U(O,()=>{re(),Q&&Q()})};z?z(O,re,ue):ue()}else r(O,b,S)},De=(g,b,S,M=!1,P=!1)=>{const{type:O,props:j,ref:N,children:$,dynamicChildren:I,shapeFlag:X,patchFlag:U,dirs:z,cacheIndex:Q,memo:re}=g;if(U===-2&&(P=!1),N!=null&&(Pt(),En(N,null,S,g,!0),At()),Q!=null&&(b.renderCache[Q]=void 0),X&256){b.ctx.deactivate(g);return}const ue=X&1&&z,ce=!Ct(g);let me;if(ce&&(me=j&&j.onVnodeBeforeUnmount)&&$e(me,b,g),X&6)qt(g.component,S,M);else{if(X&128){g.suspense.unmount(S,M);return}ue&&ct(g,null,b,"beforeUnmount"),X&64?g.type.remove(g,b,S,J,M):I&&!I.hasOnce&&(O!==ke||U>0&&U&64)?Ke(I,b,S,!1,!0):(O===ke&&U&384||!P&&X&16)&&Ke($,b,S),M&&ln(g)}const ve=re!=null&&Q==null;(ce&&(me=j&&j.onVnodeUnmounted)||ue||ve)&&Se(()=>{me&&$e(me,b,g),ue&&ct(g,null,b,"unmounted"),ve&&(g.el=null)},S)},ln=g=>{const{type:b,el:S,anchor:M,transition:P}=g;if(b===ke){cn(S,M);return}if(b===Jn){_(g);return}const O=()=>{s(S),P&&!P.persisted&&P.afterLeave&&P.afterLeave()};if(g.shapeFlag&1&&P&&!P.persisted){const{leave:j,delayLeave:N}=P,$=()=>j(S,O);N?N(g.el,O,$):$()}else O()},cn=(g,b)=>{let S;for(;g!==b;)S=h(g),s(g),g=S;s(b)},qt=(g,b,S)=>{const{bum:M,scope:P,job:O,subTree:j,um:N,m:$,a:I}=g;Dr($),Dr(I),M&&vn(M),P.stop(),O&&(O.flags|=8,De(j,g,b,S)),N&&Se(N,b),Se(()=>{g.isUnmounted=!0},b)},Ke=(g,b,S,M=!1,P=!1,O=0)=>{for(let j=O;j{if(g.shapeFlag&6)return x(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const b=h(g.anchor||g.el),S=b&&b[ef];return S?h(S):b};let K=!1;const B=(g,b,S)=>{let M;g==null?b._vnode&&(De(b._vnode,null,null,!0),M=b._vnode.component):m(b._vnode||null,g,b,null,null,null,S),b._vnode=g,K||(K=!0,Qo(M),kr(),K=!1)},J={p:m,um:De,m:it,r:ln,mt:Z,mc:D,pc:V,pbc:T,n:x,o:e};let ee,ge;return t&&([ee,ge]=t(J)),{render:B,hydrate:ee,createApp:Rf(B,ee)}}function vs({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 zt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Il(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ll(e,t,n=!1){const r=e.children,s=t.children;if(G(r)&&G(s))for(let o=0;o>1,e[n[a]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Dl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Dl(t)}function Dr(e){if(e)for(let t=0;te.__isSuspense;let Vs=0;const Uf={name:"Suspense",__isSuspense:!0,process(e,t,n,r,s,o,i,a,l,f){if(e==null)Vf(t,n,r,s,o,i,a,l,f);else{if(o&&o.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}Kf(e,t,n,r,s,i,a,l,f)}},hydrate:Wf,normalize:qf},Mo=Uf;function or(e,t){const n=e.props&&e.props[t];Y(n)&&n()}function Vf(e,t,n,r,s,o,i,a,l){const{p:f,o:{createElement:c}}=l,u=c("div"),h=e.suspense=Hl(e,s,r,t,u,n,o,i,a,l);f(null,h.pendingBranch=e.ssContent,u,null,r,h,o,i),h.deps>0?(or(e,"onPending"),or(e,"onFallback"),f(null,e.ssFallback,t,n,r,null,o,i),Sn(h,e.ssFallback)):h.resolve(!1,!0)}function Kf(e,t,n,r,s,o,i,a,{p:l,um:f,o:{createElement:c}}){const u=t.suspense=e.suspense;u.vnode=t,t.el=e.el;const h=t.ssContent,d=t.ssFallback,{activeBranch:y,pendingBranch:m,isInFallback:C,isHydrating:E}=u;if(m)u.pendingBranch=h,et(m,h)?(l(m,h,u.hiddenContainer,null,s,u,o,i,a),u.deps<=0?u.resolve():C&&(E||(l(y,d,n,r,s,null,o,i,a),Sn(u,d)))):(u.pendingId=Vs++,E?(u.isHydrating=!1,u.activeBranch=m):f(m,s,u),u.deps=0,u.effects.length=0,u.hiddenContainer=c("div"),C?(l(null,h,u.hiddenContainer,null,s,u,o,i,a),u.deps<=0?u.resolve():(l(y,d,n,r,s,null,o,i,a),Sn(u,d))):y&&et(y,h)?(l(y,h,n,r,s,u,o,i,a),u.resolve(!0)):(l(null,h,u.hiddenContainer,null,s,u,o,i,a),u.deps<=0&&u.resolve()));else if(y&&et(y,h))l(y,h,n,r,s,u,o,i,a),Sn(u,h);else if(or(t,"onPending"),u.pendingBranch=h,h.shapeFlag&512?u.pendingId=h.component.suspenseId:u.pendingId=Vs++,l(null,h,u.hiddenContainer,null,s,u,o,i,a),u.deps<=0)u.resolve();else{const{timeout:v,pendingId:p}=u;v>0?setTimeout(()=>{u.pendingId===p&&u.fallback(d)},v):v===0&&u.fallback(d)}}function Hl(e,t,n,r,s,o,i,a,l,f,c=!1){const{p:u,m:h,um:d,n:y,o:{parentNode:m,remove:C}}=f;let E;const v=zf(e);v&&t&&t.pendingBranch&&(E=t.pendingId,t.deps++);const p=e.props?Aa(e.props.timeout):void 0,_=o,w={vnode:e,parent:t,parentComponent:n,namespace:i,container:r,hiddenContainer:s,deps:0,pendingId:Vs++,timeout:typeof p=="number"?p:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(k=!1,A=!1){const{vnode:D,activeBranch:R,pendingBranch:T,pendingId:H,effects:L,parentComponent:W,container:Z,isInFallback:te}=w;let F=!1;if(w.isHydrating)w.isHydrating=!1;else if(!k){F=R&&T.transition&&T.transition.mode==="out-in";let le=!1;F&&(R.transition.afterLeave=()=>{H===w.pendingId&&(h(T,Z,o===_&&!le?y(R):o,0),rr(L),te&&D.ssFallback&&(D.ssFallback.el=null))}),R&&!w.isFallbackMountPending&&(m(R.el)===Z&&(o=y(R),le=!0),d(R,W,w,!0),!F&&te&&D.ssFallback&&Se(()=>D.ssFallback.el=null,w)),F||h(T,Z,o,0)}w.isFallbackMountPending=!1,Sn(w,T),w.pendingBranch=null,w.isInFallback=!1;let q=w.parent,V=!1;for(;q;){if(q.pendingBranch){q.effects.push(...L),V=!0;break}q=q.parent}!V&&!F&&rr(L),w.effects=[],v&&t&&t.pendingBranch&&E===t.pendingId&&(t.deps--,t.deps===0&&!A&&t.resolve()),or(D,"onResolve")},fallback(k){if(!w.pendingBranch)return;const{vnode:A,activeBranch:D,parentComponent:R,container:T,namespace:H}=w;or(A,"onFallback");const L=y(D),W=()=>{w.isFallbackMountPending=!1,w.isInFallback&&(u(null,k,T,L,R,null,H,a,l),Sn(w,k))},Z=k.transition&&k.transition.mode==="out-in";Z&&(w.isFallbackMountPending=!0,D.transition.afterLeave=W),w.isInFallback=!0,d(D,R,null,!0),Z||W()},move(k,A,D){w.activeBranch&&h(w.activeBranch,k,A,D),w.container=k},next(){return w.activeBranch&&y(w.activeBranch)},registerDep(k,A,D){const R=!!w.pendingBranch;R&&w.deps++;const T=k.vnode.el;k.asyncDep.catch(H=>{Ln(H,k,0)}).then(H=>{if(k.isUnmounted||w.isUnmounted||w.pendingId!==k.suspenseId)return;Ws(),k.asyncResolved=!0;const{vnode:L}=k;qs(k,H),T&&(L.el=T);const W=!T&&k.subTree.el;A(k,L,m(T||k.subTree.el),T?null:y(k.subTree),w,i,D),W&&(L.placeholder=null,C(W)),is(k,L.el),R&&--w.deps===0&&w.resolve()})},unmount(k,A){w.isUnmounted=!0,w.activeBranch&&d(w.activeBranch,n,k,A),w.pendingBranch&&d(w.pendingBranch,n,k,A)}};return w}function Wf(e,t,n,r,s,o,i,a,l){const f=t.suspense=Hl(t,r,n,e.parentNode,document.createElement("div"),null,s,o,i,a,!0),c=l(e,f.pendingBranch=t.ssContent,n,f,o,i);return f.deps===0&&f.resolve(!1,!0),c}function qf(e){const{shapeFlag:t,children:n}=e,r=t&32;e.ssContent=fi(r?n.default:n),e.ssFallback=r?fi(n.fallback):ye(_e)}function fi(e){let t;if(Y(e)){const n=Cn&&e._c;n&&(e._d=!1,Ge()),e=e(),n&&(e._d=!0,t=He,jl())}return G(e)&&(e=xf(e)),e=Fe(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function Nl(e,t){t&&t.pendingBranch?G(e)?t.effects.push(...e):t.effects.push(e):rr(e)}function Sn(e,t){e.activeBranch=t;const{vnode:n,parentComponent:r}=e;let s=t.el;for(;!s&&t.component;)t=t.component.subTree,s=t.el;n.el=s,r&&r.subTree===n&&(r.vnode.el=s,is(r,s))}function zf(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const ke=Symbol.for("v-fgt"),rn=Symbol.for("v-txt"),_e=Symbol.for("v-cmt"),Jn=Symbol.for("v-stc"),Xn=[];let He=null;function Ge(e=!1){Xn.push(He=e?null:[])}function jl(){Xn.pop(),He=Xn[Xn.length-1]||null}let Cn=1;function Hr(e,t=!1){Cn+=e,e<0&&He&&t&&(He.hasOnce=!0)}function Fl(e){return e.dynamicChildren=Cn>0?He||_n:null,jl(),Cn>0&&He&&He.push(e),e}function Gf(e,t,n,r,s,o){return Fl(Ul(e,t,n,r,s,o,!0))}function ht(e,t,n,r,s){return Fl(ye(e,t,n,r,s,!0))}function sn(e){return e?e.__v_isVNode===!0:!1}function et(e,t){return e.type===t.type&&e.key===t.key}const Bl=({key:e})=>e??null,Rr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?he(e)||pe(e)||Y(e)?{i:Ae,r:e,k:t,f:!!n}:e:null);function Ul(e,t=null,n=null,r=0,s=null,o=e===ke?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Bl(t),ref:t&&Rr(t),scopeId:tl,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ae};return a?(Io(l,n),o&128&&e.normalize(l)):n&&(l.shapeFlag|=he(n)?8:16),Cn>0&&!i&&He&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&He.push(l),l}const ye=Jf;function Jf(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===yl)&&(e=_e),sn(e)){const a=kt(e,t,!0);return n&&Io(a,n),Cn>0&&!o&&He&&(a.shapeFlag&6?He[He.indexOf(e)]=a:He.push(a)),a.patchFlag=-2,a}if(sd(e)&&(e=e.__vccOpts),t){t=Vl(t);let{class:a,style:l}=t;a&&!he(a)&&(t.class=Qr(a)),se(l)&&(ts(l)&&!G(l)&&(l=Te({},l)),t.style=Yr(l))}const i=he(e)?1:$r(e)?128:rl(e)?64:se(e)?4:Y(e)?2:0;return Ul(e,t,n,r,s,i,o,!0)}function Vl(e){return e?ts(e)||Cl(e)?Te({},e):e:null}function kt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:a,transition:l}=e,f=t?Wl(s||{},t):s,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&Bl(f),ref:t&&t.ref?n&&o?G(o)?o.concat(Rr(t)):[o,Rr(t)]:Rr(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ke?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&kt(e.ssContent),ssFallback:e.ssFallback&&kt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&r&&Rn(c,l.clone(c)),c}function Kl(e=" ",t=0){return ye(rn,null,e,t)}function Jm(e,t){const n=ye(Jn,null,e);return n.staticCount=t,n}function Xf(e="",t=!1){return t?(Ge(),ht(_e,null,e)):ye(_e,null,e)}function Fe(e){return e==null||typeof e=="boolean"?ye(_e):G(e)?ye(ke,null,e.slice()):sn(e)?wt(e):ye(rn,null,String(e))}function wt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:kt(e)}function Io(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(G(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Io(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Cl(t)?t._ctx=Ae:s===3&&Ae&&(Ae.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Y(t)?(t={default:t,_ctx:Ae},n=32):(t=String(t),r&64?(n=16,t=[Kl(t)]):n=8);e.children=t,e.shapeFlag|=n}function Wl(...e){const t={};for(let n=0;nPe||Ae;let Nr,Ks;{const e=Xr(),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)}};Nr=t("__VUE_INSTANCE_SETTERS__",n=>Pe=n),Ks=t("__VUE_SSR_SETTERS__",n=>Pn=n)}const dr=e=>{const t=Pe;return Nr(e),e.scope.on(),()=>{e.scope.off(),Nr(t)}},Ws=()=>{Pe&&Pe.scope.off(),Nr(null)};function ql(e){return e.vnode.shapeFlag&4}let Pn=!1;function ed(e,t=!1,n=!1){t&&Ks(t);const{props:r,children:s}=e.vnode,o=ql(e);If(e,r,o,t),Hf(e,s,n||t);const i=o?td(e,t):void 0;return t&&Ks(!1),i}function td(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,_f);const{setup:r}=n;if(r){Pt();const s=e.setupContext=r.length>1?rd(e):null,o=dr(e),i=cr(r,e,0,[e.props,s]),a=Ra(i);if(At(),o(),(a||e.sp)&&!Ct(e)&&Ao(e),a){if(i.then(Ws,Ws),t)return i.then(l=>{qs(e,l)}).catch(l=>{Ln(l,e,0)});e.asyncDep=i}else qs(e,i)}else zl(e)}function qs(e,t,n){Y(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:se(t)&&(e.setupState=Ja(t)),zl(e)}function zl(e,t,n){const r=e.type;e.render||(e.render=r.render||pt);{const s=dr(e);Pt();try{bf(e)}finally{At(),s()}}}const nd={get(e,t){return xe(e,"get",""),e[t]}};function rd(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,nd),slots:e.slots,emit:e.emit,expose:t}}function as(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ja(To(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Gn)return Gn[n](e)},has(t,n){return n in t||n in Gn}})):e.proxy}function zs(e,t=!0){return Y(e)?e.displayName||e.name:e.name||t&&e.__name}function sd(e){return Y(e)&&"__vccOpts"in e}const Re=(e,t)=>Wu(e,t,Pn);function Oe(e,t,n){try{Hr(-1);const r=arguments.length;return r===2?se(t)&&!G(t)?sn(t)?ye(e,null,[t]):ye(e,t):ye(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&sn(n)&&(n=[n]),ye(e,t,n))}finally{Hr(1)}}const od="3.5.38";let Gs;const di=typeof window<"u"&&window.trustedTypes;if(di)try{Gs=di.createPolicy("vue",{createHTML:e=>e})}catch{}const Gl=Gs?e=>Gs.createHTML(e):e=>e,id="http://www.w3.org/2000/svg",ad="http://www.w3.org/1998/Math/MathML",vt=typeof document<"u"?document:null,hi=vt&&vt.createElement("template"),ld={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"?vt.createElementNS(id,e):t==="mathml"?vt.createElementNS(ad,e):n?vt.createElement(e,{is:n}):vt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>vt.createTextNode(e),createComment:e=>vt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>vt.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{hi.innerHTML=Gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const a=hi.content;if(r==="svg"||r==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},It="transition",jn="animation",ir=Symbol("_vtc"),Jl={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},cd=Te({},sl,Jl),ud=e=>(e.displayName="Transition",e.props=cd,e),fd=ud((e,{slots:t})=>Oe(rf,dd(e),t)),Gt=(e,t=[])=>{G(e)?e.forEach(n=>n(...t)):e&&e(...t)},pi=e=>e?G(e)?e.some(t=>t.length>1):e.length>1:!1;function dd(e){const t={};for(const L in e)L in Jl||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=o,appearActiveClass:f=i,appearToClass:c=a,leaveFromClass:u=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,y=hd(s),m=y&&y[0],C=y&&y[1],{onBeforeEnter:E,onEnter:v,onEnterCancelled:p,onLeave:_,onLeaveCancelled:w,onBeforeAppear:k=E,onAppear:A=v,onAppearCancelled:D=p}=t,R=(L,W,Z,te)=>{L._enterCancelled=te,Jt(L,W?c:a),Jt(L,W?f:i),Z&&Z()},T=(L,W)=>{L._isLeaving=!1,Jt(L,u),Jt(L,d),Jt(L,h),W&&W()},H=L=>(W,Z)=>{const te=L?A:v,F=()=>R(W,L,Z);Gt(te,[W,F]),gi(()=>{Jt(W,L?l:o),_t(W,L?c:a),pi(te)||yi(W,r,m,F)})};return Te(t,{onBeforeEnter(L){Gt(E,[L]),_t(L,o),_t(L,i)},onBeforeAppear(L){Gt(k,[L]),_t(L,l),_t(L,f)},onEnter:H(!1),onAppear:H(!0),onLeave(L,W){L._isLeaving=!0;const Z=()=>T(L,W);_t(L,u),L._enterCancelled?(_t(L,h),bi(L)):(bi(L),_t(L,h)),gi(()=>{L._isLeaving&&(Jt(L,u),_t(L,d),pi(_)||yi(L,r,C,Z))}),Gt(_,[L,Z])},onEnterCancelled(L){R(L,!1,void 0,!0),Gt(p,[L])},onAppearCancelled(L){R(L,!0,void 0,!0),Gt(D,[L])},onLeaveCancelled(L){T(L),Gt(w,[L])}})}function hd(e){if(e==null)return null;if(se(e))return[ws(e.enter),ws(e.leave)];{const t=ws(e);return[t,t]}}function ws(e){return Aa(e)}function _t(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ir]||(e[ir]=new Set)).add(t)}function Jt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[ir];n&&(n.delete(t),n.size||(e[ir]=void 0))}function gi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let pd=0;function yi(e,t,n,r){const s=e._endId=++pd,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:a,propCount:l}=gd(e,t);if(!i)return r();const f=i+"end";let c=0;const u=()=>{e.removeEventListener(f,h),o()},h=d=>{d.target===e&&++c>=l&&u()};setTimeout(()=>{c(n[y]||"").split(", "),s=r(`${It}Delay`),o=r(`${It}Duration`),i=mi(s,o),a=r(`${jn}Delay`),l=r(`${jn}Duration`),f=mi(a,l);let c=null,u=0,h=0;t===It?i>0&&(c=It,u=i,h=o.length):t===jn?f>0&&(c=jn,u=f,h=l.length):(u=Math.max(i,f),c=u>0?i>f?It:jn:null,h=c?c===It?o.length:l.length:0);const d=c===It&&/\b(?:transform|all)(?:,|$)/.test(r(`${It}Property`).toString());return{type:c,timeout:u,propCount:h,hasTransform:d}}function mi(e,t){for(;e.length_i(n)+_i(e[r])))}function _i(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function bi(e){return(e?e.ownerDocument:document).body.offsetHeight}function yd(e,t,n){const r=e[ir];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const jr=Symbol("_vod"),Xl=Symbol("_vsh"),Xm={name:"show",beforeMount(e,{value:t},{transition:n}){e[jr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Fn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Fn(e,!0),r.enter(e)):r.leave(e,()=>{Fn(e,!1)}):Fn(e,t))},beforeUnmount(e,{value:t}){Fn(e,t)}};function Fn(e,t){e.style.display=t?e[jr]:"none",e[Xl]=!t}const md=Symbol(""),_d=/(?:^|;)\s*display\s*:/;function bd(e,t,n){const r=e.style,s=he(n);let o=!1;if(n&&!s){if(t)if(he(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&Wn(r,a,"")}else for(const i in t)n[i]==null&&Wn(r,i,"");for(const i in n){i==="display"&&(o=!0);const a=n[i];a!=null?wd(e,i,!he(t)&&t?t[i]:void 0,a)||Wn(r,i,a):Wn(r,i,"")}}else if(s){if(t!==n){const i=r[md];i&&(n+=";"+i),r.cssText=n,o=_d.test(n)}}else t&&e.removeAttribute("style");jr in e&&(e[jr]=o?r.display:"",e[Xl]&&(r.display="none"))}const vi=/\s*!important$/;function Wn(e,t,n){if(G(n))n.forEach(r=>Wn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=vd(e,t);vi.test(n)?e.setProperty(Kt(r),n.replace(vi,""),"important"):e[r]=n}}const wi=["Webkit","Moz","ms"],Es={};function vd(e,t){const n=Es[t];if(n)return n;let r=Le(t);if(r!=="filter"&&r in e)return Es[t]=r;r=Gr(r);for(let s=0;sSs||(Rd.then(()=>Ss=0),Ss=Date.now());function Pd(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;const s=n.value;if(G(s)){const o=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{o.call(r),r._stopped=!0};const i=s.slice(),a=[r];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ad=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?yd(e,r,i):t==="style"?bd(e,n,r):lr(t)?Wr(t)||Sd(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):xd(e,t,r,i))?(Ti(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Si(e,t,r,i,o,t!=="value")):e._isVueCE&&(kd(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!he(r)))?Ti(e,Le(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Si(e,t,r,i))};function xd(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Pi(t)&&Y(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||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 Pi(t)&&he(n)?!1:t in e}function kd(e,t){const n=e._def.props;if(!n)return!1;const r=Le(t);return Array.isArray(n)?n.some(s=>Le(s)===r):Object.keys(n).some(s=>Le(s)===r)}const Vt=e=>{const t=e.props["onUpdate:modelValue"]||!1;return G(t)?n=>vn(t,n):t};function Od(e){e.target.composing=!0}function Ai(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Je=Symbol("_assign");function xi(e,t,n){return t&&(e=e.trim()),n&&(e=Jr(e)),e}const ki={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Je]=Vt(s);const o=r||s.props&&s.props.type==="number";Tt(e,t?"change":"input",i=>{i.target.composing||e[Je](xi(e.value,n,o))}),(n||o)&&Tt(e,"change",()=>{e.value=xi(e.value,n,o)}),t||(Tt(e,"compositionstart",Od),Tt(e,"compositionend",Ai),Tt(e,"change",Ai))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Je]=Vt(i),e.composing)return;const a=(o||e.type==="number")&&!/^0\d/.test(e.value)?Jr(e.value):e.value,l=t??"";if(a===l)return;const f=e.getRootNode();(f instanceof Document||f instanceof ShadowRoot)&&f.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===l)||(e.value=l)}},Md={deep:!0,created(e,t,n){e[Je]=Vt(n),Tt(e,"change",()=>{const r=e._modelValue,s=An(e),o=e.checked,i=e[Je];if(G(r)){const a=yo(r,s),l=a!==-1;if(o&&!l)i(r.concat(s));else if(!o&&l){const f=[...r];f.splice(a,1),i(f)}}else if(Mn(r)){const a=new Set(r);o?a.add(s):a.delete(s),i(a)}else i(Yl(e,o))})},mounted:Oi,beforeUpdate(e,t,n){e[Je]=Vt(n),Oi(e,t,n)}};function Oi(e,{value:t,oldValue:n},r){e._modelValue=t;let s;if(G(t))s=yo(t,r.props.value)>-1;else if(Mn(t))s=t.has(r.props.value);else{if(t===n)return;s=Bt(t,Yl(e,!0))}e.checked!==s&&(e.checked=s)}const Id={created(e,{value:t},n){e.checked=Bt(t,n.props.value),e[Je]=Vt(n),Tt(e,"change",()=>{e[Je](An(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[Je]=Vt(r),t!==n&&(e.checked=Bt(t,r.props.value))}},Ld={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const s=Mn(t);Tt(e,"change",()=>{const o=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?Jr(An(i)):An(i));e[Je](e.multiple?s?new Set(o):o:o[0]),e._assigning=!0,xt(()=>{e._assigning=!1})}),e[Je]=Vt(r)},mounted(e,{value:t}){Mi(e,t)},beforeUpdate(e,t,n){e[Je]=Vt(n)},updated(e,{value:t}){e._assigning||Mi(e,t)}};function Mi(e,t){const n=e.multiple,r=G(t);if(!(n&&!r&&!Mn(t))){for(let s=0,o=e.options.length;sString(f)===String(a)):i.selected=yo(t,a)>-1}else i.selected=t.has(a);else if(Bt(An(i),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function An(e){return"_value"in e?e._value:e.value}function Yl(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Ym={created(e,t,n){vr(e,t,n,null,"created")},mounted(e,t,n){vr(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){vr(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){vr(e,t,n,r,"updated")}};function Dd(e,t){switch(e){case"SELECT":return Ld;case"TEXTAREA":return ki;default:switch(t){case"checkbox":return Md;case"radio":return Id;default:return ki}}}function vr(e,t,n,r,s){const i=Dd(e.tagName,n.props&&n.props.type)[s];i&&i(e,t,n,r)}const $d=["ctrl","shift","alt","meta"],Hd={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)=>$d.some(n=>e[`${n}Key`]&&!t.includes(n))},Qm=(e,t)=>{if(!e)return e;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=Kt(s.key);if(t.some(i=>i===o||Nd[i]===o))return e(s)}))},Ql=Te({patchProp:Ad},ld);let Yn,Ii=!1;function jd(){return Yn||(Yn=jf(Ql))}function Fd(){return Yn=Ii?Yn:Ff(Ql),Ii=!0,Yn}const Bd=((...e)=>{const t=jd().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=ec(r);if(!s)return;const o=t._component;!Y(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Zl(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t}),Ud=((...e)=>{const t=Fd().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=ec(r);if(s)return n(s,!0,Zl(s))},t});function Zl(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function ec(e){return he(e)?document.querySelector(e):e}const Vd=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,Kd=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,Wd=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function qd(e,t){if(e==="__proto__"||e==="constructor"&&t&&typeof t=="object"&&"prototype"in t){zd(e);return}return t}function zd(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function Gd(e,t={}){if(typeof e!="string")return e;if(e[0]==='"'&&e[e.length-1]==='"'&&e.indexOf("\\")===-1)return e.slice(1,-1);const n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case"true":return!0;case"false":return!1;case"undefined":return;case"null":return null;case"nan":return Number.NaN;case"infinity":return Number.POSITIVE_INFINITY;case"-infinity":return Number.NEGATIVE_INFINITY}if(!Wd.test(e)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return e}try{if(Vd.test(e)||Kd.test(e)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(e,qd)}return JSON.parse(e)}catch(r){if(t.strict)throw r;return e}}const tc=/#/g,nc=/&/g,Jd=/\//g,Xd=/=/g,Yd=/\?/g,ls=/\+/g,Qd=/%5e/gi,Zd=/%60/gi,eh=/%7c/gi,th=/%20/gi,nh=/%2f/gi,rh=/%252f/gi;function rc(e){return encodeURI(""+e).replace(eh,"|")}function Js(e){return rc(typeof e=="string"?e:JSON.stringify(e)).replace(ls,"%2B").replace(th,"+").replace(tc,"%23").replace(nc,"%26").replace(Zd,"`").replace(Qd,"^").replace(Jd,"%2F")}function Ts(e){return Js(e).replace(Xd,"%3D")}function sh(e){return rc(e).replace(tc,"%23").replace(Yd,"%3F").replace(rh,"%2F").replace(nc,"%26").replace(ls,"%2B")}function ar(e=""){try{return decodeURIComponent(""+e)}catch{return""+e}}function oh(e){return ar(e.replace(nh,"%252F"))}function ih(e){return ar(e.replace(ls," "))}function ah(e){return ar(e.replace(ls," "))}function sc(e=""){const t=Object.create(null);e[0]==="?"&&(e=e.slice(1));for(const n of e.split("&")){const r=n.match(/([^=]+)=?(.*)/)||[];if(r.length<2)continue;const s=ih(r[1]);if(s==="__proto__"||s==="constructor")continue;const o=ah(r[2]||"");t[s]===void 0?t[s]=o:Array.isArray(t[s])?t[s].push(o):t[s]=[t[s],o]}return t}function lh(e,t){return(typeof t=="number"||typeof t=="boolean")&&(t=String(t)),t?Array.isArray(t)?t.map(n=>`${Ts(e)}=${Js(n)}`).join("&"):`${Ts(e)}=${Js(t)}`:Ts(e)}function ch(e){return Object.keys(e).filter(t=>e[t]!==void 0).map(t=>lh(t,e[t])).filter(Boolean).join("&")}const uh=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,fh=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,dh=/^([/\\]\s*){2,}[^/\\]/,hh=/^[\s\0]*(blob|data|javascript|vbscript):$/i,ph=/\/$|\/\?|\/#/,gh=/^\.?\//;function Dn(e,t={}){return typeof t=="boolean"&&(t={acceptRelative:t}),t.strict?uh.test(e):fh.test(e)||(t.acceptRelative?dh.test(e):!1)}function Xs(e){return!!e&&hh.test(e)}function Ys(e="",t){return t?ph.test(e):e.endsWith("/")}function Fr(e="",t){if(!t)return(Ys(e)?e.slice(0,-1):e)||"/";if(!Ys(e,!0))return e||"/";let n=e,r="";const s=e.indexOf("#");s!==-1&&(n=e.slice(0,s),r=e.slice(s));const[o,...i]=n.split("?");return((o.endsWith("/")?o.slice(0,-1):o)||"/")+(i.length>0?`?${i.join("?")}`:"")+r}function yh(e="",t){if(!t)return e.endsWith("/")?e:e+"/";if(Ys(e,!0))return e||"/";let n=e,r="";const s=e.indexOf("#");if(s!==-1&&(n=e.slice(0,s),r=e.slice(s),!n))return r;const[o,...i]=n.split("?");return o+"/"+(i.length>0?`?${i.join("?")}`:"")+r}function mh(e,t){if(ic(t)||Dn(e))return e;const n=Fr(t);if(e.startsWith(n)){const r=e[n.length];if(!r||r==="/"||r==="?")return e}return ac(n,e)}function Li(e,t){if(ic(t))return e;const n=Fr(t);if(!e.startsWith(n))return e;const r=e[n.length];return r&&r!=="/"&&r!=="?"?e:"/"+e.slice(n.length).replace(/^\/+/,"")}function oc(e,t){const n=Lo(e),r={...sc(n.search),...t};return n.search=ch(r),bh(n)}function ic(e){return!e||e==="/"}function _h(e){return e&&e!=="/"}function ac(e,...t){let n=e||"";for(const r of t.filter(s=>_h(s)))if(n){const s=r.replace(gh,"");n=yh(n)+s}else n=r;return n}function lc(...e){const t=/\/(?!\/)/,n=e.filter(Boolean),r=[];let s=0;for(const i of n)if(!(!i||i==="/")){for(const[a,l]of i.split(t).entries())if(!(!l||l===".")){if(l===".."){if(r.length===1&&Dn(r[0]))continue;r.pop(),s--;continue}if(a===1&&r[r.length-1]?.endsWith(":/")){r[r.length-1]+="/"+l;continue}r.push(l),s++}}let o=r.join("/");return s>=0?n[0]?.startsWith("/")&&!o.startsWith("/")?o="/"+o:n[0]?.startsWith("./")&&!o.startsWith("./")&&(o="./"+o):o="../".repeat(-1*s)+o,n[n.length-1]?.endsWith("/")&&!o.endsWith("/")&&(o+="/"),o}function cc(e,t){return ar(Fr(e))===ar(Fr(t))}const uc=Symbol.for("ufo:protocolRelative");function Lo(e="",t){const n=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(n){const[,u,h=""]=n;return{protocol:u.toLowerCase(),pathname:h,href:u+h,auth:"",host:"",search:"",hash:""}}if(!Dn(e,{acceptRelative:!0}))return Di(e);const[,r="",s,o=""]=e.replace(/\\/g,"/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[];let[,i="",a=""]=o.match(/([^#/?]*)(.*)?/)||[];r==="file:"&&(a=a.replace(/\/(?=[A-Za-z]:)/,""));const{pathname:l,search:f,hash:c}=Di(a);return{protocol:r.toLowerCase(),auth:s?s.slice(0,Math.max(0,s.length-1)):"",host:i,pathname:l,search:f,hash:c,[uc]:!r}}function Di(e=""){const[t="",n="",r=""]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:n,hash:r}}function bh(e){const t=e.pathname||"",n=e.search?(e.search.startsWith("?")?"":"?")+e.search:"",r=e.hash||"",s=e.auth?e.auth+"@":"",o=e.host||"";return(e.protocol||e[uc]?(e.protocol||"")+"//":"")+s+o+t+n+r}class vh extends Error{constructor(t,n){super(t,n),this.name="FetchError",n?.cause&&!this.cause&&(this.cause=n.cause)}}function wh(e){const t=e.error?.message||e.error?.toString()||"",n=e.request?.method||e.options?.method||"GET",r=e.request?.url||String(e.request)||"/",s=`[${n}] ${JSON.stringify(r)}`,o=e.response?`${e.response.status} ${e.response.statusText}`:"",i=`${s}: ${o}${t?` ${t}`:""}`,a=new vh(i,e.error?{cause:e.error}:void 0);for(const l of["request","options","response"])Object.defineProperty(a,l,{get(){return e[l]}});for(const[l,f]of[["data","_data"],["status","status"],["statusCode","status"],["statusText","statusText"],["statusMessage","statusText"]])Object.defineProperty(a,l,{get(){return e.response&&e.response[f]}});return a}const Eh=new Set(Object.freeze(["PATCH","POST","PUT","DELETE"]));function $i(e="GET"){return Eh.has(e.toUpperCase())}function Sh(e){if(e===void 0)return!1;const t=typeof e;return t==="string"||t==="number"||t==="boolean"||t===null?!0:t!=="object"?!1:Array.isArray(e)?!0:e.buffer||e instanceof FormData||e instanceof URLSearchParams?!1:e.constructor&&e.constructor.name==="Object"||typeof e.toJSON=="function"}const Th=new Set(["image/svg","application/xml","application/xhtml","application/html"]),Rh=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function Ch(e=""){if(!e)return"json";const t=e.split(";").shift()||"";return Rh.test(t)?"json":t==="text/event-stream"?"stream":Th.has(t)||t.startsWith("text/")?"text":"blob"}function Ph(e,t,n,r){const s=Ah(t?.headers??e?.headers,n?.headers,r);let o;return(n?.query||n?.params||t?.params||t?.query)&&(o={...n?.params,...n?.query,...t?.params,...t?.query}),{...n,...t,query:o,params:o,headers:s}}function Ah(e,t,n){if(!t)return new n(e);const r=new n(t);if(e)for(const[s,o]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(s,o);return r}async function wr(e,t){if(t)if(Array.isArray(t))for(const n of t)await n(e);else await t(e)}const xh=new Set([408,409,425,429,500,502,503,504]),kh=new Set([101,204,205,304]);function fc(e={}){const{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function s(a){const l=a.error&&a.error.name==="AbortError"&&!a.options.timeout||!1;if(a.options.retry!==!1&&!l){let c;typeof a.options.retry=="number"?c=a.options.retry:c=$i(a.options.method)?0:1;const u=a.response&&a.response.status||500;if(c>0&&(Array.isArray(a.options.retryStatusCodes)?a.options.retryStatusCodes.includes(u):xh.has(u))){const h=typeof a.options.retryDelay=="function"?a.options.retryDelay(a):a.options.retryDelay||0;return h>0&&await new Promise(d=>setTimeout(d,h)),o(a.request,{...a.options,retry:c-1})}}const f=wh(a);throw Error.captureStackTrace&&Error.captureStackTrace(f,o),f}const o=async function(l,f={}){const c={request:l,options:Ph(l,f,e.defaults,n),response:void 0,error:void 0};if(c.options.method&&(c.options.method=c.options.method.toUpperCase()),c.options.onRequest&&(await wr(c,c.options.onRequest),c.options.headers instanceof n||(c.options.headers=new n(c.options.headers||{}))),typeof c.request=="string"&&(c.options.baseURL&&(c.request=mh(c.request,c.options.baseURL)),c.options.query&&(c.request=oc(c.request,c.options.query),delete c.options.query),"query"in c.options&&delete c.options.query,"params"in c.options&&delete c.options.params),c.options.body&&$i(c.options.method))if(Sh(c.options.body)){const d=c.options.headers.get("content-type");typeof c.options.body!="string"&&(c.options.body=d==="application/x-www-form-urlencoded"?new URLSearchParams(c.options.body).toString():JSON.stringify(c.options.body)),d||c.options.headers.set("content-type","application/json"),c.options.headers.has("accept")||c.options.headers.set("accept","application/json")}else("pipeTo"in c.options.body&&typeof c.options.body.pipeTo=="function"||typeof c.options.body.pipe=="function")&&("duplex"in c.options||(c.options.duplex="half"));let u;if(!c.options.signal&&c.options.timeout){const d=new r;u=setTimeout(()=>{const y=new Error("[TimeoutError]: The operation was aborted due to timeout");y.name="TimeoutError",y.code=23,d.abort(y)},c.options.timeout),c.options.signal=d.signal}try{c.response=await t(c.request,c.options)}catch(d){return c.error=d,c.options.onRequestError&&await wr(c,c.options.onRequestError),await s(c)}finally{u&&clearTimeout(u)}if((c.response.body||c.response._bodyInit)&&!kh.has(c.response.status)&&c.options.method!=="HEAD"){const d=(c.options.parseResponse?"json":c.options.responseType)||Ch(c.response.headers.get("content-type")||"");switch(d){case"json":{const y=await c.response.text(),m=c.options.parseResponse||Gd;c.response._data=m(y);break}case"stream":{c.response._data=c.response.body||c.response._bodyInit;break}default:c.response._data=await c.response[d]()}}return c.options.onResponse&&await wr(c,c.options.onResponse),!c.options.ignoreResponseError&&c.response.status>=400&&c.response.status<600?(c.options.onResponseError&&await wr(c,c.options.onResponseError),await s(c)):c.response},i=async function(l,f){return(await o(l,f))._data};return i.raw=o,i.native=(...a)=>t(...a),i.create=(a={},l={})=>fc({...e,...l,defaults:{...e.defaults,...l.defaults,...a}}),i}const Br=(function(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")})(),Oh=Br.fetch?(...e)=>Br.fetch(...e):()=>Promise.reject(new Error("[ofetch] global.fetch is not supported!")),Mh=Br.Headers,Ih=Br.AbortController,Lh=fc({fetch:Oh,Headers:Mh,AbortController:Ih}),Dh=Lh,$h=()=>window?.__NUXT__?.config||window?.useNuxtApp?.().payload?.config,Do=()=>$h().app,Hh=()=>Do().baseURL,Nh=()=>Do().buildAssetsDir,$o=(...e)=>lc(dc(),Nh(),...e),dc=(...e)=>{const t=Do(),n=t.cdnURL||t.baseURL;return e.length?lc(n,...e):n};globalThis.__buildAssetsURL=$o,globalThis.__publicAssetsURL=dc;globalThis.$fetch||(globalThis.$fetch=Dh.create({baseURL:Hh()}));"global"in globalThis||(globalThis.global=globalThis);function Qs(e,t={},n){for(const r in e){const s=e[r],o=n?`${n}:${r}`:r;typeof s=="object"&&s!==null?Qs(s,t,o):typeof s=="function"&&(t[o]=s)}return t}const hc=(()=>{if(console.createTask)return console.createTask;const e={run:t=>t()};return()=>e})();function pc(e,t,n,r){for(let s=n;se[s](...t)):e[s](...t);if(o&&typeof o.then=="function")return Promise.resolve(o).then(()=>pc(e,t,s+1,r))}catch(o){return Promise.reject(o)}}function jh(e,t,n){if(e.length>0)return pc(e,t,0,hc(n))}function Fh(e,t,n){if(e.length>0){const r=hc(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}}function Rs(e,t){for(const n of[...e])n(t)}var Bh=class{_hooks;_before;_after;_deprecatedHooks;_deprecatedMessages;constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(e,t,n={}){if(!e||typeof t!="function")return()=>{};const r=e;let s;for(;this._deprecatedHooks[e];)s=this._deprecatedHooks[e],e=s.to;if(s&&!n.allowDeprecated){let o=s.message;o||(o=`${r} hook has been deprecated`+(s.to?`, please use ${s.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(o)||(console.warn(o),this._deprecatedMessages.add(o))}if(!t.name)try{Object.defineProperty(t,"name",{get:()=>"_"+e.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&(this.removeHook(e,t),t=void 0)}}hookOnce(e,t){let n,r=(...s)=>(typeof n=="function"&&n(),n=void 0,r=void 0,t(...s));return n=this.hook(e,r),n}removeHook(e,t){const n=this._hooks[e];if(n){const r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}clearHook(e){this._hooks[e]=void 0}deprecateHook(e,t){this._deprecatedHooks[e]=typeof t=="string"?{to:t}:t;const n=this._hooks[e]||[];this._hooks[e]=void 0;for(const r of n)this.hook(e,r)}deprecateHooks(e){for(const t in e)this.deprecateHook(t,e[t])}addHooks(e){const t=Qs(e),n=Object.keys(t).map(r=>this.hook(r,t[r]));return()=>{for(const r of n)r();n.length=0}}removeHooks(e){const t=Qs(e);for(const n in t)this.removeHook(n,t[n])}removeAllHooks(){this._hooks={}}callHook(e,...t){return this.callHookWith(jh,e,t)}callHookParallel(e,...t){return this.callHookWith(Fh,e,t)}callHookWith(e,t,n){const r=this._before||this._after?{name:t,args:n,context:{}}:void 0;this._before&&Rs(this._before,r);const s=e(this._hooks[t]?[...this._hooks[t]]:[],n,t);return s instanceof Promise?s.finally(()=>{this._after&&r&&Rs(this._after,r)}):(this._after&&r&&Rs(this._after,r),s)}beforeEach(e){return this._before=this._before||[],this._before.push(e),()=>{if(this._before!==void 0){const t=this._before.indexOf(e);t!==-1&&this._before.splice(t,1)}}}afterEach(e){return this._after=this._after||[],this._after.push(e),()=>{if(this._after!==void 0){const t=this._after.indexOf(e);t!==-1&&this._after.splice(t,1)}}}};function gc(){return new Bh}function Uh(e={}){let t,n=!1;const r=i=>{if(t&&t!==i)throw new Error("Context conflict")};let s;if(e.asyncContext){const i=e.AsyncLocalStorage||globalThis.AsyncLocalStorage;i?s=new i:console.warn("[unctx] `AsyncLocalStorage` is not provided.")}const o=()=>{if(s){const i=s.getStore();if(i!==void 0)return i}return t};return{use:()=>{const i=o();if(i===void 0)throw new Error("Context is not available");return i},tryUse:()=>o(),set:(i,a)=>{a||r(i),t=i,n=!0},unset:()=>{t=void 0,n=!1},call:(i,a)=>{r(i),t=i;try{return s?s.run(i,a):a()}finally{n||(t=void 0)}},async callAsync(i,a){t=i;const l=()=>{t=i},f=()=>t===i?l:void 0;Zs.add(f);try{const c=s?s.run(i,a):a();return n||(t=void 0),await c}finally{Zs.delete(f)}}}}function Vh(e={}){const t={};return{get(n,r={}){return t[n]||(t[n]=Uh({...e,...r})),t[n]}}}const Ur=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof global<"u"?global:typeof window<"u"?window:{},Hi="__unctx__",Kh=Ur[Hi]||(Ur[Hi]=Vh()),Wh=(e,t={})=>Kh.get(e,t),Ni="__unctx_async_handlers__",Zs=Ur[Ni]||(Ur[Ni]=new Set);function Qn(e){const t=[];for(const s of Zs){const o=s();o&&t.push(o)}const n=()=>{for(const s of t)s()};let r=e();return r&&typeof r=="object"&&"catch"in r&&(r=r.catch(s=>{throw n(),s})),[r,n]}const ji=!1,Fi=!1,qh=!1,Bi={id:"__nuxt-loader"},e_={componentName:"NuxtLink",prefetch:!0,prefetchOn:{visibility:!0}},zh={deep:!1},Gh={},Jh="#__nuxt",yc="nuxt-app",Ui=36e5,Xh="vite:preloadError";function mc(e=yc){return Wh(e,{asyncContext:!1})}const Yh="__nuxt_plugin";function Qh(e){let t=0;const n={_id:e.id||yc||"nuxt-app",_scope:mo(),provide:void 0,versions:{get nuxt(){return"4.4.8"},get vue(){return n.vueApp.version}},payload:Ze({...e.ssrContext?.payload||{},data:Ze({}),state:ot({}),once:new Set,_errors:Ze({})}),static:{data:{}},runWithContext(s){return n._scope.active&&!Zr()?n._scope.run(()=>Vi(n,s)):Vi(n,s)},isHydrating:!0,deferHydration(){if(!n.isHydrating)return()=>{};t++;let s=!1;return()=>{if(!s&&(s=!0,t--,t===0))return n.isHydrating=!1,n.callHook("app:suspense:resolve")}},_asyncDataPromises:{},_asyncData:Ze({}),_state:Ze({}),_payloadRevivers:{},...e};{const s=window.__NUXT__;if(s)for(const o in s)switch(o){case"data":case"state":case"_errors":Object.assign(n.payload[o],s[o]);break;default:n.payload[o]=s[o]}}n.hooks=gc(),n.hook=n.hooks.hook;{const s=n.hooks.callHook;n.hooks.callHook=(o,...i)=>Promise.resolve().then(()=>s(o,...i))}n.callHook=n.hooks.callHook,n.provide=(s,o)=>{const i="$"+s;Er(n,i,o),Er(n.vueApp.config.globalProperties,i,o)},Er(n.vueApp,"$nuxt",n),Er(n.vueApp.config.globalProperties,"$nuxt",n);{window.addEventListener(Xh,o=>{n.callHook("app:chunkError",{error:o.payload}),o.payload?.message?.includes("Unable to preload CSS")&&o.preventDefault()}),window.useNuxtApp||=be;const s=n.hook("app:error",(...o)=>{console.error("[nuxt] error caught during app initialization",...o)});n.hook("app:mounted",s)}const r=n.payload.config;return n.provide("config",r),n}function Zh(e,t){t.hooks&&e.hooks.addHooks(t.hooks)}async function ep(e,t){if(typeof t=="function"){const{provide:n}=await e.runWithContext(()=>t(e))||{};if(n&&typeof n=="object")for(const r in n)e.provide(r,n[r])}}async function tp(e,t){const n=new Set,r=[],s=[];let o,i=0;async function a(l){const f=l.dependsOn?.filter(c=>t.some(u=>u._name===c)&&!n.has(c))??[];if(f.length>0)r.push([new Set(f),l]);else{const c=ep(e,l).then(async()=>{l._name&&(n.add(l._name),await Promise.all(r.map(async([u,h])=>{u.has(l._name)&&(u.delete(l._name),u.size===0&&(i++,await a(h)))})))}).catch(u=>{if(!l.parallel&&!e.payload.error)throw u;o||=u});l.parallel?s.push(c):await c}}for(const l of t)Zh(e,l);for(const l of t)await a(l);if(await Promise.all(s),i)for(let l=0;l{}),e,{[Yh]:!0,_name:t})}const np=Ye;function Vi(e,t,n){const r=()=>t();return mc(e._id).set(e),e.vueApp.runWithContext(r)}function rp(e){let t;return ns()&&(t=an()?.appContext.app.$nuxt),t||=mc(e).tryUse(),t||null}function be(e){const t=rp(e);if(!t)throw new Error("[nuxt] instance unavailable");return t}function Ho(e){return be().$config}function Er(e,t,n){Object.defineProperty(e,t,{get:()=>n})}function Cs(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function eo(e,t,n=".",r){if(!Cs(t))return eo(e,{},n,r);const s={...t};for(const o of Object.keys(e)){if(o==="__proto__"||o==="constructor")continue;const i=e[o];i!=null&&(r&&r(s,o,i,n)||(Array.isArray(i)&&Array.isArray(s[o])?s[o]=[...i,...s[o]]:Cs(i)&&Cs(s[o])?s[o]=eo(i,s[o],(n?`${n}.`:"")+o.toString(),r):s[o]=i))}return s}function sp(e){return(...t)=>t.reduce((n,r)=>eo(n,r,"",e),{})}const _c=sp();function op(e,t){try{return t in e}catch{return!1}}class Ki extends Error{static __h3_error__=!0;statusCode=500;fatal=!1;unhandled=!1;statusMessage;data;cause;constructor(t,n={}){super(t,n),n.cause&&!this.cause&&(this.cause=n.cause)}toJSON(){const t={message:this.message,statusCode:to(this.statusCode,500)};return this.statusMessage&&(t.statusMessage=bc(this.statusMessage)),this.data!==void 0&&(t.data=this.data),t}}function ip(e){if(typeof e=="string")return new Ki(e);if(ap(e))return e;const t=new Ki(e.message??e.statusMessage??"",{cause:e.cause||e});if(op(e,"stack"))try{Object.defineProperty(t,"stack",{get(){return e.stack}})}catch{try{t.stack=e.stack}catch{}}if(e.data&&(t.data=e.data),e.statusCode?t.statusCode=to(e.statusCode,t.statusCode):e.status&&(t.statusCode=to(e.status,t.statusCode)),e.statusMessage?t.statusMessage=e.statusMessage:e.statusText&&(t.statusMessage=e.statusText),t.statusMessage){const n=t.statusMessage;bc(t.statusMessage)!==n&&console.warn("[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default.")}return e.fatal!==void 0&&(t.fatal=e.fatal),e.unhandled!==void 0&&(t.unhandled=e.unhandled),t}function ap(e){return e?.constructor?.__h3_error__===!0}const lp=/[^\u0009\u0020-\u007E]/g;function bc(e=""){return e.replace(lp,"")}function to(e,t=200){return!e||(typeof e=="string"&&(e=Number.parseInt(e,10)),e<100||e>999)?t:e}const vc=Symbol("layout-meta"),on=Symbol("route");import.meta.url.replace(/\/app\/.*$/,"/");const Ve=()=>be()?.$router,No=()=>ns()?Ce(on,be()._route):be()._route;const cp=()=>{try{if(be()._processingMiddleware)return!0}catch{return!1}return!1},t_=(e,t)=>{e||="/";const n=typeof e=="string"?e:"path"in e?up(e):Ve().resolve(e).href;if(t?.open){const{protocol:f}=new URL(n,window.location.href);if(f&&Xs(f))throw new Error(`Cannot navigate to a URL with '${f}' protocol.`);const{target:c="_blank",windowFeatures:u={}}=t.open,h=[];for(const[d,y]of Object.entries(u))y!==void 0&&h.push(`${d.toLowerCase()}=${y}`);return open(n,c,h.join(", ")),Promise.resolve()}const r=Dn(n,{acceptRelative:!0}),s=t?.external||r;if(s){if(!t?.external)throw new Error("Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.");const{protocol:f}=new URL(n,window.location.href);if(f&&Xs(f))throw new Error(`Cannot navigate to a URL with '${f}' protocol.`)}const o=cp();if(!s&&o){if(t?.replace){if(typeof e=="string"){const{pathname:f,search:c,hash:u}=Lo(e);return{path:f,...c&&{query:sc(c)},...u&&{hash:u},replace:!0}}return{...e,replace:!0}}return e}const i=Ve(),a=be();if(s)return a._scope.stop(),t?.replace?location.replace(n):location.href=n,o?a.isHydrating?new Promise(()=>{}):!1:Promise.resolve();const l=typeof e=="string"?fp(e):e;return t?.replace?i.replace(l):i.push(l)};function up(e){return oc(e.path||"",e.query||{})+(e.hash||"")}function fp(e){const t=Lo(e);return sh(oh(t.pathname))+t.search+t.hash}const wc="__nuxt_error",cs=()=>Xa(be().payload,"error"),Zt=e=>{const t=Ft(e);try{const n=cs();be().hooks.callHook("app:error",t),n.value||=t}catch{throw t}return t},dp=async(e={})=>{const t=be(),n=cs();t.callHook("app:error:cleared",e),e.redirect&&await Ve().replace(e.redirect),n.value=void 0},Ec=e=>!!e&&typeof e=="object"&&wc in e,Ft=e=>{typeof e!="string"&&e.statusText&&(e.message??=e.statusText);const t=ip(e);return Object.defineProperty(t,wc,{value:!0,configurable:!1,writable:!1}),Object.defineProperty(t,"status",{get:()=>t.statusCode,configurable:!0}),Object.defineProperty(t,"statusText",{get:()=>t.statusMessage,configurable:!0}),t};let Sc;const xn=e=>Sc=e,Tc=Symbol();function no(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Zn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Zn||(Zn={}));function hp(){const e=mo(!0),t=e.run(()=>nt({}));let n=[],r=[];const s=To({install(o){xn(s),s._a=o,o.provide(Tc,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Rc=()=>{};function Wi(e,t,n,r=Rc){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&Zr()&&Ia(s),s}function dn(e,...t){e.forEach(n=>{n(...t)})}const pp=e=>e(),qi=Symbol(),Ps=Symbol();function ro(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];no(s)&&no(r)&&e.hasOwnProperty(n)&&!pe(r)&&!gt(r)?e[n]=ro(s,r):e[n]=r}return e}const gp=Symbol();function yp(e){return!no(e)||!Object.prototype.hasOwnProperty.call(e,gp)}const{assign:Dt}=Object;function mp(e){return!!(pe(e)&&e.effect)}function _p(e,t,n,r){const{state:s,actions:o,getters:i}=t,a=n.state.value[e];let l;function f(){a||(n.state.value[e]=s?s():{});const c=Bu(n.state.value[e]);return Dt(c,o,Object.keys(i||{}).reduce((u,h)=>(u[h]=To(Re(()=>{xn(n);const d=n._s.get(e);return i[h].call(d,d)})),u),{}))}return l=Cc(e,f,t,n,r,!0),l}function Cc(e,t,n={},r,s,o){let i;const a=Dt({actions:{}},n),l={deep:!0};let f,c,u=new Set,h=new Set,d;const y=r.state.value[e];!o&&!y&&(r.state.value[e]={});let m;function C(D){let R;f=c=!1,typeof D=="function"?(D(r.state.value[e]),R={type:Zn.patchFunction,storeId:e,events:d}):(ro(r.state.value[e],D),R={type:Zn.patchObject,payload:D,storeId:e,events:d});const T=m=Symbol();xt().then(()=>{m===T&&(f=!0)}),c=!0,dn(u,R,r.state.value[e])}const E=o?function(){const{state:R}=n,T=R?R():{};this.$patch(H=>{Dt(H,T)})}:Rc;function v(){i.stop(),u.clear(),h.clear(),r._s.delete(e)}const p=(D,R="")=>{if(qi in D)return D[Ps]=R,D;const T=function(){xn(r);const H=Array.from(arguments),L=new Set,W=new Set;function Z(q){L.add(q)}function te(q){W.add(q)}dn(h,{args:H,name:T[Ps],store:w,after:Z,onError:te});let F;try{F=D.apply(this&&this.$id===e?this:w,H)}catch(q){throw dn(W,q),q}return F instanceof Promise?F.then(q=>(dn(L,q),q)).catch(q=>(dn(W,q),Promise.reject(q))):(dn(L,F),F)};return T[qi]=!0,T[Ps]=R,T},_={_p:r,$id:e,$onAction:Wi.bind(null,h),$patch:C,$reset:E,$subscribe(D,R={}){const T=Wi(u,D,R.detached,()=>H()),H=i.run(()=>Rt(()=>r.state.value[e],L=>{(R.flush==="sync"?c:f)&&D({storeId:e,type:Zn.direct,events:d},L)},Dt({},l,R)));return T},$dispose:v},w=ot(_);r._s.set(e,w);const A=(r._a&&r._a.runWithContext||pp)(()=>r._e.run(()=>(i=mo()).run(()=>t({action:p}))));for(const D in A){const R=A[D];if(pe(R)&&!mp(R)||gt(R))o||(y&&yp(R)&&(pe(R)?R.value=y[D]:ro(R,y[D])),r.state.value[e][D]=R);else if(typeof R=="function"){const T=p(R,D);A[D]=T,a.actions[D]=R}}return Dt(w,A),Dt(ne(w),A),Object.defineProperty(w,"$state",{get:()=>r.state.value[e],set:D=>{C(R=>{Dt(R,D)})}}),r._p.forEach(D=>{Dt(w,i.run(()=>D({store:w,app:r._a,pinia:r,options:a})))}),y&&o&&n.hydrate&&n.hydrate(w.$state,y),f=!0,c=!0,w}function bp(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,a){const l=ns();return i=i||(l?Ce(Tc,null):null),i&&xn(i),i=Sc,i._s.has(e)||(s?Cc(e,t,r,i):_p(e,r,i)),i._s.get(e)}return o.$id=e,o}const vp=-1,wp=-2,Ep=-3,Sp=-4,Tp=-5,Rp=-6,Cp=-7,Pc=2**32-1,so=Pc-1;function Pp(e){return!(!Number.isInteger(e)||e<0||e>so)}function Ap(e){return!(!Number.isInteger(e)||e<0||e>Pc)}function xp(e){return Uint8Array.fromBase64(e).buffer}function kp(e){return Uint8Array.from(Buffer.from(e,"base64")).buffer}function Op(e){const t=atob(e),n=t.length,r=new Uint8Array(n);for(let s=0;s=f)throw new Error("Invalid input");c[h]=o(l[u+1])}c.length=f}else{const f=new Array(l.length);r[i]=f;for(let c=0;c`${r}:${String(s)}`).join(",")}`}function Vr(e,t,n){typeof e==="function"&&(!n||n!=="titleTemplate"&&!(n[0]==="o"&&n[1]==="n"))&&(e=e());const s=t?t(n,e):e;if(Array.isArray(s))return s.map(o=>Vr(o,t));if(s?.constructor===Object){const o={};for(const i of Object.keys(s))o[i]=Vr(s[i],t,i);return o}return s}function qp(e,t){const n=e==="style"?new Map:new Set;function r(s){if(s==null||s===void 0)return;const o=String(s).trim();if(o)if(e==="style"){const[i,...a]=o.split(":").map(l=>l?l.trim():"");i&&a.length&&n.set(i,a.join(":"))}else o.split(" ").filter(Boolean).forEach(i=>n.add(i))}return typeof t=="string"?e==="style"?t.split(";").forEach(r):r(t):Array.isArray(t)?t.forEach(s=>r(s)):t&&typeof t=="object"&&Object.entries(t).forEach(([s,o])=>{o&&o!=="false"&&(e==="style"?n.set(String(s).trim(),String(o)):r(s))}),n}function kc(e,t){if(e.props=e.props||{},!t)return e;if(e.tag==="templateParams")return e.props=t,e;const n=oo.has(e.tag)||e.tag==="htmlAttrs"||e.tag==="bodyAttrs";return Object.entries(t).forEach(([r,s])=>{if(r==="__proto__"||r==="constructor"||r==="prototype")return;if(s===null){e.props[r]=null;return}if(r==="class"||r==="style"){e.props[r]=qp(r,s);return}if(Bp.has(r)){if((r==="textContent"||r==="innerHTML")&&typeof s=="object"){let f=t.type;if(t.type||(f="application/json"),!f?.endsWith("json")&&f!=="speculationrules")return;t.type=f,e.props.type=f,e[r]=JSON.stringify(s)}else e[r]=s;return}const o=r.startsWith("data-"),i=n&&!o?r.toLowerCase():r,a=String(s),l=e.tag==="meta"&&i==="content";a==="true"||a===""?e.props[i]=o||l?a:!0:!s&&o&&a==="false"?e.props[i]="false":s!==void 0&&(e.props[i]=s)}),e}function zp(e,t){const n=typeof t=="object"&&typeof t!="function"?t:{[e==="script"||e==="noscript"||e==="style"?"innerHTML":"textContent"]:t},r=kc({tag:e,props:{}},n);return r.key&&Hp.has(r.tag)&&(r.props["data-hid"]=r._h=r.key),r.tag==="script"&&typeof r.innerHTML=="object"&&(r.innerHTML=JSON.stringify(r.innerHTML),r.props.type=r.props.type||"application/json"),Array.isArray(r.props.content)?r.props.content.map(s=>({...r,props:{...r.props,content:s}})):r}function Gp(e,t){if(!e)return[];typeof e=="function"&&(e=e());const n=(s,o)=>{for(let i=0;i{if(o!==void 0)for(const i of Array.isArray(o)?o:[o])r.push(zp(s,i))}),r.flat()}const zi=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,Gi={base:-10,title:10},Jp={critical:-8,high:-1,low:2},Ji={meta:{"content-security-policy":-30,charset:-20,viewport:-15},link:{preconnect:20,stylesheet:60,preload:70,modulepreload:70,prefetch:90,"dns-prefetch":90,prerender:90},script:{async:30,defer:80,sync:50},style:{imported:40,sync:60}},Xp=/@import/,Bn=e=>e===""||e===!0;function Yp(e,t){if(typeof t.tagPriority=="number")return t.tagPriority;let n=100;const r=Jp[t.tagPriority]||0,s=e.resolvedOptions.disableCapoSorting?{link:{},script:{},style:{}}:Ji;if(t.tag in Gi)n=Gi[t.tag];else if(t.tag==="meta"){const o=t.props["http-equiv"]==="content-security-policy"?"content-security-policy":t.props.charset?"charset":t.props.name==="viewport"?"viewport":null;o&&(n=Ji.meta[o])}else if(t.tag==="link"&&t.props.rel)n=s.link[t.props.rel];else if(t.tag==="script"){const o=String(t.props.type);Bn(t.props.async)?n=s.script.async:t.props.src&&!Bn(t.props.defer)&&!Bn(t.props.async)&&o!=="module"&&!o.endsWith("json")||t.innerHTML&&!o.endsWith("json")?n=s.script.sync:(Bn(t.props.defer)&&t.props.src&&!Bn(t.props.async)||o==="module")&&(n=s.script.defer)}else t.tag==="style"&&(n=t.innerHTML&&Xp.test(t.innerHTML)?s.style.imported:s.style.sync);return(n||100)+r}function Xi(e,t){const n=typeof t=="function"?t(e):t,r=n.key||String(e.plugins.size+1);e.plugins.get(r)||(e.plugins.set(r,n),e.hooks.addHooks(n.hooks||{}))}function Qp(e={}){const t=gc();t.addHooks(e.hooks||{});const n=!e.document,r=new Map,s=new Map,o=new Set,i={_entryCount:1,plugins:s,dirty:!1,resolvedOptions:e,hooks:t,ssr:n,entries:r,headEntries(){return[...r.values()]},use:a=>Xi(i,a),push(a,l){const f={...l||{}};delete f.head;const c=f._index??i._entryCount++,u={_i:c,input:a,options:f},h={_poll(d=!1){i.dirty=!0,!d&&o.add(c),t.callHook("entries:updated",i)},dispose(){r.delete(c)&&i.invalidate()},patch(d){(!f.mode||f.mode==="server"&&n||f.mode==="client"&&!n)&&(u.input=d,r.set(c,u),h._poll())}};return h.patch(a),h},async resolveTags(){const a={tagMap:new Map,tags:[],entries:[...i.entries.values()]};for(await t.callHook("entries:resolve",a);o.size;){const h=o.values().next().value;o.delete(h);const d=r.get(h);if(d){const y={tags:Gp(d.input,e.propResolvers||[]).map(m=>Object.assign(m,d.options)),entry:d};await t.callHook("entries:normalize",y),d._tags=y.tags.map((m,C)=>(m._w=Yp(i,m),m._p=(d._i<<10)+C,m._d=io(m),m._d||(m._h=xc(m)),m))}}let l=!1;a.entries.flatMap(h=>(h._tags||[]).map(d=>({...d,props:{...d.props}}))).sort(zi).reduce((h,d)=>{const y=d._d||d._h;if(!h.has(y))return h.set(y,d);const m=h.get(y);if((d?.tagDuplicateStrategy||(Up.has(d.tag)?"merge":null)||(d.key&&d.key===m.key?"merge":null))==="merge"){const E={...m.props};Object.entries(d.props).forEach(([v,p])=>E[v]=v==="style"?new Map([...m.props.style||new Map,...p]):v==="class"?new Set([...m.props.class||new Set,...p]):p),h.set(y,{...d,props:E})}else d._p>>10===m._p>>10&&d.tag==="meta"&&Ac(y)?(h.set(y,Object.assign([...Array.isArray(m)?m:[m],d],d)),l=!0):(d._w===m._w?d._p>m._p:d?._wXi(i,a)),i.hooks.callHook("init",i),e.init?.forEach(a=>a&&i.push(a)),i}const Zp=(e,t)=>pe(t)?ft(t):t,Oc="usehead";function eg(e){return{install(n){n.config.globalProperties.$unhead=e,n.config.globalProperties.$head=e,n.provide(Oc,e)}}.install}function tg(){if(ns()){const e=Ce(Oc);if(e)return e}throw new Error("useHead() was called without provide context, ensure you call it through the setup() function.")}function n_(e,t={}){const n=t.head||tg();return n.ssr?n.push(e||{},t):ng(n,e,t)}function ng(e,t,n={}){const r=nt(!1);let s;return Qu(()=>{const i=r.value?{}:Vr(t,Zp);s?s.patch(i):s=e.push(i,n)}),an()&&(fr(()=>{s.dispose()}),ul(()=>{r.value=!0}),cl(()=>{r.value=!1})),s}const rg=(e,t)=>[],Mc=e=>_c({},...rg("",typeof e=="string"?e.toLowerCase():e).map(t=>t.data).reverse()),sg=Mc;let Cr;function og(){let e;return e=$fetch($o(`builds/meta/${Ho().app.buildId}.json`),{responseType:"json"}).then(t=>{if(!t||typeof t!="object"||!Array.isArray(t.prerendered))throw new Error("[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.");return t}),Cr=e,e.catch(t=>{Cr===e&&(Cr=void 0),console.error("[nuxt] Error fetching app manifest.",t)}),e}function Ic(){return Cr||og()}function Lc(e){const t=typeof e=="string"?e:e.path;try{return sg(t.toLowerCase())}catch(n){return console.error("[nuxt] Error matching route rules.",n),{}}}async function Yi(e,t={}){return null}async function ig(e){return null}let Xt=null;async function ag(){if(Xt)return Xt;const e=document.getElementById("__NUXT_DATA__");if(!e)return{};const t=await lg(e.textContent||""),n=e.dataset.src?await ig(e.dataset.src):void 0;return Xt={...t,...n,...window.__NUXT__},Xt.config?.public&&(Xt.config.public=ot(Xt.config.public)),Xt}async function lg(e){return await Dp(e,be()._payloadRevivers)}function Dc(e,t){be()._payloadRevivers[e]=t}const cg=np(()=>{Dc("skipHydrate",e=>{})});function Qi(e){try{return JSON.parse(e)}catch{return e}}const ug=[["NuxtError",e=>Ft(e)],["EmptyShallowRef",e=>Ut(e==="_"?void 0:e==="0n"?BigInt(0):Qi(e))],["EmptyRef",e=>nt(e==="_"?void 0:e==="0n"?BigInt(0):Qi(e))],["ShallowRef",e=>Ut(e)],["ShallowReactive",e=>Ze(e)],["Ref",e=>nt(e)],["Reactive",e=>ot(e)]],fg=Ye({name:"nuxt:revive-payload:client",order:-30,async setup(e){let t,n;for(const[r,s]of ug)Dc(r,s);Object.assign(e.payload,([t,n]=Qn(()=>e.runWithContext(ag)),t=await t,n(),t)),delete window.__NUXT__}});async function jo(e,t={}){const n=t.document||e.resolvedOptions.document;if(!n||!e.dirty)return;const r={shouldRender:!0,tags:[]};if(await e.hooks.callHook("dom:beforeRender",r),!!r.shouldRender)return e._domUpdatePromise||(e._domUpdatePromise=new Promise(async s=>{const o=new Map,i=new Promise(d=>{e.resolveTags().then(y=>{d(y.map(m=>{const C=o.get(m._d)||0,E={tag:m,id:(C?`${m._d}:${C}`:m._d)||m._h,shouldRender:!0};return m._d&&Ac(m._d)&&o.set(m._d,C+1),E}))})});let a=e._dom;if(!a){a={title:n.title,elMap:new Map().set("htmlAttrs",n.documentElement).set("bodyAttrs",n.body)};for(const d of["body","head"]){const y=n[d]?.children;for(const m of y){const C=m.tagName.toLowerCase();if(!oo.has(C))continue;const E=kc({tag:C,props:{}},{innerHTML:m.innerHTML,...m.getAttributeNames().reduce((v,p)=>(v[p]=m.getAttribute(p),v),{})||{}});if(E.key=m.getAttribute("data-hid")||void 0,E._d=io(E)||xc(E),a.elMap.has(E._d)){let v=1,p=E._d;for(;a.elMap.has(p);)p=`${E._d}:${v++}`;a.elMap.set(p,m)}else a.elMap.set(E._d,m)}}}a.pendingSideEffects={...a.sideEffects},a.sideEffects={};function l(d,y,m){const C=`${d}:${y}`;a.sideEffects[C]=m,delete a.pendingSideEffects[C]}function f({id:d,$el:y,tag:m}){const C=m.tag.endsWith("Attrs");a.elMap.set(d,y),C||(m.textContent&&m.textContent!==y.textContent&&(y.textContent=m.textContent),m.innerHTML&&m.innerHTML!==y.innerHTML&&(y.innerHTML=m.innerHTML),l(d,"el",()=>{y?.remove(),a.elMap.delete(d)}));for(const E in m.props){if(!Object.prototype.hasOwnProperty.call(m.props,E))continue;const v=m.props[E];if(E.startsWith("on")&&typeof v=="function"){const _=y?.dataset;if(_&&_[`${E}fired`]){const w=E.slice(0,-5);v.call(y,new Event(w.substring(2)))}y.getAttribute(`data-${E}`)!==""&&((m.tag==="bodyAttrs"?n.defaultView:y).addEventListener(E.substring(2),v.bind(y)),y.setAttribute(`data-${E}`,""));continue}const p=`attr:${E}`;if(E==="class"){if(!v)continue;for(const _ of v)C&&l(d,`${p}:${_}`,()=>y.classList.remove(_)),!y.classList.contains(_)&&y.classList.add(_)}else if(E==="style"){if(!v)continue;for(const[_,w]of v)l(d,`${p}:${_}`,()=>{y.style.removeProperty(_)}),y.style.setProperty(_,w)}else v!==!1&&v!==null&&(y.getAttribute(E)!==v&&y.setAttribute(E,v===!0?"":String(v)),C&&l(d,p,()=>y.removeAttribute(E)))}}const c=[],u={bodyClose:void 0,bodyOpen:void 0,head:void 0},h=await i;for(const d of h){const{tag:y,shouldRender:m,id:C}=d;if(m){if(y.tag==="title"){n.title=y.textContent,l("title","",()=>n.title=a.title);continue}d.$el=d.$el||a.elMap.get(C),d.$el?f(d):oo.has(y.tag)&&c.push(d)}}for(const d of c){const y=d.tag.tagPosition||"head";d.$el=n.createElement(d.tag.tag),f(d),u[y]=u[y]||n.createDocumentFragment(),u[y].appendChild(d.$el)}for(const d of h)await e.hooks.callHook("dom:renderTag",d,n,l);u.head&&n.head.appendChild(u.head),u.bodyOpen&&n.body.insertBefore(u.bodyOpen,n.body.firstChild),u.bodyClose&&n.body.appendChild(u.bodyClose);for(const d in a.pendingSideEffects)a.pendingSideEffects[d]();e._dom=a,await e.hooks.callHook("dom:rendered",{renders:h}),s()}).finally(()=>{e._domUpdatePromise=void 0,e.dirty=!1})),e._domUpdatePromise}function dg(e={}){const t=e.domOptions?.render||jo;e.document=e.document||(typeof window<"u"?document:void 0);const n=e.document?.head.querySelector('script[id="unhead:payload"]')?.innerHTML||!1;return Qp({...e,plugins:[...e.plugins||[],{key:"client",hooks:{"entries:updated":t}}],init:[n?JSON.parse(n):!1,...e.init||[]]})}function hg(e,t){let n=0;return()=>{const r=++n;t(()=>{n===r&&e()})}}function pg(e={}){const t=dg({domOptions:{render:hg(()=>jo(t),n=>setTimeout(n,0))},...e});return t.install=eg(t),t}const gg={disableDefaults:!0},yg=Ye({name:"nuxt:head",enforce:"pre",setup(e){const t=pg(gg);e.vueApp.use(t);{let n=!0;const r=async()=>{n=!1,await jo(t)};t.hooks.hook("dom:beforeRender",o=>{o.shouldRender=!n}),e.hooks.hook("page:start",()=>{n=!0}),e.hooks.hook("page:finish",()=>{e.isHydrating||r()}),e.hooks.hook("app:error",r),e.hooks.hook("app:suspense:resolve",r);const s=t.push.bind(t);t.push=((o,i)=>{const a=s(o,i),l=a.dispose.bind(a);return a.dispose=()=>{const f=e["~transitionPromise"];f?f.then(l):l()},a})}}});const pn=typeof document<"u";function $c(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function mg(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&$c(e.default)}const oe=Object.assign;function As(e,t){const n={};for(const r in t){const s=t[r];n[r]=st(s)?s.map(e):e(s)}return n}const er=()=>{},st=Array.isArray;function Zi(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Hc=Symbol("");function kn(e,t){return oe(new Error,{type:e,[Hc]:!0},t)}function bt(e,t){return e instanceof Error&&Hc in e&&(t==null||!!(e.type&t))}const _g=Symbol(""),ea=Symbol(""),Fo=Symbol(""),Bo=Symbol(""),ao=Symbol("");function Nc(e){return Ce(Bo)}const bg={trailing:!0};function vg(e,t=25,n={}){if(n={...bg,...n},!Number.isFinite(t))throw new TypeError("Expected `wait` to be a finite number");let r,s,o=[],i,a;const l=(u,h)=>(i=wg(e,u,h),i.finally(()=>{if(i=null,n.trailing&&a&&!s){const d=l(u,a);return a=null,d}}),i),f=function(...u){return n.trailing&&(a=u),i||new Promise(h=>{const d=!s&&n.leading;clearTimeout(s),s=setTimeout(()=>{s=null;const y=n.leading?r:l(this,u);a=null;for(const m of o)m(y);o=[]},t),d?(r=l(this,u),h(r)):o.push(h)})},c=u=>{u&&(clearTimeout(u),s=null)};return f.isPending=()=>!!s,f.cancel=()=>{c(s),o=[],a=null},f.flush=()=>{if(c(s),!a||i)return;const u=a;return a=null,l(this,u)},f}async function wg(e,t,n){return await e.apply(t,n)}const jc=/#/g,Eg=/&/g,Sg=/\//g,Tg=/=/g,Rg=/\?/g,Fc=/\+/g,Cg=/%5B/g,Pg=/%5D/g,Bc=/%5E/g,Ag=/%60/g,Uc=/%7B/g,xg=/%7C/g,Vc=/%7D/g,kg=/%20/g;function Uo(e){return e==null?"":encodeURI(""+e).replace(xg,"|").replace(Cg,"[").replace(Pg,"]")}function Og(e){return Uo(e).replace(Uc,"{").replace(Vc,"}").replace(Bc,"^")}function lo(e){return Uo(e).replace(Fc,"%2B").replace(kg,"+").replace(jc,"%23").replace(Eg,"%26").replace(Ag,"`").replace(Uc,"{").replace(Vc,"}").replace(Bc,"^")}function Mg(e){return lo(e).replace(Tg,"%3D")}function Ig(e){return Uo(e).replace(jc,"%23").replace(Rg,"%3F")}function Lg(e){return Ig(e).replace(Sg,"%2F")}function Kr(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Dg=/\/$/,$g=e=>e.replace(Dg,"");function xs(e,t,n="/"){let r,s={},o="",i="";const a=t.indexOf("#");let l=t.indexOf("?");return l=a>=0&&l>a?-1:l,l>=0&&(r=t.slice(0,l),o=t.slice(l,a>0?a:t.length),s=e(o.slice(1))),a>=0&&(r=r||t.slice(0,a),i=t.slice(a,t.length)),r=Fg(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Kr(i)}}function Hg(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ta(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Ng(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&On(t.matched[r],n.matched[s])&&Kc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function On(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Kc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!jg(e[n],t[n]))return!1;return!0}function jg(e,t){return st(e)?na(e,t):st(t)?na(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function na(e,t){return st(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Fg(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,a;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const qe={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};function Bg(e){if(!e)if(pn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),$g(e)}const Ug=/^[^#]+#/;function Vg(e,t){return e.replace(Ug,"#")+t}function Kg(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const us=()=>({left:window.scrollX,top:window.scrollY});function Wg(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Kg(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function ra(e,t){return(history.state?history.state.position-t:-1)+e}const co=new Map;function qg(e,t){co.set(e,t)}function zg(e){const t=co.get(e);return co.delete(e),t}function Gg(e){return typeof e=="string"||e&&typeof e=="object"}function Wc(e){return typeof e=="string"||typeof e=="symbol"}function Jg(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&lo(s)):[r&&lo(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Xg(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=st(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}function Un(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Ht(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((a,l)=>{const f=h=>{h===!1?l(kn(4,{from:n,to:t})):h instanceof Error?l(h):Gg(h)?l(kn(2,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),a())},c=o(()=>e.call(r&&r.instances[s],t,n,f));let u=Promise.resolve(c);e.length<3&&(u=u.then(f)),u.catch(h=>l(h))})}function ks(e,t,n,r,s=o=>o()){const o=[];for(const i of e)for(const a in i.components){let l=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if($c(l)){const f=(l.__vccOpts||l)[t];f&&o.push(Ht(f,n,r,i,a,s))}else{let f=l();o.push(()=>f.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${a}" at "${i.path}"`);const u=mg(c)?c.default:c;i.mods[a]=c,i.components[a]=u;const h=(u.__vccOpts||u)[t];return h&&Ht(h,n,r,i,a,s)()}))}}return o}function Yg(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iOn(f,a))?r.push(a):n.push(a));const l=e.matched[i];l&&(t.matched.find(f=>On(f,l))||s.push(l))}return[n,r,s]}let Qg=()=>location.protocol+"//"+location.host;function qc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,a=s.slice(i);return a[0]!=="/"&&(a="/"+a),ta(a,"")}return ta(n,e)+r+s}function Zg(e,t,n,r){let s=[],o=[],i=null;const a=({state:h})=>{const d=qc(e,location),y=n.value,m=t.value;let C=0;if(h){if(n.value=d,t.value=h,i&&i===y){i=null;return}C=m?h.position-m.position:0}else r(d);s.forEach(E=>{E(n.value,y,{delta:C,type:"pop",direction:C?C>0?"forward":"back":""})})};function l(){i=n.value}function f(h){s.push(h);const d=()=>{const y=s.indexOf(h);y>-1&&s.splice(y,1)};return o.push(d),d}function c(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(oe({},h.state,{scroll:us()}),"")}}function u(){for(const h of o)h();o=[],window.removeEventListener("popstate",a),window.removeEventListener("pagehide",c),document.removeEventListener("visibilitychange",c)}return window.addEventListener("popstate",a),window.addEventListener("pagehide",c),document.addEventListener("visibilitychange",c),{pauseListeners:l,listen:f,destroy:u}}function oa(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?us():null}}function ey(e){const{history:t,location:n}=window,r={value:qc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,f,c){const u=e.indexOf("#"),h=u>-1?(n.host&&document.querySelector("base")?e:e.slice(u))+l:Qg()+e+l;try{t[c?"replaceState":"pushState"](f,"",h),s.value=f}catch(d){console.error(d),n[c?"replace":"assign"](h)}}function i(l,f){o(l,oe({},t.state,oa(s.value.back,l,s.value.forward,!0),f,{position:s.value.position}),!0),r.value=l}function a(l,f){const c=oe({},s.value,t.state,{forward:l,scroll:us()});o(c.current,c,!0),o(l,oe({},oa(r.value,l,null),{position:c.position+1},f),!1),r.value=l}return{location:r,state:s,push:a,replace:i}}function ty(e){e=Bg(e);const t=ey(e),n=Zg(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=oe({location:"",base:e,go:r,createHref:Vg.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}const ny={type:0,value:""},ry=/[a-zA-Z0-9_]/;function sy(e){if(!e)return[[]];if(e==="/")return[[ny]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(d){throw new Error(`ERR (${n})/"${f}": ${d}`)}let n=0,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let a=0,l,f="",c="";function u(){f&&(n===0?o.push({type:0,value:f}):n===1||n===2||n===3?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:f,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),f="")}function h(){f+=l}for(;at.length?t.length===1&&t[0]===80?1:-1:0}function zc(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const cy={strict:!1,end:!0,sensitive:!1};function uy(e,t,n){const r=ay(sy(e.path),n),s=oe(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function fy(e,t){const n=[],r=new Map;t=Zi(cy,t);function s(u){return r.get(u)}function o(u,h,d){const y=!d,m=ca(u);m.aliasOf=d&&d.record;const C=Zi(t,u),E=[m];if("alias"in u){const _=typeof u.alias=="string"?[u.alias]:u.alias;for(const w of _)E.push(ca(oe({},m,{components:d?d.record.components:m.components,path:w,aliasOf:d?d.record:m})))}let v,p;for(const _ of E){const{path:w}=_;if(h&&w[0]!=="/"){const k=h.record.path,A=k[k.length-1]==="/"?"":"/";_.path=h.record.path+(w&&A+w)}if(v=uy(_,h,C),d?d.alias.push(v):(p=p||v,p!==v&&p.alias.push(v),y&&u.name&&!ua(v)&&i(u.name)),Gc(v)&&l(v),m.children){const k=m.children;for(let A=0;A{i(p)}:er}function i(u){if(Wc(u)){const h=r.get(u);h&&(r.delete(u),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(u);h>-1&&(n.splice(h,1),u.record.name&&r.delete(u.record.name),u.children.forEach(i),u.alias.forEach(i))}}function a(){return n}function l(u){const h=py(u,n);n.splice(h,0,u),u.record.name&&!ua(u)&&r.set(u.record.name,u)}function f(u,h){let d,y={},m,C;if("name"in u&&u.name){if(d=r.get(u.name),!d)throw kn(1,{location:u});C=d.record.name,y=oe(la(h.params,d.keys.filter(p=>!p.optional).concat(d.parent?d.parent.keys.filter(p=>p.optional):[]).map(p=>p.name)),u.params&&la(u.params,d.keys.map(p=>p.name))),m=d.stringify(y)}else if(u.path!=null)m=u.path,d=n.find(p=>p.re.test(m)),d&&(y=d.parse(m),C=d.record.name,d.keys.forEach(p=>{p.optional&&!y[p.name]&&delete y[p.name]}));else{if(d=h.name?r.get(h.name):n.find(p=>p.re.test(h.path)),!d)throw kn(1,{location:u,currentLocation:h});C=d.record.name,y=oe({},h.params,u.params),m=d.stringify(y)}const E=[];let v=d;for(;v;)E.unshift(v.record),v=v.parent;return{name:C,path:m,params:y,matched:E,meta:hy(E)}}e.forEach(u=>o(u));function c(){n.length=0,r.clear()}return{addRoute:o,resolve:f,removeRoute:i,clearRoutes:c,getRoutes:a,getRecordMatcher:s}}function la(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function ca(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:dy(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function dy(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ua(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function hy(e){return e.reduce((t,n)=>oe(t,n.meta),{})}function py(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;zc(e,t[o])<0?r=o:n=o+1}const s=gy(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function gy(e){let t=e;for(;t=t.parent;)if(Gc(t)&&zc(e,t)===0)return t}function Gc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function fa(e){const t=Ce(Fo),n=Ce(Bo),r=Re(()=>{const l=ae(e.to);return t.resolve(l)}),s=Re(()=>{const{matched:l}=r.value,{length:f}=l,c=l[f-1],u=n.matched;if(!c||!u.length)return-1;const h=u.findIndex(On.bind(null,c));if(h>-1)return h;const d=da(l[f-2]);return f>1&&da(c)===d&&u[u.length-1].path!==d?u.findIndex(On.bind(null,l[f-2])):h}),o=Re(()=>s.value>-1&&by(n.params,r.value.params)),i=Re(()=>s.value>-1&&s.value===n.matched.length-1&&Kc(n.params,r.value.params));function a(l={}){if(_y(l)){const f=t[ae(e.replace)?"replace":"push"](ae(e.to)).catch(er);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>f),f}return Promise.resolve()}return{route:r,href:Re(()=>r.value.href),isActive:o,isExactActive:i,navigate:a}}function yy(e){return e.length===1?e[0]:e}const my=Wt({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:fa,setup(e,{slots:t}){const n=ot(fa(e)),{options:r}=Ce(Fo),s=Re(()=>({[ha(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ha(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&yy(t.default(n));return e.custom?o:Oe("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}});function _y(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function by(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!st(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function da(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ha=(e,t,n)=>e??t??n,vy=Wt({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ce(ao),s=Re(()=>e.route||r.value),o=Ce(ea,0),i=Re(()=>{let f=ae(o);const{matched:c}=s.value;let u;for(;(u=c[f])&&!u.components;)f++;return f}),a=Re(()=>s.value.matched[i.value]);jt(ea,Re(()=>i.value+1)),jt(_g,a),jt(ao,s);const l=nt();return Rt(()=>[l.value,a.value,e.name],([f,c,u],[h,d,y])=>{c&&(c.instances[u]=f,d&&d!==c&&f&&f===h&&(c.leaveGuards.size||(c.leaveGuards=d.leaveGuards),c.updateGuards.size||(c.updateGuards=d.updateGuards))),f&&c&&(!d||!On(c,d)||!h)&&(c.enterCallbacks[u]||[]).forEach(m=>m(f))},{flush:"post"}),()=>{const f=s.value,c=e.name,u=a.value,h=u&&u.components[c];if(!h)return pa(n.default,{Component:h,route:f});const d=u.props[c],y=d?d===!0?f.params:typeof d=="function"?d(f):d:null,C=Oe(h,oe({},y,t,{onVnodeUnmounted:E=>{E.component.isUnmounted&&(u.instances[c]=null)},ref:l}));return pa(n.default,{Component:C,route:f})||C}}});function pa(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Jc=vy;function wy(e){const t=fy(e.routes,e),n=e.parseQuery||Jg,r=e.stringifyQuery||sa,s=e.history,o=Un(),i=Un(),a=Un(),l=Ut(qe);let f=qe;pn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=As.bind(null,x=>""+x),u=As.bind(null,Lg),h=As.bind(null,Kr);function d(x,K){let B,J;return Wc(x)?(B=t.getRecordMatcher(x),J=K):J=x,t.addRoute(J,B)}function y(x){const K=t.getRecordMatcher(x);K&&t.removeRoute(K)}function m(){return t.getRoutes().map(x=>x.record)}function C(x){return!!t.getRecordMatcher(x)}function E(x,K){if(K=oe({},K||l.value),typeof x=="string"){const b=xs(n,x,K.path),S=t.resolve({path:b.path},K),M=s.createHref(b.fullPath);return oe(b,S,{params:h(S.params),redirectedFrom:void 0,href:M})}let B;if(x.path!=null)B=oe({},x,{path:xs(n,x.path,K.path).path});else{const b=oe({},x.params);for(const S in b)b[S]==null&&delete b[S];B=oe({},x,{params:u(b)}),K.params=u(K.params)}const J=t.resolve(B,K),ee=x.hash||"";J.params=c(h(J.params));const ge=Hg(r,oe({},x,{hash:Og(ee),path:J.path})),g=s.createHref(ge);return oe({fullPath:ge,hash:ee,query:r===sa?Xg(x.query):x.query||{}},J,{redirectedFrom:void 0,href:g})}function v(x){return typeof x=="string"?xs(n,x,l.value.path):oe({},x)}function p(x,K){if(f!==x)return kn(8,{from:K,to:x})}function _(x){return A(x)}function w(x){return _(oe(v(x),{replace:!0}))}function k(x,K){const B=x.matched[x.matched.length-1];if(B&&B.redirect){const{redirect:J}=B;let ee=typeof J=="function"?J(x,K):J;return typeof ee=="string"&&(ee=ee.includes("?")||ee.includes("#")?ee=v(ee):{path:ee},ee.params={}),oe({query:x.query,hash:x.hash,params:ee.path!=null?{}:x.params},ee)}}function A(x,K){const B=f=E(x),J=l.value,ee=x.state,ge=x.force,g=x.replace===!0,b=k(B,J);if(b)return A(oe(v(b),{state:typeof b=="object"?oe({},ee,b.state):ee,force:ge,replace:g}),K||B);const S=B;S.redirectedFrom=K;let M;return!ge&&Ng(r,J,B)&&(M=kn(16,{to:S,from:J}),it(J,J,!0,!1)),(M?Promise.resolve(M):T(S,J)).catch(P=>bt(P)?bt(P,2)?P:Mt(P):V(P,S,J)).then(P=>{if(P){if(bt(P,2))return A(oe({replace:g},v(P.to),{state:typeof P.to=="object"?oe({},ee,P.to.state):ee,force:ge}),K||S)}else P=L(S,J,!0,g,ee);return H(S,J,P),P})}function D(x,K){const B=p(x,K);return B?Promise.reject(B):Promise.resolve()}function R(x){const K=cn.values().next().value;return K&&typeof K.runWithContext=="function"?K.runWithContext(x):x()}function T(x,K){let B;const[J,ee,ge]=Yg(x,K);B=ks(J.reverse(),"beforeRouteLeave",x,K);for(const b of J)b.leaveGuards.forEach(S=>{B.push(Ht(S,x,K))});const g=D.bind(null,x,K);return B.push(g),Ke(B).then(()=>{B=[];for(const b of o.list())B.push(Ht(b,x,K));return B.push(g),Ke(B)}).then(()=>{B=ks(ee,"beforeRouteUpdate",x,K);for(const b of ee)b.updateGuards.forEach(S=>{B.push(Ht(S,x,K))});return B.push(g),Ke(B)}).then(()=>{B=[];for(const b of ge)if(b.beforeEnter)if(st(b.beforeEnter))for(const S of b.beforeEnter)B.push(Ht(S,x,K));else B.push(Ht(b.beforeEnter,x,K));return B.push(g),Ke(B)}).then(()=>(x.matched.forEach(b=>b.enterCallbacks={}),B=ks(ge,"beforeRouteEnter",x,K,R),B.push(g),Ke(B))).then(()=>{B=[];for(const b of i.list())B.push(Ht(b,x,K));return B.push(g),Ke(B)}).catch(b=>bt(b,8)?b:Promise.reject(b))}function H(x,K,B){a.list().forEach(J=>R(()=>J(x,K,B)))}function L(x,K,B,J,ee){const ge=p(x,K);if(ge)return ge;const g=K===qe,b=pn?history.state:{};B&&(J||g?s.replace(x.fullPath,oe({scroll:g&&b&&b.scroll},ee)):s.push(x.fullPath,ee)),l.value=x,it(x,K,B,g),Mt()}let W;function Z(){W||(W=s.listen((x,K,B)=>{if(!qt.listening)return;const J=E(x),ee=k(J,qt.currentRoute.value);if(ee){A(oe(ee,{replace:!0,force:!0}),J).catch(er);return}f=J;const ge=l.value;pn&&qg(ra(ge.fullPath,B.delta),us()),T(J,ge).catch(g=>bt(g,12)?g:bt(g,2)?(A(oe(v(g.to),{force:!0}),J).then(b=>{bt(b,20)&&!B.delta&&B.type==="pop"&&s.go(-1,!1)}).catch(er),Promise.reject()):(B.delta&&s.go(-B.delta,!1),V(g,J,ge))).then(g=>{g=g||L(J,ge,!1),g&&(B.delta&&!bt(g,8)?s.go(-B.delta,!1):B.type==="pop"&&bt(g,20)&&s.go(-1,!1)),H(J,ge,g)}).catch(er)}))}let te=Un(),F=Un(),q;function V(x,K,B){Mt(x);const J=F.list();return J.length?J.forEach(ee=>ee(x,K,B)):console.error(x),Promise.reject(x)}function le(){return q&&l.value!==qe?Promise.resolve():new Promise((x,K)=>{te.add([x,K])})}function Mt(x){return q||(q=!x,Z(),te.list().forEach(([K,B])=>x?B(x):K()),te.reset()),x}function it(x,K,B,J){const{scrollBehavior:ee}=e;if(!pn||!ee)return Promise.resolve();const ge=!B&&zg(ra(x.fullPath,0))||(J||!B)&&history.state&&history.state.scroll||null;return xt().then(()=>ee(x,K,ge)).then(g=>g&&Wg(g)).catch(g=>V(g,x,K))}const De=x=>s.go(x);let ln;const cn=new Set,qt={currentRoute:l,listening:!0,addRoute:d,removeRoute:y,clearRoutes:t.clearRoutes,hasRoute:C,getRoutes:m,resolve:E,options:e,push:_,replace:w,go:De,back:()=>De(-1),forward:()=>De(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:F.add,isReady:le,install(x){x.component("RouterLink",my),x.component("RouterView",Jc),x.config.globalProperties.$router=qt,Object.defineProperty(x.config.globalProperties,"$route",{enumerable:!0,get:()=>ae(l)}),pn&&!ln&&l.value===qe&&(ln=!0,_(s.location).catch(J=>{}));const K={};for(const J in qe)Object.defineProperty(K,J,{get:()=>l.value[J],enumerable:!0});x.provide(Fo,qt),x.provide(Bo,Ze(K)),x.provide(ao,l);const B=x.unmount;cn.add(x),x.unmount=function(){cn.delete(x),cn.size<1&&(f=qe,W&&W(),W=null,l.value=qe,ln=!1,q=!1),B()}}};function Ke(x){return x.reduce((K,B)=>K.then(()=>R(B)),Promise.resolve())}return qt}const Ey=/(:\w+)\([^)]+\)/g,Sy=/(:\w+)[?+*]/g,Ty=/:\w+/g,Ry=(e,t)=>t.path.replace(Ey,"$1").replace(Sy,"$1").replace(Ty,n=>e.params[n.slice(1)]?.toString()||""),uo=(e,t)=>{const n=e.route.matched.find(s=>s.components?.default===e.Component.type),r=t??n?.meta.key??(n&&Ry(e.route,n));return typeof r=="function"?r(e.route):r},Cy=(e,t)=>({default:()=>e?Oe(ff,e===!0?{}:e,t):t});function Xc(e){return Array.isArray(e)?e:[e]}const Py="modulepreload",Ay=function(e,t){return new URL(e,t).href},ga={},we=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let f=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};const i=document.getElementsByTagName("link"),a=document.querySelector("meta[property=csp-nonce]"),l=a?.nonce||a?.getAttribute("nonce");s=f(n.map(c=>{if(c=Ay(c,r),c in ga)return;ga[c]=!0;const u=c.endsWith(".css"),h=u?'[rel="stylesheet"]':"";if(r)for(let y=i.length-1;y>=0;y--){const m=i[y];if(m.href===c&&(!u||m.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${h}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":Py,u||(d.as="script"),d.crossOrigin="",d.href=c,l&&d.setAttribute("nonce",l),document.head.appendChild(d),u)return new Promise((y,m)=>{d.addEventListener("load",y),d.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return s.then(i=>{for(const a of i||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})},xy={title:"后台账号"},ky={title:"应用注册"},Oy={title:"通话翻译配置"},My={title:"公码管理"},Iy={title:"数据概览"},Ly={title:"生产管理"},Dy={title:"厂家管理"},$y={title:"全局环境配置"},Hy={title:"MCP配置"},Ny={title:"会议模板"},jy={title:"产品管理"},Fy={title:"依赖服务配置"},By={title:"统计日志"},Uy={title:"用户查询"},Vy={layout:"auth"},Os=[{name:"accounts",path:"/accounts",meta:xy||{},component:()=>we(()=>import("./BMr4oSI7.js"),__vite__mapDeps([0,1,2,3]),import.meta.url)},{name:"apps",path:"/apps",meta:ky||{},component:()=>we(()=>import("./CACbmIlS.js"),__vite__mapDeps([4,1,2]),import.meta.url)},{name:"calltranslate",path:"/calltranslate",meta:Oy||{},component:()=>we(()=>import("./BbMitk9t.js"),__vite__mapDeps([5,1,2,6]),import.meta.url)},{name:"code",path:"/code",meta:My||{},component:()=>we(()=>import("./Dqy3UYuS.js"),__vite__mapDeps([7,1,2]),import.meta.url)},{name:"dashboard",path:"/dashboard",meta:Iy||{},component:()=>we(()=>import("./p0Tfj-xC.js"),__vite__mapDeps([8,1,9]),import.meta.url)},{name:"device",path:"/device",meta:Ly||{},component:()=>we(()=>import("./D6jD5keW.js"),__vite__mapDeps([10,1,2]),import.meta.url)},{name:"factory",path:"/factory",meta:Dy||{},component:()=>we(()=>import("./dltdoXck.js"),__vite__mapDeps([11,1,2]),import.meta.url)},{name:"globalconfig",path:"/globalconfig",meta:$y||{},component:()=>we(()=>import("./KP2C5FJ6.js"),__vite__mapDeps([12,1,2]),import.meta.url)},{name:"mcpconfig",path:"/mcpconfig",meta:Hy||{},component:()=>we(()=>import("./B3ns_poC.js"),__vite__mapDeps([13,1,2]),import.meta.url)},{name:"meettemplates",path:"/meettemplates",meta:Ny||{},component:()=>we(()=>import("./DGXiXcCA.js"),__vite__mapDeps([14,1,2]),import.meta.url)},{name:"product",path:"/product",meta:jy||{},component:()=>we(()=>import("./6n4fu-B8.js"),__vite__mapDeps([15,1,2]),import.meta.url)},{name:"serviceconfig",path:"/serviceconfig",meta:Fy||{},component:()=>we(()=>import("./BL6E8nSe.js"),__vite__mapDeps([16,1,2,17]),import.meta.url)},{name:"statlog",path:"/statlog",meta:By||{},component:()=>we(()=>import("./v5y5DMRc.js"),__vite__mapDeps([18,1,2,19]),import.meta.url)},{name:"users",path:"/users",meta:Uy||{},component:()=>we(()=>import("./Dw5yL0ut.js"),__vite__mapDeps([20,1,2]),import.meta.url)},{name:"index",path:"/",meta:Vy||{},component:()=>we(()=>import("./RqmPeXlN.js"),__vite__mapDeps([21,22]),import.meta.url)}],Yc=(e,t)=>({default:()=>e?Oe(fd,e===!0?{}:e,t):t.default?.()}),Ky=/(:\w+)\([^)]+\)/g,Wy=/(:\w+)[?+*]/g,qy=/:\w+/g;function ya(e){const t=e?.meta.key??e.path.replace(Ky,"$1").replace(Wy,"$1").replace(qy,n=>e.params[n.slice(1)]?.toString()||"");return typeof t=="function"?t(e):t}function zy(e,t){return e===t||t===qe?!1:ya(e)!==ya(t)?!0:!e.matched.every((r,s)=>r.components&&r.components.default===t.matched[s]?.components?.default)}function ma(e){return Array.isArray(e)?e:[e]}function Qc(e){const t=[];for(const n of e)n&&t.push({...n,onAfterLeave:n.onAfterLeave?ma(n.onAfterLeave):void 0,onBeforeLeave:n.onBeforeLeave?ma(n.onBeforeLeave):void 0});return _c(...t)}const Gy={scrollBehavior(e,t,n){const r=be(),s=Ve().options?.scrollBehaviorType??"auto";return e.path.replace(/\/$/,"")===t.path.replace(/\/$/,"")?t.hash&&!e.hash?{left:0,top:0}:e.hash?{el:e.hash,top:Zc(e.hash),behavior:s}:!1:(typeof e.meta.scrollToTop=="function"?e.meta.scrollToTop(e,t):e.meta.scrollToTop)===!1?!1:t===qe?_a(e,t,n,s):new Promise(i=>{const a=()=>{requestAnimationFrame(()=>i(_a(e,t,n,s)))};r.hooks.hookOnce("page:loading:end",()=>{const l=r["~transitionPromise"];l?l.then(a):a()})})}};function Zc(e){try{const t=document.querySelector(e);if(t)return(Number.parseFloat(getComputedStyle(t).scrollMarginTop)||0)+(Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop)||0)}catch{}return 0}function _a(e,t,n,r){return n||(e.hash?{el:e.hash,top:Zc(e.hash),behavior:zy(e,t)?r:"instant"}:{left:0,top:0})}const Jy={hashMode:!1,scrollBehaviorType:"auto"},Lt={...Jy,...Gy},Xy=async(e,t)=>{let n,r;if(!e.meta?.validate)return;const s=([n,r]=Qn(()=>Promise.resolve(e.meta.validate(e))),n=await n,r(),n);if(s===!0)return;const o=Ft({fatal:!0,status:s&&(s.status||s.statusCode)||404,statusText:s&&(s.statusText||s.statusMessage)||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}});return typeof window<"u"&&window.history.pushState({},"",t.fullPath),o},Yy=e=>{const t=Lc({path:e.path});if(t.redirect){const n=t.redirect.includes("#")?t.redirect:t.redirect+e.hash;return Dn(n,{acceptRelative:!0})?(window.location.href=n,!1):n}},Qy=[Xy,Yy],fo={};function Zy(e,t,n){const{pathname:r,search:s,hash:o}=t,i=e.indexOf("#");if(i>-1){const f=o.includes(e.slice(i))?e.slice(i).length:1;let c=o.slice(f);return c[0]!=="/"&&(c="/"+c),Li(c,"")}const a=Li(r,e),l=!n||cc(a,n)?a:n;return l+(l.includes("?")?"":s)+o}const em=Ye({name:"nuxt:router",enforce:"pre",async setup(e){let t,n,r=Ho().app.baseURL;const s=Lt.history?.(r)??ty(r),o=Lt.routes?([t,n]=Qn(()=>Lt.routes(Os)),t=await t,n(),t??Os):Os;let i;const a=wy({...Lt,scrollBehavior:(E,v,p)=>{if(v===qe){i=p;return}if(Lt.scrollBehavior){if(a.options.scrollBehavior=Lt.scrollBehavior,"scrollRestoration"in window.history){const _=a.beforeEach(()=>{_(),window.history.scrollRestoration="manual"})}return Lt.scrollBehavior(E,qe,i||p)}},history:s,routes:o});"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto"),e.vueApp.use(a);const l=Ut(a.currentRoute.value);a.afterEach((E,v)=>{l.value=v}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>l.value});const f=Zy(r,window.location,e.payload.path),c=Ut(a.currentRoute.value),u=()=>{c.value=a.currentRoute.value};a.afterEach((E,v)=>{const p=E.matched.at(-1)?.components?.default,_=v.matched.at(-1)?.components?.default;if(p===_){u();return}E.matched.lengthw.components?.default===v.matched[k]?.components?.default)&&u()});const h={sync:u};for(const E in c.value)Object.defineProperty(h,E,{get:()=>c.value[E],enumerable:!0});e._route=Ze(h),e._middleware||={global:[],named:{}};const d=cs();a.afterEach(async(E,v,p)=>{delete e._processingMiddleware,!e.isHydrating&&d.value&&await e.runWithContext(dp),p&&await e.callHook("page:loading:end")});try{[t,n]=Qn(()=>a.isReady()),await t,n()}catch(E){[t,n]=Qn(()=>e.runWithContext(()=>Zt(E))),await t,n()}const y=f!==a.currentRoute.value.fullPath?a.resolve(f):a.currentRoute.value,m=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&f!==e.payload.path&&cc(a.currentRoute.value.path,e.payload.path);u();const C=e.payload.state._layout;return a.beforeEach(async(E,v)=>{await e.callHook("page:loading:start"),E.meta=ot(E.meta),e.isHydrating&&C&&!yt(E.meta.layout)&&(E.meta.layout=C),e._processingMiddleware=!0;{const p=new Set([...Qy,...e._middleware.global]);for(const w of E.matched){const k=w.meta.middleware;if(k)for(const A of Xc(k))p.add(A)}const _=Lc({path:E.path});if(_.appMiddleware)for(const w in _.appMiddleware)_.appMiddleware[w]?p.add(w):p.delete(w);for(const w of p){const k=typeof w=="string"?e._middleware.named[w]||await fo[w]?.().then(A=>A.default||A):w;if(!k)throw new Error(`Unknown route middleware: '${w}'.`);try{const A=await e.runWithContext(()=>k(E,v));if(!e.payload.serverRendered&&e.isHydrating&&(A===!1||A instanceof Error)){const D=A||Ft({status:404,statusText:`Page Not Found: ${f}`});return await e.runWithContext(()=>Zt(D)),!1}if(A===!0)continue;if(A===!1)return A;if(A)return Ec(A)&&A.fatal&&await e.runWithContext(()=>Zt(A)),A}catch(A){const D=Ft(A);return D.fatal&&await e.runWithContext(()=>Zt(D)),D}}}}),a.onError(async()=>{delete e._processingMiddleware,await e.callHook("page:loading:end")}),a.afterEach(E=>{if(E.matched.length===0&&!d.value)return e.runWithContext(()=>Zt(Ft({status:404,fatal:!1,statusText:`Page not found: ${E.fullPath}`,data:{path:E.fullPath}})))}),e.hooks.hookOnce("app:created",async()=>{try{if("name"in y&&(y.name=void 0),m){const E=a.resolve(e.payload.path);"name"in E&&(E.name=void 0),await a.replace({...E,force:!0}),e.hooks.hookOnce("app:suspense:resolve",async()=>{await a.replace({...y,force:!0})})}else await a.replace({...y,force:!0});a.options.scrollBehavior=Lt.scrollBehavior}catch(E){await e.runWithContext(()=>Zt(E))}}),{provide:{router:a}}}}),ba=globalThis.requestIdleCallback||(e=>{const t=Date.now(),n={didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))};return setTimeout(()=>{e(n)},1)}),r_=globalThis.cancelIdleCallback||(e=>{clearTimeout(e)}),Vo=e=>{const t=be();t.isHydrating?t.hooks.hookOnce("app:suspense:resolve",()=>{ba(()=>e())}):ba(()=>e())},tm=Ye({name:"nuxt:payload",setup(e){const t=new Set;Ve().beforeResolve(async(n,r)=>{if(n.path===r.path)return;const s=await Yi(n.path);if(s){for(const o of t)delete e.static.data[o];for(const o in s.data)o in e.static.data||t.add(o),e.static.data[o]=s.data[o]}}),Vo(()=>{e.hooks.hook("link:prefetch",async n=>{const{hostname:r}=new URL(n,window.location.href);r===window.location.hostname&&await Yi().catch(()=>{console.warn("[nuxt] Error preloading payload for",n)})}),navigator.connection?.effectiveType!=="slow-2g"&&setTimeout(Ic,1e3)})}}),nm=Ye(()=>{const e=Ve();Vo(()=>{e.beforeResolve(async()=>{await new Promise(t=>{setTimeout(t,100),requestAnimationFrame(()=>{setTimeout(t,0)})})})})}),rm=Ye(e=>{let t;async function n(){let r;try{r=await Ic()}catch(s){const o=s;if(!("status"in o&&(o.status===404||o.status===403)))throw o}t&&clearTimeout(t),t=setTimeout(n,Ui);try{const s=await $fetch($o("builds/latest.json")+`?${Date.now()}`);s.id!==r?.id&&(e.hooks.callHook("app:manifest:update",s),t&&clearTimeout(t))}catch{}}Vo(()=>{t=setTimeout(n,Ui)})});function sm(e={}){const t=e.path||window.location.pathname,n=new URL(t,window.location.href);if(n.host!==window.location.host)throw new Error(`Cannot navigate to a URL with a different host: '${t}'.`);if(n.protocol&&Xs(n.protocol))throw new Error(`Cannot navigate to a URL with '${n.protocol}' protocol.`);let r={};try{r=JSON.parse(sessionStorage.getItem("nuxt:reload")||"{}")}catch{}if(e.force||r?.path!==t||r?.expires{r.clear()}),e.hook("app:chunkError",({error:o})=>{r.add(o)});function s(o){const i=ac(n.app.baseURL,o.fullPath);sm({path:i,persistState:!0})}e.hook("app:manifest:update",()=>{t.beforeResolve(s)}),t.onError((o,i)=>{r.has(o)&&s(i)})}});function im(e){return typeof e=="string"?`'${e}'`:new am().serialize(e)}const am=(function(){class e{#e=new Map;compare(n,r){const s=typeof n,o=typeof r;return s==="string"&&o==="string"?n.localeCompare(r):s==="number"&&o==="number"?n-r:String.prototype.localeCompare.call(this.serialize(n,!0),this.serialize(r,!0))}serialize(n,r){if(n===null)return"null";switch(typeof n){case"string":return r?n:`'${n}'`;case"bigint":return`${n}n`;case"object":return this.$object(n);case"function":return this.$function(n)}return String(n)}serializeObject(n){const r=Object.prototype.toString.call(n);if(r!=="[object Object]")return this.serializeBuiltInType(r.length<10?`unknown:${r}`:r.slice(8,-1),n);const s=n.constructor,o=s===Object||s===void 0?"":s.name;if(o!==""&&globalThis[o]===s)return this.serializeBuiltInType(o,n);if(typeof n.toJSON=="function"){const i=n.toJSON();return o+(i!==null&&typeof i=="object"?this.$object(i):`(${this.serialize(i)})`)}return this.serializeObjectEntries(o,Object.entries(n))}serializeBuiltInType(n,r){const s=this["$"+n];if(s)return s.call(this,r);if(typeof r?.entries=="function")return this.serializeObjectEntries(n,r.entries());throw new Error(`Cannot serialize ${n}`)}serializeObjectEntries(n,r){const s=Array.from(r).sort((i,a)=>this.compare(i[0],a[0]));let o=`${n}{`;for(let i=0;ithis.compare(r,s)))}`}$Map(n){return this.serializeObjectEntries("Map",n.entries())}}for(const t of["Error","RegExp","URL"])e.prototype["$"+t]=function(n){return`${t}(${n})`};for(const t of["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"])e.prototype["$"+t]=function(n){return`${t}[${n.join(",")}]`};for(const t of["BigInt64Array","BigUint64Array"])e.prototype["$"+t]=function(n){return`${t}[${n.join("n,")}${n.length>0?"n":""}]`};return e})(),lm=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],cm=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],um="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",Yt=[];class fm{_data=new mn;_hash=new mn([...lm]);_nDataBytes=0;_minBufferSize=0;finalize(t){t&&this._append(t);const n=this._nDataBytes*8,r=this._data.sigBytes*8;return this._data.words[r>>>5]|=128<<24-r%32,this._data.words[(r+64>>>9<<4)+14]=Math.floor(n/4294967296),this._data.words[(r+64>>>9<<4)+15]=n,this._data.sigBytes=this._data.words.length*4,this._process(),this._hash}_doProcessBlock(t,n){const r=this._hash.words;let s=r[0],o=r[1],i=r[2],a=r[3],l=r[4],f=r[5],c=r[6],u=r[7];for(let h=0;h<64;h++){if(h<16)Yt[h]=t[n+h]|0;else{const p=Yt[h-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,w=Yt[h-2],k=(w<<15|w>>>17)^(w<<13|w>>>19)^w>>>10;Yt[h]=_+Yt[h-7]+k+Yt[h-16]}const d=l&f^~l&c,y=s&o^s&i^o&i,m=(s<<30|s>>>2)^(s<<19|s>>>13)^(s<<10|s>>>22),C=(l<<26|l>>>6)^(l<<21|l>>>11)^(l<<7|l>>>25),E=u+C+d+cm[h]+Yt[h],v=m+y;u=c,c=f,f=l,l=a+E|0,a=i,i=o,o=s,s=E+v|0}r[0]=r[0]+s|0,r[1]=r[1]+o|0,r[2]=r[2]+i|0,r[3]=r[3]+a|0,r[4]=r[4]+l|0,r[5]=r[5]+f|0,r[6]=r[6]+c|0,r[7]=r[7]+u|0}_append(t){typeof t=="string"&&(t=mn.fromUtf8(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes}_process(t){let n,r=this._data.sigBytes/64;t?r=Math.ceil(r):r=Math.max((r|0)-this._minBufferSize,0);const s=r*16,o=Math.min(s*4,this._data.sigBytes);if(s){for(let i=0;i>>2]|=(n.charCodeAt(o)&255)<<24-o%4*8;return new mn(s,r)}toBase64(){const t=[];for(let n=0;n>>2]>>>24-n%4*8&255,s=this.words[n+1>>>2]>>>24-(n+1)%4*8&255,o=this.words[n+2>>>2]>>>24-(n+2)%4*8&255,i=r<<16|s<<8|o;for(let a=0;a<4&&n*8+a*6>>6*(3-a)&63))}return t.join("")}concat(t){if(this.words[this.sigBytes>>>2]&=4294967295<<32-this.sigBytes%4*8,this.words.length=Math.ceil(this.sigBytes/4),this.sigBytes%4)for(let n=0;n>>2]>>>24-n%4*8&255;this.words[this.sigBytes+n>>>2]|=r<<24-(this.sigBytes+n)%4*8}else for(let n=0;n>>2]=t.words[n>>>2];this.sigBytes+=t.sigBytes}}function dm(e){return new fm().finalize(e).toBase64()}function gn(e){return dm(im(e))}const hm=Symbol.for("nuxt:client-only");function eu(e){return Object.defineProperty(function(){throw new Error(`[nuxt] \`${e.name}\` is a compiler macro and cannot be called at runtime.`)},"__nuxt_factory",{enumerable:!1,get:()=>e.factory})}const tu=eu({name:"createUseAsyncData",factory(e={}){function t(...n){const r=typeof n[n.length-1]=="string"?n.pop():void 0;gm(n[0],n[1])&&n.unshift(r);let[s,o,i={}]=n,a=!1;const l=pe(s)||typeof s=="function",f=l?Re(()=>ft(s)):{value:s};if(!f.value||typeof f.value!="string")throw new TypeError("[nuxt] [useAsyncData] key must be a non-empty string.");if(typeof o!="function")throw new TypeError("[nuxt] [useAsyncData] handler must be a function.");const c=typeof e=="function",u=be(),h=c?e(i):e;if(!c)for(const p in h)h[p]!==void 0&&i[p]===void 0&&(i[p]=h[p]);if(i.server??=!0,i.default??=mm,i.getCachedData??=ru,i.lazy??=!1,i.immediate??=!0,i.deep??=zh.deep,i.dedupe??="cancel",c)for(const p in h)h[p]!==void 0&&(i[p]=h[p]);u._asyncData[f.value];function d(){const p={cause:"initial",dedupe:i.dedupe},_=u._asyncData[f.value];return _?._init?u._asyncDataPromises[f.value]&&(p.cachedData=_._initialCachedData):(p.cachedData=i.getCachedData(f.value,u,{cause:"initial"}),u._asyncData[f.value]=va(u,f.value,o,i,p.cachedData),u._asyncData[f.value]._initialCachedData=p.cachedData),()=>u._asyncData[f.value].execute(p)}const y=d(),m=u._asyncData[f.value];m._deps++;const C=i.server!==!1&&u.payload.serverRendered;{let p=function(T){const H=u._asyncData[T];H?._deps&&(H._deps--,H._deps===0&&H?._off())};const _=an();if(_&&C&&i.immediate&&!_.sp&&(_.sp=[]),_&&!_._nuxtOnBeforeMountCbs){_._nuxtOnBeforeMountCbs=[];const T=_._nuxtOnBeforeMountCbs;dl(()=>{T.forEach(H=>{H()}),T.splice(0,T.length)}),ss(()=>T.splice(0,T.length))}const w=_&&(_._nuxtClientOnly||Ce(hm,!1));C&&u.isHydrating&&(m.error.value||m.data.value!==void 0)?m.status.value=m.error.value?"error":"success":_&&(!w&&u.payload.serverRendered&&u.isHydrating||i.lazy)&&i.immediate?_._nuxtOnBeforeMountCbs.push(y):i.immediate&&m.status.value!=="success"&&y();const k=Zr(),A=()=>{},D=l?Rt(f,(T,H)=>{if((T||H)&&T!==H){a=!0;const L=u._asyncData[H]?.data.value!==void 0,W=u._asyncDataPromises[H]!==void 0,Z={cause:"initial",dedupe:i.dedupe};if(!u._asyncData[T]?._init){let F;H&&L?F=u._asyncData[H].data.value:(F=i.getCachedData(T,u,{cause:"initial"}),Z.cachedData=F),u._asyncData[T]=va(u,T,o,i,F)}u._asyncData[T]._deps++,H&&p(H),i._keyTriggersExecute!==!1&&(i.immediate||L||W)&&u._asyncData[T].execute(Z),rr(()=>{a=!1})}},{flush:"sync"}):A,R=i.watch?Rt(i.watch,()=>{a||(u._asyncData[f.value]?._execute.isPending()&&rr(()=>{u._asyncData[f.value]?._execute.flush()}),u._asyncData[f.value]?._execute({cause:"watch",dedupe:i.dedupe}))}):A;k&&Ia(()=>{D(),R(),p(f.value)})}const E={data:Sr(()=>u._asyncData[f.value]?.data),pending:Sr(()=>u._asyncData[f.value]?.pending),status:Sr(()=>u._asyncData[f.value]?.status),error:Sr(()=>u._asyncData[f.value]?.error),refresh:(...p)=>u._asyncData[f.value]?._init?u._asyncData[f.value].execute(...p):d()(),execute:(...p)=>E.refresh(...p),clear:()=>{const p=u._asyncData[f.value];if(p?._abortController)try{p._abortController.abort(new DOMException("AsyncData aborted by user.","AbortError"))}finally{p._abortController=void 0}nu(u,f.value)}},v=Promise.resolve(u._asyncDataPromises[f.value]).then(()=>E);return Object.assign(v,E),Object.defineProperties(v,{then:{enumerable:!0,value:v.then.bind(v)},catch:{enumerable:!0,value:v.catch.bind(v)},finally:{enumerable:!0,value:v.finally.bind(v)}}),v}return t}}),pm=tu.__nuxt_factory();tu.__nuxt_factory({lazy:!0,_functionName:"useLazyAsyncData"});function Sr(e){return Re({get(){return e()?.value},set(t){const n=e();n&&(n.value=t)}})}function gm(e,t){return!(typeof e=="string"||typeof e=="object"&&e!==null||typeof e=="function"&&typeof t=="function")}function nu(e,t){t in e.payload.data&&(e.payload.data[t]=void 0),t in e.payload._errors&&(e.payload._errors[t]=void 0),e._asyncData[t]&&(e._asyncData[t].data.value=ae(e._asyncData[t]._default()),e._asyncData[t].error.value=void 0,e._asyncData[t].status.value="idle",e._asyncData[t]._initialCachedData=void 0),t in e._asyncDataPromises&&(e._asyncDataPromises[t]=void 0)}function ym(e,t){const n={};for(const r of t)n[r]=e[r];return n}function va(e,t,n,r,s){e.payload._errors[t]??=void 0;const o=r.getCachedData!==ru,i=n,a=r.deep?nt:Ut,l=s!==void 0,f=e.hook("app:data:refresh",async u=>{(!u||u.includes(t))&&await c.execute({cause:"refresh:hook"})}),c={data:a(l?s:r.default()),pending:Re(()=>c.status.value==="pending"),error:Xa(e.payload._errors,t),status:Ut("idle"),execute:(...u)=>{const[h,d=void 0]=u,y=h&&d===void 0&&typeof h=="object"?h:{};if(e._asyncDataPromises[t]&&(y.dedupe??r.dedupe)==="defer")return e._asyncDataPromises[t];{const E="cachedData"in y?y.cachedData:r.getCachedData(t,e,{cause:y.cause??"refresh:manual"});if(E!==void 0)return e.payload.data[t]=c.data.value=E,c.error.value=void 0,c.status.value="success",Promise.resolve(E)}c._abortController&&c._abortController.abort(new DOMException("AsyncData request cancelled by deduplication","AbortError")),c._abortController=new AbortController,c.status.value="pending";const m=new AbortController,C=new Promise((E,v)=>{try{const p=y.timeout??r.timeout,_=_m([c._abortController?.signal,y?.signal],m.signal,p);if(_.aborted){const w=_.reason;v(w instanceof Error?w:new DOMException(String(w??"Aborted"),"AbortError"));return}return _.addEventListener("abort",()=>{const w=_.reason;v(w instanceof Error?w:new DOMException(String(w??"Aborted"),"AbortError"))},{once:!0,signal:m.signal}),Promise.resolve(i(e,{signal:_})).then(E,v)}catch(p){v(p)}}).then(async E=>{if(e._asyncDataPromises[t]!==C)return;let v=E;r.transform&&(v=await r.transform(E)),r.pick&&(v=ym(v,r.pick)),e.payload.data[t]=v,c.data.value=v,c.error.value=void 0,c.status.value="success"}).catch(E=>{if(e._asyncDataPromises[t]!==C||c._abortController?.signal.aborted)return e._asyncDataPromises[t];if(typeof DOMException<"u"&&E instanceof DOMException&&E.name==="AbortError")return c.status.value="idle",e._asyncDataPromises[t];c.error.value=Ft(E),c.data.value=ae(r.default()),c.status.value="error"}).finally(()=>{m.abort(),e._asyncDataPromises[t]===C&&delete e._asyncDataPromises[t]});return e._asyncDataPromises[t]=C,e._asyncDataPromises[t]},_execute:vg((...u)=>c.execute(...u),0,{leading:!0}),_default:r.default,_deps:0,_init:!0,_hash:void 0,_off:()=>{f(),e._asyncData[t]?._init&&(e._asyncData[t]._init=!1),o||xt(()=>{e._asyncData[t]?._init||(nu(e,t),c.execute=()=>Promise.resolve())})}};return c}const mm=()=>{},ru=(e,t,n)=>{if(t.isHydrating)return t.payload.data[e];if(n.cause!=="refresh:manual"&&n.cause!=="refresh:hook")return t.static.data[e]};function _m(e,t,n){const r=e.filter(i=>!!i);if(typeof n=="number"&&n>=0){const i=AbortSignal.timeout?.(n);i&&r.push(i)}if(AbortSignal.any)return AbortSignal.any(r);const s=new AbortController;for(const i of r)if(i.aborted){const a=i.reason??new DOMException("Aborted","AbortError");try{s.abort(a)}catch{s.abort()}return s.signal}const o=()=>{const a=r.find(l=>l.aborted)?.reason??new DOMException("Aborted","AbortError");try{s.abort(a)}catch{s.abort()}};for(const i of r)i.addEventListener?.("abort",o,{once:!0,signal:t});return s.signal}function bm(e){const t=[ft(e.method)?.toUpperCase()||"GET",ft(e.baseURL)];for(const n of[e.query||e.params]){const r=ft(n);if(!r)continue;const s={};for(const[o,i]of Object.entries(r))s[ft(o)]=ft(i);t.push(s)}if(e.body){const n=ft(e.body);if(!n)t.push(gn(n));else if(n instanceof ArrayBuffer)t.push(gn(Object.fromEntries([...new Uint8Array(n).entries()].map(([r,s])=>[r,s.toString()]))));else if(n instanceof FormData){const r=[];for(const s of n.entries()){const[o,i]=s;r.push([o,i instanceof File?`${i.name}:${i.size}:${i.lastModified}`:i])}t.push(gn(r))}else if(go(n))t.push(gn(ot(n)));else try{t.push(gn(n))}catch{console.warn("[useFetch] Failed to hash body",n)}}return t}const su=eu({name:"createUseFetch",factory(e={}){function t(n,r,s){const[o={},i]=typeof r=="string"?[{},r]:[r,s],a=typeof e=="function"?e(o):e,{server:l,lazy:f,default:c,transform:u,pick:h,watch:d,immediate:y,getCachedData:m,deep:C,dedupe:E,timeout:v,...p}={...typeof e=="function"?{}:a,...o,...typeof e=="function"?a:{}},_=Re(()=>ft(n)),w=Re(()=>ft(p.key)||"$f"+gn([i,typeof _.value=="string"?_.value:"",...bm(p)]));if(!p.baseURL&&typeof _.value=="string"&&_.value[0]==="/"&&_.value[1]==="/")throw new Error('[nuxt] [useFetch] the request URL must not start with "//".');const k=ot({...Gh,...p,cache:typeof p.cache=="boolean"?void 0:p.cache}),A={server:l,lazy:f,default:c,transform:u,pick:h,immediate:y,getCachedData:m,deep:C,dedupe:E,timeout:v,watch:d===!1?[]:[...d||[],k]};return d===!1&&(A._keyTriggersExecute=!1),pm(w,(R,{signal:T})=>(p.$fetch||globalThis.$fetch)(_.value,{signal:T,...k}),A)}return t}});su.__nuxt_factory();su.__nuxt_factory({lazy:!0,_functionName:"useLazyFetch"});function vm(e){if(e?.__asyncLoader&&!e.__asyncResolved)return e.__asyncLoader()}async function wm(e,t=Ve()){const{path:n,matched:r}=t.resolve(e);if(!r.length||(t._routePreloaded||=new Set,t._routePreloaded.has(n)))return;const s=t._preloadPromises||=[];if(s.length>4)return Promise.all(s).then(()=>wm(e,t));t._routePreloaded.add(n);for(const o of r){const i=o.components?.default;if(typeof i!="function")continue;const a=Promise.resolve(i()).catch(()=>{}).finally(()=>s.splice(s.indexOf(a),1));s.push(a)}await Promise.all(s)}const Em=Ye({name:"pinia",setup(e){const t=hp();return e.vueApp.use(t),xn(t),e.payload&&e.payload.pinia&&(t.state.value=e.payload.pinia),{provide:{pinia:t}}},hooks:{"app:rendered"(){const e=be();e.payload.pinia=ne(e.$pinia).state.value,xn(void 0)}}}),Sm=Ye({name:"nuxt:global-components"}),Nt={auth:Ir(()=>we(()=>import("./DrdHHbY3.js"),[],import.meta.url).then(e=>e.default||e)),default:Ir(()=>we(()=>import("./DN5T-G_F.js"),__vite__mapDeps([23,24,2]),import.meta.url).then(e=>e.default||e))},Tm=Ye({name:"nuxt:prefetch",setup(e){const t=Ve();e.hooks.hook("app:mounted",()=>{t.beforeEach(async n=>{const r=n?.meta?.layout;r&&typeof Nt[r]=="function"&&await Nt[r]()})}),e.hooks.hook("link:prefetch",n=>{if(Dn(n))return;const r=t.resolve(n);if(!r)return;const s=r.meta.layout;let o=Xc(r.meta.middleware);o=o.filter(i=>typeof i=="string");for(const i of o)typeof fo[i]=="function"&&fo[i]();typeof s=="string"&&s in Nt&&vm(Nt[s])})}}),Rm={1:"超管",2:"管理员",3:"代理",4:"运营"},Ko="auth_state";function Tr(e){return e?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function Ms(e){localStorage.setItem(Ko,JSON.stringify(e))}function Cm(){try{const e=localStorage.getItem(Ko);return e?JSON.parse(e):null}catch{return null}}const Pm=bp("auth",{state:()=>({token:"",account:"",identity:0,access:[],apps:[],regions:[],products:[],appbinds:[],currentAppId:0,siteTitle:""}),getters:{isSuperAdmin(){return this.identity===1},isAdmin(){return this.identity===1||this.identity===2},identityLabel(){return Rm[this.identity]??""},isLoggedIn(){return!!this.token}},actions:{setLoginData(e){this.token=e.token,this.account=e.account,this.identity=e.identity,this.access=Tr(e.access),this.apps=Tr(e.apps),this.regions=Tr(e.regions),this.products=Tr(e.products),this.appbinds=e.appbinds??[],this.appbinds.length>0&&!this.currentAppId&&(this.currentAppId=this.appbinds[0].id),Ms({token:this.token,account:this.account,identity:this.identity,access:this.access,apps:this.apps,regions:this.regions,products:this.products,appbinds:this.appbinds,currentAppId:this.currentAppId,siteTitle:this.siteTitle})},setCurrentApp(e){this.currentAppId=e,Ms({token:this.token,account:this.account,identity:this.identity,access:this.access,apps:this.apps,regions:this.regions,products:this.products,appbinds:this.appbinds,currentAppId:this.currentAppId,siteTitle:this.siteTitle})},setSiteTitle(e){this.siteTitle=e,Ms({token:this.token,account:this.account,identity:this.identity,access:this.access,apps:this.apps,regions:this.regions,products:this.products,appbinds:this.appbinds,currentAppId:this.currentAppId,siteTitle:this.siteTitle})},logout(){this.token="",this.account="",this.identity=0,this.access=[],this.apps=[],this.regions=[],this.products=[],this.appbinds=[],this.currentAppId=0,this.siteTitle="",localStorage.removeItem(Ko)},restore(){const e=Cm();e&&(this.token=e.token??"",this.account=e.account??"",this.identity=e.identity??0,this.access=e.access??[],this.apps=e.apps??[],this.regions=e.regions??[],this.products=e.products??[],this.appbinds=e.appbinds??[],this.currentAppId=e.currentAppId??0,this.siteTitle=e.siteTitle??"")},hasAccess(e){return this.identity===1?!0:this.access.includes(e)}}}),Am=Ye(()=>{Pm().restore()}),xm=[cg,fg,yg,em,tm,nm,rm,om,Em,Sm,Tm,Am],ou=(e="RouteProvider")=>Wt({name:e,props:{route:{type:Object,required:!0},vnode:Object,vnodeRef:Object,renderKey:String,trackRootNodes:Boolean},setup(t){const n=t.renderKey,r=t.route,s={};for(const o in t.route)Object.defineProperty(s,o,{get:()=>n===t.renderKey?t.route[o]:r[o],enumerable:!0});return jt(on,Ze(s)),()=>t.vnode?Oe(t.vnode,{ref:t.vnodeRef}):t.vnode}}),km=ou(),wa=new WeakMap,Om=Wt({name:"NuxtPage",inheritAttrs:!1,props:{name:{type:String},transition:{type:[Boolean,Object],default:void 0},keepalive:{type:[Boolean,Object],default:void 0},route:{type:Object},pageKey:{type:[Function,String],default:null}},setup(e,{attrs:t,slots:n,expose:r}){const s=be(),o=nt(),i=Ce(on,null);let a;r({pageRef:o});const l=Ce(vc,null);let f;const c=s.deferHydration();let u=!1,h=!1,d=0;if(s.isHydrating){const m=s.hooks.hookOnce("app:error",c),C=Ve().beforeEach(()=>{m(),C()})}e.pageKey&&Rt(()=>e.pageKey,(m,C)=>{m!==C&&s.callHook("page:loading:start")});let y=!1;{const m=Ve().beforeResolve(()=>{y=!1});fr(()=>{m(),c()})}return()=>Oe(Jc,{name:e.name,route:e.route,...t},{default:m=>{const C=Mm(i,m.route,m.Component),E=i&&i.matched.length===m.route.matched.length;if(!m.Component){if(f&&!E&&!Is(f))return f;c();return}if(f&&l&&!Is(f)&&!l.isCurrent(m.route))return f;if(C&&i&&(!l||l?.isCurrent(i)))return(E||f)&&!Is(f)?f:null;const v=uo(m,e.pageKey),p=Im(i,m.route,m.Component);!s.isHydrating&&a===v&&!p&&xt(()=>{y||(y=!0,s.callHook("page:loading:end"))}),u&&a!==v&&h&&d++,a=v;const _=!!(e.transition??m.route.meta.pageTransition??Fi),w=_&&Qc([e.transition,m.route.meta.pageTransition,Fi,{onAfterLeave(){s["~transitionFinish"]?.(),delete s["~transitionFinish"],delete s["~transitionPromise"],s.callHook("page:transition:finish",m.Component)}}]),k=e.keepalive??m.route.meta.keepalive??qh;return f=Yc(_&&w,Cy(k,Oe(Mo,{key:d,suspensible:!0,onPending:()=>{u=!0,_&&!s["~transitionPromise"]&&(s["~transitionPromise"]=new Promise(A=>{s["~transitionFinish"]=A})),s.callHook("page:start",m.Component)},onResolve:async()=>{u=!1,h=!0;try{await xt(),s._route.sync?.(),await s.callHook("page:finish",m.Component),!y&&!p&&(y=!0,await s.callHook("page:loading:end"))}finally{c()}}},{default:()=>{const A={key:v||void 0,vnode:n.default?Lm(n.default,m):m.Component,route:m.route,renderKey:v||void 0,trackRootNodes:_,vnodeRef:o};if(!k)return Oe(km,A);const D=m.Component.type,R=D;let T=wa.get(R);return T||(T=ou(D.name||D.__name),wa.set(R,T)),Oe(T,A)}}))).default(),f}})}});function Mm(e,t,n){if(!e)return!1;const r=t.matched.findIndex(i=>i.components?.default===n?.type);if(r===-1)return!1;const s=t.matched.slice(0,r).filter(i=>i.components?.default);if(!s.length)return!1;const o=e.matched.filter(i=>i.components?.default);return s.some((i,a)=>i.components?.default!==o[a]?.components?.default)||n&&uo({route:t,Component:n})!==uo({route:e,Component:n})}function Im(e,t,n){return e?t.matched.findIndex(s=>s.components?.default===n?.type)Oe(Nt[e.name],e.layoutProps,t.slots)}}),$m={name:{type:[String,Boolean,Object],default:null},fallback:{type:[String,Object],default:null}},Hm=Wt({name:"NuxtLayout",inheritAttrs:!1,props:$m,setup(e,t){const n=be(),r=Ce(on),o=!r||r===No()?Nc():r,i=Re(()=>{let c=ae(e.name)??o?.meta.layout??iu(o?.path).appLayout??"default";return c&&!(c in Nt)&&e.fallback&&(c=ae(e.fallback)),c}),a=Ut();t.expose({layoutRef:a});const l=n.deferHydration();if(n.isHydrating){const c=n.hooks.hookOnce("app:error",l),u=Ve().beforeEach(()=>{c(),u()})}let f;return()=>{const u=!!i.value&&i.value in Nt&&!!(o?.meta.layoutTransition??ji),h=u&&Qc([o?.meta.layoutTransition,ji,{onBeforeLeave(){n["~transitionPromise"]=new Promise(y=>{n["~transitionFinish"]=y})},onAfterLeave(){n["~transitionFinish"]?.(),delete n["~transitionFinish"],delete n["~transitionPromise"]}}]),d=f;return f=i.value,Yc(h,{default:()=>Oe(Mo,{suspensible:!0,onResolve:async()=>{await xt(l)}},{default:()=>Oe(Nm,{layoutProps:Wl(t.attrs,o.meta.layoutProps??{},{ref:a}),key:i.value||void 0,name:i.value,shouldProvide:!e.name,isRenderingNewLayout:y=>y!==d&&y===i.value,hasTransition:u},t.slots)})}).default()}}}),Nm=Wt({name:"NuxtLayoutProvider",inheritAttrs:!1,props:{name:{type:[String,Boolean]},layoutProps:{type:Object},hasTransition:{type:Boolean},shouldProvide:{type:Boolean},isRenderingNewLayout:{type:Function,required:!0}},setup(e,t){const n=e.name;e.shouldProvide&&jt(vc,{isCurrent:o=>n===!1||n===(o.meta.layout??iu(o.path).appLayout??"default")});const r=Ce(on);if(r&&r===No()){const o=Nc(),i={};for(const a in o){const l=a;Object.defineProperty(i,l,{enumerable:!0,get:()=>e.isRenderingNewLayout(e.name)?o[l]:r[l]})}jt(on,Ze(i))}return()=>!n||typeof n=="string"&&!(n in Nt)?t.slots.default?.():Oe(Dm,{key:n,layoutProps:e.layoutProps,name:n},t.slots)}}),jm=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Fm={};function Bm(e,t){const n=Om,r=Hm;return Ge(),ht(r,null,{default:Co(()=>[ye(n)]),_:1})}const Um=jm(Fm,[["render",Bm]]),Vm={__name:"nuxt-error-page",props:{error:Object},setup(e){const n=e.error,r=Number(n.statusCode||500),s=r===404,o=n.statusMessage??(s?"Page Not Found":"Internal Server Error"),i=n.message||n.toString(),a=void 0,c=s?Ir(()=>we(()=>import("./BlypHpHg.js"),__vite__mapDeps([25,24,26,27]),import.meta.url)):Ir(()=>we(()=>import("./BbBrUj30.js"),__vite__mapDeps([28,26,29]),import.meta.url));return(u,h)=>(Ge(),ht(ae(c),yu(Vl({status:ae(r),statusText:ae(o),statusCode:ae(r),statusMessage:ae(o),description:ae(i),stack:ae(a)})),null,16))}},Km={key:0},Ea={__name:"nuxt-root",setup(e){const t=()=>null,n=be(),r=n.deferHydration();if(n.isHydrating){const c=n.hooks.hookOnce("app:error",r),u=Ve().beforeEach(()=>{c(),u()})}const s=!1;jt(on,No()),n.hooks.callHookWith(c=>c.map(u=>u()),"vue:setup",[]);const o=cs(),i=!1,a=/bot\b|chrome-lighthouse|facebookexternalhit|google\b/i;function l(c,u,h){const d=n.vueApp.config.errorHandler;if(d&&!d.__nuxt_default)try{d(c,u,h)}catch(y){console.error("[nuxt] Error in `app.config.errorHandler`",y)}}pl((c,u,h)=>{if(n.hooks.callHook("vue:error",c,u,h)?.catch(d=>console.error("[nuxt] Error in `vue:error` hook",d)),a.test(navigator.userAgent))return n.hooks.callHook("app:error",c),console.error(`[nuxt] Not rendering error page for bot with user agent \`${navigator.userAgent}\`:`,c),!1;if(Ec(c)&&(c.fatal||c.unhandled))return n.runWithContext(()=>Zt(c)),l(c,u,h),!1});const f=!1;return(c,u)=>(Ge(),ht(Mo,{onResolve:ae(r)},{default:Co(()=>[ae(i)?(Ge(),Gf("div",Km)):ae(o)?(Ge(),ht(ae(Vm),{key:1,error:ae(o)},null,8,["error"])):ae(f)?(Ge(),ht(ae(t),{key:2,context:ae(f)},null,8,["context"])):ae(s)?(Ge(),ht(mf(ae(s)),{key:3})):(Ge(),ht(ae(Um),{key:4}))]),_:1},8,["onResolve"]))}};let Sa;{let e;Sa=async function(){if(e)return e;const n=!!(window.__NUXT__?.serverRendered??document.getElementById("__NUXT_DATA__")?.dataset.ssr==="true"),r=n?Ud(Ea):Bd(Ea),s=Qh({vueApp:r});async function o(i){await s.callHook("app:error",i),s.payload.error||=Ft(i)}o.__nuxt_default=!0,r.config.errorHandler=o,s.hook("app:suspense:resolve",()=>{r.config.errorHandler===o&&(r.config.errorHandler=void 0)}),!n&&Bi.id&&s.hook("app:suspense:resolve",()=>{document.getElementById(Bi.id)?.remove()});try{await tp(s,xm)}catch(i){o(i)}try{await s.hooks.callHook("app:created",r),await s.hooks.callHook("app:beforeMount",r),r.mount(Jh),await s.hooks.callHook("app:mounted",r),await xt()}catch(i){o(i)}return r},e=Sa().catch(t=>{throw console.error("Error while mounting app:",t),t})}export{Ho as $,Qm as A,Jm as B,Re as C,Yr as D,Zm as E,ke as F,Ym as G,fr as H,Gm as I,ae as J,No as K,ht as L,Vo as M,ba as N,r_ as O,Oe as P,qm as Q,sc as R,fp as S,Ut as T,up as U,wm as V,t_ as W,ac as X,Dn as Y,Xs as Z,jm as _,Ul as a,yh as a0,Fr as a1,e_ as a2,Xa as a3,pe as a4,ye as b,Gf as c,Kl as d,be as e,Oc as f,Wt as g,ns as h,Ce as i,xo as j,Wm as k,Xf as l,ki as m,Qr as n,Ge as o,Ld as p,Md as q,zm as r,nt as s,vu as t,n_ as u,Xm as v,Co as w,ot as x,Pm as y,Ve as z}; +`)&&(yr(p,0)||fn(),p.textContent=_.children)}if(T){if(te||!D||H&48){const V=p.tagName.includes("-");for(const le in T)(te&&(le.endsWith("value")||le==="indeterminate")||lr(le)&&!en(le)||le[0]==="."||V&&!en(le))&&r(p,le,null,T[le],void 0,w)}else if(T.onClick)r(p,"onClick",null,T.onClick,void 0,w);else if(H&4&>(T.style))for(const V in T.style)T.style[V]}let q;(q=T&&T.onVnodeBeforeMount)&&$e(q,w,_),W&&ct(_,null,w,"beforeMount"),((q=T&&T.onVnodeMounted)||W||F)&&Nl(()=>{q&&$e(q,w,_),F&&Z.enter(p),W&&ct(_,null,w,"mounted")},k)}return p.nextSibling},d=(p,_,w,k,A,D,R)=>{R=R||!!_.dynamicChildren;const T=_.children,H=T.length;let L=!1;for(let W=0;W{const{slotScopeIds:R}=_;R&&(A=A?A.concat(R):R);const T=i(p),H=d(o(p),_,T,w,k,A,D);return H&&mn(H)&&H.data==="]"?o(_.anchor=H):(fn(),l(_.anchor=f("]"),T,H),H)},y=(p,_,w,k,A,D)=>{if(yr(p.parentElement,1)||fn(),_.el=null,D){const H=C(p);for(;;){const L=o(p);if(L&&L!==H)a(L);else break}}const R=o(p),T=i(p);return a(p),n(null,_,T,R,w,k,mr(T),A),w&&(w.vnode.el=_.el,is(w,_.el)),R},C=(p,_="[",w="]")=>{let k=0;for(;p;)if(p=o(p),p&&mn(p)&&(p.data===_&&k++,p.data===w)){if(k===0)return o(p);k--}return p},E=(p,_,w)=>{const k=_.parentNode;k&&k.replaceChild(p,_);let A=w;for(;A;)A.vnode.el===_&&(A.vnode.el=A.subTree.el=p),A=A.parent},v=p=>p.nodeType===1&&p.tagName==="TEMPLATE";return[c,u]}const ri="data-allow-mismatch",lf={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function yr(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(ri);)e=e.parentElement;const n=e&&e.getAttribute(ri);if(n==null)return!1;if(n==="")return!0;{const r=n.split(",");return t===0&&r.includes("children")?!0:r.includes(lf[t])}}Xr().requestIdleCallback;Xr().cancelIdleCallback;function cf(e,t){if(mn(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(mn(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}const Ct=e=>!!e.type.__asyncLoader;function Ir(e){Y(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,hydrate:o,timeout:i,suspensible:a=!0,onError:l}=e;let f=null,c,u=0;const h=()=>(u++,f=null,d()),d=()=>{let m;return f||(m=f=t().catch(y=>{if(y=y instanceof Error?y:new Error(String(y)),l)return new Promise((C,E)=>{l(y,()=>C(h()),()=>E(y),u+1)});throw y}).then(y=>m!==f&&f?f:(y&&(y.__esModule||y[Symbol.toStringTag]==="Module")&&(y=y.default),c=y,y)))};return Wt({name:"AsyncComponentWrapper",__asyncLoader:d,__asyncHydrate(m,y,C){let E=!1;(y.bu||(y.bu=[])).push(()=>E=!0);const v=()=>{E||C()},p=o?()=>{const _=o(v,w=>cf(m,w));_&&(y.bum||(y.bum=[])).push(_)}:v;c?p():d().then(()=>!y.isUnmounted&&p())},get __asyncResolved(){return c},setup(){const m=Pe;if(Ao(m),c)return()=>_r(c,m);const y=w=>{f=null,Ln(w,m,13,!r)};if(a&&m.suspense||Pn)return d().then(w=>()=>_r(w,m)).catch(w=>(y(w),()=>r?ye(r,{error:w}):null));const C=nt(!1),E=nt(),v=nt(!!s);let p,_;return ss(()=>{p!=null&&clearTimeout(p),_!=null&&clearTimeout(_)}),s&&(_=setTimeout(()=>{m.isUnmounted||(v.value=!1)},s)),i!=null&&(p=setTimeout(()=>{if(!m.isUnmounted&&!C.value&&!E.value){const w=new Error(`Async component timed out after ${i}ms.`);y(w),E.value=w}},i)),d().then(()=>{m.isUnmounted||(C.value=!0,m.parent&&ur(m.parent.vnode)&&m.parent.update())}).catch(w=>{if(m.isUnmounted){f=null;return}y(w),E.value=w}),()=>{if(C.value&&c)return _r(c,m);if(E.value&&r)return ye(r,{error:E.value});if(n&&!v.value)return _r(n,m)}}})}function _r(e,t){const{ref:n,props:r,children:s,ce:o}=t.vnode,i=ye(e,r,s);return i.ref=n,i.ce=o,delete t.vnode.ce,i}const ur=e=>e.type.__isKeepAlive,uf={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=an(),r=n.ctx;if(!r.renderer)return()=>{const v=t.default&&t.default();return v&&v.length===1?v[0]:v};const s=new Map,o=new Set;let i=null;const a=n.suspense,{renderer:{p:l,m:f,um:c,o:{createElement:u}}}=r,h=u("div");r.activate=(v,p,_,w,k)=>{const A=v.component;f(v,p,_,0,a),l(A.vnode,v,p,_,A,a,w,v.slotScopeIds,k),Se(()=>{A.isDeactivated=!1,A.a&&vn(A.a);const D=v.props&&v.props.onVnodeMounted;D&&$e(D,A.parent,v)},a)},r.deactivate=v=>{const p=v.component;Dr(p.m),Dr(p.a),f(v,h,null,1,a),Se(()=>{p.da&&vn(p.da);const _=v.props&&v.props.onVnodeUnmounted;_&&$e(_,p.parent,v),p.isDeactivated=!0},a)};function d(v){ys(v),c(v,n,a,!0)}function m(v){s.forEach((p,_)=>{const w=zs(Ct(p)?p.type.__asyncResolved||{}:p.type);w&&!v(w)&&y(_)})}function y(v){const p=s.get(v);p&&(!i||!et(p,i))?d(p):i&&ys(i),s.delete(v),o.delete(v)}Rt(()=>[e.include,e.exclude],([v,p])=>{v&&m(_=>Vn(v,_)),p&&m(_=>!Vn(p,_))},{flush:"post",deep:!0});let C=null;const E=()=>{C!=null&&($r(n.subTree.type)?Se(()=>{s.set(C,br(n.subTree))},n.subTree.suspense):s.set(C,br(n.subTree)))};return xo(E),hl(E),fr(()=>{s.forEach(v=>{const{subTree:p,suspense:_}=n,w=br(p);if(v.type===w.type&&v.key===w.key){ys(w);const k=w.component.da;k&&Se(k,_);return}d(v)})}),()=>{if(C=null,!t.default)return i=null;const v=t.default(),p=v[0];if(v.length>1)return i=null,v;if(!sn(p)||!(p.shapeFlag&4)&&!(p.shapeFlag&128))return i=null,p;let _=br(p);if(_.type===be)return i=null,_;const w=_.type,k=zs(Ct(_)?_.type.__asyncResolved||{}:w),{include:A,exclude:D,max:R}=e;if(A&&(!k||!Vn(A,k))||D&&k&&Vn(D,k))return _.shapeFlag&=-257,i=_,p;const T=_.key==null?w:_.key,H=s.get(T);return _.el&&(_=kt(_),p.shapeFlag&128&&(p.ssContent=_)),C=T,H?(_.el=H.el,_.component=H.component,_.transition&&Rn(_,_.transition),_.shapeFlag|=512,o.delete(T),o.add(T)):(o.add(T),R&&o.size>parseInt(R,10)&&y(o.values().next().value)),_.shapeFlag|=256,i=_,$r(p.type)?p:_}}},ff=uf;function Vn(e,t){return G(e)?e.some(n=>Vn(n,t)):he(e)?e.split(",").includes(t):lu(e)?(e.lastIndex=0,e.test(t)):!1}function cl(e,t){fl(e,"a",t)}function ul(e,t){fl(e,"da",t)}function fl(e,t,n=Pe){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(rs(t,r,n),n){let s=n.parent;for(;s&&s.parent;)ur(s.parent.vnode)&&df(r,t,n,s),s=s.parent}}function df(e,t,n,r){const s=rs(t,e,r,!0);ss(()=>{po(r[t],s)},n)}function ys(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function br(e){return e.shapeFlag&128?e.ssContent:e}function rs(e,t,n=Pe,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Pt();const a=dr(n),l=Xe(t,n,e,i);return a(),At(),l});return r?s.unshift(o):s.push(o),o}}const Ot=e=>(t,n=Pe)=>{(!Pn||e==="sp")&&rs(e,(...r)=>t(...r),n)},dl=Ot("bm"),xo=Ot("m"),hf=Ot("bu"),hl=Ot("u"),fr=Ot("bum"),ss=Ot("um"),pf=Ot("sp"),gf=Ot("rtg"),mf=Ot("rtc");function pl(e,t=Pe){rs("ec",e,t)}const gl="components";function Jy(e,t){return yl(gl,e,!0,t)||e}const ml=Symbol.for("v-ndc");function yf(e){return he(e)?yl(gl,e,!1)||e:e||ml}function yl(e,t,n=!0,r=!1){const s=Ae||Pe;if(s){const o=s.type;{const a=zs(o,!1);if(a&&(a===t||a===Le(t)||a===Gr(Le(t))))return o}const i=si(s[e]||o[e],t)||si(s.appContext[e],t);return!i&&r?o:i}}function si(e,t){return e&&(e[t]||e[Le(t)]||e[Gr(Le(t))])}function Xy(e,t,n,r){let s;const o=n,i=G(e);if(i||he(e)){const a=i&>(e);let l=!1,f=!1;a&&(l=!Be(e),f=mt(e),e=es(e)),s=new Array(e.length);for(let c=0,u=e.length;ct(a,l,void 0,o));else{const a=Object.keys(e);s=new Array(a.length);for(let l=0,f=a.length;l0;return Ge(),ht(ke,null,[ye("slot",n,r)],f?-2:64)}let o=e[t];o&&o._c&&(o._d=!1),Ge();const i=o&&_l(o(n)),a=n.key||i&&i.key,l=ht(ke,{key:(a&&!Ue(a)?a:`_${t}`)+(!i&&r?"_fb":"")},i||[],i&&e._===1?64:-2);return l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),o&&o._c&&(o._d=!0),l}function _l(e){return e.some(t=>sn(t)?!(t.type===be||t.type===ke&&!_l(t.children)):!0)?e:null}const js=e=>e?ql(e)?as(e):js(e.parent):null,Gn=Te(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=>js(e.parent),$root:e=>js(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>vl(e),$forceUpdate:e=>e.f||(e.f=()=>{Ro(e.update)}),$nextTick:e=>e.n||(e.n=xt.bind(e.proxy)),$watch:e=>Zu.bind(e)}),_s=(e,t)=>e!==fe&&!e.__isScriptSetup&&ie(e,t),_f={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:a,appContext:l}=e;if(t[0]!=="$"){const h=i[t];if(h!==void 0)switch(h){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(_s(r,t))return i[t]=1,r[t];if(s!==fe&&ie(s,t))return i[t]=2,s[t];if(ie(o,t))return i[t]=3,o[t];if(n!==fe&&ie(n,t))return i[t]=4,n[t];Fs&&(i[t]=0)}}const f=Gn[t];let c,u;if(f)return t==="$attrs"&&xe(e.attrs,"get",""),f(e);if((c=a.__cssModules)&&(c=c[t]))return c;if(n!==fe&&ie(n,t))return i[t]=4,n[t];if(u=l.config.globalProperties,ie(u,t))return u[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return _s(s,t)?(s[t]=n,!0):r!==fe&&ie(r,t)?(r[t]=n,!0):ie(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,props:o,type:i}},a){let l;return!!(n[a]||e!==fe&&a[0]!=="$"&&ie(e,a)||_s(t,a)||ie(o,a)||ie(r,a)||ie(Gn,a)||ie(s.config.globalProperties,a)||(l=i.__cssModules)&&l[a])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ie(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function oi(e){return G(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Fs=!0;function bf(e){const t=vl(e),n=e.proxy,r=e.ctx;Fs=!1,t.beforeCreate&&ii(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:a,provide:l,inject:f,created:c,beforeMount:u,mounted:h,beforeUpdate:d,updated:m,activated:y,deactivated:C,beforeDestroy:E,beforeUnmount:v,destroyed:p,unmounted:_,render:w,renderTracked:k,renderTriggered:A,errorCaptured:D,serverPrefetch:R,expose:T,inheritAttrs:H,components:L,directives:W,filters:Z}=t;if(f&&vf(f,r,null),i)for(const q in i){const V=i[q];Y(V)&&(r[q]=V.bind(n))}if(s){const q=s.call(n,n);se(q)&&(e.data=ot(q))}if(Fs=!0,o)for(const q in o){const V=o[q],le=Y(V)?V.bind(n,n):Y(V.get)?V.get.bind(n,n):pt,Mt=!Y(V)&&Y(V.set)?V.set.bind(n):pt,it=Re({get:le,set:Mt});Object.defineProperty(r,q,{enumerable:!0,configurable:!0,get:()=>it.value,set:De=>it.value=De})}if(a)for(const q in a)bl(a[q],r,n,q);if(l){const q=Y(l)?l.call(n):l;Reflect.ownKeys(q).forEach(V=>{jt(V,q[V])})}c&&ii(c,e,"c");function F(q,V){G(V)?V.forEach(le=>q(le.bind(n))):V&&q(V.bind(n))}if(F(dl,u),F(xo,h),F(hf,d),F(hl,m),F(cl,y),F(ul,C),F(pl,D),F(mf,k),F(gf,A),F(fr,v),F(ss,_),F(pf,R),G(T))if(T.length){const q=e.exposed||(e.exposed={});T.forEach(V=>{Object.defineProperty(q,V,{get:()=>n[V],set:le=>n[V]=le,enumerable:!0})})}else e.exposed||(e.exposed={});w&&e.render===pt&&(e.render=w),H!=null&&(e.inheritAttrs=H),L&&(e.components=L),W&&(e.directives=W),R&&Ao(e)}function vf(e,t,n=pt){G(e)&&(e=Bs(e));for(const r in e){const s=e[r];let o;se(s)?"default"in s?o=Ce(s.from||r,s.default,!0):o=Ce(s.from||r):o=Ce(s),pe(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function ii(e,t,n){Xe(G(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function bl(e,t,n,r){let s=r.includes(".")?nl(n,r):()=>n[r];if(he(e)){const o=t[e];Y(o)&&Rt(s,o)}else if(Y(e))Rt(s,e.bind(n));else if(se(e))if(G(e))e.forEach(o=>bl(o,t,n,r));else{const o=Y(e.handler)?e.handler.bind(n):t[e.handler];Y(o)&&Rt(s,o,e)}}function vl(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,a=o.get(t);let l;return a?l=a:!s.length&&!n&&!r?l=t:(l={},s.length&&s.forEach(f=>Lr(l,f,i,!0)),Lr(l,t,i)),se(t)&&o.set(t,l),l}function Lr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Lr(e,o,n,!0),s&&s.forEach(i=>Lr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const a=wf[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const wf={data:ai,props:li,emits:li,methods:Kn,computed:Kn,beforeCreate:Me,created:Me,beforeMount:Me,mounted:Me,beforeUpdate:Me,updated:Me,beforeDestroy:Me,beforeUnmount:Me,destroyed:Me,unmounted:Me,activated:Me,deactivated:Me,errorCaptured:Me,serverPrefetch:Me,components:Kn,directives:Kn,watch:Sf,provide:ai,inject:Ef};function ai(e,t){return t?e?function(){return Te(Y(e)?e.call(this,this):e,Y(t)?t.call(this,this):t)}:t:e}function Ef(e,t){return Kn(Bs(e),Bs(t))}function Bs(e){if(G(e)){const t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Le(t)}Modifiers`]||e[`${Kt(t)}Modifiers`];function Pf(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||fe;let s=n;const o=t.startsWith("update:"),i=o&&Cf(r,t.slice(7));i&&(i.trim&&(s=n.map(c=>he(c)?c.trim():c)),i.number&&(s=n.map(Jr)));let a,l=r[a=fs(t)]||r[a=fs(Le(t))];!l&&o&&(l=r[a=fs(Kt(t))]),l&&Xe(l,e,6,s);const f=r[a+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Xe(f,e,6,s)}}const Af=new WeakMap;function El(e,t,n=!1){const r=n?Af:t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},a=!1;if(!Y(e)){const l=f=>{const c=El(f,t,!0);c&&(a=!0,Te(i,c))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!o&&!a?(se(e)&&r.set(e,null),null):(G(o)?o.forEach(l=>i[l]=null):Te(i,o),se(e)&&r.set(e,i),i)}function os(e,t){return!e||!lr(t)?!1:(t=t.slice(2).replace(/Once$/,""),ie(e,t[0].toLowerCase()+t.slice(1))||ie(e,Kt(t))||ie(e,t))}function bs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:a,emit:l,render:f,renderCache:c,props:u,data:h,setupState:d,ctx:m,inheritAttrs:y}=e,C=Or(e);let E,v;try{if(n.shapeFlag&4){const _=s||r,w=_;E=Fe(f.call(w,_,c,u,d,h,m)),v=a}else{const _=t;E=Fe(_.length>1?_(u,{attrs:a,slots:i,emit:l}):_(u,null)),v=t.props?a:kf(a)}}catch(_){Xn.length=0,Ln(_,e,1),E=ye(be)}let p=E;if(v&&y!==!1){const _=Object.keys(v),{shapeFlag:w}=p;_.length&&w&7&&(o&&_.some(Wr)&&(v=Of(v,o)),p=kt(p,v,!1,!0))}return n.dirs&&(p=kt(p,null,!1,!0),p.dirs=p.dirs?p.dirs.concat(n.dirs):n.dirs),n.transition&&Rn(p,n.transition),E=p,Or(C),E}function xf(e,t=!0){let n;for(let r=0;r{let t;for(const n in e)(n==="class"||n==="style"||lr(n))&&((t||(t={}))[n]=e[n]);return t},Of=(e,t)=>{const n={};for(const r in e)(!Wr(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Mf(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:a,patchFlag:l}=t,f=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return r?ci(r,i,f):!!i;if(l&8){const c=t.dynamicProps;for(let u=0;uObject.create(Tl),Cl=e=>Object.getPrototypeOf(e)===Tl;function If(e,t,n,r=!1){const s={},o=Rl();e.propsDefaults=Object.create(null),Pl(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:Ze(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function Lf(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,a=ne(s),[l]=e.propsOptions;let f=!1;if((r||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let u=0;u{l=!0;const[h,d]=Al(u,t,!0);Te(i,h),d&&a.push(...d)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!o&&!l)return se(e)&&r.set(e,_n),_n;if(G(o))for(let c=0;ce==="_"||e==="_ctx"||e==="$stable",Oo=e=>G(e)?e.map(Fe):[Fe(e)],$f=(e,t,n)=>{if(t._n)return t;const r=Co((...s)=>Oo(t(...s)),n);return r._c=!1,r},xl=(e,t,n)=>{const r=e._ctx;for(const s in e){if(ko(s))continue;const o=e[s];if(Y(o))t[s]=$f(s,o,r);else if(o!=null){const i=Oo(o);t[s]=()=>i}}},kl=(e,t)=>{const n=Oo(t);e.slots.default=()=>n},Ol=(e,t,n)=>{for(const r in t)(n||!ko(r))&&(e[r]=t[r])},Hf=(e,t,n)=>{const r=e.slots=Rl();if(e.vnode.shapeFlag&32){const s=t._;s?(Ol(r,t,n),n&&Pa(r,"_",s,!0)):xl(t,r)}else t&&kl(e,t)},Nf=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=fe;if(r.shapeFlag&32){const a=t._;a?n&&a===1?o=!1:Ol(s,t,n):(o=!t.$stable,xl(t,s)),i=t}else t&&(kl(e,t),i={default:1});if(o)for(const a in s)!ko(a)&&i[a]==null&&delete s[a]},Se=Nl;function jf(e){return Ml(e)}function Ff(e){return Ml(e,af)}function Ml(e,t){const n=Xr();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:a,createComment:l,setText:f,setElementText:c,parentNode:u,nextSibling:h,setScopeId:d=pt,insertStaticContent:m}=e,y=(g,b,S,M=null,P=null,O=null,j=void 0,N=null,$=!!b.dynamicChildren)=>{if(g===b)return;g&&!et(g,b)&&(M=x(g),De(g,P,O,!0),g=null),b.patchFlag===-2&&($=!1,b.dynamicChildren=null);const{type:I,ref:X,shapeFlag:U}=b;switch(I){case rn:C(g,b,S,M);break;case be:E(g,b,S,M);break;case Jn:g==null&&v(b,S,M,j);break;case ke:L(g,b,S,M,P,O,j,N,$);break;default:U&1?w(g,b,S,M,P,O,j,N,$):U&6?W(g,b,S,M,P,O,j,N,$):(U&64||U&128)&&I.process(g,b,S,M,P,O,j,N,$,J)}X!=null&&P?En(X,g&&g.ref,O,b||g,!b):X==null&&g&&g.ref!=null&&En(g.ref,null,O,g,!0)},C=(g,b,S,M)=>{if(g==null)r(b.el=a(b.children),S,M);else{const P=b.el=g.el;b.children!==g.children&&f(P,b.children)}},E=(g,b,S,M)=>{g==null?r(b.el=l(b.children||""),S,M):b.el=g.el},v=(g,b,S,M)=>{[g.el,g.anchor]=m(g.children,b,S,M,g.el,g.anchor)},p=({el:g,anchor:b},S,M)=>{let P;for(;g&&g!==b;)P=h(g),r(g,S,M),g=P;r(b,S,M)},_=({el:g,anchor:b})=>{let S;for(;g&&g!==b;)S=h(g),s(g),g=S;s(b)},w=(g,b,S,M,P,O,j,N,$)=>{if(b.type==="svg"?j="svg":b.type==="math"&&(j="mathml"),g==null)k(b,S,M,P,O,j,N,$);else{const I=g.el&&g.el._isVueCE?g.el:null;try{I&&I._beginPatch(),R(g,b,P,O,j,N,$)}finally{I&&I._endPatch()}}},k=(g,b,S,M,P,O,j,N)=>{let $,I;const{props:X,shapeFlag:U,transition:z,dirs:Q}=g;if($=g.el=i(g.type,O,X&&X.is,X),U&8?c($,g.children):U&16&&D(g.children,$,null,M,P,vs(g,O),j,N),Q&&ct(g,null,M,"created"),A($,g,g.scopeId,j,M),X){for(const ue in X)ue!=="value"&&!en(ue)&&o($,ue,null,X[ue],O,M);"value"in X&&o($,"value",null,X.value,O),(I=X.onVnodeBeforeMount)&&$e(I,M,g)}Q&&ct(g,null,M,"beforeMount");const re=Il(P,z);re&&z.beforeEnter($),r($,b,S),((I=X&&X.onVnodeMounted)||re||Q)&&Se(()=>{I&&$e(I,M,g),re&&z.enter($),Q&&ct(g,null,M,"mounted")},P)},A=(g,b,S,M,P)=>{if(S&&d(g,S),M)for(let O=0;O{for(let I=$;I{const N=b.el=g.el;let{patchFlag:$,dynamicChildren:I,dirs:X}=b;$|=g.patchFlag&16;const U=g.props||fe,z=b.props||fe;let Q;if(S&&zt(S,!1),(Q=z.onVnodeBeforeUpdate)&&$e(Q,S,b,g),X&&ct(b,g,S,"beforeUpdate"),S&&zt(S,!0),(U.innerHTML&&z.innerHTML==null||U.textContent&&z.textContent==null)&&c(N,""),I?T(g.dynamicChildren,I,N,S,M,vs(b,P),O):j||V(g,b,N,null,S,M,vs(b,P),O,!1),$>0){if($&16)H(N,U,z,S,P);else if($&2&&U.class!==z.class&&o(N,"class",null,z.class,P),$&4&&o(N,"style",U.style,z.style,P),$&8){const re=b.dynamicProps;for(let ue=0;ue{Q&&$e(Q,S,b,g),X&&ct(b,g,S,"updated")},M)},T=(g,b,S,M,P,O,j)=>{for(let N=0;N{if(b!==S){if(b!==fe)for(const O in b)!en(O)&&!(O in S)&&o(g,O,b[O],null,P,M);for(const O in S){if(en(O))continue;const j=S[O],N=b[O];j!==N&&O!=="value"&&o(g,O,N,j,P,M)}"value"in S&&o(g,"value",b.value,S.value,P)}},L=(g,b,S,M,P,O,j,N,$)=>{const I=b.el=g?g.el:a(""),X=b.anchor=g?g.anchor:a("");let{patchFlag:U,dynamicChildren:z,slotScopeIds:Q}=b;Q&&(N=N?N.concat(Q):Q),g==null?(r(I,S,M),r(X,S,M),D(b.children||[],S,X,P,O,j,N,$)):U>0&&U&64&&z&&g.dynamicChildren&&g.dynamicChildren.length===z.length?(T(g.dynamicChildren,z,S,P,O,j,N),(b.key!=null||P&&b===P.subTree)&&Ll(g,b,!0)):V(g,b,S,X,P,O,j,N,$)},W=(g,b,S,M,P,O,j,N,$)=>{b.slotScopeIds=N,g==null?b.shapeFlag&512?P.ctx.activate(b,S,M,j,$):Z(b,S,M,P,O,j,$):te(g,b,$)},Z=(g,b,S,M,P,O,j)=>{const N=g.component=Zf(g,M,P);if(ur(g)&&(N.ctx.renderer=J),ed(N,!1,j),N.asyncDep){if(P&&P.registerDep(N,F,j),!g.el){const $=N.subTree=ye(be);E(null,$,b,S),g.placeholder=$.el}}else F(N,g,b,S,P,O,j)},te=(g,b,S)=>{const M=b.component=g.component;if(Mf(g,b,S))if(M.asyncDep&&!M.asyncResolved){q(M,b,S);return}else M.next=b,M.update();else b.el=g.el,M.vnode=b},F=(g,b,S,M,P,O,j)=>{const N=()=>{if(g.isMounted){let{next:U,bu:z,u:Q,parent:re,vnode:ue}=g;{const Ne=Dl(g);if(Ne){U&&(U.el=ue.el,q(g,U,j)),Ne.asyncDep.then(()=>{Se(()=>{g.isUnmounted||I()},P)});return}}let ce=U,_e;zt(g,!1),U?(U.el=ue.el,q(g,U,j)):U=ue,z&&vn(z),(_e=U.props&&U.props.onVnodeBeforeUpdate)&&$e(_e,re,U,ue),zt(g,!0);const we=bs(g),Qe=g.subTree;g.subTree=we,y(Qe,we,u(Qe.el),x(Qe),g,P,O),U.el=we.el,ce===null&&is(g,we.el),Q&&Se(Q,P),(_e=U.props&&U.props.onVnodeUpdated)&&Se(()=>$e(_e,re,U,ue),P)}else{let U;const{el:z,props:Q}=b,{bm:re,m:ue,parent:ce,root:_e,type:we}=g,Qe=Ct(b);if(zt(g,!1),re&&vn(re),!Qe&&(U=Q&&Q.onVnodeBeforeMount)&&$e(U,ce,b),zt(g,!0),z&&ge){const Ne=()=>{g.subTree=bs(g),ge(z,g.subTree,g,P,null)};Qe&&we.__asyncHydrate?we.__asyncHydrate(z,g,Ne):Ne()}else{_e.ce&&_e.ce._hasShadowRoot()&&_e.ce._injectChildStyle(we,g.parent?g.parent.type:void 0);const Ne=g.subTree=bs(g);y(null,Ne,S,M,g,P,O),b.el=Ne.el}if(ue&&Se(ue,P),!Qe&&(U=Q&&Q.onVnodeMounted)){const Ne=b;Se(()=>$e(U,ce,Ne),P)}(b.shapeFlag&256||ce&&Ct(ce.vnode)&&ce.vnode.shapeFlag&256)&&g.a&&Se(g.a,P),g.isMounted=!0,b=S=M=null}};g.scope.on();const $=g.effect=new La(N);g.scope.off();const I=g.update=$.run.bind($),X=g.job=$.runIfDirty.bind($);X.i=g,X.id=g.uid,$.scheduler=()=>Ro(X),zt(g,!0),I()},q=(g,b,S)=>{b.component=g;const M=g.vnode.props;g.vnode=b,g.next=null,Lf(g,b.props,M,S),Nf(g,b.children,S),Pt(),Qo(g),At()},V=(g,b,S,M,P,O,j,N,$=!1)=>{const I=g&&g.children,X=g?g.shapeFlag:0,U=b.children,{patchFlag:z,shapeFlag:Q}=b;if(z>0){if(z&128){Mt(I,U,S,M,P,O,j,N,$);return}else if(z&256){le(I,U,S,M,P,O,j,N,$);return}}Q&8?(X&16&&Ke(I,P,O),U!==I&&c(S,U)):X&16?Q&16?Mt(I,U,S,M,P,O,j,N,$):Ke(I,P,O,!0):(X&8&&c(S,""),Q&16&&D(U,S,M,P,O,j,N,$))},le=(g,b,S,M,P,O,j,N,$)=>{g=g||_n,b=b||_n;const I=g.length,X=b.length,U=Math.min(I,X);let z;for(z=0;zX?Ke(g,P,O,!0,!1,U):D(b,S,M,P,O,j,N,$,U)},Mt=(g,b,S,M,P,O,j,N,$)=>{let I=0;const X=b.length;let U=g.length-1,z=X-1;for(;I<=U&&I<=z;){const Q=g[I],re=b[I]=$?wt(b[I]):Fe(b[I]);if(et(Q,re))y(Q,re,S,null,P,O,j,N,$);else break;I++}for(;I<=U&&I<=z;){const Q=g[U],re=b[z]=$?wt(b[z]):Fe(b[z]);if(et(Q,re))y(Q,re,S,null,P,O,j,N,$);else break;U--,z--}if(I>U){if(I<=z){const Q=z+1,re=Qz)for(;I<=U;)De(g[I],P,O,!0),I++;else{const Q=I,re=I,ue=new Map;for(I=re;I<=z;I++){const je=b[I]=$?wt(b[I]):Fe(b[I]);je.key!=null&&ue.set(je.key,I)}let ce,_e=0;const we=z-re+1;let Qe=!1,Ne=0;const $n=new Array(we);for(I=0;I=we){De(je,P,O,!0);continue}let at;if(je.key!=null)at=ue.get(je.key);else for(ce=re;ce<=z;ce++)if($n[ce-re]===0&&et(je,b[ce])){at=ce;break}at===void 0?De(je,P,O,!0):($n[at-re]=I+1,at>=Ne?Ne=at:Qe=!0,y(je,b[at],S,null,P,O,j,N,$),_e++)}const Wo=Qe?Bf($n):_n;for(ce=Wo.length-1,I=we-1;I>=0;I--){const je=re+I,at=b[je],qo=b[je+1],zo=je+1{const{el:O,type:j,transition:N,children:$,shapeFlag:I}=g;if(I&6){it(g.component.subTree,b,S,M);return}if(I&128){g.suspense.move(b,S,M);return}if(I&64){j.move(g,b,S,J);return}if(j===ke){r(O,b,S);for(let U=0;U<$.length;U++)it($[U],b,S,M);r(g.anchor,b,S);return}if(j===Jn){p(g,b,S);return}if(M!==2&&I&1&&N)if(M===0)N.persisted&&!O[ze]?r(O,b,S):(N.beforeEnter(O),r(O,b,S),Se(()=>N.enter(O),P));else{const{leave:U,delayLeave:z,afterLeave:Q}=N,re=()=>{g.ctx.isUnmounted?s(O):r(O,b,S)},ue=()=>{const ce=O._isLeaving||!!O[ze];O._isLeaving&&O[ze](!0),N.persisted&&!ce?re():U(O,()=>{re(),Q&&Q()})};z?z(O,re,ue):ue()}else r(O,b,S)},De=(g,b,S,M=!1,P=!1)=>{const{type:O,props:j,ref:N,children:$,dynamicChildren:I,shapeFlag:X,patchFlag:U,dirs:z,cacheIndex:Q,memo:re}=g;if(U===-2&&(P=!1),N!=null&&(Pt(),En(N,null,S,g,!0),At()),Q!=null&&(b.renderCache[Q]=void 0),X&256){b.ctx.deactivate(g);return}const ue=X&1&&z,ce=!Ct(g);let _e;if(ce&&(_e=j&&j.onVnodeBeforeUnmount)&&$e(_e,b,g),X&6)qt(g.component,S,M);else{if(X&128){g.suspense.unmount(S,M);return}ue&&ct(g,null,b,"beforeUnmount"),X&64?g.type.remove(g,b,S,J,M):I&&!I.hasOnce&&(O!==ke||U>0&&U&64)?Ke(I,b,S,!1,!0):(O===ke&&U&384||!P&&X&16)&&Ke($,b,S),M&&ln(g)}const we=re!=null&&Q==null;(ce&&(_e=j&&j.onVnodeUnmounted)||ue||we)&&Se(()=>{_e&&$e(_e,b,g),ue&&ct(g,null,b,"unmounted"),we&&(g.el=null)},S)},ln=g=>{const{type:b,el:S,anchor:M,transition:P}=g;if(b===ke){cn(S,M);return}if(b===Jn){_(g);return}const O=()=>{s(S),P&&!P.persisted&&P.afterLeave&&P.afterLeave()};if(g.shapeFlag&1&&P&&!P.persisted){const{leave:j,delayLeave:N}=P,$=()=>j(S,O);N?N(g.el,O,$):$()}else O()},cn=(g,b)=>{let S;for(;g!==b;)S=h(g),s(g),g=S;s(b)},qt=(g,b,S)=>{const{bum:M,scope:P,job:O,subTree:j,um:N,m:$,a:I}=g;Dr($),Dr(I),M&&vn(M),P.stop(),O&&(O.flags|=8,De(j,g,b,S)),N&&Se(N,b),Se(()=>{g.isUnmounted=!0},b)},Ke=(g,b,S,M=!1,P=!1,O=0)=>{for(let j=O;j{if(g.shapeFlag&6)return x(g.component.subTree);if(g.shapeFlag&128)return g.suspense.next();const b=h(g.anchor||g.el),S=b&&b[ef];return S?h(S):b};let K=!1;const B=(g,b,S)=>{let M;g==null?b._vnode&&(De(b._vnode,null,null,!0),M=b._vnode.component):y(b._vnode||null,g,b,null,null,null,S),b._vnode=g,K||(K=!0,Qo(M),kr(),K=!1)},J={p:y,um:De,m:it,r:ln,mt:Z,mc:D,pc:V,pbc:T,n:x,o:e};let ee,ge;return t&&([ee,ge]=t(J)),{render:B,hydrate:ee,createApp:Rf(B,ee)}}function vs({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 zt({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Il(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ll(e,t,n=!1){const r=e.children,s=t.children;if(G(r)&&G(s))for(let o=0;o>1,e[n[a]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Dl(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Dl(t)}function Dr(e){if(e)for(let t=0;te.__isSuspense;let Vs=0;const Uf={name:"Suspense",__isSuspense:!0,process(e,t,n,r,s,o,i,a,l,f){if(e==null)Vf(t,n,r,s,o,i,a,l,f);else{if(o&&o.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}Kf(e,t,n,r,s,i,a,l,f)}},hydrate:Wf,normalize:qf},Mo=Uf;function or(e,t){const n=e.props&&e.props[t];Y(n)&&n()}function Vf(e,t,n,r,s,o,i,a,l){const{p:f,o:{createElement:c}}=l,u=c("div"),h=e.suspense=Hl(e,s,r,t,u,n,o,i,a,l);f(null,h.pendingBranch=e.ssContent,u,null,r,h,o,i),h.deps>0?(or(e,"onPending"),or(e,"onFallback"),f(null,e.ssFallback,t,n,r,null,o,i),Sn(h,e.ssFallback)):h.resolve(!1,!0)}function Kf(e,t,n,r,s,o,i,a,{p:l,um:f,o:{createElement:c}}){const u=t.suspense=e.suspense;u.vnode=t,t.el=e.el;const h=t.ssContent,d=t.ssFallback,{activeBranch:m,pendingBranch:y,isInFallback:C,isHydrating:E}=u;if(y)u.pendingBranch=h,et(y,h)?(l(y,h,u.hiddenContainer,null,s,u,o,i,a),u.deps<=0?u.resolve():C&&(E||(l(m,d,n,r,s,null,o,i,a),Sn(u,d)))):(u.pendingId=Vs++,E?(u.isHydrating=!1,u.activeBranch=y):f(y,s,u),u.deps=0,u.effects.length=0,u.hiddenContainer=c("div"),C?(l(null,h,u.hiddenContainer,null,s,u,o,i,a),u.deps<=0?u.resolve():(l(m,d,n,r,s,null,o,i,a),Sn(u,d))):m&&et(m,h)?(l(m,h,n,r,s,u,o,i,a),u.resolve(!0)):(l(null,h,u.hiddenContainer,null,s,u,o,i,a),u.deps<=0&&u.resolve()));else if(m&&et(m,h))l(m,h,n,r,s,u,o,i,a),Sn(u,h);else if(or(t,"onPending"),u.pendingBranch=h,h.shapeFlag&512?u.pendingId=h.component.suspenseId:u.pendingId=Vs++,l(null,h,u.hiddenContainer,null,s,u,o,i,a),u.deps<=0)u.resolve();else{const{timeout:v,pendingId:p}=u;v>0?setTimeout(()=>{u.pendingId===p&&u.fallback(d)},v):v===0&&u.fallback(d)}}function Hl(e,t,n,r,s,o,i,a,l,f,c=!1){const{p:u,m:h,um:d,n:m,o:{parentNode:y,remove:C}}=f;let E;const v=zf(e);v&&t&&t.pendingBranch&&(E=t.pendingId,t.deps++);const p=e.props?Aa(e.props.timeout):void 0,_=o,w={vnode:e,parent:t,parentComponent:n,namespace:i,container:r,hiddenContainer:s,deps:0,pendingId:Vs++,timeout:typeof p=="number"?p:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(k=!1,A=!1){const{vnode:D,activeBranch:R,pendingBranch:T,pendingId:H,effects:L,parentComponent:W,container:Z,isInFallback:te}=w;let F=!1;if(w.isHydrating)w.isHydrating=!1;else if(!k){F=R&&T.transition&&T.transition.mode==="out-in";let le=!1;F&&(R.transition.afterLeave=()=>{H===w.pendingId&&(h(T,Z,o===_&&!le?m(R):o,0),rr(L),te&&D.ssFallback&&(D.ssFallback.el=null))}),R&&!w.isFallbackMountPending&&(y(R.el)===Z&&(o=m(R),le=!0),d(R,W,w,!0),!F&&te&&D.ssFallback&&Se(()=>D.ssFallback.el=null,w)),F||h(T,Z,o,0)}w.isFallbackMountPending=!1,Sn(w,T),w.pendingBranch=null,w.isInFallback=!1;let q=w.parent,V=!1;for(;q;){if(q.pendingBranch){q.effects.push(...L),V=!0;break}q=q.parent}!V&&!F&&rr(L),w.effects=[],v&&t&&t.pendingBranch&&E===t.pendingId&&(t.deps--,t.deps===0&&!A&&t.resolve()),or(D,"onResolve")},fallback(k){if(!w.pendingBranch)return;const{vnode:A,activeBranch:D,parentComponent:R,container:T,namespace:H}=w;or(A,"onFallback");const L=m(D),W=()=>{w.isFallbackMountPending=!1,w.isInFallback&&(u(null,k,T,L,R,null,H,a,l),Sn(w,k))},Z=k.transition&&k.transition.mode==="out-in";Z&&(w.isFallbackMountPending=!0,D.transition.afterLeave=W),w.isInFallback=!0,d(D,R,null,!0),Z||W()},move(k,A,D){w.activeBranch&&h(w.activeBranch,k,A,D),w.container=k},next(){return w.activeBranch&&m(w.activeBranch)},registerDep(k,A,D){const R=!!w.pendingBranch;R&&w.deps++;const T=k.vnode.el;k.asyncDep.catch(H=>{Ln(H,k,0)}).then(H=>{if(k.isUnmounted||w.isUnmounted||w.pendingId!==k.suspenseId)return;Ws(),k.asyncResolved=!0;const{vnode:L}=k;qs(k,H),T&&(L.el=T);const W=!T&&k.subTree.el;A(k,L,y(T||k.subTree.el),T?null:m(k.subTree),w,i,D),W&&(L.placeholder=null,C(W)),is(k,L.el),R&&--w.deps===0&&w.resolve()})},unmount(k,A){w.isUnmounted=!0,w.activeBranch&&d(w.activeBranch,n,k,A),w.pendingBranch&&d(w.pendingBranch,n,k,A)}};return w}function Wf(e,t,n,r,s,o,i,a,l){const f=t.suspense=Hl(t,r,n,e.parentNode,document.createElement("div"),null,s,o,i,a,!0),c=l(e,f.pendingBranch=t.ssContent,n,f,o,i);return f.deps===0&&f.resolve(!1,!0),c}function qf(e){const{shapeFlag:t,children:n}=e,r=t&32;e.ssContent=fi(r?n.default:n),e.ssFallback=r?fi(n.fallback):ye(be)}function fi(e){let t;if(Y(e)){const n=Cn&&e._c;n&&(e._d=!1,Ge()),e=e(),n&&(e._d=!0,t=He,jl())}return G(e)&&(e=xf(e)),e=Fe(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function Nl(e,t){t&&t.pendingBranch?G(e)?t.effects.push(...e):t.effects.push(e):rr(e)}function Sn(e,t){e.activeBranch=t;const{vnode:n,parentComponent:r}=e;let s=t.el;for(;!s&&t.component;)t=t.component.subTree,s=t.el;n.el=s,r&&r.subTree===n&&(r.vnode.el=s,is(r,s))}function zf(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const ke=Symbol.for("v-fgt"),rn=Symbol.for("v-txt"),be=Symbol.for("v-cmt"),Jn=Symbol.for("v-stc"),Xn=[];let He=null;function Ge(e=!1){Xn.push(He=e?null:[])}function jl(){Xn.pop(),He=Xn[Xn.length-1]||null}let Cn=1;function Hr(e,t=!1){Cn+=e,e<0&&He&&t&&(He.hasOnce=!0)}function Fl(e){return e.dynamicChildren=Cn>0?He||_n:null,jl(),Cn>0&&He&&He.push(e),e}function Gf(e,t,n,r,s,o){return Fl(Ul(e,t,n,r,s,o,!0))}function ht(e,t,n,r,s){return Fl(ye(e,t,n,r,s,!0))}function sn(e){return e?e.__v_isVNode===!0:!1}function et(e,t){return e.type===t.type&&e.key===t.key}const Bl=({key:e})=>e??null,Rr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?he(e)||pe(e)||Y(e)?{i:Ae,r:e,k:t,f:!!n}:e:null);function Ul(e,t=null,n=null,r=0,s=null,o=e===ke?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Bl(t),ref:t&&Rr(t),scopeId:tl,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Ae};return a?(Io(l,n),o&128&&e.normalize(l)):n&&(l.shapeFlag|=he(n)?8:16),Cn>0&&!i&&He&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&He.push(l),l}const ye=Jf;function Jf(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===ml)&&(e=be),sn(e)){const a=kt(e,t,!0);return n&&Io(a,n),Cn>0&&!o&&He&&(a.shapeFlag&6?He[He.indexOf(e)]=a:He.push(a)),a.patchFlag=-2,a}if(sd(e)&&(e=e.__vccOpts),t){t=Vl(t);let{class:a,style:l}=t;a&&!he(a)&&(t.class=Qr(a)),se(l)&&(ts(l)&&!G(l)&&(l=Te({},l)),t.style=Yr(l))}const i=he(e)?1:$r(e)?128:rl(e)?64:se(e)?4:Y(e)?2:0;return Ul(e,t,n,r,s,i,o,!0)}function Vl(e){return e?ts(e)||Cl(e)?Te({},e):e:null}function kt(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:a,transition:l}=e,f=t?Wl(s||{},t):s,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&Bl(f),ref:t&&t.ref?n&&o?G(o)?o.concat(Rr(t)):[o,Rr(t)]:Rr(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ke?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&kt(e.ssContent),ssFallback:e.ssFallback&&kt(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&r&&Rn(c,l.clone(c)),c}function Kl(e=" ",t=0){return ye(rn,null,e,t)}function Qy(e,t){const n=ye(Jn,null,e);return n.staticCount=t,n}function Xf(e="",t=!1){return t?(Ge(),ht(be,null,e)):ye(be,null,e)}function Fe(e){return e==null||typeof e=="boolean"?ye(be):G(e)?ye(ke,null,e.slice()):sn(e)?wt(e):ye(rn,null,String(e))}function wt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:kt(e)}function Io(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(G(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),Io(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Cl(t)?t._ctx=Ae:s===3&&Ae&&(Ae.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Y(t)?(t={default:t,_ctx:Ae},n=32):(t=String(t),r&64?(n=16,t=[Kl(t)]):n=8);e.children=t,e.shapeFlag|=n}function Wl(...e){const t={};for(let n=0;nPe||Ae;let Nr,Ks;{const e=Xr(),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)}};Nr=t("__VUE_INSTANCE_SETTERS__",n=>Pe=n),Ks=t("__VUE_SSR_SETTERS__",n=>Pn=n)}const dr=e=>{const t=Pe;return Nr(e),e.scope.on(),()=>{e.scope.off(),Nr(t)}},Ws=()=>{Pe&&Pe.scope.off(),Nr(null)};function ql(e){return e.vnode.shapeFlag&4}let Pn=!1;function ed(e,t=!1,n=!1){t&&Ks(t);const{props:r,children:s}=e.vnode,o=ql(e);If(e,r,o,t),Hf(e,s,n||t);const i=o?td(e,t):void 0;return t&&Ks(!1),i}function td(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,_f);const{setup:r}=n;if(r){Pt();const s=e.setupContext=r.length>1?rd(e):null,o=dr(e),i=cr(r,e,0,[e.props,s]),a=Ra(i);if(At(),o(),(a||e.sp)&&!Ct(e)&&Ao(e),a){if(i.then(Ws,Ws),t)return i.then(l=>{qs(e,l)}).catch(l=>{Ln(l,e,0)});e.asyncDep=i}else qs(e,i)}else zl(e)}function qs(e,t,n){Y(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:se(t)&&(e.setupState=Ja(t)),zl(e)}function zl(e,t,n){const r=e.type;e.render||(e.render=r.render||pt);{const s=dr(e);Pt();try{bf(e)}finally{At(),s()}}}const nd={get(e,t){return xe(e,"get",""),e[t]}};function rd(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,nd),slots:e.slots,emit:e.emit,expose:t}}function as(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Ja(To(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Gn)return Gn[n](e)},has(t,n){return n in t||n in Gn}})):e.proxy}function zs(e,t=!0){return Y(e)?e.displayName||e.name:e.name||t&&e.__name}function sd(e){return Y(e)&&"__vccOpts"in e}const Re=(e,t)=>Wu(e,t,Pn);function Oe(e,t,n){try{Hr(-1);const r=arguments.length;return r===2?se(t)&&!G(t)?sn(t)?ye(e,null,[t]):ye(e,t):ye(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&sn(n)&&(n=[n]),ye(e,t,n))}finally{Hr(1)}}const od="3.5.38";let Gs;const di=typeof window<"u"&&window.trustedTypes;if(di)try{Gs=di.createPolicy("vue",{createHTML:e=>e})}catch{}const Gl=Gs?e=>Gs.createHTML(e):e=>e,id="http://www.w3.org/2000/svg",ad="http://www.w3.org/1998/Math/MathML",vt=typeof document<"u"?document:null,hi=vt&&vt.createElement("template"),ld={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"?vt.createElementNS(id,e):t==="mathml"?vt.createElementNS(ad,e):n?vt.createElement(e,{is:n}):vt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>vt.createTextNode(e),createComment:e=>vt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>vt.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{hi.innerHTML=Gl(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const a=hi.content;if(r==="svg"||r==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},It="transition",jn="animation",ir=Symbol("_vtc"),Jl={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},cd=Te({},sl,Jl),ud=e=>(e.displayName="Transition",e.props=cd,e),fd=ud((e,{slots:t})=>Oe(rf,dd(e),t)),Gt=(e,t=[])=>{G(e)?e.forEach(n=>n(...t)):e&&e(...t)},pi=e=>e?G(e)?e.some(t=>t.length>1):e.length>1:!1;function dd(e){const t={};for(const L in e)L in Jl||(t[L]=e[L]);if(e.css===!1)return t;const{name:n="v",type:r,duration:s,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:a=`${n}-enter-to`,appearFromClass:l=o,appearActiveClass:f=i,appearToClass:c=a,leaveFromClass:u=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:d=`${n}-leave-to`}=e,m=hd(s),y=m&&m[0],C=m&&m[1],{onBeforeEnter:E,onEnter:v,onEnterCancelled:p,onLeave:_,onLeaveCancelled:w,onBeforeAppear:k=E,onAppear:A=v,onAppearCancelled:D=p}=t,R=(L,W,Z,te)=>{L._enterCancelled=te,Jt(L,W?c:a),Jt(L,W?f:i),Z&&Z()},T=(L,W)=>{L._isLeaving=!1,Jt(L,u),Jt(L,d),Jt(L,h),W&&W()},H=L=>(W,Z)=>{const te=L?A:v,F=()=>R(W,L,Z);Gt(te,[W,F]),gi(()=>{Jt(W,L?l:o),_t(W,L?c:a),pi(te)||mi(W,r,y,F)})};return Te(t,{onBeforeEnter(L){Gt(E,[L]),_t(L,o),_t(L,i)},onBeforeAppear(L){Gt(k,[L]),_t(L,l),_t(L,f)},onEnter:H(!1),onAppear:H(!0),onLeave(L,W){L._isLeaving=!0;const Z=()=>T(L,W);_t(L,u),L._enterCancelled?(_t(L,h),bi(L)):(bi(L),_t(L,h)),gi(()=>{L._isLeaving&&(Jt(L,u),_t(L,d),pi(_)||mi(L,r,C,Z))}),Gt(_,[L,Z])},onEnterCancelled(L){R(L,!1,void 0,!0),Gt(p,[L])},onAppearCancelled(L){R(L,!0,void 0,!0),Gt(D,[L])},onLeaveCancelled(L){T(L),Gt(w,[L])}})}function hd(e){if(e==null)return null;if(se(e))return[ws(e.enter),ws(e.leave)];{const t=ws(e);return[t,t]}}function ws(e){return Aa(e)}function _t(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ir]||(e[ir]=new Set)).add(t)}function Jt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[ir];n&&(n.delete(t),n.size||(e[ir]=void 0))}function gi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let pd=0;function mi(e,t,n,r){const s=e._endId=++pd,o=()=>{s===e._endId&&r()};if(n!=null)return setTimeout(o,n);const{type:i,timeout:a,propCount:l}=gd(e,t);if(!i)return r();const f=i+"end";let c=0;const u=()=>{e.removeEventListener(f,h),o()},h=d=>{d.target===e&&++c>=l&&u()};setTimeout(()=>{c(n[m]||"").split(", "),s=r(`${It}Delay`),o=r(`${It}Duration`),i=yi(s,o),a=r(`${jn}Delay`),l=r(`${jn}Duration`),f=yi(a,l);let c=null,u=0,h=0;t===It?i>0&&(c=It,u=i,h=o.length):t===jn?f>0&&(c=jn,u=f,h=l.length):(u=Math.max(i,f),c=u>0?i>f?It:jn:null,h=c?c===It?o.length:l.length:0);const d=c===It&&/\b(?:transform|all)(?:,|$)/.test(r(`${It}Property`).toString());return{type:c,timeout:u,propCount:h,hasTransform:d}}function yi(e,t){for(;e.length_i(n)+_i(e[r])))}function _i(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function bi(e){return(e?e.ownerDocument:document).body.offsetHeight}function md(e,t,n){const r=e[ir];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const jr=Symbol("_vod"),Xl=Symbol("_vsh"),Zy={name:"show",beforeMount(e,{value:t},{transition:n}){e[jr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Fn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),Fn(e,!0),r.enter(e)):r.leave(e,()=>{Fn(e,!1)}):Fn(e,t))},beforeUnmount(e,{value:t}){Fn(e,t)}};function Fn(e,t){e.style.display=t?e[jr]:"none",e[Xl]=!t}const yd=Symbol(""),_d=/(?:^|;)\s*display\s*:/;function bd(e,t,n){const r=e.style,s=he(n);let o=!1;if(n&&!s){if(t)if(he(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&Wn(r,a,"")}else for(const i in t)n[i]==null&&Wn(r,i,"");for(const i in n){i==="display"&&(o=!0);const a=n[i];a!=null?wd(e,i,!he(t)&&t?t[i]:void 0,a)||Wn(r,i,a):Wn(r,i,"")}}else if(s){if(t!==n){const i=r[yd];i&&(n+=";"+i),r.cssText=n,o=_d.test(n)}}else t&&e.removeAttribute("style");jr in e&&(e[jr]=o?r.display:"",e[Xl]&&(r.display="none"))}const vi=/\s*!important$/;function Wn(e,t,n){if(G(n))n.forEach(r=>Wn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=vd(e,t);vi.test(n)?e.setProperty(Kt(r),n.replace(vi,""),"important"):e[r]=n}}const wi=["Webkit","Moz","ms"],Es={};function vd(e,t){const n=Es[t];if(n)return n;let r=Le(t);if(r!=="filter"&&r in e)return Es[t]=r;r=Gr(r);for(let s=0;sSs||(Rd.then(()=>Ss=0),Ss=Date.now());function Pd(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;const s=n.value;if(G(s)){const o=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{o.call(r),r._stopped=!0};const i=s.slice(),a=[r];for(let l=0;le.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ad=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?md(e,r,i):t==="style"?bd(e,n,r):lr(t)?Wr(t)||Sd(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):xd(e,t,r,i))?(Ti(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Si(e,t,r,i,o,t!=="value")):e._isVueCE&&(kd(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!he(r)))?Ti(e,Le(t),r,o,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Si(e,t,r,i))};function xd(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Pi(t)&&Y(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||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 Pi(t)&&he(n)?!1:t in e}function kd(e,t){const n=e._def.props;if(!n)return!1;const r=Le(t);return Array.isArray(n)?n.some(s=>Le(s)===r):Object.keys(n).some(s=>Le(s)===r)}const Vt=e=>{const t=e.props["onUpdate:modelValue"]||!1;return G(t)?n=>vn(t,n):t};function Od(e){e.target.composing=!0}function Ai(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Je=Symbol("_assign");function xi(e,t,n){return t&&(e=e.trim()),n&&(e=Jr(e)),e}const ki={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[Je]=Vt(s);const o=r||s.props&&s.props.type==="number";Tt(e,t?"change":"input",i=>{i.target.composing||e[Je](xi(e.value,n,o))}),(n||o)&&Tt(e,"change",()=>{e.value=xi(e.value,n,o)}),t||(Tt(e,"compositionstart",Od),Tt(e,"compositionend",Ai),Tt(e,"change",Ai))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[Je]=Vt(i),e.composing)return;const a=(o||e.type==="number")&&!/^0\d/.test(e.value)?Jr(e.value):e.value,l=t??"";if(a===l)return;const f=e.getRootNode();(f instanceof Document||f instanceof ShadowRoot)&&f.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===l)||(e.value=l)}},Md={deep:!0,created(e,t,n){e[Je]=Vt(n),Tt(e,"change",()=>{const r=e._modelValue,s=An(e),o=e.checked,i=e[Je];if(G(r)){const a=mo(r,s),l=a!==-1;if(o&&!l)i(r.concat(s));else if(!o&&l){const f=[...r];f.splice(a,1),i(f)}}else if(Mn(r)){const a=new Set(r);o?a.add(s):a.delete(s),i(a)}else i(Yl(e,o))})},mounted:Oi,beforeUpdate(e,t,n){e[Je]=Vt(n),Oi(e,t,n)}};function Oi(e,{value:t,oldValue:n},r){e._modelValue=t;let s;if(G(t))s=mo(t,r.props.value)>-1;else if(Mn(t))s=t.has(r.props.value);else{if(t===n)return;s=Bt(t,Yl(e,!0))}e.checked!==s&&(e.checked=s)}const Id={created(e,{value:t},n){e.checked=Bt(t,n.props.value),e[Je]=Vt(n),Tt(e,"change",()=>{e[Je](An(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[Je]=Vt(r),t!==n&&(e.checked=Bt(t,r.props.value))}},Ld={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const s=Mn(t);Tt(e,"change",()=>{const o=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?Jr(An(i)):An(i));e[Je](e.multiple?s?new Set(o):o:o[0]),e._assigning=!0,xt(()=>{e._assigning=!1})}),e[Je]=Vt(r)},mounted(e,{value:t}){Mi(e,t)},beforeUpdate(e,t,n){e[Je]=Vt(n)},updated(e,{value:t}){e._assigning||Mi(e,t)}};function Mi(e,t){const n=e.multiple,r=G(t);if(!(n&&!r&&!Mn(t))){for(let s=0,o=e.options.length;sString(f)===String(a)):i.selected=mo(t,a)>-1}else i.selected=t.has(a);else if(Bt(An(i),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function An(e){return"_value"in e?e._value:e.value}function Yl(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const e_={created(e,t,n){vr(e,t,n,null,"created")},mounted(e,t,n){vr(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){vr(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){vr(e,t,n,r,"updated")}};function Dd(e,t){switch(e){case"SELECT":return Ld;case"TEXTAREA":return ki;default:switch(t){case"checkbox":return Md;case"radio":return Id;default:return ki}}}function vr(e,t,n,r,s){const i=Dd(e.tagName,n.props&&n.props.type)[s];i&&i(e,t,n,r)}const $d=["ctrl","shift","alt","meta"],Hd={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)=>$d.some(n=>e[`${n}Key`]&&!t.includes(n))},t_=(e,t)=>{if(!e)return e;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=Kt(s.key);if(t.some(i=>i===o||Nd[i]===o))return e(s)}))},Ql=Te({patchProp:Ad},ld);let Yn,Ii=!1;function jd(){return Yn||(Yn=jf(Ql))}function Fd(){return Yn=Ii?Yn:Ff(Ql),Ii=!0,Yn}const Bd=((...e)=>{const t=jd().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=ec(r);if(!s)return;const o=t._component;!Y(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const i=n(s,!1,Zl(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t}),Ud=((...e)=>{const t=Fd().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=ec(r);if(s)return n(s,!0,Zl(s))},t});function Zl(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function ec(e){return he(e)?document.querySelector(e):e}const Vd=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,Kd=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,Wd=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function qd(e,t){if(e==="__proto__"||e==="constructor"&&t&&typeof t=="object"&&"prototype"in t){zd(e);return}return t}function zd(e){console.warn(`[destr] Dropping "${e}" key to prevent prototype pollution.`)}function Gd(e,t={}){if(typeof e!="string")return e;if(e[0]==='"'&&e[e.length-1]==='"'&&e.indexOf("\\")===-1)return e.slice(1,-1);const n=e.trim();if(n.length<=9)switch(n.toLowerCase()){case"true":return!0;case"false":return!1;case"undefined":return;case"null":return null;case"nan":return Number.NaN;case"infinity":return Number.POSITIVE_INFINITY;case"-infinity":return Number.NEGATIVE_INFINITY}if(!Wd.test(e)){if(t.strict)throw new SyntaxError("[destr] Invalid JSON");return e}try{if(Vd.test(e)||Kd.test(e)){if(t.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(e,qd)}return JSON.parse(e)}catch(r){if(t.strict)throw r;return e}}const tc=/#/g,nc=/&/g,Jd=/\//g,Xd=/=/g,Yd=/\?/g,ls=/\+/g,Qd=/%5e/gi,Zd=/%60/gi,eh=/%7c/gi,th=/%20/gi,nh=/%2f/gi,rh=/%252f/gi;function rc(e){return encodeURI(""+e).replace(eh,"|")}function Js(e){return rc(typeof e=="string"?e:JSON.stringify(e)).replace(ls,"%2B").replace(th,"+").replace(tc,"%23").replace(nc,"%26").replace(Zd,"`").replace(Qd,"^").replace(Jd,"%2F")}function Ts(e){return Js(e).replace(Xd,"%3D")}function sh(e){return rc(e).replace(tc,"%23").replace(Yd,"%3F").replace(rh,"%2F").replace(nc,"%26").replace(ls,"%2B")}function ar(e=""){try{return decodeURIComponent(""+e)}catch{return""+e}}function oh(e){return ar(e.replace(nh,"%252F"))}function ih(e){return ar(e.replace(ls," "))}function ah(e){return ar(e.replace(ls," "))}function sc(e=""){const t=Object.create(null);e[0]==="?"&&(e=e.slice(1));for(const n of e.split("&")){const r=n.match(/([^=]+)=?(.*)/)||[];if(r.length<2)continue;const s=ih(r[1]);if(s==="__proto__"||s==="constructor")continue;const o=ah(r[2]||"");t[s]===void 0?t[s]=o:Array.isArray(t[s])?t[s].push(o):t[s]=[t[s],o]}return t}function lh(e,t){return(typeof t=="number"||typeof t=="boolean")&&(t=String(t)),t?Array.isArray(t)?t.map(n=>`${Ts(e)}=${Js(n)}`).join("&"):`${Ts(e)}=${Js(t)}`:Ts(e)}function ch(e){return Object.keys(e).filter(t=>e[t]!==void 0).map(t=>lh(t,e[t])).filter(Boolean).join("&")}const uh=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,fh=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,dh=/^([/\\]\s*){2,}[^/\\]/,hh=/^[\s\0]*(blob|data|javascript|vbscript):$/i,ph=/\/$|\/\?|\/#/,gh=/^\.?\//;function Dn(e,t={}){return typeof t=="boolean"&&(t={acceptRelative:t}),t.strict?uh.test(e):fh.test(e)||(t.acceptRelative?dh.test(e):!1)}function Xs(e){return!!e&&hh.test(e)}function Ys(e="",t){return t?ph.test(e):e.endsWith("/")}function Fr(e="",t){if(!t)return(Ys(e)?e.slice(0,-1):e)||"/";if(!Ys(e,!0))return e||"/";let n=e,r="";const s=e.indexOf("#");s!==-1&&(n=e.slice(0,s),r=e.slice(s));const[o,...i]=n.split("?");return((o.endsWith("/")?o.slice(0,-1):o)||"/")+(i.length>0?`?${i.join("?")}`:"")+r}function mh(e="",t){if(!t)return e.endsWith("/")?e:e+"/";if(Ys(e,!0))return e||"/";let n=e,r="";const s=e.indexOf("#");if(s!==-1&&(n=e.slice(0,s),r=e.slice(s),!n))return r;const[o,...i]=n.split("?");return o+"/"+(i.length>0?`?${i.join("?")}`:"")+r}function yh(e,t){if(ic(t)||Dn(e))return e;const n=Fr(t);if(e.startsWith(n)){const r=e[n.length];if(!r||r==="/"||r==="?")return e}return ac(n,e)}function Li(e,t){if(ic(t))return e;const n=Fr(t);if(!e.startsWith(n))return e;const r=e[n.length];return r&&r!=="/"&&r!=="?"?e:"/"+e.slice(n.length).replace(/^\/+/,"")}function oc(e,t){const n=Lo(e),r={...sc(n.search),...t};return n.search=ch(r),bh(n)}function ic(e){return!e||e==="/"}function _h(e){return e&&e!=="/"}function ac(e,...t){let n=e||"";for(const r of t.filter(s=>_h(s)))if(n){const s=r.replace(gh,"");n=mh(n)+s}else n=r;return n}function lc(...e){const t=/\/(?!\/)/,n=e.filter(Boolean),r=[];let s=0;for(const i of n)if(!(!i||i==="/")){for(const[a,l]of i.split(t).entries())if(!(!l||l===".")){if(l===".."){if(r.length===1&&Dn(r[0]))continue;r.pop(),s--;continue}if(a===1&&r[r.length-1]?.endsWith(":/")){r[r.length-1]+="/"+l;continue}r.push(l),s++}}let o=r.join("/");return s>=0?n[0]?.startsWith("/")&&!o.startsWith("/")?o="/"+o:n[0]?.startsWith("./")&&!o.startsWith("./")&&(o="./"+o):o="../".repeat(-1*s)+o,n[n.length-1]?.endsWith("/")&&!o.endsWith("/")&&(o+="/"),o}function cc(e,t){return ar(Fr(e))===ar(Fr(t))}const uc=Symbol.for("ufo:protocolRelative");function Lo(e="",t){const n=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(n){const[,u,h=""]=n;return{protocol:u.toLowerCase(),pathname:h,href:u+h,auth:"",host:"",search:"",hash:""}}if(!Dn(e,{acceptRelative:!0}))return Di(e);const[,r="",s,o=""]=e.replace(/\\/g,"/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[];let[,i="",a=""]=o.match(/([^#/?]*)(.*)?/)||[];r==="file:"&&(a=a.replace(/\/(?=[A-Za-z]:)/,""));const{pathname:l,search:f,hash:c}=Di(a);return{protocol:r.toLowerCase(),auth:s?s.slice(0,Math.max(0,s.length-1)):"",host:i,pathname:l,search:f,hash:c,[uc]:!r}}function Di(e=""){const[t="",n="",r=""]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:n,hash:r}}function bh(e){const t=e.pathname||"",n=e.search?(e.search.startsWith("?")?"":"?")+e.search:"",r=e.hash||"",s=e.auth?e.auth+"@":"",o=e.host||"";return(e.protocol||e[uc]?(e.protocol||"")+"//":"")+s+o+t+n+r}class vh extends Error{constructor(t,n){super(t,n),this.name="FetchError",n?.cause&&!this.cause&&(this.cause=n.cause)}}function wh(e){const t=e.error?.message||e.error?.toString()||"",n=e.request?.method||e.options?.method||"GET",r=e.request?.url||String(e.request)||"/",s=`[${n}] ${JSON.stringify(r)}`,o=e.response?`${e.response.status} ${e.response.statusText}`:"",i=`${s}: ${o}${t?` ${t}`:""}`,a=new vh(i,e.error?{cause:e.error}:void 0);for(const l of["request","options","response"])Object.defineProperty(a,l,{get(){return e[l]}});for(const[l,f]of[["data","_data"],["status","status"],["statusCode","status"],["statusText","statusText"],["statusMessage","statusText"]])Object.defineProperty(a,l,{get(){return e.response&&e.response[f]}});return a}const Eh=new Set(Object.freeze(["PATCH","POST","PUT","DELETE"]));function $i(e="GET"){return Eh.has(e.toUpperCase())}function Sh(e){if(e===void 0)return!1;const t=typeof e;return t==="string"||t==="number"||t==="boolean"||t===null?!0:t!=="object"?!1:Array.isArray(e)?!0:e.buffer||e instanceof FormData||e instanceof URLSearchParams?!1:e.constructor&&e.constructor.name==="Object"||typeof e.toJSON=="function"}const Th=new Set(["image/svg","application/xml","application/xhtml","application/html"]),Rh=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function Ch(e=""){if(!e)return"json";const t=e.split(";").shift()||"";return Rh.test(t)?"json":t==="text/event-stream"?"stream":Th.has(t)||t.startsWith("text/")?"text":"blob"}function Ph(e,t,n,r){const s=Ah(t?.headers??e?.headers,n?.headers,r);let o;return(n?.query||n?.params||t?.params||t?.query)&&(o={...n?.params,...n?.query,...t?.params,...t?.query}),{...n,...t,query:o,params:o,headers:s}}function Ah(e,t,n){if(!t)return new n(e);const r=new n(t);if(e)for(const[s,o]of Symbol.iterator in e||Array.isArray(e)?e:new n(e))r.set(s,o);return r}async function wr(e,t){if(t)if(Array.isArray(t))for(const n of t)await n(e);else await t(e)}const xh=new Set([408,409,425,429,500,502,503,504]),kh=new Set([101,204,205,304]);function fc(e={}){const{fetch:t=globalThis.fetch,Headers:n=globalThis.Headers,AbortController:r=globalThis.AbortController}=e;async function s(a){const l=a.error&&a.error.name==="AbortError"&&!a.options.timeout||!1;if(a.options.retry!==!1&&!l){let c;typeof a.options.retry=="number"?c=a.options.retry:c=$i(a.options.method)?0:1;const u=a.response&&a.response.status||500;if(c>0&&(Array.isArray(a.options.retryStatusCodes)?a.options.retryStatusCodes.includes(u):xh.has(u))){const h=typeof a.options.retryDelay=="function"?a.options.retryDelay(a):a.options.retryDelay||0;return h>0&&await new Promise(d=>setTimeout(d,h)),o(a.request,{...a.options,retry:c-1})}}const f=wh(a);throw Error.captureStackTrace&&Error.captureStackTrace(f,o),f}const o=async function(l,f={}){const c={request:l,options:Ph(l,f,e.defaults,n),response:void 0,error:void 0};if(c.options.method&&(c.options.method=c.options.method.toUpperCase()),c.options.onRequest&&(await wr(c,c.options.onRequest),c.options.headers instanceof n||(c.options.headers=new n(c.options.headers||{}))),typeof c.request=="string"&&(c.options.baseURL&&(c.request=yh(c.request,c.options.baseURL)),c.options.query&&(c.request=oc(c.request,c.options.query),delete c.options.query),"query"in c.options&&delete c.options.query,"params"in c.options&&delete c.options.params),c.options.body&&$i(c.options.method))if(Sh(c.options.body)){const d=c.options.headers.get("content-type");typeof c.options.body!="string"&&(c.options.body=d==="application/x-www-form-urlencoded"?new URLSearchParams(c.options.body).toString():JSON.stringify(c.options.body)),d||c.options.headers.set("content-type","application/json"),c.options.headers.has("accept")||c.options.headers.set("accept","application/json")}else("pipeTo"in c.options.body&&typeof c.options.body.pipeTo=="function"||typeof c.options.body.pipe=="function")&&("duplex"in c.options||(c.options.duplex="half"));let u;if(!c.options.signal&&c.options.timeout){const d=new r;u=setTimeout(()=>{const m=new Error("[TimeoutError]: The operation was aborted due to timeout");m.name="TimeoutError",m.code=23,d.abort(m)},c.options.timeout),c.options.signal=d.signal}try{c.response=await t(c.request,c.options)}catch(d){return c.error=d,c.options.onRequestError&&await wr(c,c.options.onRequestError),await s(c)}finally{u&&clearTimeout(u)}if((c.response.body||c.response._bodyInit)&&!kh.has(c.response.status)&&c.options.method!=="HEAD"){const d=(c.options.parseResponse?"json":c.options.responseType)||Ch(c.response.headers.get("content-type")||"");switch(d){case"json":{const m=await c.response.text(),y=c.options.parseResponse||Gd;c.response._data=y(m);break}case"stream":{c.response._data=c.response.body||c.response._bodyInit;break}default:c.response._data=await c.response[d]()}}return c.options.onResponse&&await wr(c,c.options.onResponse),!c.options.ignoreResponseError&&c.response.status>=400&&c.response.status<600?(c.options.onResponseError&&await wr(c,c.options.onResponseError),await s(c)):c.response},i=async function(l,f){return(await o(l,f))._data};return i.raw=o,i.native=(...a)=>t(...a),i.create=(a={},l={})=>fc({...e,...l,defaults:{...e.defaults,...l.defaults,...a}}),i}const Br=(function(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")})(),Oh=Br.fetch?(...e)=>Br.fetch(...e):()=>Promise.reject(new Error("[ofetch] global.fetch is not supported!")),Mh=Br.Headers,Ih=Br.AbortController,Lh=fc({fetch:Oh,Headers:Mh,AbortController:Ih}),Dh=Lh,$h=()=>window?.__NUXT__?.config||window?.useNuxtApp?.().payload?.config,Do=()=>$h().app,Hh=()=>Do().baseURL,Nh=()=>Do().buildAssetsDir,$o=(...e)=>lc(dc(),Nh(),...e),dc=(...e)=>{const t=Do(),n=t.cdnURL||t.baseURL;return e.length?lc(n,...e):n};globalThis.__buildAssetsURL=$o,globalThis.__publicAssetsURL=dc;globalThis.$fetch||(globalThis.$fetch=Dh.create({baseURL:Hh()}));"global"in globalThis||(globalThis.global=globalThis);function Qs(e,t={},n){for(const r in e){const s=e[r],o=n?`${n}:${r}`:r;typeof s=="object"&&s!==null?Qs(s,t,o):typeof s=="function"&&(t[o]=s)}return t}const hc=(()=>{if(console.createTask)return console.createTask;const e={run:t=>t()};return()=>e})();function pc(e,t,n,r){for(let s=n;se[s](...t)):e[s](...t);if(o&&typeof o.then=="function")return Promise.resolve(o).then(()=>pc(e,t,s+1,r))}catch(o){return Promise.reject(o)}}function jh(e,t,n){if(e.length>0)return pc(e,t,0,hc(n))}function Fh(e,t,n){if(e.length>0){const r=hc(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}}function Rs(e,t){for(const n of[...e])n(t)}var Bh=class{_hooks;_before;_after;_deprecatedHooks;_deprecatedMessages;constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(e,t,n={}){if(!e||typeof t!="function")return()=>{};const r=e;let s;for(;this._deprecatedHooks[e];)s=this._deprecatedHooks[e],e=s.to;if(s&&!n.allowDeprecated){let o=s.message;o||(o=`${r} hook has been deprecated`+(s.to?`, please use ${s.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(o)||(console.warn(o),this._deprecatedMessages.add(o))}if(!t.name)try{Object.defineProperty(t,"name",{get:()=>"_"+e.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[e]=this._hooks[e]||[],this._hooks[e].push(t),()=>{t&&(this.removeHook(e,t),t=void 0)}}hookOnce(e,t){let n,r=(...s)=>(typeof n=="function"&&n(),n=void 0,r=void 0,t(...s));return n=this.hook(e,r),n}removeHook(e,t){const n=this._hooks[e];if(n){const r=n.indexOf(t);r!==-1&&n.splice(r,1),n.length===0&&(this._hooks[e]=void 0)}}clearHook(e){this._hooks[e]=void 0}deprecateHook(e,t){this._deprecatedHooks[e]=typeof t=="string"?{to:t}:t;const n=this._hooks[e]||[];this._hooks[e]=void 0;for(const r of n)this.hook(e,r)}deprecateHooks(e){for(const t in e)this.deprecateHook(t,e[t])}addHooks(e){const t=Qs(e),n=Object.keys(t).map(r=>this.hook(r,t[r]));return()=>{for(const r of n)r();n.length=0}}removeHooks(e){const t=Qs(e);for(const n in t)this.removeHook(n,t[n])}removeAllHooks(){this._hooks={}}callHook(e,...t){return this.callHookWith(jh,e,t)}callHookParallel(e,...t){return this.callHookWith(Fh,e,t)}callHookWith(e,t,n){const r=this._before||this._after?{name:t,args:n,context:{}}:void 0;this._before&&Rs(this._before,r);const s=e(this._hooks[t]?[...this._hooks[t]]:[],n,t);return s instanceof Promise?s.finally(()=>{this._after&&r&&Rs(this._after,r)}):(this._after&&r&&Rs(this._after,r),s)}beforeEach(e){return this._before=this._before||[],this._before.push(e),()=>{if(this._before!==void 0){const t=this._before.indexOf(e);t!==-1&&this._before.splice(t,1)}}}afterEach(e){return this._after=this._after||[],this._after.push(e),()=>{if(this._after!==void 0){const t=this._after.indexOf(e);t!==-1&&this._after.splice(t,1)}}}};function gc(){return new Bh}function Uh(e={}){let t,n=!1;const r=i=>{if(t&&t!==i)throw new Error("Context conflict")};let s;if(e.asyncContext){const i=e.AsyncLocalStorage||globalThis.AsyncLocalStorage;i?s=new i:console.warn("[unctx] `AsyncLocalStorage` is not provided.")}const o=()=>{if(s){const i=s.getStore();if(i!==void 0)return i}return t};return{use:()=>{const i=o();if(i===void 0)throw new Error("Context is not available");return i},tryUse:()=>o(),set:(i,a)=>{a||r(i),t=i,n=!0},unset:()=>{t=void 0,n=!1},call:(i,a)=>{r(i),t=i;try{return s?s.run(i,a):a()}finally{n||(t=void 0)}},async callAsync(i,a){t=i;const l=()=>{t=i},f=()=>t===i?l:void 0;Zs.add(f);try{const c=s?s.run(i,a):a();return n||(t=void 0),await c}finally{Zs.delete(f)}}}}function Vh(e={}){const t={};return{get(n,r={}){return t[n]||(t[n]=Uh({...e,...r})),t[n]}}}const Ur=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof global<"u"?global:typeof window<"u"?window:{},Hi="__unctx__",Kh=Ur[Hi]||(Ur[Hi]=Vh()),Wh=(e,t={})=>Kh.get(e,t),Ni="__unctx_async_handlers__",Zs=Ur[Ni]||(Ur[Ni]=new Set);function Qn(e){const t=[];for(const s of Zs){const o=s();o&&t.push(o)}const n=()=>{for(const s of t)s()};let r=e();return r&&typeof r=="object"&&"catch"in r&&(r=r.catch(s=>{throw n(),s})),[r,n]}const ji=!1,Fi=!1,qh=!1,Bi={id:"__nuxt-loader"},r_={componentName:"NuxtLink",prefetch:!0,prefetchOn:{visibility:!0}},zh={deep:!1},Gh={},Jh="#__nuxt",mc="nuxt-app",Ui=36e5,Xh="vite:preloadError";function yc(e=mc){return Wh(e,{asyncContext:!1})}const Yh="__nuxt_plugin";function Qh(e){let t=0;const n={_id:e.id||mc||"nuxt-app",_scope:yo(),provide:void 0,versions:{get nuxt(){return"4.4.8"},get vue(){return n.vueApp.version}},payload:Ze({...e.ssrContext?.payload||{},data:Ze({}),state:ot({}),once:new Set,_errors:Ze({})}),static:{data:{}},runWithContext(s){return n._scope.active&&!Zr()?n._scope.run(()=>Vi(n,s)):Vi(n,s)},isHydrating:!0,deferHydration(){if(!n.isHydrating)return()=>{};t++;let s=!1;return()=>{if(!s&&(s=!0,t--,t===0))return n.isHydrating=!1,n.callHook("app:suspense:resolve")}},_asyncDataPromises:{},_asyncData:Ze({}),_state:Ze({}),_payloadRevivers:{},...e};{const s=window.__NUXT__;if(s)for(const o in s)switch(o){case"data":case"state":case"_errors":Object.assign(n.payload[o],s[o]);break;default:n.payload[o]=s[o]}}n.hooks=gc(),n.hook=n.hooks.hook;{const s=n.hooks.callHook;n.hooks.callHook=(o,...i)=>Promise.resolve().then(()=>s(o,...i))}n.callHook=n.hooks.callHook,n.provide=(s,o)=>{const i="$"+s;Er(n,i,o),Er(n.vueApp.config.globalProperties,i,o)},Er(n.vueApp,"$nuxt",n),Er(n.vueApp.config.globalProperties,"$nuxt",n);{window.addEventListener(Xh,o=>{n.callHook("app:chunkError",{error:o.payload}),o.payload?.message?.includes("Unable to preload CSS")&&o.preventDefault()}),window.useNuxtApp||=ve;const s=n.hook("app:error",(...o)=>{console.error("[nuxt] error caught during app initialization",...o)});n.hook("app:mounted",s)}const r=n.payload.config;return n.provide("config",r),n}function Zh(e,t){t.hooks&&e.hooks.addHooks(t.hooks)}async function ep(e,t){if(typeof t=="function"){const{provide:n}=await e.runWithContext(()=>t(e))||{};if(n&&typeof n=="object")for(const r in n)e.provide(r,n[r])}}async function tp(e,t){const n=new Set,r=[],s=[];let o,i=0;async function a(l){const f=l.dependsOn?.filter(c=>t.some(u=>u._name===c)&&!n.has(c))??[];if(f.length>0)r.push([new Set(f),l]);else{const c=ep(e,l).then(async()=>{l._name&&(n.add(l._name),await Promise.all(r.map(async([u,h])=>{u.has(l._name)&&(u.delete(l._name),u.size===0&&(i++,await a(h)))})))}).catch(u=>{if(!l.parallel&&!e.payload.error)throw u;o||=u});l.parallel?s.push(c):await c}}for(const l of t)Zh(e,l);for(const l of t)await a(l);if(await Promise.all(s),i)for(let l=0;l{}),e,{[Yh]:!0,_name:t})}const np=Ye;function Vi(e,t,n){const r=()=>t();return yc(e._id).set(e),e.vueApp.runWithContext(r)}function rp(e){let t;return ns()&&(t=an()?.appContext.app.$nuxt),t||=yc(e).tryUse(),t||null}function ve(e){const t=rp(e);if(!t)throw new Error("[nuxt] instance unavailable");return t}function Ho(e){return ve().$config}function Er(e,t,n){Object.defineProperty(e,t,{get:()=>n})}function Cs(e){if(e===null||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null||Symbol.iterator in e?!1:Symbol.toStringTag in e?Object.prototype.toString.call(e)==="[object Module]":!0}function eo(e,t,n=".",r){if(!Cs(t))return eo(e,{},n,r);const s={...t};for(const o of Object.keys(e)){if(o==="__proto__"||o==="constructor")continue;const i=e[o];i!=null&&(r&&r(s,o,i,n)||(Array.isArray(i)&&Array.isArray(s[o])?s[o]=[...i,...s[o]]:Cs(i)&&Cs(s[o])?s[o]=eo(i,s[o],(n?`${n}.`:"")+o.toString(),r):s[o]=i))}return s}function sp(e){return(...t)=>t.reduce((n,r)=>eo(n,r,"",e),{})}const _c=sp();function op(e,t){try{return t in e}catch{return!1}}class Ki extends Error{static __h3_error__=!0;statusCode=500;fatal=!1;unhandled=!1;statusMessage;data;cause;constructor(t,n={}){super(t,n),n.cause&&!this.cause&&(this.cause=n.cause)}toJSON(){const t={message:this.message,statusCode:to(this.statusCode,500)};return this.statusMessage&&(t.statusMessage=bc(this.statusMessage)),this.data!==void 0&&(t.data=this.data),t}}function ip(e){if(typeof e=="string")return new Ki(e);if(ap(e))return e;const t=new Ki(e.message??e.statusMessage??"",{cause:e.cause||e});if(op(e,"stack"))try{Object.defineProperty(t,"stack",{get(){return e.stack}})}catch{try{t.stack=e.stack}catch{}}if(e.data&&(t.data=e.data),e.statusCode?t.statusCode=to(e.statusCode,t.statusCode):e.status&&(t.statusCode=to(e.status,t.statusCode)),e.statusMessage?t.statusMessage=e.statusMessage:e.statusText&&(t.statusMessage=e.statusText),t.statusMessage){const n=t.statusMessage;bc(t.statusMessage)!==n&&console.warn("[h3] Please prefer using `message` for longer error messages instead of `statusMessage`. In the future, `statusMessage` will be sanitized by default.")}return e.fatal!==void 0&&(t.fatal=e.fatal),e.unhandled!==void 0&&(t.unhandled=e.unhandled),t}function ap(e){return e?.constructor?.__h3_error__===!0}const lp=/[^\u0009\u0020-\u007E]/g;function bc(e=""){return e.replace(lp,"")}function to(e,t=200){return!e||(typeof e=="string"&&(e=Number.parseInt(e,10)),e<100||e>999)?t:e}const vc=Symbol("layout-meta"),on=Symbol("route");import.meta.url.replace(/\/app\/.*$/,"/");const Ve=()=>ve()?.$router,No=()=>ns()?Ce(on,ve()._route):ve()._route;const cp=()=>{try{if(ve()._processingMiddleware)return!0}catch{return!1}return!1},s_=(e,t)=>{e||="/";const n=typeof e=="string"?e:"path"in e?up(e):Ve().resolve(e).href;if(t?.open){const{protocol:f}=new URL(n,window.location.href);if(f&&Xs(f))throw new Error(`Cannot navigate to a URL with '${f}' protocol.`);const{target:c="_blank",windowFeatures:u={}}=t.open,h=[];for(const[d,m]of Object.entries(u))m!==void 0&&h.push(`${d.toLowerCase()}=${m}`);return open(n,c,h.join(", ")),Promise.resolve()}const r=Dn(n,{acceptRelative:!0}),s=t?.external||r;if(s){if(!t?.external)throw new Error("Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.");const{protocol:f}=new URL(n,window.location.href);if(f&&Xs(f))throw new Error(`Cannot navigate to a URL with '${f}' protocol.`)}const o=cp();if(!s&&o){if(t?.replace){if(typeof e=="string"){const{pathname:f,search:c,hash:u}=Lo(e);return{path:f,...c&&{query:sc(c)},...u&&{hash:u},replace:!0}}return{...e,replace:!0}}return e}const i=Ve(),a=ve();if(s)return a._scope.stop(),t?.replace?location.replace(n):location.href=n,o?a.isHydrating?new Promise(()=>{}):!1:Promise.resolve();const l=typeof e=="string"?fp(e):e;return t?.replace?i.replace(l):i.push(l)};function up(e){return oc(e.path||"",e.query||{})+(e.hash||"")}function fp(e){const t=Lo(e);return sh(oh(t.pathname))+t.search+t.hash}const wc="__nuxt_error",cs=()=>Xa(ve().payload,"error"),Zt=e=>{const t=Ft(e);try{const n=cs();ve().hooks.callHook("app:error",t),n.value||=t}catch{throw t}return t},dp=async(e={})=>{const t=ve(),n=cs();t.callHook("app:error:cleared",e),e.redirect&&await Ve().replace(e.redirect),n.value=void 0},Ec=e=>!!e&&typeof e=="object"&&wc in e,Ft=e=>{typeof e!="string"&&e.statusText&&(e.message??=e.statusText);const t=ip(e);return Object.defineProperty(t,wc,{value:!0,configurable:!1,writable:!1}),Object.defineProperty(t,"status",{get:()=>t.statusCode,configurable:!0}),Object.defineProperty(t,"statusText",{get:()=>t.statusMessage,configurable:!0}),t};let Sc;const xn=e=>Sc=e,Tc=Symbol();function no(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Zn;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Zn||(Zn={}));function hp(){const e=yo(!0),t=e.run(()=>nt({}));let n=[],r=[];const s=To({install(o){xn(s),s._a=o,o.provide(Tc,s),o.config.globalProperties.$pinia=s,r.forEach(i=>n.push(i)),r=[]},use(o){return this._a?n.push(o):r.push(o),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return s}const Rc=()=>{};function Wi(e,t,n,r=Rc){e.add(t);const s=()=>{e.delete(t)&&r()};return!n&&Zr()&&Ia(s),s}function dn(e,...t){e.forEach(n=>{n(...t)})}const pp=e=>e(),qi=Symbol(),Ps=Symbol();function ro(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],s=e[n];no(s)&&no(r)&&e.hasOwnProperty(n)&&!pe(r)&&!gt(r)?e[n]=ro(s,r):e[n]=r}return e}const gp=Symbol();function mp(e){return!no(e)||!Object.prototype.hasOwnProperty.call(e,gp)}const{assign:Dt}=Object;function yp(e){return!!(pe(e)&&e.effect)}function _p(e,t,n,r){const{state:s,actions:o,getters:i}=t,a=n.state.value[e];let l;function f(){a||(n.state.value[e]=s?s():{});const c=Bu(n.state.value[e]);return Dt(c,o,Object.keys(i||{}).reduce((u,h)=>(u[h]=To(Re(()=>{xn(n);const d=n._s.get(e);return i[h].call(d,d)})),u),{}))}return l=Cc(e,f,t,n,r,!0),l}function Cc(e,t,n={},r,s,o){let i;const a=Dt({actions:{}},n),l={deep:!0};let f,c,u=new Set,h=new Set,d;const m=r.state.value[e];!o&&!m&&(r.state.value[e]={});let y;function C(D){let R;f=c=!1,typeof D=="function"?(D(r.state.value[e]),R={type:Zn.patchFunction,storeId:e,events:d}):(ro(r.state.value[e],D),R={type:Zn.patchObject,payload:D,storeId:e,events:d});const T=y=Symbol();xt().then(()=>{y===T&&(f=!0)}),c=!0,dn(u,R,r.state.value[e])}const E=o?function(){const{state:R}=n,T=R?R():{};this.$patch(H=>{Dt(H,T)})}:Rc;function v(){i.stop(),u.clear(),h.clear(),r._s.delete(e)}const p=(D,R="")=>{if(qi in D)return D[Ps]=R,D;const T=function(){xn(r);const H=Array.from(arguments),L=new Set,W=new Set;function Z(q){L.add(q)}function te(q){W.add(q)}dn(h,{args:H,name:T[Ps],store:w,after:Z,onError:te});let F;try{F=D.apply(this&&this.$id===e?this:w,H)}catch(q){throw dn(W,q),q}return F instanceof Promise?F.then(q=>(dn(L,q),q)).catch(q=>(dn(W,q),Promise.reject(q))):(dn(L,F),F)};return T[qi]=!0,T[Ps]=R,T},_={_p:r,$id:e,$onAction:Wi.bind(null,h),$patch:C,$reset:E,$subscribe(D,R={}){const T=Wi(u,D,R.detached,()=>H()),H=i.run(()=>Rt(()=>r.state.value[e],L=>{(R.flush==="sync"?c:f)&&D({storeId:e,type:Zn.direct,events:d},L)},Dt({},l,R)));return T},$dispose:v},w=ot(_);r._s.set(e,w);const A=(r._a&&r._a.runWithContext||pp)(()=>r._e.run(()=>(i=yo()).run(()=>t({action:p}))));for(const D in A){const R=A[D];if(pe(R)&&!yp(R)||gt(R))o||(m&&mp(R)&&(pe(R)?R.value=m[D]:ro(R,m[D])),r.state.value[e][D]=R);else if(typeof R=="function"){const T=p(R,D);A[D]=T,a.actions[D]=R}}return Dt(w,A),Dt(ne(w),A),Object.defineProperty(w,"$state",{get:()=>r.state.value[e],set:D=>{C(R=>{Dt(R,D)})}}),r._p.forEach(D=>{Dt(w,i.run(()=>D({store:w,app:r._a,pinia:r,options:a})))}),m&&o&&n.hydrate&&n.hydrate(w.$state,m),f=!0,c=!0,w}function bp(e,t,n){let r;const s=typeof t=="function";r=s?n:t;function o(i,a){const l=ns();return i=i||(l?Ce(Tc,null):null),i&&xn(i),i=Sc,i._s.has(e)||(s?Cc(e,t,r,i):_p(e,r,i)),i._s.get(e)}return o.$id=e,o}const vp=-1,wp=-2,Ep=-3,Sp=-4,Tp=-5,Rp=-6,Cp=-7,Pc=2**32-1,so=Pc-1;function Pp(e){return!(!Number.isInteger(e)||e<0||e>so)}function Ap(e){return!(!Number.isInteger(e)||e<0||e>Pc)}function xp(e){return Uint8Array.fromBase64(e).buffer}function kp(e){return Uint8Array.from(Buffer.from(e,"base64")).buffer}function Op(e){const t=atob(e),n=t.length,r=new Uint8Array(n);for(let s=0;s=f)throw new Error("Invalid input");c[h]=o(l[u+1])}c.length=f}else{const f=new Array(l.length);r[i]=f;for(let c=0;c`${r}:${String(s)}`).join(",")}`}function Vr(e,t,n){typeof e==="function"&&(!n||n!=="titleTemplate"&&!(n[0]==="o"&&n[1]==="n"))&&(e=e());const s=t?t(n,e):e;if(Array.isArray(s))return s.map(o=>Vr(o,t));if(s?.constructor===Object){const o={};for(const i of Object.keys(s))o[i]=Vr(s[i],t,i);return o}return s}function qp(e,t){const n=e==="style"?new Map:new Set;function r(s){if(s==null||s===void 0)return;const o=String(s).trim();if(o)if(e==="style"){const[i,...a]=o.split(":").map(l=>l?l.trim():"");i&&a.length&&n.set(i,a.join(":"))}else o.split(" ").filter(Boolean).forEach(i=>n.add(i))}return typeof t=="string"?e==="style"?t.split(";").forEach(r):r(t):Array.isArray(t)?t.forEach(s=>r(s)):t&&typeof t=="object"&&Object.entries(t).forEach(([s,o])=>{o&&o!=="false"&&(e==="style"?n.set(String(s).trim(),String(o)):r(s))}),n}function kc(e,t){if(e.props=e.props||{},!t)return e;if(e.tag==="templateParams")return e.props=t,e;const n=oo.has(e.tag)||e.tag==="htmlAttrs"||e.tag==="bodyAttrs";return Object.entries(t).forEach(([r,s])=>{if(r==="__proto__"||r==="constructor"||r==="prototype")return;if(s===null){e.props[r]=null;return}if(r==="class"||r==="style"){e.props[r]=qp(r,s);return}if(Bp.has(r)){if((r==="textContent"||r==="innerHTML")&&typeof s=="object"){let f=t.type;if(t.type||(f="application/json"),!f?.endsWith("json")&&f!=="speculationrules")return;t.type=f,e.props.type=f,e[r]=JSON.stringify(s)}else e[r]=s;return}const o=r.startsWith("data-"),i=n&&!o?r.toLowerCase():r,a=String(s),l=e.tag==="meta"&&i==="content";a==="true"||a===""?e.props[i]=o||l?a:!0:!s&&o&&a==="false"?e.props[i]="false":s!==void 0&&(e.props[i]=s)}),e}function zp(e,t){const n=typeof t=="object"&&typeof t!="function"?t:{[e==="script"||e==="noscript"||e==="style"?"innerHTML":"textContent"]:t},r=kc({tag:e,props:{}},n);return r.key&&Hp.has(r.tag)&&(r.props["data-hid"]=r._h=r.key),r.tag==="script"&&typeof r.innerHTML=="object"&&(r.innerHTML=JSON.stringify(r.innerHTML),r.props.type=r.props.type||"application/json"),Array.isArray(r.props.content)?r.props.content.map(s=>({...r,props:{...r.props,content:s}})):r}function Gp(e,t){if(!e)return[];typeof e=="function"&&(e=e());const n=(s,o)=>{for(let i=0;i{if(o!==void 0)for(const i of Array.isArray(o)?o:[o])r.push(zp(s,i))}),r.flat()}const zi=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,Gi={base:-10,title:10},Jp={critical:-8,high:-1,low:2},Ji={meta:{"content-security-policy":-30,charset:-20,viewport:-15},link:{preconnect:20,stylesheet:60,preload:70,modulepreload:70,prefetch:90,"dns-prefetch":90,prerender:90},script:{async:30,defer:80,sync:50},style:{imported:40,sync:60}},Xp=/@import/,Bn=e=>e===""||e===!0;function Yp(e,t){if(typeof t.tagPriority=="number")return t.tagPriority;let n=100;const r=Jp[t.tagPriority]||0,s=e.resolvedOptions.disableCapoSorting?{link:{},script:{},style:{}}:Ji;if(t.tag in Gi)n=Gi[t.tag];else if(t.tag==="meta"){const o=t.props["http-equiv"]==="content-security-policy"?"content-security-policy":t.props.charset?"charset":t.props.name==="viewport"?"viewport":null;o&&(n=Ji.meta[o])}else if(t.tag==="link"&&t.props.rel)n=s.link[t.props.rel];else if(t.tag==="script"){const o=String(t.props.type);Bn(t.props.async)?n=s.script.async:t.props.src&&!Bn(t.props.defer)&&!Bn(t.props.async)&&o!=="module"&&!o.endsWith("json")||t.innerHTML&&!o.endsWith("json")?n=s.script.sync:(Bn(t.props.defer)&&t.props.src&&!Bn(t.props.async)||o==="module")&&(n=s.script.defer)}else t.tag==="style"&&(n=t.innerHTML&&Xp.test(t.innerHTML)?s.style.imported:s.style.sync);return(n||100)+r}function Xi(e,t){const n=typeof t=="function"?t(e):t,r=n.key||String(e.plugins.size+1);e.plugins.get(r)||(e.plugins.set(r,n),e.hooks.addHooks(n.hooks||{}))}function Qp(e={}){const t=gc();t.addHooks(e.hooks||{});const n=!e.document,r=new Map,s=new Map,o=new Set,i={_entryCount:1,plugins:s,dirty:!1,resolvedOptions:e,hooks:t,ssr:n,entries:r,headEntries(){return[...r.values()]},use:a=>Xi(i,a),push(a,l){const f={...l||{}};delete f.head;const c=f._index??i._entryCount++,u={_i:c,input:a,options:f},h={_poll(d=!1){i.dirty=!0,!d&&o.add(c),t.callHook("entries:updated",i)},dispose(){r.delete(c)&&i.invalidate()},patch(d){(!f.mode||f.mode==="server"&&n||f.mode==="client"&&!n)&&(u.input=d,r.set(c,u),h._poll())}};return h.patch(a),h},async resolveTags(){const a={tagMap:new Map,tags:[],entries:[...i.entries.values()]};for(await t.callHook("entries:resolve",a);o.size;){const h=o.values().next().value;o.delete(h);const d=r.get(h);if(d){const m={tags:Gp(d.input,e.propResolvers||[]).map(y=>Object.assign(y,d.options)),entry:d};await t.callHook("entries:normalize",m),d._tags=m.tags.map((y,C)=>(y._w=Yp(i,y),y._p=(d._i<<10)+C,y._d=io(y),y._d||(y._h=xc(y)),y))}}let l=!1;a.entries.flatMap(h=>(h._tags||[]).map(d=>({...d,props:{...d.props}}))).sort(zi).reduce((h,d)=>{const m=d._d||d._h;if(!h.has(m))return h.set(m,d);const y=h.get(m);if((d?.tagDuplicateStrategy||(Up.has(d.tag)?"merge":null)||(d.key&&d.key===y.key?"merge":null))==="merge"){const E={...y.props};Object.entries(d.props).forEach(([v,p])=>E[v]=v==="style"?new Map([...y.props.style||new Map,...p]):v==="class"?new Set([...y.props.class||new Set,...p]):p),h.set(m,{...d,props:E})}else d._p>>10===y._p>>10&&d.tag==="meta"&&Ac(m)?(h.set(m,Object.assign([...Array.isArray(y)?y:[y],d],d)),l=!0):(d._w===y._w?d._p>y._p:d?._wXi(i,a)),i.hooks.callHook("init",i),e.init?.forEach(a=>a&&i.push(a)),i}const Zp=(e,t)=>pe(t)?ft(t):t,Oc="usehead";function eg(e){return{install(n){n.config.globalProperties.$unhead=e,n.config.globalProperties.$head=e,n.provide(Oc,e)}}.install}function tg(){if(ns()){const e=Ce(Oc);if(e)return e}throw new Error("useHead() was called without provide context, ensure you call it through the setup() function.")}function o_(e,t={}){const n=t.head||tg();return n.ssr?n.push(e||{},t):ng(n,e,t)}function ng(e,t,n={}){const r=nt(!1);let s;return Qu(()=>{const i=r.value?{}:Vr(t,Zp);s?s.patch(i):s=e.push(i,n)}),an()&&(fr(()=>{s.dispose()}),ul(()=>{r.value=!0}),cl(()=>{r.value=!1})),s}const rg=(e,t)=>[],Mc=e=>_c({},...rg("",typeof e=="string"?e.toLowerCase():e).map(t=>t.data).reverse()),sg=Mc;let Cr;function og(){let e;return e=$fetch($o(`builds/meta/${Ho().app.buildId}.json`),{responseType:"json"}).then(t=>{if(!t||typeof t!="object"||!Array.isArray(t.prerendered))throw new Error("[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.");return t}),Cr=e,e.catch(t=>{Cr===e&&(Cr=void 0),console.error("[nuxt] Error fetching app manifest.",t)}),e}function Ic(){return Cr||og()}function Lc(e){const t=typeof e=="string"?e:e.path;try{return sg(t.toLowerCase())}catch(n){return console.error("[nuxt] Error matching route rules.",n),{}}}async function Yi(e,t={}){return null}async function ig(e){return null}let Xt=null;async function ag(){if(Xt)return Xt;const e=document.getElementById("__NUXT_DATA__");if(!e)return{};const t=await lg(e.textContent||""),n=e.dataset.src?await ig(e.dataset.src):void 0;return Xt={...t,...n,...window.__NUXT__},Xt.config?.public&&(Xt.config.public=ot(Xt.config.public)),Xt}async function lg(e){return await Dp(e,ve()._payloadRevivers)}function Dc(e,t){ve()._payloadRevivers[e]=t}const cg=np(()=>{Dc("skipHydrate",e=>{})});function Qi(e){try{return JSON.parse(e)}catch{return e}}const ug=[["NuxtError",e=>Ft(e)],["EmptyShallowRef",e=>Ut(e==="_"?void 0:e==="0n"?BigInt(0):Qi(e))],["EmptyRef",e=>nt(e==="_"?void 0:e==="0n"?BigInt(0):Qi(e))],["ShallowRef",e=>Ut(e)],["ShallowReactive",e=>Ze(e)],["Ref",e=>nt(e)],["Reactive",e=>ot(e)]],fg=Ye({name:"nuxt:revive-payload:client",order:-30,async setup(e){let t,n;for(const[r,s]of ug)Dc(r,s);Object.assign(e.payload,([t,n]=Qn(()=>e.runWithContext(ag)),t=await t,n(),t)),delete window.__NUXT__}});async function jo(e,t={}){const n=t.document||e.resolvedOptions.document;if(!n||!e.dirty)return;const r={shouldRender:!0,tags:[]};if(await e.hooks.callHook("dom:beforeRender",r),!!r.shouldRender)return e._domUpdatePromise||(e._domUpdatePromise=new Promise(async s=>{const o=new Map,i=new Promise(d=>{e.resolveTags().then(m=>{d(m.map(y=>{const C=o.get(y._d)||0,E={tag:y,id:(C?`${y._d}:${C}`:y._d)||y._h,shouldRender:!0};return y._d&&Ac(y._d)&&o.set(y._d,C+1),E}))})});let a=e._dom;if(!a){a={title:n.title,elMap:new Map().set("htmlAttrs",n.documentElement).set("bodyAttrs",n.body)};for(const d of["body","head"]){const m=n[d]?.children;for(const y of m){const C=y.tagName.toLowerCase();if(!oo.has(C))continue;const E=kc({tag:C,props:{}},{innerHTML:y.innerHTML,...y.getAttributeNames().reduce((v,p)=>(v[p]=y.getAttribute(p),v),{})||{}});if(E.key=y.getAttribute("data-hid")||void 0,E._d=io(E)||xc(E),a.elMap.has(E._d)){let v=1,p=E._d;for(;a.elMap.has(p);)p=`${E._d}:${v++}`;a.elMap.set(p,y)}else a.elMap.set(E._d,y)}}}a.pendingSideEffects={...a.sideEffects},a.sideEffects={};function l(d,m,y){const C=`${d}:${m}`;a.sideEffects[C]=y,delete a.pendingSideEffects[C]}function f({id:d,$el:m,tag:y}){const C=y.tag.endsWith("Attrs");a.elMap.set(d,m),C||(y.textContent&&y.textContent!==m.textContent&&(m.textContent=y.textContent),y.innerHTML&&y.innerHTML!==m.innerHTML&&(m.innerHTML=y.innerHTML),l(d,"el",()=>{m?.remove(),a.elMap.delete(d)}));for(const E in y.props){if(!Object.prototype.hasOwnProperty.call(y.props,E))continue;const v=y.props[E];if(E.startsWith("on")&&typeof v=="function"){const _=m?.dataset;if(_&&_[`${E}fired`]){const w=E.slice(0,-5);v.call(m,new Event(w.substring(2)))}m.getAttribute(`data-${E}`)!==""&&((y.tag==="bodyAttrs"?n.defaultView:m).addEventListener(E.substring(2),v.bind(m)),m.setAttribute(`data-${E}`,""));continue}const p=`attr:${E}`;if(E==="class"){if(!v)continue;for(const _ of v)C&&l(d,`${p}:${_}`,()=>m.classList.remove(_)),!m.classList.contains(_)&&m.classList.add(_)}else if(E==="style"){if(!v)continue;for(const[_,w]of v)l(d,`${p}:${_}`,()=>{m.style.removeProperty(_)}),m.style.setProperty(_,w)}else v!==!1&&v!==null&&(m.getAttribute(E)!==v&&m.setAttribute(E,v===!0?"":String(v)),C&&l(d,p,()=>m.removeAttribute(E)))}}const c=[],u={bodyClose:void 0,bodyOpen:void 0,head:void 0},h=await i;for(const d of h){const{tag:m,shouldRender:y,id:C}=d;if(y){if(m.tag==="title"){n.title=m.textContent,l("title","",()=>n.title=a.title);continue}d.$el=d.$el||a.elMap.get(C),d.$el?f(d):oo.has(m.tag)&&c.push(d)}}for(const d of c){const m=d.tag.tagPosition||"head";d.$el=n.createElement(d.tag.tag),f(d),u[m]=u[m]||n.createDocumentFragment(),u[m].appendChild(d.$el)}for(const d of h)await e.hooks.callHook("dom:renderTag",d,n,l);u.head&&n.head.appendChild(u.head),u.bodyOpen&&n.body.insertBefore(u.bodyOpen,n.body.firstChild),u.bodyClose&&n.body.appendChild(u.bodyClose);for(const d in a.pendingSideEffects)a.pendingSideEffects[d]();e._dom=a,await e.hooks.callHook("dom:rendered",{renders:h}),s()}).finally(()=>{e._domUpdatePromise=void 0,e.dirty=!1})),e._domUpdatePromise}function dg(e={}){const t=e.domOptions?.render||jo;e.document=e.document||(typeof window<"u"?document:void 0);const n=e.document?.head.querySelector('script[id="unhead:payload"]')?.innerHTML||!1;return Qp({...e,plugins:[...e.plugins||[],{key:"client",hooks:{"entries:updated":t}}],init:[n?JSON.parse(n):!1,...e.init||[]]})}function hg(e,t){let n=0;return()=>{const r=++n;t(()=>{n===r&&e()})}}function pg(e={}){const t=dg({domOptions:{render:hg(()=>jo(t),n=>setTimeout(n,0))},...e});return t.install=eg(t),t}const gg={disableDefaults:!0},mg=Ye({name:"nuxt:head",enforce:"pre",setup(e){const t=pg(gg);e.vueApp.use(t);{let n=!0;const r=async()=>{n=!1,await jo(t)};t.hooks.hook("dom:beforeRender",o=>{o.shouldRender=!n}),e.hooks.hook("page:start",()=>{n=!0}),e.hooks.hook("page:finish",()=>{e.isHydrating||r()}),e.hooks.hook("app:error",r),e.hooks.hook("app:suspense:resolve",r);const s=t.push.bind(t);t.push=((o,i)=>{const a=s(o,i),l=a.dispose.bind(a);return a.dispose=()=>{const f=e["~transitionPromise"];f?f.then(l):l()},a})}}});const pn=typeof document<"u";function $c(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function yg(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&$c(e.default)}const oe=Object.assign;function As(e,t){const n={};for(const r in t){const s=t[r];n[r]=st(s)?s.map(e):e(s)}return n}const er=()=>{},st=Array.isArray;function Zi(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const Hc=Symbol("");function kn(e,t){return oe(new Error,{type:e,[Hc]:!0},t)}function bt(e,t){return e instanceof Error&&Hc in e&&(t==null||!!(e.type&t))}const _g=Symbol(""),ea=Symbol(""),Fo=Symbol(""),Bo=Symbol(""),ao=Symbol("");function Nc(e){return Ce(Bo)}const bg={trailing:!0};function vg(e,t=25,n={}){if(n={...bg,...n},!Number.isFinite(t))throw new TypeError("Expected `wait` to be a finite number");let r,s,o=[],i,a;const l=(u,h)=>(i=wg(e,u,h),i.finally(()=>{if(i=null,n.trailing&&a&&!s){const d=l(u,a);return a=null,d}}),i),f=function(...u){return n.trailing&&(a=u),i||new Promise(h=>{const d=!s&&n.leading;clearTimeout(s),s=setTimeout(()=>{s=null;const m=n.leading?r:l(this,u);a=null;for(const y of o)y(m);o=[]},t),d?(r=l(this,u),h(r)):o.push(h)})},c=u=>{u&&(clearTimeout(u),s=null)};return f.isPending=()=>!!s,f.cancel=()=>{c(s),o=[],a=null},f.flush=()=>{if(c(s),!a||i)return;const u=a;return a=null,l(this,u)},f}async function wg(e,t,n){return await e.apply(t,n)}const jc=/#/g,Eg=/&/g,Sg=/\//g,Tg=/=/g,Rg=/\?/g,Fc=/\+/g,Cg=/%5B/g,Pg=/%5D/g,Bc=/%5E/g,Ag=/%60/g,Uc=/%7B/g,xg=/%7C/g,Vc=/%7D/g,kg=/%20/g;function Uo(e){return e==null?"":encodeURI(""+e).replace(xg,"|").replace(Cg,"[").replace(Pg,"]")}function Og(e){return Uo(e).replace(Uc,"{").replace(Vc,"}").replace(Bc,"^")}function lo(e){return Uo(e).replace(Fc,"%2B").replace(kg,"+").replace(jc,"%23").replace(Eg,"%26").replace(Ag,"`").replace(Uc,"{").replace(Vc,"}").replace(Bc,"^")}function Mg(e){return lo(e).replace(Tg,"%3D")}function Ig(e){return Uo(e).replace(jc,"%23").replace(Rg,"%3F")}function Lg(e){return Ig(e).replace(Sg,"%2F")}function Kr(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const Dg=/\/$/,$g=e=>e.replace(Dg,"");function xs(e,t,n="/"){let r,s={},o="",i="";const a=t.indexOf("#");let l=t.indexOf("?");return l=a>=0&&l>a?-1:l,l>=0&&(r=t.slice(0,l),o=t.slice(l,a>0?a:t.length),s=e(o.slice(1))),a>=0&&(r=r||t.slice(0,a),i=t.slice(a,t.length)),r=Fg(r??t,n),{fullPath:r+o+i,path:r,query:s,hash:Kr(i)}}function Hg(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ta(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Ng(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&On(t.matched[r],n.matched[s])&&Kc(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function On(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Kc(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!jg(e[n],t[n]))return!1;return!0}function jg(e,t){return st(e)?na(e,t):st(t)?na(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function na(e,t){return st(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Fg(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,a;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const qe={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};function Bg(e){if(!e)if(pn){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),$g(e)}const Ug=/^[^#]+#/;function Vg(e,t){return e.replace(Ug,"#")+t}function Kg(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const us=()=>({left:window.scrollX,top:window.scrollY});function Wg(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Kg(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function ra(e,t){return(history.state?history.state.position-t:-1)+e}const co=new Map;function qg(e,t){co.set(e,t)}function zg(e){const t=co.get(e);return co.delete(e),t}function Gg(e){return typeof e=="string"||e&&typeof e=="object"}function Wc(e){return typeof e=="string"||typeof e=="symbol"}function Jg(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&lo(s)):[r&&lo(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Xg(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=st(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}function Un(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Ht(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((a,l)=>{const f=h=>{h===!1?l(kn(4,{from:n,to:t})):h instanceof Error?l(h):Gg(h)?l(kn(2,{from:t,to:h})):(i&&r.enterCallbacks[s]===i&&typeof h=="function"&&i.push(h),a())},c=o(()=>e.call(r&&r.instances[s],t,n,f));let u=Promise.resolve(c);e.length<3&&(u=u.then(f)),u.catch(h=>l(h))})}function ks(e,t,n,r,s=o=>o()){const o=[];for(const i of e)for(const a in i.components){let l=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if($c(l)){const f=(l.__vccOpts||l)[t];f&&o.push(Ht(f,n,r,i,a,s))}else{let f=l();o.push(()=>f.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${a}" at "${i.path}"`);const u=yg(c)?c.default:c;i.mods[a]=c,i.components[a]=u;const h=(u.__vccOpts||u)[t];return h&&Ht(h,n,r,i,a,s)()}))}}return o}function Yg(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iOn(f,a))?r.push(a):n.push(a));const l=e.matched[i];l&&(t.matched.find(f=>On(f,l))||s.push(l))}return[n,r,s]}let Qg=()=>location.protocol+"//"+location.host;function qc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let i=s.includes(e.slice(o))?e.slice(o).length:1,a=s.slice(i);return a[0]!=="/"&&(a="/"+a),ta(a,"")}return ta(n,e)+r+s}function Zg(e,t,n,r){let s=[],o=[],i=null;const a=({state:h})=>{const d=qc(e,location),m=n.value,y=t.value;let C=0;if(h){if(n.value=d,t.value=h,i&&i===m){i=null;return}C=y?h.position-y.position:0}else r(d);s.forEach(E=>{E(n.value,m,{delta:C,type:"pop",direction:C?C>0?"forward":"back":""})})};function l(){i=n.value}function f(h){s.push(h);const d=()=>{const m=s.indexOf(h);m>-1&&s.splice(m,1)};return o.push(d),d}function c(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(oe({},h.state,{scroll:us()}),"")}}function u(){for(const h of o)h();o=[],window.removeEventListener("popstate",a),window.removeEventListener("pagehide",c),document.removeEventListener("visibilitychange",c)}return window.addEventListener("popstate",a),window.addEventListener("pagehide",c),document.addEventListener("visibilitychange",c),{pauseListeners:l,listen:f,destroy:u}}function oa(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?us():null}}function em(e){const{history:t,location:n}=window,r={value:qc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,f,c){const u=e.indexOf("#"),h=u>-1?(n.host&&document.querySelector("base")?e:e.slice(u))+l:Qg()+e+l;try{t[c?"replaceState":"pushState"](f,"",h),s.value=f}catch(d){console.error(d),n[c?"replace":"assign"](h)}}function i(l,f){o(l,oe({},t.state,oa(s.value.back,l,s.value.forward,!0),f,{position:s.value.position}),!0),r.value=l}function a(l,f){const c=oe({},s.value,t.state,{forward:l,scroll:us()});o(c.current,c,!0),o(l,oe({},oa(r.value,l,null),{position:c.position+1},f),!1),r.value=l}return{location:r,state:s,push:a,replace:i}}function tm(e){e=Bg(e);const t=em(e),n=Zg(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=oe({location:"",base:e,go:r,createHref:Vg.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}const nm={type:0,value:""},rm=/[a-zA-Z0-9_]/;function sm(e){if(!e)return[[]];if(e==="/")return[[nm]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(d){throw new Error(`ERR (${n})/"${f}": ${d}`)}let n=0,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let a=0,l,f="",c="";function u(){f&&(n===0?o.push({type:0,value:f}):n===1||n===2||n===3?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${f}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:f,regexp:c,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),f="")}function h(){f+=l}for(;at.length?t.length===1&&t[0]===80?1:-1:0}function zc(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const cm={strict:!1,end:!0,sensitive:!1};function um(e,t,n){const r=am(sm(e.path),n),s=oe(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function fm(e,t){const n=[],r=new Map;t=Zi(cm,t);function s(u){return r.get(u)}function o(u,h,d){const m=!d,y=ca(u);y.aliasOf=d&&d.record;const C=Zi(t,u),E=[y];if("alias"in u){const _=typeof u.alias=="string"?[u.alias]:u.alias;for(const w of _)E.push(ca(oe({},y,{components:d?d.record.components:y.components,path:w,aliasOf:d?d.record:y})))}let v,p;for(const _ of E){const{path:w}=_;if(h&&w[0]!=="/"){const k=h.record.path,A=k[k.length-1]==="/"?"":"/";_.path=h.record.path+(w&&A+w)}if(v=um(_,h,C),d?d.alias.push(v):(p=p||v,p!==v&&p.alias.push(v),m&&u.name&&!ua(v)&&i(u.name)),Gc(v)&&l(v),y.children){const k=y.children;for(let A=0;A{i(p)}:er}function i(u){if(Wc(u)){const h=r.get(u);h&&(r.delete(u),n.splice(n.indexOf(h),1),h.children.forEach(i),h.alias.forEach(i))}else{const h=n.indexOf(u);h>-1&&(n.splice(h,1),u.record.name&&r.delete(u.record.name),u.children.forEach(i),u.alias.forEach(i))}}function a(){return n}function l(u){const h=pm(u,n);n.splice(h,0,u),u.record.name&&!ua(u)&&r.set(u.record.name,u)}function f(u,h){let d,m={},y,C;if("name"in u&&u.name){if(d=r.get(u.name),!d)throw kn(1,{location:u});C=d.record.name,m=oe(la(h.params,d.keys.filter(p=>!p.optional).concat(d.parent?d.parent.keys.filter(p=>p.optional):[]).map(p=>p.name)),u.params&&la(u.params,d.keys.map(p=>p.name))),y=d.stringify(m)}else if(u.path!=null)y=u.path,d=n.find(p=>p.re.test(y)),d&&(m=d.parse(y),C=d.record.name,d.keys.forEach(p=>{p.optional&&!m[p.name]&&delete m[p.name]}));else{if(d=h.name?r.get(h.name):n.find(p=>p.re.test(h.path)),!d)throw kn(1,{location:u,currentLocation:h});C=d.record.name,m=oe({},h.params,u.params),y=d.stringify(m)}const E=[];let v=d;for(;v;)E.unshift(v.record),v=v.parent;return{name:C,path:y,params:m,matched:E,meta:hm(E)}}e.forEach(u=>o(u));function c(){n.length=0,r.clear()}return{addRoute:o,resolve:f,removeRoute:i,clearRoutes:c,getRoutes:a,getRecordMatcher:s}}function la(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function ca(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:dm(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function dm(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function ua(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function hm(e){return e.reduce((t,n)=>oe(t,n.meta),{})}function pm(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;zc(e,t[o])<0?r=o:n=o+1}const s=gm(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function gm(e){let t=e;for(;t=t.parent;)if(Gc(t)&&zc(e,t)===0)return t}function Gc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function fa(e){const t=Ce(Fo),n=Ce(Bo),r=Re(()=>{const l=ae(e.to);return t.resolve(l)}),s=Re(()=>{const{matched:l}=r.value,{length:f}=l,c=l[f-1],u=n.matched;if(!c||!u.length)return-1;const h=u.findIndex(On.bind(null,c));if(h>-1)return h;const d=da(l[f-2]);return f>1&&da(c)===d&&u[u.length-1].path!==d?u.findIndex(On.bind(null,l[f-2])):h}),o=Re(()=>s.value>-1&&bm(n.params,r.value.params)),i=Re(()=>s.value>-1&&s.value===n.matched.length-1&&Kc(n.params,r.value.params));function a(l={}){if(_m(l)){const f=t[ae(e.replace)?"replace":"push"](ae(e.to)).catch(er);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>f),f}return Promise.resolve()}return{route:r,href:Re(()=>r.value.href),isActive:o,isExactActive:i,navigate:a}}function mm(e){return e.length===1?e[0]:e}const ym=Wt({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:fa,setup(e,{slots:t}){const n=ot(fa(e)),{options:r}=Ce(Fo),s=Re(()=>({[ha(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[ha(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&mm(t.default(n));return e.custom?o:Oe("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}});function _m(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function bm(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!st(s)||s.length!==r.length||r.some((o,i)=>o.valueOf()!==s[i].valueOf()))return!1}return!0}function da(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const ha=(e,t,n)=>e??t??n,vm=Wt({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ce(ao),s=Re(()=>e.route||r.value),o=Ce(ea,0),i=Re(()=>{let f=ae(o);const{matched:c}=s.value;let u;for(;(u=c[f])&&!u.components;)f++;return f}),a=Re(()=>s.value.matched[i.value]);jt(ea,Re(()=>i.value+1)),jt(_g,a),jt(ao,s);const l=nt();return Rt(()=>[l.value,a.value,e.name],([f,c,u],[h,d,m])=>{c&&(c.instances[u]=f,d&&d!==c&&f&&f===h&&(c.leaveGuards.size||(c.leaveGuards=d.leaveGuards),c.updateGuards.size||(c.updateGuards=d.updateGuards))),f&&c&&(!d||!On(c,d)||!h)&&(c.enterCallbacks[u]||[]).forEach(y=>y(f))},{flush:"post"}),()=>{const f=s.value,c=e.name,u=a.value,h=u&&u.components[c];if(!h)return pa(n.default,{Component:h,route:f});const d=u.props[c],m=d?d===!0?f.params:typeof d=="function"?d(f):d:null,C=Oe(h,oe({},m,t,{onVnodeUnmounted:E=>{E.component.isUnmounted&&(u.instances[c]=null)},ref:l}));return pa(n.default,{Component:C,route:f})||C}}});function pa(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Jc=vm;function wm(e){const t=fm(e.routes,e),n=e.parseQuery||Jg,r=e.stringifyQuery||sa,s=e.history,o=Un(),i=Un(),a=Un(),l=Ut(qe);let f=qe;pn&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=As.bind(null,x=>""+x),u=As.bind(null,Lg),h=As.bind(null,Kr);function d(x,K){let B,J;return Wc(x)?(B=t.getRecordMatcher(x),J=K):J=x,t.addRoute(J,B)}function m(x){const K=t.getRecordMatcher(x);K&&t.removeRoute(K)}function y(){return t.getRoutes().map(x=>x.record)}function C(x){return!!t.getRecordMatcher(x)}function E(x,K){if(K=oe({},K||l.value),typeof x=="string"){const b=xs(n,x,K.path),S=t.resolve({path:b.path},K),M=s.createHref(b.fullPath);return oe(b,S,{params:h(S.params),redirectedFrom:void 0,href:M})}let B;if(x.path!=null)B=oe({},x,{path:xs(n,x.path,K.path).path});else{const b=oe({},x.params);for(const S in b)b[S]==null&&delete b[S];B=oe({},x,{params:u(b)}),K.params=u(K.params)}const J=t.resolve(B,K),ee=x.hash||"";J.params=c(h(J.params));const ge=Hg(r,oe({},x,{hash:Og(ee),path:J.path})),g=s.createHref(ge);return oe({fullPath:ge,hash:ee,query:r===sa?Xg(x.query):x.query||{}},J,{redirectedFrom:void 0,href:g})}function v(x){return typeof x=="string"?xs(n,x,l.value.path):oe({},x)}function p(x,K){if(f!==x)return kn(8,{from:K,to:x})}function _(x){return A(x)}function w(x){return _(oe(v(x),{replace:!0}))}function k(x,K){const B=x.matched[x.matched.length-1];if(B&&B.redirect){const{redirect:J}=B;let ee=typeof J=="function"?J(x,K):J;return typeof ee=="string"&&(ee=ee.includes("?")||ee.includes("#")?ee=v(ee):{path:ee},ee.params={}),oe({query:x.query,hash:x.hash,params:ee.path!=null?{}:x.params},ee)}}function A(x,K){const B=f=E(x),J=l.value,ee=x.state,ge=x.force,g=x.replace===!0,b=k(B,J);if(b)return A(oe(v(b),{state:typeof b=="object"?oe({},ee,b.state):ee,force:ge,replace:g}),K||B);const S=B;S.redirectedFrom=K;let M;return!ge&&Ng(r,J,B)&&(M=kn(16,{to:S,from:J}),it(J,J,!0,!1)),(M?Promise.resolve(M):T(S,J)).catch(P=>bt(P)?bt(P,2)?P:Mt(P):V(P,S,J)).then(P=>{if(P){if(bt(P,2))return A(oe({replace:g},v(P.to),{state:typeof P.to=="object"?oe({},ee,P.to.state):ee,force:ge}),K||S)}else P=L(S,J,!0,g,ee);return H(S,J,P),P})}function D(x,K){const B=p(x,K);return B?Promise.reject(B):Promise.resolve()}function R(x){const K=cn.values().next().value;return K&&typeof K.runWithContext=="function"?K.runWithContext(x):x()}function T(x,K){let B;const[J,ee,ge]=Yg(x,K);B=ks(J.reverse(),"beforeRouteLeave",x,K);for(const b of J)b.leaveGuards.forEach(S=>{B.push(Ht(S,x,K))});const g=D.bind(null,x,K);return B.push(g),Ke(B).then(()=>{B=[];for(const b of o.list())B.push(Ht(b,x,K));return B.push(g),Ke(B)}).then(()=>{B=ks(ee,"beforeRouteUpdate",x,K);for(const b of ee)b.updateGuards.forEach(S=>{B.push(Ht(S,x,K))});return B.push(g),Ke(B)}).then(()=>{B=[];for(const b of ge)if(b.beforeEnter)if(st(b.beforeEnter))for(const S of b.beforeEnter)B.push(Ht(S,x,K));else B.push(Ht(b.beforeEnter,x,K));return B.push(g),Ke(B)}).then(()=>(x.matched.forEach(b=>b.enterCallbacks={}),B=ks(ge,"beforeRouteEnter",x,K,R),B.push(g),Ke(B))).then(()=>{B=[];for(const b of i.list())B.push(Ht(b,x,K));return B.push(g),Ke(B)}).catch(b=>bt(b,8)?b:Promise.reject(b))}function H(x,K,B){a.list().forEach(J=>R(()=>J(x,K,B)))}function L(x,K,B,J,ee){const ge=p(x,K);if(ge)return ge;const g=K===qe,b=pn?history.state:{};B&&(J||g?s.replace(x.fullPath,oe({scroll:g&&b&&b.scroll},ee)):s.push(x.fullPath,ee)),l.value=x,it(x,K,B,g),Mt()}let W;function Z(){W||(W=s.listen((x,K,B)=>{if(!qt.listening)return;const J=E(x),ee=k(J,qt.currentRoute.value);if(ee){A(oe(ee,{replace:!0,force:!0}),J).catch(er);return}f=J;const ge=l.value;pn&&qg(ra(ge.fullPath,B.delta),us()),T(J,ge).catch(g=>bt(g,12)?g:bt(g,2)?(A(oe(v(g.to),{force:!0}),J).then(b=>{bt(b,20)&&!B.delta&&B.type==="pop"&&s.go(-1,!1)}).catch(er),Promise.reject()):(B.delta&&s.go(-B.delta,!1),V(g,J,ge))).then(g=>{g=g||L(J,ge,!1),g&&(B.delta&&!bt(g,8)?s.go(-B.delta,!1):B.type==="pop"&&bt(g,20)&&s.go(-1,!1)),H(J,ge,g)}).catch(er)}))}let te=Un(),F=Un(),q;function V(x,K,B){Mt(x);const J=F.list();return J.length?J.forEach(ee=>ee(x,K,B)):console.error(x),Promise.reject(x)}function le(){return q&&l.value!==qe?Promise.resolve():new Promise((x,K)=>{te.add([x,K])})}function Mt(x){return q||(q=!x,Z(),te.list().forEach(([K,B])=>x?B(x):K()),te.reset()),x}function it(x,K,B,J){const{scrollBehavior:ee}=e;if(!pn||!ee)return Promise.resolve();const ge=!B&&zg(ra(x.fullPath,0))||(J||!B)&&history.state&&history.state.scroll||null;return xt().then(()=>ee(x,K,ge)).then(g=>g&&Wg(g)).catch(g=>V(g,x,K))}const De=x=>s.go(x);let ln;const cn=new Set,qt={currentRoute:l,listening:!0,addRoute:d,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:C,getRoutes:y,resolve:E,options:e,push:_,replace:w,go:De,back:()=>De(-1),forward:()=>De(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:F.add,isReady:le,install(x){x.component("RouterLink",ym),x.component("RouterView",Jc),x.config.globalProperties.$router=qt,Object.defineProperty(x.config.globalProperties,"$route",{enumerable:!0,get:()=>ae(l)}),pn&&!ln&&l.value===qe&&(ln=!0,_(s.location).catch(J=>{}));const K={};for(const J in qe)Object.defineProperty(K,J,{get:()=>l.value[J],enumerable:!0});x.provide(Fo,qt),x.provide(Bo,Ze(K)),x.provide(ao,l);const B=x.unmount;cn.add(x),x.unmount=function(){cn.delete(x),cn.size<1&&(f=qe,W&&W(),W=null,l.value=qe,ln=!1,q=!1),B()}}};function Ke(x){return x.reduce((K,B)=>K.then(()=>R(B)),Promise.resolve())}return qt}const Em=/(:\w+)\([^)]+\)/g,Sm=/(:\w+)[?+*]/g,Tm=/:\w+/g,Rm=(e,t)=>t.path.replace(Em,"$1").replace(Sm,"$1").replace(Tm,n=>e.params[n.slice(1)]?.toString()||""),uo=(e,t)=>{const n=e.route.matched.find(s=>s.components?.default===e.Component.type),r=t??n?.meta.key??(n&&Rm(e.route,n));return typeof r=="function"?r(e.route):r},Cm=(e,t)=>({default:()=>e?Oe(ff,e===!0?{}:e,t):t});function Xc(e){return Array.isArray(e)?e:[e]}const Pm="modulepreload",Am=function(e,t){return new URL(e,t).href},ga={},me=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let f=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};const i=document.getElementsByTagName("link"),a=document.querySelector("meta[property=csp-nonce]"),l=a?.nonce||a?.getAttribute("nonce");s=f(n.map(c=>{if(c=Am(c,r),c in ga)return;ga[c]=!0;const u=c.endsWith(".css"),h=u?'[rel="stylesheet"]':"";if(r)for(let m=i.length-1;m>=0;m--){const y=i[m];if(y.href===c&&(!u||y.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${h}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":Pm,u||(d.as="script"),d.crossOrigin="",d.href=c,l&&d.setAttribute("nonce",l),document.head.appendChild(d),u)return new Promise((m,y)=>{d.addEventListener("load",m),d.addEventListener("error",()=>y(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(i){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=i,window.dispatchEvent(a),!a.defaultPrevented)throw i}return s.then(i=>{for(const a of i||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})},xm={title:"后台账号"},km={title:"应用服务配置"},Om={title:"应用管理"},Mm={title:"通话翻译配置"},Im={title:"公码管理"},Lm={title:"数据概览"},Dm={title:"生产管理"},$m={title:"环境节点"},Hm={title:"厂家管理"},Nm={title:"全局环境配置"},jm={title:"MCP配置"},Fm={title:"会议模板"},Bm={title:"产品管理"},Um={title:"第三方服务配置"},Vm={title:"统计日志"},Km={title:"系统配置"},Wm={title:"用户查询"},qm={layout:"auth"},Os=[{name:"accounts",path:"/accounts",meta:xm||{},component:()=>me(()=>import("./C2sLAWj2.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url)},{name:"appconfig",path:"/appconfig",meta:km||{},component:()=>me(()=>import("./B_JvM6BO.js"),__vite__mapDeps([6,1,2,3,4,7]),import.meta.url)},{name:"apps",path:"/apps",meta:Om||{},component:()=>me(()=>import("./vesedpp3.js"),__vite__mapDeps([8,1,2,3,4,9]),import.meta.url)},{name:"calltranslate",path:"/calltranslate",meta:Mm||{},component:()=>me(()=>import("./DNKl-FHZ.js"),__vite__mapDeps([10,1,2,3,4,11]),import.meta.url)},{name:"code",path:"/code",meta:Im||{},component:()=>me(()=>import("./UoJ1COMF.js"),__vite__mapDeps([12,1,2,3,4]),import.meta.url)},{name:"dashboard",path:"/dashboard",meta:Lm||{},component:()=>me(()=>import("./Cx-e2Cok.js"),__vite__mapDeps([13,1,2,3,14]),import.meta.url)},{name:"device",path:"/device",meta:Dm||{},component:()=>me(()=>import("./Cy8zKM7T.js"),__vite__mapDeps([15,1,2,3,4]),import.meta.url)},{name:"environments",path:"/environments",meta:$m||{},component:()=>me(()=>import("./Bxcdr2qc.js"),__vite__mapDeps([16,1,2,3,4]),import.meta.url)},{name:"factory",path:"/factory",meta:Hm||{},component:()=>me(()=>import("./BVGGsVu4.js"),__vite__mapDeps([17,1,2,3,4]),import.meta.url)},{name:"globalconfig",path:"/globalconfig",meta:Nm||{},component:()=>me(()=>import("./uwVesjjP.js"),__vite__mapDeps([18,1,2,3,4]),import.meta.url)},{name:"mcpconfig",path:"/mcpconfig",meta:jm||{},component:()=>me(()=>import("./BeU4EYjt.js"),__vite__mapDeps([19,1,2,3,4]),import.meta.url)},{name:"meettemplates",path:"/meettemplates",meta:Fm||{},component:()=>me(()=>import("./CZnZfJ5f.js"),__vite__mapDeps([20,1,2,3,4]),import.meta.url)},{name:"product",path:"/product",meta:Bm||{},component:()=>me(()=>import("./GZxzc1Rc.js"),__vite__mapDeps([21,1,2,3,4]),import.meta.url)},{name:"serviceconfig",path:"/serviceconfig",meta:Um||{},component:()=>me(()=>import("./CF8arGVK.js"),__vite__mapDeps([22,1,2,3,4,23]),import.meta.url)},{name:"statlog",path:"/statlog",meta:Vm||{},component:()=>me(()=>import("./Bi5c3E0c.js"),__vite__mapDeps([24,1,2,3,4,25]),import.meta.url)},{name:"systemconfig",path:"/systemconfig",meta:Km||{},component:()=>me(()=>import("./EIJPD_ga.js"),__vite__mapDeps([26,4,3,27]),import.meta.url)},{name:"users",path:"/users",meta:Wm||{},component:()=>me(()=>import("./BIBu1qhq.js"),__vite__mapDeps([28,1,2,3,4]),import.meta.url)},{name:"index",path:"/",meta:qm||{},component:()=>me(()=>import("./CnuHOwQV.js"),__vite__mapDeps([29,30]),import.meta.url)}],Yc=(e,t)=>({default:()=>e?Oe(fd,e===!0?{}:e,t):t.default?.()}),zm=/(:\w+)\([^)]+\)/g,Gm=/(:\w+)[?+*]/g,Jm=/:\w+/g;function ma(e){const t=e?.meta.key??e.path.replace(zm,"$1").replace(Gm,"$1").replace(Jm,n=>e.params[n.slice(1)]?.toString()||"");return typeof t=="function"?t(e):t}function Xm(e,t){return e===t||t===qe?!1:ma(e)!==ma(t)?!0:!e.matched.every((r,s)=>r.components&&r.components.default===t.matched[s]?.components?.default)}function ya(e){return Array.isArray(e)?e:[e]}function Qc(e){const t=[];for(const n of e)n&&t.push({...n,onAfterLeave:n.onAfterLeave?ya(n.onAfterLeave):void 0,onBeforeLeave:n.onBeforeLeave?ya(n.onBeforeLeave):void 0});return _c(...t)}const Ym={scrollBehavior(e,t,n){const r=ve(),s=Ve().options?.scrollBehaviorType??"auto";return e.path.replace(/\/$/,"")===t.path.replace(/\/$/,"")?t.hash&&!e.hash?{left:0,top:0}:e.hash?{el:e.hash,top:Zc(e.hash),behavior:s}:!1:(typeof e.meta.scrollToTop=="function"?e.meta.scrollToTop(e,t):e.meta.scrollToTop)===!1?!1:t===qe?_a(e,t,n,s):new Promise(i=>{const a=()=>{requestAnimationFrame(()=>i(_a(e,t,n,s)))};r.hooks.hookOnce("page:loading:end",()=>{const l=r["~transitionPromise"];l?l.then(a):a()})})}};function Zc(e){try{const t=document.querySelector(e);if(t)return(Number.parseFloat(getComputedStyle(t).scrollMarginTop)||0)+(Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop)||0)}catch{}return 0}function _a(e,t,n,r){return n||(e.hash?{el:e.hash,top:Zc(e.hash),behavior:Xm(e,t)?r:"instant"}:{left:0,top:0})}const Qm={hashMode:!1,scrollBehaviorType:"auto"},Lt={...Qm,...Ym},Zm=async(e,t)=>{let n,r;if(!e.meta?.validate)return;const s=([n,r]=Qn(()=>Promise.resolve(e.meta.validate(e))),n=await n,r(),n);if(s===!0)return;const o=Ft({fatal:!0,status:s&&(s.status||s.statusCode)||404,statusText:s&&(s.statusText||s.statusMessage)||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}});return typeof window<"u"&&window.history.pushState({},"",t.fullPath),o},ey=e=>{const t=Lc({path:e.path});if(t.redirect){const n=t.redirect.includes("#")?t.redirect:t.redirect+e.hash;return Dn(n,{acceptRelative:!0})?(window.location.href=n,!1):n}},ty=[Zm,ey],fo={};function ny(e,t,n){const{pathname:r,search:s,hash:o}=t,i=e.indexOf("#");if(i>-1){const f=o.includes(e.slice(i))?e.slice(i).length:1;let c=o.slice(f);return c[0]!=="/"&&(c="/"+c),Li(c,"")}const a=Li(r,e),l=!n||cc(a,n)?a:n;return l+(l.includes("?")?"":s)+o}const ry=Ye({name:"nuxt:router",enforce:"pre",async setup(e){let t,n,r=Ho().app.baseURL;const s=Lt.history?.(r)??tm(r),o=Lt.routes?([t,n]=Qn(()=>Lt.routes(Os)),t=await t,n(),t??Os):Os;let i;const a=wm({...Lt,scrollBehavior:(E,v,p)=>{if(v===qe){i=p;return}if(Lt.scrollBehavior){if(a.options.scrollBehavior=Lt.scrollBehavior,"scrollRestoration"in window.history){const _=a.beforeEach(()=>{_(),window.history.scrollRestoration="manual"})}return Lt.scrollBehavior(E,qe,i||p)}},history:s,routes:o});"scrollRestoration"in window.history&&(window.history.scrollRestoration="auto"),e.vueApp.use(a);const l=Ut(a.currentRoute.value);a.afterEach((E,v)=>{l.value=v}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>l.value});const f=ny(r,window.location,e.payload.path),c=Ut(a.currentRoute.value),u=()=>{c.value=a.currentRoute.value};a.afterEach((E,v)=>{const p=E.matched.at(-1)?.components?.default,_=v.matched.at(-1)?.components?.default;if(p===_){u();return}E.matched.lengthw.components?.default===v.matched[k]?.components?.default)&&u()});const h={sync:u};for(const E in c.value)Object.defineProperty(h,E,{get:()=>c.value[E],enumerable:!0});e._route=Ze(h),e._middleware||={global:[],named:{}};const d=cs();a.afterEach(async(E,v,p)=>{delete e._processingMiddleware,!e.isHydrating&&d.value&&await e.runWithContext(dp),p&&await e.callHook("page:loading:end")});try{[t,n]=Qn(()=>a.isReady()),await t,n()}catch(E){[t,n]=Qn(()=>e.runWithContext(()=>Zt(E))),await t,n()}const m=f!==a.currentRoute.value.fullPath?a.resolve(f):a.currentRoute.value,y=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&f!==e.payload.path&&cc(a.currentRoute.value.path,e.payload.path);u();const C=e.payload.state._layout;return a.beforeEach(async(E,v)=>{await e.callHook("page:loading:start"),E.meta=ot(E.meta),e.isHydrating&&C&&!mt(E.meta.layout)&&(E.meta.layout=C),e._processingMiddleware=!0;{const p=new Set([...ty,...e._middleware.global]);for(const w of E.matched){const k=w.meta.middleware;if(k)for(const A of Xc(k))p.add(A)}const _=Lc({path:E.path});if(_.appMiddleware)for(const w in _.appMiddleware)_.appMiddleware[w]?p.add(w):p.delete(w);for(const w of p){const k=typeof w=="string"?e._middleware.named[w]||await fo[w]?.().then(A=>A.default||A):w;if(!k)throw new Error(`Unknown route middleware: '${w}'.`);try{const A=await e.runWithContext(()=>k(E,v));if(!e.payload.serverRendered&&e.isHydrating&&(A===!1||A instanceof Error)){const D=A||Ft({status:404,statusText:`Page Not Found: ${f}`});return await e.runWithContext(()=>Zt(D)),!1}if(A===!0)continue;if(A===!1)return A;if(A)return Ec(A)&&A.fatal&&await e.runWithContext(()=>Zt(A)),A}catch(A){const D=Ft(A);return D.fatal&&await e.runWithContext(()=>Zt(D)),D}}}}),a.onError(async()=>{delete e._processingMiddleware,await e.callHook("page:loading:end")}),a.afterEach(E=>{if(E.matched.length===0&&!d.value)return e.runWithContext(()=>Zt(Ft({status:404,fatal:!1,statusText:`Page not found: ${E.fullPath}`,data:{path:E.fullPath}})))}),e.hooks.hookOnce("app:created",async()=>{try{if("name"in m&&(m.name=void 0),y){const E=a.resolve(e.payload.path);"name"in E&&(E.name=void 0),await a.replace({...E,force:!0}),e.hooks.hookOnce("app:suspense:resolve",async()=>{await a.replace({...m,force:!0})})}else await a.replace({...m,force:!0});a.options.scrollBehavior=Lt.scrollBehavior}catch(E){await e.runWithContext(()=>Zt(E))}}),{provide:{router:a}}}}),ba=globalThis.requestIdleCallback||(e=>{const t=Date.now(),n={didTimeout:!1,timeRemaining:()=>Math.max(0,50-(Date.now()-t))};return setTimeout(()=>{e(n)},1)}),i_=globalThis.cancelIdleCallback||(e=>{clearTimeout(e)}),Vo=e=>{const t=ve();t.isHydrating?t.hooks.hookOnce("app:suspense:resolve",()=>{ba(()=>e())}):ba(()=>e())},sy=Ye({name:"nuxt:payload",setup(e){const t=new Set;Ve().beforeResolve(async(n,r)=>{if(n.path===r.path)return;const s=await Yi(n.path);if(s){for(const o of t)delete e.static.data[o];for(const o in s.data)o in e.static.data||t.add(o),e.static.data[o]=s.data[o]}}),Vo(()=>{e.hooks.hook("link:prefetch",async n=>{const{hostname:r}=new URL(n,window.location.href);r===window.location.hostname&&await Yi().catch(()=>{console.warn("[nuxt] Error preloading payload for",n)})}),navigator.connection?.effectiveType!=="slow-2g"&&setTimeout(Ic,1e3)})}}),oy=Ye(()=>{const e=Ve();Vo(()=>{e.beforeResolve(async()=>{await new Promise(t=>{setTimeout(t,100),requestAnimationFrame(()=>{setTimeout(t,0)})})})})}),iy=Ye(e=>{let t;async function n(){let r;try{r=await Ic()}catch(s){const o=s;if(!("status"in o&&(o.status===404||o.status===403)))throw o}t&&clearTimeout(t),t=setTimeout(n,Ui);try{const s=await $fetch($o("builds/latest.json")+`?${Date.now()}`);s.id!==r?.id&&(e.hooks.callHook("app:manifest:update",s),t&&clearTimeout(t))}catch{}}Vo(()=>{t=setTimeout(n,Ui)})});function ay(e={}){const t=e.path||window.location.pathname,n=new URL(t,window.location.href);if(n.host!==window.location.host)throw new Error(`Cannot navigate to a URL with a different host: '${t}'.`);if(n.protocol&&Xs(n.protocol))throw new Error(`Cannot navigate to a URL with '${n.protocol}' protocol.`);let r={};try{r=JSON.parse(sessionStorage.getItem("nuxt:reload")||"{}")}catch{}if(e.force||r?.path!==t||r?.expires{r.clear()}),e.hook("app:chunkError",({error:o})=>{r.add(o)});function s(o){const i=ac(n.app.baseURL,o.fullPath);ay({path:i,persistState:!0})}e.hook("app:manifest:update",()=>{t.beforeResolve(s)}),t.onError((o,i)=>{r.has(o)&&s(i)})}});function cy(e){return typeof e=="string"?`'${e}'`:new uy().serialize(e)}const uy=(function(){class e{#e=new Map;compare(n,r){const s=typeof n,o=typeof r;return s==="string"&&o==="string"?n.localeCompare(r):s==="number"&&o==="number"?n-r:String.prototype.localeCompare.call(this.serialize(n,!0),this.serialize(r,!0))}serialize(n,r){if(n===null)return"null";switch(typeof n){case"string":return r?n:`'${n}'`;case"bigint":return`${n}n`;case"object":return this.$object(n);case"function":return this.$function(n)}return String(n)}serializeObject(n){const r=Object.prototype.toString.call(n);if(r!=="[object Object]")return this.serializeBuiltInType(r.length<10?`unknown:${r}`:r.slice(8,-1),n);const s=n.constructor,o=s===Object||s===void 0?"":s.name;if(o!==""&&globalThis[o]===s)return this.serializeBuiltInType(o,n);if(typeof n.toJSON=="function"){const i=n.toJSON();return o+(i!==null&&typeof i=="object"?this.$object(i):`(${this.serialize(i)})`)}return this.serializeObjectEntries(o,Object.entries(n))}serializeBuiltInType(n,r){const s=this["$"+n];if(s)return s.call(this,r);if(typeof r?.entries=="function")return this.serializeObjectEntries(n,r.entries());throw new Error(`Cannot serialize ${n}`)}serializeObjectEntries(n,r){const s=Array.from(r).sort((i,a)=>this.compare(i[0],a[0]));let o=`${n}{`;for(let i=0;ithis.compare(r,s)))}`}$Map(n){return this.serializeObjectEntries("Map",n.entries())}}for(const t of["Error","RegExp","URL"])e.prototype["$"+t]=function(n){return`${t}(${n})`};for(const t of["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array"])e.prototype["$"+t]=function(n){return`${t}[${n.join(",")}]`};for(const t of["BigInt64Array","BigUint64Array"])e.prototype["$"+t]=function(n){return`${t}[${n.join("n,")}${n.length>0?"n":""}]`};return e})(),fy=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],dy=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],hy="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",Yt=[];class py{_data=new yn;_hash=new yn([...fy]);_nDataBytes=0;_minBufferSize=0;finalize(t){t&&this._append(t);const n=this._nDataBytes*8,r=this._data.sigBytes*8;return this._data.words[r>>>5]|=128<<24-r%32,this._data.words[(r+64>>>9<<4)+14]=Math.floor(n/4294967296),this._data.words[(r+64>>>9<<4)+15]=n,this._data.sigBytes=this._data.words.length*4,this._process(),this._hash}_doProcessBlock(t,n){const r=this._hash.words;let s=r[0],o=r[1],i=r[2],a=r[3],l=r[4],f=r[5],c=r[6],u=r[7];for(let h=0;h<64;h++){if(h<16)Yt[h]=t[n+h]|0;else{const p=Yt[h-15],_=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,w=Yt[h-2],k=(w<<15|w>>>17)^(w<<13|w>>>19)^w>>>10;Yt[h]=_+Yt[h-7]+k+Yt[h-16]}const d=l&f^~l&c,m=s&o^s&i^o&i,y=(s<<30|s>>>2)^(s<<19|s>>>13)^(s<<10|s>>>22),C=(l<<26|l>>>6)^(l<<21|l>>>11)^(l<<7|l>>>25),E=u+C+d+dy[h]+Yt[h],v=y+m;u=c,c=f,f=l,l=a+E|0,a=i,i=o,o=s,s=E+v|0}r[0]=r[0]+s|0,r[1]=r[1]+o|0,r[2]=r[2]+i|0,r[3]=r[3]+a|0,r[4]=r[4]+l|0,r[5]=r[5]+f|0,r[6]=r[6]+c|0,r[7]=r[7]+u|0}_append(t){typeof t=="string"&&(t=yn.fromUtf8(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes}_process(t){let n,r=this._data.sigBytes/64;t?r=Math.ceil(r):r=Math.max((r|0)-this._minBufferSize,0);const s=r*16,o=Math.min(s*4,this._data.sigBytes);if(s){for(let i=0;i>>2]|=(n.charCodeAt(o)&255)<<24-o%4*8;return new yn(s,r)}toBase64(){const t=[];for(let n=0;n>>2]>>>24-n%4*8&255,s=this.words[n+1>>>2]>>>24-(n+1)%4*8&255,o=this.words[n+2>>>2]>>>24-(n+2)%4*8&255,i=r<<16|s<<8|o;for(let a=0;a<4&&n*8+a*6>>6*(3-a)&63))}return t.join("")}concat(t){if(this.words[this.sigBytes>>>2]&=4294967295<<32-this.sigBytes%4*8,this.words.length=Math.ceil(this.sigBytes/4),this.sigBytes%4)for(let n=0;n>>2]>>>24-n%4*8&255;this.words[this.sigBytes+n>>>2]|=r<<24-(this.sigBytes+n)%4*8}else for(let n=0;n>>2]=t.words[n>>>2];this.sigBytes+=t.sigBytes}}function gy(e){return new py().finalize(e).toBase64()}function gn(e){return gy(cy(e))}const my=Symbol.for("nuxt:client-only");function eu(e){return Object.defineProperty(function(){throw new Error(`[nuxt] \`${e.name}\` is a compiler macro and cannot be called at runtime.`)},"__nuxt_factory",{enumerable:!1,get:()=>e.factory})}const tu=eu({name:"createUseAsyncData",factory(e={}){function t(...n){const r=typeof n[n.length-1]=="string"?n.pop():void 0;_y(n[0],n[1])&&n.unshift(r);let[s,o,i={}]=n,a=!1;const l=pe(s)||typeof s=="function",f=l?Re(()=>ft(s)):{value:s};if(!f.value||typeof f.value!="string")throw new TypeError("[nuxt] [useAsyncData] key must be a non-empty string.");if(typeof o!="function")throw new TypeError("[nuxt] [useAsyncData] handler must be a function.");const c=typeof e=="function",u=ve(),h=c?e(i):e;if(!c)for(const p in h)h[p]!==void 0&&i[p]===void 0&&(i[p]=h[p]);if(i.server??=!0,i.default??=vy,i.getCachedData??=ru,i.lazy??=!1,i.immediate??=!0,i.deep??=zh.deep,i.dedupe??="cancel",c)for(const p in h)h[p]!==void 0&&(i[p]=h[p]);u._asyncData[f.value];function d(){const p={cause:"initial",dedupe:i.dedupe},_=u._asyncData[f.value];return _?._init?u._asyncDataPromises[f.value]&&(p.cachedData=_._initialCachedData):(p.cachedData=i.getCachedData(f.value,u,{cause:"initial"}),u._asyncData[f.value]=va(u,f.value,o,i,p.cachedData),u._asyncData[f.value]._initialCachedData=p.cachedData),()=>u._asyncData[f.value].execute(p)}const m=d(),y=u._asyncData[f.value];y._deps++;const C=i.server!==!1&&u.payload.serverRendered;{let p=function(T){const H=u._asyncData[T];H?._deps&&(H._deps--,H._deps===0&&H?._off())};const _=an();if(_&&C&&i.immediate&&!_.sp&&(_.sp=[]),_&&!_._nuxtOnBeforeMountCbs){_._nuxtOnBeforeMountCbs=[];const T=_._nuxtOnBeforeMountCbs;dl(()=>{T.forEach(H=>{H()}),T.splice(0,T.length)}),ss(()=>T.splice(0,T.length))}const w=_&&(_._nuxtClientOnly||Ce(my,!1));C&&u.isHydrating&&(y.error.value||y.data.value!==void 0)?y.status.value=y.error.value?"error":"success":_&&(!w&&u.payload.serverRendered&&u.isHydrating||i.lazy)&&i.immediate?_._nuxtOnBeforeMountCbs.push(m):i.immediate&&y.status.value!=="success"&&m();const k=Zr(),A=()=>{},D=l?Rt(f,(T,H)=>{if((T||H)&&T!==H){a=!0;const L=u._asyncData[H]?.data.value!==void 0,W=u._asyncDataPromises[H]!==void 0,Z={cause:"initial",dedupe:i.dedupe};if(!u._asyncData[T]?._init){let F;H&&L?F=u._asyncData[H].data.value:(F=i.getCachedData(T,u,{cause:"initial"}),Z.cachedData=F),u._asyncData[T]=va(u,T,o,i,F)}u._asyncData[T]._deps++,H&&p(H),i._keyTriggersExecute!==!1&&(i.immediate||L||W)&&u._asyncData[T].execute(Z),rr(()=>{a=!1})}},{flush:"sync"}):A,R=i.watch?Rt(i.watch,()=>{a||(u._asyncData[f.value]?._execute.isPending()&&rr(()=>{u._asyncData[f.value]?._execute.flush()}),u._asyncData[f.value]?._execute({cause:"watch",dedupe:i.dedupe}))}):A;k&&Ia(()=>{D(),R(),p(f.value)})}const E={data:Sr(()=>u._asyncData[f.value]?.data),pending:Sr(()=>u._asyncData[f.value]?.pending),status:Sr(()=>u._asyncData[f.value]?.status),error:Sr(()=>u._asyncData[f.value]?.error),refresh:(...p)=>u._asyncData[f.value]?._init?u._asyncData[f.value].execute(...p):d()(),execute:(...p)=>E.refresh(...p),clear:()=>{const p=u._asyncData[f.value];if(p?._abortController)try{p._abortController.abort(new DOMException("AsyncData aborted by user.","AbortError"))}finally{p._abortController=void 0}nu(u,f.value)}},v=Promise.resolve(u._asyncDataPromises[f.value]).then(()=>E);return Object.assign(v,E),Object.defineProperties(v,{then:{enumerable:!0,value:v.then.bind(v)},catch:{enumerable:!0,value:v.catch.bind(v)},finally:{enumerable:!0,value:v.finally.bind(v)}}),v}return t}}),yy=tu.__nuxt_factory();tu.__nuxt_factory({lazy:!0,_functionName:"useLazyAsyncData"});function Sr(e){return Re({get(){return e()?.value},set(t){const n=e();n&&(n.value=t)}})}function _y(e,t){return!(typeof e=="string"||typeof e=="object"&&e!==null||typeof e=="function"&&typeof t=="function")}function nu(e,t){t in e.payload.data&&(e.payload.data[t]=void 0),t in e.payload._errors&&(e.payload._errors[t]=void 0),e._asyncData[t]&&(e._asyncData[t].data.value=ae(e._asyncData[t]._default()),e._asyncData[t].error.value=void 0,e._asyncData[t].status.value="idle",e._asyncData[t]._initialCachedData=void 0),t in e._asyncDataPromises&&(e._asyncDataPromises[t]=void 0)}function by(e,t){const n={};for(const r of t)n[r]=e[r];return n}function va(e,t,n,r,s){e.payload._errors[t]??=void 0;const o=r.getCachedData!==ru,i=n,a=r.deep?nt:Ut,l=s!==void 0,f=e.hook("app:data:refresh",async u=>{(!u||u.includes(t))&&await c.execute({cause:"refresh:hook"})}),c={data:a(l?s:r.default()),pending:Re(()=>c.status.value==="pending"),error:Xa(e.payload._errors,t),status:Ut("idle"),execute:(...u)=>{const[h,d=void 0]=u,m=h&&d===void 0&&typeof h=="object"?h:{};if(e._asyncDataPromises[t]&&(m.dedupe??r.dedupe)==="defer")return e._asyncDataPromises[t];{const E="cachedData"in m?m.cachedData:r.getCachedData(t,e,{cause:m.cause??"refresh:manual"});if(E!==void 0)return e.payload.data[t]=c.data.value=E,c.error.value=void 0,c.status.value="success",Promise.resolve(E)}c._abortController&&c._abortController.abort(new DOMException("AsyncData request cancelled by deduplication","AbortError")),c._abortController=new AbortController,c.status.value="pending";const y=new AbortController,C=new Promise((E,v)=>{try{const p=m.timeout??r.timeout,_=wy([c._abortController?.signal,m?.signal],y.signal,p);if(_.aborted){const w=_.reason;v(w instanceof Error?w:new DOMException(String(w??"Aborted"),"AbortError"));return}return _.addEventListener("abort",()=>{const w=_.reason;v(w instanceof Error?w:new DOMException(String(w??"Aborted"),"AbortError"))},{once:!0,signal:y.signal}),Promise.resolve(i(e,{signal:_})).then(E,v)}catch(p){v(p)}}).then(async E=>{if(e._asyncDataPromises[t]!==C)return;let v=E;r.transform&&(v=await r.transform(E)),r.pick&&(v=by(v,r.pick)),e.payload.data[t]=v,c.data.value=v,c.error.value=void 0,c.status.value="success"}).catch(E=>{if(e._asyncDataPromises[t]!==C||c._abortController?.signal.aborted)return e._asyncDataPromises[t];if(typeof DOMException<"u"&&E instanceof DOMException&&E.name==="AbortError")return c.status.value="idle",e._asyncDataPromises[t];c.error.value=Ft(E),c.data.value=ae(r.default()),c.status.value="error"}).finally(()=>{y.abort(),e._asyncDataPromises[t]===C&&delete e._asyncDataPromises[t]});return e._asyncDataPromises[t]=C,e._asyncDataPromises[t]},_execute:vg((...u)=>c.execute(...u),0,{leading:!0}),_default:r.default,_deps:0,_init:!0,_hash:void 0,_off:()=>{f(),e._asyncData[t]?._init&&(e._asyncData[t]._init=!1),o||xt(()=>{e._asyncData[t]?._init||(nu(e,t),c.execute=()=>Promise.resolve())})}};return c}const vy=()=>{},ru=(e,t,n)=>{if(t.isHydrating)return t.payload.data[e];if(n.cause!=="refresh:manual"&&n.cause!=="refresh:hook")return t.static.data[e]};function wy(e,t,n){const r=e.filter(i=>!!i);if(typeof n=="number"&&n>=0){const i=AbortSignal.timeout?.(n);i&&r.push(i)}if(AbortSignal.any)return AbortSignal.any(r);const s=new AbortController;for(const i of r)if(i.aborted){const a=i.reason??new DOMException("Aborted","AbortError");try{s.abort(a)}catch{s.abort()}return s.signal}const o=()=>{const a=r.find(l=>l.aborted)?.reason??new DOMException("Aborted","AbortError");try{s.abort(a)}catch{s.abort()}};for(const i of r)i.addEventListener?.("abort",o,{once:!0,signal:t});return s.signal}function Ey(e){const t=[ft(e.method)?.toUpperCase()||"GET",ft(e.baseURL)];for(const n of[e.query||e.params]){const r=ft(n);if(!r)continue;const s={};for(const[o,i]of Object.entries(r))s[ft(o)]=ft(i);t.push(s)}if(e.body){const n=ft(e.body);if(!n)t.push(gn(n));else if(n instanceof ArrayBuffer)t.push(gn(Object.fromEntries([...new Uint8Array(n).entries()].map(([r,s])=>[r,s.toString()]))));else if(n instanceof FormData){const r=[];for(const s of n.entries()){const[o,i]=s;r.push([o,i instanceof File?`${i.name}:${i.size}:${i.lastModified}`:i])}t.push(gn(r))}else if(go(n))t.push(gn(ot(n)));else try{t.push(gn(n))}catch{console.warn("[useFetch] Failed to hash body",n)}}return t}const su=eu({name:"createUseFetch",factory(e={}){function t(n,r,s){const[o={},i]=typeof r=="string"?[{},r]:[r,s],a=typeof e=="function"?e(o):e,{server:l,lazy:f,default:c,transform:u,pick:h,watch:d,immediate:m,getCachedData:y,deep:C,dedupe:E,timeout:v,...p}={...typeof e=="function"?{}:a,...o,...typeof e=="function"?a:{}},_=Re(()=>ft(n)),w=Re(()=>ft(p.key)||"$f"+gn([i,typeof _.value=="string"?_.value:"",...Ey(p)]));if(!p.baseURL&&typeof _.value=="string"&&_.value[0]==="/"&&_.value[1]==="/")throw new Error('[nuxt] [useFetch] the request URL must not start with "//".');const k=ot({...Gh,...p,cache:typeof p.cache=="boolean"?void 0:p.cache}),A={server:l,lazy:f,default:c,transform:u,pick:h,immediate:m,getCachedData:y,deep:C,dedupe:E,timeout:v,watch:d===!1?[]:[...d||[],k]};return d===!1&&(A._keyTriggersExecute=!1),yy(w,(R,{signal:T})=>(p.$fetch||globalThis.$fetch)(_.value,{signal:T,...k}),A)}return t}});su.__nuxt_factory();su.__nuxt_factory({lazy:!0,_functionName:"useLazyFetch"});function Sy(e){if(e?.__asyncLoader&&!e.__asyncResolved)return e.__asyncLoader()}async function Ty(e,t=Ve()){const{path:n,matched:r}=t.resolve(e);if(!r.length||(t._routePreloaded||=new Set,t._routePreloaded.has(n)))return;const s=t._preloadPromises||=[];if(s.length>4)return Promise.all(s).then(()=>Ty(e,t));t._routePreloaded.add(n);for(const o of r){const i=o.components?.default;if(typeof i!="function")continue;const a=Promise.resolve(i()).catch(()=>{}).finally(()=>s.splice(s.indexOf(a),1));s.push(a)}await Promise.all(s)}const Ry=Ye({name:"pinia",setup(e){const t=hp();return e.vueApp.use(t),xn(t),e.payload&&e.payload.pinia&&(t.state.value=e.payload.pinia),{provide:{pinia:t}}},hooks:{"app:rendered"(){const e=ve();e.payload.pinia=ne(e.$pinia).state.value,xn(void 0)}}}),Cy=Ye({name:"nuxt:global-components"}),Nt={auth:Ir(()=>me(()=>import("./1YPtusTp.js"),[],import.meta.url).then(e=>e.default||e)),default:Ir(()=>me(()=>import("./FZLr1rN5.js"),__vite__mapDeps([31,32,4,3,2,33]),import.meta.url).then(e=>e.default||e))},Py=Ye({name:"nuxt:prefetch",setup(e){const t=Ve();e.hooks.hook("app:mounted",()=>{t.beforeEach(async n=>{const r=n?.meta?.layout;r&&typeof Nt[r]=="function"&&await Nt[r]()})}),e.hooks.hook("link:prefetch",n=>{if(Dn(n))return;const r=t.resolve(n);if(!r)return;const s=r.meta.layout;let o=Xc(r.meta.middleware);o=o.filter(i=>typeof i=="string");for(const i of o)typeof fo[i]=="function"&&fo[i]();typeof s=="string"&&s in Nt&&Sy(Nt[s])})}}),Ay={1:"超管",2:"管理员",3:"代理",4:"运营"},Ko="auth_state";function Tr(e){return e?e.split(",").map(t=>t.trim()).filter(Boolean):[]}function Ms(e){localStorage.setItem(Ko,JSON.stringify(e))}function xy(){try{const e=localStorage.getItem(Ko);return e?JSON.parse(e):null}catch{return null}}const ky=bp("auth",{state:()=>({token:"",account:"",identity:0,access:[],apps:[],regions:[],products:[],appbinds:[],currentAppId:0,siteTitle:""}),getters:{isSuperAdmin(){return this.identity===1},isAdmin(){return this.identity===1||this.identity===2},identityLabel(){return Ay[this.identity]??""},isLoggedIn(){return!!this.token}},actions:{setLoginData(e){this.token=e.token,this.account=e.account,this.identity=e.identity,this.access=Tr(e.access),this.apps=Tr(e.apps),this.regions=Tr(e.regions),this.products=Tr(e.products),this.appbinds=e.appbinds??[],this.appbinds.length>0&&!this.currentAppId&&(this.currentAppId=this.appbinds[0].id),Ms({token:this.token,account:this.account,identity:this.identity,access:this.access,apps:this.apps,regions:this.regions,products:this.products,appbinds:this.appbinds,currentAppId:this.currentAppId,siteTitle:this.siteTitle})},setCurrentApp(e){this.currentAppId=e,Ms({token:this.token,account:this.account,identity:this.identity,access:this.access,apps:this.apps,regions:this.regions,products:this.products,appbinds:this.appbinds,currentAppId:this.currentAppId,siteTitle:this.siteTitle})},setSiteTitle(e){this.siteTitle=e,Ms({token:this.token,account:this.account,identity:this.identity,access:this.access,apps:this.apps,regions:this.regions,products:this.products,appbinds:this.appbinds,currentAppId:this.currentAppId,siteTitle:this.siteTitle})},logout(){this.token="",this.account="",this.identity=0,this.access=[],this.apps=[],this.regions=[],this.products=[],this.appbinds=[],this.currentAppId=0,this.siteTitle="",localStorage.removeItem(Ko)},restore(){const e=xy();e&&(this.token=e.token??"",this.account=e.account??"",this.identity=e.identity??0,this.access=e.access??[],this.apps=e.apps??[],this.regions=e.regions??[],this.products=e.products??[],this.appbinds=e.appbinds??[],this.currentAppId=e.currentAppId??0,this.siteTitle=e.siteTitle??"")},hasAccess(e){return this.identity===1?!0:this.access.includes(e)}}}),Oy=Ye(()=>{ky().restore()}),My=[cg,fg,mg,ry,sy,oy,iy,ly,Ry,Cy,Py,Oy],ou=(e="RouteProvider")=>Wt({name:e,props:{route:{type:Object,required:!0},vnode:Object,vnodeRef:Object,renderKey:String,trackRootNodes:Boolean},setup(t){const n=t.renderKey,r=t.route,s={};for(const o in t.route)Object.defineProperty(s,o,{get:()=>n===t.renderKey?t.route[o]:r[o],enumerable:!0});return jt(on,Ze(s)),()=>t.vnode?Oe(t.vnode,{ref:t.vnodeRef}):t.vnode}}),Iy=ou(),wa=new WeakMap,Ly=Wt({name:"NuxtPage",inheritAttrs:!1,props:{name:{type:String},transition:{type:[Boolean,Object],default:void 0},keepalive:{type:[Boolean,Object],default:void 0},route:{type:Object},pageKey:{type:[Function,String],default:null}},setup(e,{attrs:t,slots:n,expose:r}){const s=ve(),o=nt(),i=Ce(on,null);let a;r({pageRef:o});const l=Ce(vc,null);let f;const c=s.deferHydration();let u=!1,h=!1,d=0;if(s.isHydrating){const y=s.hooks.hookOnce("app:error",c),C=Ve().beforeEach(()=>{y(),C()})}e.pageKey&&Rt(()=>e.pageKey,(y,C)=>{y!==C&&s.callHook("page:loading:start")});let m=!1;{const y=Ve().beforeResolve(()=>{m=!1});fr(()=>{y(),c()})}return()=>Oe(Jc,{name:e.name,route:e.route,...t},{default:y=>{const C=Dy(i,y.route,y.Component),E=i&&i.matched.length===y.route.matched.length;if(!y.Component){if(f&&!E&&!Is(f))return f;c();return}if(f&&l&&!Is(f)&&!l.isCurrent(y.route))return f;if(C&&i&&(!l||l?.isCurrent(i)))return(E||f)&&!Is(f)?f:null;const v=uo(y,e.pageKey),p=$y(i,y.route,y.Component);!s.isHydrating&&a===v&&!p&&xt(()=>{m||(m=!0,s.callHook("page:loading:end"))}),u&&a!==v&&h&&d++,a=v;const _=!!(e.transition??y.route.meta.pageTransition??Fi),w=_&&Qc([e.transition,y.route.meta.pageTransition,Fi,{onAfterLeave(){s["~transitionFinish"]?.(),delete s["~transitionFinish"],delete s["~transitionPromise"],s.callHook("page:transition:finish",y.Component)}}]),k=e.keepalive??y.route.meta.keepalive??qh;return f=Yc(_&&w,Cm(k,Oe(Mo,{key:d,suspensible:!0,onPending:()=>{u=!0,_&&!s["~transitionPromise"]&&(s["~transitionPromise"]=new Promise(A=>{s["~transitionFinish"]=A})),s.callHook("page:start",y.Component)},onResolve:async()=>{u=!1,h=!0;try{await xt(),s._route.sync?.(),await s.callHook("page:finish",y.Component),!m&&!p&&(m=!0,await s.callHook("page:loading:end"))}finally{c()}}},{default:()=>{const A={key:v||void 0,vnode:n.default?Hy(n.default,y):y.Component,route:y.route,renderKey:v||void 0,trackRootNodes:_,vnodeRef:o};if(!k)return Oe(Iy,A);const D=y.Component.type,R=D;let T=wa.get(R);return T||(T=ou(D.name||D.__name),wa.set(R,T)),Oe(T,A)}}))).default(),f}})}});function Dy(e,t,n){if(!e)return!1;const r=t.matched.findIndex(i=>i.components?.default===n?.type);if(r===-1)return!1;const s=t.matched.slice(0,r).filter(i=>i.components?.default);if(!s.length)return!1;const o=e.matched.filter(i=>i.components?.default);return s.some((i,a)=>i.components?.default!==o[a]?.components?.default)||n&&uo({route:t,Component:n})!==uo({route:e,Component:n})}function $y(e,t,n){return e?t.matched.findIndex(s=>s.components?.default===n?.type)Oe(Nt[e.name],e.layoutProps,t.slots)}}),jy={name:{type:[String,Boolean,Object],default:null},fallback:{type:[String,Object],default:null}},Fy=Wt({name:"NuxtLayout",inheritAttrs:!1,props:jy,setup(e,t){const n=ve(),r=Ce(on),o=!r||r===No()?Nc():r,i=Re(()=>{let c=ae(e.name)??o?.meta.layout??iu(o?.path).appLayout??"default";return c&&!(c in Nt)&&e.fallback&&(c=ae(e.fallback)),c}),a=Ut();t.expose({layoutRef:a});const l=n.deferHydration();if(n.isHydrating){const c=n.hooks.hookOnce("app:error",l),u=Ve().beforeEach(()=>{c(),u()})}let f;return()=>{const u=!!i.value&&i.value in Nt&&!!(o?.meta.layoutTransition??ji),h=u&&Qc([o?.meta.layoutTransition,ji,{onBeforeLeave(){n["~transitionPromise"]=new Promise(m=>{n["~transitionFinish"]=m})},onAfterLeave(){n["~transitionFinish"]?.(),delete n["~transitionFinish"],delete n["~transitionPromise"]}}]),d=f;return f=i.value,Yc(h,{default:()=>Oe(Mo,{suspensible:!0,onResolve:async()=>{await xt(l)}},{default:()=>Oe(By,{layoutProps:Wl(t.attrs,o.meta.layoutProps??{},{ref:a}),key:i.value||void 0,name:i.value,shouldProvide:!e.name,isRenderingNewLayout:m=>m!==d&&m===i.value,hasTransition:u},t.slots)})}).default()}}}),By=Wt({name:"NuxtLayoutProvider",inheritAttrs:!1,props:{name:{type:[String,Boolean]},layoutProps:{type:Object},hasTransition:{type:Boolean},shouldProvide:{type:Boolean},isRenderingNewLayout:{type:Function,required:!0}},setup(e,t){const n=e.name;e.shouldProvide&&jt(vc,{isCurrent:o=>n===!1||n===(o.meta.layout??iu(o.path).appLayout??"default")});const r=Ce(on);if(r&&r===No()){const o=Nc(),i={};for(const a in o){const l=a;Object.defineProperty(i,l,{enumerable:!0,get:()=>e.isRenderingNewLayout(e.name)?o[l]:r[l]})}jt(on,Ze(i))}return()=>!n||typeof n=="string"&&!(n in Nt)?t.slots.default?.():Oe(Ny,{key:n,layoutProps:e.layoutProps,name:n},t.slots)}}),Uy=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Vy={};function Ky(e,t){const n=Ly,r=Fy;return Ge(),ht(r,null,{default:Co(()=>[ye(n)]),_:1})}const Wy=Uy(Vy,[["render",Ky]]),qy={__name:"nuxt-error-page",props:{error:Object},setup(e){const n=e.error,r=Number(n.statusCode||500),s=r===404,o=n.statusMessage??(s?"Page Not Found":"Internal Server Error"),i=n.message||n.toString(),a=void 0,c=s?Ir(()=>me(()=>import("./BroHRKpP.js"),__vite__mapDeps([34,32,35,36]),import.meta.url)):Ir(()=>me(()=>import("./P2ZWRt51.js"),__vite__mapDeps([37,35,38]),import.meta.url));return(u,h)=>(Ge(),ht(ae(c),mu(Vl({status:ae(r),statusText:ae(o),statusCode:ae(r),statusMessage:ae(o),description:ae(i),stack:ae(a)})),null,16))}},zy={key:0},Ea={__name:"nuxt-root",setup(e){const t=()=>null,n=ve(),r=n.deferHydration();if(n.isHydrating){const c=n.hooks.hookOnce("app:error",r),u=Ve().beforeEach(()=>{c(),u()})}const s=!1;jt(on,No()),n.hooks.callHookWith(c=>c.map(u=>u()),"vue:setup",[]);const o=cs(),i=!1,a=/bot\b|chrome-lighthouse|facebookexternalhit|google\b/i;function l(c,u,h){const d=n.vueApp.config.errorHandler;if(d&&!d.__nuxt_default)try{d(c,u,h)}catch(m){console.error("[nuxt] Error in `app.config.errorHandler`",m)}}pl((c,u,h)=>{if(n.hooks.callHook("vue:error",c,u,h)?.catch(d=>console.error("[nuxt] Error in `vue:error` hook",d)),a.test(navigator.userAgent))return n.hooks.callHook("app:error",c),console.error(`[nuxt] Not rendering error page for bot with user agent \`${navigator.userAgent}\`:`,c),!1;if(Ec(c)&&(c.fatal||c.unhandled))return n.runWithContext(()=>Zt(c)),l(c,u,h),!1});const f=!1;return(c,u)=>(Ge(),ht(Mo,{onResolve:ae(r)},{default:Co(()=>[ae(i)?(Ge(),Gf("div",zy)):ae(o)?(Ge(),ht(ae(qy),{key:1,error:ae(o)},null,8,["error"])):ae(f)?(Ge(),ht(ae(t),{key:2,context:ae(f)},null,8,["context"])):ae(s)?(Ge(),ht(yf(ae(s)),{key:3})):(Ge(),ht(ae(Wy),{key:4}))]),_:1},8,["onResolve"]))}};let Sa;{let e;Sa=async function(){if(e)return e;const n=!!(window.__NUXT__?.serverRendered??document.getElementById("__NUXT_DATA__")?.dataset.ssr==="true"),r=n?Ud(Ea):Bd(Ea),s=Qh({vueApp:r});async function o(i){await s.callHook("app:error",i),s.payload.error||=Ft(i)}o.__nuxt_default=!0,r.config.errorHandler=o,s.hook("app:suspense:resolve",()=>{r.config.errorHandler===o&&(r.config.errorHandler=void 0)}),!n&&Bi.id&&s.hook("app:suspense:resolve",()=>{document.getElementById(Bi.id)?.remove()});try{await tp(s,My)}catch(i){o(i)}try{await s.hooks.callHook("app:created",r),await s.hooks.callHook("app:beforeMount",r),r.mount(Jh),await s.hooks.callHook("app:mounted",r),await xt()}catch(i){o(i)}return r},e=Sa().catch(t=>{throw console.error("Error while mounting app:",t),t})}export{Dn as $,Re as A,e_ as B,ky as C,t_ as D,xt as E,ke as F,Yr as G,Qy as H,n_ as I,ht as J,fr as K,Yy as L,ae as M,Vo as N,ba as O,i_ as P,Oe as Q,Jy as R,sc as S,fd as T,fp as U,Ut as V,up as W,Ty as X,s_ as Y,ac as Z,Uy as _,Ul as a,Xs as a0,Ho as a1,mh as a2,Fr as a3,r_ as a4,Xa as a5,pe as a6,ye as b,Gf as c,Kl as d,ve as e,Oc as f,Wt as g,ns as h,Ce as i,xo as j,Gy as k,Xf as l,ki as m,Qr as n,Ge as o,Ld as p,Md as q,Xy as r,nt as s,vu as t,o_ as u,Zy as v,Co as w,ot as x,No as y,Ve as z}; diff --git a/apps/admin/.output/public/_nuxt/CVUxyiJx.js b/apps/admin/.output/public/_nuxt/CVUxyiJx.js deleted file mode 100644 index c93dbaf0..00000000 --- a/apps/admin/.output/public/_nuxt/CVUxyiJx.js +++ /dev/null @@ -1 +0,0 @@ -import{e as f,a3 as r,a4 as c}from"./96IDI_OR.js";const p="$s";function l(...o){const n=typeof o[o.length-1]=="string"?o.pop():void 0;typeof o[0]!="string"&&o.unshift(n);const[e,t]=o;if(!e||typeof e!="string")throw new TypeError("[nuxt] [useState] key must be a string: "+e);if(t!==void 0&&typeof t!="function")throw new Error("[nuxt] [useState] init must be a function: "+t);const s=p+e,i=f(),u=r(i.payload.state,s);if(t&&(i._state[s]??={_default:t}),u.value===void 0&&t){const a=t();if(c(a))return i.payload.state[s]=a,a;u.value=a}return u}let y=0;function d(){const o=l("app:toasts",()=>[]);function n(e,t="info",s=3e3){const i=++y;o.value.push({id:i,type:t,msg:e}),s>0&&setTimeout(()=>{o.value=o.value.filter(u=>u.id!==i)},s)}return{toasts:o,toast:n,success:(e,t)=>n(e,"success",t),error:(e,t)=>n(e,"error",t),info:(e,t)=>n(e,"info",t),warn:(e,t)=>n(e,"warning",t)}}export{d as u}; diff --git a/apps/admin/.output/public/_nuxt/CZnZfJ5f.js b/apps/admin/.output/public/_nuxt/CZnZfJ5f.js new file mode 100644 index 00000000..71e8d883 --- /dev/null +++ b/apps/admin/.output/public/_nuxt/CZnZfJ5f.js @@ -0,0 +1 @@ +import{g as R,j as q,c as a,k as i,v as E,a as t,F as p,r as f,p as j,m as u,t as r,D as H,H as I,s as m,x as G,A as k,o as d}from"./CTAruH_8.js";import{u as J}from"./9B2ftqmN.js";import{u as K}from"./lLLegusN.js";import"./D9HxoMhB.js";import"./yUUyh6cG.js";const P={class:"flex items-center justify-between mb-5"},Q={class:"flex items-center gap-3 mb-4 flex-wrap"},W=["value"],X=["value"],Y={class:"bg-white rounded-xl shadow-sm border border-slate-100"},Z={class:"overflow-x-auto"},tt={class:"table table-zebra"},et={key:0},st={key:1},lt={class:"bg-slate-100/80"},ot={colspan:"7",class:"py-2"},nt={class:"font-semibold text-slate-600 text-sm"},at={class:"text-xs text-slate-400 ml-2"},it={class:"font-mono text-sm text-slate-400"},dt={class:"font-medium"},rt={class:"font-mono text-sm"},ut={class:"badge badge-outline badge-sm"},mt={class:"text-sm"},pt={class:"text-sm"},bt={key:1,class:"text-slate-300"},ct={class:"text-right"},ft={class:"inline-flex gap-1"},vt=["onClick"],gt=["onClick"],xt={class:"flex items-center gap-3 mb-5"},yt={class:"text-lg font-semibold text-slate-800"},wt={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-3xl"},kt={class:"grid grid-cols-2 gap-4"},ht={class:"form-control mb-4"},_t={class:"form-control mb-4"},Vt={class:"form-control mb-4"},Ut={class:"form-control mb-4"},Ct={class:"form-control mb-4"},Ft={class:"form-control mb-4"},St={class:"form-control mb-4"},Lt={class:"form-control mb-4"},$t={class:"form-control mb-6"},At={class:"flex gap-3"},Dt=["disabled"],zt=R({__name:"meettemplates",setup(Et){const{webApi:v}=J(),{success:L,error:g}=K(),x=m("list"),b=m([]),h=m(!1),_=m(!1),c=m(!1),y=m(""),w=m(""),V=m(""),o=G({id:0,title:"",tid:"",language:"",ttype:"",tags:"",icon:"",description:"",outline:"",template:""});function $(l){return(l||"").split(",").map(e=>e.trim()).filter(Boolean)}const B=k(()=>{const l=new Set;return b.value.forEach(e=>{e.language&&l.add(e.language)}),Array.from(l).sort()}),M=k(()=>{const l=new Set;return b.value.forEach(e=>{e.tid&&l.add(e.tid)}),Array.from(l).sort()}),A=k(()=>{const l=V.value.trim().toLowerCase();return b.value.filter(e=>!(y.value&&(e.language||"")!==y.value||w.value&&(e.tid||"")!==w.value||l&&(e.title||"").toLowerCase().indexOf(l)<0))}),O=k(()=>{const l={};return A.value.forEach(s=>{const n=s.tid||"";(l[n]=l[n]||[]).push(s)}),Object.keys(l).sort((s,n)=>s===""?-1:n===""?1:s({key:s,label:s||"无 tid",items:l[s]}))});async function U(){h.value=!0;try{const l=await v("getmeettemplates",{});b.value=l?.templates??[]}catch(l){g(l?.message??"加载失败"),b.value=[]}finally{h.value=!1}}function C(){x.value="list",U()}function F(l){o.id=l.id||0,o.title=l.title||"",o.tid=l.tid||"",o.language=l.language||"",o.ttype=l.ttype||"",o.tags=l.tags||"",o.icon=l.icon||"",o.description=l.description||"",o.outline=l.outline||"",o.template=l.template||""}async function D(l){if(x.value="form",l&&l.id){c.value=!0,F(l);try{const e=await v("getmeettemplate",{id:l.id});e&&F(e)}catch(e){g(e?.message??"加载详情失败")}}else c.value=!1,F({})}async function T(){_.value=!0;try{const l={title:o.title.trim(),tid:o.tid.trim(),language:o.language.trim(),ttype:o.ttype.trim(),tags:o.tags.trim(),icon:o.icon.trim(),description:o.description.trim(),outline:o.outline,template:o.template};c.value&&(l.id=Number(o.id)),await v(c.value?"updatemeettemplate":"addmeettemplate",l),L("保存成功"),C()}catch(l){g(l?.message??"保存失败")}finally{_.value=!1}}function z(l){window.confirm(`确定删除模板 "${l.title||""}" 吗?`)&&v("delmeettemplate",{ids:[l.id]}).then(()=>{L("删除成功"),U()}).catch(e=>g(e?.message??"删除失败"))}return q(U),(l,e)=>(d(),a("div",null,[i(t("div",null,[t("div",P,[e[15]||(e[15]=t("div",null,[t("h2",{class:"text-lg font-semibold text-slate-800"},"会议模板"),t("p",{class:"text-xs text-slate-400 mt-1"},"会议纪要公共模板(source=public),所有应用共享。修改后各服务约 10 分钟内自动同步。")],-1)),t("button",{class:"btn btn-primary btn-sm text-white",onClick:e[0]||(e[0]=s=>D())},"+ 新增模板")]),t("div",Q,[e[18]||(e[18]=t("span",{class:"text-sm text-slate-500"},"语言",-1)),i(t("select",{"onUpdate:modelValue":e[1]||(e[1]=s=>y.value=s),class:"select select-bordered select-sm"},[e[16]||(e[16]=t("option",{value:""},"全部语言",-1)),(d(!0),a(p,null,f(B.value,s=>(d(),a("option",{key:s,value:s},r(s),9,W))),128))],512),[[j,y.value]]),e[19]||(e[19]=t("span",{class:"text-sm text-slate-500"},"分组(tid)",-1)),i(t("select",{"onUpdate:modelValue":e[2]||(e[2]=s=>w.value=s),class:"select select-bordered select-sm"},[e[17]||(e[17]=t("option",{value:""},"全部分组",-1)),(d(!0),a(p,null,f(M.value,s=>(d(),a("option",{key:s,value:s},r(s),9,X))),128))],512),[[j,w.value]]),i(t("input",{"onUpdate:modelValue":e[3]||(e[3]=s=>V.value=s),class:"input input-bordered input-sm w-48",placeholder:"按标题搜索"},null,512),[[u,V.value]])]),t("div",Y,[t("div",Z,[t("table",tt,[e[22]||(e[22]=t("thead",null,[t("tr",null,[t("th",null,"ID"),t("th",null,"标题"),t("th",null,"模板标识(tid)"),t("th",null,"语言"),t("th",null,"类型"),t("th",null,"标签"),t("th",{class:"text-right"},"操作")])],-1)),t("tbody",null,[h.value?(d(),a("tr",et,[...e[20]||(e[20]=[t("td",{colspan:"7",class:"text-center py-8"},[t("span",{class:"loading loading-spinner loading-sm"})],-1)])])):A.value.length?(d(!0),a(p,{key:2},f(O.value,s=>(d(),a(p,{key:s.key},[t("tr",lt,[t("td",ot,[t("span",nt,"▸ "+r(s.label),1),t("span",at,r(s.items.length)+" 个版本",1)])]),(d(!0),a(p,null,f(s.items,n=>(d(),a("tr",{key:n.id,class:"hover"},[t("td",it,r(n.id||""),1),t("td",dt,r(n.title||""),1),t("td",rt,r(n.tid||""),1),t("td",null,[t("span",ut,r(n.language||"-"),1)]),t("td",mt,r(n.ttype||""),1),t("td",pt,[$(n.tags).length?(d(!0),a(p,{key:0},f($(n.tags),(S,N)=>(d(),a("span",{key:N,class:"badge badge-ghost badge-sm mr-1"},r(S),1))),128)):(d(),a("span",bt,"-"))]),t("td",ct,[t("div",ft,[t("button",{class:"btn btn-ghost btn-xs",onClick:S=>D(n)},"编辑",8,vt),t("button",{class:"btn btn-ghost btn-xs text-red-500",onClick:S=>z(n)},"删除",8,gt)])])]))),128))],64))),128)):(d(),a("tr",st,[...e[21]||(e[21]=[t("td",{colspan:"7",class:"text-center text-slate-400 py-8"},"暂无模板",-1)])]))])])])])],512),[[E,x.value==="list"]]),i(t("div",null,[t("div",xt,[t("button",{class:"btn btn-ghost btn-sm",onClick:e[4]||(e[4]=s=>C())},"← 返回列表"),t("h2",yt,r(c.value?"编辑模板":"新增模板"),1)]),t("div",wt,[t("form",{onSubmit:H(T,["prevent"])},[t("div",kt,[t("div",ht,[e[23]||(e[23]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"标题 *")],-1)),i(t("input",{"onUpdate:modelValue":e[5]||(e[5]=s=>o.title=s),type:"text",class:"input input-bordered w-full",required:""},null,512),[[u,o.title]])]),t("div",_t,[e[24]||(e[24]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"模板标识 (tid)")],-1)),i(t("input",{"onUpdate:modelValue":e[6]||(e[6]=s=>o.tid=s),type:"text",class:"input input-bordered w-full",placeholder:"同一 tid 可有多语言版本"},null,512),[[u,o.tid]])]),t("div",Vt,[e[25]||(e[25]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"语言")],-1)),i(t("input",{"onUpdate:modelValue":e[7]||(e[7]=s=>o.language=s),type:"text",class:"input input-bordered w-full",placeholder:"如 zh / en",list:"langlist"},null,512),[[u,o.language]]),e[26]||(e[26]=I('',1))]),t("div",Ut,[e[27]||(e[27]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"类型 (ttype)")],-1)),i(t("input",{"onUpdate:modelValue":e[8]||(e[8]=s=>o.ttype=s),type:"text",class:"input input-bordered w-full",placeholder:"如 meeting / interview"},null,512),[[u,o.ttype]])]),t("div",Ct,[e[28]||(e[28]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"标签 (tags)")],-1)),i(t("input",{"onUpdate:modelValue":e[9]||(e[9]=s=>o.tags=s),type:"text",class:"input input-bordered w-full",placeholder:"逗号分隔"},null,512),[[u,o.tags]])]),t("div",Ft,[e[29]||(e[29]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"图标 (icon)")],-1)),i(t("input",{"onUpdate:modelValue":e[10]||(e[10]=s=>o.icon=s),type:"text",class:"input input-bordered w-full",placeholder:"图标 URL 或名称"},null,512),[[u,o.icon]])])]),t("div",St,[e[30]||(e[30]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"描述")],-1)),i(t("input",{"onUpdate:modelValue":e[11]||(e[11]=s=>o.description=s),type:"text",class:"input input-bordered w-full"},null,512),[[u,o.description]])]),t("div",Lt,[e[31]||(e[31]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"大纲 (outline)")],-1)),i(t("textarea",{"onUpdate:modelValue":e[12]||(e[12]=s=>o.outline=s),class:"textarea textarea-bordered w-full font-mono text-sm",rows:"4"},null,512),[[u,o.outline]])]),t("div",$t,[e[32]||(e[32]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"模板内容 (template)")],-1)),i(t("textarea",{"onUpdate:modelValue":e[13]||(e[13]=s=>o.template=s),class:"textarea textarea-bordered w-full font-mono text-sm",rows:"10"},null,512),[[u,o.template]])]),t("div",At,[t("button",{type:"button",class:"btn btn-ghost",onClick:e[14]||(e[14]=s=>C())},"取消"),t("button",{type:"submit",class:"btn btn-primary text-white",disabled:_.value},"保存",8,Dt)])],32)])],512),[[E,x.value==="form"]])]))}});export{zt as default}; diff --git a/apps/admin/.output/public/_nuxt/CnkSDgVO.js b/apps/admin/.output/public/_nuxt/CnkSDgVO.js new file mode 100644 index 00000000..97e3c29f --- /dev/null +++ b/apps/admin/.output/public/_nuxt/CnkSDgVO.js @@ -0,0 +1 @@ +import{g as j,z as L,e as q,j as E,N,O as U,K as H,P as I,Q as P,R as _,S as F,U as V,V as z,s as D,W as O,X as W,M as f,Y as M,A as x,Z as $,$ as B,a0 as Q,a1 as G,a2 as K,a3 as X,a4 as Y}from"./CTAruH_8.js";const Z=(...t)=>t.find(r=>r!==void 0);function T(t){let r=t.replace(/[\u0000-\u001F\s]+/g,"");for(;r.toLowerCase().startsWith("view-source:");)r=r.slice(12);const c=r.indexOf(":");return c>0&&Q(r.slice(0,c+1))?null:t}function J(t){const r=t.componentName||"NuxtLink";function c(e){return typeof e=="string"&&e.startsWith("#")}function w(e,s,d){const a=d??t.trailingSlash;if(!e||a!=="append"&&a!=="remove")return e;if(typeof e=="string")return C(e,a);const i="path"in e&&e.path!==void 0?e.path:s(e).path;return{...e,name:void 0,path:C(i,a)}}function k(e){const s=L(),d=G(),a=x(()=>!!f(e.target)&&f(e.target)!=="_self"),i=x(()=>{const o=f(e.to)||f(e.href)||"";return typeof o=="string"&&B(o,{acceptRelative:!0})}),R=_("RouterLink"),y=typeof R!="string"?R.useLink:void 0,v=x(()=>{if(f(e.external))return!0;const o=f(e.to)||f(e.href)||"";return typeof o=="object"?!1:o===""||i.value}),l=x(()=>{const o=f(e.to)||f(e.href)||"";return v.value?o:w(o,s.resolve,f(e.trailingSlash))}),b=v.value?void 0:y?.({...e,to:l,viewTransition:f(e.viewTransition)}),m=x(()=>{const o=f(e.trailingSlash)??t.trailingSlash;if(!l.value||i.value||c(l.value)){const h=l.value;return typeof h=="string"?T(h):h}if(v.value){const h=typeof l.value=="object"&&"path"in l.value?O(l.value):l.value,p=typeof h=="object"?s.resolve(h).href:h,u=typeof p=="string"?T(p):p;return u===null?null:C(u,o)}return typeof l.value=="object"?s.resolve(l.value)?.href??null:C($(d.app.baseURL,l.value),o)});return{to:l,hasTarget:a,isAbsoluteUrl:i,isExternal:v,href:m,isActive:b?.isActive??x(()=>l.value===s.currentRoute.value.path),isExactActive:b?.isExactActive??x(()=>l.value===s.currentRoute.value.path),route:b?.route??x(()=>s.resolve(l.value)),async navigate(o){m.value!==null&&await M(m.value,{replace:f(e.replace),external:v.value||a.value})}}}return j({name:r,props:{to:{type:[String,Object],default:void 0,required:!1},href:{type:[String,Object],default:void 0,required:!1},target:{type:String,default:void 0,required:!1},rel:{type:String,default:void 0,required:!1},noRel:{type:Boolean,default:void 0,required:!1},prefetch:{type:Boolean,default:void 0,required:!1},prefetchOn:{type:[String,Object],default:void 0,required:!1},noPrefetch:{type:Boolean,default:void 0,required:!1},activeClass:{type:String,default:void 0,required:!1},exactActiveClass:{type:String,default:void 0,required:!1},prefetchedClass:{type:String,default:void 0,required:!1},replace:{type:Boolean,default:void 0,required:!1},ariaCurrentValue:{type:String,default:void 0,required:!1},external:{type:Boolean,default:void 0,required:!1},custom:{type:Boolean,default:void 0,required:!1},trailingSlash:{type:String,default:void 0,required:!1}},useLink:k,setup(e,{slots:s}){const d=L(),{to:a,href:i,navigate:R,isExternal:y,hasTarget:v,isAbsoluteUrl:l}=k(e),b=z(!1),m=D(null),o=u=>{m.value=e.custom?u?.$el?.nextElementSibling:u?.$el};function h(u){return!b.value&&(typeof e.prefetchOn=="string"?e.prefetchOn===u:e.prefetchOn?.[u]??t.prefetchOn?.[u])&&(e.prefetch??t.prefetch)!==!1&&e.noPrefetch!==!0&&e.target!=="_blank"&&!ae()}async function p(u=q()){if(b.value||i.value===null)return;b.value=!0;const g=typeof a.value=="string"?a.value:y.value?O(a.value):d.resolve(a.value).fullPath,n=y.value?new URL(g,window.location.href).href:g;await Promise.all([u.hooks.callHook("link:prefetch",n)?.catch(()=>{}),!y.value&&!v.value&&W(a.value,d).catch(()=>{})])}if(h("visibility")){const u=q();let g,n=null;E(()=>{const S=ee();N(()=>{g=U(()=>{m?.value?.tagName&&(n=S.observe(m.value,async()=>{n?.(),n=null,await p(u)}))})})}),H(()=>{g&&I(g),n?.(),n=null})}return()=>{if(!y.value&&!v.value&&!c(a.value)){const n={ref:o,to:a.value,activeClass:e.activeClass||t.activeClass,exactActiveClass:e.exactActiveClass||t.exactActiveClass,replace:e.replace,ariaCurrentValue:e.ariaCurrentValue,custom:e.custom};return e.custom||(h("interaction")&&(n.onPointerenter=p.bind(null,void 0),n.onFocus=p.bind(null,void 0)),b.value&&(n.class=e.prefetchedClass||t.prefetchedClass),n.rel=e.rel||void 0),P(_("RouterLink"),n,s.default)}const u=e.target||null,g=Z(e.noRel?"":e.rel,t.externalRelAttribute,l.value||v.value?"noopener noreferrer":"")||null;return e.custom?s.default?s.default({href:i.value,navigate:R,prefetch:p,get route(){if(!i.value)return;const n=new URL(i.value,window.location.href);return{path:n.pathname,fullPath:n.pathname,get query(){return F(n.search)},hash:n.hash,params:{},name:void 0,matched:[],redirectedFrom:void 0,meta:{},href:i.value}},rel:g,target:u,isExternal:y.value||v.value,isActive:!1,isExactActive:!1}):null:P("a",{ref:m,href:i.value||null,rel:g,target:u,onClick:async n=>{if(!(y.value||v.value)){n.preventDefault();try{const S=V(i.value??"");return await(e.replace?d.replace(S):d.push(S))}finally{if(c(a.value)){const S=a.value.slice(1);let A=S;try{A=decodeURIComponent(S)}catch{}document.getElementById(A)?.focus()}}}}},s.default?.())}}})}const le=J(Y);function C(t,r){const c=r==="append"?K:X;return B(t)&&!t.startsWith("http")?t:c(t,!0)}function ee(){const t=q();if(t._observer)return t._observer;let r=null;const c=new Map,w=(e,s)=>(r||=new IntersectionObserver(d=>{for(const a of d){const i=c.get(a.target);(a.isIntersecting||a.intersectionRatio>0)&&i&&i()}}),c.set(e,s),r.observe(e),()=>{c.delete(e),r?.unobserve(e),c.size===0&&(r?.disconnect(),r=null)});return t._observer={observe:w}}const te=/2g/;function ae(){const t=navigator.connection;return!!(t&&(t.saveData||te.test(t.effectiveType)))}export{le as _}; diff --git a/apps/admin/.output/public/_nuxt/RqmPeXlN.js b/apps/admin/.output/public/_nuxt/CnuHOwQV.js similarity index 86% rename from apps/admin/.output/public/_nuxt/RqmPeXlN.js rename to apps/admin/.output/public/_nuxt/CnuHOwQV.js index 090dab97..346f6347 100644 --- a/apps/admin/.output/public/_nuxt/RqmPeXlN.js +++ b/apps/admin/.output/public/_nuxt/CnuHOwQV.js @@ -1 +1 @@ -import{g as h,y as x,z as w,j as y,c as r,a as e,t as d,l as b,A as _,k as v,m as g,n as k,x as A,s as u,o as p,_ as M}from"./96IDI_OR.js";const z={class:"login-bg flex items-center justify-center px-4"},B={class:"login-card"},C={class:"text-center"},S={style:{"font-size":"22px","font-weight":"700",color:"#0F172A",margin:"0 0 4px"}},T={key:0,class:"login-error show"},V={style:{width:"16px",height:"16px","flex-shrink":"0"},fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},j={style:{"margin-bottom":"16px"}},D={style:{"margin-bottom":"24px"}},q=h({__name:"index",setup(L){const a=x(),c=w(),o=A({account:"",password:""}),l=u(!1),n=u(""),m=u("Admin");y(async()=>{if(a.restore(),a.token){c.push("/dashboard");return}try{const t=(await $fetch("/web/api/api_getsiteinfo",{method:"POST",body:{}}))?.data?.sitename;t&&(m.value=t+" Admin",a.setSiteTitle(t))}catch{}});async function f(){l.value=!0,n.value="";try{const s=await $fetch("/web/api/api_login",{method:"POST",body:{account:o.account,password:o.password}});s.code===0&&s.data?(a.setLoginData(s.data),c.push("/dashboard")):n.value=s.msg||"登录失败"}catch{n.value="网络错误,请检查连接"}finally{l.value=!1}}return(s,t)=>(p(),r("div",z,[e("div",B,[e("div",C,[t[2]||(t[2]=e("div",{class:"logo-icon"},[e("svg",{class:"h-7 w-7 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})])],-1)),e("h1",S,d(m.value),1),t[3]||(t[3]=e("p",{style:{"font-size":"13px",color:"#94A3B8",margin:"0 0 32px"}},"管理控制台",-1))]),n.value?(p(),r("div",T,[(p(),r("svg",V,[...t[4]||(t[4]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])])),e("span",null,d(n.value),1)])):b("",!0),e("form",{onSubmit:_(f,["prevent"])},[e("div",j,[t[5]||(t[5]=e("label",{class:"login-label"},"账号",-1)),v(e("input",{"onUpdate:modelValue":t[0]||(t[0]=i=>o.account=i),type:"text",class:"login-input",placeholder:"请输入管理员账号",autocomplete:"username",required:""},null,512),[[g,o.account]])]),e("div",D,[t[6]||(t[6]=e("label",{class:"login-label"},"密码",-1)),v(e("input",{"onUpdate:modelValue":t[1]||(t[1]=i=>o.password=i),type:"password",class:"login-input",placeholder:"请输入密码",autocomplete:"current-password",required:""},null,512),[[g,o.password]])]),e("button",{type:"submit",class:k(["login-btn",{loading:l.value}])},d(l.value?"登录中...":"登 录"),3)],32),t[7]||(t[7]=e("p",{style:{"text-align":"center","font-size":"11px",color:"#94A3B8","margin-top":"24px"}}," © 2025 Admin Console · v1.0.1 ",-1))])]))}}),O=M(q,[["__scopeId","data-v-3a3bca03"]]);export{O as default}; +import{g as h,C as x,z as w,j as y,c as r,a as e,t as d,l as b,D as _,k as v,m as g,n as k,x as M,s as u,o as p,_ as z}from"./CTAruH_8.js";const A={class:"login-bg flex items-center justify-center px-4"},B={class:"login-card"},C={class:"text-center"},S={style:{"font-size":"22px","font-weight":"700",color:"#0F172A",margin:"0 0 4px"}},T={key:0,class:"login-error show"},V={style:{width:"16px",height:"16px","flex-shrink":"0"},fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},j={style:{"margin-bottom":"16px"}},D={style:{"margin-bottom":"24px"}},q=h({__name:"index",setup(L){const a=x(),c=w(),o=M({account:"",password:""}),l=u(!1),n=u(""),m=u("Admin");y(async()=>{if(a.restore(),a.token){c.push("/dashboard");return}try{const t=(await $fetch("/web/api/api_getsiteinfo",{method:"POST",body:{}}))?.data?.sitename;t&&(m.value=t+" Admin",a.setSiteTitle(t))}catch{}});async function f(){l.value=!0,n.value="";try{const s=await $fetch("/web/api/api_login",{method:"POST",body:{account:o.account,password:o.password}});s.code===0&&s.data?(a.setLoginData(s.data),c.push("/dashboard")):n.value=s.msg||"登录失败"}catch{n.value="网络错误,请检查连接"}finally{l.value=!1}}return(s,t)=>(p(),r("div",A,[e("div",B,[e("div",C,[t[2]||(t[2]=e("div",{class:"logo-icon"},[e("svg",{class:"h-7 w-7 text-white",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})])],-1)),e("h1",S,d(m.value),1),t[3]||(t[3]=e("p",{style:{"font-size":"13px",color:"#94A3B8",margin:"0 0 32px"}},"管理控制台",-1))]),n.value?(p(),r("div",T,[(p(),r("svg",V,[...t[4]||(t[4]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])])),e("span",null,d(n.value),1)])):b("",!0),e("form",{onSubmit:_(f,["prevent"])},[e("div",j,[t[5]||(t[5]=e("label",{class:"login-label"},"账号",-1)),v(e("input",{"onUpdate:modelValue":t[0]||(t[0]=i=>o.account=i),type:"text",class:"login-input",placeholder:"请输入管理员账号",autocomplete:"username",required:""},null,512),[[g,o.account]])]),e("div",D,[t[6]||(t[6]=e("label",{class:"login-label"},"密码",-1)),v(e("input",{"onUpdate:modelValue":t[1]||(t[1]=i=>o.password=i),type:"password",class:"login-input",placeholder:"请输入密码",autocomplete:"current-password",required:""},null,512),[[g,o.password]])]),e("button",{type:"submit",class:k(["login-btn",{loading:l.value}])},d(l.value?"登录中...":"登 录"),3)],32),t[7]||(t[7]=e("p",{style:{"text-align":"center","font-size":"11px",color:"#94A3B8","margin-top":"24px"}}," © 2025 Admin Console · v1.0.1 ",-1))])]))}}),O=z(q,[["__scopeId","data-v-3a3bca03"]]);export{O as default}; diff --git a/apps/admin/.output/public/_nuxt/Cx-e2Cok.js b/apps/admin/.output/public/_nuxt/Cx-e2Cok.js new file mode 100644 index 00000000..50c7eb9e --- /dev/null +++ b/apps/admin/.output/public/_nuxt/Cx-e2Cok.js @@ -0,0 +1 @@ +import{g as wt,C as xt,j as Dt,c as o,a,k as L,p as R,F as _,r as v,t as r,A as m,x as K,s as p,o as l,G as A,n as Q,l as X,_ as Ct}from"./CTAruH_8.js";import{u as At}from"./9B2ftqmN.js";import"./D9HxoMhB.js";import"./yUUyh6cG.js";const Mt={class:"panel p-4 mb-5"},St={class:"flex flex-wrap items-end gap-3"},Nt={class:"form-control"},Bt=["value"],Lt={class:"form-control"},Rt=["value"],Vt={class:"form-control"},qt=["value"],zt={class:"grid grid-cols-2 md:grid-cols-4 gap-3 mb-8"},Ot={class:"body"},Ht={class:"lbl"},Tt={class:"val"},It={class:"today-wrap mb-8"},Gt={class:"sec-title hero",style:{"margin-bottom":"16px"}},Ut={class:"tag",style:{color:"#0369a1",background:"#dbeafe"}},Pt={class:"grid grid-cols-2 md:grid-cols-4 gap-4"},jt={class:"today-card-top"},Yt={class:"lbl"},Wt={class:"val"},Jt={class:"foot"},Zt={key:0,class:"delta up"},$t={class:"grid grid-cols-1 xl:grid-cols-2 gap-6"},Kt={class:"panel-head"},Qt=["stroke"],Xt=["d"],te={class:"font-semibold text-slate-700 text-sm"},ee={key:0,class:"ml-auto text-xs text-slate-400"},se={key:1,class:"ml-auto flex items-center gap-1"},ae=["onClick"],ne={class:"px-5 py-4"},oe={class:"grid grid-cols-2 sm:grid-cols-3 gap-2.5"},le={class:"stat-label"},re={class:"stat-val"},ie={key:0,style:{height:"170px","margin-top":"1rem"}},ce=wt({__name:"dashboard",setup(de){const k=xt(),{webApi:V,consoleApi:tt}=At(),q=[["cn","中国"],["us","美国"],["ea","东亚"],["sea","东南亚"],["sa","南亚"],["me","中东"],["eu","欧洲"],["ru","俄罗斯"],["af","非洲"],["sam","南美"],["nam","北美"],["oc","大洋洲"],["br","巴西"],["in","印度"]],et={new_user_count:["👥","#EEF2FF","#6366F1"],active_user_count:["🟢","#ECFDF5","#10B981"],bind_device_count:["📱","#E0F2FE","#0EA5E9"],qr_active_count:["🔳","#FCE7F3","#EC4899"],order_paid_count:["🧾","#FEF3C7","#F59E0B"],order_paid_amount:["💰","#FEE2E2","#EF4444"],pay_user_count:["⭐","#FFF7ED","#F97316"],meet_second:["🎙️","#CFFAFE","#22D3EE"],trade_second:["🌐","#F3E8FF","#8B5CF6"]},z=[["new_user_count","累计用户",!1],["bind_device_count","累计绑定设备",!1],["qr_active_count","累计二维码激活",!1],["order_paid_count","累计支付订单",!1],["order_paid_amount","累计支付金额",!0],["meet_second","累计会议时长",!1],["trade_second","累计翻译时长",!1]],O=[["new_user_count","新增用户",!1],["active_user_count","活跃用户",!1],["qr_active_count","二维码激活",!1],["order_paid_count","支付订单",!1],["order_paid_amount","支付金额",!0],["pay_user_count","付费用户",!1],["meet_second","会议时长",!1,!0],["trade_second","翻译时长",!1,!0]],E=[{key:"user",title:"用户增长",color:"#6366F1",tint:"#EEF2FF",icon:"M17 20h5v-2a4 4 0 00-3-3.87M9 20H4v-2a4 4 0 013-3.87m6-1.13a4 4 0 10-4-4 4 4 0 004 4z",stats:[["new_user_count","新增用户"],["active_user_count","活跃用户"],["login_user_count","登录用户"],["login_count","登录次数"]],lines:[["new_user_count","新增用户","#6366F1"],["active_user_count","活跃用户","#34D399"]]},{key:"device",title:"设备激活绑定",color:"#0EA5E9",tint:"#E0F2FE",icon:"M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z",stats:[["active_device_count","已激活"],["bind_device_count","已绑定"]],lines:[["active_device_count","已激活","#0EA5E9"],["bind_device_count","已绑定","#818CF8"]]},{key:"qrcode",title:"二维码激活",color:"#EC4899",tint:"#FCE7F3",icon:"M12 4v1m6 11h2m-6 0h-1v4m-6-4H5m14 0h-2m-6-7H5m0 0V5m0 4v6m14-6V5h-4M5 5h4M5 19h4m6 0h4v-4M4 4h6v6H4V4zm10 0h6v6h-6V4zM4 14h6v6H4v-6z",stats:[["qr_active_count","二维码激活次数"]],lines:[["qr_active_count","二维码激活","#EC4899"]]},{key:"order",title:"订单支付",color:"#F59E0B",tint:"#FEF3C7",icon:"M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z",stats:[["order_create_count","创建订单"],["order_paid_count","支付订单"],["order_failed_count","失败订单"],["pay_user_count","付费用户"],["order_paid_amount","支付金额",!0],["order_create_amount","创建金额",!0]],lines:[["order_paid_count","支付订单","#F59E0B"],["order_create_count","创建订单","#FCD34D"]]},{key:"meeting",title:"会议",color:"#22D3EE",tint:"#CFFAFE",icon:"M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z",stats:[["meet_count","会议次数"],["meet_second","会议时长",!1,!0],["grant_meet_second","发放会议时长",!1,!0]],lines:[["meet_count","会议次数","#22D3EE"],["meet_second","会议时长(秒)","#0EA5E9"]]},{key:"translate",title:"翻译",color:"#8B5CF6",tint:"#F3E8FF",icon:"M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129",stats:[["trade_count","翻译次数"],["trade_second","翻译时长",!1,!0],["trade_words","翻译字数"],["grant_trade_second","发放翻译时长",!1,!0]],lines:[["trade_count","翻译次数","#8B5CF6"],["trade_second","翻译时长(秒)","#A78BFA"]]}],f=m(()=>k.identity===3),st=m(()=>k.apps),H=m(()=>k.regions),T=m(()=>k.products.map(t=>parseInt(t)).filter(t=>!isNaN(t))),I=["new_user_count","active_user_count","qr_active_count"],at=m(()=>f.value?z.filter(t=>!I.includes(t[0])):z),nt=m(()=>f.value?O.filter(t=>!I.includes(t[0])):O),G=m(()=>f.value?E.filter(t=>t.key!=="user"&&t.key!=="qrcode"):E),ot=[[7,"7天"],[30,"30天"],[90,"90天"],[0,"全部"]],i=K({app:"",region:"",product:""}),F=p([]),M=p([]),lt=m(()=>f.value&&H.value.length?q.filter(t=>H.value.includes(t[0])).map(t=>({value:t[0],label:t[1]})):q.map(t=>({value:t[0],label:t[1]}))),U=p({}),P=p({}),S=p({}),j=p({}),Y=p("实时"),N=p({}),w=K({});E.forEach(t=>{w[t.key]=30});function x(t){const e=t.getFullYear(),s=("0"+(t.getMonth()+1)).slice(-2),n=("0"+t.getDate()).slice(-2);return parseInt(e+s+n)}function rt(t){if(!t)return{start:0,end:0};const e=new Date,s=new Date;return s.setDate(s.getDate()-(t-1)),{start:x(s),end:x(e)}}function it(t,e){return t=Number(t)||0,e?"¥"+(t/100).toLocaleString(void 0,{minimumFractionDigits:2,maximumFractionDigits:2}):t.toLocaleString()}function ct(t){t=Math.max(0,Math.floor(Number(t)||0));const e=Math.floor(t/3600),s=Math.floor(t%3600/60),n=t%60;return e>0?e+"时"+s+"分":s>0?s+"分"+n+"秒":n+"秒"}function B(t,e,s){return s?ct(t):it(t,e)}function dt(t){const e=String(t);return e.length===8?e.slice(4,6)+"-"+e.slice(6,8):e}function ut(t,e){return t=Number(t)||0,e=Number(e)||0,e===0?t>0?null:0:(t-e)/e*100}function g(t){return et[t]||["📊","#f1f5f9","#94a3b8"]}function _t(t){const e=t[0]==="bind_device_count"||t[0]==="active_device_count"?P.value:U.value,s=t[0]==="meet_second"||t[0]==="trade_second";return B(e[t[0]],t[2],s)}function vt(t){return B(S.value[t[0]],t[2],!!t[3])}function b(t){const e=ut(S.value[t[0]],j.value[t[0]]);if(e===null)return{type:"new",arrow:"",abs:""};const s=e>0?"up":e<0?"down":"flat",n=e>0?"▲":e<0?"▼":"—";return{type:s,arrow:n,abs:Math.abs(e).toFixed(1)}}function mt(t,e){return B((N.value[t.key]||{})[e[0]],e[2],e[3])}function D(){const t={};return i.app!==""&&(t.app_id=i.app),i.region!==""&&(t.region=i.region),i.product!==""&&(t.product_id=parseInt(String(i.product))),t}function W(){const t={};return i.product!==""&&(t.product_id=parseInt(String(i.product))),t}async function y(t,e){try{return{code:0,data:await V(t,e)??{}}}catch{return null}}async function pt(){const t=await y("getstatssummary",D());U.value=t&&t.code===0&&t.data?t.data:{};const e=await y("getstatssummary",W());P.value=e&&e.code===0&&e.data?e.data:{}}async function ft(){const t=x(new Date),e=new Date;e.setDate(e.getDate()-1);const s=x(e),n=D();n.start_day=t,n.end_day=t;const d=D();d.start_day=s,d.end_day=s;const u=await y("getstatssummary",n);S.value=u&&u.code===0&&u.data?u.data:{};const c=await y("getstatssummary",d);j.value=c&&c.code===0&&c.data?c.data:{};const C=new Date,Et=("0"+(C.getMonth()+1)).slice(-2),Ft=("0"+C.getDate()).slice(-2);Y.value=Et+"-"+Ft+" 实时"}async function J(t){let e;if(t.key==="device")e=W();else{const c=rt(w[t.key]);e=D(),e.start_day=c.start,e.end_day=c.end}const s=await y("getstatssummary",e),n=s&&s.code===0&&s.data?s.data:{};if(N.value={...N.value,[t.key]:n},t.key==="device")return;const d=await y("getstatstrend",e),u=d&&d.code===0?d.data||[]:[];bt(t,u)}function yt(t,e){w[t]=e;const s=E.find(n=>n.key===t);s&&J(s)}function Z(){pt(),ft(),G.value.forEach(t=>J(t))}const $={},h={};function gt(t,e){e&&($[t]=e)}function bt(t,e){const s=window.Chart,n=$[t.key];if(!s||!n)return;const d=e.map(c=>dt(c.stat_day)),u=t.lines.map(c=>({label:c[1],data:e.map(C=>Number(C[c[0]])||0),borderColor:c[2],backgroundColor:c[2]+"22",tension:.35,fill:!0,pointRadius:0,borderWidth:2}));if(h[t.key]){h[t.key].data.labels=d,h[t.key].data.datasets=u,h[t.key].update();return}h[t.key]=new s(n,{type:"line",data:{labels:d,datasets:u},options:{responsive:!0,maintainAspectRatio:!1,plugins:{legend:{position:"bottom",labels:{boxWidth:10,padding:12,font:{size:11}}}},scales:{x:{ticks:{maxTicksLimit:8,font:{size:10},color:"#94a3b8"},grid:{display:!1}},y:{beginAtZero:!0,ticks:{precision:0,maxTicksLimit:5,font:{size:10},color:"#94a3b8"},grid:{color:"#f1f5f9"}}},interaction:{mode:"index",intersect:!1}}})}async function ht(){if(f.value)F.value=st.value.map(t=>({value:t,label:t}));else try{const t=await tt("apps/list",{}),e=Array.isArray(t)?t:[];F.value=e.map(s=>({value:s.name||"",label:s.name||"应用#"+s.id}))}catch{F.value=[]}try{const t=await V("getproducts",{});let e=t&&t.products?t.products:[];f.value&&T.value.length&&(e=e.filter(s=>T.value.includes(s.id))),M.value=e.map(s=>({value:s.id,label:(s.devicename||"产品#"+s.id)+" (#"+s.id+")"}))}catch{M.value=[]}}function kt(){return new Promise(t=>{if(window.Chart)return t();const e=document.createElement("script");e.src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js",e.onload=()=>t(),e.onerror=()=>t(),document.head.appendChild(e)})}return Dt(async()=>{await kt(),await ht(),Z()}),(t,e)=>(l(),o("div",null,[a("div",Mt,[a("div",St,[a("div",Nt,[e[4]||(e[4]=a("label",{class:"label py-1"},[a("span",{class:"label-text text-xs text-slate-500"},"应用")],-1)),L(a("select",{"onUpdate:modelValue":e[0]||(e[0]=s=>i.app=s),class:"select select-bordered select-sm w-40"},[e[3]||(e[3]=a("option",{value:""},"全部应用",-1)),(l(!0),o(_,null,v(F.value,s=>(l(),o("option",{key:s.value,value:s.value},r(s.label),9,Bt))),128))],512),[[R,i.app]])]),a("div",Lt,[e[6]||(e[6]=a("label",{class:"label py-1"},[a("span",{class:"label-text text-xs text-slate-500"},"区域")],-1)),L(a("select",{"onUpdate:modelValue":e[1]||(e[1]=s=>i.region=s),class:"select select-bordered select-sm w-32"},[e[5]||(e[5]=a("option",{value:""},"全部区域",-1)),(l(!0),o(_,null,v(lt.value,s=>(l(),o("option",{key:s.value,value:s.value},r(s.label),9,Rt))),128))],512),[[R,i.region]])]),a("div",Vt,[e[8]||(e[8]=a("label",{class:"label py-1"},[a("span",{class:"label-text text-xs text-slate-500"},"产品")],-1)),L(a("select",{"onUpdate:modelValue":e[2]||(e[2]=s=>i.product=s),class:"select select-bordered select-sm w-48"},[e[7]||(e[7]=a("option",{value:""},"全部产品",-1)),(l(!0),o(_,null,v(M.value,s=>(l(),o("option",{key:s.value,value:s.value},r(s.label),9,qt))),128))],512),[[R,i.product]])]),a("button",{class:"btn btn-primary btn-sm text-white",onClick:Z},"查询"),e[9]||(e[9]=a("span",{class:"text-xs text-slate-400 ml-auto self-center"},"顶部为全量总览;各版面右上角可单独选时间周期",-1))])]),e[14]||(e[14]=a("div",{class:"sec-title muted"},[a("span",{class:"bar",style:{background:"#cbd5e1"}}),a("h2",null,"累计数据"),a("span",{class:"sub"},"全量累计 · 随筛选条件变化")],-1)),a("div",zt,[(l(!0),o(_,null,v(at.value,s=>(l(),o("div",{key:s[0],class:"cum-card"},[a("span",{class:"ico",style:A({background:g(s[0])[1]})},r(g(s[0])[0]),5),a("div",Ot,[a("div",Ht,r(s[1]),1),a("div",Tt,r(_t(s)),1)])]))),128))]),a("div",It,[a("div",Gt,[e[10]||(e[10]=a("span",{class:"bar",style:{background:"linear-gradient(180deg,#0EA5E9,#22D3EE)"}},null,-1)),e[11]||(e[11]=a("h2",null,"今日数据",-1)),a("span",Ut,r(Y.value),1),e[12]||(e[12]=a("span",{class:"sub"},"今日 0 点至现在 · 含较昨日同比(设备类无日期维度,仅见累计)",-1))]),a("div",Pt,[(l(!0),o(_,null,v(nt.value,s=>(l(),o("div",{key:s[0],class:"today-card"},[a("span",{class:"accent",style:A({background:g(s[0])[2]})},null,4),a("div",jt,[a("span",Yt,r(s[1]),1),a("span",{class:"ico",style:A({background:g(s[0])[1]})},r(g(s[0])[0]),5)]),a("div",Wt,r(vt(s)),1),a("div",Jt,[b(s).type==="new"?(l(),o("span",Zt,"新")):b(s).type!=="none"?(l(),o("span",{key:1,class:Q(["delta",b(s).type])},r(b(s).arrow)+" "+r(b(s).abs)+"%",3)):X("",!0),e[13]||(e[13]=a("span",null,"较昨日",-1))])]))),128))])]),e[15]||(e[15]=a("div",{class:"sec-title"},[a("span",{class:"bar",style:{background:"linear-gradient(180deg,#10B981,#22D3EE)"}}),a("h2",null,"趋势分析"),a("span",{class:"sub"},"各版面右上角可独立选择时间周期")],-1)),a("div",$t,[(l(!0),o(_,null,v(G.value,s=>(l(),o("div",{key:s.key,class:"panel"},[a("div",Kt,[a("span",{class:"panel-dot",style:A({background:s.tint})},[(l(),o("svg",{width:"17",height:"17",fill:"none",viewBox:"0 0 24 24",stroke:s.color},[a("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:s.icon},null,8,Xt)],8,Qt))],4),a("span",te,r(s.title),1),s.key==="device"?(l(),o("span",ee,"当前累计 · 无日期维度")):(l(),o("div",se,[(l(),o(_,null,v(ot,n=>a("button",{key:n[0],class:Q(["tbtn",{"tbtn-on":n[0]===w[s.key]}]),onClick:d=>yt(s.key,Number(n[0]))},r(n[1]),11,ae)),64))]))]),a("div",ne,[a("div",oe,[(l(!0),o(_,null,v(s.stats,n=>(l(),o("div",{key:n[0],class:"stat-box"},[a("div",le,r(n[1]),1),a("div",re,r(mt(s,n)),1)]))),128))]),s.key!=="device"?(l(),o("div",ie,[a("canvas",{ref_for:!0,ref:n=>gt(s.key,n)},null,512)])):X("",!0)])]))),128))])]))}}),pe=Ct(ce,[["__scopeId","data-v-7dbe8712"]]);export{pe as default}; diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/D6jD5keW.js b/apps/admin/.output/public/_nuxt/Cy8zKM7T.js similarity index 68% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/D6jD5keW.js rename to apps/admin/.output/public/_nuxt/Cy8zKM7T.js index db687be1..25116ead 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/client/_nuxt/D6jD5keW.js +++ b/apps/admin/.output/public/_nuxt/Cy8zKM7T.js @@ -1,6 +1,6 @@ -import{g as fe,y as xe,j as ge,c as d,a as e,k as r,p as O,F as E,r as $,m,l as z,v as K,t as i,B as ye,q as jt,A as Gt,n as Xt,d as g,C as U,s as n,x as he,o as u}from"./96IDI_OR.js";import{u as we}from"./Do83zqYq.js";import{u as ke}from"./CVUxyiJx.js";const Ce={class:"space-y-6"},_e={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-4"},Se={class:"flex items-end gap-3 flex-wrap"},Me={class:"form-control"},Ue=["value"],Ve={class:"form-control"},De=["value"],Ae={class:"form-control"},je={class:"form-control"},Ne={class:"grid grid-cols-3 gap-4"},Ie={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-5"},Te={class:"text-2xl font-bold text-slate-800"},Pe={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-5"},Be={class:"text-2xl font-bold text-indigo-600"},Fe={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-5"},Le={class:"text-base font-semibold text-slate-700"},Oe={class:"bg-white rounded-xl shadow-sm border border-slate-100 mt-5"},Ee={class:"flex items-center justify-between px-5 py-3 border-b border-slate-100"},$e={class:"flex items-center gap-2"},ze={class:"text-xs text-slate-400"},qe={class:"overflow-x-auto",style:{"max-height":"360px"}},Re={class:"table table-pin-rows text-sm"},He={key:0},Ge={key:1},Xe={colspan:"8",class:"text-center text-red-400 py-8"},Ye={key:2},Je={class:"text-xs text-slate-500 whitespace-nowrap"},Ke={class:"text-xs"},Qe={class:"text-xs"},We={class:"text-xs"},Ze={class:"font-mono text-xs"},ts={class:"font-mono text-xs"},es={class:"text-right font-medium"},ss={class:"flex gap-1"},ls=["onClick"],os=["onClick"],ns={class:"bg-white rounded-xl shadow-sm border border-slate-100 mt-5"},as={class:"flex items-center justify-between px-5 py-3 border-b border-slate-100 flex-wrap gap-2"},is={class:"flex items-end gap-2 flex-wrap"},ds={class:"form-control"},us={class:"form-control"},rs={class:"form-control"},cs={class:"form-control"},vs={class:"form-control"},bs={class:"form-control"},ps={class:"form-control"},ms={class:"form-control"},fs=["disabled"],xs=["disabled"],gs=["disabled"],ys=["disabled"],hs={class:"overflow-x-auto"},ws={class:"w-8"},ks={key:0},Cs={key:1},_s={colspan:"10",class:"text-center text-red-400 py-8"},Ss={key:2},Ms=["value"],Us={class:"font-mono text-xs"},Vs={class:"font-mono text-xs"},Ds={key:0,class:"badge badge-success badge-sm"},As={key:1,class:"badge badge-warning badge-sm"},js={key:2,class:"badge badge-error badge-sm"},Ns={key:0,class:"badge badge-error badge-sm"},Is={key:1,class:"badge badge-ghost badge-sm"},Ts={class:"text-xs"},Ps={class:"text-xs text-slate-500"},Bs={class:"flex gap-1"},Fs=["onClick"],Ls=["onClick"],Os=["onClick"],Es={class:"flex items-center justify-between px-5 py-3 border-t border-slate-100"},$s={class:"text-xs text-slate-500"},zs={class:"flex items-center gap-2"},qs=["disabled"],Rs={class:"text-xs text-slate-500"},Hs=["disabled"],Gs={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-2xl"},Xs={class:"form-control mb-4"},Ys=["value"],Js={class:"form-control mb-4"},Ks=["disabled"],Qs={value:0},Ws=["value"],Zs={class:"tabs tabs-boxed mb-4 bg-slate-100 inline-flex"},tl={class:"form-control mb-4"},el={class:"form-control mb-4"},sl=["required"],ll={class:"form-control mb-2"},ol={class:"form-control mb-4"},nl={class:"flex gap-3 mt-2"},al=["disabled"],il={key:0,class:"loading loading-spinner loading-xs"},dl={class:"modal-box w-11/12 max-w-2xl"},ul={class:"grid grid-cols-2 gap-4 mb-3"},rl={class:"form-control"},cl={class:"form-control"},vl={class:"form-control mb-3"},bl={class:"form-control mb-3"},pl={class:"form-control mb-4"},ml={class:"text-sm text-slate-500"},fl={class:"modal-action"},xl=["disabled"],gl={key:0,class:"loading loading-spinner loading-xs"},yl={class:"modal-box max-w-md"},hl={class:"text-sm space-y-1 mb-4"},wl={class:"font-medium"},kl={class:"font-medium"},Cl={class:"font-mono font-medium text-red-600"},_l={class:"font-medium"},Sl={class:"form-control mb-2"},Ml={class:"label"},Ul={class:"label-text text-xs"},Vl={class:"font-mono text-red-600"},Dl={class:"text-xs text-red-500 min-h-[1em] mb-2"},Al={class:"modal-action"},jl=["disabled"],Nl={key:0,class:"loading loading-spinner loading-xs"},Fl=fe({__name:"device",setup(Il){const{webApi:y}=we(),{success:h,error:V,warn:_}=ke(),w=xe(),Yt=U(()=>w.identity===1),Jt=U(()=>w.identity>0&&w.identity<=2),D=n([]),A=n([]),j=n([]),k=n([]),x=n([]),q=n(0),C=n(0),Q=n(200),N=n("production"),W=n("main"),S=n(0),b=n(0),pt=n(""),mt=n(""),ft=n("-"),xt=n("-"),gt=n("-"),yt=n(""),ht=n(!1),Z=n(""),tt=n("1"),wt=n("usedtime"),et=n(""),kt=n(""),Ct=n(""),_t=n(""),R=n("200"),St=n(null),H=n(""),st=n(!1),I=n([]),Nt=U(()=>I.value.length),It=n(null),T=n(0),G=n(0),lt=n(!1),ot=n(null),X=n(""),nt=n(!1),Y=n(null),P=n(""),at=n(null),it=n(!1),v=he({to:"",cc:"",subject:"",content:""}),Mt=n(null),p=n(null),dt=n(""),ut=n(""),rt=n(!1),Kt=U(()=>!!p.value&&dt.value.trim()===String(p.value.probatch)),Tt=U(()=>Math.max(1,Math.ceil(q.value/Q.value))),Qt=U(()=>b.value?"第 "+(C.value+1)+" / "+Tt.value+" 页":"-"),Pt=U(()=>S.value?A.value.filter(l=>l.factoryid===S.value):A.value),Bt=U(()=>T.value?A.value.filter(l=>l.factoryid===T.value):[]);function ct(l){if(!l)return"-";const t=new Date(l*1e3);return t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0")+"-"+String(t.getDate()).padStart(2,"0")+" "+String(t.getHours()).padStart(2,"0")+":"+String(t.getMinutes()).padStart(2,"0")}function Ft(l,t){if(!l)return 0;const s=new Date(l+(t?"T23:59:59":"T00:00:00"));return Math.floor(s.getTime()/1e3)}function Ut(l){const t=D.value.find(s=>s.id===l);return t?t.factory:String(l||"")}function Vt(l){const t=j.value.find(s=>s.id===l);return t?t.devicename:String(l||"")}function Lt(l){return l?Number(l).toString(16).toUpperCase():""}async function Wt(){try{const[t,s]=await Promise.all([y("getfactorys",{}),y("getproducts",{})]);D.value=t?.factorys??[],j.value=s?.products??[]}catch(t){V(t?.message??"加载基础数据失败"),D.value=[],j.value=[]}const l=w.products.map(t=>parseInt(t)).filter(t=>!isNaN(t)&&t>0);w.identity!==1&&l.length>0?A.value=j.value.filter(t=>l.indexOf(t.id)>=0):A.value=j.value.slice(),A.value.length>0&&(b.value=A.value[0].id),B()}function vt(){W.value="main"}function Zt(){W.value="create",T.value=0,G.value=0,lt.value=!1,ot.value=null,X.value="",Dt("production")}function te(){b.value&&!Pt.value.find(l=>l.id===b.value)&&(b.value=0),B()}function ee(){C.value=0,B()}function Ot(){let l;if(R.value==="custom"){if(l=Number(St.value),!l||l<1)return}else l=parseInt(R.value);l>2e3&&(l=2e3),Q.value=l,F(!0)}function B(){Et(),F(!0)}async function Et(){ht.value=!0,Z.value="";const l={limit:500};S.value&&(l.factoryid=S.value),b.value&&(l.productid=b.value);const t=Ft(pt.value,!1);t&&(l.start=t);const s=Ft(mt.value,!0);s&&(l.end=s);try{const o=await y("getfactorydeliverynotes",l);k.value=o?.notes??[],ft.value=o?.total_batch??0,xt.value=o?.total_devices??0,gt.value=k.value.length?ct(k.value[0].ts):"-",yt.value="共 "+k.value.length+" 条"}catch(o){Z.value=o?.message??"",k.value=[],ft.value="0",xt.value="0",gt.value="-",yt.value=""}finally{ht.value=!1}}function se(l,t,s,o){p.value={factoryid:l,productid:t,probatch:s,devicetnum:o},dt.value="",ut.value="",Mt.value?.showModal()}function $t(){Mt.value?.close(),p.value=null}async function le(){if(p.value){rt.value=!0,ut.value="";try{const l=await y("revokefactorydevics",{factoryid:p.value.factoryid,productid:p.value.productid,probatch:p.value.probatch});$t(),h("已撤销批次,删除 "+(l?.deleted??0)+" 个设备码"),B()}catch(l){ut.value=l?.message??"撤销失败"}finally{rt.value=!1}}}function oe(l,t){b.value=l,et.value=String(t),tt.value="0",C.value=0,F(!0),setTimeout(()=>{It.value?.scrollIntoView({behavior:"smooth",block:"start"})},100)}function zt(){const l={productid:b.value,sortby:wt.value,order:"desc"},t=parseInt(tt.value);isNaN(t)||(l.status=t),S.value&&(l.factoryid=S.value);const s=parseInt(et.value);s&&(l.probatch=s);const o=kt.value.trim();o&&(l.code=o);const a=Ct.value.trim();a&&(l.devicemac=a);const f=_t.value.trim();return f&&(l.uid=f),l}async function F(l){if(l&&(C.value=0),I.value=[],st.value=!1,!b.value){x.value=[],q.value=0,H.value="";return}const t=Object.assign(zt(),{limit:Q.value,offset:C.value*Q.value});try{const s=await y("getfactorydevics",t);x.value=s?.devices??[],q.value=s?.total??0,H.value=""}catch(s){H.value=s?.message??"",x.value=[],q.value=0}}function qt(l){C.value=Math.max(0,C.value+l),F(!1)}async function ne(l){if(window.confirm("确定重置该设备授权状态?"))try{await y("resetlicensestatus",{licenses:l}),h("重置成功"),F(!1),Et()}catch(t){V(t?.message??"失败")}}function ae(){st.value?I.value=x.value.map(l=>l.code||""):I.value=[]}async function bt(l,t){if(!b.value){_("请先选择产品");return}const s=t??I.value.slice();if(!s.length){_("请先勾选设备码");return}const o=l===-1?"禁用":"恢复";if(window.confirm("确定"+o+" "+s.length+" 个设备码?"+(l===-1?` -禁用后该设备码将无法绑定。`:"")))try{const a=await y("disablefactorydevics",{productid:b.value,codes:s,disabled:l});h(o+"成功("+(a?.affected??0)+" 条)"),F(!1)}catch(a){V(a?.message??o+"失败")}}function ie(){G.value=0}function Dt(l){N.value=l}function de(l){const s=l.target.files?.[0];if(!s)return;const o=new FileReader;o.onload=a=>{const f=String(a.target?.result??"").split(` -`),c=[];f.forEach(L=>{const M=L.split(",");M[0]&&M[0].trim()&&c.push(M[0].trim())}),X.value=c.join(", "),h("读取 "+c.length+" 个 MAC 地址")},o.readAsText(s,"UTF-8")}async function ue(){const l=Number(T.value),t=Number(G.value);if(!l||!t){_("请选择厂家和产品");return}const s={factoryid:l,productid:t};if(N.value==="production"){if(s.createtype=1,s.number=Number(ot.value),s.isbindmac=lt.value,!s.number||s.number<1){_("请输入有效数量");return}}else{s.createtype=2;const o=X.value.trim();if(!o){_("请输入或上传 MAC 地址");return}s.macaddresses=o}nt.value=!0;try{const o=await y("createfactorydevics",s);o&&o.devices&&o.devices.length>0?(h("成功生成 "+o.devices.length+" 个授权码"),At(o.devices),ve(o,l,t)):(h("创建成功"),vt(),B())}catch(o){V(o?.message??"创建失败")}finally{nt.value=!1}}function At(l){const t=l.some(c=>c.devicemac),s=t?["License","Mac地址"]:["License"],o=l.map(c=>t?[c.code||"",c.devicemac||""]:[c.code||""]),a=[s.join(",")].concat(o.map(c=>c.join(","))).join(` +import{g as fe,C as xe,j as ge,c as d,a as e,k as r,p as O,F as E,r as $,m,l as z,v as K,t as i,H as ye,q as jt,D as Gt,n as Xt,d as g,A as U,s as n,x as he,o as u}from"./CTAruH_8.js";import{u as we}from"./9B2ftqmN.js";import{u as ke}from"./lLLegusN.js";import"./D9HxoMhB.js";import"./yUUyh6cG.js";const Ce={class:"space-y-6"},_e={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-4"},Se={class:"flex items-end gap-3 flex-wrap"},Me={class:"form-control"},Ue=["value"],Ve={class:"form-control"},De=["value"],Ae={class:"form-control"},je={class:"form-control"},Ne={class:"grid grid-cols-3 gap-4"},Ie={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-5"},Te={class:"text-2xl font-bold text-slate-800"},Pe={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-5"},Fe={class:"text-2xl font-bold text-indigo-600"},Be={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-5"},Le={class:"text-base font-semibold text-slate-700"},Oe={class:"bg-white rounded-xl shadow-sm border border-slate-100 mt-5"},Ee={class:"flex items-center justify-between px-5 py-3 border-b border-slate-100"},$e={class:"flex items-center gap-2"},ze={class:"text-xs text-slate-400"},qe={class:"overflow-x-auto",style:{"max-height":"360px"}},Re={class:"table table-pin-rows text-sm"},He={key:0},Ge={key:1},Xe={colspan:"8",class:"text-center text-red-400 py-8"},Ye={key:2},Je={class:"text-xs text-slate-500 whitespace-nowrap"},Ke={class:"text-xs"},Qe={class:"text-xs"},We={class:"text-xs"},Ze={class:"font-mono text-xs"},ts={class:"font-mono text-xs"},es={class:"text-right font-medium"},ss={class:"flex gap-1"},ls=["onClick"],os=["onClick"],ns={class:"bg-white rounded-xl shadow-sm border border-slate-100 mt-5"},as={class:"flex items-center justify-between px-5 py-3 border-b border-slate-100 flex-wrap gap-2"},is={class:"flex items-end gap-2 flex-wrap"},ds={class:"form-control"},us={class:"form-control"},rs={class:"form-control"},cs={class:"form-control"},vs={class:"form-control"},bs={class:"form-control"},ps={class:"form-control"},ms={class:"form-control"},fs=["disabled"],xs=["disabled"],gs=["disabled"],ys=["disabled"],hs={class:"overflow-x-auto"},ws={class:"w-8"},ks={key:0},Cs={key:1},_s={colspan:"10",class:"text-center text-red-400 py-8"},Ss={key:2},Ms=["value"],Us={class:"font-mono text-xs"},Vs={class:"font-mono text-xs"},Ds={key:0,class:"badge badge-success badge-sm"},As={key:1,class:"badge badge-warning badge-sm"},js={key:2,class:"badge badge-error badge-sm"},Ns={key:0,class:"badge badge-error badge-sm"},Is={key:1,class:"badge badge-ghost badge-sm"},Ts={class:"text-xs"},Ps={class:"text-xs text-slate-500"},Fs={class:"flex gap-1"},Bs=["onClick"],Ls=["onClick"],Os=["onClick"],Es={class:"flex items-center justify-between px-5 py-3 border-t border-slate-100"},$s={class:"text-xs text-slate-500"},zs={class:"flex items-center gap-2"},qs=["disabled"],Rs={class:"text-xs text-slate-500"},Hs=["disabled"],Gs={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-2xl"},Xs={class:"form-control mb-4"},Ys=["value"],Js={class:"form-control mb-4"},Ks=["disabled"],Qs={value:0},Ws=["value"],Zs={class:"tabs tabs-boxed mb-4 bg-slate-100 inline-flex"},tl={class:"form-control mb-4"},el={class:"form-control mb-4"},sl=["required"],ll={class:"form-control mb-2"},ol={class:"form-control mb-4"},nl={class:"flex gap-3 mt-2"},al=["disabled"],il={key:0,class:"loading loading-spinner loading-xs"},dl={class:"modal-box w-11/12 max-w-2xl"},ul={class:"grid grid-cols-2 gap-4 mb-3"},rl={class:"form-control"},cl={class:"form-control"},vl={class:"form-control mb-3"},bl={class:"form-control mb-3"},pl={class:"form-control mb-4"},ml={class:"text-sm text-slate-500"},fl={class:"modal-action"},xl=["disabled"],gl={key:0,class:"loading loading-spinner loading-xs"},yl={class:"modal-box max-w-md"},hl={class:"text-sm space-y-1 mb-4"},wl={class:"font-medium"},kl={class:"font-medium"},Cl={class:"font-mono font-medium text-red-600"},_l={class:"font-medium"},Sl={class:"form-control mb-2"},Ml={class:"label"},Ul={class:"label-text text-xs"},Vl={class:"font-mono text-red-600"},Dl={class:"text-xs text-red-500 min-h-[1em] mb-2"},Al={class:"modal-action"},jl=["disabled"],Nl={key:0,class:"loading loading-spinner loading-xs"},Ol=fe({__name:"device",setup(Il){const{webApi:y}=we(),{success:h,error:V,warn:_}=ke(),w=xe(),Yt=U(()=>w.identity===1),Jt=U(()=>w.identity>0&&w.identity<=2),D=n([]),A=n([]),j=n([]),k=n([]),x=n([]),q=n(0),C=n(0),Q=n(200),N=n("production"),W=n("main"),S=n(0),b=n(0),pt=n(""),mt=n(""),ft=n("-"),xt=n("-"),gt=n("-"),yt=n(""),ht=n(!1),Z=n(""),tt=n("1"),wt=n("usedtime"),et=n(""),kt=n(""),Ct=n(""),_t=n(""),R=n("200"),St=n(null),H=n(""),st=n(!1),I=n([]),Nt=U(()=>I.value.length),It=n(null),T=n(0),G=n(0),lt=n(!1),ot=n(null),X=n(""),nt=n(!1),Y=n(null),P=n(""),at=n(null),it=n(!1),v=he({to:"",cc:"",subject:"",content:""}),Mt=n(null),p=n(null),dt=n(""),ut=n(""),rt=n(!1),Kt=U(()=>!!p.value&&dt.value.trim()===String(p.value.probatch)),Tt=U(()=>Math.max(1,Math.ceil(q.value/Q.value))),Qt=U(()=>b.value?"第 "+(C.value+1)+" / "+Tt.value+" 页":"-"),Pt=U(()=>S.value?A.value.filter(l=>l.factoryid===S.value):A.value),Ft=U(()=>T.value?A.value.filter(l=>l.factoryid===T.value):[]);function ct(l){if(!l)return"-";const t=new Date(l*1e3);return t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0")+"-"+String(t.getDate()).padStart(2,"0")+" "+String(t.getHours()).padStart(2,"0")+":"+String(t.getMinutes()).padStart(2,"0")}function Bt(l,t){if(!l)return 0;const s=new Date(l+(t?"T23:59:59":"T00:00:00"));return Math.floor(s.getTime()/1e3)}function Ut(l){const t=D.value.find(s=>s.id===l);return t?t.factory:String(l||"")}function Vt(l){const t=j.value.find(s=>s.id===l);return t?t.devicename:String(l||"")}function Lt(l){return l?Number(l).toString(16).toUpperCase():""}async function Wt(){try{const[t,s]=await Promise.all([y("getfactorys",{}),y("getproducts",{})]);D.value=t?.factorys??[],j.value=s?.products??[]}catch(t){V(t?.message??"加载基础数据失败"),D.value=[],j.value=[]}const l=w.products.map(t=>parseInt(t)).filter(t=>!isNaN(t)&&t>0);w.identity!==1&&l.length>0?A.value=j.value.filter(t=>l.indexOf(t.id)>=0):A.value=j.value.slice(),A.value.length>0&&(b.value=A.value[0].id),F()}function vt(){W.value="main"}function Zt(){W.value="create",T.value=0,G.value=0,lt.value=!1,ot.value=null,X.value="",Dt("production")}function te(){b.value&&!Pt.value.find(l=>l.id===b.value)&&(b.value=0),F()}function ee(){C.value=0,F()}function Ot(){let l;if(R.value==="custom"){if(l=Number(St.value),!l||l<1)return}else l=parseInt(R.value);l>2e3&&(l=2e3),Q.value=l,B(!0)}function F(){Et(),B(!0)}async function Et(){ht.value=!0,Z.value="";const l={limit:500};S.value&&(l.factoryid=S.value),b.value&&(l.productid=b.value);const t=Bt(pt.value,!1);t&&(l.start=t);const s=Bt(mt.value,!0);s&&(l.end=s);try{const o=await y("getfactorydeliverynotes",l);k.value=o?.notes??[],ft.value=o?.total_batch??0,xt.value=o?.total_devices??0,gt.value=k.value.length?ct(k.value[0].ts):"-",yt.value="共 "+k.value.length+" 条"}catch(o){Z.value=o?.message??"",k.value=[],ft.value="0",xt.value="0",gt.value="-",yt.value=""}finally{ht.value=!1}}function se(l,t,s,o){p.value={factoryid:l,productid:t,probatch:s,devicetnum:o},dt.value="",ut.value="",Mt.value?.showModal()}function $t(){Mt.value?.close(),p.value=null}async function le(){if(p.value){rt.value=!0,ut.value="";try{const l=await y("revokefactorydevics",{factoryid:p.value.factoryid,productid:p.value.productid,probatch:p.value.probatch});$t(),h("已撤销批次,删除 "+(l?.deleted??0)+" 个设备码"),F()}catch(l){ut.value=l?.message??"撤销失败"}finally{rt.value=!1}}}function oe(l,t){b.value=l,et.value=String(t),tt.value="0",C.value=0,B(!0),setTimeout(()=>{It.value?.scrollIntoView({behavior:"smooth",block:"start"})},100)}function zt(){const l={productid:b.value,sortby:wt.value,order:"desc"},t=parseInt(tt.value);isNaN(t)||(l.status=t),S.value&&(l.factoryid=S.value);const s=parseInt(et.value);s&&(l.probatch=s);const o=kt.value.trim();o&&(l.code=o);const a=Ct.value.trim();a&&(l.devicemac=a);const f=_t.value.trim();return f&&(l.uid=f),l}async function B(l){if(l&&(C.value=0),I.value=[],st.value=!1,!b.value){x.value=[],q.value=0,H.value="";return}const t=Object.assign(zt(),{limit:Q.value,offset:C.value*Q.value});try{const s=await y("getfactorydevics",t);x.value=s?.devices??[],q.value=s?.total??0,H.value=""}catch(s){H.value=s?.message??"",x.value=[],q.value=0}}function qt(l){C.value=Math.max(0,C.value+l),B(!1)}async function ne(l){if(window.confirm("确定重置该设备授权状态?"))try{await y("resetlicensestatus",{licenses:l}),h("重置成功"),B(!1),Et()}catch(t){V(t?.message??"失败")}}function ae(){st.value?I.value=x.value.map(l=>l.code||""):I.value=[]}async function bt(l,t){if(!b.value){_("请先选择产品");return}const s=t??I.value.slice();if(!s.length){_("请先勾选设备码");return}const o=l===-1?"禁用":"恢复";if(window.confirm("确定"+o+" "+s.length+" 个设备码?"+(l===-1?` +禁用后该设备码将无法绑定。`:"")))try{const a=await y("disablefactorydevics",{productid:b.value,codes:s,disabled:l});h(o+"成功("+(a?.affected??0)+" 条)"),B(!1)}catch(a){V(a?.message??o+"失败")}}function ie(){G.value=0}function Dt(l){N.value=l}function de(l){const s=l.target.files?.[0];if(!s)return;const o=new FileReader;o.onload=a=>{const f=String(a.target?.result??"").split(` +`),c=[];f.forEach(L=>{const M=L.split(",");M[0]&&M[0].trim()&&c.push(M[0].trim())}),X.value=c.join(", "),h("读取 "+c.length+" 个 MAC 地址")},o.readAsText(s,"UTF-8")}async function ue(){const l=Number(T.value),t=Number(G.value);if(!l||!t){_("请选择厂家和产品");return}const s={factoryid:l,productid:t};if(N.value==="production"){if(s.createtype=1,s.number=Number(ot.value),s.isbindmac=lt.value,!s.number||s.number<1){_("请输入有效数量");return}}else{s.createtype=2;const o=X.value.trim();if(!o){_("请输入或上传 MAC 地址");return}s.macaddresses=o}nt.value=!0;try{const o=await y("createfactorydevics",s);o&&o.devices&&o.devices.length>0?(h("成功生成 "+o.devices.length+" 个授权码"),At(o.devices),ve(o,l,t)):(h("创建成功"),vt(),F())}catch(o){V(o?.message??"创建失败")}finally{nt.value=!1}}function At(l){const t=l.some(c=>c.devicemac),s=t?["License","Mac地址"]:["License"],o=l.map(c=>t?[c.code||"",c.devicemac||""]:[c.code||""]),a=[s.join(",")].concat(o.map(c=>c.join(","))).join(` `);Y.value=new Blob([a],{type:"text/csv;charset=utf-8;"});const f=l[0];P.value="设备生产_"+(f.factoryid||"unknown")+"_"+(f.productid||"unknown")+"_"+new Date().toISOString().split("T")[0]+".csv"}async function re(){if(!b.value){_("请先选择产品");return}try{const l=zt(),t=2e3;let s=[],o=0,a=1/0;for(;s.length[ct(a.ts),Ut(a.factoryid),Vt(a.productid),a.probatch||0,a.startmac||"",a.endmac||"",a.devicetnum||0]),s=[l.join(",")].concat(t.map(a=>a.join(","))).join(` `),o=new Blob([s],{type:"text/csv;charset=utf-8;"});Rt(o,"生产记录_"+new Date().toISOString().split("T")[0]+".csv"),h("导出成功")}function Rt(l,t){const s=URL.createObjectURL(l),o=document.createElement("a");o.href=s,o.download=t,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(s)}function ve(l,t,s){const o=D.value.find(J=>J.id===t),a=j.value.find(J=>J.id===s),f=a?a.devicename:"未知产品(ID:"+s+")",c=o?o.factoryflag:null,L=c!=null?parseInt(c,16):null;let M=[];o&&o.contactmails&&(M=o.contactmails.split(",").map(J=>J.trim()).filter(Boolean)),v.to=M[0]||"",v.cc=M.length>1?M.slice(1).join(","):"";const me=new Date().toLocaleDateString();v.subject="【生产通知】批次"+(l.probatch||"")+"设备生产通知 - "+me,v.content=`尊敬的合作伙伴: @@ -25,4 +25,4 @@ import{g as fe,y as xe,j as ge,c as d,a as e,k as r,p as O,F as E,r as $,m,l as 请查收。 此致 -敬礼!`,at.value?.showModal()}function Ht(){at.value?.close()}async function pe(){it.value=!0;const l=new FormData;l.append("to",v.to),l.append("subject",v.subject),l.append("content",v.content);const t=v.cc.trim();if(t&&l.append("cc",t),Y.value&&P.value){const s=new File([Y.value],P.value,{type:"text/csv"});l.append("file",s,P.value)}try{const s={};w.token&&(s.Authorization=w.token),w.currentAppId&&(s["X-App-Id"]=String(w.currentAppId));const a=await(await fetch("/web/api/api_sendsmtpemail",{method:"POST",headers:s,body:l})).json();a.code===0?(h("邮件发送成功"),Ht(),vt(),B()):V("发送失败: "+(a.msg||"未知错误"))}catch(s){V("发送失败: "+(s?.message??""))}finally{it.value=!1}}return ge(Wt),(l,t)=>(u(),d("div",Ce,[e("div",_e,[e("div",Se,[e("div",Me,[t[32]||(t[32]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"厂家")],-1)),r(e("select",{"onUpdate:modelValue":t[0]||(t[0]=s=>S.value=s),class:"select select-bordered select-sm",style:{"min-width":"160px"},onChange:te},[t[31]||(t[31]=e("option",{value:0},"全部",-1)),(u(!0),d(E,null,$(D.value,s=>(u(),d("option",{key:s.id,value:s.id},i(s.factory||""),9,Ue))),128))],544),[[O,S.value,void 0,{number:!0}]])]),e("div",Ve,[t[34]||(t[34]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"产品")],-1)),r(e("select",{"onUpdate:modelValue":t[1]||(t[1]=s=>b.value=s),class:"select select-bordered select-sm",style:{"min-width":"200px"},onChange:ee},[t[33]||(t[33]=e("option",{value:0},"请选择产品",-1)),(u(!0),d(E,null,$(Pt.value,s=>(u(),d("option",{key:s.id,value:s.id},i(s.devicename||""),9,De))),128))],544),[[O,b.value,void 0,{number:!0}]])]),e("div",Ae,[t[35]||(t[35]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"起始时间")],-1)),r(e("input",{"onUpdate:modelValue":t[2]||(t[2]=s=>pt.value=s),type:"date",class:"input input-bordered input-sm"},null,512),[[m,pt.value]])]),e("div",je,[t[36]||(t[36]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"结束时间")],-1)),r(e("input",{"onUpdate:modelValue":t[3]||(t[3]=s=>mt.value=s),type:"date",class:"input input-bordered input-sm"},null,512),[[m,mt.value]])]),e("button",{class:"btn btn-primary btn-sm text-white",onClick:B},"查询"),Jt.value?(u(),d("button",{key:0,class:"btn btn-success btn-sm text-white",onClick:Zt},"+ 生成授权码")):z("",!0)])]),r(e("div",null,[e("div",Ne,[e("div",Ie,[t[37]||(t[37]=e("div",{class:"text-xs text-slate-400 mb-1"},"命中批次数",-1)),e("div",Te,i(ft.value),1)]),e("div",Pe,[t[38]||(t[38]=e("div",{class:"text-xs text-slate-400 mb-1"},"生产设备总数",-1)),e("div",Be,i(xt.value),1)]),e("div",Fe,[t[39]||(t[39]=e("div",{class:"text-xs text-slate-400 mb-1"},"最近一次生产时间",-1)),e("div",Le,i(gt.value),1)])]),e("div",Oe,[e("div",Ee,[t[40]||(t[40]=e("h3",{class:"text-sm font-semibold text-slate-700"},"生产记录(按批次)",-1)),e("div",$e,[e("span",ze,i(yt.value),1),e("button",{class:"btn btn-ghost btn-xs",onClick:ce},"导出CSV")])]),e("div",qe,[e("table",Re,[t[43]||(t[43]=e("thead",null,[e("tr",null,[e("th",{class:"w-40"},"生产时间"),e("th",null,"厂家"),e("th",null,"产品"),e("th",null,"批次"),e("th",null,"起始MAC"),e("th",null,"结束MAC"),e("th",{class:"text-right"},"数量"),e("th",null,"操作")])],-1)),e("tbody",null,[ht.value?(u(),d("tr",He,[...t[41]||(t[41]=[e("td",{colspan:"8",class:"text-center text-slate-400 py-8"},"加载中…",-1)])])):Z.value?(u(),d("tr",Ge,[e("td",Xe,"查询失败: "+i(Z.value),1)])):k.value.length?(u(!0),d(E,{key:3},$(k.value,(s,o)=>(u(),d("tr",{key:o,class:"hover"},[e("td",Je,i(ct(s.ts)),1),e("td",Ke,i(Ut(s.factoryid)),1),e("td",Qe,i(Vt(s.productid)),1),e("td",We,i(s.probatch||0),1),e("td",Ze,i(s.startmac||""),1),e("td",ts,i(s.endmac||""),1),e("td",es,i(s.devicetnum||0),1),e("td",null,[e("div",ss,[e("button",{class:"btn btn-ghost btn-xs text-indigo-500",onClick:a=>oe(s.productid,s.probatch)},"查看授权码",8,ls),Yt.value?(u(),d("button",{key:0,class:"btn btn-ghost btn-xs text-red-500",onClick:a=>se(s.factoryid,s.productid,s.probatch,s.devicetnum||0)},"撤销",8,os)):z("",!0)])])]))),128)):(u(),d("tr",Ye,[...t[42]||(t[42]=[e("td",{colspan:"8",class:"text-center text-slate-400 py-8"},"暂无数据",-1)])]))])])])]),e("div",ns,[e("div",as,[t[55]||(t[55]=e("h3",{class:"text-sm font-semibold text-slate-700"},"授权码记录",-1)),e("div",is,[e("div",ds,[t[45]||(t[45]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"状态")],-1)),r(e("select",{"onUpdate:modelValue":t[4]||(t[4]=s=>tt.value=s),class:"select select-bordered select-xs"},[...t[44]||(t[44]=[e("option",{value:"1"},"已激活",-1),e("option",{value:"-1"},"未使用",-1),e("option",{value:"2"},"已过期",-1),e("option",{value:"0"},"全部",-1)])],512),[[O,tt.value]])]),e("div",us,[t[47]||(t[47]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"排序")],-1)),r(e("select",{"onUpdate:modelValue":t[5]||(t[5]=s=>wt.value=s),class:"select select-bordered select-xs"},[...t[46]||(t[46]=[e("option",{value:"usedtime"},"激活时间",-1),e("option",{value:"createtime"},"创建时间",-1)])],512),[[O,wt.value]])]),e("div",rs,[t[48]||(t[48]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"批次")],-1)),r(e("input",{"onUpdate:modelValue":t[6]||(t[6]=s=>et.value=s),type:"number",class:"input input-bordered input-xs",placeholder:"批次号",style:{width:"90px"}},null,512),[[m,et.value]])]),e("div",cs,[t[49]||(t[49]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"授权码")],-1)),r(e("input",{"onUpdate:modelValue":t[7]||(t[7]=s=>kt.value=s),type:"text",class:"input input-bordered input-xs",placeholder:"授权码"},null,512),[[m,kt.value]])]),e("div",vs,[t[50]||(t[50]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"MAC")],-1)),r(e("input",{"onUpdate:modelValue":t[8]||(t[8]=s=>Ct.value=s),type:"text",class:"input input-bordered input-xs",placeholder:"MAC"},null,512),[[m,Ct.value]])]),e("div",bs,[t[51]||(t[51]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"用户UID")],-1)),r(e("input",{"onUpdate:modelValue":t[9]||(t[9]=s=>_t.value=s),type:"text",class:"input input-bordered input-xs",placeholder:"UID"},null,512),[[m,_t.value]])]),e("div",ps,[t[53]||(t[53]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"每页数量")],-1)),r(e("select",{"onUpdate:modelValue":t[10]||(t[10]=s=>R.value=s),class:"select select-bordered select-xs",onChange:Ot},[...t[52]||(t[52]=[ye('',6)])],544),[[O,R.value]])]),r(e("div",ms,[t[54]||(t[54]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"自定义")],-1)),r(e("input",{"onUpdate:modelValue":t[11]||(t[11]=s=>St.value=s),type:"number",min:"1",max:"2000",class:"input input-bordered input-xs",placeholder:"1-2000",style:{width:"90px"},onChange:Ot},null,544),[[m,St.value,void 0,{number:!0}]])],512),[[K,R.value==="custom"]]),e("button",{class:"btn btn-primary btn-xs text-white",onClick:t[12]||(t[12]=s=>F(!0))},"搜索"),e("button",{class:"btn btn-error btn-xs text-white",disabled:Nt.value===0,onClick:t[13]||(t[13]=s=>bt(-1))},"批量禁用",8,fs),e("button",{class:"btn btn-warning btn-xs text-white",disabled:Nt.value===0,onClick:t[14]||(t[14]=s=>bt(0))},"批量恢复",8,xs),e("button",{class:"btn btn-ghost btn-xs",disabled:!x.value.length,onClick:re},"导出",8,gs),e("button",{class:"btn btn-ghost btn-xs",disabled:!x.value.length,onClick:be},"发邮件",8,ys)])]),e("div",hs,[e("table",{ref_key:"devicesTable",ref:It,class:"table table-zebra text-sm"},[e("thead",null,[e("tr",null,[e("th",ws,[r(e("input",{"onUpdate:modelValue":t[15]||(t[15]=s=>st.value=s),type:"checkbox",class:"checkbox checkbox-xs",onChange:ae},null,544),[[jt,st.value]])]),t[56]||(t[56]=e("th",null,"授权码",-1)),t[57]||(t[57]=e("th",null,"类型",-1)),t[58]||(t[58]=e("th",null,"批次",-1)),t[59]||(t[59]=e("th",null,"MAC",-1)),t[60]||(t[60]=e("th",null,"状态",-1)),t[61]||(t[61]=e("th",null,"封禁",-1)),t[62]||(t[62]=e("th",null,"用户UID",-1)),t[63]||(t[63]=e("th",null,"激活时间",-1)),t[64]||(t[64]=e("th",null,"操作",-1))])]),e("tbody",null,[b.value?H.value?(u(),d("tr",Cs,[e("td",_s,"查询失败: "+i(H.value),1)])):x.value.length?(u(!0),d(E,{key:3},$(x.value,(s,o)=>(u(),d("tr",{key:o},[e("td",null,[r(e("input",{"onUpdate:modelValue":t[16]||(t[16]=a=>I.value=a),type:"checkbox",class:"checkbox checkbox-xs",value:s.code||""},null,8,Ms),[[jt,I.value]])]),e("td",Us,i(s.code||""),1),e("td",null,i(s.codetype===0?"授权码":"设备码"),1),e("td",null,i(s.probatch),1),e("td",Vs,i(s.devicemac||""),1),e("td",null,[s.status===0?(u(),d("span",Ds,"未使用")):s.status===1?(u(),d("span",As,"已使用")):(u(),d("span",js,"已过期"))]),e("td",null,[s.disabled!==0?(u(),d("span",Ns,"已禁用")):(u(),d("span",Is,"正常"))]),e("td",Ts,i(s.uid||""),1),e("td",Ps,i(s.usedtime?ct(s.usedtime):"-"),1),e("td",null,[e("div",Bs,[s.disabled!==0?(u(),d("button",{key:0,class:"btn btn-ghost btn-xs text-warning",onClick:a=>bt(0,[s.code])},"恢复",8,Fs)):(u(),d("button",{key:1,class:"btn btn-ghost btn-xs text-error",onClick:a=>bt(-1,[s.code])},"禁用",8,Ls)),s.status!==0?(u(),d("button",{key:2,class:"btn btn-ghost btn-xs text-orange-500",onClick:a=>ne(s.code)},"重置",8,Os)):z("",!0)])])]))),128)):(u(),d("tr",Ss,[...t[66]||(t[66]=[e("td",{colspan:"10",class:"text-center text-slate-400 py-8"},"暂无数据",-1)])])):(u(),d("tr",ks,[...t[65]||(t[65]=[e("td",{colspan:"10",class:"text-center text-slate-400 py-8"},"请先选择产品",-1)])]))])],512)]),e("div",Es,[e("span",$s,i(b.value?"共 "+q.value+" 条":"-"),1),e("div",zs,[e("button",{class:"btn btn-ghost btn-xs",disabled:C.value<=0||!b.value,onClick:t[17]||(t[17]=s=>qt(-1))},"上一页",8,qs),e("span",Rs,i(Qt.value),1),e("button",{class:"btn btn-ghost btn-xs",disabled:!b.value||C.value+1>=Tt.value,onClick:t[18]||(t[18]=s=>qt(1))},"下一页",8,Hs)])])])],512),[[K,W.value==="main"]]),r(e("div",null,[e("div",{class:"flex items-center gap-3 mb-5"},[e("button",{class:"btn btn-ghost btn-sm",onClick:vt},"← 返回"),t[67]||(t[67]=e("h2",{class:"text-lg font-semibold text-slate-800"},"生成授权码",-1))]),e("div",Gs,[e("form",{onSubmit:Gt(ue,["prevent"])},[e("div",Xs,[t[69]||(t[69]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"厂家 *")],-1)),r(e("select",{"onUpdate:modelValue":t[19]||(t[19]=s=>T.value=s),class:"select select-bordered w-full",required:"",onChange:ie},[t[68]||(t[68]=e("option",{value:0},"请选择厂家",-1)),(u(!0),d(E,null,$(D.value,s=>(u(),d("option",{key:s.id,value:s.id},i((s.factory||"")+" ("+Lt(s.id)+")"),9,Ys))),128))],544),[[O,T.value,void 0,{number:!0}]])]),e("div",Js,[t[70]||(t[70]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"产品 *")],-1)),r(e("select",{"onUpdate:modelValue":t[20]||(t[20]=s=>G.value=s),class:"select select-bordered w-full",required:"",disabled:!Bt.value.length},[e("option",Qs,i(T.value?"请选择产品":"请先选择厂家"),1),(u(!0),d(E,null,$(Bt.value,s=>(u(),d("option",{key:s.id,value:s.id},i((s.devicename||"")+" ("+Lt(s.id)+")"),9,Ws))),128))],8,Ks),[[O,G.value,void 0,{number:!0}]])]),e("div",Zs,[e("a",{class:Xt(["tab",{"tab-active":N.value==="production"}]),onClick:t[21]||(t[21]=s=>Dt("production"))},"生产",2),e("a",{class:Xt(["tab",{"tab-active":N.value==="import"}]),onClick:t[22]||(t[22]=s=>Dt("import"))},"导入",2)]),r(e("div",null,[e("div",tl,[t[71]||(t[71]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"绑定MAC地址")],-1)),r(e("input",{"onUpdate:modelValue":t[23]||(t[23]=s=>lt.value=s),type:"checkbox",class:"toggle toggle-primary"},null,512),[[jt,lt.value]])]),e("div",el,[t[72]||(t[72]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"数量 *")],-1)),r(e("input",{"onUpdate:modelValue":t[24]||(t[24]=s=>ot.value=s),type:"number",class:"input input-bordered w-full",min:"1",max:"10000",placeholder:"请输入生产数量",required:N.value==="production"},null,8,sl),[[m,ot.value,void 0,{number:!0}]])])],512),[[K,N.value==="production"]]),r(e("div",null,[e("div",ll,[t[73]||(t[73]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"上传 CSV 文件")],-1)),e("input",{type:"file",class:"file-input file-input-bordered file-input-sm w-full",accept:".csv",onChange:de},null,32),t[74]||(t[74]=e("p",{class:"text-xs text-slate-400 mt-1"},"上传 CSV 文件,系统将读取第一列作为 MAC 地址",-1))]),e("div",ol,[t[75]||(t[75]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"MAC 地址列表 *")],-1)),r(e("textarea",{"onUpdate:modelValue":t[25]||(t[25]=s=>X.value=s),class:"textarea textarea-bordered w-full",rows:"4",placeholder:"MAC 地址以逗号分隔,可手动输入或通过CSV导入"},null,512),[[m,X.value]])])],512),[[K,N.value==="import"]]),e("div",nl,[e("button",{type:"button",class:"btn btn-ghost",onClick:vt},"取消"),e("button",{type:"submit",class:"btn btn-primary text-white",disabled:nt.value},[nt.value?(u(),d("span",il)):z("",!0),t[76]||(t[76]=g("生成 ",-1))],8,al)])],32)])],512),[[K,W.value==="create"]]),e("dialog",{ref_key:"emailModal",ref:at,class:"modal"},[e("div",dl,[t[83]||(t[83]=e("h3",{class:"font-bold text-lg mb-4 flex items-center gap-2"},[e("svg",{class:"h-5 w-5 text-blue-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})]),g(" 发送邮件通知 ")],-1)),e("form",{onSubmit:Gt(pe,["prevent"])},[e("div",ul,[e("div",rl,[t[77]||(t[77]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"收件人 *")],-1)),r(e("input",{"onUpdate:modelValue":t[26]||(t[26]=s=>v.to=s),type:"email",class:"input input-bordered input-sm w-full",required:""},null,512),[[m,v.to]])]),e("div",cl,[t[78]||(t[78]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"抄送")],-1)),r(e("input",{"onUpdate:modelValue":t[27]||(t[27]=s=>v.cc=s),type:"text",class:"input input-bordered input-sm w-full",placeholder:"多个邮箱用逗号分隔"},null,512),[[m,v.cc]])])]),e("div",vl,[t[79]||(t[79]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"主题 *")],-1)),r(e("input",{"onUpdate:modelValue":t[28]||(t[28]=s=>v.subject=s),type:"text",class:"input input-bordered input-sm w-full",required:""},null,512),[[m,v.subject]])]),e("div",bl,[t[80]||(t[80]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"内容 *")],-1)),r(e("textarea",{"onUpdate:modelValue":t[29]||(t[29]=s=>v.content=s),class:"textarea textarea-bordered w-full",rows:"10",required:""},null,512),[[m,v.content]])]),e("div",pl,[t[81]||(t[81]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"附件")],-1)),e("div",ml,i(P.value?"📎 "+P.value:"无附件"),1)]),e("div",fl,[e("button",{type:"button",class:"btn btn-ghost btn-sm",onClick:Ht},"取消"),e("button",{type:"submit",class:"btn btn-primary btn-sm text-white",disabled:it.value},[it.value?(u(),d("span",gl)):z("",!0),t[82]||(t[82]=g("发送邮件 ",-1))],8,xl)])],32)]),t[84]||(t[84]=e("form",{method:"dialog",class:"modal-backdrop"},[e("button",null,"close")],-1))],512),e("dialog",{ref_key:"revokeModal",ref:Mt,class:"modal"},[e("div",yl,[t[92]||(t[92]=e("h3",{class:"font-bold text-lg mb-3 flex items-center gap-2 text-red-600"},[e("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01M4.93 19h14.14a2 2 0 001.74-3L13.74 4a2 2 0 00-3.48 0L3.19 16a2 2 0 001.74 3z"})]),g(" 撤销生产批次 ")],-1)),t[93]||(t[93]=e("div",{class:"bg-red-50 border border-red-200 rounded-lg p-3 text-sm text-red-700 mb-4"},[g(" 此操作将"),e("strong",null,"删除该批次的全部设备码"),g("以及对应的生产出货记录,"),e("strong",null,"不可恢复"),g("。"),e("br"),g(" 若该批次中已有任意设备码被激活/绑定,撤销会被拒绝。 ")],-1)),e("div",hl,[e("div",null,[t[85]||(t[85]=e("span",{class:"text-slate-500"},"厂家:",-1)),e("span",wl,i(p.value?Ut(p.value.factoryid):""),1)]),e("div",null,[t[86]||(t[86]=e("span",{class:"text-slate-500"},"产品:",-1)),e("span",kl,i(p.value?Vt(p.value.productid):""),1)]),e("div",null,[t[87]||(t[87]=e("span",{class:"text-slate-500"},"批次:",-1)),e("span",Cl,i(p.value?p.value.probatch:""),1)]),e("div",null,[t[88]||(t[88]=e("span",{class:"text-slate-500"},"设备码数量:",-1)),e("span",_l,i(p.value?p.value.devicetnum:""),1)])]),e("div",Sl,[e("label",Ml,[e("span",Ul,[t[89]||(t[89]=g("请输入批次号 ",-1)),e("span",Vl,i(p.value?p.value.probatch:""),1),t[90]||(t[90]=g(" 以确认撤销",-1))])]),r(e("input",{"onUpdate:modelValue":t[30]||(t[30]=s=>dt.value=s),type:"text",class:"input input-bordered input-sm w-full",autocomplete:"off"},null,512),[[m,dt.value]])]),e("p",Dl,i(ut.value),1),e("div",Al,[e("button",{type:"button",class:"btn btn-ghost btn-sm",onClick:$t},"取消"),e("button",{type:"button",class:"btn btn-error btn-sm text-white",disabled:!Kt.value||rt.value,onClick:le},[rt.value?(u(),d("span",Nl)):z("",!0),t[91]||(t[91]=g("确认撤销 ",-1))],8,jl)])]),t[94]||(t[94]=e("form",{method:"dialog",class:"modal-backdrop"},[e("button",null,"close")],-1))],512)]))}});export{Fl as default}; +敬礼!`,at.value?.showModal()}function Ht(){at.value?.close()}async function pe(){it.value=!0;const l=new FormData;l.append("to",v.to),l.append("subject",v.subject),l.append("content",v.content);const t=v.cc.trim();if(t&&l.append("cc",t),Y.value&&P.value){const s=new File([Y.value],P.value,{type:"text/csv"});l.append("file",s,P.value)}try{const s={};w.token&&(s.Authorization=w.token),w.currentAppId&&(s["X-App-Id"]=String(w.currentAppId));const a=await(await fetch("/web/api/api_sendsmtpemail",{method:"POST",headers:s,body:l})).json();a.code===0?(h("邮件发送成功"),Ht(),vt(),F()):V("发送失败: "+(a.msg||"未知错误"))}catch(s){V("发送失败: "+(s?.message??""))}finally{it.value=!1}}return ge(Wt),(l,t)=>(u(),d("div",Ce,[e("div",_e,[e("div",Se,[e("div",Me,[t[32]||(t[32]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"厂家")],-1)),r(e("select",{"onUpdate:modelValue":t[0]||(t[0]=s=>S.value=s),class:"select select-bordered select-sm",style:{"min-width":"160px"},onChange:te},[t[31]||(t[31]=e("option",{value:0},"全部",-1)),(u(!0),d(E,null,$(D.value,s=>(u(),d("option",{key:s.id,value:s.id},i(s.factory||""),9,Ue))),128))],544),[[O,S.value,void 0,{number:!0}]])]),e("div",Ve,[t[34]||(t[34]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"产品")],-1)),r(e("select",{"onUpdate:modelValue":t[1]||(t[1]=s=>b.value=s),class:"select select-bordered select-sm",style:{"min-width":"200px"},onChange:ee},[t[33]||(t[33]=e("option",{value:0},"请选择产品",-1)),(u(!0),d(E,null,$(Pt.value,s=>(u(),d("option",{key:s.id,value:s.id},i(s.devicename||""),9,De))),128))],544),[[O,b.value,void 0,{number:!0}]])]),e("div",Ae,[t[35]||(t[35]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"起始时间")],-1)),r(e("input",{"onUpdate:modelValue":t[2]||(t[2]=s=>pt.value=s),type:"date",class:"input input-bordered input-sm"},null,512),[[m,pt.value]])]),e("div",je,[t[36]||(t[36]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"结束时间")],-1)),r(e("input",{"onUpdate:modelValue":t[3]||(t[3]=s=>mt.value=s),type:"date",class:"input input-bordered input-sm"},null,512),[[m,mt.value]])]),e("button",{class:"btn btn-primary btn-sm text-white",onClick:F},"查询"),Jt.value?(u(),d("button",{key:0,class:"btn btn-success btn-sm text-white",onClick:Zt},"+ 生成授权码")):z("",!0)])]),r(e("div",null,[e("div",Ne,[e("div",Ie,[t[37]||(t[37]=e("div",{class:"text-xs text-slate-400 mb-1"},"命中批次数",-1)),e("div",Te,i(ft.value),1)]),e("div",Pe,[t[38]||(t[38]=e("div",{class:"text-xs text-slate-400 mb-1"},"生产设备总数",-1)),e("div",Fe,i(xt.value),1)]),e("div",Be,[t[39]||(t[39]=e("div",{class:"text-xs text-slate-400 mb-1"},"最近一次生产时间",-1)),e("div",Le,i(gt.value),1)])]),e("div",Oe,[e("div",Ee,[t[40]||(t[40]=e("h3",{class:"text-sm font-semibold text-slate-700"},"生产记录(按批次)",-1)),e("div",$e,[e("span",ze,i(yt.value),1),e("button",{class:"btn btn-ghost btn-xs",onClick:ce},"导出CSV")])]),e("div",qe,[e("table",Re,[t[43]||(t[43]=e("thead",null,[e("tr",null,[e("th",{class:"w-40"},"生产时间"),e("th",null,"厂家"),e("th",null,"产品"),e("th",null,"批次"),e("th",null,"起始MAC"),e("th",null,"结束MAC"),e("th",{class:"text-right"},"数量"),e("th",null,"操作")])],-1)),e("tbody",null,[ht.value?(u(),d("tr",He,[...t[41]||(t[41]=[e("td",{colspan:"8",class:"text-center text-slate-400 py-8"},"加载中…",-1)])])):Z.value?(u(),d("tr",Ge,[e("td",Xe,"查询失败: "+i(Z.value),1)])):k.value.length?(u(!0),d(E,{key:3},$(k.value,(s,o)=>(u(),d("tr",{key:o,class:"hover"},[e("td",Je,i(ct(s.ts)),1),e("td",Ke,i(Ut(s.factoryid)),1),e("td",Qe,i(Vt(s.productid)),1),e("td",We,i(s.probatch||0),1),e("td",Ze,i(s.startmac||""),1),e("td",ts,i(s.endmac||""),1),e("td",es,i(s.devicetnum||0),1),e("td",null,[e("div",ss,[e("button",{class:"btn btn-ghost btn-xs text-indigo-500",onClick:a=>oe(s.productid,s.probatch)},"查看授权码",8,ls),Yt.value?(u(),d("button",{key:0,class:"btn btn-ghost btn-xs text-red-500",onClick:a=>se(s.factoryid,s.productid,s.probatch,s.devicetnum||0)},"撤销",8,os)):z("",!0)])])]))),128)):(u(),d("tr",Ye,[...t[42]||(t[42]=[e("td",{colspan:"8",class:"text-center text-slate-400 py-8"},"暂无数据",-1)])]))])])])]),e("div",ns,[e("div",as,[t[55]||(t[55]=e("h3",{class:"text-sm font-semibold text-slate-700"},"授权码记录",-1)),e("div",is,[e("div",ds,[t[45]||(t[45]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"状态")],-1)),r(e("select",{"onUpdate:modelValue":t[4]||(t[4]=s=>tt.value=s),class:"select select-bordered select-xs"},[...t[44]||(t[44]=[e("option",{value:"1"},"已激活",-1),e("option",{value:"-1"},"未使用",-1),e("option",{value:"2"},"已过期",-1),e("option",{value:"0"},"全部",-1)])],512),[[O,tt.value]])]),e("div",us,[t[47]||(t[47]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"排序")],-1)),r(e("select",{"onUpdate:modelValue":t[5]||(t[5]=s=>wt.value=s),class:"select select-bordered select-xs"},[...t[46]||(t[46]=[e("option",{value:"usedtime"},"激活时间",-1),e("option",{value:"createtime"},"创建时间",-1)])],512),[[O,wt.value]])]),e("div",rs,[t[48]||(t[48]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"批次")],-1)),r(e("input",{"onUpdate:modelValue":t[6]||(t[6]=s=>et.value=s),type:"number",class:"input input-bordered input-xs",placeholder:"批次号",style:{width:"90px"}},null,512),[[m,et.value]])]),e("div",cs,[t[49]||(t[49]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"授权码")],-1)),r(e("input",{"onUpdate:modelValue":t[7]||(t[7]=s=>kt.value=s),type:"text",class:"input input-bordered input-xs",placeholder:"授权码"},null,512),[[m,kt.value]])]),e("div",vs,[t[50]||(t[50]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"MAC")],-1)),r(e("input",{"onUpdate:modelValue":t[8]||(t[8]=s=>Ct.value=s),type:"text",class:"input input-bordered input-xs",placeholder:"MAC"},null,512),[[m,Ct.value]])]),e("div",bs,[t[51]||(t[51]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"用户UID")],-1)),r(e("input",{"onUpdate:modelValue":t[9]||(t[9]=s=>_t.value=s),type:"text",class:"input input-bordered input-xs",placeholder:"UID"},null,512),[[m,_t.value]])]),e("div",ps,[t[53]||(t[53]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"每页数量")],-1)),r(e("select",{"onUpdate:modelValue":t[10]||(t[10]=s=>R.value=s),class:"select select-bordered select-xs",onChange:Ot},[...t[52]||(t[52]=[ye('',6)])],544),[[O,R.value]])]),r(e("div",ms,[t[54]||(t[54]=e("label",{class:"label py-0"},[e("span",{class:"label-text text-xs"},"自定义")],-1)),r(e("input",{"onUpdate:modelValue":t[11]||(t[11]=s=>St.value=s),type:"number",min:"1",max:"2000",class:"input input-bordered input-xs",placeholder:"1-2000",style:{width:"90px"},onChange:Ot},null,544),[[m,St.value,void 0,{number:!0}]])],512),[[K,R.value==="custom"]]),e("button",{class:"btn btn-primary btn-xs text-white",onClick:t[12]||(t[12]=s=>B(!0))},"搜索"),e("button",{class:"btn btn-error btn-xs text-white",disabled:Nt.value===0,onClick:t[13]||(t[13]=s=>bt(-1))},"批量禁用",8,fs),e("button",{class:"btn btn-warning btn-xs text-white",disabled:Nt.value===0,onClick:t[14]||(t[14]=s=>bt(0))},"批量恢复",8,xs),e("button",{class:"btn btn-ghost btn-xs",disabled:!x.value.length,onClick:re},"导出",8,gs),e("button",{class:"btn btn-ghost btn-xs",disabled:!x.value.length,onClick:be},"发邮件",8,ys)])]),e("div",hs,[e("table",{ref_key:"devicesTable",ref:It,class:"table table-zebra text-sm"},[e("thead",null,[e("tr",null,[e("th",ws,[r(e("input",{"onUpdate:modelValue":t[15]||(t[15]=s=>st.value=s),type:"checkbox",class:"checkbox checkbox-xs",onChange:ae},null,544),[[jt,st.value]])]),t[56]||(t[56]=e("th",null,"授权码",-1)),t[57]||(t[57]=e("th",null,"类型",-1)),t[58]||(t[58]=e("th",null,"批次",-1)),t[59]||(t[59]=e("th",null,"MAC",-1)),t[60]||(t[60]=e("th",null,"状态",-1)),t[61]||(t[61]=e("th",null,"封禁",-1)),t[62]||(t[62]=e("th",null,"用户UID",-1)),t[63]||(t[63]=e("th",null,"激活时间",-1)),t[64]||(t[64]=e("th",null,"操作",-1))])]),e("tbody",null,[b.value?H.value?(u(),d("tr",Cs,[e("td",_s,"查询失败: "+i(H.value),1)])):x.value.length?(u(!0),d(E,{key:3},$(x.value,(s,o)=>(u(),d("tr",{key:o},[e("td",null,[r(e("input",{"onUpdate:modelValue":t[16]||(t[16]=a=>I.value=a),type:"checkbox",class:"checkbox checkbox-xs",value:s.code||""},null,8,Ms),[[jt,I.value]])]),e("td",Us,i(s.code||""),1),e("td",null,i(s.codetype===0?"授权码":"设备码"),1),e("td",null,i(s.probatch),1),e("td",Vs,i(s.devicemac||""),1),e("td",null,[s.status===0?(u(),d("span",Ds,"未使用")):s.status===1?(u(),d("span",As,"已使用")):(u(),d("span",js,"已过期"))]),e("td",null,[s.disabled!==0?(u(),d("span",Ns,"已禁用")):(u(),d("span",Is,"正常"))]),e("td",Ts,i(s.uid||""),1),e("td",Ps,i(s.usedtime?ct(s.usedtime):"-"),1),e("td",null,[e("div",Fs,[s.disabled!==0?(u(),d("button",{key:0,class:"btn btn-ghost btn-xs text-warning",onClick:a=>bt(0,[s.code])},"恢复",8,Bs)):(u(),d("button",{key:1,class:"btn btn-ghost btn-xs text-error",onClick:a=>bt(-1,[s.code])},"禁用",8,Ls)),s.status!==0?(u(),d("button",{key:2,class:"btn btn-ghost btn-xs text-orange-500",onClick:a=>ne(s.code)},"重置",8,Os)):z("",!0)])])]))),128)):(u(),d("tr",Ss,[...t[66]||(t[66]=[e("td",{colspan:"10",class:"text-center text-slate-400 py-8"},"暂无数据",-1)])])):(u(),d("tr",ks,[...t[65]||(t[65]=[e("td",{colspan:"10",class:"text-center text-slate-400 py-8"},"请先选择产品",-1)])]))])],512)]),e("div",Es,[e("span",$s,i(b.value?"共 "+q.value+" 条":"-"),1),e("div",zs,[e("button",{class:"btn btn-ghost btn-xs",disabled:C.value<=0||!b.value,onClick:t[17]||(t[17]=s=>qt(-1))},"上一页",8,qs),e("span",Rs,i(Qt.value),1),e("button",{class:"btn btn-ghost btn-xs",disabled:!b.value||C.value+1>=Tt.value,onClick:t[18]||(t[18]=s=>qt(1))},"下一页",8,Hs)])])])],512),[[K,W.value==="main"]]),r(e("div",null,[e("div",{class:"flex items-center gap-3 mb-5"},[e("button",{class:"btn btn-ghost btn-sm",onClick:vt},"← 返回"),t[67]||(t[67]=e("h2",{class:"text-lg font-semibold text-slate-800"},"生成授权码",-1))]),e("div",Gs,[e("form",{onSubmit:Gt(ue,["prevent"])},[e("div",Xs,[t[69]||(t[69]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"厂家 *")],-1)),r(e("select",{"onUpdate:modelValue":t[19]||(t[19]=s=>T.value=s),class:"select select-bordered w-full",required:"",onChange:ie},[t[68]||(t[68]=e("option",{value:0},"请选择厂家",-1)),(u(!0),d(E,null,$(D.value,s=>(u(),d("option",{key:s.id,value:s.id},i((s.factory||"")+" ("+Lt(s.id)+")"),9,Ys))),128))],544),[[O,T.value,void 0,{number:!0}]])]),e("div",Js,[t[70]||(t[70]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"产品 *")],-1)),r(e("select",{"onUpdate:modelValue":t[20]||(t[20]=s=>G.value=s),class:"select select-bordered w-full",required:"",disabled:!Ft.value.length},[e("option",Qs,i(T.value?"请选择产品":"请先选择厂家"),1),(u(!0),d(E,null,$(Ft.value,s=>(u(),d("option",{key:s.id,value:s.id},i((s.devicename||"")+" ("+Lt(s.id)+")"),9,Ws))),128))],8,Ks),[[O,G.value,void 0,{number:!0}]])]),e("div",Zs,[e("a",{class:Xt(["tab",{"tab-active":N.value==="production"}]),onClick:t[21]||(t[21]=s=>Dt("production"))},"生产",2),e("a",{class:Xt(["tab",{"tab-active":N.value==="import"}]),onClick:t[22]||(t[22]=s=>Dt("import"))},"导入",2)]),r(e("div",null,[e("div",tl,[t[71]||(t[71]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"绑定MAC地址")],-1)),r(e("input",{"onUpdate:modelValue":t[23]||(t[23]=s=>lt.value=s),type:"checkbox",class:"toggle toggle-primary"},null,512),[[jt,lt.value]])]),e("div",el,[t[72]||(t[72]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"数量 *")],-1)),r(e("input",{"onUpdate:modelValue":t[24]||(t[24]=s=>ot.value=s),type:"number",class:"input input-bordered w-full",min:"1",max:"10000",placeholder:"请输入生产数量",required:N.value==="production"},null,8,sl),[[m,ot.value,void 0,{number:!0}]])])],512),[[K,N.value==="production"]]),r(e("div",null,[e("div",ll,[t[73]||(t[73]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"上传 CSV 文件")],-1)),e("input",{type:"file",class:"file-input file-input-bordered file-input-sm w-full",accept:".csv",onChange:de},null,32),t[74]||(t[74]=e("p",{class:"text-xs text-slate-400 mt-1"},"上传 CSV 文件,系统将读取第一列作为 MAC 地址",-1))]),e("div",ol,[t[75]||(t[75]=e("label",{class:"label"},[e("span",{class:"label-text font-medium"},"MAC 地址列表 *")],-1)),r(e("textarea",{"onUpdate:modelValue":t[25]||(t[25]=s=>X.value=s),class:"textarea textarea-bordered w-full",rows:"4",placeholder:"MAC 地址以逗号分隔,可手动输入或通过CSV导入"},null,512),[[m,X.value]])])],512),[[K,N.value==="import"]]),e("div",nl,[e("button",{type:"button",class:"btn btn-ghost",onClick:vt},"取消"),e("button",{type:"submit",class:"btn btn-primary text-white",disabled:nt.value},[nt.value?(u(),d("span",il)):z("",!0),t[76]||(t[76]=g("生成 ",-1))],8,al)])],32)])],512),[[K,W.value==="create"]]),e("dialog",{ref_key:"emailModal",ref:at,class:"modal"},[e("div",dl,[t[83]||(t[83]=e("h3",{class:"font-bold text-lg mb-4 flex items-center gap-2"},[e("svg",{class:"h-5 w-5 text-blue-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})]),g(" 发送邮件通知 ")],-1)),e("form",{onSubmit:Gt(pe,["prevent"])},[e("div",ul,[e("div",rl,[t[77]||(t[77]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"收件人 *")],-1)),r(e("input",{"onUpdate:modelValue":t[26]||(t[26]=s=>v.to=s),type:"email",class:"input input-bordered input-sm w-full",required:""},null,512),[[m,v.to]])]),e("div",cl,[t[78]||(t[78]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"抄送")],-1)),r(e("input",{"onUpdate:modelValue":t[27]||(t[27]=s=>v.cc=s),type:"text",class:"input input-bordered input-sm w-full",placeholder:"多个邮箱用逗号分隔"},null,512),[[m,v.cc]])])]),e("div",vl,[t[79]||(t[79]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"主题 *")],-1)),r(e("input",{"onUpdate:modelValue":t[28]||(t[28]=s=>v.subject=s),type:"text",class:"input input-bordered input-sm w-full",required:""},null,512),[[m,v.subject]])]),e("div",bl,[t[80]||(t[80]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"内容 *")],-1)),r(e("textarea",{"onUpdate:modelValue":t[29]||(t[29]=s=>v.content=s),class:"textarea textarea-bordered w-full",rows:"10",required:""},null,512),[[m,v.content]])]),e("div",pl,[t[81]||(t[81]=e("label",{class:"label"},[e("span",{class:"label-text text-xs"},"附件")],-1)),e("div",ml,i(P.value?"📎 "+P.value:"无附件"),1)]),e("div",fl,[e("button",{type:"button",class:"btn btn-ghost btn-sm",onClick:Ht},"取消"),e("button",{type:"submit",class:"btn btn-primary btn-sm text-white",disabled:it.value},[it.value?(u(),d("span",gl)):z("",!0),t[82]||(t[82]=g("发送邮件 ",-1))],8,xl)])],32)]),t[84]||(t[84]=e("form",{method:"dialog",class:"modal-backdrop"},[e("button",null,"close")],-1))],512),e("dialog",{ref_key:"revokeModal",ref:Mt,class:"modal"},[e("div",yl,[t[92]||(t[92]=e("h3",{class:"font-bold text-lg mb-3 flex items-center gap-2 text-red-600"},[e("svg",{class:"h-5 w-5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 9v2m0 4h.01M4.93 19h14.14a2 2 0 001.74-3L13.74 4a2 2 0 00-3.48 0L3.19 16a2 2 0 001.74 3z"})]),g(" 撤销生产批次 ")],-1)),t[93]||(t[93]=e("div",{class:"bg-red-50 border border-red-200 rounded-lg p-3 text-sm text-red-700 mb-4"},[g(" 此操作将"),e("strong",null,"删除该批次的全部设备码"),g("以及对应的生产出货记录,"),e("strong",null,"不可恢复"),g("。"),e("br"),g(" 若该批次中已有任意设备码被激活/绑定,撤销会被拒绝。 ")],-1)),e("div",hl,[e("div",null,[t[85]||(t[85]=e("span",{class:"text-slate-500"},"厂家:",-1)),e("span",wl,i(p.value?Ut(p.value.factoryid):""),1)]),e("div",null,[t[86]||(t[86]=e("span",{class:"text-slate-500"},"产品:",-1)),e("span",kl,i(p.value?Vt(p.value.productid):""),1)]),e("div",null,[t[87]||(t[87]=e("span",{class:"text-slate-500"},"批次:",-1)),e("span",Cl,i(p.value?p.value.probatch:""),1)]),e("div",null,[t[88]||(t[88]=e("span",{class:"text-slate-500"},"设备码数量:",-1)),e("span",_l,i(p.value?p.value.devicetnum:""),1)])]),e("div",Sl,[e("label",Ml,[e("span",Ul,[t[89]||(t[89]=g("请输入批次号 ",-1)),e("span",Vl,i(p.value?p.value.probatch:""),1),t[90]||(t[90]=g(" 以确认撤销",-1))])]),r(e("input",{"onUpdate:modelValue":t[30]||(t[30]=s=>dt.value=s),type:"text",class:"input input-bordered input-sm w-full",autocomplete:"off"},null,512),[[m,dt.value]])]),e("p",Dl,i(ut.value),1),e("div",Al,[e("button",{type:"button",class:"btn btn-ghost btn-sm",onClick:$t},"取消"),e("button",{type:"button",class:"btn btn-error btn-sm text-white",disabled:!Kt.value||rt.value,onClick:le},[rt.value?(u(),d("span",Nl)):z("",!0),t[91]||(t[91]=g("确认撤销 ",-1))],8,jl)])]),t[94]||(t[94]=e("form",{method:"dialog",class:"modal-backdrop"},[e("button",null,"close")],-1))],512)]))}});export{Ol as default}; diff --git a/apps/admin/.output/public/_nuxt/D9HxoMhB.js b/apps/admin/.output/public/_nuxt/D9HxoMhB.js new file mode 100644 index 00000000..3a8be188 --- /dev/null +++ b/apps/admin/.output/public/_nuxt/D9HxoMhB.js @@ -0,0 +1 @@ +import{u}from"./yUUyh6cG.js";import{A as e}from"./CTAruH_8.js";function r(){const n=u("app:loading",()=>0),o=e(()=>n.value>0);function a(){n.value++}function t(){n.value=Math.max(0,n.value-1)}return{count:n,loading:o,begin:a,end:t}}export{r as u}; diff --git a/apps/admin/.output/public/_nuxt/DGXiXcCA.js b/apps/admin/.output/public/_nuxt/DGXiXcCA.js deleted file mode 100644 index d2c8b4e0..00000000 --- a/apps/admin/.output/public/_nuxt/DGXiXcCA.js +++ /dev/null @@ -1 +0,0 @@ -import{g as R,j as q,c as a,k as i,v as E,a as t,F as p,r as f,p as j,m as u,t as r,A as I,B as G,s as m,x as H,C as k,o as d}from"./96IDI_OR.js";import{u as J}from"./Do83zqYq.js";import{u as K}from"./CVUxyiJx.js";const P={class:"flex items-center justify-between mb-5"},Q={class:"flex items-center gap-3 mb-4 flex-wrap"},W=["value"],X=["value"],Y={class:"bg-white rounded-xl shadow-sm border border-slate-100"},Z={class:"overflow-x-auto"},tt={class:"table table-zebra"},et={key:0},st={key:1},lt={class:"bg-slate-100/80"},ot={colspan:"7",class:"py-2"},nt={class:"font-semibold text-slate-600 text-sm"},at={class:"text-xs text-slate-400 ml-2"},it={class:"font-mono text-sm text-slate-400"},dt={class:"font-medium"},rt={class:"font-mono text-sm"},ut={class:"badge badge-outline badge-sm"},mt={class:"text-sm"},pt={class:"text-sm"},bt={key:1,class:"text-slate-300"},ct={class:"text-right"},ft={class:"inline-flex gap-1"},vt=["onClick"],gt=["onClick"],xt={class:"flex items-center gap-3 mb-5"},yt={class:"text-lg font-semibold text-slate-800"},wt={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-3xl"},kt={class:"grid grid-cols-2 gap-4"},ht={class:"form-control mb-4"},_t={class:"form-control mb-4"},Vt={class:"form-control mb-4"},Ut={class:"form-control mb-4"},Ct={class:"form-control mb-4"},Ft={class:"form-control mb-4"},St={class:"form-control mb-4"},Lt={class:"form-control mb-4"},$t={class:"form-control mb-6"},At={class:"flex gap-3"},Bt=["disabled"],Ot=R({__name:"meettemplates",setup(Et){const{webApi:v}=J(),{success:L,error:g}=K(),x=m("list"),b=m([]),h=m(!1),_=m(!1),c=m(!1),y=m(""),w=m(""),V=m(""),o=H({id:0,title:"",tid:"",language:"",ttype:"",tags:"",icon:"",description:"",outline:"",template:""});function $(l){return(l||"").split(",").map(e=>e.trim()).filter(Boolean)}const D=k(()=>{const l=new Set;return b.value.forEach(e=>{e.language&&l.add(e.language)}),Array.from(l).sort()}),M=k(()=>{const l=new Set;return b.value.forEach(e=>{e.tid&&l.add(e.tid)}),Array.from(l).sort()}),A=k(()=>{const l=V.value.trim().toLowerCase();return b.value.filter(e=>!(y.value&&(e.language||"")!==y.value||w.value&&(e.tid||"")!==w.value||l&&(e.title||"").toLowerCase().indexOf(l)<0))}),O=k(()=>{const l={};return A.value.forEach(s=>{const n=s.tid||"";(l[n]=l[n]||[]).push(s)}),Object.keys(l).sort((s,n)=>s===""?-1:n===""?1:s({key:s,label:s||"无 tid",items:l[s]}))});async function U(){h.value=!0;try{const l=await v("getmeettemplates",{});b.value=l?.templates??[]}catch(l){g(l?.message??"加载失败"),b.value=[]}finally{h.value=!1}}function C(){x.value="list",U()}function F(l){o.id=l.id||0,o.title=l.title||"",o.tid=l.tid||"",o.language=l.language||"",o.ttype=l.ttype||"",o.tags=l.tags||"",o.icon=l.icon||"",o.description=l.description||"",o.outline=l.outline||"",o.template=l.template||""}async function B(l){if(x.value="form",l&&l.id){c.value=!0,F(l);try{const e=await v("getmeettemplate",{id:l.id});e&&F(e)}catch(e){g(e?.message??"加载详情失败")}}else c.value=!1,F({})}async function T(){_.value=!0;try{const l={title:o.title.trim(),tid:o.tid.trim(),language:o.language.trim(),ttype:o.ttype.trim(),tags:o.tags.trim(),icon:o.icon.trim(),description:o.description.trim(),outline:o.outline,template:o.template};c.value&&(l.id=Number(o.id)),await v(c.value?"updatemeettemplate":"addmeettemplate",l),L("保存成功"),C()}catch(l){g(l?.message??"保存失败")}finally{_.value=!1}}function z(l){window.confirm(`确定删除模板 "${l.title||""}" 吗?`)&&v("delmeettemplate",{ids:[l.id]}).then(()=>{L("删除成功"),U()}).catch(e=>g(e?.message??"删除失败"))}return q(U),(l,e)=>(d(),a("div",null,[i(t("div",null,[t("div",P,[e[15]||(e[15]=t("div",null,[t("h2",{class:"text-lg font-semibold text-slate-800"},"会议模板"),t("p",{class:"text-xs text-slate-400 mt-1"},"会议纪要公共模板(source=public),所有应用共享。修改后各服务约 10 分钟内自动同步。")],-1)),t("button",{class:"btn btn-primary btn-sm text-white",onClick:e[0]||(e[0]=s=>B())},"+ 新增模板")]),t("div",Q,[e[18]||(e[18]=t("span",{class:"text-sm text-slate-500"},"语言",-1)),i(t("select",{"onUpdate:modelValue":e[1]||(e[1]=s=>y.value=s),class:"select select-bordered select-sm"},[e[16]||(e[16]=t("option",{value:""},"全部语言",-1)),(d(!0),a(p,null,f(D.value,s=>(d(),a("option",{key:s,value:s},r(s),9,W))),128))],512),[[j,y.value]]),e[19]||(e[19]=t("span",{class:"text-sm text-slate-500"},"分组(tid)",-1)),i(t("select",{"onUpdate:modelValue":e[2]||(e[2]=s=>w.value=s),class:"select select-bordered select-sm"},[e[17]||(e[17]=t("option",{value:""},"全部分组",-1)),(d(!0),a(p,null,f(M.value,s=>(d(),a("option",{key:s,value:s},r(s),9,X))),128))],512),[[j,w.value]]),i(t("input",{"onUpdate:modelValue":e[3]||(e[3]=s=>V.value=s),class:"input input-bordered input-sm w-48",placeholder:"按标题搜索"},null,512),[[u,V.value]])]),t("div",Y,[t("div",Z,[t("table",tt,[e[22]||(e[22]=t("thead",null,[t("tr",null,[t("th",null,"ID"),t("th",null,"标题"),t("th",null,"模板标识(tid)"),t("th",null,"语言"),t("th",null,"类型"),t("th",null,"标签"),t("th",{class:"text-right"},"操作")])],-1)),t("tbody",null,[h.value?(d(),a("tr",et,[...e[20]||(e[20]=[t("td",{colspan:"7",class:"text-center py-8"},[t("span",{class:"loading loading-spinner loading-sm"})],-1)])])):A.value.length?(d(!0),a(p,{key:2},f(O.value,s=>(d(),a(p,{key:s.key},[t("tr",lt,[t("td",ot,[t("span",nt,"▸ "+r(s.label),1),t("span",at,r(s.items.length)+" 个版本",1)])]),(d(!0),a(p,null,f(s.items,n=>(d(),a("tr",{key:n.id,class:"hover"},[t("td",it,r(n.id||""),1),t("td",dt,r(n.title||""),1),t("td",rt,r(n.tid||""),1),t("td",null,[t("span",ut,r(n.language||"-"),1)]),t("td",mt,r(n.ttype||""),1),t("td",pt,[$(n.tags).length?(d(!0),a(p,{key:0},f($(n.tags),(S,N)=>(d(),a("span",{key:N,class:"badge badge-ghost badge-sm mr-1"},r(S),1))),128)):(d(),a("span",bt,"-"))]),t("td",ct,[t("div",ft,[t("button",{class:"btn btn-ghost btn-xs",onClick:S=>B(n)},"编辑",8,vt),t("button",{class:"btn btn-ghost btn-xs text-red-500",onClick:S=>z(n)},"删除",8,gt)])])]))),128))],64))),128)):(d(),a("tr",st,[...e[21]||(e[21]=[t("td",{colspan:"7",class:"text-center text-slate-400 py-8"},"暂无模板",-1)])]))])])])])],512),[[E,x.value==="list"]]),i(t("div",null,[t("div",xt,[t("button",{class:"btn btn-ghost btn-sm",onClick:e[4]||(e[4]=s=>C())},"← 返回列表"),t("h2",yt,r(c.value?"编辑模板":"新增模板"),1)]),t("div",wt,[t("form",{onSubmit:I(T,["prevent"])},[t("div",kt,[t("div",ht,[e[23]||(e[23]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"标题 *")],-1)),i(t("input",{"onUpdate:modelValue":e[5]||(e[5]=s=>o.title=s),type:"text",class:"input input-bordered w-full",required:""},null,512),[[u,o.title]])]),t("div",_t,[e[24]||(e[24]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"模板标识 (tid)")],-1)),i(t("input",{"onUpdate:modelValue":e[6]||(e[6]=s=>o.tid=s),type:"text",class:"input input-bordered w-full",placeholder:"同一 tid 可有多语言版本"},null,512),[[u,o.tid]])]),t("div",Vt,[e[25]||(e[25]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"语言")],-1)),i(t("input",{"onUpdate:modelValue":e[7]||(e[7]=s=>o.language=s),type:"text",class:"input input-bordered w-full",placeholder:"如 zh / en",list:"langlist"},null,512),[[u,o.language]]),e[26]||(e[26]=G('',1))]),t("div",Ut,[e[27]||(e[27]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"类型 (ttype)")],-1)),i(t("input",{"onUpdate:modelValue":e[8]||(e[8]=s=>o.ttype=s),type:"text",class:"input input-bordered w-full",placeholder:"如 meeting / interview"},null,512),[[u,o.ttype]])]),t("div",Ct,[e[28]||(e[28]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"标签 (tags)")],-1)),i(t("input",{"onUpdate:modelValue":e[9]||(e[9]=s=>o.tags=s),type:"text",class:"input input-bordered w-full",placeholder:"逗号分隔"},null,512),[[u,o.tags]])]),t("div",Ft,[e[29]||(e[29]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"图标 (icon)")],-1)),i(t("input",{"onUpdate:modelValue":e[10]||(e[10]=s=>o.icon=s),type:"text",class:"input input-bordered w-full",placeholder:"图标 URL 或名称"},null,512),[[u,o.icon]])])]),t("div",St,[e[30]||(e[30]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"描述")],-1)),i(t("input",{"onUpdate:modelValue":e[11]||(e[11]=s=>o.description=s),type:"text",class:"input input-bordered w-full"},null,512),[[u,o.description]])]),t("div",Lt,[e[31]||(e[31]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"大纲 (outline)")],-1)),i(t("textarea",{"onUpdate:modelValue":e[12]||(e[12]=s=>o.outline=s),class:"textarea textarea-bordered w-full font-mono text-sm",rows:"4"},null,512),[[u,o.outline]])]),t("div",$t,[e[32]||(e[32]=t("label",{class:"label"},[t("span",{class:"label-text font-medium"},"模板内容 (template)")],-1)),i(t("textarea",{"onUpdate:modelValue":e[13]||(e[13]=s=>o.template=s),class:"textarea textarea-bordered w-full font-mono text-sm",rows:"10"},null,512),[[u,o.template]])]),t("div",At,[t("button",{type:"button",class:"btn btn-ghost",onClick:e[14]||(e[14]=s=>C())},"取消"),t("button",{type:"submit",class:"btn btn-primary text-white",disabled:_.value},"保存",8,Bt)])],32)])],512),[[E,x.value==="form"]])]))}});export{Ot as default}; diff --git a/apps/admin/.output/public/_nuxt/DN5T-G_F.js b/apps/admin/.output/public/_nuxt/DN5T-G_F.js deleted file mode 100644 index 386aadc5..00000000 --- a/apps/admin/.output/public/_nuxt/DN5T-G_F.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as C}from"./0ubqzWuP.js";import{u as H}from"./CVUxyiJx.js";import{g as w,o,c as n,F as c,r as x,n as A,a as t,t as a,J as h,y as B,z as j,K as L,j as E,l as b,L as T,w as N,d as F,B as S,b as D,I as $,C as u}from"./96IDI_OR.js";const I={class:"toast toast-bottom toast-end z-50"},R=w({__name:"AppToast",setup(y){const{toasts:s}=H();function p(l){switch(l){case"success":return"alert-success";case"error":return"alert-error";case"warning":return"alert-warning";default:return"alert-info"}}return(l,_)=>(o(),n("div",I,[(o(!0),n(c,null,x(h(s),d=>(o(),n("div",{key:d.id,class:A(["alert",p(d.type)])},[t("span",null,a(d.msg),1)],2))),128))]))}}),G=Object.assign(R,{__name:"AppToast"}),J={class:"flex min-h-screen"},K={class:"fixed top-0 left-0 bottom-0 z-30 overflow-y-auto flex flex-col",style:{width:"256px",background:"#1E293B"}},O={style:{padding:"20px 20px 16px","border-bottom":"1px solid rgba(255,255,255,0.06)"}},P={style:{display:"flex","align-items":"center",gap:"12px"}},U={style:{width:"40px",height:"40px",background:"linear-gradient(135deg,#4F46E5,#7C3AED)","border-radius":"12px",display:"flex","align-items":"center","justify-content":"center","box-shadow":"0 6px 20px rgba(79,70,229,0.35)","flex-shrink":"0"}},W={style:{width:"22px",height:"22px",color:"#fff"},fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},q={style:{color:"#fff","font-weight":"700","font-size":"15px","letter-spacing":"-0.02em"}},Q={style:{padding:"12px 0",flex:"1"}},X={class:"icon",width:"18",height:"18",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},Y=["d"],Z={style:{"margin-top":"auto",padding:"14px 18px","border-top":"1px solid rgba(255,255,255,0.06)"}},tt={style:{display:"flex","align-items":"center",gap:"10px"}},et={style:{width:"32px",height:"32px","border-radius":"9px",background:"linear-gradient(135deg,#4F46E5,#7C3AED)",color:"#fff",display:"flex","align-items":"center","justify-content":"center","font-weight":"700","flex-shrink":"0"}},st={style:{"min-width":"0"}},ot={style:{color:"#E2E8F0","font-size":"13px","font-weight":"600","line-height":"1.2",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},at={style:{color:"#64748B","font-size":"11px","margin-top":"2px"}},nt={class:"flex-1",style:{"margin-left":"256px"}},it={class:"bg-white shadow-sm sticky top-0 z-20 h-16 flex items-center justify-between px-6"},lt={class:"flex items-center gap-2 text-sm"},dt={class:"text-slate-700 font-medium"},rt={class:"flex items-center gap-2"},ct={class:"dropdown dropdown-end"},ht={tabindex:"0",class:"flex items-center gap-2 cursor-pointer hover:bg-slate-50 rounded-lg px-3 py-1.5"},pt={class:"avatar placeholder"},mt={class:"bg-indigo-600 text-white rounded-full w-8"},ut={class:"text-sm"},vt={class:"text-sm text-slate-700 leading-tight"},xt={class:"text-[10px] text-slate-400"},_t={class:"p-6"},wt=w({__name:"default",setup(y){const s=B(),p=j(),l=L();function _(){s.logout(),p.push("/")}const d=u(()=>({1:"超级管理员",2:"管理员",3:"代理",4:"运营"})[s.identity]??""),M=u(()=>({1:"超管",2:"管理员",3:"代理",4:"运营"})[s.identity]??""),f=u(()=>(s.account||"A").charAt(0).toUpperCase()),g=[{label:"数据概览",items:[{id:"dashboard",label:"仪表盘",to:"/dashboard",icon:"M9 17v-2m3 2v-4m3 4v-6m2 10H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"}]},{label:"生产管理",items:[{id:"factory",label:"厂家管理",to:"/factory",icon:"M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"},{id:"product",label:"产品管理",to:"/product",icon:"M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4"},{id:"code",label:"公码管理",to:"/code",icon:"M4 4h6v6H4V4zm10 0h6v6h-6V4zM4 14h6v6H4v-6zm10 2h2m-2 4h6m-4-4v4m4-8h2m-2 0v4"},{id:"device",label:"生产管理",to:"/device",icon:"M15 7a2 2 0 012 2m4 0a6 6 0 01-7.743 5.743L11 17H9v2H7v2H4a1 1 0 01-1-1v-2.586a1 1 0 01.293-.707l5.964-5.964A6 6 0 1121 9z"}]},{label:"用户管理",items:[{id:"user",label:"用户查询",to:"/users",icon:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z"}]},{label:"服务配置",items:[{id:"globalconfig",label:"全局环境配置",to:"/globalconfig",icon:"M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9"},{id:"mcpconfig",label:"MCP配置",to:"/mcpconfig",icon:"M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-3-4h.01M16 16h.01"},{id:"meettemplate",label:"会议模板",to:"/meettemplates",icon:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"},{id:"svcconfig",label:"依赖服务配置",to:"/serviceconfig",icon:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z"},{id:"calltranslate",label:"通话翻译配置",to:"/calltranslate",icon:"M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129"}]},{label:"系统管理",items:[{id:"apps",label:"应用注册",to:"/apps",icon:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"},{id:"statlog",label:"统计日志",to:"/statlog",icon:"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"},{id:"admin",label:"后台账号",to:"/accounts",icon:"M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z"}]}];function k(i){return i.items.some(e=>s.hasAccess(e.id))}const z=u(()=>{if(l.meta?.title)return l.meta.title;for(const i of g){const e=i.items.find(v=>l.path.startsWith(v.to));if(e)return e.label}return"Console"});return E(()=>{s.token||p.push("/")}),(i,e)=>{const v=C,V=G;return o(),n("div",J,[t("aside",K,[t("div",O,[t("div",P,[t("div",U,[(o(),n("svg",W,[...e[0]||(e[0]=[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"},null,-1)])]))]),t("div",null,[t("div",q,a(h(s).siteTitle||"Admin"),1),e[1]||(e[1]=t("div",{style:{color:"#64748B","font-size":"11px","font-weight":"500"}},"Admin Console · v1.0.1",-1))])])]),t("nav",Q,[(o(),n(c,null,x(g,m=>(o(),n(c,null,[k(m)?(o(),n("div",{key:m.label,class:"group-title"},a(m.label),1)):b("",!0),(o(!0),n(c,null,x(m.items,r=>(o(),n(c,null,[h(s).hasAccess(r.id)?(o(),T(v,{key:r.id,to:r.to,class:"sidebar-link","active-class":"active"},{default:N(()=>[(o(),n("svg",X,[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:r.icon},null,8,Y)])),F(" "+a(r.label),1)]),_:2},1032,["to"])):b("",!0)],64))),256))],64))),64))]),t("div",Z,[t("div",tt,[t("div",et,a(f.value),1),t("div",st,[t("div",ot,a(h(s).account||"-"),1),t("div",at,a(d.value),1)])])])]),t("main",nt,[t("header",it,[t("div",lt,[e[2]||(e[2]=t("span",{class:"text-slate-400"},"首页",-1)),e[3]||(e[3]=t("span",{class:"text-slate-300"},"/",-1)),t("span",dt,a(z.value),1)]),t("div",rt,[e[4]||(e[4]=S('',1)),t("div",ct,[t("div",ht,[t("div",pt,[t("div",mt,[t("span",ut,a(f.value),1)])]),t("div",null,[t("div",vt,a(h(s).account),1),t("div",xt,a(M.value),1)])]),t("ul",{tabindex:"0",class:"dropdown-content z-[1] menu p-2 shadow-lg bg-white rounded-lg w-44 border"},[t("li",null,[t("a",{class:"text-sm text-red-500 cursor-pointer",onClick:_},"退出登录")])])])])]),D(V),t("div",_t,[$(i.$slots,"default")])])])}}});export{wt as default}; diff --git a/apps/admin/.output/public/_nuxt/DNKl-FHZ.js b/apps/admin/.output/public/_nuxt/DNKl-FHZ.js new file mode 100644 index 00000000..8622f04f --- /dev/null +++ b/apps/admin/.output/public/_nuxt/DNKl-FHZ.js @@ -0,0 +1 @@ +import{g as oe,j as ie,c as a,l as x,a as e,k as d,p as m,F as r,r as u,v as F,t as i,q as G,n as N,d as de,s as c,x as ce,A as re,o,D as $,_ as ue}from"./CTAruH_8.js";import{u as ve}from"./9B2ftqmN.js";import{u as be}from"./lLLegusN.js";import"./D9HxoMhB.js";import"./yUUyh6cG.js";const me={key:0,class:"mb-4 rounded-lg px-4 py-3 text-sm",style:{background:"#fffbeb",border:"1px solid #fde68a",color:"#92400e"}},pe={class:"flex items-center justify-between mb-5"},xe={class:"flex items-center gap-3"},fe=["value"],_e={class:"editor-panel"},ge={class:"flex items-center justify-between mb-4"},ye={class:"font-semibold text-slate-800 text-sm"},ke={class:"grid grid-cols-3 gap-4 mb-4"},he={class:"form-control"},Se=["value"],Te={class:"form-control"},Ce=["value"],we={class:"form-control"},Ae={class:"flex gap-3 mb-4"},Ve={key:0,class:"grid grid-cols-3 gap-4"},Me={class:"form-control"},je={key:0,value:""},Re=["value"],Ue={class:"form-control"},Ne={key:0,value:""},$e=["value"],Oe={class:"form-control"},Pe={key:0,value:""},ze=["value"],Be={key:1,class:"form-control max-w-xs"},De={key:0,value:""},Ee=["value"],Le={class:"flex items-center justify-between pt-4 border-t border-slate-100 mt-4"},Ie={class:"flex items-center gap-2 text-sm"},Fe={class:"grid grid-cols-1 gap-4",style:{"grid-template-columns":"repeat(auto-fill,minmax(360px,1fr))"}},Ge={key:0,class:"col-span-full text-center py-20 text-slate-300"},qe=["onClick"],He={class:"flex items-center justify-between"},Je={class:"flex items-center gap-2"},Ke={class:"lang-badge"},Qe={class:"text-slate-400 font-bold text-lg"},We={class:"lang-badge"},Xe={class:"flex items-center gap-2"},Ye={key:0,class:"mode-badge mode-pipeline"},Ze={key:1,class:"mode-badge mode-e2e"},et={key:2,class:"badge badge-success badge-xs"},tt={key:3,class:"badge badge-ghost badge-xs"},st=["onClick"],lt={key:0,class:"flex flex-wrap items-center gap-2 mt-3"},nt={class:"svc-pill",style:{background:"#1664ff"}},at={class:"svc-pill",style:{background:"#059669"}},ot={class:"svc-pill",style:{background:"#7c3aed"}},it={key:1,class:"flex items-center gap-2 mt-3"},dt={class:"svc-pill",style:{background:"#f97316"}},ct={class:"sync-overlay"},rt={class:"sync-box"},ut={class:"flex items-start gap-3 mb-4"},vt={style:{width:"42px",height:"42px",background:"linear-gradient(135deg,#4f46e5,#7c3aed)","border-radius":"13px",display:"flex","align-items":"center","justify-content":"center","flex-shrink":"0"}},bt={style:{width:"20px",height:"20px",color:"#fff"},fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},mt={class:"text-xs text-slate-400 mt-1"},pt={class:"flex items-center justify-between mb-1"},xt={class:"flex gap-2"},ft={class:"sync-region-grid"},_t=["onClick"],gt=["checked","onClick"],q=1,H=2,J=3,K=4,yt=oe({__name:"calltranslate",setup(kt){const j=[{c:"zh",n:"中文"},{c:"en",n:"英文"},{c:"ja",n:"日语"},{c:"ko",n:"韩语"},{c:"fr",n:"法语"},{c:"de",n:"德语"},{c:"es",n:"西班牙语"},{c:"pt",n:"葡萄牙语"},{c:"ru",n:"俄语"},{c:"ar",n:"阿拉伯语"},{c:"th",n:"泰语"},{c:"vi",n:"越南语"},{c:"id",n:"印尼语"},{c:"ms",n:"马来语"},{c:"hi",n:"印地语"}];function h(l){const t=j.find(s=>s.c===l);return t?t.n:l||""}const f=[{value:1,label:"中国"},{value:2,label:"美国"},{value:3,label:"东亚"},{value:4,label:"东南亚"},{value:5,label:"南亚"},{value:6,label:"中东"},{value:7,label:"欧洲"},{value:8,label:"俄罗斯"},{value:9,label:"非洲"},{value:10,label:"南美"},{value:11,label:"北美"},{value:12,label:"大洋洲"},{value:13,label:"巴西"},{value:14,label:"印度"}];function Q(l){const t=f.find(s=>s.value===l);return t?t.label:"区域"+l}const{webApi:_}=ve(),{success:S,error:T}=be(),R=c(!0),C=c([]),g=c([]),y=c(f.length?f[0].value:1),w=c(!1),p=c(null),O=c(0),n=ce({src:"zh",dst:"en",bidir:!1,mode:0,asr:"",mt:"",tts:"",ast:"",enable:!0});async function W(){try{const l=await _("getsvcconfigs",{});C.value=l?.items??[]}catch{R.value=!1,C.value=[]}}async function A(){try{const l=await _("getcalltranslatepairs",{region:y.value});g.value=l?.items??[]}catch{R.value=!1,g.value=[]}}function v(l){return C.value.filter(t=>t.enable&&(t.categories||"").split(",").map(Number).indexOf(l)>=0)}function V(l){const t=C.value.find(s=>s.id===l);return t?t.name:l||"未配置"}function P(l){n.src=l?.src_lang||"zh",n.dst=l?.dst_lang||"en",n.bidir=!!l?.bidir,n.mode=l?.mode!=null?l.mode:0,n.asr=l?.asr_svc_id||"",n.mt=l?.mt_svc_id||"",n.tts=l?.tts_svc_id||"",n.ast=l?.ast_svc_id||"",n.enable=l?l.enable!==!1:!0}function X(){p.value=null,P(null),w.value=!0}function Y(l){const t=g.value.find(s=>s.id===l)||null;p.value=t,P(t),w.value=!0}function M(){w.value=!1,p.value=null}function Z(){const l=n.mode;return{id:p.value?p.value.id:0,region:y.value,src_lang:n.src,dst_lang:n.dst,bidir:n.bidir,mode:l,asr_svc_id:l===0&&n.asr||"",mt_svc_id:l===0&&n.mt||"",tts_svc_id:l===0&&n.tts||"",ast_svc_id:l===1&&n.ast||"",enable:n.enable}}async function z(){const l=Z();if(!l.src_lang||!l.dst_lang)return T("源语言和目标语言必填"),!1;try{const t=await _("savecalltranslatepair",l);return O.value=t?.id??0,await A(),!0}catch(t){return T(t?.message??"保存失败"),!1}}function ee(l){window.confirm("确定删除这条语言对配置?")&&_("delcalltranslatepair",{ids:[l]}).then(()=>{S("已删除"),A()}).catch(t=>T(t?.message??"删除失败"))}const U=c(!1),B=c(""),b=c([]),D=re(()=>f.filter(l=>l.value!==y.value));function te(){const l=n.mode===0?"三段式拼接":"端到端 AST";B.value="将「"+h(n.src)+" → "+h(n.dst)+"」("+l+(n.bidir?",双向":"")+" )的服务编排同步到其他区域。",b.value=[],U.value=!0}function E(l){const t=b.value.indexOf(l);t>=0?b.value.splice(t,1):b.value.push(l)}function L(l){b.value=l?D.value.map(t=>t.value):[]}function I(){U.value=!1}async function se(){I(),await z()&&(M(),S("保存成功"))}async function le(){const l=[...b.value];if(I(),!!await z()){if(M(),!l.length){S("保存成功");return}try{const k=(await _("synccalltranslatepairs",{pair_ids:[O.value],target_regions:l}))?.synced??0,ne=l.map(ae=>Q(ae));S("已保存并同步到:"+ne.join("、")+"("+k+" 个)")}catch(s){T(s?.message??"同步失败")}}}return ie(async()=>{await Promise.all([W(),A()])}),(l,t)=>(o(),a("div",null,[R.value?x("",!0):(o(),a("div",me," ⚠ 「通话翻译配置」的后端接口尚未迁移到当前 console 服务,功能暂不可用。 ")),e("div",pe,[t[14]||(t[14]=e("div",null,[e("h2",{class:"text-lg font-semibold text-slate-800"},"通话翻译配置"),e("p",{class:"text-xs text-slate-400 mt-1"},"按区域和语言对配置翻译服务。支持三段式(ASR→MT→TTS)和端到端 AST 两种模式。")],-1)),e("div",xe,[t[13]||(t[13]=e("span",{class:"text-sm text-slate-500"},"区域",-1)),d(e("select",{"onUpdate:modelValue":t[0]||(t[0]=s=>y.value=s),class:"select select-bordered select-sm",onChange:A},[(o(),a(r,null,u(f,s=>e("option",{key:s.value,value:s.value},i(s.label),9,fe)),64))],544),[[m,y.value,void 0,{number:!0}]]),e("button",{class:"btn btn-primary btn-sm text-white",onClick:X},"+ 新增语言对")])]),d(e("div",_e,[e("div",ge,[e("h3",ye,i(p.value?"编辑语言对":"新增语言对"),1),e("button",{class:"btn btn-ghost btn-xs",onClick:M},"✕ 关闭")]),e("div",ke,[e("div",he,[t[15]||(t[15]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"源语言 *")],-1)),d(e("select",{"onUpdate:modelValue":t[1]||(t[1]=s=>n.src=s),class:"select select-bordered select-sm"},[(o(),a(r,null,u(j,s=>e("option",{key:s.c,value:s.c},i(s.n),9,Se)),64))],512),[[m,n.src]])]),e("div",Te,[t[16]||(t[16]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"目标语言 *")],-1)),d(e("select",{"onUpdate:modelValue":t[2]||(t[2]=s=>n.dst=s),class:"select select-bordered select-sm"},[(o(),a(r,null,u(j,s=>e("option",{key:s.c,value:s.c},i(s.n),9,Ce)),64))],512),[[m,n.dst]])]),e("div",we,[t[17]||(t[17]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"双向")],-1)),d(e("input",{"onUpdate:modelValue":t[3]||(t[3]=s=>n.bidir=s),type:"checkbox",class:"toggle toggle-primary mt-1"},null,512),[[G,n.bidir]])])]),e("div",Ae,[e("div",{class:N(["mtab",{on:n.mode===0}]),onClick:t[4]||(t[4]=s=>n.mode=0)},[...t[18]||(t[18]=[e("div",null,[e("div",{class:"font-bold text-sm"},"🧩 三段式拼接"),e("div",{class:"text-xs text-slate-400 mt-0.5"},"ASR → MT → TTS")],-1)])],2),e("div",{class:N(["mtab",{on:n.mode===1}]),onClick:t[5]||(t[5]=s=>n.mode=1)},[...t[19]||(t[19]=[e("div",null,[e("div",{class:"font-bold text-sm"},"⚡ 端到端 AST"),e("div",{class:"text-xs text-slate-400 mt-0.5"},"单服务直接完成语音翻译")],-1)])],2)]),e("div",null,[n.mode===0?(o(),a("div",Ve,[e("div",Me,[t[20]||(t[20]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"语音识别(ASR)")],-1)),d(e("select",{"onUpdate:modelValue":t[6]||(t[6]=s=>n.asr=s),class:"select select-bordered select-sm"},[v(q).length?x("",!0):(o(),a("option",je,"(无可用服务)")),(o(!0),a(r,null,u(v(q),s=>(o(),a("option",{key:s.id,value:s.id},i(s.name),9,Re))),128))],512),[[m,n.asr]])]),e("div",Ue,[t[21]||(t[21]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"机器翻译(MT)")],-1)),d(e("select",{"onUpdate:modelValue":t[7]||(t[7]=s=>n.mt=s),class:"select select-bordered select-sm"},[v(J).length?x("",!0):(o(),a("option",Ne,"(无可用服务)")),(o(!0),a(r,null,u(v(J),s=>(o(),a("option",{key:s.id,value:s.id},i(s.name),9,$e))),128))],512),[[m,n.mt]])]),e("div",Oe,[t[22]||(t[22]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"语音合成(TTS)")],-1)),d(e("select",{"onUpdate:modelValue":t[8]||(t[8]=s=>n.tts=s),class:"select select-bordered select-sm"},[v(H).length?x("",!0):(o(),a("option",Pe,"(无可用服务)")),(o(!0),a(r,null,u(v(H),s=>(o(),a("option",{key:s.id,value:s.id},i(s.name),9,ze))),128))],512),[[m,n.tts]])])])):(o(),a("div",Be,[t[23]||(t[23]=e("label",{class:"label py-1"},[e("span",{class:"label-text text-xs"},"端到端语音翻译服务(AST)")],-1)),d(e("select",{"onUpdate:modelValue":t[9]||(t[9]=s=>n.ast=s),class:"select select-bordered select-sm"},[v(K).length?x("",!0):(o(),a("option",De,"(无可用服务)")),(o(!0),a(r,null,u(v(K),s=>(o(),a("option",{key:s.id,value:s.id},i(s.name),9,Ee))),128))],512),[[m,n.ast]])]))]),e("div",Le,[e("label",Ie,[d(e("input",{"onUpdate:modelValue":t[10]||(t[10]=s=>n.enable=s),type:"checkbox",class:"checkbox checkbox-sm checkbox-primary"},null,512),[[G,n.enable]]),t[24]||(t[24]=de(" 启用 ",-1))]),e("div",{class:"flex gap-2"},[e("button",{class:"btn btn-ghost btn-sm",onClick:M},"取消"),e("button",{class:"btn btn-primary btn-sm text-white",onClick:te},"保存")])])],512),[[F,w.value]]),e("div",Fe,[g.value.length?x("",!0):(o(),a("div",Ge,[...t[25]||(t[25]=[e("div",{class:"text-5xl mb-3"},"🌐",-1),e("p",{class:"text-sm"},"当前区域暂无语言对配置",-1)])])),(o(!0),a(r,null,u(g.value,s=>(o(),a("div",{key:s.id,class:"pair-card",onClick:k=>Y(s.id)},[e("div",He,[e("div",Je,[e("span",Ke,i(h(s.src_lang)),1),e("span",Qe,i(s.bidir?"⇄":"→"),1),e("span",We,i(h(s.dst_lang)),1)]),e("div",Xe,[s.mode===0?(o(),a("span",Ye,"三段式拼接")):(o(),a("span",Ze,"端到端 AST")),s.enable?(o(),a("span",et,"启用")):(o(),a("span",tt,"停用")),e("button",{class:"btn btn-ghost btn-xs text-error",onClick:$(k=>ee(s.id),["stop"])},"删除",8,st)])]),s.mode===0?(o(),a("div",lt,[e("span",nt,"ASR: "+i(V(s.asr_svc_id)),1),t[26]||(t[26]=e("span",{class:"text-slate-300 text-sm"},"→",-1)),e("span",at,"MT: "+i(V(s.mt_svc_id)),1),t[27]||(t[27]=e("span",{class:"text-slate-300 text-sm"},"→",-1)),e("span",ot,"TTS: "+i(V(s.tts_svc_id)),1)])):(o(),a("div",it,[e("span",dt,"AST: "+i(V(s.ast_svc_id)),1)]))],8,qe))),128))]),d(e("div",ct,[e("div",rt,[e("div",ut,[e("div",vt,[(o(),a("svg",bt,[...t[28]||(t[28]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"},null,-1)])]))]),e("div",null,[t[29]||(t[29]=e("h3",{class:"text-base font-semibold text-slate-800"},"同步到其他区域",-1)),e("p",mt,i(B.value),1)])]),t[31]||(t[31]=e("div",{class:"text-xs px-3 py-2 rounded-lg mb-3",style:{background:"#f0fdf4",border:"1px solid #bbf7d0",color:"#15803d"}}," ✦ 同步内容:服务组合(模式 + 各段服务)将被复制到目标区域。 ",-1)),e("div",pt,[t[30]||(t[30]=e("span",{class:"text-xs font-semibold text-slate-500"},"选择目标区域",-1)),e("div",xt,[e("button",{class:"btn btn-ghost btn-xs",onClick:t[11]||(t[11]=s=>L(!0))},"全选"),e("button",{class:"btn btn-ghost btn-xs",onClick:t[12]||(t[12]=s=>L(!1))},"清空")])]),e("div",ft,[(o(!0),a(r,null,u(D.value,s=>(o(),a("label",{key:s.value,class:N(["sync-region-item",{checked:b.value.includes(s.value)}]),onClick:$(k=>E(s.value),["prevent"])},[e("input",{type:"checkbox",class:"checkbox checkbox-xs checkbox-primary",checked:b.value.includes(s.value),onClick:$(k=>E(s.value),["stop"])},null,8,gt),e("span",null,i(s.label),1)],10,_t))),128))]),t[32]||(t[32]=e("p",{class:"text-[11px] text-slate-400 mb-5"},"⚠ 目标区域相同语言对已存在则覆盖,否则新建。",-1)),e("div",{class:"flex gap-3 justify-end"},[e("button",{class:"btn btn-ghost",onClick:se},"仅保存当前区域"),e("button",{class:"btn btn-primary text-white",onClick:le},"保存并同步")])])],512),[[F,U.value]])]))}}),At=ue(yt,[["__scopeId","data-v-51f11136"]]);export{At as default}; diff --git a/apps/admin/.output/public/_nuxt/Do83zqYq.js b/apps/admin/.output/public/_nuxt/Do83zqYq.js deleted file mode 100644 index 5e7ac136..00000000 --- a/apps/admin/.output/public/_nuxt/Do83zqYq.js +++ /dev/null @@ -1 +0,0 @@ -import{y as p,z as d}from"./96IDI_OR.js";async function c(s,a,i){const r=p(),n=d(),t={"Content-Type":"application/json"};r.token&&(t.Authorization=r.token),i&&Object.assign(t,i);const o=await fetch(s,{method:"POST",headers:t,body:JSON.stringify(a)});if(!o.ok)throw new Error(`HTTP error: ${o.status}`);const e=await o.json();if(e.code===18)throw r.logout(),n.push("/"),new Error(e.msg||"Unauthorized");if(e.code!==0)throw new Error(e.msg||"Unknown error");return e.data}function h(){const s=p();async function a(n,t){const o={};return s.currentAppId&&(o["X-App-Id"]=String(s.currentAppId)),c(`/web/api/api_${n}`,t??{},o)}async function i(n,t){return c(`/console/api/${n}`,t??{})}async function r(n,t){const o=await a("getcostoken",{path:t}),e=o.upload_url||o.url||"",u=await fetch(e,{method:"PUT",headers:{"Content-Type":n.type||"application/octet-stream"},body:n});if(!u.ok)throw new Error(`Upload failed: ${u.status}`);return e.split("?")[0]}return{webApi:a,consoleApi:i,uploadFile:r}}export{h as u}; diff --git a/apps/admin/.output/public/_nuxt/C5ETpaZb.js b/apps/admin/.output/public/_nuxt/DpWhlKu2.js similarity index 80% rename from apps/admin/.output/public/_nuxt/C5ETpaZb.js rename to apps/admin/.output/public/_nuxt/DpWhlKu2.js index 8ef69d80..b6f32499 100644 --- a/apps/admin/.output/public/_nuxt/C5ETpaZb.js +++ b/apps/admin/.output/public/_nuxt/DpWhlKu2.js @@ -1 +1 @@ -import{u as a,e as s,h as u,i as r,f as h}from"./96IDI_OR.js";function i(t){const e=t||s();return e.ssrContext?.head||e.runWithContext(()=>{if(u()){const n=r(h);if(!n)throw new Error("[nuxt] [unhead] Missing Unhead instance.");return n}})}function d(t,e={}){const n=e.head||i(e.nuxt);return a(t,{head:n,...e})}export{d as u}; +import{u as a,e as s,h as u,i as r,f as h}from"./CTAruH_8.js";function i(t){const e=t||s();return e.ssrContext?.head||e.runWithContext(()=>{if(u()){const n=r(h);if(!n)throw new Error("[nuxt] [unhead] Missing Unhead instance.");return n}})}function d(t,e={}){const n=e.head||i(e.nuxt);return a(t,{head:n,...e})}export{d as u}; diff --git a/apps/admin/.output/public/_nuxt/Dqy3UYuS.js b/apps/admin/.output/public/_nuxt/Dqy3UYuS.js deleted file mode 100644 index 160b111b..00000000 --- a/apps/admin/.output/public/_nuxt/Dqy3UYuS.js +++ /dev/null @@ -1 +0,0 @@ -import{g as W,j as X,c as i,a as t,k as a,p as D,F as Q,r as N,v as T,t as l,l as Z,A as tt,m as b,q as et,s as d,x as E,o as u}from"./96IDI_OR.js";import{u as st}from"./Do83zqYq.js";import{u as nt}from"./CVUxyiJx.js";const ot={class:"space-y-6"},lt={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-4"},at={class:"flex items-end gap-3 flex-wrap"},rt={class:"form-control"},it=["value"],dt={class:"form-control"},ut=["disabled"],ct={class:"bg-white rounded-xl shadow-sm border border-slate-100"},mt={class:"overflow-x-auto"},bt={class:"table table-zebra"},pt={key:0},vt={key:1},ft={colspan:"9",class:"text-center text-slate-400 py-8"},xt={class:"font-mono text-base font-bold text-indigo-700"},gt={class:"text-sm"},wt={class:"text-sm"},yt={class:"text-sm text-slate-500"},ht={class:"text-sm"},kt={class:"text-sm"},_t={class:"text-sm"},Ct={key:0,class:"badge badge-success badge-sm text-white"},Vt={key:1,class:"badge badge-ghost badge-sm"},Mt={class:"flex gap-1"},Ft=["onClick"],Ut=["onClick"],Dt=["onClick"],Qt=["onClick"],Nt={class:"flex items-center gap-3 mb-5"},Tt={class:"text-lg font-semibold text-slate-800"},qt={class:"bg-white rounded-xl shadow-sm border border-slate-100 p-6 max-w-2xl"},Lt={class:"form-control mb-4"},St=["value"],Et={class:"form-control mb-4"},$t={class:"grid grid-cols-3 gap-3 mb-4"},jt={class:"form-control"},Rt={class:"form-control"},It={class:"form-control"},At={class:"grid grid-cols-2 gap-3 mb-4"},Bt={class:"form-control"},Pt={class:"form-control"},zt={class:"form-control mb-6"},Ht={class:"label cursor-pointer justify-start gap-3"},Yt={class:"modal-box max-w-md"},Gt={class:"flex flex-col items-center gap-4"},Jt={class:"text-center"},Kt={class:"font-mono text-2xl font-bold text-indigo-700 tracking-widest"},Ot="https://cdn.jsdelivr.net/gh/davidshimjs/qrcodejs/qrcode.min.js",ee=W({__name:"code",setup(Wt){const{webApi:c}=st(),{success:g,error:p,warn:w}=nt(),y=d("list"),C=d(!1),v=d(!1),m=d(0),V=d(-1),h=d([]),M=d([]),k=d([]),F=E({}),o=E({code:"",productid:0,remark:"",bindrewardvpitime:0,bindrewardtranslate:0,bindrewardmeeting:0,maxuses:0,expire:"",disabled:!1});function $(n){return n?new Date(n*1e3).toLocaleString():"永久"}function j(n){if(!n)return"";const e=new Date(n*1e3),s=r=>r<10?"0"+r:""+r;return e.getFullYear()+"-"+s(e.getMonth()+1)+"-"+s(e.getDate())+"T"+s(e.getHours())+":"+s(e.getMinutes())}function R(n){return n?Math.floor(new Date(n).getTime()/1e3):0}function I(n){return F[n.factoryid]||(n.factoryid?"厂家#"+n.factoryid:"-")}function A(n){const e=k.value.find(s=>s.id===n.productid);return e?e.devicename||"#"+n.productid:n.productid?"#"+n.productid:"-"}function _(){y.value="list",f()}function B(){_()}async function f(){C.value=!0;try{const n=await c("getfactorypubliccodes",{factoryid:m.value,status:V.value});h.value=n?.codes??[]}catch(n){p(n?.message??"获取公码列表失败"),h.value=[]}finally{C.value=!1}}function q(n){if(!m.value){w("请先选择厂家");return}n?(v.value=!0,o.code=n.code,o.productid=n.productid||0,o.remark=n.remark||"",o.bindrewardvpitime=n.bindrewardvpitime||0,o.bindrewardtranslate=n.bindrewardtranslate||0,o.bindrewardmeeting=n.bindrewardmeeting||0,o.maxuses=n.maxuses||0,o.expire=j(n.expiretime),o.disabled=n.status===1):(v.value=!1,o.code="",o.productid=0,o.remark="",o.bindrewardvpitime=0,o.bindrewardtranslate=0,o.bindrewardmeeting=0,o.maxuses=0,o.expire="",o.disabled=!1),y.value="form"}async function P(){const n={productid:Number(o.productid)||0,remark:o.remark,maxuses:Number(o.maxuses)||0,expiretime:R(o.expire),bindrewardvpitime:Number(o.bindrewardvpitime)||0,bindrewardtranslate:Number(o.bindrewardtranslate)||0,bindrewardmeeting:Number(o.bindrewardmeeting)||0};try{if(v.value)n.code=o.code,n.status=o.disabled?1:0,await c("updatefactorypubliccode",n),g("保存成功");else{n.factoryid=m.value;const e=await c("createfactorypubliccode",n);g("新公码已生成:"+(e?.code?.code||""))}_()}catch(e){p(e?.message??"保存失败")}}async function z(n){const e=n.status===0?1:0;try{await c("updatefactorypubliccode",{code:n.code,productid:n.productid||0,remark:n.remark||"",status:e,maxuses:n.maxuses||0,expiretime:n.expiretime||0,bindrewardvpitime:n.bindrewardvpitime||0,bindrewardtranslate:n.bindrewardtranslate||0,bindrewardmeeting:n.bindrewardmeeting||0}),g(e===1?"已停用":"已启用"),f()}catch(s){p(s?.message??"操作失败")}}function H(n){window.confirm(`确定删除公码 "${n}" 吗?删除后该码无法再被领取(已领取记录保留)`)&&c("delfactorypubliccode",{code:n}).then(()=>{g("删除成功"),f()}).catch(e=>p(e?.message??"删除失败"))}const L=d(null),U=d(null),x=d("");function Y(){return new Promise((n,e)=>{const s=window;if(s.QRCode){n(s.QRCode);return}const r=document.createElement("script");r.src=Ot,r.onload=()=>n(s.QRCode),r.onerror=()=>e(new Error("二维码库加载失败")),document.head.appendChild(r)})}async function G(n){x.value=n,L.value?.showModal();let e;try{e=await Y()}catch{p("二维码库加载失败");return}const s=U.value;!s||!e||(s.innerHTML="",new e(s,{text:n,width:240,height:240,colorDark:"#1E293B",colorLight:"#FFFFFF",correctLevel:e.CorrectLevel.H}))}function S(){const n=U.value;if(!n)return"";const e=n.querySelector("canvas");if(e)return e.toDataURL("image/png");const s=n.querySelector("img");return s?s.src:""}function J(){const n=S();if(!n){w("二维码尚未生成");return}const e=document.createElement("a");e.href=n,e.download="publiccode_"+x.value+".png",document.body.appendChild(e),e.click(),document.body.removeChild(e)}function K(){const n=S();if(!n){w("二维码尚未生成");return}const e=window.open("","_blank");if(!e){w("浏览器拦截了打印窗口");return}e.document.write(""+x.value+'

'+x.value+"

新用户扫码领取奖励

+ + diff --git a/apps/admin/app/composables/useLangOptions.ts b/apps/admin/app/composables/useLangOptions.ts new file mode 100644 index 00000000..96304254 --- /dev/null +++ b/apps/admin/app/composables/useLangOptions.ts @@ -0,0 +1,42 @@ +// BCP-47 语言全集(与后端 modules/echomeet/core.go 的转写/翻译口径一致, +// 避免在第三方服务里配出运行时并不支持的语言)。 +// code 为存储值(第三方服务 languages 字段里逗号分隔、default_lang 存单个);name 仅前端展示。 +export interface LangOption { + code: string + name: string +} + +export const LANG_OPTIONS: LangOption[] = [ + { code: 'zh-CN', name: '中文(简体)' }, + { code: 'zh-TW', name: '中文(繁体)' }, + { code: 'zh-HK', name: '中文(香港)' }, + { code: 'yue-HK', name: '粤语' }, + { code: 'en-US', name: '英语(美国)' }, + { code: 'en-GB', name: '英语(英国)' }, + { code: 'ja-JP', name: '日语' }, + { code: 'ko-KR', name: '韩语' }, + { code: 'id-ID', name: '印尼语' }, + { code: 'es-ES', name: '西班牙语(西)' }, + { code: 'es-MX', name: '西班牙语(墨)' }, + { code: 'pt-BR', name: '葡萄牙语(巴西)' }, + { code: 'pt-PT', name: '葡萄牙语(葡)' }, + { code: 'de-DE', name: '德语' }, + { code: 'fr-FR', name: '法语' }, + { code: 'it-IT', name: '意大利语' }, + { code: 'nl-NL', name: '荷兰语' }, + { code: 'pl-PL', name: '波兰语' }, + { code: 'ru-RU', name: '俄语' }, + { code: 'uk-UA', name: '乌克兰语' }, + { code: 'tr-TR', name: '土耳其语' }, + { code: 'vi-VN', name: '越南语' }, + { code: 'th-TH', name: '泰语' }, + { code: 'ms-MY', name: '马来语' }, + { code: 'fil-PH', name: '菲律宾语' }, + { code: 'ar-SA', name: '阿拉伯语' }, +] + +// langName 按 BCP-47 码查中文名,未知码原样返回。 +export function langName(code: string): string { + const o = LANG_OPTIONS.find((x) => x.code === code) + return o ? o.name : code +} diff --git a/apps/admin/app/layouts/default.vue b/apps/admin/app/layouts/default.vue index 1fe825e4..65adec76 100644 --- a/apps/admin/app/layouts/default.vue +++ b/apps/admin/app/layouts/default.vue @@ -171,15 +171,21 @@ const menuGroups = [ { id: 'globalconfig', label: '全局环境配置', to: '/globalconfig', icon: 'M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9' }, { id: 'mcpconfig', label: 'MCP配置', to: '/mcpconfig', icon: 'M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-3-4h.01M16 16h.01' }, { id: 'meettemplate', label: '会议模板', to: '/meettemplates', icon: 'M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z' }, - { id: 'svcconfig', label: '依赖服务配置', to: '/serviceconfig', icon: 'M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z' }, + { id: 'svcconfig', label: '第三方服务配置', to: '/serviceconfig', icon: 'M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z' }, { id: 'calltranslate', label: '通话翻译配置', to: '/calltranslate', icon: 'M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129' }, ], }, + { + label: 'SaaS 管理', + items: [ + { id: 'apps', label: '应用管理', to: '/apps', icon: 'M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10' }, + { id: 'environments', label: '环境节点', to: '/environments', icon: 'M5 3h14a2 2 0 012 2v4a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2zM5 13h14a2 2 0 012 2v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4a2 2 0 012-2zM7 7h.01M7 17h.01' }, + ], + }, { label: '系统管理', items: [ { id: 'systemconfig', label: '系统配置', to: '/systemconfig', icon: 'M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4' }, - { id: 'apps', label: '应用注册', to: '/apps', icon: 'M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10' }, { id: 'statlog', label: '统计日志', to: '/statlog', icon: 'M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4' }, { id: 'admin', label: '后台账号', to: '/accounts', icon: 'M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z' }, ], diff --git a/apps/admin/app/pages/appconfig.vue b/apps/admin/app/pages/appconfig.vue index da5c9686..95b4d9ce 100644 --- a/apps/admin/app/pages/appconfig.vue +++ b/apps/admin/app/pages/appconfig.vue @@ -1,12 +1,5 @@ diff --git a/apps/admin/app/pages/apps.vue b/apps/admin/app/pages/apps.vue index 48f56578..b8d0feb9 100644 --- a/apps/admin/app/pages/apps.vue +++ b/apps/admin/app/pages/apps.vue @@ -1,125 +1,247 @@ + + diff --git a/apps/admin/app/pages/environments.vue b/apps/admin/app/pages/environments.vue new file mode 100644 index 00000000..5d1555dd --- /dev/null +++ b/apps/admin/app/pages/environments.vue @@ -0,0 +1,341 @@ + + + diff --git a/apps/admin/app/pages/serviceconfig.vue b/apps/admin/app/pages/serviceconfig.vue index e62e9834..38c65c3e 100644 --- a/apps/admin/app/pages/serviceconfig.vue +++ b/apps/admin/app/pages/serviceconfig.vue @@ -1,20 +1,24 @@ @@ -296,9 +488,9 @@ import { ref, reactive, computed, onMounted } from 'vue' import { useApi } from '~/composables/useApi' import { useToast } from '~/composables/useToast' -definePageMeta({ title: '依赖服务配置' }) +definePageMeta({ title: '第三方服务配置' }) -// 区域枚举(与 common.js REGIONS 一一对应) +// 区域枚举(与 pb.Region 一一对应) const REGIONS = [ { value: 1, label: '中国' }, { value: 2, label: '美国' }, { value: 3, label: '东亚' }, { value: 4, label: '东南亚' }, { value: 5, label: '南亚' }, { value: 6, label: '中东' }, @@ -307,19 +499,21 @@ const REGIONS = [ { value: 13, label: '巴西' }, { value: 14, label: '印度' }, ] -// 服务类别常量 +// 服务类别常量(与后端 svcCatXxx 一一对应)。每个服务实例只归属其中一种类型。 const SCAT = [ { v: 1, label: 'STT 语音识别', short: 'STT', color: '#0369a1', bg: '#dbeafe' }, { v: 2, label: 'TTS 语音合成', short: 'TTS', color: '#7c3aed', bg: '#ede9fe' }, { v: 3, label: 'MT 机器翻译', short: 'MT', color: '#059669', bg: '#dcfce7' }, - { v: 4, label: 'AST 端到端', short: 'AST', color: '#c2410c', bg: '#fff7ed' }, + { v: 4, label: 'AST 端到端翻译', short: 'AST', color: '#c2410c', bg: '#fff7ed' }, { v: 5, label: 'LLM 大语言', short: 'LLM', color: '#b45309', bg: '#fef9c3' }, + { v: 7, label: 'STS 端到端对话', short: 'STS', color: '#be185d', bg: '#fce7f3' }, { v: 6, label: '存储 OSS/COS', short: '存储', color: '#475569', bg: '#f1f5f9' }, ] interface SvcField { key: string description: string + type?: string // ''/text 普通;langs 支持语言多选;lang 单选默认语言 encrypted: boolean def_value: string sort?: number @@ -329,6 +523,7 @@ interface SvcField { interface ThirdSvcConfig { id: string name: string + provider?: string description: string categories: string enable: boolean @@ -337,19 +532,60 @@ interface ThirdSvcConfig { fields: SvcField[] } -interface OverrideField { +interface SvcTemplate { + id: string + category: number + provider: string + name: string + description: string + fields: SvcField[] + builtin: boolean + sort: number +} + +// 区域默认字段视图(含停用/覆盖状态 + 编辑值) +interface RegionDefaultField { key: string description: string + type?: string encrypted: boolean is_overridden: boolean + disabled: boolean value: string - _input?: string - _show?: boolean + _input: string + _show: boolean +} + +// 区域专属字段(可编辑的完整字段定义) +interface RegionExtraField { + key: string + description: string + encrypted: boolean + _input: string + _show: boolean } -const { webApi } = useApi() +const { webApi, consoleApi } = useApi() const { success, error } = useToast() +// ===== 作用域:全局默认('') 或 某应用(app_name) ===== +// 第三方服务/区域覆盖均按应用分离:应用有自己的就用应用的、没有回退全局。此选择器切换正在管理的作用域。 +const scopeApp = ref('') +const scopeApps = ref([]) +async function loadScopeApps() { + try { + const list = await consoleApi>('products/list', {}) + scopeApps.value = (list ?? []).map((p: { name: string }) => p.name).filter(Boolean) + } catch { + scopeApps.value = [] + } +} +function onScopeChange() { + curSvc.value = null + detailMode.value = 'empty' + loadSvcs() +} + function scatInfo(v: number) { return SCAT.find((s) => s.v === v) || { short: '?', color: '#999', bg: '#eee', v: 0, label: '' } } @@ -368,23 +604,38 @@ const curRegion = ref(0) const detailMode = ref<'empty' | 'default' | 'new' | 'region'>('empty') // 编辑中数据 -const editForm = reactive({ id: '', name: '', description: '', enable: false }) -const editCats = ref([]) +const editForm = reactive({ id: '', name: '', provider: '', description: '', enable: false }) +const editType = ref(0) // 单一服务类型(SCAT.v) const editFields = ref([]) +const selectedTemplateId = ref('') +const wizardStep = ref(1) // 新增向导步骤:1 类型 → 2 服务商 → 3 配置 -// 区域覆盖 -const overrideFields = ref([]) +// 区域分叉 +const overrideFields = ref([]) +const extraRegionFields = ref([]) const regionLoading = ref(false) +// 服务商模板 +const templates = ref([]) + const curRegionLabel = computed(() => { const r = REGIONS.find((x) => x.value === curRegion.value) return r ? r.label : '区域' + curRegion.value }) +// 模板按类别分组(供下拉与模板管理列表) +const templatesByCat = computed(() => { + return SCAT.map((sc) => ({ + cat: sc.v, + label: sc.label, + items: templates.value.filter((t) => t.category === sc.v), + })).filter((g) => g.items.length) +}) + // ===== 加载服务列表 ===== async function loadSvcs() { try { - const data = await webApi<{ items: ThirdSvcConfig[] }>('getsvcconfigs', {}) + const data = await webApi<{ items: ThirdSvcConfig[] }>('getsvcconfigs', { app_name: scopeApp.value }) allSvcs.value = data?.items ?? [] backendReady.value = true } catch { @@ -392,13 +643,22 @@ async function loadSvcs() { allSvcs.value = [] return } - // 若有选中服务,刷新详情 if (curSvc.value) { const found = allSvcs.value.find((s) => s.id === curSvc.value!.id) if (found) selectSvc(found) } } +// ===== 加载服务商模板 ===== +async function loadTemplates() { + try { + const data = await webApi<{ items: SvcTemplate[] }>('getsvctemplates', {}) + templates.value = data?.items ?? [] + } catch { + templates.value = [] + } +} + // ===== 区域变更 ===== function onRegionChange() { if (curSvc.value) selectSvc(curSvc.value) @@ -421,31 +681,69 @@ function renderDefaultDetail() { const s = curSvc.value! editForm.id = s.id editForm.name = s.name || '' + editForm.provider = s.provider || '' editForm.description = s.description || '' editForm.enable = !!s.enable - editCats.value = parseCats(s.categories) + editType.value = parseCats(s.categories)[0] || 0 editFields.value = JSON.parse(JSON.stringify(s.fields || [])).map((f: SvcField) => ({ ...f, _show: false })) detailMode.value = 'default' } -// ===== 新增服务 ===== +// ===== 新增服务(类型优先向导) ===== function startAdd() { curSvc.value = null editForm.id = '' editForm.name = '' + editForm.provider = '' editForm.description = '' editForm.enable = false - editCats.value = [] + editType.value = 0 editFields.value = [] + selectedTemplateId.value = '' + wizardStep.value = 1 detailMode.value = 'new' } +// 当前所选类型下的服务商模板 +const templatesForType = computed(() => templates.value.filter((t) => t.category === editType.value)) + +// 步骤1:选服务类型(切换类型会重置下游的服务商与字段) +function chooseType(v: number) { + if (editType.value !== v) { + editType.value = v + selectedTemplateId.value = '' + editForm.provider = '' + editFields.value = [] + } + wizardStep.value = 2 +} + +// 步骤2:选服务商模板(t 为 null 表示空白自定义) +function chooseProvider(t: SvcTemplate | null) { + if (t) { + selectedTemplateId.value = t.id + editForm.provider = t.provider || '' + if (!editForm.name) editForm.name = t.name || '' + if (!editForm.id) editForm.id = t.id || '' + if (!editForm.description) editForm.description = t.description || '' + editFields.value = (t.fields || []).map((f) => ({ + key: f.key, description: f.description, type: f.type || '', encrypted: !!f.encrypted, + def_value: f.def_value || '', sort: f.sort, _show: false, + })) + } else { + selectedTemplateId.value = '' + editForm.provider = '' + editFields.value = [] + } + wizardStep.value = 3 +} + function cancelAdd() { if (curSvc.value) selectSvc(curSvc.value) else detailMode.value = 'empty' } -// ===== 字段表格 ===== +// ===== 默认字段表格 ===== function addField() { editFields.value.push({ key: '', description: '', encrypted: false, def_value: '', sort: editFields.value.length, _show: false }) } @@ -454,38 +752,54 @@ function removeField(i: number) { editFields.value.forEach((f, j) => { f.sort = j }) } -// ===== 区域覆盖模式 ===== +// ===== 区域分叉模式 ===== async function renderRegionDetail() { const s = curSvc.value! regionLoading.value = true detailMode.value = 'region' try { - const data = await webApi<{ fields: OverrideField[] }>('getsvcregionoverride', { svc_id: s.id, region: curRegion.value }) + const data = await webApi<{ fields: any[] }>('getsvcregionoverride', { app_name: scopeApp.value, svc_id: s.id, region: curRegion.value }) const fields = data?.fields ?? [] - overrideFields.value = fields.map((f) => ({ - ...f, + overrideFields.value = fields.filter((f) => !f.region_only).map((f) => ({ + key: f.key, description: f.description, type: f.type || '', encrypted: !!f.encrypted, + is_overridden: !!f.is_overridden, disabled: !!f.disabled, value: f.value || '', // 加密字段输入框始终留空;非加密字段:已覆盖回填覆盖值,否则留空 _input: f.encrypted ? '' : (f.is_overridden ? (f.value || '') : ''), _show: false, })) + extraRegionFields.value = fields.filter((f) => f.region_only).map((f) => ({ + key: f.key, description: f.description, encrypted: !!f.encrypted, + _input: f.encrypted ? '' : (f.value || ''), + _show: false, + })) } catch (e: any) { - error(e?.message ?? '加载区域覆盖失败') + error(e?.message ?? '加载区域分叉失败') overrideFields.value = [] + extraRegionFields.value = [] } finally { regionLoading.value = false } } +function addExtraField() { + extraRegionFields.value.push({ key: '', description: '', encrypted: false, _input: '', _show: false }) +} +function removeExtraField(i: number) { + extraRegionFields.value.splice(i, 1) +} + // ===== 收集表单数据 ===== function collectDefaultData(isNew: boolean) { const data: Record = { name: editForm.name || '', + provider: editForm.provider || '', description: editForm.description || '', - categories: editCats.value.slice().sort((a, b) => a - b).join(','), + categories: editType.value ? String(editType.value) : '', enable: editForm.enable || false, fields: editFields.value.map((f) => ({ key: f.key, description: f.description, + type: f.type || '', encrypted: f.encrypted, def_value: f.def_value, sort: f.sort, @@ -493,15 +807,21 @@ function collectDefaultData(isNew: boolean) { } if (isNew) data.id = editForm.id || '' else data.id = curSvc.value!.id + data.app_name = scopeApp.value // 作用域随保存写入(''=全局默认) return data } -function collectOverrideData(): Record { +function collectOverrideData() { const overrides: Record = {} + const disabled_keys: string[] = [] overrideFields.value.forEach((f) => { overrides[f.key] = f._input || '' + if (f.disabled) disabled_keys.push(f.key) }) - return overrides + const extra_fields = extraRegionFields.value + .filter((f) => (f.key || '').trim()) + .map((f, i) => ({ key: f.key.trim(), description: f.description, encrypted: f.encrypted, def_value: f._input || '', sort: i })) + return { overrides, disabled_keys, extra_fields } } // ===== 保存 ===== @@ -522,10 +842,10 @@ async function performSave(isNew: boolean): Promise { return false } } else { - const ovr = collectOverrideData() + const { overrides, disabled_keys, extra_fields } = collectOverrideData() try { - await webApi('savesvcregionoverride', { svc_id: curSvc.value!.id, region: curRegion.value, overrides: ovr }) - success('区域覆盖已保存') + await webApi('savesvcregionoverride', { app_name: scopeApp.value, svc_id: curSvc.value!.id, region: curRegion.value, overrides, disabled_keys, extra_fields }) + success('区域分叉已保存') return true } catch (e: any) { error(e?.message ?? '保存失败') @@ -536,9 +856,9 @@ async function performSave(isNew: boolean): Promise { async function deleteSvc() { if (!curSvc.value) return - if (!window.confirm('确定删除服务「' + curSvc.value.name + '」及其所有区域覆盖?')) return + if (!window.confirm('确定删除服务「' + curSvc.value.name + '」及其所有区域分叉?')) return try { - await webApi('delsvcconfig', { id: curSvc.value.id }) + await webApi('delsvcconfig', { app_name: scopeApp.value, id: curSvc.value.id }) } catch (e: any) { error(e?.message ?? '删除失败') return @@ -564,10 +884,10 @@ function openSyncModal(isNew: boolean) { const isDefault = curRegion.value === 0 syncDesc.value = isDefault ? '「' + svcName + '」默认配置将保存,可同步推送到其他区域。' - : '「' + svcName + '」在当前区域的字段覆盖将保存,可同步到其他区域。' + : '「' + svcName + '」在当前区域的字段分叉将保存,可同步到其他区域。' syncScopeNote.value = isDefault - ? '✦ 同步内容:各字段默认值推送为目标区域「覆盖值」,目标区域原有覆盖值将被替换。' - : '✦ 同步内容:当前区域的字段覆盖值复制到目标区域。' + ? '✦ 同步内容:各字段默认值推送为目标区域「覆盖值」,目标区域原有分叉将被替换。' + : '✦ 同步内容:当前区域的值覆盖 / 区域专属字段 / 停用字段整体复制到目标区域。' syncTargets.value = [] syncVisible.value = true } @@ -598,7 +918,7 @@ async function doSaveAndSync() { if (!svcId) return let synced = 0 try { - const res = await webApi<{ synced: number }>('syncsvctoregins', { svc_id: svcId, src_region: curRegion.value, target_regions: targets }) + const res = await webApi<{ synced: number }>('syncsvctoregins', { app_name: scopeApp.value, svc_id: svcId, src_region: curRegion.value, target_regions: targets }) synced = res?.synced ?? 0 } catch (e: any) { error(e?.message ?? '同步失败') @@ -611,7 +931,92 @@ async function doSaveAndSync() { success('已保存并同步到:' + names.join('、') + '(' + synced + ' 个)') } -onMounted(loadSvcs) +// ===== 服务商模板管理弹窗 ===== +const tplModalVisible = ref(false) +const tplView = ref<'list' | 'form'>('list') +const tplEditing = ref(false) +const tplForm = reactive({ id: '', category: 2, provider: '', name: '', description: '' }) +const tplFields = ref([]) + +function openTplModal() { + tplView.value = 'list' + tplModalVisible.value = true + loadTemplates() +} +function closeTplModal() { + tplModalVisible.value = false +} + +function tplShowForm(t?: SvcTemplate) { + if (t) { + tplEditing.value = true + tplForm.id = t.id + tplForm.category = t.category || 2 + tplForm.provider = t.provider || '' + tplForm.name = t.name || '' + tplForm.description = t.description || '' + tplFields.value = (t.fields || []).map((f) => ({ key: f.key, description: f.description, type: f.type || '', encrypted: !!f.encrypted, def_value: f.def_value || '', sort: f.sort })) + } else { + tplEditing.value = false + tplForm.id = '' + tplForm.category = 2 + tplForm.provider = '' + tplForm.name = '' + tplForm.description = '' + tplFields.value = [] + } + tplView.value = 'form' +} + +function tplAddField() { + tplFields.value.push({ key: '', description: '', encrypted: false, def_value: '', sort: tplFields.value.length }) +} +function tplRemoveField(i: number) { + tplFields.value.splice(i, 1) + tplFields.value.forEach((f, j) => { f.sort = j }) +} + +async function saveTpl() { + if (!tplForm.id.trim() || !tplForm.name.trim() || !tplForm.provider.trim()) { + error('模板ID / 展示名 / 服务商标识 必填') + return + } + const data: Record = { + id: tplForm.id.trim(), + category: Number(tplForm.category) || 0, + provider: tplForm.provider.trim(), + name: tplForm.name.trim(), + description: tplForm.description.trim(), + fields: tplFields.value.map((f, i) => ({ key: f.key, description: f.description, type: f.type || '', encrypted: f.encrypted, def_value: f.def_value, sort: i })), + } + try { + await webApi(tplEditing.value ? 'updatesvctemplate' : 'addsvctemplate', data) + } catch (e: any) { + error(e?.message ?? '保存失败') + return + } + success('模板已保存') + await loadTemplates() + tplView.value = 'list' +} + +async function delTpl(t: SvcTemplate) { + if (!window.confirm('确定删除模板「' + t.name + '」?' + (t.builtin ? '(内置模板下次启动会被重新补回)' : ''))) return + try { + await webApi('delsvctemplate', { id: t.id }) + } catch (e: any) { + error(e?.message ?? '删除失败') + return + } + success('已删除') + await loadTemplates() +} + +onMounted(() => { + loadScopeApps() + loadSvcs() + loadTemplates() +})

'+x.value+"

新用户扫码领取奖励

\n\n\n"],"names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderClass","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"accounts-BlBS367g.js","sources":["../../../../../../../app/pages/accounts.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderClass","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/accounts-BlBS367g.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/accounts-BlBS367g.js.map.json new file mode 100644 index 00000000..1c458064 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/accounts-BlBS367g.js.map.json @@ -0,0 +1 @@ +{"file":"accounts-BlBS367g.js","mappings":"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","names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderClass","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual"],"sources":["../../../../../../../app/pages/accounts.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/accounts-Bou39dJh.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/accounts-Bou39dJh.js.map.json deleted file mode 100644 index a8b0090c..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/accounts-Bou39dJh.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"accounts-Bou39dJh.js","mappings":"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","names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderClass","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual"],"sources":["../../../../../../../app/pages/accounts.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-b7qb0UVr.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-b7qb0UVr.js new file mode 100644 index 00000000..136c0a5b --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-b7qb0UVr.js @@ -0,0 +1,187 @@ +import { defineComponent, computed, reactive, ref, useSSRContext } from "vue"; +import { ssrRenderAttrs, ssrRenderStyle, ssrInterpolate, ssrIncludeBooleanAttr, ssrRenderAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrRenderClass, ssrRenderDynamicModel } from "vue/server-renderer"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; +import { a as useRoute, b as useRouter, _ as _export_sfc } from "../server.mjs"; +import "./auth-QFkCoU1C.js"; +import "pinia"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; +import "#internal/nuxt/paths"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/unctx@2.5.0/node_modules/unctx/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@nuxt+nitro-server@4.4.8_@babel+plugin-syntax-typescript@7.29.7_@babel+core@7.29.7__db0_5045ebd3802f96c9dd021f3300fcdf4c/node_modules/@nuxt/nitro-server/dist/runtime/h3-compat.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/defu@6.1.7/node_modules/defu/dist/defu.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ufo@1.6.4/node_modules/ufo/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/perfect-debounce@2.1.0/node_modules/perfect-debounce/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "appconfig", + __ssrInlineRender: true, + setup(__props) { + useApi(); + useToast(); + const route = useRoute(); + useRouter(); + const appId = computed(() => Number(route.query.id) || 0); + const appName = computed(() => route.query.name || "未指定应用"); + const appInitial = computed(() => (dep.app_name || appName.value || "A").charAt(0).toUpperCase()); + const dep = reactive({ id: 0, app_name: "", status: "", name: "", region: "", env_id: 0, base_url: "", service_dsn: "" }); + const envs = ref([]); + const envId = ref(0); + const envSaving = ref(false); + const catalog = ref([]); + const curModule = ref(""); + const values = reactive({}); + const dataModules = reactive(/* @__PURE__ */ new Set()); + const show = reactive({}); + const loading = ref(false); + const saving = ref(false); + const dbError = ref(""); + const curDef = computed(() => catalog.value.find((m) => m.module === curModule.value) || null); + const cur = computed(() => values[curModule.value] || {}); + const groups = computed(() => { + const order = []; + const map = /* @__PURE__ */ new Map(); + for (const m of catalog.value) { + if (!map.has(m.group)) { + map.set(m.group, []); + order.push(m.group); + } + map.get(m.group).push(m); + } + return order.map((name) => ({ name, modules: map.get(name) })); + }); + function dbName(dsn) { + const m = (dsn || "").match(/\/([^/?]+)\?/); + return m ? m[1] : dsn ? "(自定义)" : "—"; + } + return (_ctx, _push, _parent, _attrs) => { + _push(`
/

应用服务配置

${ssrInterpolate(appInitial.value)}
${ssrInterpolate(dep.name || appName.value)}#${ssrInterpolate(appId.value)}`); + if (dep.app_name) { + _push(`应用:${ssrInterpolate(dep.app_name)}`); + } else { + _push(``); + } + if (dep.region) { + _push(`${ssrInterpolate(dep.region)}`); + } else { + _push(``); + } + if (dep.status === "pending") { + _push(`待部署`); + } else { + _push(`已接入`); + } + _push(`
`); + if (dep.base_url) { + _push(`地址:${ssrInterpolate(dep.base_url)}`); + } else { + _push(``); + } + _push(`业务库:${ssrInterpolate(dbName(dep.service_dsn))}
部署环境`); + if (envSaving.value) { + _push(``); + } else { + _push(``); + } + _push(`切换后即时保存。

业务功能配置

登录 / 短信 / 邮件 / 支付等应用独立配置,保存在该部署的业务库(不进公共库)。密钥字段加密落库,显示时脱敏。

`); + if (dbError.value) { + _push(`
无法连接应用业务库:${ssrInterpolate(dbError.value)}
待部署的应用先完成部署、或检查业务库 DSN 连通后再配置。
`); + } else { + _push(``); + } + if (loading.value) { + _push(`
`); + } else { + _push(`
`); + if (curDef.value) { + _push(`
${ssrInterpolate(curDef.value.name)}
`); + if (curDef.value.desc) { + _push(`
${ssrInterpolate(curDef.value.desc)}
`); + } else { + _push(``); + } + _push(`
`); + if (dataModules.has(curModule.value)) { + _push(``); + } else { + _push(``); + } + _push(`
`); + ssrRenderList(curDef.value.fields, (f) => { + _push(`
`); + if (f.type === "bool") { + _push(``); + } else if (f.type === "select") { + _push(``); + } else if (f.type === "textarea") { + _push(``); + } else if (f.type === "password") { + _push(`
`); + } else { + _push(``); + } + if (f.desc) { + _push(`${ssrInterpolate(f.desc)}`); + } else { + _push(``); + } + _push(`
`); + }); + _push(`
`); + } else { + _push(`
暂无可配置的业务模块。
`); + } + _push(`
`); + } + _push(`
`); + }; + } +}); +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/appconfig.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +const appconfig = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a2d8388e"]]); +export { + appconfig as default +}; +//# sourceMappingURL=appconfig-b7qb0UVr.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-b7qb0UVr.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-b7qb0UVr.js.map new file mode 100644 index 00000000..b977e771 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-b7qb0UVr.js.map @@ -0,0 +1 @@ +{"version":3,"file":"appconfig-b7qb0UVr.js","sources":["../../../../../../../app/pages/appconfig.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrInterpolate","_ssrRenderStyle","_ssrIncludeBooleanAttr","_ssrRenderAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrRenderDynamicModel"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-b7qb0UVr.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-b7qb0UVr.js.map.json new file mode 100644 index 00000000..97560cf4 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-b7qb0UVr.js.map.json @@ -0,0 +1 @@ +{"file":"appconfig-b7qb0UVr.js","mappings":"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","names":["_ssrInterpolate","_ssrRenderStyle","_ssrIncludeBooleanAttr","_ssrRenderAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrRenderDynamicModel"],"sources":["../../../../../../../app/pages/appconfig.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles-1.mjs-D6A0tq1Y.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles-1.mjs-D6A0tq1Y.js new file mode 100644 index 00000000..ddc1d5c9 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles-1.mjs-D6A0tq1Y.js @@ -0,0 +1,5 @@ +const appconfig_vue_vue_type_style_index_0_scoped_a2d8388e_lang = ".app-avatar[data-v-a2d8388e]{width:48px;height:48px;border-radius:13px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;flex-shrink:0;box-shadow:0 6px 18px #4f46e54d}.lock-tag[data-v-a2d8388e]{font-size:10px;font-weight:600;color:#dc2626;background:#fef2f2;padding:1px 5px;border-radius:5px}"; +export { + appconfig_vue_vue_type_style_index_0_scoped_a2d8388e_lang as default +}; +//# sourceMappingURL=appconfig-styles-1.mjs-D6A0tq1Y.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles-1.mjs-D6A0tq1Y.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles-1.mjs-D6A0tq1Y.js.map new file mode 100644 index 00000000..e898f1d0 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles-1.mjs-D6A0tq1Y.js.map @@ -0,0 +1 @@ +{"version":3,"file":"appconfig-styles-1.mjs-D6A0tq1Y.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles-1.mjs-D6A0tq1Y.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles-1.mjs-D6A0tq1Y.js.map.json new file mode 100644 index 00000000..dbfb2987 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles-1.mjs-D6A0tq1Y.js.map.json @@ -0,0 +1 @@ +{"file":"appconfig-styles-1.mjs-D6A0tq1Y.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles.C960WaXM.mjs b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles.C960WaXM.mjs new file mode 100644 index 00000000..ecddbe8b --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/appconfig-styles.C960WaXM.mjs @@ -0,0 +1,4 @@ +import style_0 from "./appconfig-styles-1.mjs-D6A0tq1Y.js"; +export default [ + style_0 +] \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DL1E6wot.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DL1E6wot.js deleted file mode 100644 index 46232662..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DL1E6wot.js +++ /dev/null @@ -1,135 +0,0 @@ -import { defineComponent, ref, reactive, useSSRContext } from "vue"; -import { ssrRenderAttrs, ssrRenderStyle, ssrRenderList, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderClass } from "vue/server-renderer"; -import { u as useApi } from "./useApi-B7CB0Cnn.js"; -import { u as useToast } from "./useToast-BwtTR9dH.js"; -import { u as useAuthStore } from "./auth-QFkCoU1C.js"; -import { a as useRouter } from "../server.mjs"; -import "pinia"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; -import "#internal/nuxt/paths"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/unctx@2.5.0/node_modules/unctx/dist/index.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@nuxt+nitro-server@4.4.8_@babel+plugin-syntax-typescript@7.29.7_@babel+core@7.29.7__db0_5045ebd3802f96c9dd021f3300fcdf4c/node_modules/@nuxt/nitro-server/dist/runtime/h3-compat.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/defu@6.1.7/node_modules/defu/dist/defu.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ufo@1.6.4/node_modules/ufo/dist/index.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/perfect-debounce@2.1.0/node_modules/perfect-debounce/dist/index.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/index.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs"; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "apps", - __ssrInlineRender: true, - setup(__props) { - useApi(); - useToast(); - useAuthStore(); - useRouter(); - const view = ref("list"); - const rows = ref([]); - const loading = ref(false); - const isEditing = ref(false); - const testPassed = ref(false); - const testing = ref(false); - const testResult = reactive({ - show: false, - apiOk: false, - apiMsg: "", - dbOk: false, - dbMsg: "" - }); - const form = reactive({ - id: 0, - name: "", - region: "", - base_url: "", - service_dsn: "", - remark: "", - enabled: true - }); - function dbName(dsn) { - const m = (dsn || "").match(/\/([^/?]+)\?/); - return m ? m[1] : "-"; - } - ref(null); - const az = reactive({ - appId: 0, - appLabel: "", - start: "", - end: "", - resultShow: false, - resultClass: "", - mode: "", - // 进度 - steps: [], - curIndex: 0, - curTotal: 0, - curName: "", - pct: 0, - // 结果 - errMsg: "", - report: null, - running: false, - btnText: "开始分析" - }); - return (_ctx, _push, _parent, _attrs) => { - _push(`

应用注册

注册各应用的地址与业务库 DSN(仅「重置设备码」清用户绑定时用);厂家/产品/设备码统一在 console 主库,无需逐应用配。

`); - if (loading.value) { - _push(``); - } else if (!rows.value.length) { - _push(``); - } else { - _push(``); - } - _push(``); - ssrRenderList(rows.value, (a) => { - _push(``); - }); - _push(`
ID名称区域应用地址业务库启用操作
暂无注册应用
${ssrInterpolate(a.id)}${ssrInterpolate(a.name || "")}${ssrInterpolate(a.region || "")}${ssrInterpolate(a.base_url || "")}${ssrInterpolate(dbName(a.service_dsn))}`); - if (a.enabled) { - _push(`是`); - } else { - _push(`否`); - } - _push(`

${ssrInterpolate(isEditing.value ? "编辑应用" : "注册应用")}

用于通知应用业务服务事件(如配置更新)
用于读取业务数据(重置设备码时清 userdevice/product_stat)
${ssrInterpolate(testResult.apiOk ? "✓" : "✗")} 应用地址:${ssrInterpolate(testResult.apiMsg)}
${ssrInterpolate(testResult.dbOk ? "✓" : "✗")} 业务库:${ssrInterpolate(testResult.dbMsg)}

需先「测试连接」通过(应用地址可达 + 业务库可连)才能保存。

`); - }; - } -}); -const _sfc_setup = _sfc_main.setup; -_sfc_main.setup = (props, ctx) => { - const ssrContext = useSSRContext(); - (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/apps.vue"); - return _sfc_setup ? _sfc_setup(props, ctx) : void 0; -}; -export { - _sfc_main as default -}; -//# sourceMappingURL=apps-DL1E6wot.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DL1E6wot.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DL1E6wot.js.map deleted file mode 100644 index 96a26605..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DL1E6wot.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"apps-DL1E6wot.js","sources":["../../../../../../../app/pages/apps.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderClass"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DL1E6wot.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DL1E6wot.js.map.json deleted file mode 100644 index 1e8656aa..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DL1E6wot.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"apps-DL1E6wot.js","mappings":"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","names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderClass"],"sources":["../../../../../../../app/pages/apps.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DkgvJNjV.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DkgvJNjV.js new file mode 100644 index 00000000..28ee5775 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DkgvJNjV.js @@ -0,0 +1,268 @@ +import { defineComponent, ref, reactive, computed, useSSRContext } from "vue"; +import { ssrRenderAttrs, ssrRenderStyle, ssrRenderList, ssrRenderClass, ssrInterpolate, ssrIncludeBooleanAttr, ssrRenderAttr, ssrLooseContain, ssrLooseEqual } from "vue/server-renderer"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; +import { u as useAuthStore } from "./auth-QFkCoU1C.js"; +import { b as useRouter, _ as _export_sfc } from "../server.mjs"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; +import "pinia"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; +import "#internal/nuxt/paths"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/unctx@2.5.0/node_modules/unctx/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@nuxt+nitro-server@4.4.8_@babel+plugin-syntax-typescript@7.29.7_@babel+core@7.29.7__db0_5045ebd3802f96c9dd021f3300fcdf4c/node_modules/@nuxt/nitro-server/dist/runtime/h3-compat.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/defu@6.1.7/node_modules/defu/dist/defu.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ufo@1.6.4/node_modules/ufo/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/perfect-debounce@2.1.0/node_modules/perfect-debounce/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs"; +const ORPHAN_KEY = "__orphan__"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "apps", + __ssrInlineRender: true, + setup(__props) { + useApi(); + useToast(); + useAuthStore(); + useRouter(); + const view = ref("list"); + const products = ref([]); + const apps2 = ref([]); + const envs = ref([]); + const loading = ref(false); + const envSavingId = ref(0); + const expanded = reactive({}); + const regionOptions = ["中国", "美国", "东亚", "东南亚", "南亚", "中东", "欧洲", "俄罗斯", "非洲", "南美", "北美", "大洋洲", "巴西", "印度"]; + const groups = computed(() => { + const byName = /* @__PURE__ */ new Map(); + for (const d of apps2.value) { + const name = d.app_name || ""; + if (!byName.has(name)) byName.set(name, []); + byName.get(name).push(d); + } + const known = new Set(products.value.map((p) => p.name)); + const res = products.value.map((p) => ({ key: p.name, product: p, deployments: byName.get(p.name) || [] })); + const orphan = []; + for (const [name, ds] of byName) { + if (name === "" || !known.has(name)) orphan.push(...ds); + } + if (orphan.length) res.push({ key: ORPHAN_KEY, product: null, deployments: orphan }); + return res; + }); + function isExpanded(key) { + return expanded[key] !== false; + } + function dbName(dsn) { + const m = (dsn || "").match(/\/([^/?]+)\?/); + return m ? m[1] : "-"; + } + const pIsEditing = ref(false); + const pForm = reactive({ id: 0, name: "", image_name: "", remark: "", enabled: true }); + const dIsEditing = ref(false); + const dMode = ref("existing"); + const dForm = reactive({ id: 0, app_name: "", name: "", region: "", env_id: 0, base_url: "", service_dsn: "", deploy_dir: "", image_name: "", image_tag: "", remark: "", enabled: true }); + const availableRegions = computed(() => { + const used = new Set( + apps2.value.filter((d) => d.app_name === dForm.app_name && d.id !== dForm.id).map((d) => d.region).filter(Boolean) + ); + return regionOptions.filter((r) => !used.has(r)); + }); + const testPassed = ref(false); + const testing = ref(false); + const testResult = reactive({ show: false, apiOk: false, apiMsg: "", dbOk: false, dbMsg: "" }); + ref(null); + const az = reactive({ + appId: 0, + appLabel: "", + start: "", + end: "", + resultShow: false, + resultClass: "", + mode: "", + steps: [], + curIndex: 0, + curTotal: 0, + curName: "", + pct: 0, + errMsg: "", + report: null, + running: false, + btnText: "开始分析" + }); + ref(null); + ref(null); + const up = reactive({ + id: 0, + label: "", + envName: "", + deployDir: "", + tag: "", + log: "", + show: false, + running: false, + ok: false, + canRun: false, + btnText: "开始升级" + }); + return (_ctx, _push, _parent, _attrs) => { + _push(`

应用管理

应用 是一个产品(如 Voitrans);其下挂多条 部署(各区域一份)。 卡片 = 应用;卡片内表格 = 该应用的区域部署。

`); + if (loading.value) { + _push(`
`); + } else if (!groups.value.length) { + _push(`
暂无应用,先「添加应用」
`); + } else { + _push(`
`); + ssrRenderList(groups.value, (g) => { + _push(`
${ssrInterpolate(g.product ? (g.product.name || "?").charAt(0).toUpperCase() : "?")}
应用${ssrInterpolate(g.product ? g.product.name : "未分组部署")}`); + if (g.product) { + _push(`${ssrInterpolate(g.product.enabled ? "启用" : "停用")}`); + } else { + _push(``); + } + if (g.product && g.product.image_name) { + _push(`🐳 ${ssrInterpolate(g.product.image_name)}`); + } else { + _push(``); + } + _push(`${ssrInterpolate(g.deployments.length)} 个部署

${ssrInterpolate(g.product ? g.product.remark || "—" : "未填所属应用名、或应用已删除的历史部署;编辑部署可归位到某个应用")}

`); + if (g.product) { + _push(`
`); + } else { + _push(``); + } + _push(`
`); + if (!g.deployments.length) { + _push(`
该应用暂无部署`); + if (g.product) { + _push(`,点右上「+ 部署」添加`); + } else { + _push(``); + } + _push(`
`); + } else { + _push(`
`); + ssrRenderList(g.deployments, (a) => { + _push(``); + }); + _push(`
部署区域环境状态业务库启用操作
部署${ssrInterpolate(a.name || "部署#" + a.id)}#${ssrInterpolate(a.id)}${ssrInterpolate(a.region || "—")}`); + if (a.status === "pending") { + _push(`待部署`); + } else { + _push(`已接入`); + } + _push(`${ssrInterpolate(dbName(a.service_dsn))}`); + if (a.enabled) { + _push(`是`); + } else { + _push(`否`); + } + _push(`
`); + if (a.status !== "pending") { + _push(``); + } else { + _push(``); + } + _push(`
`); + } + _push(`
`); + }); + _push(`
`); + } + _push(`

${ssrInterpolate(pIsEditing.value ? "编辑应用" : "添加应用")}

账号作用域按应用名绑定,尽量与统计/账号里一致。

${ssrInterpolate(dIsEditing.value ? "编辑部署" : "添加部署")}

`); + if (!dIsEditing.value) { + _push(``); + } else { + _push(``); + } + _push(`

`); + if (dIsEditing.value) { + _push(`编辑该区域部署的配置(镜像 Tag / 部署目录 / 环境节点 等);改好后回列表点「升级」执行远程部署(拉新镜像并重启)。`); + } else if (dMode.value === "existing") { + _push(`把「已经部署好的应用区域」加进来:填地址与业务库 DSN,测试通过后保存。`); + } else { + _push(`选一个「部署目标环境」,先建关联并标记待部署;保存后回列表点「升级」执行远程部署。`); + } + _push(`

已部署的区域不再出现(一个应用每区域一份部署)。
用于读取业务数据(重置设备码时清 userdevice/product_stat)
`); + if (dMode.value === "existing") { + _push(`
用于通知应用业务服务事件(如配置更新)
${ssrInterpolate(testResult.apiOk ? "✓" : "✗")} 应用地址:${ssrInterpolate(testResult.apiMsg)}
${ssrInterpolate(testResult.dbOk ? "✓" : "✗")} 业务库:${ssrInterpolate(testResult.dbMsg)}
`); + } else { + _push(``); + } + _push(`
`); + if (dMode.value === "existing") { + _push(``); + } else { + _push(``); + } + _push(`
`); + if (!dIsEditing.value && dMode.value === "existing") { + _push(`

需先「测试连接」通过(应用地址可达 + 业务库可连)才能保存。

`); + } else { + _push(``); + } + _push(`
`); + }; + } +}); +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/apps.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +const apps = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f8779360"]]); +export { + apps as default +}; +//# sourceMappingURL=apps-DkgvJNjV.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DkgvJNjV.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DkgvJNjV.js.map new file mode 100644 index 00000000..2fd3d4c2 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DkgvJNjV.js.map @@ -0,0 +1 @@ +{"version":3,"file":"apps-DkgvJNjV.js","sources":["../../../../../../../app/pages/apps.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["apps","_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrRenderClass","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseEqual","_ssrLooseContain"],"mappings":";;;;;;;;;;;;;;;;;;;AAoaA,MAAM,aAAa;;;;;AAZI,WAAA;AACI,aAAA;AACd,iBAAA;AACE,cAAA;AAEf,UAAM,OAAO,IAA2C,MAAM;AAC9D,UAAM,WAAW,IAAe,EAAE;AAClC,UAAMA,QAAO,IAAkB,EAAE;AACjC,UAAM,OAAO,IAAiB,EAAE;AAChC,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,cAAc,IAAI,CAAC;AACzB,UAAM,WAAW,SAAkC,EAAE;AAGrD,UAAM,gBAAgB,CAAC,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,IAAI;AAG5G,UAAM,SAAS,SAAS,MAAM;AAC5B,YAAM,6BAAa,IAAA;AACnB,iBAAW,KAAKA,MAAK,OAAO;AAC1B,cAAM,OAAO,EAAE,YAAY;AAC3B,YAAI,CAAC,OAAO,IAAI,IAAI,EAAG,QAAO,IAAI,MAAM,EAAE;AAC1C,eAAO,IAAI,IAAI,EAAG,KAAK,CAAC;AAAA,MAC1B;AACA,YAAM,QAAQ,IAAI,IAAI,SAAS,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACvD,YAAM,MAAM,SAAS,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,GAAqB,aAAa,OAAO,IAAI,EAAE,IAAI,KAAK,CAAA,IAAK;AAC5H,YAAM,SAAuB,CAAA;AAC7B,iBAAW,CAAC,MAAM,EAAE,KAAK,QAAQ;AAC/B,YAAI,SAAS,MAAM,CAAC,MAAM,IAAI,IAAI,EAAG,QAAO,KAAK,GAAG,EAAE;AAAA,MACxD;AACA,UAAI,OAAO,OAAQ,KAAI,KAAK,EAAE,KAAK,YAAY,SAAS,MAAM,aAAa,OAAA,CAAQ;AACnF,aAAO;AAAA,IACT,CAAC;AAED,aAAS,WAAW,KAAa;AAC/B,aAAO,SAAS,GAAG,MAAM;AAAA,IAC3B;AAWA,aAAS,OAAO,KAAc;AAC5B,YAAM,KAAK,OAAO,IAAI,MAAM,cAAc;AAC1C,aAAO,IAAI,EAAE,CAAC,IAAI;AAAA,IACpB;AA0BA,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,QAAQ,SAAS,EAAE,IAAI,GAAG,MAAM,IAAI,YAAY,IAAI,QAAQ,IAAI,SAAS,MAAM;AAkDrF,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,QAAQ,IAA2B,UAAU;AACnD,UAAM,QAAQ,SAAS,EAAE,IAAI,GAAG,UAAU,IAAI,MAAM,IAAI,QAAQ,IAAI,QAAQ,GAAG,UAAU,IAAI,aAAa,IAAI,YAAY,IAAI,YAAY,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,KAAA,CAAM;AAUxL,UAAM,mBAAmB,SAAS,MAAM;AACtC,YAAM,OAAO,IAAI;AAAA,QACfA,MAAK,MACF,OAAO,CAAC,MAAM,EAAE,aAAa,MAAM,YAAY,EAAE,OAAO,MAAM,EAAE,EAChE,IAAI,CAAC,MAAM,EAAE,MAAM,EACnB,OAAO,OAAO;AAAA,MAAA;AAEnB,aAAO,cAAc,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;AAAA,IACjD,CAAC;AAED,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,aAAa,SAAS,EAAE,MAAM,OAAO,OAAO,OAAO,QAAQ,IAAI,MAAM,OAAO,OAAO,IAAI;AAkJxE,QAA8B,IAAI;AACvD,UAAM,KAAK,SAAS;AAAA,MAClB,OAAO;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,MACP,KAAK;AAAA,MACL,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAO,CAAA;AAAA,MACP,UAAU;AAAA,MACV,UAAU;AAAA,MACV,SAAS;AAAA,MACT,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,SAAS;AAAA,IAAA,CACV;AA8HoB,QAA8B,IAAI;AACtC,QAAwB,IAAI;AAC7C,UAAM,KAAK,SAAS;AAAA,MAClB,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,SAAS;AAAA,MACT,WAAW;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,SAAS;AAAA,IAAA,CACV;;AA51BgB,YAAA,OAAAC,eAAA,MAAA,CAAA,gCAAAC,eAAA,KAAA,UAAI,SAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,2eAAA;AAaJ,UAAA,QAAA,OAAO;;MACD,WAAA,CAAA,OAAA,MAAO,QAAM;;;;AAIXC,sBAAA,OAAA,QAAL,MAAC;+BAA6DC,eAAA,CAAA,EAAA,QAAA,CAAA,EAAE,QAAA,GAAO,UAAA,CAAA,CAAA,gGAAAC,eAGvD,WAAW,EAAE,GAAG,IAAA,MAAA,GAAA,yBACQD,eAAA,CAAA,EAAA,eAAA,CAAA,EAAE,WAAO,UAAA,CAAA,CAAA,qBAAAC,eAAO,EAAE,WAAW,EAAE,QAAQ,QAAI,KAAS,OAAM,CAAA,EAAI,YAAA,IAAW,GAAA,CAAA,2MAI3FA,eAAA,EAAE,UAAU,EAAE,QAAQ,OAAI,OAAA,CAAA,SAAA;AACxC,cAAA,EAAE,SAAO;kDAAiC,EAAE,QAAQ,UAAO,kBAAA,eAAA,gBAAA,CAAA,CAAA,qBAAAA,eAAuC,EAAE,QAAQ,UAAO,OAAA,IAAA,CAAA,SAAA;AAAA;;;AACnH,cAAA,EAAE,WAAW,EAAE,QAAQ,YAAU;+EAA0B,EAAE,QAAQ,UAAU,CAAA,SAAA;AAAA,UAAA,OAAA;;;2EAC/D,EAAE,YAAY,MAAM,CAAA,sFAG7CA,eAAA,EAAE,UAAW,EAAE,QAAQ,UAAM,MAAA,kCAAA,CAAA,YAAA;AAGzB,cAAA,EAAE,SAAO;;;;;qEAQT,WAAW,EAAE,GAAG,IAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,oBAAA;AACf,cAAA,CAAA,EAAE,YAAY,QAAM;;AACP,gBAAA,EAAE,SAAO;;;;;;;;0BAUZ,EAAE,aAAW,CAAlB,MAAC;AAGyC,oBAAA,+KAAAA,eAAA,EAAE,QAAI,QAAa,EAAE,EAAE,CAAA,+EAChBA,eAAA,EAAE,EAAE,CAAA,mCAEvDA,eAAA,EAAE,UAAM,GAAA,gHAEsF,YAAA,UAAgB,EAAE,EAAE,IAAA,cAAA,EAAA,2BAC5GC,cAAA,SAAO,CAAC,oBADKC,sBAAA,MAAA,QAAA,EAAE,MAAM,oBAAR,EAAE,QACR,CAAC,IAAAC,cADK,EAAE,QACR,CAAC,CAAA,IAAA,cAAA,EAAA,uBAAA;AACGL,4BAAA,KAAA,QAAL,MAAC;8CAAuB,SAAO,EAAE,EAAE,CAAA,mBAF5BI,sBAAA,MAAA,QAAA,EAAE,MAAM,IAARE,gBAAA,EAAE,QAEsB,EAAE,EAAE,IAF5BD,cAAA,EAAE,QAEsB,EAAE,EAAE,CAAA,IAAA,cAAA,EAAA,IAAKH,eAAA,EAAE,IAAI,CAAA,WAAA;AAAA;;AAInD,kBAAA,EAAE,WAAM,WAAA;;;;;AAGW,oBAAA,sDAAAA,eAAA,OAAO,EAAE,WAAW,CAAA,CAAA,2BAAA;AAEvC,kBAAA,EAAE,SAAO;;;;;;AAKH,kBAAA,EAAE,WAAM,WAAA;;;;;;;;;;;;;gDAqB/B,KAAA,UAAI,gBAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,kNAAAA,eAGuC,WAAA,QAAU,SAAA,MAAA,CAAA,kSAM1CC,cAAA,SAAA,MAAM,IAAI,CAAA,wWAKVA,cAAA,SAAA,MAAM,UAAU,CAAA,+QAIhBA,cAAA,SAAA,MAAM,MAAM,CAAA,gNAIVC,sBAAA,MAAA,QAAA,MAAM,OAAO,IAAbE,gBAAA,MAAM,SAAO,IAAA,IAAb,MAAM,OAAO,IAAA,aAAA,uYAa1B,KAAA,UAAI,eAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,kNAAAJ,eAGuC,WAAA,QAAU,SAAA,MAAA,CAAA,oIAAA;AAKhD,UAAA,CAAA,WAAA,OAAU;AACG,cAAA,kFAAAD,eAAA,CAAA,MAAA,UAAK,aAAA,eAAA,IAAA,KAAA,CAAA,CAAA,uCAAAA,eAAA,CACL,MAAA,UAAK,WAAA,eAAA,IAAA,KAAA,CAAA,CAAA,qCAAA;AAAA;;;AAEiB,YAAA,aAAAA,eAAA,CAAA,WAAA,QAAU,KAAA,SAAA,6BAAA,CAAA,CAAA,oBAAA;AACvC,UAAA,WAAA,OAAU;;MACL,WAAA,MAAA,UAAK,YAAA;;;;;kPAOhB,SAAO,MAAM,QAAQ,CAAA,+PAIbE,cAAA,SAAA,MAAM,IAAI,CAAA,kaAOTC,sBAAA,MAAA,QAAA,MAAM,MAAM,IAAZE,gBAAA,MAAM,QAAM,EAAA,IAAZD,cAAA,MAAM,QAAM,EAAA,CAAA,IAAA,cAAA,EAAA,uBAAA;AAEPL,oBAAA,iBAAA,QAAL,MAAC;wBAAgCG,cAAA,SAAO,CAAC,CAAA,mBAFzCC,sBAAA,MAAA,QAAA,MAAM,MAAM,IAAAE,gBAAZ,MAAM,QAEkC,CAAC,IAAAD,cAFzC,MAAM,QAEkC,CAAC,CAAA,IAAA,cAAA,qBAAK,CAAC,CAAA,WAAA;AAAA;AAKC,YAAA,2PAAAH,eAAA,MAAA,UAAK,WAAA,OAAA,EAAA,CAAA,uFAE3DC,cAAA,SAAO,CAAC,CAAA,mBADKC,sBAAA,MAAA,QAAA,MAAM,MAAM,IAAAE,gBAAZ,MAAM,QACZ,CAAC,IAAAD,cADK,MAAM,QACZ,CAAC,CAAA,IAAA,cAAA,EAAA,IAAAH,eAAK,MAAA,UAAK,WAAA,YAAA,KAAA,CAAA,mBAAA;AACPF,oBAAA,KAAA,QAAL,MAAC;AAAuB,cAAA,UAAAG,cAAA,SAAO,EAAE,EAAE,CAAA,mBAF5BC,sBAAA,MAAA,QAAA,MAAM,MAAM,IAAZE,gBAAA,MAAM,QAEkB,EAAE,EAAE,IAF5BD,cAAA,MAAM,QAEkB,EAAE,EAAE,CAAA,IAAA,cAAA,EAAA,IAAKH,eAAA,EAAE,IAAI,CAAA,IAAOA,eAAA,EAAE,QAAI,GAAA,CAAA,YAAA;AAAA;kQAS5DC,cAAA,SAAA,MAAM,UAAU,CAAA,8RAIhBA,cAAA,SAAA,MAAM,UAAU,CAAA,2QAIhBA,cAAA,SAAA,MAAM,SAAS,CAAA,6PAAAD,eAMmC,MAAA,UAAK,aAAA,OAAA,EAAA,CAAA,wBACzDC,cAAA,SAAA,MAAM,WAAW,CAAA,qSAAA;AAKnB,UAAA,MAAA,UAAK,YAAA;6LAGDA,cAAA,SAAA,MAAM,QAAQ,CAAA,kOAGnBJ,eAAA,WAAW,OAAI,OAAA,EAAA,SAAA,QAAA,kCACbE,eAAA,WAAW,QAAK,mBAAA,cAAA,CAAA,kCACbA,eAAA,WAAW,QAAK,mBAAA,cAAA,CAAA,qBAAyCC,eAAA,WAAW,QAAK,MAAA,GAAA,CAAA,gBAC/EA,eAAA,WAAW,MAAM,CAAA,qBAEdD,eAAA,WAAW,OAAI,mBAAA,cAAA,CAAA,kCACZA,eAAA,WAAW,OAAI,mBAAA,cAAA,CAAA,qBAAyCC,eAAA,WAAW,OAAI,MAAA,GAAA,CAAA,eAC9EA,eAAA,WAAW,KAAK,CAAA,sBAAA;AAAA;;;AAOX,YAAA,mKAAAC,cAAA,SAAA,MAAM,MAAM,iNAIVC,sBAAA,MAAA,QAAA,MAAM,OAAO,IAAbE,gBAAA,MAAM,SAAO,IAAA,IAAb,MAAM,OAAO,IAAA,aAAA,EAAA,4PAAA;AAOjB,UAAA,MAAA,UAAK,YAAA;AAAkE,cAAA,gDAAAF,sBAAA,QAAA,KAAO,IAAA,cAAA,qCAAuB,QAAA,QAAO,WAAA,MAAA,CAAA,WAAA;AAAA;;;8FACrD,WAAA,SAAc,MAAA,UAAK,cAAA,CAAoB,WAAA,KAAU,IAAA,cAAA,EAAA,oCAAA;AAE9G,UAAA,CAAA,WAAA,SAAc,MAAA,UAAK,YAAA;;;;;+NASWF,eAAA,GAAG,QAAQ,CAAA,ukBAQsBC,cAAA,SAAA,GAAG,KAAK,CAAA,kLACRA,cAAA,SAAA,GAAG,GAAG,CAAA,qGAExBF,eAAA,CAAA,GAAG,aAAW,cAAA,CAAA,CAAA,YAA1DF,eAAA,GAAG,aAAU,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,oBAAA;AAEb,UAAA,GAAG,SAAI,YAAA;;AAGI,YAAA,GAAG,SAAO;uGACuCG,eAAA,GAAG,OAAO,CAAA,KAAQA,eAAA,GAAG,QAAQ,CAAA,IAAOA,eAAA,GAAG,QAAQ,CAAA,YAAA;AAAA;;;AAIxE,cAAA,iEAAAA,eAAA,GAAG,GAAG,CAAA,uEAAAC,cAEM,SAAO,GAAG,GAAG,CAAA,sGAAA;AAE5CH,sBAAA,GAAG,OAAK,CAAlB,IAAI,MAAC;AAAgC,gBAAA,eAAAC,eAAA,MAAM,GAAG,WAAQ,IAAA,mBAAA,gBAAA,CAAA,oBAAA;cACjD,MAAM,GAAG,WAAQ,GAAA;AAAkE,kBAAA,oFAAAC,eAAA,EAAE,CAAA,UAAA;AAAA,UAAA,OAAA;AAC/E,kBAAA,aAAAA,eAAA,EAAE,CAAA,UAAA;AAAA,UAAA;;;;MAKd,WAAA,GAAG,SAAI,SAAA;AAAwC,cAAA,+CAAAA,eAAA,GAAG,MAAM,CAAA,QAAA;AAAA,MAExD,WAAA,GAAG,SAAI,UAAe,GAAG,QAAM;AAG7B,cAAA,mSAAAA,eAAA,GAAG,OAAO,YAAQ,EAAA,CAAA,qCAAAA,eACrB,GAAG,OAAO,UAAM,KAAA,CAAA,iCAAAA,gBACf,GAAG,OAAO,aAAA,QAAA,SAA8B,GAAG,OAAO,WAAO,KAAA,CAAA,mCAAAA,eACxD,GAAG,OAAO,gBAAY,CAAA,CAAA,sDAAAA,eACnB,GAAG,OAAO,gBAAY,CAAA,CAAA,uCAAAA,eACzB,GAAG,OAAO,gBAAY,CAAA,CAAA,0FAAA;AAGZF,sBAAA,GAAG,OAAO,SAAK,CAAA,GAAA,CAAzB,GAAG,MAAC;AACiB,gBAAA,yGAAAE,eAAA,EAAE,IAAI,CAAA,iEACKA,gBAAA,EAAE,UAAM,KAAA,IAAA,CAAA,eAAA;AAAA;;;;;gLAOIE,sBAAA,GAAG,OAAO,IAAA,cAAA,EAAA,oBAAyBF,eAAA,GAAG,OAAO,CAAA,gVAUlEA,eAAA,GAAG,KAAK,opBASsCD,eAAA,GAAG,UAAO,+BAAA,0BAAA,CAAA,qBAAiEC,eAAA,GAAG,WAAO,uBAAA,CAAA,qIACrFD,eAAA,GAAG,YAAS,6BAAA,0BAAA,CAAA,qBAA+DC,eAAA,GAAG,aAAS,wBAAA,CAAA,+IAI7JC,cAAA,SAAA,GAAG,GAAG,CAAA,2FAAqGC,sBAAA,GAAG,OAAO,IAAA,cAAA,EAAA,mDAI1HL,eAAA,GAAG,OAAI,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,sFAAA;AAEJ,UAAA,GAAG,SAAO;;MACL,WAAA,GAAG,IAAE;;;;;AAEU,YAAA,gDAAAG,eAAA,GAAG,UAAO,SAAA,EAAA,CAAA,qKAE2GA,eAAA,GAAG,OAAG,SAAA,CAAA,6FAI7GE,sBAAA,GAAG,OAAO,IAAA,cAAA,EAAA,qEACRA,sBAAA,GAAG,OAAO,IAAA,cAAA,EAAA,oBAAyBF,eAAA,GAAG,OAAO,CAAA,4FAGnCE,sBAAA,GAAG,OAAO,IAAA,cAAA,EAAA,uDAAA;AAAA;;;;;;;;;;"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DkgvJNjV.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DkgvJNjV.js.map.json new file mode 100644 index 00000000..1d7c2cef --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-DkgvJNjV.js.map.json @@ -0,0 +1 @@ +{"file":"apps-DkgvJNjV.js","mappings":";;;;;;;;;;;;;;;;;;;AAoaA,MAAM,aAAa;;;;;AAZI,WAAA;AACI,aAAA;AACd,iBAAA;AACE,cAAA;AAEf,UAAM,OAAO,IAA2C,MAAM;AAC9D,UAAM,WAAW,IAAe,EAAE;AAClC,UAAMA,QAAO,IAAkB,EAAE;AACjC,UAAM,OAAO,IAAiB,EAAE;AAChC,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,cAAc,IAAI,CAAC;AACzB,UAAM,WAAW,SAAkC,EAAE;AAGrD,UAAM,gBAAgB,CAAC,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM,OAAO,MAAM,IAAI;AAG5G,UAAM,SAAS,SAAS,MAAM;AAC5B,YAAM,6BAAa,IAAA;AACnB,iBAAW,KAAKA,MAAK,OAAO;AAC1B,cAAM,OAAO,EAAE,YAAY;AAC3B,YAAI,CAAC,OAAO,IAAI,IAAI,EAAG,QAAO,IAAI,MAAM,EAAE;AAC1C,eAAO,IAAI,IAAI,EAAG,KAAK,CAAC;AAAA,MAC1B;AACA,YAAM,QAAQ,IAAI,IAAI,SAAS,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACvD,YAAM,MAAM,SAAS,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,GAAqB,aAAa,OAAO,IAAI,EAAE,IAAI,KAAK,CAAA,IAAK;AAC5H,YAAM,SAAuB,CAAA;AAC7B,iBAAW,CAAC,MAAM,EAAE,KAAK,QAAQ;AAC/B,YAAI,SAAS,MAAM,CAAC,MAAM,IAAI,IAAI,EAAG,QAAO,KAAK,GAAG,EAAE;AAAA,MACxD;AACA,UAAI,OAAO,OAAQ,KAAI,KAAK,EAAE,KAAK,YAAY,SAAS,MAAM,aAAa,OAAA,CAAQ;AACnF,aAAO;AAAA,IACT,CAAC;AAED,aAAS,WAAW,KAAa;AAC/B,aAAO,SAAS,GAAG,MAAM;AAAA,IAC3B;AAWA,aAAS,OAAO,KAAc;AAC5B,YAAM,KAAK,OAAO,IAAI,MAAM,cAAc;AAC1C,aAAO,IAAI,EAAE,CAAC,IAAI;AAAA,IACpB;AA0BA,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,QAAQ,SAAS,EAAE,IAAI,GAAG,MAAM,IAAI,YAAY,IAAI,QAAQ,IAAI,SAAS,MAAM;AAkDrF,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,QAAQ,IAA2B,UAAU;AACnD,UAAM,QAAQ,SAAS,EAAE,IAAI,GAAG,UAAU,IAAI,MAAM,IAAI,QAAQ,IAAI,QAAQ,GAAG,UAAU,IAAI,aAAa,IAAI,YAAY,IAAI,YAAY,IAAI,WAAW,IAAI,QAAQ,IAAI,SAAS,KAAA,CAAM;AAUxL,UAAM,mBAAmB,SAAS,MAAM;AACtC,YAAM,OAAO,IAAI;AAAA,QACfA,MAAK,MACF,OAAO,CAAC,MAAM,EAAE,aAAa,MAAM,YAAY,EAAE,OAAO,MAAM,EAAE,EAChE,IAAI,CAAC,MAAM,EAAE,MAAM,EACnB,OAAO,OAAO;AAAA,MAAA;AAEnB,aAAO,cAAc,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;AAAA,IACjD,CAAC;AAED,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,aAAa,SAAS,EAAE,MAAM,OAAO,OAAO,OAAO,QAAQ,IAAI,MAAM,OAAO,OAAO,IAAI;AAkJxE,QAA8B,IAAI;AACvD,UAAM,KAAK,SAAS;AAAA,MAClB,OAAO;AAAA,MACP,UAAU;AAAA,MACV,OAAO;AAAA,MACP,KAAK;AAAA,MACL,YAAY;AAAA,MACZ,aAAa;AAAA,MACb,MAAM;AAAA,MACN,OAAO,CAAA;AAAA,MACP,UAAU;AAAA,MACV,UAAU;AAAA,MACV,SAAS;AAAA,MACT,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,SAAS;AAAA,IAAA,CACV;AA8HoB,QAA8B,IAAI;AACtC,QAAwB,IAAI;AAC7C,UAAM,KAAK,SAAS;AAAA,MAClB,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,SAAS;AAAA,MACT,WAAW;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,MACT,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,SAAS;AAAA,IAAA,CACV;;AA51BgB,YAAA,OAAAC,eAAA,MAAA,CAAA,gCAAAC,eAAA,KAAA,UAAI,SAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,2eAAA;AAaJ,UAAA,QAAA,OAAO;;MACD,WAAA,CAAA,OAAA,MAAO,QAAM;;;;AAIXC,sBAAA,OAAA,QAAL,MAAC;+BAA6DC,eAAA,CAAA,EAAA,QAAA,CAAA,EAAE,QAAA,GAAO,UAAA,CAAA,CAAA,gGAAAC,eAGvD,WAAW,EAAE,GAAG,IAAA,MAAA,GAAA,yBACQD,eAAA,CAAA,EAAA,eAAA,CAAA,EAAE,WAAO,UAAA,CAAA,CAAA,qBAAAC,eAAO,EAAE,WAAW,EAAE,QAAQ,QAAI,KAAS,OAAM,CAAA,EAAI,YAAA,IAAW,GAAA,CAAA,2MAI3FA,eAAA,EAAE,UAAU,EAAE,QAAQ,OAAI,OAAA,CAAA,SAAA;AACxC,cAAA,EAAE,SAAO;kDAAiC,EAAE,QAAQ,UAAO,kBAAA,eAAA,gBAAA,CAAA,CAAA,qBAAAA,eAAuC,EAAE,QAAQ,UAAO,OAAA,IAAA,CAAA,SAAA;AAAA;;;AACnH,cAAA,EAAE,WAAW,EAAE,QAAQ,YAAU;+EAA0B,EAAE,QAAQ,UAAU,CAAA,SAAA;AAAA,UAAA,OAAA;;;2EAC/D,EAAE,YAAY,MAAM,CAAA,sFAG7CA,eAAA,EAAE,UAAW,EAAE,QAAQ,UAAM,MAAA,kCAAA,CAAA,YAAA;AAGzB,cAAA,EAAE,SAAO;;;;;qEAQT,WAAW,EAAE,GAAG,IAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,oBAAA;AACf,cAAA,CAAA,EAAE,YAAY,QAAM;;AACP,gBAAA,EAAE,SAAO;;;;;;;;0BAUZ,EAAE,aAAW,CAAlB,MAAC;AAGyC,oBAAA,+KAAAA,eAAA,EAAE,QAAI,QAAa,EAAE,EAAE,CAAA,+EAChBA,eAAA,EAAE,EAAE,CAAA,mCAEvDA,eAAA,EAAE,UAAM,GAAA,gHAEsF,YAAA,UAAgB,EAAE,EAAE,IAAA,cAAA,EAAA,2BAC5GC,cAAA,SAAO,CAAC,oBADKC,sBAAA,MAAA,QAAA,EAAE,MAAM,oBAAR,EAAE,QACR,CAAC,IAAAC,cADK,EAAE,QACR,CAAC,CAAA,IAAA,cAAA,EAAA,uBAAA;AACGL,4BAAA,KAAA,QAAL,MAAC;8CAAuB,SAAO,EAAE,EAAE,CAAA,mBAF5BI,sBAAA,MAAA,QAAA,EAAE,MAAM,IAARE,gBAAA,EAAE,QAEsB,EAAE,EAAE,IAF5BD,cAAA,EAAE,QAEsB,EAAE,EAAE,CAAA,IAAA,cAAA,EAAA,IAAKH,eAAA,EAAE,IAAI,CAAA,WAAA;AAAA;;AAInD,kBAAA,EAAE,WAAM,WAAA;;;;;AAGW,oBAAA,sDAAAA,eAAA,OAAO,EAAE,WAAW,CAAA,CAAA,2BAAA;AAEvC,kBAAA,EAAE,SAAO;;;;;;AAKH,kBAAA,EAAE,WAAM,WAAA;;;;;;;;;;;;;gDAqB/B,KAAA,UAAI,gBAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,kNAAAA,eAGuC,WAAA,QAAU,SAAA,MAAA,CAAA,kSAM1CC,cAAA,SAAA,MAAM,IAAI,CAAA,wWAKVA,cAAA,SAAA,MAAM,UAAU,CAAA,+QAIhBA,cAAA,SAAA,MAAM,MAAM,CAAA,gNAIVC,sBAAA,MAAA,QAAA,MAAM,OAAO,IAAbE,gBAAA,MAAM,SAAO,IAAA,IAAb,MAAM,OAAO,IAAA,aAAA,uYAa1B,KAAA,UAAI,eAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,kNAAAJ,eAGuC,WAAA,QAAU,SAAA,MAAA,CAAA,oIAAA;AAKhD,UAAA,CAAA,WAAA,OAAU;AACG,cAAA,kFAAAD,eAAA,CAAA,MAAA,UAAK,aAAA,eAAA,IAAA,KAAA,CAAA,CAAA,uCAAAA,eAAA,CACL,MAAA,UAAK,WAAA,eAAA,IAAA,KAAA,CAAA,CAAA,qCAAA;AAAA;;;AAEiB,YAAA,aAAAA,eAAA,CAAA,WAAA,QAAU,KAAA,SAAA,6BAAA,CAAA,CAAA,oBAAA;AACvC,UAAA,WAAA,OAAU;;MACL,WAAA,MAAA,UAAK,YAAA;;;;;kPAOhB,SAAO,MAAM,QAAQ,CAAA,+PAIbE,cAAA,SAAA,MAAM,IAAI,CAAA,kaAOTC,sBAAA,MAAA,QAAA,MAAM,MAAM,IAAZE,gBAAA,MAAM,QAAM,EAAA,IAAZD,cAAA,MAAM,QAAM,EAAA,CAAA,IAAA,cAAA,EAAA,uBAAA;AAEPL,oBAAA,iBAAA,QAAL,MAAC;wBAAgCG,cAAA,SAAO,CAAC,CAAA,mBAFzCC,sBAAA,MAAA,QAAA,MAAM,MAAM,IAAAE,gBAAZ,MAAM,QAEkC,CAAC,IAAAD,cAFzC,MAAM,QAEkC,CAAC,CAAA,IAAA,cAAA,qBAAK,CAAC,CAAA,WAAA;AAAA;AAKC,YAAA,2PAAAH,eAAA,MAAA,UAAK,WAAA,OAAA,EAAA,CAAA,uFAE3DC,cAAA,SAAO,CAAC,CAAA,mBADKC,sBAAA,MAAA,QAAA,MAAM,MAAM,IAAAE,gBAAZ,MAAM,QACZ,CAAC,IAAAD,cADK,MAAM,QACZ,CAAC,CAAA,IAAA,cAAA,EAAA,IAAAH,eAAK,MAAA,UAAK,WAAA,YAAA,KAAA,CAAA,mBAAA;AACPF,oBAAA,KAAA,QAAL,MAAC;AAAuB,cAAA,UAAAG,cAAA,SAAO,EAAE,EAAE,CAAA,mBAF5BC,sBAAA,MAAA,QAAA,MAAM,MAAM,IAAZE,gBAAA,MAAM,QAEkB,EAAE,EAAE,IAF5BD,cAAA,MAAM,QAEkB,EAAE,EAAE,CAAA,IAAA,cAAA,EAAA,IAAKH,eAAA,EAAE,IAAI,CAAA,IAAOA,eAAA,EAAE,QAAI,GAAA,CAAA,YAAA;AAAA;kQAS5DC,cAAA,SAAA,MAAM,UAAU,CAAA,8RAIhBA,cAAA,SAAA,MAAM,UAAU,CAAA,2QAIhBA,cAAA,SAAA,MAAM,SAAS,CAAA,6PAAAD,eAMmC,MAAA,UAAK,aAAA,OAAA,EAAA,CAAA,wBACzDC,cAAA,SAAA,MAAM,WAAW,CAAA,qSAAA;AAKnB,UAAA,MAAA,UAAK,YAAA;6LAGDA,cAAA,SAAA,MAAM,QAAQ,CAAA,kOAGnBJ,eAAA,WAAW,OAAI,OAAA,EAAA,SAAA,QAAA,kCACbE,eAAA,WAAW,QAAK,mBAAA,cAAA,CAAA,kCACbA,eAAA,WAAW,QAAK,mBAAA,cAAA,CAAA,qBAAyCC,eAAA,WAAW,QAAK,MAAA,GAAA,CAAA,gBAC/EA,eAAA,WAAW,MAAM,CAAA,qBAEdD,eAAA,WAAW,OAAI,mBAAA,cAAA,CAAA,kCACZA,eAAA,WAAW,OAAI,mBAAA,cAAA,CAAA,qBAAyCC,eAAA,WAAW,OAAI,MAAA,GAAA,CAAA,eAC9EA,eAAA,WAAW,KAAK,CAAA,sBAAA;AAAA;;;AAOX,YAAA,mKAAAC,cAAA,SAAA,MAAM,MAAM,iNAIVC,sBAAA,MAAA,QAAA,MAAM,OAAO,IAAbE,gBAAA,MAAM,SAAO,IAAA,IAAb,MAAM,OAAO,IAAA,aAAA,EAAA,4PAAA;AAOjB,UAAA,MAAA,UAAK,YAAA;AAAkE,cAAA,gDAAAF,sBAAA,QAAA,KAAO,IAAA,cAAA,qCAAuB,QAAA,QAAO,WAAA,MAAA,CAAA,WAAA;AAAA;;;8FACrD,WAAA,SAAc,MAAA,UAAK,cAAA,CAAoB,WAAA,KAAU,IAAA,cAAA,EAAA,oCAAA;AAE9G,UAAA,CAAA,WAAA,SAAc,MAAA,UAAK,YAAA;;;;;+NASWF,eAAA,GAAG,QAAQ,CAAA,ukBAQsBC,cAAA,SAAA,GAAG,KAAK,CAAA,kLACRA,cAAA,SAAA,GAAG,GAAG,CAAA,qGAExBF,eAAA,CAAA,GAAG,aAAW,cAAA,CAAA,CAAA,YAA1DF,eAAA,GAAG,aAAU,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,oBAAA;AAEb,UAAA,GAAG,SAAI,YAAA;;AAGI,YAAA,GAAG,SAAO;uGACuCG,eAAA,GAAG,OAAO,CAAA,KAAQA,eAAA,GAAG,QAAQ,CAAA,IAAOA,eAAA,GAAG,QAAQ,CAAA,YAAA;AAAA;;;AAIxE,cAAA,iEAAAA,eAAA,GAAG,GAAG,CAAA,uEAAAC,cAEM,SAAO,GAAG,GAAG,CAAA,sGAAA;AAE5CH,sBAAA,GAAG,OAAK,CAAlB,IAAI,MAAC;AAAgC,gBAAA,eAAAC,eAAA,MAAM,GAAG,WAAQ,IAAA,mBAAA,gBAAA,CAAA,oBAAA;cACjD,MAAM,GAAG,WAAQ,GAAA;AAAkE,kBAAA,oFAAAC,eAAA,EAAE,CAAA,UAAA;AAAA,UAAA,OAAA;AAC/E,kBAAA,aAAAA,eAAA,EAAE,CAAA,UAAA;AAAA,UAAA;;;;MAKd,WAAA,GAAG,SAAI,SAAA;AAAwC,cAAA,+CAAAA,eAAA,GAAG,MAAM,CAAA,QAAA;AAAA,MAExD,WAAA,GAAG,SAAI,UAAe,GAAG,QAAM;AAG7B,cAAA,mSAAAA,eAAA,GAAG,OAAO,YAAQ,EAAA,CAAA,qCAAAA,eACrB,GAAG,OAAO,UAAM,KAAA,CAAA,iCAAAA,gBACf,GAAG,OAAO,aAAA,QAAA,SAA8B,GAAG,OAAO,WAAO,KAAA,CAAA,mCAAAA,eACxD,GAAG,OAAO,gBAAY,CAAA,CAAA,sDAAAA,eACnB,GAAG,OAAO,gBAAY,CAAA,CAAA,uCAAAA,eACzB,GAAG,OAAO,gBAAY,CAAA,CAAA,0FAAA;AAGZF,sBAAA,GAAG,OAAO,SAAK,CAAA,GAAA,CAAzB,GAAG,MAAC;AACiB,gBAAA,yGAAAE,eAAA,EAAE,IAAI,CAAA,iEACKA,gBAAA,EAAE,UAAM,KAAA,IAAA,CAAA,eAAA;AAAA;;;;;gLAOIE,sBAAA,GAAG,OAAO,IAAA,cAAA,EAAA,oBAAyBF,eAAA,GAAG,OAAO,CAAA,gVAUlEA,eAAA,GAAG,KAAK,opBASsCD,eAAA,GAAG,UAAO,+BAAA,0BAAA,CAAA,qBAAiEC,eAAA,GAAG,WAAO,uBAAA,CAAA,qIACrFD,eAAA,GAAG,YAAS,6BAAA,0BAAA,CAAA,qBAA+DC,eAAA,GAAG,aAAS,wBAAA,CAAA,+IAI7JC,cAAA,SAAA,GAAG,GAAG,CAAA,2FAAqGC,sBAAA,GAAG,OAAO,IAAA,cAAA,EAAA,mDAI1HL,eAAA,GAAG,OAAI,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,sFAAA;AAEJ,UAAA,GAAG,SAAO;;MACL,WAAA,GAAG,IAAE;;;;;AAEU,YAAA,gDAAAG,eAAA,GAAG,UAAO,SAAA,EAAA,CAAA,qKAE2GA,eAAA,GAAG,OAAG,SAAA,CAAA,6FAI7GE,sBAAA,GAAG,OAAO,IAAA,cAAA,EAAA,qEACRA,sBAAA,GAAG,OAAO,IAAA,cAAA,EAAA,oBAAyBF,eAAA,GAAG,OAAO,CAAA,4FAGnCE,sBAAA,GAAG,OAAO,IAAA,cAAA,EAAA,uDAAA;AAAA;;;;;;;;;;","names":["apps","_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrRenderClass","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseEqual","_ssrLooseContain"],"sources":["../../../../../../../app/pages/apps.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles-1.mjs-BfSytJy7.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles-1.mjs-BfSytJy7.js new file mode 100644 index 00000000..75fc45ea --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles-1.mjs-BfSytJy7.js @@ -0,0 +1,5 @@ +const apps_vue_vue_type_style_index_0_scoped_f8779360_lang = ".app-card[data-v-f8779360]{background:#fff;border:1px solid #eef2f7;border-radius:14px;box-shadow:0 1px 2px #00000008;overflow:hidden}.app-card.orphan[data-v-f8779360]{border-color:#fde68a}.app-head[data-v-f8779360]{display:flex;align-items:center;gap:12px;padding:13px 16px;cursor:pointer;background:linear-gradient(90deg,#f5f7ff,#fff);border-left:4px solid #6366f1;transition:background .15s}.app-card.orphan .app-head[data-v-f8779360]{background:linear-gradient(90deg,#fffbeb,#fff);border-left-color:#f59e0b}.app-head[data-v-f8779360]:hover{background:linear-gradient(90deg,#eef2ff,#fff)}.chev[data-v-f8779360]{color:#94a3b8;font-size:12px;width:16px;flex-shrink:0}.app-logo[data-v-f8779360]{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-weight:700;font-size:17px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.app-logo.orphan-logo[data-v-f8779360]{background:#f59e0b}.app-name[data-v-f8779360]{font-size:15px;font-weight:700;color:#1e293b}.chip-app[data-v-f8779360]{font-size:10px;padding:1px 8px;border-radius:6px;background:#eef2ff;color:#4338ca}.chip-app[data-v-f8779360],.chip-dep[data-v-f8779360]{display:inline-flex;font-weight:700}.chip-dep[data-v-f8779360]{font-size:9px;padding:1px 6px;border-radius:5px;background:#ecfeff;color:#0e7490}.chip-mono[data-v-f8779360]{color:#475569;font-family:SF Mono,Menlo,monospace}.chip-count[data-v-f8779360],.chip-mono[data-v-f8779360]{display:inline-flex;font-size:10px;font-weight:600;padding:1px 7px;border-radius:6px;background:#f1f5f9}.chip-count[data-v-f8779360]{color:#64748b}.app-body[data-v-f8779360]{padding:4px 12px 10px;border-top:1px solid #f1f5f9;background:#fcfcfd}.dep-row td[data-v-f8779360]{vertical-align:middle}"; +export { + apps_vue_vue_type_style_index_0_scoped_f8779360_lang as default +}; +//# sourceMappingURL=apps-styles-1.mjs-BfSytJy7.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles-1.mjs-BfSytJy7.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles-1.mjs-BfSytJy7.js.map new file mode 100644 index 00000000..ec673fd6 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles-1.mjs-BfSytJy7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"apps-styles-1.mjs-BfSytJy7.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles-1.mjs-BfSytJy7.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles-1.mjs-BfSytJy7.js.map.json new file mode 100644 index 00000000..102cb0f1 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles-1.mjs-BfSytJy7.js.map.json @@ -0,0 +1 @@ +{"file":"apps-styles-1.mjs-BfSytJy7.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles._bNp0Sh6.mjs b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles._bNp0Sh6.mjs new file mode 100644 index 00000000..399f3094 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/apps-styles._bNp0Sh6.mjs @@ -0,0 +1,4 @@ +import style_0 from "./apps-styles-1.mjs-BfSytJy7.js"; +export default [ + style_0 +] \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-C6glzS4R.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-B1hhAqN7.js similarity index 98% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-C6glzS4R.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-B1hhAqN7.js index fb2e07fa..26116012 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-C6glzS4R.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-B1hhAqN7.js @@ -1,10 +1,12 @@ import { defineComponent, ref, reactive, computed, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrRenderStyle, ssrRenderList, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrInterpolate, ssrRenderClass } from "vue/server-renderer"; -import { u as useApi } from "./useApi-B7CB0Cnn.js"; -import { u as useToast } from "./useToast-BwtTR9dH.js"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; import { _ as _export_sfc } from "../server.mjs"; import "./auth-QFkCoU1C.js"; import "pinia"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; import "#internal/nuxt/paths"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; @@ -203,4 +205,4 @@ const calltranslate = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "dat export { calltranslate as default }; -//# sourceMappingURL=calltranslate-C6glzS4R.js.map +//# sourceMappingURL=calltranslate-B1hhAqN7.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-C6glzS4R.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-B1hhAqN7.js.map similarity index 78% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-C6glzS4R.js.map rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-B1hhAqN7.js.map index 3a3bdfb9..1a8f1f41 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-C6glzS4R.js.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-B1hhAqN7.js.map @@ -1 +1 @@ -{"version":3,"file":"calltranslate-C6glzS4R.js","sources":["../../../../../../../app/pages/calltranslate.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderList","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate","_ssrLooseEqual","_ssrRenderClass","_ssrRenderStyle"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"calltranslate-B1hhAqN7.js","sources":["../../../../../../../app/pages/calltranslate.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderList","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate","_ssrLooseEqual","_ssrRenderClass","_ssrRenderStyle"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-B1hhAqN7.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-B1hhAqN7.js.map.json new file mode 100644 index 00000000..dc826ec5 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-B1hhAqN7.js.map.json @@ -0,0 +1 @@ +{"file":"calltranslate-B1hhAqN7.js","mappings":"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","names":["_ssrRenderList","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate","_ssrLooseEqual","_ssrRenderClass","_ssrRenderStyle"],"sources":["../../../../../../../app/pages/calltranslate.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-C6glzS4R.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-C6glzS4R.js.map.json deleted file mode 100644 index 70659d03..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/calltranslate-C6glzS4R.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"calltranslate-C6glzS4R.js","mappings":"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","names":["_ssrRenderList","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate","_ssrLooseEqual","_ssrRenderClass","_ssrRenderStyle"],"sources":["../../../../../../../app/pages/calltranslate.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-Bi0p3nMD.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-BQgGcfFH.js similarity index 98% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-Bi0p3nMD.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-BQgGcfFH.js index 4296d21d..40bcdee6 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-Bi0p3nMD.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-BQgGcfFH.js @@ -1,10 +1,12 @@ import { defineComponent, ref, reactive, mergeProps, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrRenderStyle, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrInterpolate } from "vue/server-renderer"; -import { u as useApi } from "./useApi-B7CB0Cnn.js"; -import { u as useToast } from "./useToast-BwtTR9dH.js"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; import "../server.mjs"; import "./auth-QFkCoU1C.js"; import "pinia"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; import "#internal/nuxt/paths"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; @@ -95,4 +97,4 @@ _sfc_main.setup = (props, ctx) => { export { _sfc_main as default }; -//# sourceMappingURL=code-Bi0p3nMD.js.map +//# sourceMappingURL=code-BQgGcfFH.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-Bi0p3nMD.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-BQgGcfFH.js.map similarity index 84% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-Bi0p3nMD.js.map rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-BQgGcfFH.js.map index 1759d798..4b058295 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-Bi0p3nMD.js.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-BQgGcfFH.js.map @@ -1 +1 @@ -{"version":3,"file":"code-Bi0p3nMD.js","sources":["../../../../../../../app/pages/code.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"code-BQgGcfFH.js","sources":["../../../../../../../app/pages/code.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-BQgGcfFH.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-BQgGcfFH.js.map.json new file mode 100644 index 00000000..94fc4601 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-BQgGcfFH.js.map.json @@ -0,0 +1 @@ +{"file":"code-BQgGcfFH.js","mappings":"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","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate"],"sources":["../../../../../../../app/pages/code.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-Bi0p3nMD.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-Bi0p3nMD.js.map.json deleted file mode 100644 index cd6f36bc..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/code-Bi0p3nMD.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"code-Bi0p3nMD.js","mappings":"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","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate"],"sources":["../../../../../../../app/pages/code.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-ClL32CVK.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-BeG8w5Q7.js similarity index 77% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-ClL32CVK.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-BeG8w5Q7.js index b4de9fd5..8fd14f28 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-ClL32CVK.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-BeG8w5Q7.js @@ -1,9 +1,11 @@ import { defineComponent, computed, reactive, ref, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrRenderAttr, ssrInterpolate, ssrRenderStyle, ssrRenderClass } from "vue/server-renderer"; import { u as useAuthStore } from "./auth-QFkCoU1C.js"; -import { u as useApi } from "./useApi-B7CB0Cnn.js"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; import { _ as _export_sfc } from "../server.mjs"; import "pinia"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; import "#internal/nuxt/paths"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; @@ -193,53 +195,53 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ return fmtStat((panelStats.value[p.key] || {})[s[0]], s[2], s[3]); } return (_ctx, _push, _parent, _attrs) => { - _push(`
`); ssrRenderList(appOptions.value, (a) => { - _push(`${ssrInterpolate(a.label)}`); + _push(`${ssrInterpolate(a.label)}`); }); - _push(`
顶部为全量总览;各版面右上角可单独选时间周期

累计数据

全量累计 · 随筛选条件变化
`); + _push(`
顶部为全量总览;各版面右上角可单独选时间周期

累计数据

全量累计 · 随筛选条件变化
`); ssrRenderList(globalCards.value, (c) => { - _push(`
${ssrInterpolate(cardStyle(c[0])[0])}
${ssrInterpolate(c[1])}
${ssrInterpolate(globalVal(c))}
`); + _push(`
${ssrInterpolate(cardStyle(c[0])[0])}
${ssrInterpolate(c[1])}
${ssrInterpolate(globalVal(c))}
`); }); - _push(`

今日数据

${ssrInterpolate(todayTag.value)}今日 0 点至现在 · 含较昨日同比(设备类无日期维度,仅见累计)
`); + _push(`

今日数据

${ssrInterpolate(todayTag.value)}今日 0 点至现在 · 含较昨日同比(设备类无日期维度,仅见累计)
`); ssrRenderList(todayCards.value, (c) => { - _push(`
${ssrInterpolate(c[1])}${ssrInterpolate(cardStyle(c[0])[0])}
${ssrInterpolate(todayVal(c))}
`); + _push(`
${ssrInterpolate(c[1])}${ssrInterpolate(cardStyle(c[0])[0])}
${ssrInterpolate(todayVal(c))}
`); if (todayDelta(c).type === "new") { - _push(`新`); + _push(`新`); } else if (todayDelta(c).type !== "none") { - _push(`${ssrInterpolate(todayDelta(c).arrow)} ${ssrInterpolate(todayDelta(c).abs)}%`); + _push(`${ssrInterpolate(todayDelta(c).arrow)} ${ssrInterpolate(todayDelta(c).abs)}%`); } else { _push(``); } - _push(`较昨日
`); + _push(`较昨日
`); }); - _push(`

趋势分析

各版面右上角可独立选择时间周期
`); + _push(`

趋势分析

各版面右上角可独立选择时间周期
`); ssrRenderList(panels.value, (p) => { - _push(`
${ssrInterpolate(p.title)}`); + _push(`
${ssrInterpolate(p.title)}`); if (p.key === "device") { - _push(`当前累计 · 无日期维度`); + _push(`当前累计 · 无日期维度`); } else { - _push(`
`); + _push(`
`); ssrRenderList(rangeBtns, (d) => { - _push(``); + _push(``); }); _push(`
`); } - _push(`
`); + _push(`
`); ssrRenderList(p.stats, (s) => { - _push(`
${ssrInterpolate(s[1])}
${ssrInterpolate(panelStatVal(p, s))}
`); + _push(`
${ssrInterpolate(s[1])}
${ssrInterpolate(panelStatVal(p, s))}
`); }); _push(`
`); if (p.key !== "device") { - _push(`
`); + _push(`
`); } else { _push(``); } @@ -255,8 +257,8 @@ _sfc_main.setup = (props, ctx) => { (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/dashboard.vue"); return _sfc_setup ? _sfc_setup(props, ctx) : void 0; }; -const dashboard = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-d169bdaa"]]); +const dashboard = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7dbe8712"]]); export { dashboard as default }; -//# sourceMappingURL=dashboard-ClL32CVK.js.map +//# sourceMappingURL=dashboard-BeG8w5Q7.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-BeG8w5Q7.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-BeG8w5Q7.js.map new file mode 100644 index 00000000..878ab64a --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-BeG8w5Q7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dashboard-BeG8w5Q7.js","sources":["../../../../../../../app/pages/dashboard.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderAttrs","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderStyle","_ssrRenderClass","_ssrRenderAttr"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-BeG8w5Q7.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-BeG8w5Q7.js.map.json new file mode 100644 index 00000000..991d5b67 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-BeG8w5Q7.js.map.json @@ -0,0 +1 @@ +{"file":"dashboard-BeG8w5Q7.js","mappings":"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","names":["_ssrRenderAttrs","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderStyle","_ssrRenderClass","_ssrRenderAttr"],"sources":["../../../../../../../app/pages/dashboard.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-ClL32CVK.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-ClL32CVK.js.map deleted file mode 100644 index 32151fe9..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-ClL32CVK.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"dashboard-ClL32CVK.js","sources":["../../../../../../../app/pages/dashboard.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderAttrs","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderStyle","_ssrRenderClass","_ssrRenderAttr"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-ClL32CVK.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-ClL32CVK.js.map.json deleted file mode 100644 index e7cad9fb..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-ClL32CVK.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"dashboard-ClL32CVK.js","mappings":"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","names":["_ssrRenderAttrs","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderStyle","_ssrRenderClass","_ssrRenderAttr"],"sources":["../../../../../../../app/pages/dashboard.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-BJ6WqDaB.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-BJ6WqDaB.js deleted file mode 100644 index 0e63bfea..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-BJ6WqDaB.js +++ /dev/null @@ -1,5 +0,0 @@ -const dashboard_vue_vue_type_style_index_0_scoped_d169bdaa_lang = ".panel[data-v-d169bdaa]{background:#fff;border:1px solid #f1f5f9;border-radius:16px;box-shadow:0 1px 2px #0000000a;overflow:hidden}.panel-head[data-v-d169bdaa]{padding:12px 18px;gap:10px;border-bottom:1px solid #f8fafc;flex-wrap:wrap}.panel-dot[data-v-d169bdaa],.panel-head[data-v-d169bdaa]{display:flex;align-items:center}.panel-dot[data-v-d169bdaa]{width:30px;height:30px;border-radius:9px;justify-content:center;flex-shrink:0}.stat-box[data-v-d169bdaa]{padding:10px 12px;border-radius:10px;background:#fafbfc}.stat-label[data-v-d169bdaa]{font-size:11px;color:#94a3b8;margin-bottom:3px}.stat-val[data-v-d169bdaa]{font-size:20px;font-weight:700;color:#1e293b;line-height:1.1;letter-spacing:-.02em}.sec-title[data-v-d169bdaa]{display:flex;align-items:center;gap:10px;margin:0 0 14px}.sec-title .bar[data-v-d169bdaa]{width:4px;height:18px;border-radius:3px}.sec-title h2[data-v-d169bdaa]{font-size:15px;font-weight:700;color:#0f172a;letter-spacing:-.01em}.sec-title .sub[data-v-d169bdaa]{font-size:12px;color:#94a3b8}.sec-title .tag[data-v-d169bdaa]{font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px}.sec-title.muted .bar[data-v-d169bdaa]{height:14px;opacity:.6}.sec-title.muted h2[data-v-d169bdaa]{font-size:13px;font-weight:600;color:#94a3b8}.sec-title.hero .bar[data-v-d169bdaa]{width:5px;height:22px}.sec-title.hero h2[data-v-d169bdaa]{font-size:18px;font-weight:800;color:#0f172a}.cum-card[data-v-d169bdaa]{gap:11px;background:#f8fafc;border:1px solid #eef2f7;border-radius:12px;padding:10px 13px}.cum-card[data-v-d169bdaa],.cum-card .ico[data-v-d169bdaa]{display:flex;align-items:center}.cum-card .ico[data-v-d169bdaa]{width:30px;height:30px;border-radius:9px;justify-content:center;flex-shrink:0;font-size:14px;filter:saturate(.65);opacity:.85}.cum-card .body[data-v-d169bdaa]{min-width:0}.cum-card .lbl[data-v-d169bdaa]{font-size:11.5px;color:#94a3b8;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cum-card .val[data-v-d169bdaa]{font-size:17px;font-weight:700;color:#64748b;line-height:1.3;letter-spacing:-.01em;margin-top:1px}.today-wrap[data-v-d169bdaa]{background:linear-gradient(180deg,#e8f1ff,#f5f9ff);border:1px solid #d6e4ff;border-radius:22px;padding:20px;box-shadow:0 1px 3px #0d6efd0d}.today-card[data-v-d169bdaa]{position:relative;background:#fff;border:1px solid #e6eefb;border-radius:18px;padding:17px 19px;box-shadow:0 6px 18px #0d6efd14;transition:transform .18s ease,box-shadow .18s ease;overflow:hidden}.today-card[data-v-d169bdaa]:hover{transform:translateY(-3px);box-shadow:0 14px 32px #0d6efd26}.today-card .accent[data-v-d169bdaa]{position:absolute;left:0;top:0;bottom:0;width:5px}.today-card-top[data-v-d169bdaa]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.today-card .lbl[data-v-d169bdaa]{font-size:13px;color:#475569;font-weight:600}.today-card .ico[data-v-d169bdaa]{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:20px}.today-card .val[data-v-d169bdaa]{font-size:31px;font-weight:800;color:#0f172a;line-height:1.05;letter-spacing:-.02em}.today-card .foot[data-v-d169bdaa]{margin-top:9px;font-size:12px;color:#94a3b8;display:flex;align-items:center;gap:6px}.delta[data-v-d169bdaa]{display:inline-flex;align-items:center;gap:2px;font-weight:700;padding:2px 7px;border-radius:7px;font-size:11.5px}.delta.up[data-v-d169bdaa]{color:#059669;background:#ecfdf5}.delta.down[data-v-d169bdaa]{color:#dc2626;background:#fef2f2}.delta.flat[data-v-d169bdaa],.tbtn[data-v-d169bdaa]{color:#64748b;background:#f1f5f9}.tbtn[data-v-d169bdaa]{font-size:11px;padding:3px 9px;border-radius:7px;line-height:1.4}.tbtn[data-v-d169bdaa]:hover{background:#e2e8f0}.tbtn-on[data-v-d169bdaa]{background:#1e293b;color:#fff}"; -export { - dashboard_vue_vue_type_style_index_0_scoped_d169bdaa_lang as default -}; -//# sourceMappingURL=dashboard-styles-1.mjs-BJ6WqDaB.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-BJ6WqDaB.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-BJ6WqDaB.js.map deleted file mode 100644 index bced7df1..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-BJ6WqDaB.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"dashboard-styles-1.mjs-BJ6WqDaB.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-BJ6WqDaB.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-BJ6WqDaB.js.map.json deleted file mode 100644 index 57c08e94..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-BJ6WqDaB.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"dashboard-styles-1.mjs-BJ6WqDaB.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-Cr2VlWVR.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-Cr2VlWVR.js new file mode 100644 index 00000000..1b8dc5da --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-Cr2VlWVR.js @@ -0,0 +1,5 @@ +const dashboard_vue_vue_type_style_index_0_scoped_7dbe8712_lang = ".panel[data-v-7dbe8712]{background:#fff;border:1px solid #f1f5f9;border-radius:16px;box-shadow:0 1px 2px #0000000a;overflow:hidden}.panel-head[data-v-7dbe8712]{padding:12px 18px;gap:10px;border-bottom:1px solid #f8fafc;flex-wrap:wrap}.panel-dot[data-v-7dbe8712],.panel-head[data-v-7dbe8712]{display:flex;align-items:center}.panel-dot[data-v-7dbe8712]{width:30px;height:30px;border-radius:9px;justify-content:center;flex-shrink:0}.stat-box[data-v-7dbe8712]{padding:10px 12px;border-radius:10px;background:#fafbfc}.stat-label[data-v-7dbe8712]{font-size:11px;color:#94a3b8;margin-bottom:3px}.stat-val[data-v-7dbe8712]{font-size:20px;font-weight:700;color:#1e293b;line-height:1.1;letter-spacing:-.02em}.sec-title[data-v-7dbe8712]{display:flex;align-items:center;gap:10px;margin:0 0 14px}.sec-title .bar[data-v-7dbe8712]{width:4px;height:18px;border-radius:3px}.sec-title h2[data-v-7dbe8712]{font-size:15px;font-weight:700;color:#0f172a;letter-spacing:-.01em}.sec-title .sub[data-v-7dbe8712]{font-size:12px;color:#94a3b8}.sec-title .tag[data-v-7dbe8712]{font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px}.sec-title.muted .bar[data-v-7dbe8712]{height:14px;opacity:.6}.sec-title.muted h2[data-v-7dbe8712]{font-size:13px;font-weight:600;color:#94a3b8}.sec-title.hero .bar[data-v-7dbe8712]{width:5px;height:22px}.sec-title.hero h2[data-v-7dbe8712]{font-size:18px;font-weight:800;color:#0f172a}.cum-card[data-v-7dbe8712]{gap:11px;background:#f8fafc;border:1px solid #eef2f7;border-radius:12px;padding:10px 13px}.cum-card[data-v-7dbe8712],.cum-card .ico[data-v-7dbe8712]{display:flex;align-items:center}.cum-card .ico[data-v-7dbe8712]{width:30px;height:30px;border-radius:9px;justify-content:center;flex-shrink:0;font-size:14px;filter:saturate(.65);opacity:.85}.cum-card .body[data-v-7dbe8712]{min-width:0}.cum-card .lbl[data-v-7dbe8712]{font-size:11.5px;color:#94a3b8;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cum-card .val[data-v-7dbe8712]{font-size:17px;font-weight:700;color:#64748b;line-height:1.3;letter-spacing:-.01em;margin-top:1px}.today-wrap[data-v-7dbe8712]{background:linear-gradient(180deg,#e8f1ff,#f5f9ff);border:1px solid #d6e4ff;border-radius:22px;padding:20px;box-shadow:0 1px 3px #0d6efd0d}.today-card[data-v-7dbe8712]{position:relative;background:#fff;border:1px solid #e6eefb;border-radius:18px;padding:17px 19px;box-shadow:0 6px 18px #0d6efd14;transition:transform .18s ease,box-shadow .18s ease;overflow:hidden}.today-card[data-v-7dbe8712]:hover{transform:translateY(-3px);box-shadow:0 14px 32px #0d6efd26}.today-card .accent[data-v-7dbe8712]{position:absolute;left:0;top:0;bottom:0;width:5px}.today-card-top[data-v-7dbe8712]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.today-card .lbl[data-v-7dbe8712]{font-size:13px;color:#475569;font-weight:600}.today-card .ico[data-v-7dbe8712]{width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:20px}.today-card .val[data-v-7dbe8712]{font-size:31px;font-weight:800;color:#0f172a;line-height:1.05;letter-spacing:-.02em}.today-card .foot[data-v-7dbe8712]{margin-top:9px;font-size:12px;color:#94a3b8;display:flex;align-items:center;gap:6px}.delta[data-v-7dbe8712]{display:inline-flex;align-items:center;gap:2px;font-weight:700;padding:2px 7px;border-radius:7px;font-size:11.5px}.delta.up[data-v-7dbe8712]{color:#059669;background:#ecfdf5}.delta.down[data-v-7dbe8712]{color:#dc2626;background:#fef2f2}.delta.flat[data-v-7dbe8712],.tbtn[data-v-7dbe8712]{color:#64748b;background:#f1f5f9}.tbtn[data-v-7dbe8712]{font-size:11px;padding:3px 9px;border-radius:7px;line-height:1.4}.tbtn[data-v-7dbe8712]:hover{background:#e2e8f0}.tbtn-on[data-v-7dbe8712]{background:#1e293b;color:#fff}"; +export { + dashboard_vue_vue_type_style_index_0_scoped_7dbe8712_lang as default +}; +//# sourceMappingURL=dashboard-styles-1.mjs-Cr2VlWVR.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-Cr2VlWVR.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-Cr2VlWVR.js.map new file mode 100644 index 00000000..13a43b1e --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-Cr2VlWVR.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dashboard-styles-1.mjs-Cr2VlWVR.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-Cr2VlWVR.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-Cr2VlWVR.js.map.json new file mode 100644 index 00000000..ee448b15 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles-1.mjs-Cr2VlWVR.js.map.json @@ -0,0 +1 @@ +{"file":"dashboard-styles-1.mjs-Cr2VlWVR.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles.CGuiyPm5.mjs b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles.CGuiyPm5.mjs new file mode 100644 index 00000000..ef4c0bdf --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles.CGuiyPm5.mjs @@ -0,0 +1,4 @@ +import style_0 from "./dashboard-styles-1.mjs-Cr2VlWVR.js"; +export default [ + style_0 +] \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles.YHe4qmhV.mjs b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles.YHe4qmhV.mjs deleted file mode 100644 index b9b5039a..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/dashboard-styles.YHe4qmhV.mjs +++ /dev/null @@ -1,4 +0,0 @@ -import style_0 from "./dashboard-styles-1.mjs-BJ6WqDaB.js"; -export default [ - style_0 -] \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-CKIkgZOu.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-CKIkgZOu.js.map deleted file mode 100644 index 47fb0f88..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-CKIkgZOu.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"default-CKIkgZOu.js","sources":["../../../../../../../app/components/AppToast.vue","../../../../../../../app/layouts/default.vue"],"sourcesContent":["\n\n\n","\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderList","_unref","_ssrRenderClass","_ssrInterpolate","_ssrRenderStyle","_push","_parent","_ssrRenderAttr","_openBlock","_createBlock","_createVNode","_createTextVNode","_toDisplayString"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-CKIkgZOu.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-CKIkgZOu.js.map.json deleted file mode 100644 index 49e228ff..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-CKIkgZOu.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"default-CKIkgZOu.js","mappings":"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","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderList","_unref","_ssrRenderClass","_ssrInterpolate","_ssrRenderStyle","_push","_parent","_ssrRenderAttr","_openBlock","_createBlock","_createVNode","_createTextVNode","_toDisplayString"],"sources":["../../../../../../../app/components/AppToast.vue","../../../../../../../app/layouts/default.vue"],"sourcesContent":["\n\n\n","\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-CKIkgZOu.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-DDIg74_f.js similarity index 82% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-CKIkgZOu.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-DDIg74_f.js index 63377af5..01aa5c3d 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-CKIkgZOu.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-DDIg74_f.js @@ -1,21 +1,23 @@ -import { _ as __nuxt_component_0 } from "./nuxt-link-BpF9-8DI.js"; +import { _ as __nuxt_component_0 } from "./nuxt-link-CQqhT_O_.js"; import { defineComponent, mergeProps, unref, useSSRContext, computed, withCtx, openBlock, createBlock, createVNode, createTextVNode, toDisplayString } from "vue"; import { ssrRenderAttrs, ssrRenderList, ssrRenderClass, ssrInterpolate, ssrRenderStyle, ssrRenderComponent, ssrRenderAttr, ssrRenderSlot } from "vue/server-renderer"; -import { u as useToast } from "./useToast-BwtTR9dH.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; +import { u as useLoading } from "./useLoading-D6mc40Wj.js"; +import { _ as _export_sfc, b as useRouter, a as useRoute } from "../server.mjs"; import { u as useAuthStore } from "./auth-QFkCoU1C.js"; -import { a as useRouter, b as useRoute } from "../server.mjs"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ufo@1.6.4/node_modules/ufo/dist/index.mjs"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/defu@6.1.7/node_modules/defu/dist/defu.mjs"; -import "pinia"; +import "./state-DQnwRar-.js"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; import "#internal/nuxt/paths"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/unctx@2.5.0/node_modules/unctx/dist/index.mjs"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@nuxt+nitro-server@4.4.8_@babel+plugin-syntax-typescript@7.29.7_@babel+core@7.29.7__db0_5045ebd3802f96c9dd021f3300fcdf4c/node_modules/@nuxt/nitro-server/dist/runtime/h3-compat.mjs"; +import "pinia"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/perfect-debounce@2.1.0/node_modules/perfect-debounce/dist/index.mjs"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/index.mjs"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs"; -const _sfc_main$1 = /* @__PURE__ */ defineComponent({ +const _sfc_main$2 = /* @__PURE__ */ defineComponent({ __name: "AppToast", __ssrInlineRender: true, setup(__props) { @@ -42,13 +44,38 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({ }; } }); +const _sfc_setup$2 = _sfc_main$2.setup; +_sfc_main$2.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/AppToast.vue"); + return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0; +}; +const __nuxt_component_1 = Object.assign(_sfc_main$2, { __name: "AppToast" }); +const _sfc_main$1 = /* @__PURE__ */ defineComponent({ + __name: "AppLoading", + __ssrInlineRender: true, + setup(__props) { + const { loading } = useLoading(); + return (_ctx, _push, _parent, _attrs) => { + if (unref(loading)) { + _push(`
处理中,请稍候…
`); + } else { + _push(``); + } + }; + } +}); const _sfc_setup$1 = _sfc_main$1.setup; _sfc_main$1.setup = (props, ctx) => { const ssrContext = useSSRContext(); - (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/AppToast.vue"); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/AppLoading.vue"); return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0; }; -const __nuxt_component_1 = Object.assign(_sfc_main$1, { __name: "AppToast" }); +const __nuxt_component_2 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$1, [["__scopeId", "data-v-c1ace0c2"]]), { __name: "AppLoading" }); const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "default", __ssrInlineRender: true, @@ -93,14 +120,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ { id: "globalconfig", label: "全局环境配置", to: "/globalconfig", icon: "M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" }, { id: "mcpconfig", label: "MCP配置", to: "/mcpconfig", icon: "M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-3-4h.01M16 16h.01" }, { id: "meettemplate", label: "会议模板", to: "/meettemplates", icon: "M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" }, - { id: "svcconfig", label: "依赖服务配置", to: "/serviceconfig", icon: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z" }, + { id: "svcconfig", label: "第三方服务配置", to: "/serviceconfig", icon: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z M15 12a3 3 0 11-6 0 3 3 0 016 0z" }, { id: "calltranslate", label: "通话翻译配置", to: "/calltranslate", icon: "M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129" } ] }, + { + label: "SaaS 管理", + items: [ + { id: "apps", label: "应用管理", to: "/apps", icon: "M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" }, + { id: "environments", label: "环境节点", to: "/environments", icon: "M5 3h14a2 2 0 012 2v4a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2zM5 13h14a2 2 0 012 2v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4a2 2 0 012-2zM7 7h.01M7 17h.01" } + ] + }, { label: "系统管理", items: [ - { id: "apps", label: "应用注册", to: "/apps", icon: "M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10" }, + { id: "systemconfig", label: "系统配置", to: "/systemconfig", icon: "M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4" }, { id: "statlog", label: "统计日志", to: "/statlog", icon: "M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" }, { id: "admin", label: "后台账号", to: "/accounts", icon: "M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z" } ] @@ -120,6 +154,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({ return (_ctx, _push, _parent, _attrs) => { const _component_NuxtLink = __nuxt_component_0; const _component_AppToast = __nuxt_component_1; + const _component_AppLoading = __nuxt_component_2; _push(`
首页/${ssrInterpolate(pageTitle.value)}
`); _push(ssrRenderComponent(_component_AppToast, null, null, _parent)); + _push(ssrRenderComponent(_component_AppLoading, null, null, _parent)); _push(`
`); ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent); _push(`
`); @@ -188,4 +224,4 @@ _sfc_main.setup = (props, ctx) => { export { _sfc_main as default }; -//# sourceMappingURL=default-CKIkgZOu.js.map +//# sourceMappingURL=default-DDIg74_f.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-DDIg74_f.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-DDIg74_f.js.map new file mode 100644 index 00000000..ebe121f9 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-DDIg74_f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"default-DDIg74_f.js","sources":["../../../../../../../app/components/AppToast.vue","../../../../../../../app/components/AppLoading.vue","../../../../../../../app/layouts/default.vue"],"sourcesContent":["\n\n\n","\n\n\n\n\n","\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderList","_unref","_ssrRenderClass","_ssrInterpolate","_ssrRenderStyle","_push","_parent","_ssrRenderAttr","_openBlock","_createBlock","_createVNode","_createTextVNode","_toDisplayString"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-DDIg74_f.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-DDIg74_f.js.map.json new file mode 100644 index 00000000..46de87e8 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-DDIg74_f.js.map.json @@ -0,0 +1 @@ +{"file":"default-DDIg74_f.js","mappings":"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","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderList","_unref","_ssrRenderClass","_ssrInterpolate","_ssrRenderStyle","_push","_parent","_ssrRenderAttr","_openBlock","_createBlock","_createVNode","_createTextVNode","_toDisplayString"],"sources":["../../../../../../../app/components/AppToast.vue","../../../../../../../app/components/AppLoading.vue","../../../../../../../app/layouts/default.vue"],"sourcesContent":["\n\n\n","\n\n\n\n\n","\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles-1.mjs-BoF2cEDw.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles-1.mjs-BoF2cEDw.js new file mode 100644 index 00000000..0d9b005a --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles-1.mjs-BoF2cEDw.js @@ -0,0 +1,5 @@ +const AppLoading_vue_vue_type_style_index_0_scoped_c1ace0c2_lang = ".fade-enter-active[data-v-c1ace0c2],.fade-leave-active[data-v-c1ace0c2]{transition:opacity .15s ease}.fade-enter-from[data-v-c1ace0c2],.fade-leave-to[data-v-c1ace0c2]{opacity:0}"; +export { + AppLoading_vue_vue_type_style_index_0_scoped_c1ace0c2_lang as default +}; +//# sourceMappingURL=default-styles-1.mjs-BoF2cEDw.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles-1.mjs-BoF2cEDw.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles-1.mjs-BoF2cEDw.js.map new file mode 100644 index 00000000..38b4c683 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles-1.mjs-BoF2cEDw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"default-styles-1.mjs-BoF2cEDw.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles-1.mjs-BoF2cEDw.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles-1.mjs-BoF2cEDw.js.map.json new file mode 100644 index 00000000..36c1ec69 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles-1.mjs-BoF2cEDw.js.map.json @@ -0,0 +1 @@ +{"file":"default-styles-1.mjs-BoF2cEDw.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles.BZwnP0YX.mjs b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles.BZwnP0YX.mjs new file mode 100644 index 00000000..6dddd7a9 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/default-styles.BZwnP0YX.mjs @@ -0,0 +1,4 @@ +import style_0 from "./default-styles-1.mjs-BoF2cEDw.js"; +export default [ + style_0 +] \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-BeGbj3n2.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-BeGbj3n2.js.map.json deleted file mode 100644 index 49641318..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-BeGbj3n2.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"device-BeGbj3n2.js","mappings":"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","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderClass"],"sources":["../../../../../../../app/pages/device.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-BeGbj3n2.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-CraC512i.js similarity index 99% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-BeGbj3n2.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-CraC512i.js index 1d17be63..c728ce47 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-BeGbj3n2.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-CraC512i.js @@ -1,9 +1,11 @@ import { defineComponent, computed, ref, reactive, mergeProps, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrRenderStyle, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrInterpolate, ssrRenderClass } from "vue/server-renderer"; -import { u as useApi } from "./useApi-B7CB0Cnn.js"; -import { u as useToast } from "./useToast-BwtTR9dH.js"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; import { u as useAuthStore } from "./auth-QFkCoU1C.js"; import "../server.mjs"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; import "pinia"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; import "#internal/nuxt/paths"; @@ -211,4 +213,4 @@ _sfc_main.setup = (props, ctx) => { export { _sfc_main as default }; -//# sourceMappingURL=device-BeGbj3n2.js.map +//# sourceMappingURL=device-CraC512i.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-BeGbj3n2.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-CraC512i.js.map similarity index 83% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-BeGbj3n2.js.map rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-CraC512i.js.map index e43b2501..717c41ca 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-BeGbj3n2.js.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-CraC512i.js.map @@ -1 +1 @@ -{"version":3,"file":"device-BeGbj3n2.js","sources":["../../../../../../../app/pages/device.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderClass"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"device-CraC512i.js","sources":["../../../../../../../app/pages/device.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderClass"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-CraC512i.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-CraC512i.js.map.json new file mode 100644 index 00000000..f6f6a6bb --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/device-CraC512i.js.map.json @@ -0,0 +1 @@ +{"file":"device-CraC512i.js","mappings":"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","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderClass"],"sources":["../../../../../../../app/pages/device.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/environments-SWB_O04K.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/environments-SWB_O04K.js new file mode 100644 index 00000000..8c6ba298 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/environments-SWB_O04K.js @@ -0,0 +1,115 @@ +import { defineComponent, ref, reactive, computed, useSSRContext } from "vue"; +import { ssrRenderAttrs, ssrRenderStyle, ssrRenderList, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrRenderClass } from "vue/server-renderer"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; +import "../server.mjs"; +import "./auth-QFkCoU1C.js"; +import "pinia"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; +import "#internal/nuxt/paths"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/unctx@2.5.0/node_modules/unctx/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@nuxt+nitro-server@4.4.8_@babel+plugin-syntax-typescript@7.29.7_@babel+core@7.29.7__db0_5045ebd3802f96c9dd021f3300fcdf4c/node_modules/@nuxt/nitro-server/dist/runtime/h3-compat.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/defu@6.1.7/node_modules/defu/dist/defu.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ufo@1.6.4/node_modules/ufo/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/perfect-debounce@2.1.0/node_modules/perfect-debounce/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "environments", + __ssrInlineRender: true, + setup(__props) { + useApi(); + useToast(); + const view = ref("list"); + const rows = ref([]); + const loading = ref(false); + const isEditing = ref(false); + const testPassed = ref(false); + const testing = ref(false); + const testResult = reactive({ + show: false, + ok: false, + ssh_ok: false, + ssh_msg: "", + etcd_ok: false, + etcd_msg: "", + redis_ok: false, + redis_msg: "", + nats_ok: false, + nats_msg: "" + }); + const testItems = computed(() => [ + { key: "ssh", label: "SSH 部署机", ok: testResult.ssh_ok, msg: testResult.ssh_msg }, + { key: "etcd", label: "ETCD", ok: testResult.etcd_ok, msg: testResult.etcd_msg }, + { key: "redis", label: "Redis", ok: testResult.redis_ok, msg: testResult.redis_msg }, + { key: "nats", label: "NATS", ok: testResult.nats_ok, msg: testResult.nats_msg } + ]); + function blankForm() { + return { + id: 0, + name: "", + code: "", + remark: "", + enabled: true, + ssh_host: "", + ssh_port: 22, + ssh_user: "root", + ssh_private_key: "", + registry: "", + registry_user: "", + registry_pass: "", + docker_network: "1panel-network", + etcd_servers: "", + redis_addr: "", + redis_pwd: "", + nats_url: "" + }; + } + const form = reactive(blankForm()); + function sshTarget(e) { + if (!e.ssh_host) return "-"; + return `${e.ssh_user || "root"}@${e.ssh_host}:${e.ssh_port || 22}`; + } + function imageLabel(e) { + return e.registry || "-"; + } + return (_ctx, _push, _parent, _attrs) => { + _push(`

环境节点(部署服务器)

部署服务器节点(如 上海 / 日本 / 新加坡):远端 IP、SSH 登录账号与私钥、私有镜像仓库、区域共享基础设施。应用管理里「部署到目标环境」从这里选择、两边对应;下一期即可从页面直接更新服务/部署应用。密钥加密存储,不回显明文。

`); + if (loading.value) { + _push(``); + } else if (!rows.value.length) { + _push(``); + } else { + _push(``); + } + _push(``); + ssrRenderList(rows.value, (e) => { + _push(``); + }); + _push(`
ID名称区域码SSH 目标镜像仓库启用操作
暂无环境
${ssrInterpolate(e.id)}${ssrInterpolate(e.name || "")}${ssrInterpolate(e.code || "")}${ssrInterpolate(sshTarget(e))}${ssrInterpolate(imageLabel(e))}`); + if (e.enabled) { + _push(`是`); + } else { + _push(`否`); + } + _push(`

${ssrInterpolate(isEditing.value ? "编辑节点" : "新增节点")}

SSH 部署目标
加密存储;编辑时显示 [encrypted] 表示不改,如需更换直接粘贴新私钥。
私有镜像仓库 + Docker 网络
节点共享集群服务

该服务器上各应用共用的地址。各应用自己的部署目录、业务库 DSN、镜像、redis 库号等,在「应用管理 → 部署到目标环境」里按应用填。

`); + ssrRenderList(testItems.value, (it) => { + _push(`
${ssrInterpolate(it.ok ? "✓" : "✗")} ${ssrInterpolate(it.label)}:${ssrInterpolate(it.msg)}
`); + }); + _push(`

需先「测试连接」(SSH 握手成功即可保存;基础设施逐项仅作提示)。

`); + }; + } +}); +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/environments.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +export { + _sfc_main as default +}; +//# sourceMappingURL=environments-SWB_O04K.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/environments-SWB_O04K.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/environments-SWB_O04K.js.map new file mode 100644 index 00000000..a2533490 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/environments-SWB_O04K.js.map @@ -0,0 +1 @@ +{"version":3,"file":"environments-SWB_O04K.js","sources":["../../../../../../../app/pages/environments.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrRenderClass"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/environments-SWB_O04K.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/environments-SWB_O04K.js.map.json new file mode 100644 index 00000000..801a1115 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/environments-SWB_O04K.js.map.json @@ -0,0 +1 @@ +{"file":"environments-SWB_O04K.js","mappings":"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","names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrRenderClass"],"sources":["../../../../../../../app/pages/environments.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-DHCmSEsF.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BZja4_wg.js similarity index 98% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-DHCmSEsF.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BZja4_wg.js index 72e688c6..09654c09 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-DHCmSEsF.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BZja4_wg.js @@ -1,4 +1,4 @@ -import { _ as __nuxt_component_0 } from "./nuxt-link-BpF9-8DI.js"; +import { _ as __nuxt_component_0 } from "./nuxt-link-CQqhT_O_.js"; import { mergeProps, withCtx, createTextVNode, toDisplayString, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent } from "vue/server-renderer"; import { _ as _export_sfc } from "../server.mjs"; @@ -87,4 +87,4 @@ const error404 = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5 export { error404 as default }; -//# sourceMappingURL=error-404-DHCmSEsF.js.map +//# sourceMappingURL=error-404-BZja4_wg.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-DHCmSEsF.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BZja4_wg.js.map similarity index 98% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-DHCmSEsF.js.map rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BZja4_wg.js.map index 2e857a7d..0a20570f 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-DHCmSEsF.js.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BZja4_wg.js.map @@ -1 +1 @@ -{"version":3,"file":"error-404-DHCmSEsF.js","sources":["../../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_push","_parent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,UAAM,QAAQ;AAsBd,YAAQ;AAAA,MACN,OAAO,GAAG,MAAM,MAAM,MAAM,MAAM,UAAU,MAAM,MAAM,OAAO;AAAA,MAC/D,QAAQ;AAAA,QACN;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,MAEF,OAAO;AAAA,QACL;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,IACF,CACD;;;mBAIIA,eAAAC,WAAA,EAAA,OAAM,0JAAsJ,MAAA,CAAA,8LAAmI,QAAA,MAAM,4FAAgE,QAAA,UAAU,oFAAwD,QAAA,WAAW;;QAAmE,IAAG;AAAA,QAAI,OAAM;AAAA,MAAA;yBAAvB,CAEre,GAAAC,QAAAC,UAAA,aAAA;;qCADP,QAAA,QAAQ,CAAA,EAAA;AAAA;;8CAAR,QAAA,QAAQ,GAAA,CAAA;AAAA,YAAA;AAAA;;;;;;;;;;;;;;;","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"error-404-BZja4_wg.js","sources":["../../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_push","_parent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,UAAM,QAAQ;AAsBd,YAAQ;AAAA,MACN,OAAO,GAAG,MAAM,MAAM,MAAM,MAAM,UAAU,MAAM,MAAM,OAAO;AAAA,MAC/D,QAAQ;AAAA,QACN;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,MAEF,OAAO;AAAA,QACL;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,IACF,CACD;;;mBAIIA,eAAAC,WAAA,EAAA,OAAM,0JAAsJ,MAAA,CAAA,8LAAmI,QAAA,MAAM,4FAAgE,QAAA,UAAU,oFAAwD,QAAA,WAAW;;QAAmE,IAAG;AAAA,QAAI,OAAM;AAAA,MAAA;yBAAvB,CAEre,GAAAC,QAAAC,UAAA,aAAA;;qCADP,QAAA,QAAQ,CAAA,EAAA;AAAA;;8CAAR,QAAA,QAAQ,GAAA,CAAA;AAAA,YAAA;AAAA;;;;;;;;;;;;;;;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-DHCmSEsF.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BZja4_wg.js.map.json similarity index 98% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-DHCmSEsF.js.map.json rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BZja4_wg.js.map.json index 67961378..14586933 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-DHCmSEsF.js.map.json +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-404-BZja4_wg.js.map.json @@ -1 +1 @@ -{"file":"error-404-DHCmSEsF.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,UAAM,QAAQ;AAsBd,YAAQ;AAAA,MACN,OAAO,GAAG,MAAM,MAAM,MAAM,MAAM,UAAU,MAAM,MAAM,OAAO;AAAA,MAC/D,QAAQ;AAAA,QACN;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,MAEF,OAAO;AAAA,QACL;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,IACF,CACD;;;mBAIIA,eAAAC,WAAA,EAAA,OAAM,0JAAsJ,MAAA,CAAA,8LAAmI,QAAA,MAAM,4FAAgE,QAAA,UAAU,oFAAwD,QAAA,WAAW;;QAAmE,IAAG;AAAA,QAAI,OAAM;AAAA,MAAA;yBAAvB,CAEre,GAAAC,QAAAC,UAAA,aAAA;;qCADP,QAAA,QAAQ,CAAA,EAAA;AAAA;;8CAAR,QAAA,QAAQ,GAAA,CAAA;AAAA,YAAA;AAAA;;;;;;;;;;;;;;;","names":["_ssrRenderAttrs","_mergeProps","_push","_parent"],"sources":["../../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file +{"file":"error-404-BZja4_wg.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,UAAM,QAAQ;AAsBd,YAAQ;AAAA,MACN,OAAO,GAAG,MAAM,MAAM,MAAM,MAAM,UAAU,MAAM,MAAM,OAAO;AAAA,MAC/D,QAAQ;AAAA,QACN;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,MAEF,OAAO;AAAA,QACL;AAAA,UACE,WAAW;AAAA,QAAA;AAAA,MACb;AAAA,IACF,CACD;;;mBAIIA,eAAAC,WAAA,EAAA,OAAM,0JAAsJ,MAAA,CAAA,8LAAmI,QAAA,MAAM,4FAAgE,QAAA,UAAU,oFAAwD,QAAA,WAAW;;QAAmE,IAAG;AAAA,QAAI,OAAM;AAAA,MAAA;yBAAvB,CAEre,GAAAC,QAAAC,UAAA,aAAA;;qCADP,QAAA,QAAQ,CAAA,EAAA;AAAA;;8CAAR,QAAA,QAAQ,GAAA,CAAA;AAAA,YAAA;AAAA;;;;;;;;;;;;;;;","names":["_ssrRenderAttrs","_mergeProps","_push","_parent"],"sources":["../../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-CpK-E5oz.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-C8vqM9Rd.js similarity index 97% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-CpK-E5oz.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-C8vqM9Rd.js index 2db39ca6..0b074586 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-CpK-E5oz.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-C8vqM9Rd.js @@ -1,10 +1,12 @@ import { defineComponent, ref, reactive, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrRenderStyle, ssrRenderList, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr } from "vue/server-renderer"; -import { u as useApi } from "./useApi-B7CB0Cnn.js"; -import { u as useToast } from "./useToast-BwtTR9dH.js"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; import "../server.mjs"; import "./auth-QFkCoU1C.js"; import "pinia"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; import "#internal/nuxt/paths"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; @@ -81,4 +83,4 @@ _sfc_main.setup = (props, ctx) => { export { _sfc_main as default }; -//# sourceMappingURL=factory-CpK-E5oz.js.map +//# sourceMappingURL=factory-C8vqM9Rd.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-CpK-E5oz.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-C8vqM9Rd.js.map similarity index 85% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-CpK-E5oz.js.map rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-C8vqM9Rd.js.map index b72e41f2..14ff7295 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-CpK-E5oz.js.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-C8vqM9Rd.js.map @@ -1 +1 @@ -{"version":3,"file":"factory-CpK-E5oz.js","sources":["../../../../../../../app/pages/factory.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAqHmB,WAAA;AACc,aAAA;AAEjC,UAAM,OAAO,IAAqB,MAAM;AACxC,UAAM,OAAO,IAAe,EAAE;AAC9B,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,YAAY,IAAI,KAAK;AAC3B,UAAM,SAAS,IAAc,EAAE;AAC/B,UAAM,WAAW,IAAI,EAAE;AAEvB,UAAM,OAAO,SAAS,EAAE,IAAI,GAAG,SAAS,IAAI,aAAa,IAAI,aAAa,GAAA,CAAI;AAE9E,aAAS,MAAM,IAAY;AACzB,aAAO,KAAK,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,gBAAgB;AAAA,IACtD;AACA,aAAS,SAAS,GAAY;AAC5B,cAAQ,KAAK,IAAI,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAA,CAAM,EAAE,OAAO,OAAO;AAAA,IACjE;;AApIiB,YAAA,OAAAA,eAAA,MAAA,CAAA,gBAAAC,eAAA,KAAA,UAAI,SAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,0aAAA;AAcG,UAAA,QAAA,OAAO;;MAGD,WAAA,CAAA,KAAA,MAAK,QAAM;;;;;;AAGXC,oBAAA,KAAA,QAAL,MAAC;kEACuB,MAAM,EAAE,EAAE,CAAA,CAAA,gCAChBC,eAAA,EAAE,OAAO,CAAA,qDACYA,eAAA,EAAE,WAAW,CAAA,kCAAA;AAE3C,YAAA,SAAS,EAAE,YAAY,EAAE,QAAM;;AACtBD,wBAAA,SAAS,EAAE,YAAY,GAAA,CAAhC,GAAG,MAAC;AAAmF,kBAAA,iDAAAC,eAAA,CAAC,CAAA,SAAA;AAAA,UAAA,CAAA;;;;;AAInG,cAAA,YAAAA,eAAA,EAAE,YAAQ,CAAA,4CACqBA,eAAA,EAAE,gBAAY,EAAA,CAAA,gKAAA;AAAA;oFAenD,KAAA,UAAI,SAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,oJAAAA,eAGuC,UAAA,QAAS,SAAA,MAAA,0NAMzCC,cAAA,SAAA,KAAK,OAAO,CAAA,qLAIZA,cAAA,SAAA,KAAK,WAAW,CAAA,iOAIbD,eAAA,KAAK,WAAW,CAAA,sJAAA;AAOvB,UAAA,CAAA,OAAA,MAAO,QAAM;;;;;;oBACD,OAAA,OAAM,CAAf,GAAG,MAAC;AAKV,cAAA,gYAAAA,eAAA,CAAC,CAAA,4GAAA;AAAA,MAAA,CAAA;AAMQ,YAAA,oDAAAC,cAAA,SAAA,SAAA,KAAQ,CAAA,kTAAAC,sBAO0C,WAAA,KAAU,IAAA,cAAA,EAAA,6CAAA;AAAA;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"factory-C8vqM9Rd.js","sources":["../../../../../../../app/pages/factory.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAqHmB,WAAA;AACc,aAAA;AAEjC,UAAM,OAAO,IAAqB,MAAM;AACxC,UAAM,OAAO,IAAe,EAAE;AAC9B,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,YAAY,IAAI,KAAK;AAC3B,UAAM,SAAS,IAAc,EAAE;AAC/B,UAAM,WAAW,IAAI,EAAE;AAEvB,UAAM,OAAO,SAAS,EAAE,IAAI,GAAG,SAAS,IAAI,aAAa,IAAI,aAAa,GAAA,CAAI;AAE9E,aAAS,MAAM,IAAY;AACzB,aAAO,KAAK,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,gBAAgB;AAAA,IACtD;AACA,aAAS,SAAS,GAAY;AAC5B,cAAQ,KAAK,IAAI,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAA,CAAM,EAAE,OAAO,OAAO;AAAA,IACjE;;AApIiB,YAAA,OAAAA,eAAA,MAAA,CAAA,gBAAAC,eAAA,KAAA,UAAI,SAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,0aAAA;AAcG,UAAA,QAAA,OAAO;;MAGD,WAAA,CAAA,KAAA,MAAK,QAAM;;;;;;AAGXC,oBAAA,KAAA,QAAL,MAAC;kEACuB,MAAM,EAAE,EAAE,CAAA,CAAA,gCAChBC,eAAA,EAAE,OAAO,CAAA,qDACYA,eAAA,EAAE,WAAW,CAAA,kCAAA;AAE3C,YAAA,SAAS,EAAE,YAAY,EAAE,QAAM;;AACtBD,wBAAA,SAAS,EAAE,YAAY,GAAA,CAAhC,GAAG,MAAC;AAAmF,kBAAA,iDAAAC,eAAA,CAAC,CAAA,SAAA;AAAA,UAAA,CAAA;;;;;AAInG,cAAA,YAAAA,eAAA,EAAE,YAAQ,CAAA,4CACqBA,eAAA,EAAE,gBAAY,EAAA,CAAA,gKAAA;AAAA;oFAenD,KAAA,UAAI,SAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,oJAAAA,eAGuC,UAAA,QAAS,SAAA,MAAA,0NAMzCC,cAAA,SAAA,KAAK,OAAO,CAAA,qLAIZA,cAAA,SAAA,KAAK,WAAW,CAAA,iOAIbD,eAAA,KAAK,WAAW,CAAA,sJAAA;AAOvB,UAAA,CAAA,OAAA,MAAO,QAAM;;;;;;oBACD,OAAA,OAAM,CAAf,GAAG,MAAC;AAKV,cAAA,gYAAAA,eAAA,CAAC,CAAA,4GAAA;AAAA,MAAA,CAAA;AAMQ,YAAA,oDAAAC,cAAA,SAAA,SAAA,KAAQ,CAAA,kTAAAC,sBAO0C,WAAA,KAAU,IAAA,cAAA,EAAA,6CAAA;AAAA;;;;;;;;;"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-C8vqM9Rd.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-C8vqM9Rd.js.map.json new file mode 100644 index 00000000..ede5c091 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-C8vqM9Rd.js.map.json @@ -0,0 +1 @@ +{"file":"factory-C8vqM9Rd.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;AAqHmB,WAAA;AACc,aAAA;AAEjC,UAAM,OAAO,IAAqB,MAAM;AACxC,UAAM,OAAO,IAAe,EAAE;AAC9B,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,YAAY,IAAI,KAAK;AAC3B,UAAM,SAAS,IAAc,EAAE;AAC/B,UAAM,WAAW,IAAI,EAAE;AAEvB,UAAM,OAAO,SAAS,EAAE,IAAI,GAAG,SAAS,IAAI,aAAa,IAAI,aAAa,GAAA,CAAI;AAE9E,aAAS,MAAM,IAAY;AACzB,aAAO,KAAK,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,gBAAgB;AAAA,IACtD;AACA,aAAS,SAAS,GAAY;AAC5B,cAAQ,KAAK,IAAI,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAA,CAAM,EAAE,OAAO,OAAO;AAAA,IACjE;;AApIiB,YAAA,OAAAA,eAAA,MAAA,CAAA,gBAAAC,eAAA,KAAA,UAAI,SAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,0aAAA;AAcG,UAAA,QAAA,OAAO;;MAGD,WAAA,CAAA,KAAA,MAAK,QAAM;;;;;;AAGXC,oBAAA,KAAA,QAAL,MAAC;kEACuB,MAAM,EAAE,EAAE,CAAA,CAAA,gCAChBC,eAAA,EAAE,OAAO,CAAA,qDACYA,eAAA,EAAE,WAAW,CAAA,kCAAA;AAE3C,YAAA,SAAS,EAAE,YAAY,EAAE,QAAM;;AACtBD,wBAAA,SAAS,EAAE,YAAY,GAAA,CAAhC,GAAG,MAAC;AAAmF,kBAAA,iDAAAC,eAAA,CAAC,CAAA,SAAA;AAAA,UAAA,CAAA;;;;;AAInG,cAAA,YAAAA,eAAA,EAAE,YAAQ,CAAA,4CACqBA,eAAA,EAAE,gBAAY,EAAA,CAAA,gKAAA;AAAA;oFAenD,KAAA,UAAI,SAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,oJAAAA,eAGuC,UAAA,QAAS,SAAA,MAAA,0NAMzCC,cAAA,SAAA,KAAK,OAAO,CAAA,qLAIZA,cAAA,SAAA,KAAK,WAAW,CAAA,iOAIbD,eAAA,KAAK,WAAW,CAAA,sJAAA;AAOvB,UAAA,CAAA,OAAA,MAAO,QAAM;;;;;;oBACD,OAAA,OAAM,CAAf,GAAG,MAAC;AAKV,cAAA,gYAAAA,eAAA,CAAC,CAAA,4GAAA;AAAA,MAAA,CAAA;AAMQ,YAAA,oDAAAC,cAAA,SAAA,SAAA,KAAQ,CAAA,kTAAAC,sBAO0C,WAAA,KAAU,IAAA,cAAA,EAAA,6CAAA;AAAA;;;;;;;;;","names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr"],"sources":["../../../../../../../app/pages/factory.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-CpK-E5oz.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-CpK-E5oz.js.map.json deleted file mode 100644 index b4a1332e..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/factory-CpK-E5oz.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"factory-CpK-E5oz.js","mappings":";;;;;;;;;;;;;;;;;;;;;AAqHmB,WAAA;AACc,aAAA;AAEjC,UAAM,OAAO,IAAqB,MAAM;AACxC,UAAM,OAAO,IAAe,EAAE;AAC9B,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,aAAa,IAAI,KAAK;AAC5B,UAAM,YAAY,IAAI,KAAK;AAC3B,UAAM,SAAS,IAAc,EAAE;AAC/B,UAAM,WAAW,IAAI,EAAE;AAEvB,UAAM,OAAO,SAAS,EAAE,IAAI,GAAG,SAAS,IAAI,aAAa,IAAI,aAAa,GAAA,CAAI;AAE9E,aAAS,MAAM,IAAY;AACzB,aAAO,KAAK,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,gBAAgB;AAAA,IACtD;AACA,aAAS,SAAS,GAAY;AAC5B,cAAQ,KAAK,IAAI,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAA,CAAM,EAAE,OAAO,OAAO;AAAA,IACjE;;AApIiB,YAAA,OAAAA,eAAA,MAAA,CAAA,gBAAAC,eAAA,KAAA,UAAI,SAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,0aAAA;AAcG,UAAA,QAAA,OAAO;;MAGD,WAAA,CAAA,KAAA,MAAK,QAAM;;;;;;AAGXC,oBAAA,KAAA,QAAL,MAAC;kEACuB,MAAM,EAAE,EAAE,CAAA,CAAA,gCAChBC,eAAA,EAAE,OAAO,CAAA,qDACYA,eAAA,EAAE,WAAW,CAAA,kCAAA;AAE3C,YAAA,SAAS,EAAE,YAAY,EAAE,QAAM;;AACtBD,wBAAA,SAAS,EAAE,YAAY,GAAA,CAAhC,GAAG,MAAC;AAAmF,kBAAA,iDAAAC,eAAA,CAAC,CAAA,SAAA;AAAA,UAAA,CAAA;;;;;AAInG,cAAA,YAAAA,eAAA,EAAE,YAAQ,CAAA,4CACqBA,eAAA,EAAE,gBAAY,EAAA,CAAA,gKAAA;AAAA;oFAenD,KAAA,UAAI,SAAA,OAAA,EAAA,SAAA,OAAA,CAAA,CAAA,oJAAAA,eAGuC,UAAA,QAAS,SAAA,MAAA,0NAMzCC,cAAA,SAAA,KAAK,OAAO,CAAA,qLAIZA,cAAA,SAAA,KAAK,WAAW,CAAA,iOAIbD,eAAA,KAAK,WAAW,CAAA,sJAAA;AAOvB,UAAA,CAAA,OAAA,MAAO,QAAM;;;;;;oBACD,OAAA,OAAM,CAAf,GAAG,MAAC;AAKV,cAAA,gYAAAA,eAAA,CAAC,CAAA,4GAAA;AAAA,MAAA,CAAA;AAMQ,YAAA,oDAAAC,cAAA,SAAA,SAAA,KAAQ,CAAA,kTAAAC,sBAO0C,WAAA,KAAU,IAAA,cAAA,EAAA,6CAAA;AAAA;;;;;;;;;","names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr"],"sources":["../../../../../../../app/pages/factory.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-B8x1DBTX.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-B8x1DBTX.js.map.json deleted file mode 100644 index a39b592d..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-B8x1DBTX.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"globalconfig-B8x1DBTX.js","mappings":"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","names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate","_ssrRenderAttr","_ssrLooseEqual"],"sources":["../../../../../../../app/pages/globalconfig.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-B8x1DBTX.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-VTDKVQk0.js similarity index 97% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-B8x1DBTX.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-VTDKVQk0.js index 56c852d7..40827ff2 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-B8x1DBTX.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-VTDKVQk0.js @@ -1,10 +1,12 @@ import { defineComponent, ref, reactive, computed, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrRenderStyle, ssrRenderList, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrInterpolate } from "vue/server-renderer"; -import { u as useApi } from "./useApi-B7CB0Cnn.js"; -import { u as useToast } from "./useToast-BwtTR9dH.js"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; import "../server.mjs"; import "./auth-QFkCoU1C.js"; import "pinia"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; import "#internal/nuxt/paths"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; @@ -101,4 +103,4 @@ _sfc_main.setup = (props, ctx) => { export { _sfc_main as default }; -//# sourceMappingURL=globalconfig-B8x1DBTX.js.map +//# sourceMappingURL=globalconfig-VTDKVQk0.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-B8x1DBTX.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-VTDKVQk0.js.map similarity index 78% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-B8x1DBTX.js.map rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-VTDKVQk0.js.map index 67e8804a..69accfa8 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-B8x1DBTX.js.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-VTDKVQk0.js.map @@ -1 +1 @@ -{"version":3,"file":"globalconfig-B8x1DBTX.js","sources":["../../../../../../../app/pages/globalconfig.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate","_ssrRenderAttr","_ssrLooseEqual"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"globalconfig-VTDKVQk0.js","sources":["../../../../../../../app/pages/globalconfig.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate","_ssrRenderAttr","_ssrLooseEqual"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-VTDKVQk0.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-VTDKVQk0.js.map.json new file mode 100644 index 00000000..a4499876 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/globalconfig-VTDKVQk0.js.map.json @@ -0,0 +1 @@ +{"file":"globalconfig-VTDKVQk0.js","mappings":"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","names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate","_ssrRenderAttr","_ssrLooseEqual"],"sources":["../../../../../../../app/pages/globalconfig.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-DQ1sfbFW.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-CilMQOs1.js similarity index 97% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-DQ1sfbFW.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-CilMQOs1.js index 103addbb..8df7b0cd 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-DQ1sfbFW.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-CilMQOs1.js @@ -1,7 +1,7 @@ import { defineComponent, reactive, ref, mergeProps, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrRenderStyle, ssrInterpolate, ssrRenderAttr, ssrRenderClass } from "vue/server-renderer"; import { u as useAuthStore } from "./auth-QFkCoU1C.js"; -import { a as useRouter, _ as _export_sfc } from "../server.mjs"; +import { b as useRouter, _ as _export_sfc } from "../server.mjs"; import "pinia"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; import "#internal/nuxt/paths"; @@ -44,4 +44,4 @@ const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3a3b export { index as default }; -//# sourceMappingURL=index-DQ1sfbFW.js.map +//# sourceMappingURL=index-CilMQOs1.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-DQ1sfbFW.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-CilMQOs1.js.map similarity index 98% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-DQ1sfbFW.js.map rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-CilMQOs1.js.map index 732d15e9..cad6b5d1 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-DQ1sfbFW.js.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-CilMQOs1.js.map @@ -1 +1 @@ -{"version":3,"file":"index-DQ1sfbFW.js","sources":["../../../../../../../app/pages/index.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrInterpolate","_ssrRenderAttr","_ssrRenderClass"],"mappings":";;;;;;;;;;;;;;;;;;;AA6Da,iBAAA;AACE,cAAA;AAEf,UAAM,OAAO,SAAS,EAAE,SAAS,IAAI,UAAU,IAAI;AACnD,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,YAAY,IAAI,OAAO;;AAlEtB,YAAA,OAAAA,eAAAC,WAAA,EAAA,OAAM,iDAAA,GAAgD,MAAA,CAAA,CAAA,odAAAC,eAQjD,EAAA,aAAA,QAAA,eAAA,OAAA,SAAA,WAAA,UAAA,UAAA,CAAuE,CAAA,qBAAAC,eAAI,UAAA,KAAS,CAAA,kBAAAD,eACrF,EAAA,aAAA,QAAA,SAAA,WAAA,UAAA,YAAuD,CAAA,mCAAA;AAGjD,UAAA,MAAA,OAAK;0FACT,EAAA,SAAA,QAAA,UAAA,QAAA,eAAA,IAAA,CAA6C,CAAA,0PAAAC,eAGzC,MAAA,KAAK,CAAA,eAAA;AAAA;;;AAIT,YAAA,qCAAAD,eAAA,EAAA,iBAAA,QAA2B,CAAA,gFAGnBE,cAAA,SAAA,KAAK,OAAO,CAAA,8HAAAF,eAQpB,EAAA,iBAAA,OAAA,CAA2B,iFAGnBE,cAAA,SAAA,KAAK,QAAQ,CAAA,wJAAAC,eAAA,CAAA,EAAA,SAQwB,QAAA,MAAA,GAAO,WAAA,CAAA,qCACpD,QAAA,QAAO,WAAA,KAAA,CAAA,6BAAAH,eAIX,EAAA,cAAA,UAAA,aAAA,QAAA,SAAA,WAAA,cAAA,QAA0E,CAAA,mEAAA;AAAA;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"index-CilMQOs1.js","sources":["../../../../../../../app/pages/index.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrInterpolate","_ssrRenderAttr","_ssrRenderClass"],"mappings":";;;;;;;;;;;;;;;;;;;AA6Da,iBAAA;AACE,cAAA;AAEf,UAAM,OAAO,SAAS,EAAE,SAAS,IAAI,UAAU,IAAI;AACnD,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,YAAY,IAAI,OAAO;;AAlEtB,YAAA,OAAAA,eAAAC,WAAA,EAAA,OAAM,iDAAA,GAAgD,MAAA,CAAA,CAAA,odAAAC,eAQjD,EAAA,aAAA,QAAA,eAAA,OAAA,SAAA,WAAA,UAAA,UAAA,CAAuE,CAAA,qBAAAC,eAAI,UAAA,KAAS,CAAA,kBAAAD,eACrF,EAAA,aAAA,QAAA,SAAA,WAAA,UAAA,YAAuD,CAAA,mCAAA;AAGjD,UAAA,MAAA,OAAK;0FACT,EAAA,SAAA,QAAA,UAAA,QAAA,eAAA,IAAA,CAA6C,CAAA,0PAAAC,eAGzC,MAAA,KAAK,CAAA,eAAA;AAAA;;;AAIT,YAAA,qCAAAD,eAAA,EAAA,iBAAA,QAA2B,CAAA,gFAGnBE,cAAA,SAAA,KAAK,OAAO,CAAA,8HAAAF,eAQpB,EAAA,iBAAA,OAAA,CAA2B,iFAGnBE,cAAA,SAAA,KAAK,QAAQ,CAAA,wJAAAC,eAAA,CAAA,EAAA,SAQwB,QAAA,MAAA,GAAO,WAAA,CAAA,qCACpD,QAAA,QAAO,WAAA,KAAA,CAAA,6BAAAH,eAIX,EAAA,cAAA,UAAA,aAAA,QAAA,SAAA,WAAA,cAAA,QAA0E,CAAA,mEAAA;AAAA;;;;;;;;;;"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-DQ1sfbFW.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-CilMQOs1.js.map.json similarity index 98% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-DQ1sfbFW.js.map.json rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-CilMQOs1.js.map.json index 91711d16..38bf6a79 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-DQ1sfbFW.js.map.json +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-CilMQOs1.js.map.json @@ -1 +1 @@ -{"file":"index-DQ1sfbFW.js","mappings":";;;;;;;;;;;;;;;;;;;AA6Da,iBAAA;AACE,cAAA;AAEf,UAAM,OAAO,SAAS,EAAE,SAAS,IAAI,UAAU,IAAI;AACnD,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,YAAY,IAAI,OAAO;;AAlEtB,YAAA,OAAAA,eAAAC,WAAA,EAAA,OAAM,iDAAA,GAAgD,MAAA,CAAA,CAAA,odAAAC,eAQjD,EAAA,aAAA,QAAA,eAAA,OAAA,SAAA,WAAA,UAAA,UAAA,CAAuE,CAAA,qBAAAC,eAAI,UAAA,KAAS,CAAA,kBAAAD,eACrF,EAAA,aAAA,QAAA,SAAA,WAAA,UAAA,YAAuD,CAAA,mCAAA;AAGjD,UAAA,MAAA,OAAK;0FACT,EAAA,SAAA,QAAA,UAAA,QAAA,eAAA,IAAA,CAA6C,CAAA,0PAAAC,eAGzC,MAAA,KAAK,CAAA,eAAA;AAAA;;;AAIT,YAAA,qCAAAD,eAAA,EAAA,iBAAA,QAA2B,CAAA,gFAGnBE,cAAA,SAAA,KAAK,OAAO,CAAA,8HAAAF,eAQpB,EAAA,iBAAA,OAAA,CAA2B,iFAGnBE,cAAA,SAAA,KAAK,QAAQ,CAAA,wJAAAC,eAAA,CAAA,EAAA,SAQwB,QAAA,MAAA,GAAO,WAAA,CAAA,qCACpD,QAAA,QAAO,WAAA,KAAA,CAAA,6BAAAH,eAIX,EAAA,cAAA,UAAA,aAAA,QAAA,SAAA,WAAA,cAAA,QAA0E,CAAA,mEAAA;AAAA;;;;;;;;;;","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrInterpolate","_ssrRenderAttr","_ssrRenderClass"],"sources":["../../../../../../../app/pages/index.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file +{"file":"index-CilMQOs1.js","mappings":";;;;;;;;;;;;;;;;;;;AA6Da,iBAAA;AACE,cAAA;AAEf,UAAM,OAAO,SAAS,EAAE,SAAS,IAAI,UAAU,IAAI;AACnD,UAAM,UAAU,IAAI,KAAK;AACzB,UAAM,QAAQ,IAAI,EAAE;AACpB,UAAM,YAAY,IAAI,OAAO;;AAlEtB,YAAA,OAAAA,eAAAC,WAAA,EAAA,OAAM,iDAAA,GAAgD,MAAA,CAAA,CAAA,odAAAC,eAQjD,EAAA,aAAA,QAAA,eAAA,OAAA,SAAA,WAAA,UAAA,UAAA,CAAuE,CAAA,qBAAAC,eAAI,UAAA,KAAS,CAAA,kBAAAD,eACrF,EAAA,aAAA,QAAA,SAAA,WAAA,UAAA,YAAuD,CAAA,mCAAA;AAGjD,UAAA,MAAA,OAAK;0FACT,EAAA,SAAA,QAAA,UAAA,QAAA,eAAA,IAAA,CAA6C,CAAA,0PAAAC,eAGzC,MAAA,KAAK,CAAA,eAAA;AAAA;;;AAIT,YAAA,qCAAAD,eAAA,EAAA,iBAAA,QAA2B,CAAA,gFAGnBE,cAAA,SAAA,KAAK,OAAO,CAAA,8HAAAF,eAQpB,EAAA,iBAAA,OAAA,CAA2B,iFAGnBE,cAAA,SAAA,KAAK,QAAQ,CAAA,wJAAAC,eAAA,CAAA,EAAA,SAQwB,QAAA,MAAA,GAAO,WAAA,CAAA,qCACpD,QAAA,QAAO,WAAA,KAAA,CAAA,6BAAAH,eAIX,EAAA,cAAA,UAAA,aAAA,QAAA,SAAA,WAAA,cAAA,QAA0E,CAAA,mEAAA;AAAA;;;;;;;;;;","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrInterpolate","_ssrRenderAttr","_ssrRenderClass"],"sources":["../../../../../../../app/pages/index.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-ctvtKFMJ.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-CBH98Fue.js similarity index 97% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-ctvtKFMJ.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-CBH98Fue.js index 249b36ce..c294a039 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-ctvtKFMJ.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-CBH98Fue.js @@ -1,10 +1,12 @@ import { defineComponent, ref, reactive, computed, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrRenderStyle, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrInterpolate, ssrRenderClass } from "vue/server-renderer"; -import { u as useApi } from "./useApi-B7CB0Cnn.js"; -import { u as useToast } from "./useToast-BwtTR9dH.js"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; import "../server.mjs"; import "./auth-QFkCoU1C.js"; import "pinia"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; import "#internal/nuxt/paths"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; @@ -116,4 +118,4 @@ _sfc_main.setup = (props, ctx) => { export { _sfc_main as default }; -//# sourceMappingURL=mcpconfig-ctvtKFMJ.js.map +//# sourceMappingURL=mcpconfig-CBH98Fue.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-ctvtKFMJ.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-CBH98Fue.js.map similarity index 77% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-ctvtKFMJ.js.map rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-CBH98Fue.js.map index 82e22ba6..2ef885c6 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-ctvtKFMJ.js.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-CBH98Fue.js.map @@ -1 +1 @@ -{"version":3,"file":"mcpconfig-ctvtKFMJ.js","sources":["../../../../../../../app/pages/mcpconfig.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderStyle","_ssrRenderClass"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"mcpconfig-CBH98Fue.js","sources":["../../../../../../../app/pages/mcpconfig.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderStyle","_ssrRenderClass"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-CBH98Fue.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-CBH98Fue.js.map.json new file mode 100644 index 00000000..2598675a --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-CBH98Fue.js.map.json @@ -0,0 +1 @@ +{"file":"mcpconfig-CBH98Fue.js","mappings":"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","names":["_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderStyle","_ssrRenderClass"],"sources":["../../../../../../../app/pages/mcpconfig.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-ctvtKFMJ.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-ctvtKFMJ.js.map.json deleted file mode 100644 index 2f6d66f5..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/mcpconfig-ctvtKFMJ.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"mcpconfig-ctvtKFMJ.js","mappings":"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","names":["_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderStyle","_ssrRenderClass"],"sources":["../../../../../../../app/pages/mcpconfig.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-BLKHVh2U.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-BLKHVh2U.js.map.json deleted file mode 100644 index f1c4ac6c..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-BLKHVh2U.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"meettemplates-BLKHVh2U.js","mappings":"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","names":["_ssrLooseEqual","_ssrRenderList","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate"],"sources":["../../../../../../../app/pages/meettemplates.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-BLKHVh2U.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-JHBZiczV.js similarity index 98% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-BLKHVh2U.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-JHBZiczV.js index 83e1aae7..77dd5b3d 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-BLKHVh2U.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-JHBZiczV.js @@ -1,10 +1,12 @@ import { defineComponent, ref, reactive, computed, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrRenderStyle, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrRenderAttr, ssrInterpolate } from "vue/server-renderer"; -import { u as useApi } from "./useApi-B7CB0Cnn.js"; -import { u as useToast } from "./useToast-BwtTR9dH.js"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; import "../server.mjs"; import "./auth-QFkCoU1C.js"; import "pinia"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; import "#internal/nuxt/paths"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; @@ -128,4 +130,4 @@ _sfc_main.setup = (props, ctx) => { export { _sfc_main as default }; -//# sourceMappingURL=meettemplates-BLKHVh2U.js.map +//# sourceMappingURL=meettemplates-JHBZiczV.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-BLKHVh2U.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-JHBZiczV.js.map similarity index 78% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-BLKHVh2U.js.map rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-JHBZiczV.js.map index 52c30744..b3d9e95a 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-BLKHVh2U.js.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-JHBZiczV.js.map @@ -1 +1 @@ -{"version":3,"file":"meettemplates-BLKHVh2U.js","sources":["../../../../../../../app/pages/meettemplates.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrLooseEqual","_ssrRenderList","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"meettemplates-JHBZiczV.js","sources":["../../../../../../../app/pages/meettemplates.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrLooseEqual","_ssrRenderList","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-JHBZiczV.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-JHBZiczV.js.map.json new file mode 100644 index 00000000..625efd8e --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/meettemplates-JHBZiczV.js.map.json @@ -0,0 +1 @@ +{"file":"meettemplates-JHBZiczV.js","mappings":"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","names":["_ssrLooseEqual","_ssrRenderList","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate"],"sources":["../../../../../../../app/pages/meettemplates.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-BpF9-8DI.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-CQqhT_O_.js similarity index 98% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-BpF9-8DI.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-CQqhT_O_.js index 2be3864b..c41b9364 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-BpF9-8DI.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-CQqhT_O_.js @@ -1,6 +1,6 @@ import { defineComponent, shallowRef, h, resolveComponent, computed, unref } from "vue"; import { parseQuery, hasProtocol, joinURL, isScriptProtocol, withTrailingSlash, withoutTrailingSlash } from "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ufo@1.6.4/node_modules/ufo/dist/index.mjs"; -import { a as useRouter, e as encodeRoutePath, r as resolveRouteObject, n as navigateTo, u as useNuxtApp, c as useRuntimeConfig, d as nuxtLinkDefaults } from "../server.mjs"; +import { b as useRouter, e as encodeRoutePath, r as resolveRouteObject, n as navigateTo, u as useNuxtApp, c as useRuntimeConfig, d as nuxtLinkDefaults } from "../server.mjs"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/defu@6.1.7/node_modules/defu/dist/defu.mjs"; const firstNonUndefined = (...args) => args.find((arg) => arg !== void 0); function sanitizeExternalHref(value) { @@ -304,4 +304,4 @@ function applyTrailingSlashBehavior(to, trailingSlash) { export { __nuxt_component_0 as _ }; -//# sourceMappingURL=nuxt-link-BpF9-8DI.js.map +//# sourceMappingURL=nuxt-link-CQqhT_O_.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-BpF9-8DI.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-CQqhT_O_.js.map similarity index 99% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-BpF9-8DI.js.map rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-CQqhT_O_.js.map index a99a802e..8800a048 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-BpF9-8DI.js.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-CQqhT_O_.js.map @@ -1 +1 @@ -{"version":3,"file":"nuxt-link-BpF9-8DI.js","sources":["../../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-link.js"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent, shallowRef, unref } from \"vue\";\nimport { hasProtocol, isScriptProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { encodeRoutePath, navigateTo, resolveRouteObject, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nimport { hashMode } from \"#build/router.options.mjs\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nfunction sanitizeExternalHref(value) {\n let candidate = value.replace(/[\\u0000-\\u001F\\s]+/g, \"\");\n while (candidate.toLowerCase().startsWith(\"view-source:\")) {\n candidate = candidate.slice(\"view-source:\".length);\n }\n const colon = candidate.indexOf(\":\");\n if (colon > 0 && isScriptProtocol(candidate.slice(0, colon + 1))) {\n return null;\n }\n return value;\n}\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n const componentName = options.componentName || \"NuxtLink\";\n function checkPropConflicts(props, main, sub) {\n if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n }\n }\n function isHashLinkWithoutHashMode(link) {\n return !hashMode && typeof link === \"string\" && link.startsWith(\"#\");\n }\n function resolveTrailingSlashBehavior(to, resolve, trailingSlash) {\n const effectiveTrailingSlash = trailingSlash ?? options.trailingSlash;\n if (!to || effectiveTrailingSlash !== \"append\" && effectiveTrailingSlash !== \"remove\") {\n return to;\n }\n if (typeof to === \"string\") {\n return applyTrailingSlashBehavior(to, effectiveTrailingSlash);\n }\n const path = \"path\" in to && to.path !== void 0 ? to.path : resolve(to).path;\n const resolvedPath = {\n ...to,\n name: void 0,\n // named routes would otherwise always override trailing slash behavior\n path: applyTrailingSlashBehavior(path, effectiveTrailingSlash)\n };\n return resolvedPath;\n }\n function useNuxtLink(props) {\n const router = useRouter();\n const config = useRuntimeConfig();\n const hasTarget = computed(() => !!unref(props.target) && unref(props.target) !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = unref(props.to) || unref(props.href) || \"\";\n return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n });\n const builtinRouterLink = resolveComponent(\"RouterLink\");\n const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n const isExternal = computed(() => {\n if (unref(props.external)) {\n return true;\n }\n const path = unref(props.to) || unref(props.href) || \"\";\n if (typeof path === \"object\") {\n return false;\n }\n return path === \"\" || isAbsoluteUrl.value;\n });\n const to = computed(() => {\n checkPropConflicts(props, \"to\", \"href\");\n const path = unref(props.to) || unref(props.href) || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve, unref(props.trailingSlash));\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to, viewTransition: unref(props.viewTransition) });\n const href = computed(() => {\n const effectiveTrailingSlash = unref(props.trailingSlash) ?? options.trailingSlash;\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n const raw = to.value;\n return typeof raw === \"string\" ? sanitizeExternalHref(raw) : raw;\n }\n if (isExternal.value) {\n const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n const safe = typeof href2 === \"string\" ? sanitizeExternalHref(href2) : href2;\n return safe === null ? null : applyTrailingSlashBehavior(safe, effectiveTrailingSlash);\n }\n if (typeof to.value === \"object\") {\n return router.resolve(to.value)?.href ?? null;\n }\n return applyTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), effectiveTrailingSlash);\n });\n return {\n to,\n hasTarget,\n isAbsoluteUrl,\n isExternal,\n //\n href,\n isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n route: link?.route ?? computed(() => router.resolve(to.value)),\n async navigate(_e) {\n if (href.value === null) {\n if (import.meta.dev) {\n console.warn(`[${componentName}] refused to navigate to a URL with a script-capable protocol.`);\n }\n return;\n }\n await navigateTo(href.value, { replace: unref(props.replace), external: isExternal.value || hasTarget.value });\n }\n };\n }\n return defineComponent({\n name: componentName,\n props: {\n // Routing\n to: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n href: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n // Attributes\n target: {\n type: String,\n default: void 0,\n required: false\n },\n rel: {\n type: String,\n default: void 0,\n required: false\n },\n noRel: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Prefetching\n prefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n prefetchOn: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n noPrefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Styling\n activeClass: {\n type: String,\n default: void 0,\n required: false\n },\n exactActiveClass: {\n type: String,\n default: void 0,\n required: false\n },\n prefetchedClass: {\n type: String,\n default: void 0,\n required: false\n },\n // Vue Router's `` additional props\n replace: {\n type: Boolean,\n default: void 0,\n required: false\n },\n ariaCurrentValue: {\n type: String,\n default: void 0,\n required: false\n },\n // Edge cases handling\n external: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Slot API\n custom: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Behavior\n trailingSlash: {\n type: String,\n default: void 0,\n required: false\n }\n },\n useLink: useNuxtLink,\n setup(props, { slots }) {\n const router = useRouter();\n const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\n const prefetched = shallowRef(false);\n const el = import.meta.server ? void 0 : ref(null);\n const elRef = import.meta.server ? void 0 : (ref2) => {\n el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n };\n function shouldPrefetch(mode) {\n if (import.meta.server) {\n return;\n }\n return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n }\n async function prefetch(nuxtApp = useNuxtApp()) {\n if (import.meta.server) {\n return;\n }\n if (prefetched.value) {\n return;\n }\n if (href.value === null) {\n return;\n }\n prefetched.value = true;\n const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n await Promise.all([\n nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath)?.catch(() => {\n }),\n !import.meta.dev && !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n })\n ]);\n }\n if (import.meta.client) {\n checkPropConflicts(props, \"noPrefetch\", \"prefetch\");\n if (shouldPrefetch(\"visibility\")) {\n const nuxtApp = useNuxtApp();\n let idleId;\n let unobserve = null;\n onMounted(() => {\n const observer = useObserver();\n onNuxtReady(() => {\n idleId = requestIdleCallback(() => {\n if (el?.value?.tagName) {\n unobserve = observer.observe(el.value, async () => {\n unobserve?.();\n unobserve = null;\n await prefetch(nuxtApp);\n });\n }\n });\n });\n });\n onBeforeUnmount(() => {\n if (idleId) {\n cancelIdleCallback(idleId);\n }\n unobserve?.();\n unobserve = null;\n });\n }\n }\n if (import.meta.dev && import.meta.server && !props.custom) {\n const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n if (isNuxtLinkChild) {\n console.log(\"[nuxt] [NuxtLink] You can't nest one inside another . This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n } else {\n provide(NuxtLinkDevKeySymbol, true);\n }\n }\n return () => {\n if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {\n const routerLinkProps = {\n ref: elRef,\n to: to.value,\n activeClass: props.activeClass || options.activeClass,\n exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n replace: props.replace,\n ariaCurrentValue: props.ariaCurrentValue,\n custom: props.custom\n };\n if (!props.custom) {\n if (import.meta.client) {\n if (shouldPrefetch(\"interaction\")) {\n routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n routerLinkProps.onFocus = prefetch.bind(null, void 0);\n }\n if (prefetched.value) {\n routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n }\n }\n routerLinkProps.rel = props.rel || void 0;\n }\n return h(\n resolveComponent(\"RouterLink\"),\n routerLinkProps,\n slots.default\n );\n }\n const target = props.target || null;\n checkPropConflicts(props, \"noRel\", \"rel\");\n const rel = firstNonUndefined(\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n props.noRel ? \"\" : props.rel,\n options.externalRelAttribute,\n /*\n * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n */\n isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n ) || null;\n if (props.custom) {\n if (!slots.default) {\n return null;\n }\n return slots.default({\n href: href.value,\n navigate,\n prefetch,\n get route() {\n if (!href.value) {\n return void 0;\n }\n const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n return {\n path: url.pathname,\n fullPath: url.pathname,\n get query() {\n return parseQuery(url.search);\n },\n hash: url.hash,\n params: {},\n name: void 0,\n matched: [],\n redirectedFrom: void 0,\n meta: {},\n href: href.value\n };\n },\n rel,\n target,\n isExternal: isExternal.value || hasTarget.value,\n isActive: false,\n isExactActive: false\n });\n }\n return h(\"a\", {\n ref: el,\n href: href.value || null,\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`href=\"\"`)\n rel,\n target,\n onClick: async (event) => {\n if (isExternal.value || hasTarget.value) {\n return;\n }\n event.preventDefault();\n try {\n const encodedHref = encodeRoutePath(href.value ?? \"\");\n return await (props.replace ? router.replace(encodedHref) : router.push(encodedHref));\n } finally {\n if (import.meta.client && isHashLinkWithoutHashMode(to.value)) {\n const rawHash = to.value.slice(1);\n let hash = rawHash;\n try {\n hash = decodeURIComponent(rawHash);\n } catch {\n }\n const el2 = document.getElementById(hash);\n el2?.focus();\n }\n }\n }\n }, slots.default?.());\n };\n }\n });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n if (hasProtocolDifferentFromHttp) {\n return to;\n }\n return normalizeFn(to, true);\n}\nfunction useObserver() {\n if (import.meta.server) {\n return;\n }\n const nuxtApp = useNuxtApp();\n if (nuxtApp._observer) {\n return nuxtApp._observer;\n }\n let observer = null;\n const callbacks = /* @__PURE__ */ new Map();\n const observe = (element, callback) => {\n observer ||= new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback2 = callbacks.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (isVisible && callback2) {\n callback2();\n }\n }\n });\n callbacks.set(element, callback);\n observer.observe(element);\n return () => {\n callbacks.delete(element);\n observer?.unobserve(element);\n if (callbacks.size === 0) {\n observer?.disconnect();\n observer = null;\n }\n };\n };\n const _observer = nuxtApp._observer = {\n observe\n };\n return _observer;\n}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n if (import.meta.server) {\n return;\n }\n const cn = navigator.connection;\n if (cn && (cn.saveData || IS_2G_RE.test(cn.effectiveType))) {\n return true;\n }\n return false;\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"nuxt-link-CQqhT_O_.js","sources":["../../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-link.js"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent, shallowRef, unref } from \"vue\";\nimport { hasProtocol, isScriptProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { encodeRoutePath, navigateTo, resolveRouteObject, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nimport { hashMode } from \"#build/router.options.mjs\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nfunction sanitizeExternalHref(value) {\n let candidate = value.replace(/[\\u0000-\\u001F\\s]+/g, \"\");\n while (candidate.toLowerCase().startsWith(\"view-source:\")) {\n candidate = candidate.slice(\"view-source:\".length);\n }\n const colon = candidate.indexOf(\":\");\n if (colon > 0 && isScriptProtocol(candidate.slice(0, colon + 1))) {\n return null;\n }\n return value;\n}\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n const componentName = options.componentName || \"NuxtLink\";\n function checkPropConflicts(props, main, sub) {\n if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n }\n }\n function isHashLinkWithoutHashMode(link) {\n return !hashMode && typeof link === \"string\" && link.startsWith(\"#\");\n }\n function resolveTrailingSlashBehavior(to, resolve, trailingSlash) {\n const effectiveTrailingSlash = trailingSlash ?? options.trailingSlash;\n if (!to || effectiveTrailingSlash !== \"append\" && effectiveTrailingSlash !== \"remove\") {\n return to;\n }\n if (typeof to === \"string\") {\n return applyTrailingSlashBehavior(to, effectiveTrailingSlash);\n }\n const path = \"path\" in to && to.path !== void 0 ? to.path : resolve(to).path;\n const resolvedPath = {\n ...to,\n name: void 0,\n // named routes would otherwise always override trailing slash behavior\n path: applyTrailingSlashBehavior(path, effectiveTrailingSlash)\n };\n return resolvedPath;\n }\n function useNuxtLink(props) {\n const router = useRouter();\n const config = useRuntimeConfig();\n const hasTarget = computed(() => !!unref(props.target) && unref(props.target) !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = unref(props.to) || unref(props.href) || \"\";\n return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n });\n const builtinRouterLink = resolveComponent(\"RouterLink\");\n const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n const isExternal = computed(() => {\n if (unref(props.external)) {\n return true;\n }\n const path = unref(props.to) || unref(props.href) || \"\";\n if (typeof path === \"object\") {\n return false;\n }\n return path === \"\" || isAbsoluteUrl.value;\n });\n const to = computed(() => {\n checkPropConflicts(props, \"to\", \"href\");\n const path = unref(props.to) || unref(props.href) || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve, unref(props.trailingSlash));\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to, viewTransition: unref(props.viewTransition) });\n const href = computed(() => {\n const effectiveTrailingSlash = unref(props.trailingSlash) ?? options.trailingSlash;\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n const raw = to.value;\n return typeof raw === \"string\" ? sanitizeExternalHref(raw) : raw;\n }\n if (isExternal.value) {\n const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n const safe = typeof href2 === \"string\" ? sanitizeExternalHref(href2) : href2;\n return safe === null ? null : applyTrailingSlashBehavior(safe, effectiveTrailingSlash);\n }\n if (typeof to.value === \"object\") {\n return router.resolve(to.value)?.href ?? null;\n }\n return applyTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), effectiveTrailingSlash);\n });\n return {\n to,\n hasTarget,\n isAbsoluteUrl,\n isExternal,\n //\n href,\n isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n route: link?.route ?? computed(() => router.resolve(to.value)),\n async navigate(_e) {\n if (href.value === null) {\n if (import.meta.dev) {\n console.warn(`[${componentName}] refused to navigate to a URL with a script-capable protocol.`);\n }\n return;\n }\n await navigateTo(href.value, { replace: unref(props.replace), external: isExternal.value || hasTarget.value });\n }\n };\n }\n return defineComponent({\n name: componentName,\n props: {\n // Routing\n to: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n href: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n // Attributes\n target: {\n type: String,\n default: void 0,\n required: false\n },\n rel: {\n type: String,\n default: void 0,\n required: false\n },\n noRel: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Prefetching\n prefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n prefetchOn: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n noPrefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Styling\n activeClass: {\n type: String,\n default: void 0,\n required: false\n },\n exactActiveClass: {\n type: String,\n default: void 0,\n required: false\n },\n prefetchedClass: {\n type: String,\n default: void 0,\n required: false\n },\n // Vue Router's `` additional props\n replace: {\n type: Boolean,\n default: void 0,\n required: false\n },\n ariaCurrentValue: {\n type: String,\n default: void 0,\n required: false\n },\n // Edge cases handling\n external: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Slot API\n custom: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Behavior\n trailingSlash: {\n type: String,\n default: void 0,\n required: false\n }\n },\n useLink: useNuxtLink,\n setup(props, { slots }) {\n const router = useRouter();\n const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\n const prefetched = shallowRef(false);\n const el = import.meta.server ? void 0 : ref(null);\n const elRef = import.meta.server ? void 0 : (ref2) => {\n el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n };\n function shouldPrefetch(mode) {\n if (import.meta.server) {\n return;\n }\n return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n }\n async function prefetch(nuxtApp = useNuxtApp()) {\n if (import.meta.server) {\n return;\n }\n if (prefetched.value) {\n return;\n }\n if (href.value === null) {\n return;\n }\n prefetched.value = true;\n const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n await Promise.all([\n nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath)?.catch(() => {\n }),\n !import.meta.dev && !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n })\n ]);\n }\n if (import.meta.client) {\n checkPropConflicts(props, \"noPrefetch\", \"prefetch\");\n if (shouldPrefetch(\"visibility\")) {\n const nuxtApp = useNuxtApp();\n let idleId;\n let unobserve = null;\n onMounted(() => {\n const observer = useObserver();\n onNuxtReady(() => {\n idleId = requestIdleCallback(() => {\n if (el?.value?.tagName) {\n unobserve = observer.observe(el.value, async () => {\n unobserve?.();\n unobserve = null;\n await prefetch(nuxtApp);\n });\n }\n });\n });\n });\n onBeforeUnmount(() => {\n if (idleId) {\n cancelIdleCallback(idleId);\n }\n unobserve?.();\n unobserve = null;\n });\n }\n }\n if (import.meta.dev && import.meta.server && !props.custom) {\n const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n if (isNuxtLinkChild) {\n console.log(\"[nuxt] [NuxtLink] You can't nest one inside another . This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n } else {\n provide(NuxtLinkDevKeySymbol, true);\n }\n }\n return () => {\n if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {\n const routerLinkProps = {\n ref: elRef,\n to: to.value,\n activeClass: props.activeClass || options.activeClass,\n exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n replace: props.replace,\n ariaCurrentValue: props.ariaCurrentValue,\n custom: props.custom\n };\n if (!props.custom) {\n if (import.meta.client) {\n if (shouldPrefetch(\"interaction\")) {\n routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n routerLinkProps.onFocus = prefetch.bind(null, void 0);\n }\n if (prefetched.value) {\n routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n }\n }\n routerLinkProps.rel = props.rel || void 0;\n }\n return h(\n resolveComponent(\"RouterLink\"),\n routerLinkProps,\n slots.default\n );\n }\n const target = props.target || null;\n checkPropConflicts(props, \"noRel\", \"rel\");\n const rel = firstNonUndefined(\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n props.noRel ? \"\" : props.rel,\n options.externalRelAttribute,\n /*\n * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n */\n isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n ) || null;\n if (props.custom) {\n if (!slots.default) {\n return null;\n }\n return slots.default({\n href: href.value,\n navigate,\n prefetch,\n get route() {\n if (!href.value) {\n return void 0;\n }\n const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n return {\n path: url.pathname,\n fullPath: url.pathname,\n get query() {\n return parseQuery(url.search);\n },\n hash: url.hash,\n params: {},\n name: void 0,\n matched: [],\n redirectedFrom: void 0,\n meta: {},\n href: href.value\n };\n },\n rel,\n target,\n isExternal: isExternal.value || hasTarget.value,\n isActive: false,\n isExactActive: false\n });\n }\n return h(\"a\", {\n ref: el,\n href: href.value || null,\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`href=\"\"`)\n rel,\n target,\n onClick: async (event) => {\n if (isExternal.value || hasTarget.value) {\n return;\n }\n event.preventDefault();\n try {\n const encodedHref = encodeRoutePath(href.value ?? \"\");\n return await (props.replace ? router.replace(encodedHref) : router.push(encodedHref));\n } finally {\n if (import.meta.client && isHashLinkWithoutHashMode(to.value)) {\n const rawHash = to.value.slice(1);\n let hash = rawHash;\n try {\n hash = decodeURIComponent(rawHash);\n } catch {\n }\n const el2 = document.getElementById(hash);\n el2?.focus();\n }\n }\n }\n }, slots.default?.());\n };\n }\n });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n if (hasProtocolDifferentFromHttp) {\n return to;\n }\n return normalizeFn(to, true);\n}\nfunction useObserver() {\n if (import.meta.server) {\n return;\n }\n const nuxtApp = useNuxtApp();\n if (nuxtApp._observer) {\n return nuxtApp._observer;\n }\n let observer = null;\n const callbacks = /* @__PURE__ */ new Map();\n const observe = (element, callback) => {\n observer ||= new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback2 = callbacks.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (isVisible && callback2) {\n callback2();\n }\n }\n });\n callbacks.set(element, callback);\n observer.observe(element);\n return () => {\n callbacks.delete(element);\n observer?.unobserve(element);\n if (callbacks.size === 0) {\n observer?.disconnect();\n observer = null;\n }\n };\n };\n const _observer = nuxtApp._observer = {\n observe\n };\n return _observer;\n}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n if (import.meta.server) {\n return;\n }\n const cn = navigator.connection;\n if (cn && (cn.saveData || IS_2G_RE.test(cn.effectiveType))) {\n return true;\n }\n return false;\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-BpF9-8DI.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-CQqhT_O_.js.map.json similarity index 99% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-BpF9-8DI.js.map.json rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-CQqhT_O_.js.map.json index acc65403..f9a6ab32 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-BpF9-8DI.js.map.json +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/nuxt-link-CQqhT_O_.js.map.json @@ -1 +1 @@ -{"file":"nuxt-link-BpF9-8DI.js","mappings":";;;;AASA,MAAM,oBAAoB,IAAI,SAAS,KAAK,KAAK,CAAC,QAAQ,QAAQ,MAAM;AACxE,SAAS,qBAAqB,OAAO;AACnC,MAAI,YAAY,MAAM,QAAQ,uBAAuB,EAAE;AACvD,SAAO,UAAU,YAAA,EAAc,WAAW,cAAc,GAAG;AACzD,gBAAY,UAAU,MAAM,eAAe,MAAM;AAAA,EACnD;AACA,QAAM,QAAQ,UAAU,QAAQ,GAAG;AACnC,MAAI,QAAQ,KAAK,iBAAiB,UAAU,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG;AAChE,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAAA;AAGO,SAAS,eAAe,SAAS;AACtC,QAAM,gBAAgB,QAAQ,iBAAiB;AAM/C,WAAS,0BAA0B,MAAM;AACvC,WAAoB,OAAO,SAAS,YAAY,KAAK,WAAW,GAAG;AAAA,EACrE;AACA,WAAS,6BAA6B,IAAI,SAAS,eAAe;AAChE,UAAM,yBAAyB,iBAAiB,QAAQ;AACxD,QAAI,CAAC,MAAM,2BAA2B,YAAY,2BAA2B,UAAU;AACrF,aAAO;AAAA,IACT;AACA,QAAI,OAAO,OAAO,UAAU;AAC1B,aAAO,2BAA2B,IAAI,sBAAsB;AAAA,IAC9D;AACA,UAAM,OAAO,UAAU,MAAM,GAAG,SAAS,SAAS,GAAG,OAAO,QAAQ,EAAE,EAAE;AACxE,UAAM,eAAe;AAAA,MACnB,GAAG;AAAA,MACH,MAAM;AAAA;AAAA,MAEN,MAAM,2BAA2B,MAAM,sBAAsB;AAAA,IAAA;AAE/D,WAAO;AAAA,EACT;AACA,WAAS,YAAY,OAAO;AAC1B,UAAM,SAAS,UAAA;AACf,UAAM,SAAS,iBAAA;AACf,UAAM,YAAY,SAAS,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,KAAK,MAAM,MAAM,MAAM,MAAM,OAAO;AACzF,UAAM,gBAAgB,SAAS,MAAM;AACnC,YAAM,OAAO,MAAM,MAAM,EAAE,KAAK,MAAM,MAAM,IAAI,KAAK;AACrD,aAAO,OAAO,SAAS,YAAY,YAAY,MAAM,EAAE,gBAAgB,MAAM;AAAA,IAC/E,CAAC;AACD,UAAM,oBAAoB,iBAAiB,YAAY;AACvD,UAAM,iBAAiB,qBAAqB,OAAO,sBAAsB,WAAW,kBAAkB,UAAU;AAChH,UAAM,aAAa,SAAS,MAAM;AAChC,UAAI,MAAM,MAAM,QAAQ,GAAG;AACzB,eAAO;AAAA,MACT;AACA,YAAM,OAAO,MAAM,MAAM,EAAE,KAAK,MAAM,MAAM,IAAI,KAAK;AACrD,UAAI,OAAO,SAAS,UAAU;AAC5B,eAAO;AAAA,MACT;AACA,aAAO,SAAS,MAAM,cAAc;AAAA,IACtC,CAAC;AACD,UAAM,KAAK,SAAS,MAAM;AAExB,YAAM,OAAO,MAAM,MAAM,EAAE,KAAK,MAAM,MAAM,IAAI,KAAK;AACrD,UAAI,WAAW,OAAO;AACpB,eAAO;AAAA,MACT;AACA,aAAO,6BAA6B,MAAM,OAAO,SAAS,MAAM,MAAM,aAAa,CAAC;AAAA,IACtF,CAAC;AACD,UAAM,OAAO,WAAW,QAAQ,SAAS,iBAAiB,EAAE,GAAG,OAAO,IAAI,gBAAgB,MAAM,MAAM,cAAc,GAAG;AACvH,UAAM,OAAO,SAAS,MAAM;AAC1B,YAAM,yBAAyB,MAAM,MAAM,aAAa,KAAK,QAAQ;AACrE,UAAI,CAAC,GAAG,SAAS,cAAc,SAAS,0BAA0B,GAAG,KAAK,GAAG;AAC3E,cAAM,MAAM,GAAG;AACf,eAAO,OAAO,QAAQ,WAAW,qBAAqB,GAAG,IAAI;AAAA,MAC/D;AACA,UAAI,WAAW,OAAO;AACpB,cAAM,OAAO,OAAO,GAAG,UAAU,YAAY,UAAU,GAAG,QAAQ,mBAAmB,GAAG,KAAK,IAAI,GAAG;AACpG,cAAM,QAAQ,OAAO,SAAS,WAAW,OAAO,QAAQ,IAAI,EAAE,OAAO;AACrE,cAAM,OAAO,OAAO,UAAU,WAAW,qBAAqB,KAAK,IAAI;AACvE,eAAO,SAAS,OAAO,OAAO,2BAA2B,MAAM,sBAAsB;AAAA,MACvF;AACA,UAAI,OAAO,GAAG,UAAU,UAAU;AAChC,eAAO,OAAO,QAAQ,GAAG,KAAK,GAAG,QAAQ;AAAA,MAC3C;AACA,aAAO,2BAA2B,QAAQ,OAAO,IAAI,SAAS,GAAG,KAAK,GAAG,sBAAsB;AAAA,IACjG,CAAC;AACD,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;AAAA,MACA,UAAU,MAAM,YAAY,SAAS,MAAM,GAAG,UAAU,OAAO,aAAa,MAAM,IAAI;AAAA,MACtF,eAAe,MAAM,iBAAiB,SAAS,MAAM,GAAG,UAAU,OAAO,aAAa,MAAM,IAAI;AAAA,MAChG,OAAO,MAAM,SAAS,SAAS,MAAM,OAAO,QAAQ,GAAG,KAAK,CAAC;AAAA,MAC7D,MAAM,SAAS,IAAI;AACjB,YAAI,KAAK,UAAU,MAAM;AAIvB;AAAA,QACF;AACA,cAAM,WAAW,KAAK,OAAO,EAAE,SAAS,MAAM,MAAM,OAAO,GAAG,UAAU,WAAW,SAAS,UAAU,OAAO;AAAA,MAC/G;AAAA,IAAA;AAAA,EAEJ;AACA,SAAO,gBAAgB;AAAA,IACrB,MAAM;AAAA,IACN,OAAO;AAAA;AAAA,MAEL,IAAI;AAAA,QACF,MAAM,CAAC,QAAQ,MAAM;AAAA,QACrB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,MAAM;AAAA,QACJ,MAAM,CAAC,QAAQ,MAAM;AAAA,QACrB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,KAAK;AAAA,QACH,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,OAAO;AAAA,QACL,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,UAAU;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,YAAY;AAAA,QACV,MAAM,CAAC,QAAQ,MAAM;AAAA,QACrB,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,YAAY;AAAA,QACV,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,aAAa;AAAA,QACX,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,iBAAiB;AAAA,QACf,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,MAEZ,kBAAkB;AAAA,QAChB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,UAAU;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA;AAAA,MAGZ,eAAe;AAAA,QACb,MAAM;AAAA,QACN,SAAS;AAAA,QACT,UAAU;AAAA,MAAA;AAAA,IACZ;AAAA,IAEF,SAAS;AAAA,IACT,MAAM,OAAO,EAAE,SAAS;AACtB,YAAM,SAAS,UAAA;AACf,YAAM,EAAE,IAAI,MAAM,UAAU,YAAY,WAAW,cAAA,IAAkB,YAAY,KAAK;AACnE,iBAAW,KAAK;AACnC,YAAM,KAA0B;AAChC,YAAM,QAA6B;AASnC,qBAAe,SAAS,UAAU,cAAc;AACtB;AACtB;AAAA,QACF;AAAA,MAgBF;AAsCA,aAAO,MAAM;AACX,YAAI,CAAC,WAAW,SAAS,CAAC,UAAU,SAAS,CAAC,0BAA0B,GAAG,KAAK,GAAG;AACjF,gBAAM,kBAAkB;AAAA,YACtB,KAAK;AAAA,YACL,IAAI,GAAG;AAAA,YACP,aAAa,MAAM,eAAe,QAAQ;AAAA,YAC1C,kBAAkB,MAAM,oBAAoB,QAAQ;AAAA,YACpD,SAAS,MAAM;AAAA,YACf,kBAAkB,MAAM;AAAA,YACxB,QAAQ,MAAM;AAAA,UAAA;AAEhB,cAAI,CAAC,MAAM,QAAQ;AAUjB,4BAAgB,MAAM,MAAM,OAAO;AAAA,UACrC;AACA,iBAAO;AAAA,YACL,iBAAiB,YAAY;AAAA,YAC7B;AAAA,YACA,MAAM;AAAA,UAAA;AAAA,QAEV;AACA,cAAM,SAAS,MAAM,UAAU;AAE/B,cAAM,MAAM;AAAA;AAAA,UAEV,MAAM,QAAQ,KAAK,MAAM;AAAA,UACzB,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA,UAKR,cAAc,SAAS,UAAU,QAAQ,wBAAwB;AAAA,QAAA,KAC9D;AACL,YAAI,MAAM,QAAQ;AAChB,cAAI,CAAC,MAAM,SAAS;AAClB,mBAAO;AAAA,UACT;AACA,iBAAO,MAAM,QAAQ;AAAA,YACnB,MAAM,KAAK;AAAA,YACX;AAAA,YACA;AAAA,YACA,IAAI,QAAQ;AACV,kBAAI,CAAC,KAAK,OAAO;AACf,uBAAO;AAAA,cACT;AACA,oBAAM,MAAM,IAAI,IAAI,KAAK,OAAmD,kBAAkB;AAC9F,qBAAO;AAAA,gBACL,MAAM,IAAI;AAAA,gBACV,UAAU,IAAI;AAAA,gBACd,IAAI,QAAQ;AACV,yBAAO,WAAW,IAAI,MAAM;AAAA,gBAC9B;AAAA,gBACA,MAAM,IAAI;AAAA,gBACV,QAAQ,CAAA;AAAA,gBACR,MAAM;AAAA,gBACN,SAAS,CAAA;AAAA,gBACT,gBAAgB;AAAA,gBAChB,MAAM,CAAA;AAAA,gBACN,MAAM,KAAK;AAAA,cAAA;AAAA,YAEf;AAAA,YACA;AAAA,YACA;AAAA,YACA,YAAY,WAAW,SAAS,UAAU;AAAA,YAC1C,UAAU;AAAA,YACV,eAAe;AAAA,UAAA,CAChB;AAAA,QACH;AACA,eAAO,EAAE,KAAK;AAAA,UACZ,KAAK;AAAA,UACL,MAAM,KAAK,SAAS;AAAA;AAAA,UAEpB;AAAA,UACA;AAAA,UACA,SAAS,OAAO,UAAU;AACxB,gBAAI,WAAW,SAAS,UAAU,OAAO;AACvC;AAAA,YACF;AACA,kBAAM,eAAA;AACN,gBAAI;AACF,oBAAM,cAAc,gBAAgB,KAAK,SAAS,EAAE;AACpD,qBAAO,OAAO,MAAM,UAAU,OAAO,QAAQ,WAAW,IAAI,OAAO,KAAK,WAAW;AAAA,YACrF,UAAA;AAAA,YAWA;AAAA,UACF;AAAA,QAAA,GACC,MAAM,WAAW;AAAA,MACtB;AAAA,IACF;AAAA,EAAA,CACD;AACH;AACA,MAAA,oDAA8C,gBAAgB;AAC9D,SAAS,2BAA2B,IAAI,eAAe;AACrD,QAAM,cAAc,kBAAkB,WAAW,oBAAoB;AACrE,QAAM,+BAA+B,YAAY,EAAE,KAAK,CAAC,GAAG,WAAW,MAAM;AAC7E,MAAI,8BAA8B;AAChC,WAAO;AAAA,EACT;AACA,SAAO,YAAY,IAAI,IAAI;AAC7B;","names":[],"sources":["../../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-link.js"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent, shallowRef, unref } from \"vue\";\nimport { hasProtocol, isScriptProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { encodeRoutePath, navigateTo, resolveRouteObject, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nimport { hashMode } from \"#build/router.options.mjs\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nfunction sanitizeExternalHref(value) {\n let candidate = value.replace(/[\\u0000-\\u001F\\s]+/g, \"\");\n while (candidate.toLowerCase().startsWith(\"view-source:\")) {\n candidate = candidate.slice(\"view-source:\".length);\n }\n const colon = candidate.indexOf(\":\");\n if (colon > 0 && isScriptProtocol(candidate.slice(0, colon + 1))) {\n return null;\n }\n return value;\n}\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n const componentName = options.componentName || \"NuxtLink\";\n function checkPropConflicts(props, main, sub) {\n if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n }\n }\n function isHashLinkWithoutHashMode(link) {\n return !hashMode && typeof link === \"string\" && link.startsWith(\"#\");\n }\n function resolveTrailingSlashBehavior(to, resolve, trailingSlash) {\n const effectiveTrailingSlash = trailingSlash ?? options.trailingSlash;\n if (!to || effectiveTrailingSlash !== \"append\" && effectiveTrailingSlash !== \"remove\") {\n return to;\n }\n if (typeof to === \"string\") {\n return applyTrailingSlashBehavior(to, effectiveTrailingSlash);\n }\n const path = \"path\" in to && to.path !== void 0 ? to.path : resolve(to).path;\n const resolvedPath = {\n ...to,\n name: void 0,\n // named routes would otherwise always override trailing slash behavior\n path: applyTrailingSlashBehavior(path, effectiveTrailingSlash)\n };\n return resolvedPath;\n }\n function useNuxtLink(props) {\n const router = useRouter();\n const config = useRuntimeConfig();\n const hasTarget = computed(() => !!unref(props.target) && unref(props.target) !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = unref(props.to) || unref(props.href) || \"\";\n return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n });\n const builtinRouterLink = resolveComponent(\"RouterLink\");\n const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n const isExternal = computed(() => {\n if (unref(props.external)) {\n return true;\n }\n const path = unref(props.to) || unref(props.href) || \"\";\n if (typeof path === \"object\") {\n return false;\n }\n return path === \"\" || isAbsoluteUrl.value;\n });\n const to = computed(() => {\n checkPropConflicts(props, \"to\", \"href\");\n const path = unref(props.to) || unref(props.href) || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve, unref(props.trailingSlash));\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to, viewTransition: unref(props.viewTransition) });\n const href = computed(() => {\n const effectiveTrailingSlash = unref(props.trailingSlash) ?? options.trailingSlash;\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n const raw = to.value;\n return typeof raw === \"string\" ? sanitizeExternalHref(raw) : raw;\n }\n if (isExternal.value) {\n const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n const safe = typeof href2 === \"string\" ? sanitizeExternalHref(href2) : href2;\n return safe === null ? null : applyTrailingSlashBehavior(safe, effectiveTrailingSlash);\n }\n if (typeof to.value === \"object\") {\n return router.resolve(to.value)?.href ?? null;\n }\n return applyTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), effectiveTrailingSlash);\n });\n return {\n to,\n hasTarget,\n isAbsoluteUrl,\n isExternal,\n //\n href,\n isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n route: link?.route ?? computed(() => router.resolve(to.value)),\n async navigate(_e) {\n if (href.value === null) {\n if (import.meta.dev) {\n console.warn(`[${componentName}] refused to navigate to a URL with a script-capable protocol.`);\n }\n return;\n }\n await navigateTo(href.value, { replace: unref(props.replace), external: isExternal.value || hasTarget.value });\n }\n };\n }\n return defineComponent({\n name: componentName,\n props: {\n // Routing\n to: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n href: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n // Attributes\n target: {\n type: String,\n default: void 0,\n required: false\n },\n rel: {\n type: String,\n default: void 0,\n required: false\n },\n noRel: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Prefetching\n prefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n prefetchOn: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n noPrefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Styling\n activeClass: {\n type: String,\n default: void 0,\n required: false\n },\n exactActiveClass: {\n type: String,\n default: void 0,\n required: false\n },\n prefetchedClass: {\n type: String,\n default: void 0,\n required: false\n },\n // Vue Router's `` additional props\n replace: {\n type: Boolean,\n default: void 0,\n required: false\n },\n ariaCurrentValue: {\n type: String,\n default: void 0,\n required: false\n },\n // Edge cases handling\n external: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Slot API\n custom: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Behavior\n trailingSlash: {\n type: String,\n default: void 0,\n required: false\n }\n },\n useLink: useNuxtLink,\n setup(props, { slots }) {\n const router = useRouter();\n const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\n const prefetched = shallowRef(false);\n const el = import.meta.server ? void 0 : ref(null);\n const elRef = import.meta.server ? void 0 : (ref2) => {\n el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n };\n function shouldPrefetch(mode) {\n if (import.meta.server) {\n return;\n }\n return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n }\n async function prefetch(nuxtApp = useNuxtApp()) {\n if (import.meta.server) {\n return;\n }\n if (prefetched.value) {\n return;\n }\n if (href.value === null) {\n return;\n }\n prefetched.value = true;\n const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n await Promise.all([\n nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath)?.catch(() => {\n }),\n !import.meta.dev && !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n })\n ]);\n }\n if (import.meta.client) {\n checkPropConflicts(props, \"noPrefetch\", \"prefetch\");\n if (shouldPrefetch(\"visibility\")) {\n const nuxtApp = useNuxtApp();\n let idleId;\n let unobserve = null;\n onMounted(() => {\n const observer = useObserver();\n onNuxtReady(() => {\n idleId = requestIdleCallback(() => {\n if (el?.value?.tagName) {\n unobserve = observer.observe(el.value, async () => {\n unobserve?.();\n unobserve = null;\n await prefetch(nuxtApp);\n });\n }\n });\n });\n });\n onBeforeUnmount(() => {\n if (idleId) {\n cancelIdleCallback(idleId);\n }\n unobserve?.();\n unobserve = null;\n });\n }\n }\n if (import.meta.dev && import.meta.server && !props.custom) {\n const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n if (isNuxtLinkChild) {\n console.log(\"[nuxt] [NuxtLink] You can't nest one inside another . This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n } else {\n provide(NuxtLinkDevKeySymbol, true);\n }\n }\n return () => {\n if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {\n const routerLinkProps = {\n ref: elRef,\n to: to.value,\n activeClass: props.activeClass || options.activeClass,\n exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n replace: props.replace,\n ariaCurrentValue: props.ariaCurrentValue,\n custom: props.custom\n };\n if (!props.custom) {\n if (import.meta.client) {\n if (shouldPrefetch(\"interaction\")) {\n routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n routerLinkProps.onFocus = prefetch.bind(null, void 0);\n }\n if (prefetched.value) {\n routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n }\n }\n routerLinkProps.rel = props.rel || void 0;\n }\n return h(\n resolveComponent(\"RouterLink\"),\n routerLinkProps,\n slots.default\n );\n }\n const target = props.target || null;\n checkPropConflicts(props, \"noRel\", \"rel\");\n const rel = firstNonUndefined(\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n props.noRel ? \"\" : props.rel,\n options.externalRelAttribute,\n /*\n * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n */\n isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n ) || null;\n if (props.custom) {\n if (!slots.default) {\n return null;\n }\n return slots.default({\n href: href.value,\n navigate,\n prefetch,\n get route() {\n if (!href.value) {\n return void 0;\n }\n const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n return {\n path: url.pathname,\n fullPath: url.pathname,\n get query() {\n return parseQuery(url.search);\n },\n hash: url.hash,\n params: {},\n name: void 0,\n matched: [],\n redirectedFrom: void 0,\n meta: {},\n href: href.value\n };\n },\n rel,\n target,\n isExternal: isExternal.value || hasTarget.value,\n isActive: false,\n isExactActive: false\n });\n }\n return h(\"a\", {\n ref: el,\n href: href.value || null,\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`href=\"\"`)\n rel,\n target,\n onClick: async (event) => {\n if (isExternal.value || hasTarget.value) {\n return;\n }\n event.preventDefault();\n try {\n const encodedHref = encodeRoutePath(href.value ?? \"\");\n return await (props.replace ? router.replace(encodedHref) : router.push(encodedHref));\n } finally {\n if (import.meta.client && isHashLinkWithoutHashMode(to.value)) {\n const rawHash = to.value.slice(1);\n let hash = rawHash;\n try {\n hash = decodeURIComponent(rawHash);\n } catch {\n }\n const el2 = document.getElementById(hash);\n el2?.focus();\n }\n }\n }\n }, slots.default?.());\n };\n }\n });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n if (hasProtocolDifferentFromHttp) {\n return to;\n }\n return normalizeFn(to, true);\n}\nfunction useObserver() {\n if (import.meta.server) {\n return;\n }\n const nuxtApp = useNuxtApp();\n if (nuxtApp._observer) {\n return nuxtApp._observer;\n }\n let observer = null;\n const callbacks = /* @__PURE__ */ new Map();\n const observe = (element, callback) => {\n observer ||= new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback2 = callbacks.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (isVisible && callback2) {\n callback2();\n }\n }\n });\n callbacks.set(element, callback);\n observer.observe(element);\n return () => {\n callbacks.delete(element);\n observer?.unobserve(element);\n if (callbacks.size === 0) {\n observer?.disconnect();\n observer = null;\n }\n };\n };\n const _observer = nuxtApp._observer = {\n observe\n };\n return _observer;\n}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n if (import.meta.server) {\n return;\n }\n const cn = navigator.connection;\n if (cn && (cn.saveData || IS_2G_RE.test(cn.effectiveType))) {\n return true;\n }\n return false;\n}\n"],"version":3} \ No newline at end of file +{"file":"nuxt-link-CQqhT_O_.js","mappings":"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","names":[],"sources":["../../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-link.js"],"sourcesContent":["import { computed, defineComponent, h, inject, onBeforeUnmount, onMounted, provide, ref, resolveComponent, shallowRef, unref } from \"vue\";\nimport { hasProtocol, isScriptProtocol, joinURL, parseQuery, withTrailingSlash, withoutTrailingSlash } from \"ufo\";\nimport { preloadRouteComponents } from \"../composables/preload.js\";\nimport { onNuxtReady } from \"../composables/ready.js\";\nimport { encodeRoutePath, navigateTo, resolveRouteObject, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { cancelIdleCallback, requestIdleCallback } from \"../compat/idle-callback.js\";\nimport { nuxtLinkDefaults } from \"#build/nuxt.config.mjs\";\nimport { hashMode } from \"#build/router.options.mjs\";\nconst firstNonUndefined = (...args) => args.find((arg) => arg !== void 0);\nfunction sanitizeExternalHref(value) {\n let candidate = value.replace(/[\\u0000-\\u001F\\s]+/g, \"\");\n while (candidate.toLowerCase().startsWith(\"view-source:\")) {\n candidate = candidate.slice(\"view-source:\".length);\n }\n const colon = candidate.indexOf(\":\");\n if (colon > 0 && isScriptProtocol(candidate.slice(0, colon + 1))) {\n return null;\n }\n return value;\n}\nconst NuxtLinkDevKeySymbol = Symbol(\"nuxt-link-dev-key\");\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtLink(options) {\n const componentName = options.componentName || \"NuxtLink\";\n function checkPropConflicts(props, main, sub) {\n if (import.meta.dev && props[main] !== void 0 && props[sub] !== void 0) {\n console.warn(`[${componentName}] \\`${main}\\` and \\`${sub}\\` cannot be used together. \\`${sub}\\` will be ignored.`);\n }\n }\n function isHashLinkWithoutHashMode(link) {\n return !hashMode && typeof link === \"string\" && link.startsWith(\"#\");\n }\n function resolveTrailingSlashBehavior(to, resolve, trailingSlash) {\n const effectiveTrailingSlash = trailingSlash ?? options.trailingSlash;\n if (!to || effectiveTrailingSlash !== \"append\" && effectiveTrailingSlash !== \"remove\") {\n return to;\n }\n if (typeof to === \"string\") {\n return applyTrailingSlashBehavior(to, effectiveTrailingSlash);\n }\n const path = \"path\" in to && to.path !== void 0 ? to.path : resolve(to).path;\n const resolvedPath = {\n ...to,\n name: void 0,\n // named routes would otherwise always override trailing slash behavior\n path: applyTrailingSlashBehavior(path, effectiveTrailingSlash)\n };\n return resolvedPath;\n }\n function useNuxtLink(props) {\n const router = useRouter();\n const config = useRuntimeConfig();\n const hasTarget = computed(() => !!unref(props.target) && unref(props.target) !== \"_self\");\n const isAbsoluteUrl = computed(() => {\n const path = unref(props.to) || unref(props.href) || \"\";\n return typeof path === \"string\" && hasProtocol(path, { acceptRelative: true });\n });\n const builtinRouterLink = resolveComponent(\"RouterLink\");\n const useBuiltinLink = builtinRouterLink && typeof builtinRouterLink !== \"string\" ? builtinRouterLink.useLink : void 0;\n const isExternal = computed(() => {\n if (unref(props.external)) {\n return true;\n }\n const path = unref(props.to) || unref(props.href) || \"\";\n if (typeof path === \"object\") {\n return false;\n }\n return path === \"\" || isAbsoluteUrl.value;\n });\n const to = computed(() => {\n checkPropConflicts(props, \"to\", \"href\");\n const path = unref(props.to) || unref(props.href) || \"\";\n if (isExternal.value) {\n return path;\n }\n return resolveTrailingSlashBehavior(path, router.resolve, unref(props.trailingSlash));\n });\n const link = isExternal.value ? void 0 : useBuiltinLink?.({ ...props, to, viewTransition: unref(props.viewTransition) });\n const href = computed(() => {\n const effectiveTrailingSlash = unref(props.trailingSlash) ?? options.trailingSlash;\n if (!to.value || isAbsoluteUrl.value || isHashLinkWithoutHashMode(to.value)) {\n const raw = to.value;\n return typeof raw === \"string\" ? sanitizeExternalHref(raw) : raw;\n }\n if (isExternal.value) {\n const path = typeof to.value === \"object\" && \"path\" in to.value ? resolveRouteObject(to.value) : to.value;\n const href2 = typeof path === \"object\" ? router.resolve(path).href : path;\n const safe = typeof href2 === \"string\" ? sanitizeExternalHref(href2) : href2;\n return safe === null ? null : applyTrailingSlashBehavior(safe, effectiveTrailingSlash);\n }\n if (typeof to.value === \"object\") {\n return router.resolve(to.value)?.href ?? null;\n }\n return applyTrailingSlashBehavior(joinURL(config.app.baseURL, to.value), effectiveTrailingSlash);\n });\n return {\n to,\n hasTarget,\n isAbsoluteUrl,\n isExternal,\n //\n href,\n isActive: link?.isActive ?? computed(() => to.value === router.currentRoute.value.path),\n isExactActive: link?.isExactActive ?? computed(() => to.value === router.currentRoute.value.path),\n route: link?.route ?? computed(() => router.resolve(to.value)),\n async navigate(_e) {\n if (href.value === null) {\n if (import.meta.dev) {\n console.warn(`[${componentName}] refused to navigate to a URL with a script-capable protocol.`);\n }\n return;\n }\n await navigateTo(href.value, { replace: unref(props.replace), external: isExternal.value || hasTarget.value });\n }\n };\n }\n return defineComponent({\n name: componentName,\n props: {\n // Routing\n to: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n href: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n // Attributes\n target: {\n type: String,\n default: void 0,\n required: false\n },\n rel: {\n type: String,\n default: void 0,\n required: false\n },\n noRel: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Prefetching\n prefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n prefetchOn: {\n type: [String, Object],\n default: void 0,\n required: false\n },\n noPrefetch: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Styling\n activeClass: {\n type: String,\n default: void 0,\n required: false\n },\n exactActiveClass: {\n type: String,\n default: void 0,\n required: false\n },\n prefetchedClass: {\n type: String,\n default: void 0,\n required: false\n },\n // Vue Router's `` additional props\n replace: {\n type: Boolean,\n default: void 0,\n required: false\n },\n ariaCurrentValue: {\n type: String,\n default: void 0,\n required: false\n },\n // Edge cases handling\n external: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Slot API\n custom: {\n type: Boolean,\n default: void 0,\n required: false\n },\n // Behavior\n trailingSlash: {\n type: String,\n default: void 0,\n required: false\n }\n },\n useLink: useNuxtLink,\n setup(props, { slots }) {\n const router = useRouter();\n const { to, href, navigate, isExternal, hasTarget, isAbsoluteUrl } = useNuxtLink(props);\n const prefetched = shallowRef(false);\n const el = import.meta.server ? void 0 : ref(null);\n const elRef = import.meta.server ? void 0 : (ref2) => {\n el.value = props.custom ? ref2?.$el?.nextElementSibling : ref2?.$el;\n };\n function shouldPrefetch(mode) {\n if (import.meta.server) {\n return;\n }\n return !prefetched.value && (typeof props.prefetchOn === \"string\" ? props.prefetchOn === mode : props.prefetchOn?.[mode] ?? options.prefetchOn?.[mode]) && (props.prefetch ?? options.prefetch) !== false && props.noPrefetch !== true && props.target !== \"_blank\" && !isSlowConnection();\n }\n async function prefetch(nuxtApp = useNuxtApp()) {\n if (import.meta.server) {\n return;\n }\n if (prefetched.value) {\n return;\n }\n if (href.value === null) {\n return;\n }\n prefetched.value = true;\n const path = typeof to.value === \"string\" ? to.value : isExternal.value ? resolveRouteObject(to.value) : router.resolve(to.value).fullPath;\n const normalizedPath = isExternal.value ? new URL(path, window.location.href).href : path;\n await Promise.all([\n nuxtApp.hooks.callHook(\"link:prefetch\", normalizedPath)?.catch(() => {\n }),\n !import.meta.dev && !isExternal.value && !hasTarget.value && preloadRouteComponents(to.value, router).catch(() => {\n })\n ]);\n }\n if (import.meta.client) {\n checkPropConflicts(props, \"noPrefetch\", \"prefetch\");\n if (shouldPrefetch(\"visibility\")) {\n const nuxtApp = useNuxtApp();\n let idleId;\n let unobserve = null;\n onMounted(() => {\n const observer = useObserver();\n onNuxtReady(() => {\n idleId = requestIdleCallback(() => {\n if (el?.value?.tagName) {\n unobserve = observer.observe(el.value, async () => {\n unobserve?.();\n unobserve = null;\n await prefetch(nuxtApp);\n });\n }\n });\n });\n });\n onBeforeUnmount(() => {\n if (idleId) {\n cancelIdleCallback(idleId);\n }\n unobserve?.();\n unobserve = null;\n });\n }\n }\n if (import.meta.dev && import.meta.server && !props.custom) {\n const isNuxtLinkChild = inject(NuxtLinkDevKeySymbol, false);\n if (isNuxtLinkChild) {\n console.log(\"[nuxt] [NuxtLink] You can't nest one inside another . This will cause a hydration error on client-side. You can pass the `custom` prop to take full control of the markup.\");\n } else {\n provide(NuxtLinkDevKeySymbol, true);\n }\n }\n return () => {\n if (!isExternal.value && !hasTarget.value && !isHashLinkWithoutHashMode(to.value)) {\n const routerLinkProps = {\n ref: elRef,\n to: to.value,\n activeClass: props.activeClass || options.activeClass,\n exactActiveClass: props.exactActiveClass || options.exactActiveClass,\n replace: props.replace,\n ariaCurrentValue: props.ariaCurrentValue,\n custom: props.custom\n };\n if (!props.custom) {\n if (import.meta.client) {\n if (shouldPrefetch(\"interaction\")) {\n routerLinkProps.onPointerenter = prefetch.bind(null, void 0);\n routerLinkProps.onFocus = prefetch.bind(null, void 0);\n }\n if (prefetched.value) {\n routerLinkProps.class = props.prefetchedClass || options.prefetchedClass;\n }\n }\n routerLinkProps.rel = props.rel || void 0;\n }\n return h(\n resolveComponent(\"RouterLink\"),\n routerLinkProps,\n slots.default\n );\n }\n const target = props.target || null;\n checkPropConflicts(props, \"noRel\", \"rel\");\n const rel = firstNonUndefined(\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`rel=\"\"`)\n props.noRel ? \"\" : props.rel,\n options.externalRelAttribute,\n /*\n * A fallback rel of `noopener noreferrer` is applied for external links or links that open in a new tab.\n * This solves a reverse tabnapping security flaw in browsers pre-2021 as well as improving privacy.\n */\n isAbsoluteUrl.value || hasTarget.value ? \"noopener noreferrer\" : \"\"\n ) || null;\n if (props.custom) {\n if (!slots.default) {\n return null;\n }\n return slots.default({\n href: href.value,\n navigate,\n prefetch,\n get route() {\n if (!href.value) {\n return void 0;\n }\n const url = new URL(href.value, import.meta.client ? window.location.href : \"http://localhost\");\n return {\n path: url.pathname,\n fullPath: url.pathname,\n get query() {\n return parseQuery(url.search);\n },\n hash: url.hash,\n params: {},\n name: void 0,\n matched: [],\n redirectedFrom: void 0,\n meta: {},\n href: href.value\n };\n },\n rel,\n target,\n isExternal: isExternal.value || hasTarget.value,\n isActive: false,\n isExactActive: false\n });\n }\n return h(\"a\", {\n ref: el,\n href: href.value || null,\n // converts `\"\"` to `null` to prevent the attribute from being added as empty (`href=\"\"`)\n rel,\n target,\n onClick: async (event) => {\n if (isExternal.value || hasTarget.value) {\n return;\n }\n event.preventDefault();\n try {\n const encodedHref = encodeRoutePath(href.value ?? \"\");\n return await (props.replace ? router.replace(encodedHref) : router.push(encodedHref));\n } finally {\n if (import.meta.client && isHashLinkWithoutHashMode(to.value)) {\n const rawHash = to.value.slice(1);\n let hash = rawHash;\n try {\n hash = decodeURIComponent(rawHash);\n } catch {\n }\n const el2 = document.getElementById(hash);\n el2?.focus();\n }\n }\n }\n }, slots.default?.());\n };\n }\n });\n}\nexport default /* @__PURE__ */ defineNuxtLink(nuxtLinkDefaults);\nfunction applyTrailingSlashBehavior(to, trailingSlash) {\n const normalizeFn = trailingSlash === \"append\" ? withTrailingSlash : withoutTrailingSlash;\n const hasProtocolDifferentFromHttp = hasProtocol(to) && !to.startsWith(\"http\");\n if (hasProtocolDifferentFromHttp) {\n return to;\n }\n return normalizeFn(to, true);\n}\nfunction useObserver() {\n if (import.meta.server) {\n return;\n }\n const nuxtApp = useNuxtApp();\n if (nuxtApp._observer) {\n return nuxtApp._observer;\n }\n let observer = null;\n const callbacks = /* @__PURE__ */ new Map();\n const observe = (element, callback) => {\n observer ||= new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const callback2 = callbacks.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (isVisible && callback2) {\n callback2();\n }\n }\n });\n callbacks.set(element, callback);\n observer.observe(element);\n return () => {\n callbacks.delete(element);\n observer?.unobserve(element);\n if (callbacks.size === 0) {\n observer?.disconnect();\n observer = null;\n }\n };\n };\n const _observer = nuxtApp._observer = {\n observe\n };\n return _observer;\n}\nconst IS_2G_RE = /2g/;\nfunction isSlowConnection() {\n if (import.meta.server) {\n return;\n }\n const cn = navigator.connection;\n if (cn && (cn.saveData || IS_2G_RE.test(cn.effectiveType))) {\n return true;\n }\n return false;\n}\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-kmWP87Mw.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-B4xMZxup.js similarity index 98% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-kmWP87Mw.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-B4xMZxup.js index 308f6ae3..c60e824d 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-kmWP87Mw.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-B4xMZxup.js @@ -1,10 +1,12 @@ import { defineComponent, ref, reactive, computed, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrRenderStyle, ssrRenderList, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderClass } from "vue/server-renderer"; -import { u as useApi } from "./useApi-B7CB0Cnn.js"; -import { u as useToast } from "./useToast-BwtTR9dH.js"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; import "../server.mjs"; import "./auth-QFkCoU1C.js"; import "pinia"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; import "#internal/nuxt/paths"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; @@ -187,4 +189,4 @@ _sfc_main.setup = (props, ctx) => { export { _sfc_main as default }; -//# sourceMappingURL=product-kmWP87Mw.js.map +//# sourceMappingURL=product-B4xMZxup.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-kmWP87Mw.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-B4xMZxup.js.map similarity index 82% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-kmWP87Mw.js.map rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-B4xMZxup.js.map index f3648b72..2bcedd06 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-kmWP87Mw.js.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-B4xMZxup.js.map @@ -1 +1 @@ -{"version":3,"file":"product-kmWP87Mw.js","sources":["../../../../../../../app/pages/product.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderClass"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"product-B4xMZxup.js","sources":["../../../../../../../app/pages/product.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderClass"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-B4xMZxup.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-B4xMZxup.js.map.json new file mode 100644 index 00000000..becae7bd --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-B4xMZxup.js.map.json @@ -0,0 +1 @@ +{"file":"product-B4xMZxup.js","mappings":"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","names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderClass"],"sources":["../../../../../../../app/pages/product.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-kmWP87Mw.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-kmWP87Mw.js.map.json deleted file mode 100644 index 3903946b..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/product-kmWP87Mw.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"product-kmWP87Mw.js","mappings":"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","names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrInterpolate","_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderClass"],"sources":["../../../../../../../app/pages/product.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-BTX37VDF.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-BTX37VDF.js deleted file mode 100644 index 03ce4bef..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-BTX37VDF.js +++ /dev/null @@ -1,200 +0,0 @@ -import { defineComponent, ref, reactive, computed, useSSRContext } from "vue"; -import { ssrRenderAttrs, ssrRenderStyle, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrInterpolate, ssrRenderClass, ssrRenderDynamicModel } from "vue/server-renderer"; -import { u as useApi } from "./useApi-B7CB0Cnn.js"; -import { u as useToast } from "./useToast-BwtTR9dH.js"; -import { _ as _export_sfc } from "../server.mjs"; -import "./auth-QFkCoU1C.js"; -import "pinia"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; -import "#internal/nuxt/paths"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/unctx@2.5.0/node_modules/unctx/dist/index.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@nuxt+nitro-server@4.4.8_@babel+plugin-syntax-typescript@7.29.7_@babel+core@7.29.7__db0_5045ebd3802f96c9dd021f3300fcdf4c/node_modules/@nuxt/nitro-server/dist/runtime/h3-compat.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/defu@6.1.7/node_modules/defu/dist/defu.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ufo@1.6.4/node_modules/ufo/dist/index.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/perfect-debounce@2.1.0/node_modules/perfect-debounce/dist/index.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/index.mjs"; -import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs"; -const _sfc_main = /* @__PURE__ */ defineComponent({ - __name: "serviceconfig", - __ssrInlineRender: true, - setup(__props) { - const REGIONS = [ - { value: 1, label: "中国" }, - { value: 2, label: "美国" }, - { value: 3, label: "东亚" }, - { value: 4, label: "东南亚" }, - { value: 5, label: "南亚" }, - { value: 6, label: "中东" }, - { value: 7, label: "欧洲" }, - { value: 8, label: "俄罗斯" }, - { value: 9, label: "非洲" }, - { value: 10, label: "南美" }, - { value: 11, label: "北美" }, - { value: 12, label: "大洋洲" }, - { value: 13, label: "巴西" }, - { value: 14, label: "印度" } - ]; - const SCAT = [ - { v: 1, label: "STT 语音识别", short: "STT", color: "#0369a1", bg: "#dbeafe" }, - { v: 2, label: "TTS 语音合成", short: "TTS", color: "#7c3aed", bg: "#ede9fe" }, - { v: 3, label: "MT 机器翻译", short: "MT", color: "#059669", bg: "#dcfce7" }, - { v: 4, label: "AST 端到端", short: "AST", color: "#c2410c", bg: "#fff7ed" }, - { v: 5, label: "LLM 大语言", short: "LLM", color: "#b45309", bg: "#fef9c3" }, - { v: 6, label: "存储 OSS/COS", short: "存储", color: "#475569", bg: "#f1f5f9" } - ]; - useApi(); - useToast(); - function scatInfo(v) { - return SCAT.find((s) => s.v === v) || { short: "?", color: "#999", bg: "#eee", v: 0, label: "" }; - } - function parseCats(s) { - return (s || "").split(",").map((x) => parseInt(x) || 0).filter((x) => x > 0); - } - function encCount(s) { - return (s.fields || []).filter((f) => f.encrypted).length; - } - const backendReady = ref(true); - const allSvcs = ref([]); - const curSvc = ref(null); - const curRegion = ref(0); - const detailMode = ref("empty"); - const editForm = reactive({ id: "", name: "", description: "", enable: false }); - const editCats = ref([]); - const editFields = ref([]); - const overrideFields = ref([]); - const regionLoading = ref(false); - const curRegionLabel = computed(() => { - const r = REGIONS.find((x) => x.value === curRegion.value); - return r ? r.label : "区域" + curRegion.value; - }); - const syncVisible = ref(false); - ref(false); - const syncDesc = ref(""); - const syncScopeNote = ref(""); - const syncTargets = ref([]); - const syncRegionList = computed(() => REGIONS.filter((r) => r.value !== curRegion.value)); - return (_ctx, _push, _parent, _attrs) => { - _push(``); - if (!backendReady.value) { - _push(`
⚠ 「依赖服务配置」的后端接口尚未迁移到当前 console 服务,功能暂不可用。
`); - } else { - _push(``); - } - _push(`

依赖服务配置

配置火山引擎、阿里云等第三方服务;字段支持加密存储。默认配置全区域共用,可按区域覆盖字段值。

`); - ssrRenderList(allSvcs.value, (s) => { - _push(`
${ssrInterpolate(s.name)}${ssrInterpolate(s.enable ? "启用" : "停用")}
`); - ssrRenderList(parseCats(s.categories), (v) => { - _push(`${ssrInterpolate(scatInfo(v).short)}`); - }); - _push(``); - if (encCount(s)) { - _push(`🔒${ssrInterpolate(encCount(s))}`); - } else { - _push(``); - } - _push(`
`); - }); - _push(``); - if (!allSvcs.value.length) { - _push(`

暂无服务

`); - } else { - _push(``); - } - _push(`
`); - if (detailMode.value === "empty") { - _push(`
⚙️

从左侧选择一个服务开始配置

`); - } else if (detailMode.value === "default" && curSvc.value) { - _push(`

${ssrInterpolate(curSvc.value.name)}

${ssrInterpolate(curSvc.value.id)}

基本信息

服务类别 (可多选)

`); - ssrRenderList(SCAT, (sc) => { - _push(``); - }); - _push(`
自定义字段
`); - if (!editFields.value.length) { - _push(`

尚无自定义字段,点击下方添加

`); - } else { - _push(`
`); - ssrRenderList(editFields.value, (f, i) => { - _push(``); - }); - _push(`
字段名字段描述加密默认值
`); - if (f.encrypted) { - _push(`
🔒 加密`); - } else { - _push(``); - } - _push(`
`); - } - _push(`
`); - } else if (detailMode.value === "new") { - _push(`

新增依赖服务

基本信息

服务类别

`); - ssrRenderList(SCAT, (sc) => { - _push(``); - }); - _push(`
自定义字段
`); - if (!editFields.value.length) { - _push(`

尚无自定义字段,点击下方添加

`); - } else { - _push(`
`); - ssrRenderList(editFields.value, (f, i) => { - _push(``); - }); - _push(`
字段名字段描述加密默认值
`); - if (f.encrypted) { - _push(`
🔒 加密`); - } else { - _push(``); - } - _push(`
`); - } - _push(`
`); - } else if (detailMode.value === "region" && curSvc.value) { - _push(``); - if (regionLoading.value) { - _push(`
加载中...
`); - } else { - _push(`

${ssrInterpolate(curSvc.value.name)}

${ssrInterpolate(curRegionLabel.value)} 覆盖模式
✦ 当前编辑「${ssrInterpolate(curRegionLabel.value)}」的字段覆盖值。留空的字段将继承默认值。加密字段留空保留已存储密文。
`); - ssrRenderList(overrideFields.value, (f, i) => { - _push(``); - }); - _push(`
字段名字段描述状态有效值
${ssrInterpolate(f.key)}${ssrInterpolate(f.description)}`); - if (f.is_overridden) { - _push(`覆盖`); - } else { - _push(`继承`); - } - _push(``); - if (f.encrypted) { - _push(`
🔒`); - } else { - _push(``); - } - _push(`
`); - } - _push(``); - } else { - _push(``); - } - _push(`

同步到其他区域

${ssrInterpolate(syncDesc.value)}

${syncScopeNote.value ?? ""}
选择目标区域
`); - ssrRenderList(syncRegionList.value, (r) => { - _push(``); - }); - _push(`

⚠ 已勾选区域中与当前配置相同的字段将被覆盖;加密字段密文一并同步。

`); - }; - } -}); -const _sfc_setup = _sfc_main.setup; -_sfc_main.setup = (props, ctx) => { - const ssrContext = useSSRContext(); - (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/serviceconfig.vue"); - return _sfc_setup ? _sfc_setup(props, ctx) : void 0; -}; -const serviceconfig = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-97419e3c"]]); -export { - serviceconfig as default -}; -//# sourceMappingURL=serviceconfig-BTX37VDF.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-BTX37VDF.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-BTX37VDF.js.map deleted file mode 100644 index d3505b05..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-BTX37VDF.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"serviceconfig-BTX37VDF.js","sources":["../../../../../../../app/pages/serviceconfig.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderStyle","_ssrRenderClass","_ssrRenderDynamicModel"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-BTX37VDF.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-BTX37VDF.js.map.json deleted file mode 100644 index ad8267f6..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-BTX37VDF.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"serviceconfig-BTX37VDF.js","mappings":"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","names":["_ssrRenderAttr","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrInterpolate","_ssrRenderStyle","_ssrRenderClass","_ssrRenderDynamicModel"],"sources":["../../../../../../../app/pages/serviceconfig.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-DRqotJ7A.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-DRqotJ7A.js new file mode 100644 index 00000000..f2f3c5d9 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-DRqotJ7A.js @@ -0,0 +1,484 @@ +import { defineComponent, computed, mergeProps, useSSRContext, ref, reactive } from "vue"; +import { ssrRenderAttrs, ssrRenderClass, ssrRenderList, ssrInterpolate, ssrIncludeBooleanAttr, ssrRenderAttr, ssrRenderStyle, ssrLooseContain, ssrLooseEqual, ssrRenderComponent, ssrRenderDynamicModel } from "vue/server-renderer"; +import { _ as _export_sfc } from "../server.mjs"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; +import "#internal/nuxt/paths"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/unctx@2.5.0/node_modules/unctx/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@nuxt+nitro-server@4.4.8_@babel+plugin-syntax-typescript@7.29.7_@babel+core@7.29.7__db0_5045ebd3802f96c9dd021f3300fcdf4c/node_modules/@nuxt/nitro-server/dist/runtime/h3-compat.mjs"; +import "pinia"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/defu@6.1.7/node_modules/defu/dist/defu.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ufo@1.6.4/node_modules/ufo/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/perfect-debounce@2.1.0/node_modules/perfect-debounce/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs"; +import "./auth-QFkCoU1C.js"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; +const LANG_OPTIONS = [ + { code: "zh-CN", name: "中文(简体)" }, + { code: "zh-TW", name: "中文(繁体)" }, + { code: "zh-HK", name: "中文(香港)" }, + { code: "yue-HK", name: "粤语" }, + { code: "en-US", name: "英语(美国)" }, + { code: "en-GB", name: "英语(英国)" }, + { code: "ja-JP", name: "日语" }, + { code: "ko-KR", name: "韩语" }, + { code: "id-ID", name: "印尼语" }, + { code: "es-ES", name: "西班牙语(西)" }, + { code: "es-MX", name: "西班牙语(墨)" }, + { code: "pt-BR", name: "葡萄牙语(巴西)" }, + { code: "pt-PT", name: "葡萄牙语(葡)" }, + { code: "de-DE", name: "德语" }, + { code: "fr-FR", name: "法语" }, + { code: "it-IT", name: "意大利语" }, + { code: "nl-NL", name: "荷兰语" }, + { code: "pl-PL", name: "波兰语" }, + { code: "ru-RU", name: "俄语" }, + { code: "uk-UA", name: "乌克兰语" }, + { code: "tr-TR", name: "土耳其语" }, + { code: "vi-VN", name: "越南语" }, + { code: "th-TH", name: "泰语" }, + { code: "ms-MY", name: "马来语" }, + { code: "fil-PH", name: "菲律宾语" }, + { code: "ar-SA", name: "阿拉伯语" } +]; +function langName(code) { + const o = LANG_OPTIONS.find((x) => x.code === code); + return o ? o.name : code; +} +const _sfc_main$1 = /* @__PURE__ */ defineComponent({ + __name: "LangSelect", + __ssrInlineRender: true, + props: { + modelValue: {}, + multiple: { type: Boolean, default: false }, + disabled: { type: Boolean, default: false }, + options: { default: void 0 } + }, + emits: ["update:modelValue"], + setup(__props, { emit: __emit }) { + const props = __props; + const opts = computed(() => props.options && props.options.length ? props.options : LANG_OPTIONS); + const selected = computed( + () => (props.modelValue || "").split(",").map((s) => s.trim()).filter(Boolean) + ); + function nameOf(code) { + return langName(code); + } + return (_ctx, _push, _parent, _attrs) => { + _push(``); + if (__props.multiple) { + _push(`
`); + ssrRenderList(selected.value, (code) => { + _push(`${ssrInterpolate(code)}${ssrInterpolate(nameOf(code))}`); + }); + _push(``); + if (!selected.value.length) { + _push(`未选择语言`); + } else { + _push(``); + } + _push(`
`); + if (!__props.disabled) { + _push(`
+ 选择语言(已选 ${ssrInterpolate(selected.value.length)})
`); + ssrRenderList(opts.value, (o) => { + _push(``); + }); + _push(`
`); + } else { + _push(``); + } + _push(``); + } else { + _push(``); + } + _push(`
`); + }; + } +}); +const _sfc_setup$1 = _sfc_main$1.setup; +_sfc_main$1.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/LangSelect.vue"); + return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0; +}; +const __nuxt_component_0 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$1, [["__scopeId", "data-v-4903af59"]]), { __name: "LangSelect" }); +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "serviceconfig", + __ssrInlineRender: true, + setup(__props) { + const REGIONS = [ + { value: 1, label: "中国" }, + { value: 2, label: "美国" }, + { value: 3, label: "东亚" }, + { value: 4, label: "东南亚" }, + { value: 5, label: "南亚" }, + { value: 6, label: "中东" }, + { value: 7, label: "欧洲" }, + { value: 8, label: "俄罗斯" }, + { value: 9, label: "非洲" }, + { value: 10, label: "南美" }, + { value: 11, label: "北美" }, + { value: 12, label: "大洋洲" }, + { value: 13, label: "巴西" }, + { value: 14, label: "印度" } + ]; + const SCAT = [ + { v: 1, label: "STT 语音识别", short: "STT", color: "#0369a1", bg: "#dbeafe" }, + { v: 2, label: "TTS 语音合成", short: "TTS", color: "#7c3aed", bg: "#ede9fe" }, + { v: 3, label: "MT 机器翻译", short: "MT", color: "#059669", bg: "#dcfce7" }, + { v: 4, label: "AST 端到端翻译", short: "AST", color: "#c2410c", bg: "#fff7ed" }, + { v: 5, label: "LLM 大语言", short: "LLM", color: "#b45309", bg: "#fef9c3" }, + { v: 7, label: "STS 端到端对话", short: "STS", color: "#be185d", bg: "#fce7f3" }, + { v: 6, label: "存储 OSS/COS", short: "存储", color: "#475569", bg: "#f1f5f9" } + ]; + useApi(); + useToast(); + const scopeApp = ref(""); + const scopeApps = ref([]); + function scatInfo(v) { + return SCAT.find((s) => s.v === v) || { short: "?", color: "#999", bg: "#eee", v: 0, label: "" }; + } + function parseCats(s) { + return (s || "").split(",").map((x) => parseInt(x) || 0).filter((x) => x > 0); + } + function encCount(s) { + return (s.fields || []).filter((f) => f.encrypted).length; + } + const backendReady = ref(true); + const allSvcs = ref([]); + const curSvc = ref(null); + const curRegion = ref(0); + const detailMode = ref("empty"); + const editForm = reactive({ id: "", name: "", provider: "", description: "", enable: false }); + const editType = ref(0); + const editFields = ref([]); + const selectedTemplateId = ref(""); + const wizardStep = ref(1); + const overrideFields = ref([]); + const extraRegionFields = ref([]); + const regionLoading = ref(false); + const templates = ref([]); + const curRegionLabel = computed(() => { + const r = REGIONS.find((x) => x.value === curRegion.value); + return r ? r.label : "区域" + curRegion.value; + }); + const templatesByCat = computed(() => { + return SCAT.map((sc) => ({ + cat: sc.v, + label: sc.label, + items: templates.value.filter((t) => t.category === sc.v) + })).filter((g) => g.items.length); + }); + const templatesForType = computed(() => templates.value.filter((t) => t.category === editType.value)); + const syncVisible = ref(false); + ref(false); + const syncDesc = ref(""); + const syncScopeNote = ref(""); + const syncTargets = ref([]); + const syncRegionList = computed(() => REGIONS.filter((r) => r.value !== curRegion.value)); + const tplModalVisible = ref(false); + const tplView = ref("list"); + const tplEditing = ref(false); + const tplForm = reactive({ id: "", category: 2, provider: "", name: "", description: "" }); + const tplFields = ref([]); + return (_ctx, _push, _parent, _attrs) => { + const _component_LangSelect = __nuxt_component_0; + _push(``); + if (!backendReady.value) { + _push(`
⚠ 「第三方服务配置」后端接口暂不可用(连接失败),请检查 console 服务是否运行。
`); + } else { + _push(``); + } + _push(`

第三方服务配置

按服务类型分组管理已接入的第三方服务(火山引擎、阿里云、Azure 等)。默认展示全局默认配置,可切换到具体应用;区域默认中国,切换区域可为该区域覆盖字段值。

`); + ssrRenderList(allSvcs.value, (s) => { + _push(`
${ssrInterpolate(s.name)}${ssrInterpolate(s.enable ? "启用" : "停用")}
`); + if (s.provider) { + _push(`${ssrInterpolate(s.provider)}`); + } else { + _push(``); + } + _push(``); + ssrRenderList(parseCats(s.categories), (v) => { + _push(`${ssrInterpolate(scatInfo(v).short)}`); + }); + _push(``); + if (encCount(s)) { + _push(`🔒${ssrInterpolate(encCount(s))}`); + } else { + _push(``); + } + _push(`
`); + }); + _push(``); + if (!allSvcs.value.length) { + _push(`

暂无服务

`); + } else { + _push(``); + } + _push(`
`); + if (detailMode.value === "empty") { + _push(`
⚙️

从左侧选择一个服务开始配置

`); + } else if (detailMode.value === "default" && curSvc.value) { + _push(`

${ssrInterpolate(curSvc.value.name)}

${ssrInterpolate(curSvc.value.id)}`); + if (editForm.provider) { + _push(` · 服务商 ${ssrInterpolate(editForm.provider)}`); + } else { + _push(``); + } + _push(`

基本信息

服务类型

`); + if (editType.value) { + _push(`${ssrInterpolate(scatInfo(editType.value).short)}`); + } else { + _push(``); + } + _push(`${ssrInterpolate(editType.value ? scatInfo(editType.value).label : "未设置")}(类型在创建时确定,不可更改)
配置字段(全区域共用)
`); + if (!editFields.value.length) { + _push(`

尚无字段,点击下方添加

`); + } else { + _push(`
`); + ssrRenderList(editFields.value, (f, i) => { + _push(``); + }); + _push(`
字段名字段描述加密默认值
`); + if (f.type === "langs") { + _push(ssrRenderComponent(_component_LangSelect, { + modelValue: f.def_value, + "onUpdate:modelValue": ($event) => f.def_value = $event, + multiple: true + }, null, _parent)); + } else if (f.type === "lang") { + _push(ssrRenderComponent(_component_LangSelect, { + modelValue: f.def_value, + "onUpdate:modelValue": ($event) => f.def_value = $event + }, null, _parent)); + } else if (f.encrypted) { + _push(`
🔒 加密`); + } else { + _push(``); + } + _push(`
`); + } + _push(`
`); + } else if (detailMode.value === "new") { + _push(`

新增第三方服务

① 服务类型`); + if (editType.value) { + _push(` · ${ssrInterpolate(scatInfo(editType.value).short)}`); + } else { + _push(``); + } + _push(`
② 服务商`); + if (editForm.provider) { + _push(` · ${ssrInterpolate(editForm.provider)}`); + } else { + _push(``); + } + _push(`
③ 配置
`); + if (wizardStep.value === 1) { + _push(`

请选择要接入的服务类型(每个服务归属单一类型,独立配置):

`); + ssrRenderList(SCAT, (sc) => { + _push(`
${ssrInterpolate(sc.short)}${ssrInterpolate(sc.label)}
`); + }); + _push(`
`); + } else if (wizardStep.value === 2) { + _push(`

为「${ssrInterpolate(scatInfo(editType.value).label)}」选择服务商:

`); + ssrRenderList(templatesForType.value, (t) => { + _push(`
${ssrInterpolate(t.provider)}${ssrInterpolate(t.name)}${ssrInterpolate((t.fields || []).length)} 字段
`); + }); + _push(`
自定义空白自定义手动添加字段
`); + if (!templatesForType.value.length) { + _push(`

该类型暂无内置模板,可选「空白自定义」,或到「服务商模板」新增。

`); + } else { + _push(``); + } + _push(``); + } else { + _push(`
${ssrInterpolate(scatInfo(editType.value).short)}`); + if (editForm.provider) { + _push(`${ssrInterpolate(editForm.provider)}`); + } else { + _push(``); + } + _push(`
配置字段
`); + if (!editFields.value.length) { + _push(`

尚无字段,选模板自动带出或点击下方添加

`); + } else { + _push(`
`); + ssrRenderList(editFields.value, (f, i) => { + _push(``); + }); + _push(`
字段名字段描述加密默认值
`); + if (f.type === "langs") { + _push(ssrRenderComponent(_component_LangSelect, { + modelValue: f.def_value, + "onUpdate:modelValue": ($event) => f.def_value = $event, + multiple: true + }, null, _parent)); + } else if (f.type === "lang") { + _push(ssrRenderComponent(_component_LangSelect, { + modelValue: f.def_value, + "onUpdate:modelValue": ($event) => f.def_value = $event + }, null, _parent)); + } else if (f.encrypted) { + _push(`
🔒 加密`); + } else { + _push(``); + } + _push(`
`); + } + _push(`
`); + } + _push(``); + } else if (detailMode.value === "region" && curSvc.value) { + _push(``); + if (regionLoading.value) { + _push(`
加载中...
`); + } else { + _push(`

${ssrInterpolate(curSvc.value.name)}

${ssrInterpolate(curRegionLabel.value)} 分叉模式
✦ 当前编辑「${ssrInterpolate(curRegionLabel.value)}」的字段分叉:默认字段可覆盖值或勾选「不适用」停用;也可新增本区域专属字段。留空的覆盖字段继承默认值,加密字段留空保留已存储密文。

默认字段

`); + ssrRenderList(overrideFields.value, (f, i) => { + _push(``); + }); + _push(``); + if (!overrideFields.value.length) { + _push(``); + } else { + _push(``); + } + _push(`
字段名字段描述状态本区域不适用有效值
${ssrInterpolate(f.key)}${ssrInterpolate(f.description)}`); + if (f.disabled) { + _push(`停用`); + } else if (f.is_overridden) { + _push(`覆盖`); + } else { + _push(`继承`); + } + _push(``); + if (f.type === "langs") { + _push(ssrRenderComponent(_component_LangSelect, { + modelValue: f._input, + "onUpdate:modelValue": ($event) => f._input = $event, + multiple: true, + disabled: f.disabled + }, null, _parent)); + } else if (f.type === "lang") { + _push(ssrRenderComponent(_component_LangSelect, { + modelValue: f._input, + "onUpdate:modelValue": ($event) => f._input = $event, + disabled: f.disabled + }, null, _parent)); + } else if (f.encrypted) { + _push(`
🔒`); + } else { + _push(``); + } + _push(`
该服务尚无默认字段
${ssrInterpolate(curRegionLabel.value)} 专属字段
`); + if (!extraRegionFields.value.length) { + _push(`

尚无区域专属字段,点击下方添加

`); + } else { + _push(`
`); + ssrRenderList(extraRegionFields.value, (f, i) => { + _push(``); + }); + _push(`
字段名字段描述加密值
`); + if (f.encrypted) { + _push(`
🔒`); + } else { + _push(``); + } + _push(`
`); + } + _push(`
`); + } + _push(``); + } else { + _push(``); + } + _push(`

同步到其他区域

${ssrInterpolate(syncDesc.value)}

${syncScopeNote.value ?? ""}
选择目标区域
`); + ssrRenderList(syncRegionList.value, (r) => { + _push(``); + }); + _push(`

⚠ 已勾选区域将被当前配置(值覆盖 / 区域专属字段 / 停用字段)整体替换;加密字段密文一并同步。

`); + if (tplView.value === "list") { + _push(`

服务商模板

模板是字段预设,新增服务时可一键带出。内置模板可编辑;删除后重启会被重新补回。

`); + ssrRenderList(templatesByCat.value, (g) => { + _push(`

${ssrInterpolate(g.label)}

`); + ssrRenderList(g.items, (t) => { + _push(`
${ssrInterpolate(t.name)}${ssrInterpolate(t.provider)}`); + if (t.builtin) { + _push(`内置`); + } else { + _push(``); + } + _push(`

${ssrInterpolate(t.id)} · ${ssrInterpolate((t.fields || []).length)} 字段

`); + }); + _push(`
`); + }); + _push(``); + if (!templates.value.length) { + _push(`

暂无模板

`); + } else { + _push(``); + } + _push(`
`); + } else { + _push(`

${ssrInterpolate(tplEditing.value ? "编辑模板" : "新增模板")}

字段

`); + ssrRenderList(tplFields.value, (f, i) => { + _push(``); + }); + _push(``); + if (!tplFields.value.length) { + _push(``); + } else { + _push(``); + } + _push(`
字段名字段描述加密默认/提示值
`); + if (f.type === "langs") { + _push(ssrRenderComponent(_component_LangSelect, { + modelValue: f.def_value, + "onUpdate:modelValue": ($event) => f.def_value = $event, + multiple: true + }, null, _parent)); + } else if (f.type === "lang") { + _push(ssrRenderComponent(_component_LangSelect, { + modelValue: f.def_value, + "onUpdate:modelValue": ($event) => f.def_value = $event + }, null, _parent)); + } else { + _push(``); + } + _push(`
尚无字段
`); + } + _push(`
`); + }; + } +}); +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/serviceconfig.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +const serviceconfig = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-04ce4a7d"]]); +export { + serviceconfig as default +}; +//# sourceMappingURL=serviceconfig-DRqotJ7A.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-DRqotJ7A.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-DRqotJ7A.js.map new file mode 100644 index 00000000..0f99800c --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-DRqotJ7A.js.map @@ -0,0 +1 @@ +{"version":3,"file":"serviceconfig-DRqotJ7A.js","sources":["../../../../../../../app/composables/useLangOptions.ts","../../../../../../../app/components/LangSelect.vue","../../../../../../../app/pages/serviceconfig.vue"],"sourcesContent":["// BCP-47 语言全集(与后端 modules/echomeet/core.go 的转写/翻译口径一致,\n// 避免在第三方服务里配出运行时并不支持的语言)。\n// code 为存储值(第三方服务 languages 字段里逗号分隔、default_lang 存单个);name 仅前端展示。\nexport interface LangOption {\n code: string\n name: string\n}\n\nexport const LANG_OPTIONS: LangOption[] = [\n { code: 'zh-CN', name: '中文(简体)' },\n { code: 'zh-TW', name: '中文(繁体)' },\n { code: 'zh-HK', name: '中文(香港)' },\n { code: 'yue-HK', name: '粤语' },\n { code: 'en-US', name: '英语(美国)' },\n { code: 'en-GB', name: '英语(英国)' },\n { code: 'ja-JP', name: '日语' },\n { code: 'ko-KR', name: '韩语' },\n { code: 'id-ID', name: '印尼语' },\n { code: 'es-ES', name: '西班牙语(西)' },\n { code: 'es-MX', name: '西班牙语(墨)' },\n { code: 'pt-BR', name: '葡萄牙语(巴西)' },\n { code: 'pt-PT', name: '葡萄牙语(葡)' },\n { code: 'de-DE', name: '德语' },\n { code: 'fr-FR', name: '法语' },\n { code: 'it-IT', name: '意大利语' },\n { code: 'nl-NL', name: '荷兰语' },\n { code: 'pl-PL', name: '波兰语' },\n { code: 'ru-RU', name: '俄语' },\n { code: 'uk-UA', name: '乌克兰语' },\n { code: 'tr-TR', name: '土耳其语' },\n { code: 'vi-VN', name: '越南语' },\n { code: 'th-TH', name: '泰语' },\n { code: 'ms-MY', name: '马来语' },\n { code: 'fil-PH', name: '菲律宾语' },\n { code: 'ar-SA', name: '阿拉伯语' },\n]\n\n// langName 按 BCP-47 码查中文名,未知码原样返回。\nexport function langName(code: string): string {\n const o = LANG_OPTIONS.find((x) => x.code === code)\n return o ? o.name : code\n}\n","\n\n\n\n\n\n","\n\n\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderClass","_ssrRenderList","_ssrInterpolate","_ssrIncludeBooleanAttr","_ssrRenderAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderStyle","_ssrRenderDynamicModel"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-DRqotJ7A.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-DRqotJ7A.js.map.json new file mode 100644 index 00000000..76914697 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-DRqotJ7A.js.map.json @@ -0,0 +1 @@ +{"file":"serviceconfig-DRqotJ7A.js","mappings":"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","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderClass","_ssrRenderList","_ssrInterpolate","_ssrIncludeBooleanAttr","_ssrRenderAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderStyle","_ssrRenderDynamicModel"],"sources":["../../../../../../../app/composables/useLangOptions.ts","../../../../../../../app/components/LangSelect.vue","../../../../../../../app/pages/serviceconfig.vue"],"sourcesContent":["// BCP-47 语言全集(与后端 modules/echomeet/core.go 的转写/翻译口径一致,\n// 避免在第三方服务里配出运行时并不支持的语言)。\n// code 为存储值(第三方服务 languages 字段里逗号分隔、default_lang 存单个);name 仅前端展示。\nexport interface LangOption {\n code: string\n name: string\n}\n\nexport const LANG_OPTIONS: LangOption[] = [\n { code: 'zh-CN', name: '中文(简体)' },\n { code: 'zh-TW', name: '中文(繁体)' },\n { code: 'zh-HK', name: '中文(香港)' },\n { code: 'yue-HK', name: '粤语' },\n { code: 'en-US', name: '英语(美国)' },\n { code: 'en-GB', name: '英语(英国)' },\n { code: 'ja-JP', name: '日语' },\n { code: 'ko-KR', name: '韩语' },\n { code: 'id-ID', name: '印尼语' },\n { code: 'es-ES', name: '西班牙语(西)' },\n { code: 'es-MX', name: '西班牙语(墨)' },\n { code: 'pt-BR', name: '葡萄牙语(巴西)' },\n { code: 'pt-PT', name: '葡萄牙语(葡)' },\n { code: 'de-DE', name: '德语' },\n { code: 'fr-FR', name: '法语' },\n { code: 'it-IT', name: '意大利语' },\n { code: 'nl-NL', name: '荷兰语' },\n { code: 'pl-PL', name: '波兰语' },\n { code: 'ru-RU', name: '俄语' },\n { code: 'uk-UA', name: '乌克兰语' },\n { code: 'tr-TR', name: '土耳其语' },\n { code: 'vi-VN', name: '越南语' },\n { code: 'th-TH', name: '泰语' },\n { code: 'ms-MY', name: '马来语' },\n { code: 'fil-PH', name: '菲律宾语' },\n { code: 'ar-SA', name: '阿拉伯语' },\n]\n\n// langName 按 BCP-47 码查中文名,未知码原样返回。\nexport function langName(code: string): string {\n const o = LANG_OPTIONS.find((x) => x.code === code)\n return o ? o.name : code\n}\n","\n\n\n\n\n\n","\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-BjhBSOse.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-BjhBSOse.js new file mode 100644 index 00000000..839fa8ec --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-BjhBSOse.js @@ -0,0 +1,5 @@ +const LangSelect_vue_vue_type_style_index_0_scoped_4903af59_lang = ".lang-select[data-v-4903af59]{font-size:12px}.lang-chips[data-v-4903af59]{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px;min-height:22px}.lang-disabled[data-v-4903af59]{opacity:.5;pointer-events:none}.lang-chip[data-v-4903af59]{display:inline-flex;align-items:center;gap:2px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;background:#ede9fe;color:#6d28d9;padding:1px 6px;border-radius:9999px}.lang-chip-name[data-v-4903af59],.lang-x[data-v-4903af59]{color:#a78bfa;margin-left:3px}.lang-x[data-v-4903af59]{font-weight:700;line-height:1}.lang-x[data-v-4903af59]:hover{color:#6d28d9}.lang-empty[data-v-4903af59]{font-size:11px;color:#94a3b8}.lang-dd[data-v-4903af59]{position:relative}.lang-dd-sum[data-v-4903af59]{cursor:pointer;font-size:12px;color:#7c3aed;list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lang-dd-sum[data-v-4903af59]::-webkit-details-marker{display:none}.lang-dd-panel[data-v-4903af59]{position:absolute;z-index:30;margin-top:4px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 24px #0f172a24;padding:6px;max-height:260px;overflow-y:auto;width:230px}.lang-opt[data-v-4903af59]{display:flex;align-items:center;gap:6px;padding:3px 6px;border-radius:6px;cursor:pointer}.lang-opt[data-v-4903af59]:hover{background:#f1f5f9}.lang-opt-code[data-v-4903af59]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:#334155}.lang-opt-name[data-v-4903af59]{color:#94a3b8}"; +export { + LangSelect_vue_vue_type_style_index_0_scoped_4903af59_lang as default +}; +//# sourceMappingURL=serviceconfig-styles-1.mjs-BjhBSOse.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-BjhBSOse.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-BjhBSOse.js.map new file mode 100644 index 00000000..14d65e42 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-BjhBSOse.js.map @@ -0,0 +1 @@ +{"version":3,"file":"serviceconfig-styles-1.mjs-BjhBSOse.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-BjhBSOse.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-BjhBSOse.js.map.json new file mode 100644 index 00000000..5a8f78ec --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-BjhBSOse.js.map.json @@ -0,0 +1 @@ +{"file":"serviceconfig-styles-1.mjs-BjhBSOse.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-C3NfMX4J.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-C3NfMX4J.js deleted file mode 100644 index 479973eb..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-C3NfMX4J.js +++ /dev/null @@ -1,5 +0,0 @@ -const serviceconfig_vue_vue_type_style_index_0_scoped_97419e3c_lang = ".svc-item[data-v-97419e3c]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid #eef2f7;background:#fff;cursor:pointer;transition:all .15s}.svc-item[data-v-97419e3c]:hover{border-color:#c7d2fe;background:#f5f3ff}.svc-item.active[data-v-97419e3c]{border-color:#6366f1;background:linear-gradient(135deg,#eef2ff,#f5f3ff);box-shadow:0 4px 12px #6366f11f}.svc-logo[data-v-97419e3c]{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;color:#fff;font-weight:700}.cat-chip[data-v-97419e3c]{font-weight:700;padding:2px 7px}.cat-chip[data-v-97419e3c],.lock-badge[data-v-97419e3c]{display:inline-flex;font-size:10px;border-radius:6px}.lock-badge[data-v-97419e3c]{align-items:center;gap:3px;font-weight:600;padding:1px 7px;background:#fef2f2;color:#dc2626}.inherit-badge[data-v-97419e3c]{background:#f1f5f9;color:#94a3b8}.inherit-badge[data-v-97419e3c],.override-badge[data-v-97419e3c]{font-size:10px;font-weight:600;padding:1px 7px;border-radius:6px}.override-badge[data-v-97419e3c]{background:#fef3c7;color:#b45309}.field-input[data-v-97419e3c]{border:1px solid #e2e8f0;border-radius:7px;padding:5px 9px;font-size:12.5px;font-family:SF Mono,Menlo,monospace;width:100%}.field-input[data-v-97419e3c]:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;outline:none}.sync-overlay[data-v-97419e3c]{position:fixed;inset:0;background:#0f172a73;z-index:100;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sync-box[data-v-97419e3c]{background:#fff;border-radius:20px;padding:28px;width:520px;max-width:95vw;box-shadow:0 24px 80px #0000002e}.sync-region-grid[data-v-97419e3c]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.sync-region-item[data-v-97419e3c]{display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:9px;border:1.5px solid #e2e8f0;cursor:pointer;transition:all .15s;font-size:13px;font-weight:500;color:#475569}.sync-region-item[data-v-97419e3c]:hover{border-color:#c7d2fe;background:#f5f3ff}.sync-region-item.checked[data-v-97419e3c]{border-color:#6366f1;background:#eef2ff;color:#4338ca}"; -export { - serviceconfig_vue_vue_type_style_index_0_scoped_97419e3c_lang as default -}; -//# sourceMappingURL=serviceconfig-styles-1.mjs-C3NfMX4J.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-C3NfMX4J.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-C3NfMX4J.js.map deleted file mode 100644 index 1986d5a1..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-C3NfMX4J.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"serviceconfig-styles-1.mjs-C3NfMX4J.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-C3NfMX4J.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-C3NfMX4J.js.map.json deleted file mode 100644 index 5f586d67..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-1.mjs-C3NfMX4J.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"serviceconfig-styles-1.mjs-C3NfMX4J.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-2.mjs-fse8fz7H.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-2.mjs-fse8fz7H.js new file mode 100644 index 00000000..02a8fd02 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-2.mjs-fse8fz7H.js @@ -0,0 +1,5 @@ +const serviceconfig_vue_vue_type_style_index_0_scoped_04ce4a7d_lang = ".svc-item[data-v-04ce4a7d]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid #eef2f7;background:#fff;cursor:pointer;transition:all .15s}.svc-item[data-v-04ce4a7d]:hover{border-color:#c7d2fe;background:#f5f3ff}.svc-item.active[data-v-04ce4a7d]{border-color:#6366f1;background:linear-gradient(135deg,#eef2ff,#f5f3ff);box-shadow:0 4px 12px #6366f11f}.svc-logo[data-v-04ce4a7d]{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;color:#fff;font-weight:700}.cat-chip[data-v-04ce4a7d]{font-weight:700;padding:2px 7px}.cat-chip[data-v-04ce4a7d],.provider-chip[data-v-04ce4a7d]{display:inline-flex;font-size:10px;border-radius:6px}.provider-chip[data-v-04ce4a7d]{font-weight:600;padding:1px 7px;background:#eef2ff;color:#4338ca;font-family:SF Mono,Menlo,monospace}.wizard-steps[data-v-04ce4a7d]{display:flex;align-items:center;gap:8px}.wstep[data-v-04ce4a7d]{font-size:12px;font-weight:600;color:#94a3b8;padding:5px 12px;border-radius:8px;background:#f1f5f9;cursor:pointer;white-space:nowrap}.wstep.on[data-v-04ce4a7d]{color:#4338ca;background:#eef2ff}.wstep.cur[data-v-04ce4a7d]{color:#fff;background:#6366f1}.wstep.disabled[data-v-04ce4a7d]{cursor:not-allowed;opacity:.6}.wline[data-v-04ce4a7d]{flex:1;height:1px;background:#e2e8f0}.type-grid[data-v-04ce4a7d]{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.type-card[data-v-04ce4a7d]{display:flex;flex-direction:column;align-items:flex-start;padding:14px;border-radius:12px;border:1.5px solid #e2e8f0;cursor:pointer;transition:all .15s;background:#fff}.type-card[data-v-04ce4a7d]:hover{border-color:#c7d2fe;background:#f5f3ff}.type-card.on[data-v-04ce4a7d]{border-color:#6366f1;background:#eef2ff;box-shadow:0 4px 12px #6366f11f}.lock-badge[data-v-04ce4a7d]{display:inline-flex;align-items:center;gap:3px;background:#fef2f2;color:#dc2626}.inherit-badge[data-v-04ce4a7d],.lock-badge[data-v-04ce4a7d]{font-size:10px;font-weight:600;padding:1px 7px;border-radius:6px}.inherit-badge[data-v-04ce4a7d]{background:#f1f5f9;color:#94a3b8}.override-badge[data-v-04ce4a7d]{background:#fef3c7;color:#b45309}.disabled-badge[data-v-04ce4a7d],.override-badge[data-v-04ce4a7d]{font-size:10px;font-weight:600;padding:1px 7px;border-radius:6px}.disabled-badge[data-v-04ce4a7d]{background:#fee2e2;color:#b91c1c}.field-input[data-v-04ce4a7d]{border:1px solid #e2e8f0;border-radius:7px;padding:5px 9px;font-size:12.5px;font-family:SF Mono,Menlo,monospace;width:100%}.field-input[data-v-04ce4a7d]:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a;outline:none}.field-input[data-v-04ce4a7d]:disabled{background:#f8fafc;color:#cbd5e1}.sync-overlay[data-v-04ce4a7d]{position:fixed;inset:0;background:#0f172a73;z-index:100;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sync-box[data-v-04ce4a7d]{padding:28px;width:520px;max-width:95vw}.sync-box[data-v-04ce4a7d],.tpl-box[data-v-04ce4a7d]{background:#fff;border-radius:20px;box-shadow:0 24px 80px #0000002e}.tpl-box[data-v-04ce4a7d]{padding:24px;width:620px;max-width:96vw;max-height:88vh;overflow:auto}.tpl-list[data-v-04ce4a7d]{max-height:60vh;overflow:auto}.tpl-row[data-v-04ce4a7d]{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;border:1px solid #eef2f7;margin-bottom:6px}.tpl-row[data-v-04ce4a7d]:hover{border-color:#c7d2fe;background:#f8fafc}.sync-region-grid[data-v-04ce4a7d]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}.sync-region-item[data-v-04ce4a7d]{display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:9px;border:1.5px solid #e2e8f0;cursor:pointer;transition:all .15s;font-size:13px;font-weight:500;color:#475569}.sync-region-item[data-v-04ce4a7d]:hover{border-color:#c7d2fe;background:#f5f3ff}.sync-region-item.checked[data-v-04ce4a7d]{border-color:#6366f1;background:#eef2ff;color:#4338ca}"; +export { + serviceconfig_vue_vue_type_style_index_0_scoped_04ce4a7d_lang as default +}; +//# sourceMappingURL=serviceconfig-styles-2.mjs-fse8fz7H.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-2.mjs-fse8fz7H.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-2.mjs-fse8fz7H.js.map new file mode 100644 index 00000000..c68c81df --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-2.mjs-fse8fz7H.js.map @@ -0,0 +1 @@ +{"version":3,"file":"serviceconfig-styles-2.mjs-fse8fz7H.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-2.mjs-fse8fz7H.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-2.mjs-fse8fz7H.js.map.json new file mode 100644 index 00000000..4d330118 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles-2.mjs-fse8fz7H.js.map.json @@ -0,0 +1 @@ +{"file":"serviceconfig-styles-2.mjs-fse8fz7H.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles.BE2TPkT0.mjs b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles.BE2TPkT0.mjs deleted file mode 100644 index f7352291..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles.BE2TPkT0.mjs +++ /dev/null @@ -1,4 +0,0 @@ -import style_0 from "./serviceconfig-styles-1.mjs-C3NfMX4J.js"; -export default [ - style_0 -] \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles.BhKw9izr.mjs b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles.BhKw9izr.mjs new file mode 100644 index 00000000..eaa0e1ba --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/serviceconfig-styles.BhKw9izr.mjs @@ -0,0 +1,6 @@ +import style_0 from "./serviceconfig-styles-1.mjs-BjhBSOse.js"; +import style_1 from "./serviceconfig-styles-2.mjs-fse8fz7H.js"; +export default [ + style_0, + style_1 +] \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-BwtTR9dH.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/state-DQnwRar-.js similarity index 59% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-BwtTR9dH.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/state-DQnwRar-.js index 3986966f..10a18ab9 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-BwtTR9dH.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/state-DQnwRar-.js @@ -29,28 +29,7 @@ function useState(...args) { } return state; } -let _counter = 0; -function useToast() { - const toasts = useState("app:toasts", () => []); - function toast(msg, type = "info", duration = 3e3) { - const id = ++_counter; - toasts.value.push({ id, type, msg }); - if (duration > 0) { - setTimeout(() => { - toasts.value = toasts.value.filter((t) => t.id !== id); - }, duration); - } - } - return { - toasts, - toast, - success: (msg, duration) => toast(msg, "success", duration), - error: (msg, duration) => toast(msg, "error", duration), - info: (msg, duration) => toast(msg, "info", duration), - warn: (msg, duration) => toast(msg, "warning", duration) - }; -} export { - useToast as u + useState as u }; -//# sourceMappingURL=useToast-BwtTR9dH.js.map +//# sourceMappingURL=state-DQnwRar-.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/state-DQnwRar-.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/state-DQnwRar-.js.map new file mode 100644 index 00000000..7be09b60 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/state-DQnwRar-.js.map @@ -0,0 +1 @@ +{"version":3,"file":"state-DQnwRar-.js","sources":["../../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/state.js"],"sourcesContent":["import { isRef, toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useStateDefaults } from \"#build/nuxt.config.mjs\";\nconst useStateKeyPrefix = \"$s\";\nexport function useState(...args) {\n const autoKey = typeof args[args.length - 1] === \"string\" ? args.pop() : void 0;\n if (typeof args[0] !== \"string\") {\n args.unshift(autoKey);\n }\n const [_key, init] = args;\n if (!_key || typeof _key !== \"string\") {\n throw new TypeError(\"[nuxt] [useState] key must be a string: \" + _key);\n }\n if (init !== void 0 && typeof init !== \"function\") {\n throw new Error(\"[nuxt] [useState] init must be a function: \" + init);\n }\n const key = useStateKeyPrefix + _key;\n const nuxtApp = useNuxtApp();\n const state = toRef(nuxtApp.payload.state, key);\n if (init) {\n nuxtApp._state[key] ??= { _default: init };\n }\n if (state.value === void 0 && init) {\n const initialValue = init();\n if (isRef(initialValue)) {\n nuxtApp.payload.state[key] = initialValue;\n return initialValue;\n }\n state.value = initialValue;\n }\n return state;\n}\nexport function clearNuxtState(keys, opts) {\n const reset = opts?.reset ?? useStateDefaults.resetOnClear;\n const nuxtApp = useNuxtApp();\n const _allKeys = Object.keys(nuxtApp.payload.state).filter((key) => key.startsWith(useStateKeyPrefix)).map((key) => key.substring(useStateKeyPrefix.length));\n const _keys = !keys ? _allKeys : typeof keys === \"function\" ? _allKeys.filter(keys) : toArray(keys);\n for (const _key of _keys) {\n const key = useStateKeyPrefix + _key;\n if (key in nuxtApp.payload.state) {\n if (reset && nuxtApp._state[key]) {\n nuxtApp.payload.state[key] = nuxtApp._state[key]._default();\n } else {\n nuxtApp.payload.state[key] = void 0;\n }\n }\n }\n}\n"],"names":[],"mappings":";;AAIA,MAAM,oBAAoB;AACnB,SAAS,YAAY,MAAM;AAChC,QAAM,UAAU,OAAO,KAAK,KAAK,SAAS,CAAC,MAAM,WAAW,KAAK,IAAG,IAAK;AACzE,MAAI,OAAO,KAAK,CAAC,MAAM,UAAU;AAC/B,SAAK,QAAQ,OAAO;AAAA,EACtB;AACA,QAAM,CAAC,MAAM,IAAI,IAAI;AACrB,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,UAAM,IAAI,UAAU,6CAA6C,IAAI;AAAA,EACvE;AACA,MAAI,SAAS,UAAU,OAAO,SAAS,YAAY;AACjD,UAAM,IAAI,MAAM,gDAAgD,IAAI;AAAA,EACtE;AACA,QAAM,MAAM,oBAAoB;AAChC,QAAM,UAAU,WAAU;AAC1B,QAAM,QAAQ,MAAM,QAAQ,QAAQ,OAAO,GAAG;AAC9C,MAAI,MAAM;AACR,YAAQ,OAAO,GAAG,MAAM,EAAE,UAAU,KAAI;AAAA,EAC1C;AACA,MAAI,MAAM,UAAU,UAAU,MAAM;AAClC,UAAM,eAAe,KAAI;AACzB,QAAI,MAAM,YAAY,GAAG;AACvB,cAAQ,QAAQ,MAAM,GAAG,IAAI;AAC7B,aAAO;AAAA,IACT;AACA,UAAM,QAAQ;AAAA,EAChB;AACA,SAAO;AACT;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/state-DQnwRar-.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/state-DQnwRar-.js.map.json new file mode 100644 index 00000000..65be4c82 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/state-DQnwRar-.js.map.json @@ -0,0 +1 @@ +{"file":"state-DQnwRar-.js","mappings":";;AAIA,MAAM,oBAAoB;AACnB,SAAS,YAAY,MAAM;AAChC,QAAM,UAAU,OAAO,KAAK,KAAK,SAAS,CAAC,MAAM,WAAW,KAAK,IAAG,IAAK;AACzE,MAAI,OAAO,KAAK,CAAC,MAAM,UAAU;AAC/B,SAAK,QAAQ,OAAO;AAAA,EACtB;AACA,QAAM,CAAC,MAAM,IAAI,IAAI;AACrB,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,UAAM,IAAI,UAAU,6CAA6C,IAAI;AAAA,EACvE;AACA,MAAI,SAAS,UAAU,OAAO,SAAS,YAAY;AACjD,UAAM,IAAI,MAAM,gDAAgD,IAAI;AAAA,EACtE;AACA,QAAM,MAAM,oBAAoB;AAChC,QAAM,UAAU,WAAU;AAC1B,QAAM,QAAQ,MAAM,QAAQ,QAAQ,OAAO,GAAG;AAC9C,MAAI,MAAM;AACR,YAAQ,OAAO,GAAG,MAAM,EAAE,UAAU,KAAI;AAAA,EAC1C;AACA,MAAI,MAAM,UAAU,UAAU,MAAM;AAClC,UAAM,eAAe,KAAI;AACzB,QAAI,MAAM,YAAY,GAAG;AACvB,cAAQ,QAAQ,MAAM,GAAG,IAAI;AAC7B,aAAO;AAAA,IACT;AACA,UAAM,QAAQ;AAAA,EAChB;AACA,SAAO;AACT;","names":[],"sources":["../../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/state.js"],"sourcesContent":["import { isRef, toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useStateDefaults } from \"#build/nuxt.config.mjs\";\nconst useStateKeyPrefix = \"$s\";\nexport function useState(...args) {\n const autoKey = typeof args[args.length - 1] === \"string\" ? args.pop() : void 0;\n if (typeof args[0] !== \"string\") {\n args.unshift(autoKey);\n }\n const [_key, init] = args;\n if (!_key || typeof _key !== \"string\") {\n throw new TypeError(\"[nuxt] [useState] key must be a string: \" + _key);\n }\n if (init !== void 0 && typeof init !== \"function\") {\n throw new Error(\"[nuxt] [useState] init must be a function: \" + init);\n }\n const key = useStateKeyPrefix + _key;\n const nuxtApp = useNuxtApp();\n const state = toRef(nuxtApp.payload.state, key);\n if (init) {\n nuxtApp._state[key] ??= { _default: init };\n }\n if (state.value === void 0 && init) {\n const initialValue = init();\n if (isRef(initialValue)) {\n nuxtApp.payload.state[key] = initialValue;\n return initialValue;\n }\n state.value = initialValue;\n }\n return state;\n}\nexport function clearNuxtState(keys, opts) {\n const reset = opts?.reset ?? useStateDefaults.resetOnClear;\n const nuxtApp = useNuxtApp();\n const _allKeys = Object.keys(nuxtApp.payload.state).filter((key) => key.startsWith(useStateKeyPrefix)).map((key) => key.substring(useStateKeyPrefix.length));\n const _keys = !keys ? _allKeys : typeof keys === \"function\" ? _allKeys.filter(keys) : toArray(keys);\n for (const _key of _keys) {\n const key = useStateKeyPrefix + _key;\n if (key in nuxtApp.payload.state) {\n if (reset && nuxtApp._state[key]) {\n nuxtApp.payload.state[key] = nuxtApp._state[key]._default();\n } else {\n nuxtApp.payload.state[key] = void 0;\n }\n }\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-CB_u8NxU.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-CB_u8NxU.js.map.json deleted file mode 100644 index 76542176..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-CB_u8NxU.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"statlog-CB_u8NxU.js","mappings":"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","names":["_ssrRenderList","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate","_ssrLooseEqual","_ssrRenderAttr","_ssrRenderStyle","_ssrRenderClass"],"sources":["../../../../../../../app/pages/statlog.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-CB_u8NxU.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-DjkPa7zJ.js similarity index 98% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-CB_u8NxU.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-DjkPa7zJ.js index 9aa2bc45..7149b759 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-CB_u8NxU.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-DjkPa7zJ.js @@ -1,11 +1,13 @@ import { defineComponent, ref, computed, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrRenderList, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrInterpolate, ssrRenderStyle, ssrRenderClass } from "vue/server-renderer"; -import { u as useApi } from "./useApi-B7CB0Cnn.js"; -import { u as useToast } from "./useToast-BwtTR9dH.js"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; import { _ as _export_sfc } from "../server.mjs"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@nuxt+nitro-server@4.4.8_@babel+plugin-syntax-typescript@7.29.7_@babel+core@7.29.7__db0_5045ebd3802f96c9dd021f3300fcdf4c/node_modules/@nuxt/nitro-server/dist/runtime/h3-compat.mjs"; import "./auth-QFkCoU1C.js"; import "pinia"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; import "#internal/nuxt/paths"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; @@ -140,4 +142,4 @@ const statlog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-74 export { statlog as default }; -//# sourceMappingURL=statlog-CB_u8NxU.js.map +//# sourceMappingURL=statlog-DjkPa7zJ.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-CB_u8NxU.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-DjkPa7zJ.js.map similarity index 73% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-CB_u8NxU.js.map rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-DjkPa7zJ.js.map index a5d2bf4c..3d4131c9 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-CB_u8NxU.js.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-DjkPa7zJ.js.map @@ -1 +1 @@ -{"version":3,"file":"statlog-CB_u8NxU.js","sources":["../../../../../../../app/pages/statlog.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderList","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate","_ssrLooseEqual","_ssrRenderAttr","_ssrRenderStyle","_ssrRenderClass"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"statlog-DjkPa7zJ.js","sources":["../../../../../../../app/pages/statlog.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderList","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate","_ssrLooseEqual","_ssrRenderAttr","_ssrRenderStyle","_ssrRenderClass"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-DjkPa7zJ.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-DjkPa7zJ.js.map.json new file mode 100644 index 00000000..e7db9288 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/statlog-DjkPa7zJ.js.map.json @@ -0,0 +1 @@ +{"file":"statlog-DjkPa7zJ.js","mappings":"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","names":["_ssrRenderList","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrInterpolate","_ssrLooseEqual","_ssrRenderAttr","_ssrRenderStyle","_ssrRenderClass"],"sources":["../../../../../../../app/pages/statlog.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-C0cMeH0T.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-C0cMeH0T.js new file mode 100644 index 00000000..a7c49cfd --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-C0cMeH0T.js @@ -0,0 +1,297 @@ +import { defineComponent, ref, reactive, computed, useSSRContext } from "vue"; +import { ssrRenderAttrs, ssrRenderStyle, ssrRenderList, ssrRenderClass, ssrRenderAttr, ssrInterpolate, ssrIncludeBooleanAttr, ssrLooseContain, ssrRenderDynamicModel, ssrLooseEqual } from "vue/server-renderer"; +import { u as useToast } from "./useToast-C76a6bSX.js"; +import { _ as _export_sfc } from "../server.mjs"; +import "./state-DQnwRar-.js"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; +import "#internal/nuxt/paths"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/unctx@2.5.0/node_modules/unctx/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@nuxt+nitro-server@4.4.8_@babel+plugin-syntax-typescript@7.29.7_@babel+core@7.29.7__db0_5045ebd3802f96c9dd021f3300fcdf4c/node_modules/@nuxt/nitro-server/dist/runtime/h3-compat.mjs"; +import "pinia"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/defu@6.1.7/node_modules/defu/dist/defu.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ufo@1.6.4/node_modules/ufo/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/perfect-debounce@2.1.0/node_modules/perfect-debounce/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/index.mjs"; +import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs"; +const _sfc_main = /* @__PURE__ */ defineComponent({ + __name: "systemconfig", + __ssrInlineRender: true, + setup(__props) { + useToast(); + const categories = [ + { id: "storage", label: "对象存储", desc: "固件 / 头像 / 文件", color: "#6366f1", icon: "M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8" }, + { id: "mail", label: "邮件服务", desc: "生产通知 / 厂家发信", color: "#f59e0b", icon: "M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" }, + { id: "translate", label: "翻译服务", desc: "后台文案多语言同步", color: "#14b8a6", icon: "M3 5h12M9 3v2m1.048 9.5A18.022 18.022 0 016.412 9m6.088 9h7M11 21l5-10 5 10M12.751 5C11.783 10.77 8.07 15.61 3 18.129" } + ]; + const curCat = ref("storage"); + const mail = reactive({ + enable: true, + host: "smtp.exmail.qq.com", + port: "465", + secure: "SSL", + user: "noreply@yunyan.com", + pass: "", + _showPass: false, + fromName: "云岩科技", + cc: "ops@yunyan.com", + testTo: "" + }); + const secureOptions = ["SSL", "STARTTLS", "不加密"]; + function svcEnabled(id) { + if (id === "storage") return true; + if (id === "mail") return mail.enable; + if (id === "translate") return tActiveProvider.value?.enable ?? false; + return false; + } + const tProviders = reactive([ + { + id: "volc", + name: "火山引擎翻译", + short: "火山", + tag: "Volcengine MT", + color: "#1664ff", + enable: true, + fields: [ + { key: "region", label: "Region", value: "cn-beijing", mono: true, required: true }, + { key: "accessKey", label: "AccessKey", value: "AKLTZjJmODdk****", mono: true, encrypted: true, required: true }, + { key: "secretKey", label: "SecretKey", value: "", mono: true, encrypted: true, required: true, hint: "留空保留原密文" } + ] + }, + { + id: "aliyun", + name: "阿里云翻译", + short: "阿里", + tag: "Aliyun MT", + color: "#ff6a00", + enable: true, + fields: [ + { key: "region", label: "Region", value: "cn-hangzhou", mono: true, required: true }, + { key: "accessKeyId", label: "AccessKey ID", value: "LTAI5txxxxxxxx", mono: true, encrypted: true, required: true }, + { key: "accessKeySecret", label: "AccessKey Secret", value: "", mono: true, encrypted: true, required: true, hint: "留空保留原密文" }, + { key: "scene", label: "翻译场景", value: "general", mono: true, hint: "general / social / ecommerce / tech" } + ] + }, + { + id: "google", + name: "Google 翻译", + short: "G", + tag: "Cloud Translation", + color: "#ea4335", + enable: false, + fields: [ + { key: "project", label: "Project ID", value: "", mono: true, required: true }, + { key: "apiKey", label: "API Key", value: "", mono: true, encrypted: true, required: true } + ] + }, + { + id: "deepl", + name: "DeepL", + short: "DL", + tag: "DeepL API", + color: "#0f2b46", + enable: false, + fields: [ + { key: "authKey", label: "Auth Key", value: "", mono: true, encrypted: true, required: true }, + { key: "plan", label: "套餐", value: "free", mono: true, hint: "free / pro" } + ] + } + ]); + const tActiveId = ref("volc"); + const tCurProvider = ref("volc"); + const tEditProvider = computed(() => tProviders.find((p) => p.id === tCurProvider.value)); + const tActiveProvider = computed(() => tProviders.find((p) => p.id === tActiveId.value)); + const providers = reactive([ + { + id: "aliyun", + name: "阿里云 OSS", + short: "OSS", + tag: "Aliyun", + color: "#ff6a00", + enable: true, + fields: [ + { key: "region", label: "Region", value: "oss-cn-shanghai", placeholder: "oss-cn-shanghai", mono: true, required: true }, + { key: "endpoint", label: "Endpoint", value: "oss-cn-shanghai.aliyuncs.com", mono: true, required: true }, + { key: "bucket", label: "Bucket", value: "yunyan-firmware", mono: true, required: true }, + { key: "accessKeyId", label: "AccessKey ID", value: "LTAI5txxxxxxxx", mono: true, encrypted: true, required: true }, + { key: "accessKeySecret", label: "AccessKey Secret", value: "", mono: true, encrypted: true, required: true, hint: "留空保留原密文" }, + { key: "domain", label: "自定义域名 (CDN)", value: "https://cdn.yunyan.com", wide: true, hint: "可选,配置后文件 URL 走该域名" } + ] + }, + { + id: "tencent", + name: "腾讯云 COS", + short: "COS", + tag: "Tencent", + color: "#00a4ff", + enable: true, + fields: [ + { key: "region", label: "Region", value: "ap-guangzhou", mono: true, required: true }, + { key: "appid", label: "AppId", value: "1253517901", mono: true, required: true }, + { key: "bucket", label: "Bucket", value: "yunyan-1253517901", mono: true, required: true }, + { key: "secretId", label: "SecretId", value: "AKIDxxxxxxxx", mono: true, encrypted: true, required: true }, + { key: "secretKey", label: "SecretKey", value: "", mono: true, encrypted: true, required: true, hint: "留空保留原密文" }, + { key: "domain", label: "自定义域名 (CDN)", value: "", wide: true, hint: "可选" } + ] + }, + { + id: "qiniu", + name: "七牛云 Kodo", + short: "KODO", + tag: "Qiniu", + color: "#00aaff", + enable: false, + fields: [ + { key: "zone", label: "存储区域", value: "", mono: true, required: true }, + { key: "bucket", label: "Bucket", value: "", mono: true, required: true }, + { key: "accessKey", label: "AccessKey", value: "", mono: true, encrypted: true, required: true }, + { key: "secretKey", label: "SecretKey", value: "", mono: true, encrypted: true, required: true }, + { key: "domain", label: "加速域名", value: "", wide: true } + ] + }, + { + id: "minio", + name: "MinIO", + short: "S3", + tag: "S3 兼容", + color: "#c72e49", + enable: false, + fields: [ + { key: "endpoint", label: "Endpoint", value: "", mono: true, required: true, placeholder: "minio.内网:9000" }, + { key: "bucket", label: "Bucket", value: "", mono: true, required: true }, + { key: "accessKey", label: "AccessKey", value: "", mono: true, encrypted: true, required: true }, + { key: "secretKey", label: "SecretKey", value: "", mono: true, encrypted: true, required: true }, + { key: "useSSL", label: "使用 HTTPS", value: "false", mono: true } + ] + } + ]); + const activeId = ref("aliyun"); + const curProvider = ref("aliyun"); + const editProvider = computed(() => providers.find((p) => p.id === curProvider.value)); + const activeProvider = computed(() => providers.find((p) => p.id === activeId.value)); + return (_ctx, _push, _parent, _attrs) => { + _push(`
演示效果·本页为 UI 演示,数据为本地 mock,未连接后端。确认方向后再接 console 接口。

系统配置

平台级服务配置:① 对象存储(固件 / 头像等文件,默认阿里云 OSS);② 邮件服务(生产环节给厂家发通知邮件);③ 翻译服务(后台配置多语言同步)。

`); + ssrRenderList(categories, (c) => { + _push(`
${ssrInterpolate(c.label)}
${ssrInterpolate(c.desc)}
`); + if (svcEnabled(c.id)) { + _push(``); + } else { + _push(``); + } + _push(`
`); + }); + _push(`
`); + if (curCat.value === "storage") { + _push(`
设备固件上传当前指向:${ssrInterpolate(activeProvider.value.name)}
固件包、用户头像等文件均上传至此存储桶。切换默认存储不影响历史文件 URL。
运行中
选择默认对象存储 (固件 / 头像等文件上传指向此服务)
`); + ssrRenderList(providers, (p) => { + _push(`
`); + if (p.enable) { + _push(`已配置`); + } else { + _push(`未配置`); + } + _push(`
${ssrInterpolate(p.name)}
${ssrInterpolate(p.tag)}
`); + }); + _push(`

${ssrInterpolate(editProvider.value.name)}

${ssrInterpolate(editProvider.value.tag)} · 对象存储

`); + if (curProvider.value !== activeId.value) { + _push(``); + } else { + _push(``); + } + _push(`
连接配置
`); + ssrRenderList(editProvider.value.fields, (f) => { + _push(`
`); + if (f.encrypted) { + _push(``); + } else { + _push(``); + } + _push(`
`); + if (f.hint) { + _push(`${ssrInterpolate(f.hint)}`); + } else { + _push(``); + } + _push(`
`); + }); + _push(`
上传规则
固件包路径前缀
/firmware/
头像路径前缀
/userAvatar/
签名 URL 有效期
3600 s
`); + } else if (curCat.value === "mail") { + _push(`
生产环节邮件通知
用于给目标厂家发送授权信息、公码批次、设备出货等通知邮件;账号告警也走此通道。

邮件服务

SMTP 发信

发信配置
测试发信
`); + } else if (curCat.value === "translate") { + _push(`
后台配置多语言同步
应用文案、通知 / 邮件模板、公告等后台配置内容,按目标语种自动翻译,保证多语言版本一致。
默认 ${ssrInterpolate(tActiveProvider.value.name)}
选择默认翻译服务 (后台多语言同步走此服务)
`); + ssrRenderList(tProviders, (p) => { + _push(`
`); + if (p.enable) { + _push(`已配置`); + } else { + _push(`未配置`); + } + _push(`
${ssrInterpolate(p.name)}
${ssrInterpolate(p.tag)}
`); + }); + _push(`

${ssrInterpolate(tEditProvider.value.name)}

${ssrInterpolate(tEditProvider.value.tag)} · 机器翻译

`); + if (tCurProvider.value !== tActiveId.value) { + _push(``); + } else { + _push(``); + } + _push(`
连接配置
`); + ssrRenderList(tEditProvider.value.fields, (f) => { + _push(`
`); + if (f.encrypted) { + _push(``); + } else { + _push(``); + } + _push(`
`); + if (f.hint) { + _push(`${ssrInterpolate(f.hint)}`); + } else { + _push(``); + } + _push(`
`); + }); + _push(`
`); + } else { + _push(``); + } + _push(`
`); + }; + } +}); +const _sfc_setup = _sfc_main.setup; +_sfc_main.setup = (props, ctx) => { + const ssrContext = useSSRContext(); + (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/systemconfig.vue"); + return _sfc_setup ? _sfc_setup(props, ctx) : void 0; +}; +const systemconfig = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-96602b99"]]); +export { + systemconfig as default +}; +//# sourceMappingURL=systemconfig-C0cMeH0T.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-C0cMeH0T.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-C0cMeH0T.js.map new file mode 100644 index 00000000..d9f2d205 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-C0cMeH0T.js.map @@ -0,0 +1 @@ +{"version":3,"file":"systemconfig-C0cMeH0T.js","sources":["../../../../../../../app/pages/systemconfig.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrRenderAttr","_ssrInterpolate","_ssrRenderClass","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrRenderDynamicModel","_ssrLooseEqual"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-C0cMeH0T.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-C0cMeH0T.js.map.json new file mode 100644 index 00000000..3dfc83de --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-C0cMeH0T.js.map.json @@ -0,0 +1 @@ +{"file":"systemconfig-C0cMeH0T.js","mappings":";;;;;;;;;;;;;;;;;;;;AA8T0B,aAAA;AAa1B,UAAM,aAAa;AAAA,MACjB,EAAE,IAAI,WAAW,OAAO,QAAQ,MAAM,gBAAgB,OAAO,WAAW,MAAM,6EAAA;AAAA,MAC9E,EAAE,IAAI,QAAQ,OAAO,QAAQ,MAAM,eAAe,OAAO,WAAW,MAAM,uGAAA;AAAA,MAC1E,EAAE,IAAI,aAAa,OAAO,QAAQ,MAAM,aAAa,OAAO,WAAW,MAAM,wHAAA;AAAA,IAAwH;AAGvM,UAAM,SAAS,IAAI,SAAS;AAG5B,UAAM,OAAO,SAAS;AAAA,MACpB,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,MACN,WAAW;AAAA,MACX,UAAU;AAAA,MACV,IAAI;AAAA,MACJ,QAAQ;AAAA,IAAA,CACT;AACD,UAAM,gBAAgB,CAAC,OAAO,YAAY,KAAK;AAM/C,aAAS,WAAW,IAAY;AAC9B,UAAI,OAAO,UAAW,QAAO;AAC7B,UAAI,OAAO,OAAQ,QAAO,KAAK;AAC/B,UAAI,OAAO,YAAa,QAAO,gBAAgB,OAAO,UAAU;AAChE,aAAO;AAAA,IACT;AAGA,UAAM,aAAa,SAAqB;AAAA,MACtC;AAAA,QACE,IAAI;AAAA,QAAQ,MAAM;AAAA,QAAU,OAAO;AAAA,QAAM,KAAK;AAAA,QAAiB,OAAO;AAAA,QAAW,QAAQ;AAAA,QACzF,QAAQ;AAAA,UACN,EAAE,KAAK,UAAU,OAAO,UAAU,OAAO,cAAc,MAAM,MAAM,UAAU,KAAA;AAAA,UAC7E,EAAE,KAAK,aAAa,OAAO,aAAa,OAAO,oBAAoB,MAAM,MAAM,WAAW,MAAM,UAAU,KAAA;AAAA,UAC1G,EAAE,KAAK,aAAa,OAAO,aAAa,OAAO,IAAI,MAAM,MAAM,WAAW,MAAM,UAAU,MAAM,MAAM,UAAA;AAAA,QAAU;AAAA,MAClH;AAAA,MAEF;AAAA,QACE,IAAI;AAAA,QAAU,MAAM;AAAA,QAAS,OAAO;AAAA,QAAM,KAAK;AAAA,QAAa,OAAO;AAAA,QAAW,QAAQ;AAAA,QACtF,QAAQ;AAAA,UACN,EAAE,KAAK,UAAU,OAAO,UAAU,OAAO,eAAe,MAAM,MAAM,UAAU,KAAA;AAAA,UAC9E,EAAE,KAAK,eAAe,OAAO,gBAAgB,OAAO,kBAAkB,MAAM,MAAM,WAAW,MAAM,UAAU,KAAA;AAAA,UAC7G,EAAE,KAAK,mBAAmB,OAAO,oBAAoB,OAAO,IAAI,MAAM,MAAM,WAAW,MAAM,UAAU,MAAM,MAAM,UAAA;AAAA,UACnH,EAAE,KAAK,SAAS,OAAO,QAAQ,OAAO,WAAW,MAAM,MAAM,MAAM,sCAAA;AAAA,QAAsC;AAAA,MAC3G;AAAA,MAEF;AAAA,QACE,IAAI;AAAA,QAAU,MAAM;AAAA,QAAa,OAAO;AAAA,QAAK,KAAK;AAAA,QAAqB,OAAO;AAAA,QAAW,QAAQ;AAAA,QACjG,QAAQ;AAAA,UACN,EAAE,KAAK,WAAW,OAAO,cAAc,OAAO,IAAI,MAAM,MAAM,UAAU,KAAA;AAAA,UACxE,EAAE,KAAK,UAAU,OAAO,WAAW,OAAO,IAAI,MAAM,MAAM,WAAW,MAAM,UAAU,KAAA;AAAA,QAAK;AAAA,MAC5F;AAAA,MAEF;AAAA,QACE,IAAI;AAAA,QAAS,MAAM;AAAA,QAAS,OAAO;AAAA,QAAM,KAAK;AAAA,QAAa,OAAO;AAAA,QAAW,QAAQ;AAAA,QACrF,QAAQ;AAAA,UACN,EAAE,KAAK,WAAW,OAAO,YAAY,OAAO,IAAI,MAAM,MAAM,WAAW,MAAM,UAAU,KAAA;AAAA,UACvF,EAAE,KAAK,QAAQ,OAAO,MAAM,OAAO,QAAQ,MAAM,MAAM,MAAM,aAAA;AAAA,QAAa;AAAA,MAC5E;AAAA,IACF,CACD;AACD,UAAM,YAAY,IAAI,MAAM;AAC5B,UAAM,eAAe,IAAI,MAAM;AAC/B,UAAM,gBAAgB,SAAS,MAAM,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,aAAa,KAAK,CAAE;AACzF,UAAM,kBAAkB,SAAS,MAAM,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,UAAU,KAAK,CAAE;AAgBxF,UAAM,YAAY,SAAqB;AAAA,MACrC;AAAA,QACE,IAAI;AAAA,QAAU,MAAM;AAAA,QAAW,OAAO;AAAA,QAAO,KAAK;AAAA,QAAU,OAAO;AAAA,QAAW,QAAQ;AAAA,QACtF,QAAQ;AAAA,UACN,EAAE,KAAK,UAAU,OAAO,UAAU,OAAO,mBAAmB,aAAa,mBAAmB,MAAM,MAAM,UAAU,KAAA;AAAA,UAClH,EAAE,KAAK,YAAY,OAAO,YAAY,OAAO,gCAAgC,MAAM,MAAM,UAAU,KAAA;AAAA,UACnG,EAAE,KAAK,UAAU,OAAO,UAAU,OAAO,mBAAmB,MAAM,MAAM,UAAU,KAAA;AAAA,UAClF,EAAE,KAAK,eAAe,OAAO,gBAAgB,OAAO,kBAAkB,MAAM,MAAM,WAAW,MAAM,UAAU,KAAA;AAAA,UAC7G,EAAE,KAAK,mBAAmB,OAAO,oBAAoB,OAAO,IAAI,MAAM,MAAM,WAAW,MAAM,UAAU,MAAM,MAAM,UAAA;AAAA,UACnH,EAAE,KAAK,UAAU,OAAO,eAAe,OAAO,0BAA0B,MAAM,MAAM,MAAM,oBAAA;AAAA,QAAoB;AAAA,MAChH;AAAA,MAEF;AAAA,QACE,IAAI;AAAA,QAAW,MAAM;AAAA,QAAW,OAAO;AAAA,QAAO,KAAK;AAAA,QAAW,OAAO;AAAA,QAAW,QAAQ;AAAA,QACxF,QAAQ;AAAA,UACN,EAAE,KAAK,UAAU,OAAO,UAAU,OAAO,gBAAgB,MAAM,MAAM,UAAU,KAAA;AAAA,UAC/E,EAAE,KAAK,SAAS,OAAO,SAAS,OAAO,cAAc,MAAM,MAAM,UAAU,KAAA;AAAA,UAC3E,EAAE,KAAK,UAAU,OAAO,UAAU,OAAO,qBAAqB,MAAM,MAAM,UAAU,KAAA;AAAA,UACpF,EAAE,KAAK,YAAY,OAAO,YAAY,OAAO,gBAAgB,MAAM,MAAM,WAAW,MAAM,UAAU,KAAA;AAAA,UACpG,EAAE,KAAK,aAAa,OAAO,aAAa,OAAO,IAAI,MAAM,MAAM,WAAW,MAAM,UAAU,MAAM,MAAM,UAAA;AAAA,UACtG,EAAE,KAAK,UAAU,OAAO,eAAe,OAAO,IAAI,MAAM,MAAM,MAAM,KAAA;AAAA,QAAK;AAAA,MAC3E;AAAA,MAEF;AAAA,QACE,IAAI;AAAA,QAAS,MAAM;AAAA,QAAY,OAAO;AAAA,QAAQ,KAAK;AAAA,QAAS,OAAO;AAAA,QAAW,QAAQ;AAAA,QACtF,QAAQ;AAAA,UACN,EAAE,KAAK,QAAQ,OAAO,QAAQ,OAAO,IAAI,MAAM,MAAM,UAAU,KAAA;AAAA,UAC/D,EAAE,KAAK,UAAU,OAAO,UAAU,OAAO,IAAI,MAAM,MAAM,UAAU,KAAA;AAAA,UACnE,EAAE,KAAK,aAAa,OAAO,aAAa,OAAO,IAAI,MAAM,MAAM,WAAW,MAAM,UAAU,KAAA;AAAA,UAC1F,EAAE,KAAK,aAAa,OAAO,aAAa,OAAO,IAAI,MAAM,MAAM,WAAW,MAAM,UAAU,KAAA;AAAA,UAC1F,EAAE,KAAK,UAAU,OAAO,QAAQ,OAAO,IAAI,MAAM,KAAA;AAAA,QAAK;AAAA,MACxD;AAAA,MAEF;AAAA,QACE,IAAI;AAAA,QAAS,MAAM;AAAA,QAAS,OAAO;AAAA,QAAM,KAAK;AAAA,QAAS,OAAO;AAAA,QAAW,QAAQ;AAAA,QACjF,QAAQ;AAAA,UACN,EAAE,KAAK,YAAY,OAAO,YAAY,OAAO,IAAI,MAAM,MAAM,UAAU,MAAM,aAAa,gBAAA;AAAA,UAC1F,EAAE,KAAK,UAAU,OAAO,UAAU,OAAO,IAAI,MAAM,MAAM,UAAU,KAAA;AAAA,UACnE,EAAE,KAAK,aAAa,OAAO,aAAa,OAAO,IAAI,MAAM,MAAM,WAAW,MAAM,UAAU,KAAA;AAAA,UAC1F,EAAE,KAAK,aAAa,OAAO,aAAa,OAAO,IAAI,MAAM,MAAM,WAAW,MAAM,UAAU,KAAA;AAAA,UAC1F,EAAE,KAAK,UAAU,OAAO,YAAY,OAAO,SAAS,MAAM,KAAA;AAAA,QAAK;AAAA,MACjE;AAAA,IACF,CACD;AAED,UAAM,WAAW,IAAI,QAAQ;AAC7B,UAAM,cAAc,IAAI,QAAQ;AAChC,UAAM,eAAe,SAAS,MAAM,UAAU,KAAK,CAAC,MAAM,EAAE,OAAO,YAAY,KAAK,CAAE;AACtF,UAAM,iBAAiB,SAAS,MAAM,UAAU,KAAK,CAAC,MAAM,EAAE,OAAO,SAAS,KAAK,CAAE;;AA/cR,YAAA,OAAAA,eAAA,MAAA,CAAA,oGAAAC,eAAA,EAAA,cAAA,WAAA,UAAA,qBAAA,SAAA,UAAA,CAAiE,CAAA,wiBAAAA,eAclH,EAAA,eAAA,aAAA,CAA8B,CAAA,iCAAAA,eAE/C,EAAA,SAAA,SAAA,eAAA,KAAiC,CAAA,+EAAA;AAGpBC,oBAAA,aAAL,MAAC;uDAGU,OAAA,UAAW,EAAE,GAAA,GAAE,UAAA,CAAA,CAAA,kDAGWD,eAAA,EAAA,YAAA,EAAE,MAAA,CAAK,CAAA,4LAAAE,cACwG,KAAG,EAAE,IAAI,CAAA,mJAG/GC,eAAA,EAAE,KAAK,CAAA,0EACNA,eAAA,EAAE,IAAI,CAAA,cAAA;YAEhD,WAAW,EAAE,EAAE,GAAA;;;;;;;;AAQpB,UAAA,OAAA,UAAM,WAAA;AAEgD,cAAA,8FAAAH,eAAA,EAAA,cAAA,2CAAA,UAAA,qBAAmF,iDAC3I,EAAA,SAAA,QAAA,UAAA,QAAA,iBAAA,QAAA,cAAA,WAAA,WAAA,QAAA,eAAA,UAAA,mBAAA,UAAA,eAAA,IAAA,CAAyI,CAAA,iCAAAA,eACvI,EAAA,SAAA,QAAA,UAAA,QAAA,SAAA,QAAyC,8XAGoBG,eAAA,eAAA,MAAe,IAAI,CAAA,kgBAAA;AAYzEF,sBAAA,YAAL,MAAC;yDAGU,YAAA,UAAgB,EAAE,IAAA,cAAkB,EAAE,OAAO,SAAA,MAAA,GAAQ,eAAA,CAAA,uHAIpBD,eAAA,EAAA,YAAA,EAAE,MAAA,CAAK,CAAA,qBAAOG,eAAA,EAAE,KAAK,CAAA,QAAA;AAC1D,cAAA,EAAE,QAAM;;;;;gGAGoCA,eAAA,EAAE,IAAI,CAAA,wEACdA,eAAA,EAAE,GAAG,CAAA,uBAAAC,eAAA,CAAA,EAAA,IACb,EAAE,OAAO,SAAA,SAAQ,cAAA,CAAA,CAAA,6EAAAC,sBACU,EAAE,OAAO,SAAA,KAAQ,IAAA,aAAA,EAAA,0CAAAF,eAC3E,EAAE,OAAO,SAAA,QAAQ,SAAA,MAAA,CAAA,uBAAA;AAAA;kRASuBH,eAAA,EAAA,YAAA,aAAA,MAAa,OAAK,OAAA,QAAA,QAAA,QAAA,UAAA,QAAA,CAAA,qBAAqDG,eAAA,aAAA,MAAa,KAAK,CAAA,iGAElFA,eAAA,aAAA,MAAa,IAAI,kEAC3BA,eAAA,aAAA,MAAa,GAAG,CAAA,+MAM5CE,sBAAA,MAAA,QAAA,aAAA,MAAa,MAAM,IAAnBC,gBAAA,aAAA,MAAa,QAAM,IAAA,IAAnB,aAAA,MAAa,MAAM,IAAA,aAAA,EAAA,uJAAA;AAGvB,YAAA,YAAA,UAAgB,SAAA,OAAQ;;;;;;sBAOvB,aAAA,MAAa,QAAM,CAAxB,MAAC;+BAAmFF,eAAA,CAAA,EAAA,cAAA,EAAE,KAAA,GAAI,cAAA,CAAA,CAAA,gHAG7FD,eAAA,EAAE,KAAK,CAAA,EAAA;AAAe,cAAA,EAAE,UAAQ;;;;;AACvB,cAAA,EAAE,WAAS;;;;;AAMhB,gBAAA,8DAAAI,sBAAA,EAAE,aAAS,CAAK,EAAE,QAAK,aAAA,QADrB,EAAE,OAAK,IAAA,IACfL,cAAA,QAAM,EAAE,aAAS,CAAK,EAAE,QAAK,aAAA,MAAA,YAEPE,eAAA,CAAA,EAAA,aAAA,EAAE,MAAI,SAAW,EAAE,UAAA,GAAS,sCAAA,CAAA,CAAA,IAAAF,cAClD,eAAa,EAAE,WAAW,CAAA,mBAAA;AAEf,cAAA,EAAE,WAAS;AAA6I,kBAAA,uIAAAC,eAAA,EAAE,QAAK,OAAA,IAAA,CAAA,WAAA;AAAA,UAAA,OAAA;;;;AAEnK,cAAA,EAAE,MAAI;AAA6C,kBAAA,iEAAAA,eAAA,EAAE,IAAI,CAAA,SAAA;AAAA,UAAA,OAAA;;;;;;MAuB7D,WAAA,OAAA,UAAM,QAAA;AAE2C,cAAA,8FAAAH,eAAA,EAAA,cAAA,WAAA,UAAA,oBAAA,CAAmD,CAAA,iCAAAA,eAC3G,EAAA,SAAA,QAAA,UAAA,QAAA,iBAAA,QAAA,cAAA,WAAA,WAAA,QAAA,eAAA,UAAA,mBAAA,UAAA,eAAA,KAAyI,CAAA,iCAAAA,eACvI,EAAA,SAAA,QAAA,UAAA,QAAA,SAAA,QAAyC,CAAA,4vBAAAA,eAWT,EAAA,YAAA,WAAA,OAAA,QAAA,QAAA,QAAA,UAAA,OAAA,CAAuE,CAAA,qYASxFK,sBAAA,MAAA,QAAA,KAAK,MAAM,IAAXC,gBAAA,KAAK,QAAM,IAAA,IAAX,KAAK,MAAM,IAAA,aAAA,EAAA,4gBAUbJ,cAAA,SAAA,KAAK,IAAI,CAAA,4TAITA,cAAA,SAAA,KAAK,IAAI,CAAA,4TAAA;AAKHD,sBAAA,gBAAL,MAAC;0BAA6BC,cAAA,SAAO,CAAC,CAAA,mBADtCG,sBAAA,MAAA,QAAA,KAAK,MAAM,IAAAC,gBAAX,KAAK,QACgC,CAAC,IAAAE,cADtC,KAAK,QACgC,CAAC,CAAA,IAAA,cAAA,qBAAK,CAAC,CAAA,WAAA;AAAA;AAK7C,cAAA,0LAAAN,cAAA,SAAA,KAAK,QAAQ,CAAA,sSAIbA,cAAA,SAAA,KAAK,IAAI,CAAA,gXAKWK,sBAAA,KAAK,YAAS,SAAA,YAAhC,KAAK,MAAI,IAAA,CAAA,GAAAL,cAAG,QAAM,KAAK,YAAS,SAAA,UAAA,CAAA,2OACiHC,eAAA,KAAK,YAAS,OAAA,IAAA,CAAA,sMAKjKD,cAAA,SAAA,KAAK,EAAE,iZAQPA,cAAA,SAAA,KAAK,MAAM,CAAA,gMAAA;AAAA,MAQnB,WAAA,OAAA,UAAM,aAAA;2HAE2C,EAAA,cAAA,WAAA,UAAA,oBAAA,CAAmD,CAAA,iCAAAF,eAC3G,EAAA,SAAA,QAAA,UAAA,QAAA,iBAAA,QAAA,cAAA,WAAA,WAAA,QAAA,eAAA,UAAA,mBAAA,UAAA,eAAA,KAAyI,CAAA,iCAAAA,eACvI,EAAA,SAAA,QAAA,UAAA,QAAA,SAAA,QAAyC,CAAA,wkBAAAA,eAMR,EAAA,cAAA,WAAA,UAAA,OAAA,CAAsC,yBAAOG,eAAA,gBAAA,MAAgB,IAAI,CAAA,0TAAA;AAS3FF,sBAAA,aAAL,MAAC;yDAGU,aAAA,UAAiB,EAAE,IAAA,cAAkB,EAAE,OAAO,UAAA,MAAA,GAAS,eAAA,CAAA,uHAItBD,eAAA,EAAA,YAAA,EAAE,MAAA,CAAK,CAAA,qBAAOG,eAAA,EAAE,KAAK,CAAA,QAAA;AAC1D,cAAA,EAAE,QAAM;;;;;gGAGoCA,eAAA,EAAE,IAAI,CAAA,wEACdA,eAAA,EAAE,GAAG,CAAA,uBAAAC,eAAA,CAAA,EAAA,IACb,EAAE,OAAO,UAAA,SAAS,cAAA,CAAA,CAAA,6EAAAC,sBACS,EAAE,OAAO,UAAA,KAAS,IAAA,aAAA,EAAA,0CAAAF,eAC5E,EAAE,OAAO,UAAA,QAAS,SAAA,MAAA,CAAA,uBAAA;AAAA;kRASsBH,eAAA,EAAA,YAAA,cAAA,MAAc,OAAK,OAAA,QAAA,QAAA,QAAA,UAAA,QAAA,CAAA,qBAAqDG,eAAA,cAAA,MAAc,KAAK,CAAA,iGAEpFA,eAAA,cAAA,MAAc,IAAI,kEAC5BA,eAAA,cAAA,MAAc,GAAG,CAAA,+MAM7CE,sBAAA,MAAA,QAAA,cAAA,MAAc,MAAM,IAApBC,gBAAA,cAAA,MAAc,QAAM,IAAA,IAApB,cAAA,MAAc,MAAM,IAAA,aAAA,EAAA,uJAAA;AAGxB,YAAA,aAAA,UAAiB,UAAA,OAAS;;;;;;sBAMzB,cAAA,MAAc,QAAM,CAAzB,MAAC;+BAAoFF,eAAA,CAAA,EAAA,cAAA,EAAE,KAAA,GAAI,cAAA,CAAA,CAAA,gHAG9FD,eAAA,EAAE,KAAK,CAAA,EAAA;AAAe,cAAA,EAAE,UAAQ;;;;;AACvB,cAAA,EAAE,WAAS;;;;;AAMhB,gBAAA,8DAAAI,sBAAA,EAAE,aAAS,CAAK,EAAE,QAAK,aAAA,QADrB,EAAE,OAAK,IAAA,IACfL,cAAA,QAAM,EAAE,aAAS,CAAK,EAAE,QAAK,aAAA,MAAA,YAEPE,eAAA,CAAA,EAAA,aAAA,EAAE,MAAI,SAAW,EAAE,UAAA,GAAS,sCAAA,CAAA,CAAA,IAAAF,cAClD,eAAa,EAAE,WAAW,CAAA,mBAAA;AAEf,cAAA,EAAE,WAAS;AAA6I,kBAAA,uIAAAC,eAAA,EAAE,QAAK,OAAA,IAAA,CAAA,WAAA;AAAA,UAAA,OAAA;;;;AAEnK,cAAA,EAAE,MAAI;AAA6C,kBAAA,iEAAAA,eAAA,EAAE,IAAI,CAAA,SAAA;AAAA,UAAA,OAAA;;;;;;;;;;;;;;;;;;;;","names":["_ssrRenderAttrs","_ssrRenderStyle","_ssrRenderList","_ssrRenderAttr","_ssrInterpolate","_ssrRenderClass","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrRenderDynamicModel","_ssrLooseEqual"],"sources":["../../../../../../../app/pages/systemconfig.vue"],"sourcesContent":["\n\n\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles-1.mjs-DGb_v6ce.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles-1.mjs-DGb_v6ce.js new file mode 100644 index 00000000..503cfd08 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles-1.mjs-DGb_v6ce.js @@ -0,0 +1,5 @@ +const systemconfig_vue_vue_type_style_index_0_scoped_96602b99_lang = ".cat-item[data-v-96602b99]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:11px;border:1px solid #eef2f7;background:#fff;cursor:pointer;transition:all .15s}.cat-item[data-v-96602b99]:hover{border-color:#c7d2fe;background:#f5f3ff}.cat-item.active[data-v-96602b99]{border-color:#6366f1;background:linear-gradient(135deg,#eef2ff,#f5f3ff);box-shadow:0 4px 12px #6366f11f}.cat-icon[data-v-96602b99]{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.dot-on[data-v-96602b99]{width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 0 3px #10b98126;flex-shrink:0}.provider-card[data-v-96602b99]{padding:12px 14px;border-radius:13px;border:1.5px solid #eef2f7;background:#fff;cursor:pointer;transition:all .15s}.provider-card[data-v-96602b99]:hover{border-color:#c7d2fe}.provider-card.active[data-v-96602b99]{border-color:#6366f1;background:linear-gradient(135deg,#eef2ff,#faf5ff);box-shadow:0 4px 14px #6366f11f}.provider-card.is-default[data-v-96602b99]{box-shadow:inset 0 0 0 1.5px #10b981}.provider-logo[data-v-96602b99]{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:12px;letter-spacing:-.02em}.default-badge[data-v-96602b99]{font-size:10px;font-weight:700;padding:2px 8px;border-radius:6px;background:#dcfce7;color:#15803d}.default-pick[data-v-96602b99]{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#94a3b8;cursor:pointer;padding:3px 8px;border-radius:7px;border:1px solid #eef2f7;transition:all .15s}.default-pick[data-v-96602b99]:hover{border-color:#c7d2fe;color:#6366f1}.default-pick.on[data-v-96602b99]{color:#15803d;background:#dcfce7;border-color:#bbf7d0}.lock-tag[data-v-96602b99]{font-size:10px;font-weight:600;color:#dc2626;background:#fef2f2;padding:1px 6px;border-radius:5px}.rule-box[data-v-96602b99]{background:#f8fafc;border:1px solid #eef2f7;border-radius:11px;padding:10px 14px}"; +export { + systemconfig_vue_vue_type_style_index_0_scoped_96602b99_lang as default +}; +//# sourceMappingURL=systemconfig-styles-1.mjs-DGb_v6ce.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles-1.mjs-DGb_v6ce.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles-1.mjs-DGb_v6ce.js.map new file mode 100644 index 00000000..3c808510 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles-1.mjs-DGb_v6ce.js.map @@ -0,0 +1 @@ +{"version":3,"file":"systemconfig-styles-1.mjs-DGb_v6ce.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles-1.mjs-DGb_v6ce.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles-1.mjs-DGb_v6ce.js.map.json new file mode 100644 index 00000000..87b66610 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles-1.mjs-DGb_v6ce.js.map.json @@ -0,0 +1 @@ +{"file":"systemconfig-styles-1.mjs-DGb_v6ce.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles.DgvtwCbS.mjs b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles.DgvtwCbS.mjs new file mode 100644 index 00000000..9dbb9f81 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/systemconfig-styles.DgvtwCbS.mjs @@ -0,0 +1,4 @@ +import style_0 from "./systemconfig-styles-1.mjs-DGb_v6ce.js"; +export default [ + style_0 +] \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B7CB0Cnn.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B6h53Mkt.js similarity index 74% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B7CB0Cnn.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B6h53Mkt.js index 8d62e00e..66768f22 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B7CB0Cnn.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B6h53Mkt.js @@ -1,5 +1,6 @@ import { u as useAuthStore } from "./auth-QFkCoU1C.js"; -import { a as useRouter } from "../server.mjs"; +import { b as useRouter } from "../server.mjs"; +import { u as useLoading } from "./useLoading-D6mc40Wj.js"; async function request(url, body, extraHeaders) { const auth = useAuthStore(); const router = useRouter(); @@ -31,14 +32,27 @@ async function request(url, body, extraHeaders) { } return result.data; } +const READONLY_RE = /^(get|list|load|query|fetch|search|count|stat|export|check)/i; +function isMutating(method) { + return !READONLY_RE.test(method); +} function useApi() { const auth = useAuthStore(); + const { begin, end } = useLoading(); async function webApi(method, data) { const extraHeaders = {}; if (auth.currentAppId) { extraHeaders["X-App-Id"] = String(auth.currentAppId); } - return request(`/web/api/api_${method}`, data ?? {}, extraHeaders); + if (!isMutating(method)) { + return request(`/web/api/api_${method}`, data ?? {}, extraHeaders); + } + begin(); + try { + return await request(`/web/api/api_${method}`, data ?? {}, extraHeaders); + } finally { + end(); + } } async function consoleApi(path, data) { return request(`/console/api/${path}`, data ?? {}); @@ -67,4 +81,4 @@ function useApi() { export { useApi as u }; -//# sourceMappingURL=useApi-B7CB0Cnn.js.map +//# sourceMappingURL=useApi-B6h53Mkt.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B6h53Mkt.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B6h53Mkt.js.map new file mode 100644 index 00000000..03ef9d9f --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B6h53Mkt.js.map @@ -0,0 +1 @@ +{"version":3,"file":"useApi-B6h53Mkt.js","sources":["../../../../../../../app/composables/useApi.ts"],"sourcesContent":["import { useAuthStore } from '~/stores/auth'\n\ninterface ApiResponse {\n code: number\n msg: string\n data: T\n}\n\nasync function request(\n url: string,\n body: unknown,\n extraHeaders?: Record\n): Promise {\n const auth = useAuthStore()\n const router = useRouter()\n\n const headers: Record = {\n 'Content-Type': 'application/json',\n }\n\n if (auth.token) {\n headers['Authorization'] = auth.token\n }\n\n if (extraHeaders) {\n Object.assign(headers, extraHeaders)\n }\n\n const response = await fetch(url, {\n method: 'POST',\n headers,\n body: JSON.stringify(body),\n })\n\n if (!response.ok) {\n throw new Error(`HTTP error: ${response.status}`)\n }\n\n const result: ApiResponse = await response.json()\n\n if (result.code === 18) {\n auth.logout()\n router.push('/')\n throw new Error(result.msg || 'Unauthorized')\n }\n\n if (result.code !== 0) {\n throw new Error(result.msg || 'Unknown error')\n }\n\n return result.data\n}\n\n// 读操作前缀:以这些开头的 api 方法视为只读,不触发处理中遮罩;其余(add/update/del/save/create…)视为写操作。\nconst READONLY_RE = /^(get|list|load|query|fetch|search|count|stat|export|check)/i\nfunction isMutating(method: string): boolean {\n return !READONLY_RE.test(method)\n}\n\nexport function useApi() {\n const auth = useAuthStore()\n const { begin, end } = useLoading() // setup 期捕获全局遮罩控制\n\n // 写操作(addproduct/updateproduct/delproduct/addproductversion… 及厂家/账号等增删改)\n // 统一套全屏遮罩:请求期间挡住整页、拦截点击,从根上杜绝重复提交/误点。只读 getXxx 不遮罩。\n async function webApi(method: string, data?: unknown): Promise {\n const extraHeaders: Record = {}\n\n if (auth.currentAppId) {\n extraHeaders['X-App-Id'] = String(auth.currentAppId)\n }\n\n if (!isMutating(method)) {\n return request(`/web/api/api_${method}`, data ?? {}, extraHeaders)\n }\n begin()\n try {\n return await request(`/web/api/api_${method}`, data ?? {}, extraHeaders)\n } finally {\n end()\n }\n }\n\n async function consoleApi(path: string, data?: unknown): Promise {\n return request(`/console/api/${path}`, data ?? {})\n }\n\n async function uploadFile(file: File, path: string): Promise {\n const cosToken = await webApi<{\n upload_url?: string\n url?: string\n }>('getcostoken', { path })\n\n const uploadUrl = cosToken.upload_url || cosToken.url || ''\n\n const putResponse = await fetch(uploadUrl, {\n method: 'PUT',\n headers: {\n 'Content-Type': file.type || 'application/octet-stream',\n },\n body: file,\n })\n\n if (!putResponse.ok) {\n throw new Error(`Upload failed: ${putResponse.status}`)\n }\n\n return uploadUrl.split('?')[0]\n }\n\n return {\n webApi,\n consoleApi,\n uploadFile,\n }\n}\n"],"names":[],"mappings":";;;AAQA,eAAe,QACb,KACA,MACA,cACY;AACZ,QAAM,OAAO,aAAA;AACb,QAAM,SAAS,UAAA;AAEf,QAAM,UAAkC;AAAA,IACtC,gBAAgB;AAAA,EAAA;AAGlB,MAAI,KAAK,OAAO;AACd,YAAQ,eAAe,IAAI,KAAK;AAAA,EAClC;AAEA,MAAI,cAAc;AAChB,WAAO,OAAO,SAAS,YAAY;AAAA,EACrC;AAEA,QAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR;AAAA,IACA,MAAM,KAAK,UAAU,IAAI;AAAA,EAAA,CAC1B;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,eAAe,SAAS,MAAM,EAAE;AAAA,EAClD;AAEA,QAAM,SAAyB,MAAM,SAAS,KAAA;AAE9C,MAAI,OAAO,SAAS,IAAI;AACtB,SAAK,OAAA;AACL,WAAO,KAAK,GAAG;AACf,UAAM,IAAI,MAAM,OAAO,OAAO,cAAc;AAAA,EAC9C;AAEA,MAAI,OAAO,SAAS,GAAG;AACrB,UAAM,IAAI,MAAM,OAAO,OAAO,eAAe;AAAA,EAC/C;AAEA,SAAO,OAAO;AAChB;AAGA,MAAM,cAAc;AACpB,SAAS,WAAW,QAAyB;AAC3C,SAAO,CAAC,YAAY,KAAK,MAAM;AACjC;AAEO,SAAS,SAAS;AACvB,QAAM,OAAO,aAAA;AACb,QAAM,EAAE,OAAO,IAAA,IAAQ,WAAA;AAIvB,iBAAe,OAAoB,QAAgB,MAA4B;AAC7E,UAAM,eAAuC,CAAA;AAE7C,QAAI,KAAK,cAAc;AACrB,mBAAa,UAAU,IAAI,OAAO,KAAK,YAAY;AAAA,IACrD;AAEA,QAAI,CAAC,WAAW,MAAM,GAAG;AACvB,aAAO,QAAW,gBAAgB,MAAM,IAAI,QAAQ,CAAA,GAAI,YAAY;AAAA,IACtE;AACA,UAAA;AACA,QAAI;AACF,aAAO,MAAM,QAAW,gBAAgB,MAAM,IAAI,QAAQ,CAAA,GAAI,YAAY;AAAA,IAC5E,UAAA;AACE,UAAA;AAAA,IACF;AAAA,EACF;AAEA,iBAAe,WAAwB,MAAc,MAA4B;AAC/E,WAAO,QAAW,gBAAgB,IAAI,IAAI,QAAQ,EAAE;AAAA,EACtD;AAEA,iBAAe,WAAW,MAAY,MAA+B;AACnE,UAAM,WAAW,MAAM,OAGpB,eAAe,EAAE,MAAM;AAE1B,UAAM,YAAY,SAAS,cAAc,SAAS,OAAO;AAEzD,UAAM,cAAc,MAAM,MAAM,WAAW;AAAA,MACzC,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB,KAAK,QAAQ;AAAA,MAAA;AAAA,MAE/B,MAAM;AAAA,IAAA,CACP;AAED,QAAI,CAAC,YAAY,IAAI;AACnB,YAAM,IAAI,MAAM,kBAAkB,YAAY,MAAM,EAAE;AAAA,IACxD;AAEA,WAAO,UAAU,MAAM,GAAG,EAAE,CAAC;AAAA,EAC/B;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B6h53Mkt.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B6h53Mkt.js.map.json new file mode 100644 index 00000000..4dcc852e --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B6h53Mkt.js.map.json @@ -0,0 +1 @@ +{"file":"useApi-B6h53Mkt.js","mappings":";;;AAQA,eAAe,QACb,KACA,MACA,cACY;AACZ,QAAM,OAAO,aAAA;AACb,QAAM,SAAS,UAAA;AAEf,QAAM,UAAkC;AAAA,IACtC,gBAAgB;AAAA,EAAA;AAGlB,MAAI,KAAK,OAAO;AACd,YAAQ,eAAe,IAAI,KAAK;AAAA,EAClC;AAEA,MAAI,cAAc;AAChB,WAAO,OAAO,SAAS,YAAY;AAAA,EACrC;AAEA,QAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR;AAAA,IACA,MAAM,KAAK,UAAU,IAAI;AAAA,EAAA,CAC1B;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,eAAe,SAAS,MAAM,EAAE;AAAA,EAClD;AAEA,QAAM,SAAyB,MAAM,SAAS,KAAA;AAE9C,MAAI,OAAO,SAAS,IAAI;AACtB,SAAK,OAAA;AACL,WAAO,KAAK,GAAG;AACf,UAAM,IAAI,MAAM,OAAO,OAAO,cAAc;AAAA,EAC9C;AAEA,MAAI,OAAO,SAAS,GAAG;AACrB,UAAM,IAAI,MAAM,OAAO,OAAO,eAAe;AAAA,EAC/C;AAEA,SAAO,OAAO;AAChB;AAGA,MAAM,cAAc;AACpB,SAAS,WAAW,QAAyB;AAC3C,SAAO,CAAC,YAAY,KAAK,MAAM;AACjC;AAEO,SAAS,SAAS;AACvB,QAAM,OAAO,aAAA;AACb,QAAM,EAAE,OAAO,IAAA,IAAQ,WAAA;AAIvB,iBAAe,OAAoB,QAAgB,MAA4B;AAC7E,UAAM,eAAuC,CAAA;AAE7C,QAAI,KAAK,cAAc;AACrB,mBAAa,UAAU,IAAI,OAAO,KAAK,YAAY;AAAA,IACrD;AAEA,QAAI,CAAC,WAAW,MAAM,GAAG;AACvB,aAAO,QAAW,gBAAgB,MAAM,IAAI,QAAQ,CAAA,GAAI,YAAY;AAAA,IACtE;AACA,UAAA;AACA,QAAI;AACF,aAAO,MAAM,QAAW,gBAAgB,MAAM,IAAI,QAAQ,CAAA,GAAI,YAAY;AAAA,IAC5E,UAAA;AACE,UAAA;AAAA,IACF;AAAA,EACF;AAEA,iBAAe,WAAwB,MAAc,MAA4B;AAC/E,WAAO,QAAW,gBAAgB,IAAI,IAAI,QAAQ,EAAE;AAAA,EACtD;AAEA,iBAAe,WAAW,MAAY,MAA+B;AACnE,UAAM,WAAW,MAAM,OAGpB,eAAe,EAAE,MAAM;AAE1B,UAAM,YAAY,SAAS,cAAc,SAAS,OAAO;AAEzD,UAAM,cAAc,MAAM,MAAM,WAAW;AAAA,MACzC,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB,KAAK,QAAQ;AAAA,MAAA;AAAA,MAE/B,MAAM;AAAA,IAAA,CACP;AAED,QAAI,CAAC,YAAY,IAAI;AACnB,YAAM,IAAI,MAAM,kBAAkB,YAAY,MAAM,EAAE;AAAA,IACxD;AAEA,WAAO,UAAU,MAAM,GAAG,EAAE,CAAC;AAAA,EAC/B;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;","names":[],"sources":["../../../../../../../app/composables/useApi.ts"],"sourcesContent":["import { useAuthStore } from '~/stores/auth'\n\ninterface ApiResponse {\n code: number\n msg: string\n data: T\n}\n\nasync function request(\n url: string,\n body: unknown,\n extraHeaders?: Record\n): Promise {\n const auth = useAuthStore()\n const router = useRouter()\n\n const headers: Record = {\n 'Content-Type': 'application/json',\n }\n\n if (auth.token) {\n headers['Authorization'] = auth.token\n }\n\n if (extraHeaders) {\n Object.assign(headers, extraHeaders)\n }\n\n const response = await fetch(url, {\n method: 'POST',\n headers,\n body: JSON.stringify(body),\n })\n\n if (!response.ok) {\n throw new Error(`HTTP error: ${response.status}`)\n }\n\n const result: ApiResponse = await response.json()\n\n if (result.code === 18) {\n auth.logout()\n router.push('/')\n throw new Error(result.msg || 'Unauthorized')\n }\n\n if (result.code !== 0) {\n throw new Error(result.msg || 'Unknown error')\n }\n\n return result.data\n}\n\n// 读操作前缀:以这些开头的 api 方法视为只读,不触发处理中遮罩;其余(add/update/del/save/create…)视为写操作。\nconst READONLY_RE = /^(get|list|load|query|fetch|search|count|stat|export|check)/i\nfunction isMutating(method: string): boolean {\n return !READONLY_RE.test(method)\n}\n\nexport function useApi() {\n const auth = useAuthStore()\n const { begin, end } = useLoading() // setup 期捕获全局遮罩控制\n\n // 写操作(addproduct/updateproduct/delproduct/addproductversion… 及厂家/账号等增删改)\n // 统一套全屏遮罩:请求期间挡住整页、拦截点击,从根上杜绝重复提交/误点。只读 getXxx 不遮罩。\n async function webApi(method: string, data?: unknown): Promise {\n const extraHeaders: Record = {}\n\n if (auth.currentAppId) {\n extraHeaders['X-App-Id'] = String(auth.currentAppId)\n }\n\n if (!isMutating(method)) {\n return request(`/web/api/api_${method}`, data ?? {}, extraHeaders)\n }\n begin()\n try {\n return await request(`/web/api/api_${method}`, data ?? {}, extraHeaders)\n } finally {\n end()\n }\n }\n\n async function consoleApi(path: string, data?: unknown): Promise {\n return request(`/console/api/${path}`, data ?? {})\n }\n\n async function uploadFile(file: File, path: string): Promise {\n const cosToken = await webApi<{\n upload_url?: string\n url?: string\n }>('getcostoken', { path })\n\n const uploadUrl = cosToken.upload_url || cosToken.url || ''\n\n const putResponse = await fetch(uploadUrl, {\n method: 'PUT',\n headers: {\n 'Content-Type': file.type || 'application/octet-stream',\n },\n body: file,\n })\n\n if (!putResponse.ok) {\n throw new Error(`Upload failed: ${putResponse.status}`)\n }\n\n return uploadUrl.split('?')[0]\n }\n\n return {\n webApi,\n consoleApi,\n uploadFile,\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B7CB0Cnn.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B7CB0Cnn.js.map deleted file mode 100644 index 037190bc..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B7CB0Cnn.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"useApi-B7CB0Cnn.js","sources":["../../../../../../../app/composables/useApi.ts"],"sourcesContent":["import { useAuthStore } from '~/stores/auth'\n\ninterface ApiResponse {\n code: number\n msg: string\n data: T\n}\n\nasync function request(\n url: string,\n body: unknown,\n extraHeaders?: Record\n): Promise {\n const auth = useAuthStore()\n const router = useRouter()\n\n const headers: Record = {\n 'Content-Type': 'application/json',\n }\n\n if (auth.token) {\n headers['Authorization'] = auth.token\n }\n\n if (extraHeaders) {\n Object.assign(headers, extraHeaders)\n }\n\n const response = await fetch(url, {\n method: 'POST',\n headers,\n body: JSON.stringify(body),\n })\n\n if (!response.ok) {\n throw new Error(`HTTP error: ${response.status}`)\n }\n\n const result: ApiResponse = await response.json()\n\n if (result.code === 18) {\n auth.logout()\n router.push('/')\n throw new Error(result.msg || 'Unauthorized')\n }\n\n if (result.code !== 0) {\n throw new Error(result.msg || 'Unknown error')\n }\n\n return result.data\n}\n\nexport function useApi() {\n const auth = useAuthStore()\n\n async function webApi(method: string, data?: unknown): Promise {\n const extraHeaders: Record = {}\n\n if (auth.currentAppId) {\n extraHeaders['X-App-Id'] = String(auth.currentAppId)\n }\n\n return request(`/web/api/api_${method}`, data ?? {}, extraHeaders)\n }\n\n async function consoleApi(path: string, data?: unknown): Promise {\n return request(`/console/api/${path}`, data ?? {})\n }\n\n async function uploadFile(file: File, path: string): Promise {\n const cosToken = await webApi<{\n upload_url?: string\n url?: string\n }>('getcostoken', { path })\n\n const uploadUrl = cosToken.upload_url || cosToken.url || ''\n\n const putResponse = await fetch(uploadUrl, {\n method: 'PUT',\n headers: {\n 'Content-Type': file.type || 'application/octet-stream',\n },\n body: file,\n })\n\n if (!putResponse.ok) {\n throw new Error(`Upload failed: ${putResponse.status}`)\n }\n\n return uploadUrl.split('?')[0]\n }\n\n return {\n webApi,\n consoleApi,\n uploadFile,\n }\n}\n"],"names":[],"mappings":";;AAQA,eAAe,QACb,KACA,MACA,cACY;AACZ,QAAM,OAAO,aAAA;AACb,QAAM,SAAS,UAAA;AAEf,QAAM,UAAkC;AAAA,IACtC,gBAAgB;AAAA,EAAA;AAGlB,MAAI,KAAK,OAAO;AACd,YAAQ,eAAe,IAAI,KAAK;AAAA,EAClC;AAEA,MAAI,cAAc;AAChB,WAAO,OAAO,SAAS,YAAY;AAAA,EACrC;AAEA,QAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR;AAAA,IACA,MAAM,KAAK,UAAU,IAAI;AAAA,EAAA,CAC1B;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,eAAe,SAAS,MAAM,EAAE;AAAA,EAClD;AAEA,QAAM,SAAyB,MAAM,SAAS,KAAA;AAE9C,MAAI,OAAO,SAAS,IAAI;AACtB,SAAK,OAAA;AACL,WAAO,KAAK,GAAG;AACf,UAAM,IAAI,MAAM,OAAO,OAAO,cAAc;AAAA,EAC9C;AAEA,MAAI,OAAO,SAAS,GAAG;AACrB,UAAM,IAAI,MAAM,OAAO,OAAO,eAAe;AAAA,EAC/C;AAEA,SAAO,OAAO;AAChB;AAEO,SAAS,SAAS;AACvB,QAAM,OAAO,aAAA;AAEb,iBAAe,OAAoB,QAAgB,MAA4B;AAC7E,UAAM,eAAuC,CAAA;AAE7C,QAAI,KAAK,cAAc;AACrB,mBAAa,UAAU,IAAI,OAAO,KAAK,YAAY;AAAA,IACrD;AAEA,WAAO,QAAW,gBAAgB,MAAM,IAAI,QAAQ,CAAA,GAAI,YAAY;AAAA,EACtE;AAEA,iBAAe,WAAwB,MAAc,MAA4B;AAC/E,WAAO,QAAW,gBAAgB,IAAI,IAAI,QAAQ,EAAE;AAAA,EACtD;AAEA,iBAAe,WAAW,MAAY,MAA+B;AACnE,UAAM,WAAW,MAAM,OAGpB,eAAe,EAAE,MAAM;AAE1B,UAAM,YAAY,SAAS,cAAc,SAAS,OAAO;AAEzD,UAAM,cAAc,MAAM,MAAM,WAAW;AAAA,MACzC,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB,KAAK,QAAQ;AAAA,MAAA;AAAA,MAE/B,MAAM;AAAA,IAAA,CACP;AAED,QAAI,CAAC,YAAY,IAAI;AACnB,YAAM,IAAI,MAAM,kBAAkB,YAAY,MAAM,EAAE;AAAA,IACxD;AAEA,WAAO,UAAU,MAAM,GAAG,EAAE,CAAC;AAAA,EAC/B;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B7CB0Cnn.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B7CB0Cnn.js.map.json deleted file mode 100644 index 27eb4bea..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useApi-B7CB0Cnn.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"useApi-B7CB0Cnn.js","mappings":";;AAQA,eAAe,QACb,KACA,MACA,cACY;AACZ,QAAM,OAAO,aAAA;AACb,QAAM,SAAS,UAAA;AAEf,QAAM,UAAkC;AAAA,IACtC,gBAAgB;AAAA,EAAA;AAGlB,MAAI,KAAK,OAAO;AACd,YAAQ,eAAe,IAAI,KAAK;AAAA,EAClC;AAEA,MAAI,cAAc;AAChB,WAAO,OAAO,SAAS,YAAY;AAAA,EACrC;AAEA,QAAM,WAAW,MAAM,MAAM,KAAK;AAAA,IAChC,QAAQ;AAAA,IACR;AAAA,IACA,MAAM,KAAK,UAAU,IAAI;AAAA,EAAA,CAC1B;AAED,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,IAAI,MAAM,eAAe,SAAS,MAAM,EAAE;AAAA,EAClD;AAEA,QAAM,SAAyB,MAAM,SAAS,KAAA;AAE9C,MAAI,OAAO,SAAS,IAAI;AACtB,SAAK,OAAA;AACL,WAAO,KAAK,GAAG;AACf,UAAM,IAAI,MAAM,OAAO,OAAO,cAAc;AAAA,EAC9C;AAEA,MAAI,OAAO,SAAS,GAAG;AACrB,UAAM,IAAI,MAAM,OAAO,OAAO,eAAe;AAAA,EAC/C;AAEA,SAAO,OAAO;AAChB;AAEO,SAAS,SAAS;AACvB,QAAM,OAAO,aAAA;AAEb,iBAAe,OAAoB,QAAgB,MAA4B;AAC7E,UAAM,eAAuC,CAAA;AAE7C,QAAI,KAAK,cAAc;AACrB,mBAAa,UAAU,IAAI,OAAO,KAAK,YAAY;AAAA,IACrD;AAEA,WAAO,QAAW,gBAAgB,MAAM,IAAI,QAAQ,CAAA,GAAI,YAAY;AAAA,EACtE;AAEA,iBAAe,WAAwB,MAAc,MAA4B;AAC/E,WAAO,QAAW,gBAAgB,IAAI,IAAI,QAAQ,EAAE;AAAA,EACtD;AAEA,iBAAe,WAAW,MAAY,MAA+B;AACnE,UAAM,WAAW,MAAM,OAGpB,eAAe,EAAE,MAAM;AAE1B,UAAM,YAAY,SAAS,cAAc,SAAS,OAAO;AAEzD,UAAM,cAAc,MAAM,MAAM,WAAW;AAAA,MACzC,QAAQ;AAAA,MACR,SAAS;AAAA,QACP,gBAAgB,KAAK,QAAQ;AAAA,MAAA;AAAA,MAE/B,MAAM;AAAA,IAAA,CACP;AAED,QAAI,CAAC,YAAY,IAAI;AACnB,YAAM,IAAI,MAAM,kBAAkB,YAAY,MAAM,EAAE;AAAA,IACxD;AAEA,WAAO,UAAU,MAAM,GAAG,EAAE,CAAC;AAAA,EAC/B;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;","names":[],"sources":["../../../../../../../app/composables/useApi.ts"],"sourcesContent":["import { useAuthStore } from '~/stores/auth'\n\ninterface ApiResponse {\n code: number\n msg: string\n data: T\n}\n\nasync function request(\n url: string,\n body: unknown,\n extraHeaders?: Record\n): Promise {\n const auth = useAuthStore()\n const router = useRouter()\n\n const headers: Record = {\n 'Content-Type': 'application/json',\n }\n\n if (auth.token) {\n headers['Authorization'] = auth.token\n }\n\n if (extraHeaders) {\n Object.assign(headers, extraHeaders)\n }\n\n const response = await fetch(url, {\n method: 'POST',\n headers,\n body: JSON.stringify(body),\n })\n\n if (!response.ok) {\n throw new Error(`HTTP error: ${response.status}`)\n }\n\n const result: ApiResponse = await response.json()\n\n if (result.code === 18) {\n auth.logout()\n router.push('/')\n throw new Error(result.msg || 'Unauthorized')\n }\n\n if (result.code !== 0) {\n throw new Error(result.msg || 'Unknown error')\n }\n\n return result.data\n}\n\nexport function useApi() {\n const auth = useAuthStore()\n\n async function webApi(method: string, data?: unknown): Promise {\n const extraHeaders: Record = {}\n\n if (auth.currentAppId) {\n extraHeaders['X-App-Id'] = String(auth.currentAppId)\n }\n\n return request(`/web/api/api_${method}`, data ?? {}, extraHeaders)\n }\n\n async function consoleApi(path: string, data?: unknown): Promise {\n return request(`/console/api/${path}`, data ?? {})\n }\n\n async function uploadFile(file: File, path: string): Promise {\n const cosToken = await webApi<{\n upload_url?: string\n url?: string\n }>('getcostoken', { path })\n\n const uploadUrl = cosToken.upload_url || cosToken.url || ''\n\n const putResponse = await fetch(uploadUrl, {\n method: 'PUT',\n headers: {\n 'Content-Type': file.type || 'application/octet-stream',\n },\n body: file,\n })\n\n if (!putResponse.ok) {\n throw new Error(`Upload failed: ${putResponse.status}`)\n }\n\n return uploadUrl.split('?')[0]\n }\n\n return {\n webApi,\n consoleApi,\n uploadFile,\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useLoading-D6mc40Wj.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useLoading-D6mc40Wj.js new file mode 100644 index 00000000..7bf8f5e8 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useLoading-D6mc40Wj.js @@ -0,0 +1,17 @@ +import { u as useState } from "./state-DQnwRar-.js"; +import { computed } from "vue"; +function useLoading() { + const count = useState("app:loading", () => 0); + const loading = computed(() => count.value > 0); + function begin() { + count.value++; + } + function end() { + count.value = Math.max(0, count.value - 1); + } + return { count, loading, begin, end }; +} +export { + useLoading as u +}; +//# sourceMappingURL=useLoading-D6mc40Wj.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useLoading-D6mc40Wj.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useLoading-D6mc40Wj.js.map new file mode 100644 index 00000000..f33f35dc --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useLoading-D6mc40Wj.js.map @@ -0,0 +1 @@ +{"version":3,"file":"useLoading-D6mc40Wj.js","sources":["../../../../../../../app/composables/useLoading.ts"],"sourcesContent":["// 全局「处理中」遮罩状态:引用计数(支持并发请求叠加),>0 即显示遮罩。\n// 与 useToast 同样用 Nuxt useState 做 SSR 安全的全局共享状态。\n// begin()/end() 成对调用(见 useApi 对写操作的包装),end 取 max(0, n-1) 防计数为负。\nexport function useLoading() {\n const count = useState('app:loading', () => 0)\n const loading = computed(() => count.value > 0)\n\n function begin() {\n count.value++\n }\n function end() {\n count.value = Math.max(0, count.value - 1)\n }\n\n return { count, loading, begin, end }\n}\n"],"names":[],"mappings":";;AAGO,SAAS,aAAa;AAC3B,QAAM,QAAQ,SAAiB,eAAe,MAAM,CAAC;AACrD,QAAM,UAAU,SAAS,MAAM,MAAM,QAAQ,CAAC;AAE9C,WAAS,QAAQ;AACf,UAAM;AAAA,EACR;AACA,WAAS,MAAM;AACb,UAAM,QAAQ,KAAK,IAAI,GAAG,MAAM,QAAQ,CAAC;AAAA,EAC3C;AAEA,SAAO,EAAE,OAAO,SAAS,OAAO,IAAA;AAClC;"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useLoading-D6mc40Wj.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useLoading-D6mc40Wj.js.map.json new file mode 100644 index 00000000..dc404469 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useLoading-D6mc40Wj.js.map.json @@ -0,0 +1 @@ +{"file":"useLoading-D6mc40Wj.js","mappings":";;AAGO,SAAS,aAAa;AAC3B,QAAM,QAAQ,SAAiB,eAAe,MAAM,CAAC;AACrD,QAAM,UAAU,SAAS,MAAM,MAAM,QAAQ,CAAC;AAE9C,WAAS,QAAQ;AACf,UAAM;AAAA,EACR;AACA,WAAS,MAAM;AACb,UAAM,QAAQ,KAAK,IAAI,GAAG,MAAM,QAAQ,CAAC;AAAA,EAC3C;AAEA,SAAO,EAAE,OAAO,SAAS,OAAO,IAAA;AAClC;","names":[],"sources":["../../../../../../../app/composables/useLoading.ts"],"sourcesContent":["// 全局「处理中」遮罩状态:引用计数(支持并发请求叠加),>0 即显示遮罩。\n// 与 useToast 同样用 Nuxt useState 做 SSR 安全的全局共享状态。\n// begin()/end() 成对调用(见 useApi 对写操作的包装),end 取 max(0, n-1) 防计数为负。\nexport function useLoading() {\n const count = useState('app:loading', () => 0)\n const loading = computed(() => count.value > 0)\n\n function begin() {\n count.value++\n }\n function end() {\n count.value = Math.max(0, count.value - 1)\n }\n\n return { count, loading, begin, end }\n}\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-BwtTR9dH.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-BwtTR9dH.js.map deleted file mode 100644 index f0bd2733..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-BwtTR9dH.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"useToast-BwtTR9dH.js","sources":["../../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/state.js","../../../../../../../app/composables/useToast.ts"],"sourcesContent":["import { isRef, toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useStateDefaults } from \"#build/nuxt.config.mjs\";\nconst useStateKeyPrefix = \"$s\";\nexport function useState(...args) {\n const autoKey = typeof args[args.length - 1] === \"string\" ? args.pop() : void 0;\n if (typeof args[0] !== \"string\") {\n args.unshift(autoKey);\n }\n const [_key, init] = args;\n if (!_key || typeof _key !== \"string\") {\n throw new TypeError(\"[nuxt] [useState] key must be a string: \" + _key);\n }\n if (init !== void 0 && typeof init !== \"function\") {\n throw new Error(\"[nuxt] [useState] init must be a function: \" + init);\n }\n const key = useStateKeyPrefix + _key;\n const nuxtApp = useNuxtApp();\n const state = toRef(nuxtApp.payload.state, key);\n if (init) {\n nuxtApp._state[key] ??= { _default: init };\n }\n if (state.value === void 0 && init) {\n const initialValue = init();\n if (isRef(initialValue)) {\n nuxtApp.payload.state[key] = initialValue;\n return initialValue;\n }\n state.value = initialValue;\n }\n return state;\n}\nexport function clearNuxtState(keys, opts) {\n const reset = opts?.reset ?? useStateDefaults.resetOnClear;\n const nuxtApp = useNuxtApp();\n const _allKeys = Object.keys(nuxtApp.payload.state).filter((key) => key.startsWith(useStateKeyPrefix)).map((key) => key.substring(useStateKeyPrefix.length));\n const _keys = !keys ? _allKeys : typeof keys === \"function\" ? _allKeys.filter(keys) : toArray(keys);\n for (const _key of _keys) {\n const key = useStateKeyPrefix + _key;\n if (key in nuxtApp.payload.state) {\n if (reset && nuxtApp._state[key]) {\n nuxtApp.payload.state[key] = nuxtApp._state[key]._default();\n } else {\n nuxtApp.payload.state[key] = void 0;\n }\n }\n }\n}\n","export type ToastType = 'success' | 'error' | 'info' | 'warning'\n\nexport interface Toast {\n id: number\n type: ToastType\n msg: string\n}\n\nlet _counter = 0\n\nexport function useToast() {\n const toasts = useState('app:toasts', () => [])\n\n function toast(msg: string, type: ToastType = 'info', duration = 3000) {\n const id = ++_counter\n toasts.value.push({ id, type, msg })\n if (duration > 0) {\n setTimeout(() => {\n toasts.value = toasts.value.filter((t) => t.id !== id)\n }, duration)\n }\n }\n\n return {\n toasts,\n toast,\n success: (msg: string, duration?: number) => toast(msg, 'success', duration),\n error: (msg: string, duration?: number) => toast(msg, 'error', duration),\n info: (msg: string, duration?: number) => toast(msg, 'info', duration),\n warn: (msg: string, duration?: number) => toast(msg, 'warning', duration),\n }\n}\n"],"names":[],"mappings":";;AAIA,MAAM,oBAAoB;AACnB,SAAS,YAAY,MAAM;AAChC,QAAM,UAAU,OAAO,KAAK,KAAK,SAAS,CAAC,MAAM,WAAW,KAAK,IAAG,IAAK;AACzE,MAAI,OAAO,KAAK,CAAC,MAAM,UAAU;AAC/B,SAAK,QAAQ,OAAO;AAAA,EACtB;AACA,QAAM,CAAC,MAAM,IAAI,IAAI;AACrB,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,UAAM,IAAI,UAAU,6CAA6C,IAAI;AAAA,EACvE;AACA,MAAI,SAAS,UAAU,OAAO,SAAS,YAAY;AACjD,UAAM,IAAI,MAAM,gDAAgD,IAAI;AAAA,EACtE;AACA,QAAM,MAAM,oBAAoB;AAChC,QAAM,UAAU,WAAU;AAC1B,QAAM,QAAQ,MAAM,QAAQ,QAAQ,OAAO,GAAG;AAC9C,MAAI,MAAM;AACR,YAAQ,OAAO,GAAG,MAAM,EAAE,UAAU,KAAI;AAAA,EAC1C;AACA,MAAI,MAAM,UAAU,UAAU,MAAM;AAClC,UAAM,eAAe,KAAI;AACzB,QAAI,MAAM,YAAY,GAAG;AACvB,cAAQ,QAAQ,MAAM,GAAG,IAAI;AAC7B,aAAO;AAAA,IACT;AACA,UAAM,QAAQ;AAAA,EAChB;AACA,SAAO;AACT;ACxBA,IAAI,WAAW;AAER,SAAS,WAAW;AACzB,QAAM,SAAS,SAAkB,cAAc,MAAM,CAAA,CAAE;AAEvD,WAAS,MAAM,KAAa,OAAkB,QAAQ,WAAW,KAAM;AACrE,UAAM,KAAK,EAAE;AACb,WAAO,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK;AACnC,QAAI,WAAW,GAAG;AAChB,iBAAW,MAAM;AACf,eAAO,QAAQ,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,MACvD,GAAG,QAAQ;AAAA,IACb;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS,CAAC,KAAa,aAAsB,MAAM,KAAK,WAAW,QAAQ;AAAA,IAC3E,OAAO,CAAC,KAAa,aAAsB,MAAM,KAAK,SAAS,QAAQ;AAAA,IACvE,MAAM,CAAC,KAAa,aAAsB,MAAM,KAAK,QAAQ,QAAQ;AAAA,IACrE,MAAM,CAAC,KAAa,aAAsB,MAAM,KAAK,WAAW,QAAQ;AAAA,EAAA;AAE5E;","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-BwtTR9dH.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-BwtTR9dH.js.map.json deleted file mode 100644 index c2979528..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-BwtTR9dH.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"useToast-BwtTR9dH.js","mappings":";;AAIA,MAAM,oBAAoB;AACnB,SAAS,YAAY,MAAM;AAChC,QAAM,UAAU,OAAO,KAAK,KAAK,SAAS,CAAC,MAAM,WAAW,KAAK,IAAG,IAAK;AACzE,MAAI,OAAO,KAAK,CAAC,MAAM,UAAU;AAC/B,SAAK,QAAQ,OAAO;AAAA,EACtB;AACA,QAAM,CAAC,MAAM,IAAI,IAAI;AACrB,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,UAAM,IAAI,UAAU,6CAA6C,IAAI;AAAA,EACvE;AACA,MAAI,SAAS,UAAU,OAAO,SAAS,YAAY;AACjD,UAAM,IAAI,MAAM,gDAAgD,IAAI;AAAA,EACtE;AACA,QAAM,MAAM,oBAAoB;AAChC,QAAM,UAAU,WAAU;AAC1B,QAAM,QAAQ,MAAM,QAAQ,QAAQ,OAAO,GAAG;AAC9C,MAAI,MAAM;AACR,YAAQ,OAAO,GAAG,MAAM,EAAE,UAAU,KAAI;AAAA,EAC1C;AACA,MAAI,MAAM,UAAU,UAAU,MAAM;AAClC,UAAM,eAAe,KAAI;AACzB,QAAI,MAAM,YAAY,GAAG;AACvB,cAAQ,QAAQ,MAAM,GAAG,IAAI;AAC7B,aAAO;AAAA,IACT;AACA,UAAM,QAAQ;AAAA,EAChB;AACA,SAAO;AACT;ACxBA,IAAI,WAAW;AAER,SAAS,WAAW;AACzB,QAAM,SAAS,SAAkB,cAAc,MAAM,CAAA,CAAE;AAEvD,WAAS,MAAM,KAAa,OAAkB,QAAQ,WAAW,KAAM;AACrE,UAAM,KAAK,EAAE;AACb,WAAO,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK;AACnC,QAAI,WAAW,GAAG;AAChB,iBAAW,MAAM;AACf,eAAO,QAAQ,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,MACvD,GAAG,QAAQ;AAAA,IACb;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS,CAAC,KAAa,aAAsB,MAAM,KAAK,WAAW,QAAQ;AAAA,IAC3E,OAAO,CAAC,KAAa,aAAsB,MAAM,KAAK,SAAS,QAAQ;AAAA,IACvE,MAAM,CAAC,KAAa,aAAsB,MAAM,KAAK,QAAQ,QAAQ;AAAA,IACrE,MAAM,CAAC,KAAa,aAAsB,MAAM,KAAK,WAAW,QAAQ;AAAA,EAAA;AAE5E;","names":[],"sources":["../../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/state.js","../../../../../../../app/composables/useToast.ts"],"sourcesContent":["import { isRef, toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useStateDefaults } from \"#build/nuxt.config.mjs\";\nconst useStateKeyPrefix = \"$s\";\nexport function useState(...args) {\n const autoKey = typeof args[args.length - 1] === \"string\" ? args.pop() : void 0;\n if (typeof args[0] !== \"string\") {\n args.unshift(autoKey);\n }\n const [_key, init] = args;\n if (!_key || typeof _key !== \"string\") {\n throw new TypeError(\"[nuxt] [useState] key must be a string: \" + _key);\n }\n if (init !== void 0 && typeof init !== \"function\") {\n throw new Error(\"[nuxt] [useState] init must be a function: \" + init);\n }\n const key = useStateKeyPrefix + _key;\n const nuxtApp = useNuxtApp();\n const state = toRef(nuxtApp.payload.state, key);\n if (init) {\n nuxtApp._state[key] ??= { _default: init };\n }\n if (state.value === void 0 && init) {\n const initialValue = init();\n if (isRef(initialValue)) {\n nuxtApp.payload.state[key] = initialValue;\n return initialValue;\n }\n state.value = initialValue;\n }\n return state;\n}\nexport function clearNuxtState(keys, opts) {\n const reset = opts?.reset ?? useStateDefaults.resetOnClear;\n const nuxtApp = useNuxtApp();\n const _allKeys = Object.keys(nuxtApp.payload.state).filter((key) => key.startsWith(useStateKeyPrefix)).map((key) => key.substring(useStateKeyPrefix.length));\n const _keys = !keys ? _allKeys : typeof keys === \"function\" ? _allKeys.filter(keys) : toArray(keys);\n for (const _key of _keys) {\n const key = useStateKeyPrefix + _key;\n if (key in nuxtApp.payload.state) {\n if (reset && nuxtApp._state[key]) {\n nuxtApp.payload.state[key] = nuxtApp._state[key]._default();\n } else {\n nuxtApp.payload.state[key] = void 0;\n }\n }\n }\n}\n","export type ToastType = 'success' | 'error' | 'info' | 'warning'\n\nexport interface Toast {\n id: number\n type: ToastType\n msg: string\n}\n\nlet _counter = 0\n\nexport function useToast() {\n const toasts = useState('app:toasts', () => [])\n\n function toast(msg: string, type: ToastType = 'info', duration = 3000) {\n const id = ++_counter\n toasts.value.push({ id, type, msg })\n if (duration > 0) {\n setTimeout(() => {\n toasts.value = toasts.value.filter((t) => t.id !== id)\n }, duration)\n }\n }\n\n return {\n toasts,\n toast,\n success: (msg: string, duration?: number) => toast(msg, 'success', duration),\n error: (msg: string, duration?: number) => toast(msg, 'error', duration),\n info: (msg: string, duration?: number) => toast(msg, 'info', duration),\n warn: (msg: string, duration?: number) => toast(msg, 'warning', duration),\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-C76a6bSX.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-C76a6bSX.js new file mode 100644 index 00000000..92d545c4 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-C76a6bSX.js @@ -0,0 +1,26 @@ +import { u as useState } from "./state-DQnwRar-.js"; +let _counter = 0; +function useToast() { + const toasts = useState("app:toasts", () => []); + function toast(msg, type = "info", duration = 3e3) { + const id = ++_counter; + toasts.value.push({ id, type, msg }); + if (duration > 0) { + setTimeout(() => { + toasts.value = toasts.value.filter((t) => t.id !== id); + }, duration); + } + } + return { + toasts, + toast, + success: (msg, duration) => toast(msg, "success", duration), + error: (msg, duration) => toast(msg, "error", duration), + info: (msg, duration) => toast(msg, "info", duration), + warn: (msg, duration) => toast(msg, "warning", duration) + }; +} +export { + useToast as u +}; +//# sourceMappingURL=useToast-C76a6bSX.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-C76a6bSX.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-C76a6bSX.js.map new file mode 100644 index 00000000..e157fd1e --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-C76a6bSX.js.map @@ -0,0 +1 @@ +{"version":3,"file":"useToast-C76a6bSX.js","sources":["../../../../../../../app/composables/useToast.ts"],"sourcesContent":["export type ToastType = 'success' | 'error' | 'info' | 'warning'\n\nexport interface Toast {\n id: number\n type: ToastType\n msg: string\n}\n\nlet _counter = 0\n\nexport function useToast() {\n const toasts = useState('app:toasts', () => [])\n\n function toast(msg: string, type: ToastType = 'info', duration = 3000) {\n const id = ++_counter\n toasts.value.push({ id, type, msg })\n if (duration > 0) {\n setTimeout(() => {\n toasts.value = toasts.value.filter((t) => t.id !== id)\n }, duration)\n }\n }\n\n return {\n toasts,\n toast,\n success: (msg: string, duration?: number) => toast(msg, 'success', duration),\n error: (msg: string, duration?: number) => toast(msg, 'error', duration),\n info: (msg: string, duration?: number) => toast(msg, 'info', duration),\n warn: (msg: string, duration?: number) => toast(msg, 'warning', duration),\n }\n}\n"],"names":[],"mappings":";AAQA,IAAI,WAAW;AAER,SAAS,WAAW;AACzB,QAAM,SAAS,SAAkB,cAAc,MAAM,CAAA,CAAE;AAEvD,WAAS,MAAM,KAAa,OAAkB,QAAQ,WAAW,KAAM;AACrE,UAAM,KAAK,EAAE;AACb,WAAO,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK;AACnC,QAAI,WAAW,GAAG;AAChB,iBAAW,MAAM;AACf,eAAO,QAAQ,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,MACvD,GAAG,QAAQ;AAAA,IACb;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS,CAAC,KAAa,aAAsB,MAAM,KAAK,WAAW,QAAQ;AAAA,IAC3E,OAAO,CAAC,KAAa,aAAsB,MAAM,KAAK,SAAS,QAAQ;AAAA,IACvE,MAAM,CAAC,KAAa,aAAsB,MAAM,KAAK,QAAQ,QAAQ;AAAA,IACrE,MAAM,CAAC,KAAa,aAAsB,MAAM,KAAK,WAAW,QAAQ;AAAA,EAAA;AAE5E;"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-C76a6bSX.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-C76a6bSX.js.map.json new file mode 100644 index 00000000..3e98e3a3 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/useToast-C76a6bSX.js.map.json @@ -0,0 +1 @@ +{"file":"useToast-C76a6bSX.js","mappings":";AAQA,IAAI,WAAW;AAER,SAAS,WAAW;AACzB,QAAM,SAAS,SAAkB,cAAc,MAAM,CAAA,CAAE;AAEvD,WAAS,MAAM,KAAa,OAAkB,QAAQ,WAAW,KAAM;AACrE,UAAM,KAAK,EAAE;AACb,WAAO,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK;AACnC,QAAI,WAAW,GAAG;AAChB,iBAAW,MAAM;AACf,eAAO,QAAQ,OAAO,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,MACvD,GAAG,QAAQ;AAAA,IACb;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS,CAAC,KAAa,aAAsB,MAAM,KAAK,WAAW,QAAQ;AAAA,IAC3E,OAAO,CAAC,KAAa,aAAsB,MAAM,KAAK,SAAS,QAAQ;AAAA,IACvE,MAAM,CAAC,KAAa,aAAsB,MAAM,KAAK,QAAQ,QAAQ;AAAA,IACrE,MAAM,CAAC,KAAa,aAAsB,MAAM,KAAK,WAAW,QAAQ;AAAA,EAAA;AAE5E;","names":[],"sources":["../../../../../../../app/composables/useToast.ts"],"sourcesContent":["export type ToastType = 'success' | 'error' | 'info' | 'warning'\n\nexport interface Toast {\n id: number\n type: ToastType\n msg: string\n}\n\nlet _counter = 0\n\nexport function useToast() {\n const toasts = useState('app:toasts', () => [])\n\n function toast(msg: string, type: ToastType = 'info', duration = 3000) {\n const id = ++_counter\n toasts.value.push({ id, type, msg })\n if (duration > 0) {\n setTimeout(() => {\n toasts.value = toasts.value.filter((t) => t.id !== id)\n }, duration)\n }\n }\n\n return {\n toasts,\n toast,\n success: (msg: string, duration?: number) => toast(msg, 'success', duration),\n error: (msg: string, duration?: number) => toast(msg, 'error', duration),\n info: (msg: string, duration?: number) => toast(msg, 'info', duration),\n warn: (msg: string, duration?: number) => toast(msg, 'warning', duration),\n }\n}\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-QyiQmRX_.js b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-CqhWenqn.js similarity index 98% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-QyiQmRX_.js rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-CqhWenqn.js index d381f2f9..1329c7a6 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-QyiQmRX_.js +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-CqhWenqn.js @@ -1,9 +1,11 @@ import { defineComponent, ref, computed, reactive, mergeProps, useSSRContext } from "vue"; import { ssrRenderAttrs, ssrRenderStyle, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrRenderAttr, ssrInterpolate } from "vue/server-renderer"; -import { u as useApi } from "./useApi-B7CB0Cnn.js"; -import { u as useToast } from "./useToast-BwtTR9dH.js"; +import { u as useApi } from "./useApi-B6h53Mkt.js"; +import { u as useToast } from "./useToast-C76a6bSX.js"; import { u as useAuthStore } from "./auth-QFkCoU1C.js"; import "../server.mjs"; +import "./useLoading-D6mc40Wj.js"; +import "./state-DQnwRar-.js"; import "pinia"; import "/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs"; import "#internal/nuxt/paths"; @@ -190,4 +192,4 @@ _sfc_main.setup = (props, ctx) => { export { _sfc_main as default }; -//# sourceMappingURL=users-QyiQmRX_.js.map +//# sourceMappingURL=users-CqhWenqn.js.map diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-QyiQmRX_.js.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-CqhWenqn.js.map similarity index 73% rename from apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-QyiQmRX_.js.map rename to apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-CqhWenqn.js.map index 680bd7a2..10e5b3eb 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-QyiQmRX_.js.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-CqhWenqn.js.map @@ -1 +1 @@ -{"version":3,"file":"users-QyiQmRX_.js","sources":["../../../../../../../app/pages/users.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrRenderAttr","_ssrInterpolate"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"users-CqhWenqn.js","sources":["../../../../../../../app/pages/users.vue"],"sourcesContent":["\n\n\n"],"names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrRenderAttr","_ssrInterpolate"],"mappings":"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"} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-CqhWenqn.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-CqhWenqn.js.map.json new file mode 100644 index 00000000..43ebb505 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-CqhWenqn.js.map.json @@ -0,0 +1 @@ +{"file":"users-CqhWenqn.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+G+B,WAAA;AACE,aAAA;AACjC,UAAM,OAAO,aAAA;AAEb,UAAM,aAAqC;AAAA,MACzC,IAAI;AAAA,MAAM,IAAI;AAAA,MAAM,IAAI;AAAA,MAAM,IAAI;AAAA,MAAM,KAAK;AAAA,MAAO,IAAI;AAAA,MACxD,IAAI;AAAA,MAAM,IAAI;AAAA,MAAM,IAAI;AAAA,MAAO,IAAI;AAAA,MAAM,KAAK;AAAA,MAAM,KAAK;AAAA,MACzD,IAAI;AAAA,MAAO,IAAI;AAAA,MAAM,IAAI;AAAA,IAAA;AAE3B,aAAS,YAAY,GAAW;AAC9B,aAAO,WAAW,CAAC,KAAK,KAAK;AAAA,IAC/B;AAGA,UAAM,OAAO,IAAe,EAAE;AAC9B,UAAM,OAAO,IAAI,EAAE;AACnB,UAAM,UAAU,IAAiB,EAAE;AACnC,UAAM,OAAO,IAAI,EAAE;AAEnB,UAAM,OAAO,IAAgC,IAAI;AACjD,UAAM,YAAY,IAAI,gBAAgB;AAGpB,QAAiB,EAAE;AACrC,UAAM,UAAU,IAAI,EAAE;AAGtB,UAAM,cAAc,SAAS,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,SAAS,KAAK,QAAQ,CAAC;AAElD,QAA8B,IAAI;AACpD,UAAM,OAAO,SAAS,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG;AAG5D,UAAM,WAAW,SAAS,MAAM;AAC9B,YAAM,QAAkB,CAAA;AACxB,WAAK,MAAM,QAAQ,CAAC,MAAM;AAAE,YAAI,CAAC,MAAM,SAAS,EAAE,IAAI,EAAG,OAAM,KAAK,EAAE,IAAI;AAAA,MAAE,CAAC;AAC7E,aAAO;AAAA,IACT,CAAC;AAGD,UAAM,cAAc,SAAS,MAAM,KAAK,MAAM,OAAO,CAAC,MAAM,EAAE,SAAS,KAAK,KAAK,CAAC;AAQlF,aAAS,MAAM,IAAS;AACtB,UAAI,CAAC,GAAI,QAAO;AAChB,aAAO,IAAI,KAAK,KAAK,GAAI,EAAE,eAAA;AAAA,IAC7B;AACA,aAAS,QAAQ,GAAQ;AACvB,aAAO,IAAI,MAAM;AAAA,IACnB;AACA,aAAS,UAAU,GAAQ;AACzB,aAAO,MAAM,IAAI,MAAO,MAAM,IAAI,MAAM;AAAA,IAC1C;AACA,aAAS,QAAQ,GAAQ;AACvB,aAAQ,MAAM,UAAa,MAAM,QAAQ,MAAM,KAAM,MAAM;AAAA,IAC7D;AAEA,UAAM,WAAsB;AAAA,MAC1B,EAAE,OAAO,QAAQ,MAAM;AAAA,QACrB,CAAC,OAAO,KAAK;AAAA,QAAG,CAAC,QAAQ,KAAK;AAAA,QAAG,CAAC,WAAW,MAAM;AAAA,QAAG,CAAC,QAAQ,IAAI;AAAA,QAAG,CAAC,SAAS,KAAK;AAAA,QACrF,CAAC,UAAU,MAAM,QAAQ;AAAA,QAAG,CAAC,YAAY,IAAI;AAAA,QAAG,CAAC,WAAW,IAAI;AAAA,QAAG,CAAC,WAAW,IAAI;AAAA,QAAG,CAAC,SAAS,IAAI;AAAA,QACpG,CAAC,gBAAgB,KAAK;AAAA,QAAG,CAAC,kBAAkB,KAAK;AAAA,QAAG,CAAC,cAAc,KAAK;AAAA,QAAG,CAAC,cAAc,MAAM;AAAA,QAAG,CAAC,YAAY,MAAM;AAAA,MAAA,EACxH;AAAA,MACA,EAAE,OAAO,SAAS,MAAM;AAAA,QACtB,CAAC,YAAY,WAAW;AAAA,QAAG,CAAC,gBAAgB,eAAe;AAAA,QAAG,CAAC,kBAAkB,iBAAiB;AAAA,QAAG,CAAC,eAAe,cAAc;AAAA,MAAA,EACrI;AAAA,MACA,EAAE,OAAO,SAAS,MAAM;AAAA,QACtB,CAAC,SAAS,OAAO;AAAA,QAAG,CAAC,cAAc,SAAS,IAAI;AAAA,QAChD,CAAC,kBAAkB,MAAM;AAAA,QAAG,CAAC,uBAAuB,QAAQ;AAAA,QAC5D,CAAC,iBAAiB,MAAM;AAAA,QAAG,CAAC,sBAAsB,QAAQ;AAAA,QAC1D,CAAC,gBAAgB,MAAM;AAAA,QAAG,CAAC,qBAAqB,QAAQ;AAAA,QACxD,CAAC,qBAAqB,UAAU;AAAA,QAAG,CAAC,kBAAkB,SAAS,MAAM;AAAA,QAAG,CAAC,cAAc,UAAU,MAAM;AAAA,MAAA,EACzG;AAAA,MACA,EAAE,OAAO,MAAM,MAAM;AAAA,QACnB,CAAC,cAAc,QAAQ,IAAI;AAAA,QAAG,CAAC,gBAAgB,QAAQ,IAAI;AAAA,QAAG,CAAC,cAAc,QAAQ,IAAI;AAAA,MAAA,EAC3F;AAAA,IAAE;AAGJ,aAAS,UAAU,GAAwB,KAAiB;AAC1D,YAAM,IAAI,IAAI,CAAC;AACf,YAAM,IAAI,EAAE,IAAI,CAAC,CAAC;AAClB,UAAI,MAAM,KAAM,QAAO,MAAM,CAAC;AAC9B,UAAI,MAAM,OAAQ,QAAO,QAAQ,CAAC;AAClC,UAAI,MAAM,SAAU,QAAO,UAAU,CAAC;AACtC,aAAO,QAAQ,CAAC;AAAA,IAClB;AAEA,UAAM,gBAAgB,SAAS,MAAM;AACnC,YAAM,IAAI,KAAK;AACf,UAAI,CAAC,EAAG,QAAO;AACf,aAAO,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,YAAA;AAAA,IAClD,CAAC;;mBA9MMA,eAAAC,WAAA,EAAA,OAAM,eAAW,MAAA,CAAA,CAAA,qRAAAC,eAMkD,EAAA,aAAA,QAAA,CAAwB,CAAA,IAAA;AACvE,UAAA,CAAA,SAAA,MAAS,QAAM;AADf,cAAA,mBAAAC,sBAAA,MAAA,QAAA,KAAA,KAAI,IAAAC,gBAAJ,KAAA,OAAI,EAAA,IAAAC,cAAJ,KAAA,OAAI,EAAA,CAAA,IAAA,cAAA,EAAA,iBAAA;AAAA,MAAA,OAAA;;;;AAECC,oBAAA,SAAA,QAAL,MAAC;AAAwB,cAAA,UAAAC,cAAA,SAAO,CAAC,CAAA,GAAAJ,sBAAA,MAAA,QAFjC,KAAA,KAAI,IAAJC,gBAAA,KAAA,OAEgC,CAAC,IAFjCC,cAAA,KAAA,OAEgC,CAAC,CAAA,IAAA,cAAA,qBAAK,CAAC,CAAA,WAAA;AAAA;AAKW,YAAA,wLAAAH,eAAA,EAAA,aAAA,QAAA,CAAwB,CAAA,IAAA;AAC1E,UAAA,CAAA,YAAA,MAAY,QAAM;AADlB,cAAA,mBAAAC,sBAAA,MAAA,QAAA,QAAA,KAAO,IAAAC,gBAAP,QAAA,OAAO,EAAA,IAAAC,cAAP,QAAA,OAAO,EAAA,CAAA,IAAA,cAAA,EAAA,iBAAA;AAAA,MAAA,OAAA;;;;AAEFC,oBAAA,YAAA,QAAL,MAAC;sCAA8B,SAAO,EAAE,EAAE,CAAA,GAAAH,sBAAA,MAAA,QAF1C,QAAA,KAAO,IAAAC,gBAAP,QAAA,OAEsC,EAAE,EAAE,IAAAC,cAF1C,QAAA,OAEsC,EAAE,EAAE,CAAA,IAAA,cAAA,EAAA,IAAAG,eAAK,YAAY,EAAE,MAAM,CAAA,CAAA,WAAA;AAAA;AAKpE,YAAA,yIAAAD,cAAA,SAAA,KAAA,KAAI,CAAA,6DAAAL,eAAoD,EAAA,aAAA,SAAwB,CAAA,qLAAA;AAQ1F,UAAA,CAAA,KAAA,OAAI;mIACX,UAAA,KAAS,CAAA,QAAA;AAAA,MAAA,OAAA;;AAKC,YAAA,KAAA,MAAK,QAAM;AAAG,gBAAA,OAAAK,cAAA,OAAK,KAAA,MAAK,MAAM,CAAA,uEAAA;AAAA,QAAA,OAAA;uJAEpC,cAAA,KAAa,CAAA,QAAA;AAAA,QAAA;AAGqC,cAAA,0DAAAC,eAAA,QAAQ,KAAA,MAAK,IAAI,CAAA,8EACd,QAAQ,KAAA,MAAK,GAAG,CAAA,CAAA,gHAGjBA,eAAA,KAAA,MAAK,SAAK,CAAA,CAAA,SAAA;AACnD,YAAA,YAAA,OAAW;;;;;;AAKZF,sBAAA,WAAL,MAAC;AAC6E,gBAAA,2KAAAE,eAAA,EAAE,KAAK,CAAA,+EAAA;wBAE5E,EAAE,MAAI,CAAX,MAAC;AACsC,kBAAA,yHAAAA,eAAA,EAAC,CAAA,CAAA,CAAA,oEAAAA,eACW,UAAU,KAAA,OAAM,CAAC,CAAA,CAAA,eAAA;AAAA;;;;;AAUQ,YAAA,4MAAAA,eAAA,QAAA,KAAO,CAAA,8LAItED,cAAA,SAAA,KAAK,MAAM,CAAA,2KAIXA,cAAA,SAAA,KAAK,QAAQ,CAAA,2KAIbA,cAAA,SAAA,KAAK,OAAO,CAAA,sSAAA;AAAA;;;;;;;;;","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrRenderAttr","_ssrInterpolate"],"sources":["../../../../../../../app/pages/users.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-QyiQmRX_.js.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-QyiQmRX_.js.map.json deleted file mode 100644 index 5c57e34e..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/users-QyiQmRX_.js.map.json +++ /dev/null @@ -1 +0,0 @@ -{"file":"users-QyiQmRX_.js","mappings":"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","names":["_ssrRenderAttrs","_mergeProps","_ssrRenderStyle","_ssrIncludeBooleanAttr","_ssrLooseContain","_ssrLooseEqual","_ssrRenderList","_ssrRenderAttr","_ssrInterpolate"],"sources":["../../../../../../../app/pages/users.vue"],"sourcesContent":["\n\n\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/client.manifest.mjs b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/client.manifest.mjs index 345cc4be..e666aa6b 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/client.manifest.mjs +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/client.manifest.mjs @@ -1 +1 @@ -export default ({"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BlypHpHg.js",name:"error-404",src:"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:!0,imports:["_0ubqzWuP.js","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_C5ETpaZb.js"],css:[]},"error-404.Dm-MYrAh.css":{file:"error-404.Dm-MYrAh.css",resourceType:"style",prefetch:!0,preload:!0},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BbBrUj30.js",name:"error-500",src:"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_C5ETpaZb.js"],css:[]},"error-500.DM8oqBl3.css":{file:"error-500.DM8oqBl3.css",resourceType:"style",prefetch:!0,preload:!0},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"96IDI_OR.js",name:"entry",src:"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js",isEntry:!0,dynamicImports:["layouts/auth.vue","layouts/default.vue","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue"],css:["entry.DS97S_sV.css"]},"entry.DS97S_sV.css":{file:"entry.DS97S_sV.css",resourceType:"style",prefetch:!0,preload:!0},"_0ubqzWuP.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"0ubqzWuP.js",name:"nuxt-link",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"_C5ETpaZb.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"C5ETpaZb.js",name:"composables",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"_CVUxyiJx.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CVUxyiJx.js",name:"useToast",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"_Do83zqYq.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Do83zqYq.js",name:"useApi",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"layouts/auth.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DrdHHbY3.js",name:"auth",src:"layouts/auth.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"layouts/default.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DN5T-G_F.js",name:"default",src:"layouts/default.vue",isDynamicEntry:!0,imports:["_0ubqzWuP.js","_CVUxyiJx.js","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"pages/accounts.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BMr4oSI7.js",name:"accounts",src:"pages/accounts.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"],css:[]},"accounts.B82323Fi.css":{file:"accounts.B82323Fi.css",resourceType:"style",prefetch:!0,preload:!0},"pages/apps.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CACbmIlS.js",name:"apps",src:"pages/apps.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"pages/calltranslate.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BbMitk9t.js",name:"calltranslate",src:"pages/calltranslate.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"],css:[]},"calltranslate.B6r4Q8-j.css":{file:"calltranslate.B6r4Q8-j.css",resourceType:"style",prefetch:!0,preload:!0},"pages/code.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Dqy3UYuS.js",name:"code",src:"pages/code.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"pages/dashboard.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"p0Tfj-xC.js",name:"dashboard",src:"pages/dashboard.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js"],css:[]},"dashboard.DGy90zSJ.css":{file:"dashboard.DGy90zSJ.css",resourceType:"style",prefetch:!0,preload:!0},"pages/device.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"D6jD5keW.js",name:"device",src:"pages/device.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"pages/factory.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"dltdoXck.js",name:"factory",src:"pages/factory.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"pages/globalconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"KP2C5FJ6.js",name:"globalconfig",src:"pages/globalconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"pages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"RqmPeXlN.js",name:"index",src:"pages/index.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"],css:[]},"index.4nAkFRy2.css":{file:"index.4nAkFRy2.css",resourceType:"style",prefetch:!0,preload:!0},"pages/mcpconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"B3ns_poC.js",name:"mcpconfig",src:"pages/mcpconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"pages/meettemplates.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DGXiXcCA.js",name:"meettemplates",src:"pages/meettemplates.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"pages/product.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"6n4fu-B8.js",name:"product",src:"pages/product.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"pages/serviceconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BL6E8nSe.js",name:"serviceconfig",src:"pages/serviceconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"],css:[]},"serviceconfig.htjoqj-Q.css":{file:"serviceconfig.htjoqj-Q.css",resourceType:"style",prefetch:!0,preload:!0},"pages/statlog.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"v5y5DMRc.js",name:"statlog",src:"pages/statlog.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"],css:[]},"statlog.C1q_3yEh.css":{file:"statlog.C1q_3yEh.css",resourceType:"style",prefetch:!0,preload:!0},"pages/users.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Dw5yL0ut.js",name:"users",src:"pages/users.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]}}) \ No newline at end of file +export default ({"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BroHRKpP.js",name:"error-404",src:"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:!0,imports:["_CnkSDgVO.js","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_DpWhlKu2.js"],css:[]},"error-404.Dm-MYrAh.css":{file:"error-404.Dm-MYrAh.css",resourceType:"style",prefetch:!0,preload:!0},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"P2ZWRt51.js",name:"error-500",src:"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_DpWhlKu2.js"],css:[]},"error-500.DM8oqBl3.css":{file:"error-500.DM8oqBl3.css",resourceType:"style",prefetch:!0,preload:!0},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CTAruH_8.js",name:"entry",src:"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js",isEntry:!0,dynamicImports:["layouts/auth.vue","layouts/default.vue","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue"],css:["entry.BUc396Qi.css"]},"entry.BUc396Qi.css":{file:"entry.BUc396Qi.css",resourceType:"style",prefetch:!0,preload:!0},"_9B2ftqmN.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"9B2ftqmN.js",name:"useApi",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_D9HxoMhB.js"]},"_CnkSDgVO.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CnkSDgVO.js",name:"nuxt-link",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"_D9HxoMhB.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"D9HxoMhB.js",name:"useLoading",imports:["_yUUyh6cG.js","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"_DpWhlKu2.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DpWhlKu2.js",name:"composables",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"_lLLegusN.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"lLLegusN.js",name:"useToast",imports:["_yUUyh6cG.js"]},"_yUUyh6cG.js":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"yUUyh6cG.js",name:"state",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"layouts/auth.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"1YPtusTp.js",name:"auth",src:"layouts/auth.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"layouts/default.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"FZLr1rN5.js",name:"default",src:"layouts/default.vue",isDynamicEntry:!0,imports:["_CnkSDgVO.js","_lLLegusN.js","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"default.miyQHb0v.css":{file:"default.miyQHb0v.css",resourceType:"style",prefetch:!0,preload:!0},"pages/accounts.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"C2sLAWj2.js",name:"accounts",src:"pages/accounts.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"accounts.B82323Fi.css":{file:"accounts.B82323Fi.css",resourceType:"style",prefetch:!0,preload:!0},"pages/appconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"B_JvM6BO.js",name:"appconfig",src:"pages/appconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"appconfig.j94fgYL_.css":{file:"appconfig.j94fgYL_.css",resourceType:"style",prefetch:!0,preload:!0},"pages/apps.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"vesedpp3.js",name:"apps",src:"pages/apps.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"apps.B7hnJBQU.css":{file:"apps.B7hnJBQU.css",resourceType:"style",prefetch:!0,preload:!0},"pages/calltranslate.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DNKl-FHZ.js",name:"calltranslate",src:"pages/calltranslate.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"calltranslate.B6r4Q8-j.css":{file:"calltranslate.B6r4Q8-j.css",resourceType:"style",prefetch:!0,preload:!0},"pages/code.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"UoJ1COMF.js",name:"code",src:"pages/code.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"pages/dashboard.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Cx-e2Cok.js",name:"dashboard",src:"pages/dashboard.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"dashboard.bI0rfjl_.css":{file:"dashboard.bI0rfjl_.css",resourceType:"style",prefetch:!0,preload:!0},"pages/device.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Cy8zKM7T.js",name:"device",src:"pages/device.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"pages/environments.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Bxcdr2qc.js",name:"environments",src:"pages/environments.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"pages/factory.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BVGGsVu4.js",name:"factory",src:"pages/factory.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"pages/globalconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"uwVesjjP.js",name:"globalconfig",src:"pages/globalconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"pages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CnuHOwQV.js",name:"index",src:"pages/index.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"],css:[]},"index.4nAkFRy2.css":{file:"index.4nAkFRy2.css",resourceType:"style",prefetch:!0,preload:!0},"pages/mcpconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BeU4EYjt.js",name:"mcpconfig",src:"pages/mcpconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"pages/meettemplates.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CZnZfJ5f.js",name:"meettemplates",src:"pages/meettemplates.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"pages/product.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"GZxzc1Rc.js",name:"product",src:"pages/product.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"pages/serviceconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CF8arGVK.js",name:"serviceconfig",src:"pages/serviceconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"serviceconfig.Io3AqtMK.css":{file:"serviceconfig.Io3AqtMK.css",resourceType:"style",prefetch:!0,preload:!0},"pages/statlog.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Bi5c3E0c.js",name:"statlog",src:"pages/statlog.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"statlog.C1q_3yEh.css":{file:"statlog.C1q_3yEh.css",resourceType:"style",prefetch:!0,preload:!0},"pages/systemconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"EIJPD_ga.js",name:"systemconfig",src:"pages/systemconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_lLLegusN.js","_yUUyh6cG.js"],css:[]},"systemconfig.DaWusDMu.css":{file:"systemconfig.DaWusDMu.css",resourceType:"style",prefetch:!0,preload:!0},"pages/users.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BIBu1qhq.js",name:"users",src:"pages/users.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]}}) \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/client.precomputed.mjs b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/client.precomputed.mjs index 07be8efb..477a2e6a 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/client.precomputed.mjs +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/client.precomputed.mjs @@ -1 +1 @@ -export default ((h,j,k,m,o,q,u,x,z)=>({dependencies:{"layouts/auth.vue":{scripts:{},styles:{},preload:{"layouts/auth.vue":h={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DrdHHbY3.js",name:"auth",src:"layouts/auth.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]}},prefetch:{}},"_CVUxyiJx.js":{scripts:{},styles:{},preload:{"_CVUxyiJx.js":j={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CVUxyiJx.js",name:"useToast",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]}},prefetch:{}},"layouts/default.vue":{scripts:{},styles:{},preload:{"layouts/default.vue":k={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DN5T-G_F.js",name:"default",src:"layouts/default.vue",isDynamicEntry:!0,imports:["_0ubqzWuP.js","_CVUxyiJx.js","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"_CVUxyiJx.js":j},prefetch:{}},"_C5ETpaZb.js":{scripts:{},styles:{},preload:{"_C5ETpaZb.js":m={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"C5ETpaZb.js",name:"composables",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]}},prefetch:{}},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":{scripts:{},styles:{},preload:{"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BbBrUj30.js",name:"error-500",src:"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_C5ETpaZb.js"],css:[]},"_C5ETpaZb.js":m},prefetch:{}},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":{scripts:{"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"96IDI_OR.js",name:"entry",src:"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js",isEntry:!0,dynamicImports:["layouts/auth.vue","layouts/default.vue","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue"],css:["entry.DS97S_sV.css"]}},styles:{"entry.DS97S_sV.css":u={file:"entry.DS97S_sV.css",resourceType:"style",prefetch:!0,preload:!0}},preload:{"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"_0ubqzWuP.js":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"_0ubqzWuP.js":x={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"0ubqzWuP.js",name:"nuxt-link",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BlypHpHg.js",name:"error-404",src:"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:!0,imports:["_0ubqzWuP.js","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_C5ETpaZb.js"],css:[]},"_0ubqzWuP.js":x,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_C5ETpaZb.js":m},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"error-404.Dm-MYrAh.css":{scripts:{},styles:{},preload:{"error-404.Dm-MYrAh.css":{file:"error-404.Dm-MYrAh.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"error-500.DM8oqBl3.css":{scripts:{},styles:{},preload:{"error-500.DM8oqBl3.css":{file:"error-500.DM8oqBl3.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"entry.DS97S_sV.css":{scripts:{},styles:{},preload:{"entry.DS97S_sV.css":u},prefetch:{}},"_Do83zqYq.js":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"_Do83zqYq.js":z={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Do83zqYq.js",name:"useApi",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"pages/accounts.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/accounts.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BMr4oSI7.js",name:"accounts",src:"pages/accounts.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z,"_CVUxyiJx.js":j},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"accounts.B82323Fi.css":{scripts:{},styles:{},preload:{"accounts.B82323Fi.css":{file:"accounts.B82323Fi.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/apps.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/apps.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CACbmIlS.js",name:"apps",src:"pages/apps.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z,"_CVUxyiJx.js":j},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"pages/calltranslate.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/calltranslate.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BbMitk9t.js",name:"calltranslate",src:"pages/calltranslate.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z,"_CVUxyiJx.js":j},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"calltranslate.B6r4Q8-j.css":{scripts:{},styles:{},preload:{"calltranslate.B6r4Q8-j.css":{file:"calltranslate.B6r4Q8-j.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/code.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/code.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Dqy3UYuS.js",name:"code",src:"pages/code.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z,"_CVUxyiJx.js":j},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"pages/dashboard.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/dashboard.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"p0Tfj-xC.js",name:"dashboard",src:"pages/dashboard.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"dashboard.DGy90zSJ.css":{scripts:{},styles:{},preload:{"dashboard.DGy90zSJ.css":{file:"dashboard.DGy90zSJ.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/device.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/device.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"D6jD5keW.js",name:"device",src:"pages/device.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z,"_CVUxyiJx.js":j},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"pages/factory.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/factory.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"dltdoXck.js",name:"factory",src:"pages/factory.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z,"_CVUxyiJx.js":j},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"pages/globalconfig.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/globalconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"KP2C5FJ6.js",name:"globalconfig",src:"pages/globalconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z,"_CVUxyiJx.js":j},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"pages/index.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"RqmPeXlN.js",name:"index",src:"pages/index.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"index.4nAkFRy2.css":{scripts:{},styles:{},preload:{"index.4nAkFRy2.css":{file:"index.4nAkFRy2.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/mcpconfig.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/mcpconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"B3ns_poC.js",name:"mcpconfig",src:"pages/mcpconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z,"_CVUxyiJx.js":j},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"pages/meettemplates.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/meettemplates.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DGXiXcCA.js",name:"meettemplates",src:"pages/meettemplates.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z,"_CVUxyiJx.js":j},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"pages/product.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/product.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"6n4fu-B8.js",name:"product",src:"pages/product.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z,"_CVUxyiJx.js":j},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"pages/serviceconfig.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/serviceconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BL6E8nSe.js",name:"serviceconfig",src:"pages/serviceconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z,"_CVUxyiJx.js":j},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"serviceconfig.htjoqj-Q.css":{scripts:{},styles:{},preload:{"serviceconfig.htjoqj-Q.css":{file:"serviceconfig.htjoqj-Q.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/statlog.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/statlog.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"v5y5DMRc.js",name:"statlog",src:"pages/statlog.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z,"_CVUxyiJx.js":j},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}},"statlog.C1q_3yEh.css":{scripts:{},styles:{},preload:{"statlog.C1q_3yEh.css":{file:"statlog.C1q_3yEh.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/users.vue":{scripts:{},styles:{"entry.DS97S_sV.css":u},preload:{"pages/users.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Dw5yL0ut.js",name:"users",src:"pages/users.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_Do83zqYq.js","_CVUxyiJx.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":q,"entry.DS97S_sV.css":u,"_Do83zqYq.js":z,"_CVUxyiJx.js":j},prefetch:{"entry.DS97S_sV.css":u,"layouts/auth.vue":h,"layouts/default.vue":k,"_CVUxyiJx.js":j,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":o,"_C5ETpaZb.js":m}}},entrypoints:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"],modules:{"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue":{file:"BlypHpHg.js",resourceType:"script",mimeType:void 0,module:!0},"error-404.Dm-MYrAh.css":{file:"error-404.Dm-MYrAh.css",resourceType:"style",mimeType:void 0,module:void 0},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":{file:"BbBrUj30.js",resourceType:"script",mimeType:void 0,module:!0},"error-500.DM8oqBl3.css":{file:"error-500.DM8oqBl3.css",resourceType:"style",mimeType:void 0,module:void 0},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":{file:"96IDI_OR.js",resourceType:"script",mimeType:void 0,module:!0},"entry.DS97S_sV.css":{file:"entry.DS97S_sV.css",resourceType:"style",mimeType:void 0,module:void 0},"_0ubqzWuP.js":{file:"0ubqzWuP.js",resourceType:"script",mimeType:void 0,module:!0},"_C5ETpaZb.js":{file:"C5ETpaZb.js",resourceType:"script",mimeType:void 0,module:!0},"_CVUxyiJx.js":{file:"CVUxyiJx.js",resourceType:"script",mimeType:void 0,module:!0},"_Do83zqYq.js":{file:"Do83zqYq.js",resourceType:"script",mimeType:void 0,module:!0},"layouts/auth.vue":{file:"DrdHHbY3.js",resourceType:"script",mimeType:void 0,module:!0},"layouts/default.vue":{file:"DN5T-G_F.js",resourceType:"script",mimeType:void 0,module:!0},"pages/accounts.vue":{file:"BMr4oSI7.js",resourceType:"script",mimeType:void 0,module:!0},"accounts.B82323Fi.css":{file:"accounts.B82323Fi.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/apps.vue":{file:"CACbmIlS.js",resourceType:"script",mimeType:void 0,module:!0},"pages/calltranslate.vue":{file:"BbMitk9t.js",resourceType:"script",mimeType:void 0,module:!0},"calltranslate.B6r4Q8-j.css":{file:"calltranslate.B6r4Q8-j.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/code.vue":{file:"Dqy3UYuS.js",resourceType:"script",mimeType:void 0,module:!0},"pages/dashboard.vue":{file:"p0Tfj-xC.js",resourceType:"script",mimeType:void 0,module:!0},"dashboard.DGy90zSJ.css":{file:"dashboard.DGy90zSJ.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/device.vue":{file:"D6jD5keW.js",resourceType:"script",mimeType:void 0,module:!0},"pages/factory.vue":{file:"dltdoXck.js",resourceType:"script",mimeType:void 0,module:!0},"pages/globalconfig.vue":{file:"KP2C5FJ6.js",resourceType:"script",mimeType:void 0,module:!0},"pages/index.vue":{file:"RqmPeXlN.js",resourceType:"script",mimeType:void 0,module:!0},"index.4nAkFRy2.css":{file:"index.4nAkFRy2.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/mcpconfig.vue":{file:"B3ns_poC.js",resourceType:"script",mimeType:void 0,module:!0},"pages/meettemplates.vue":{file:"DGXiXcCA.js",resourceType:"script",mimeType:void 0,module:!0},"pages/product.vue":{file:"6n4fu-B8.js",resourceType:"script",mimeType:void 0,module:!0},"pages/serviceconfig.vue":{file:"BL6E8nSe.js",resourceType:"script",mimeType:void 0,module:!0},"serviceconfig.htjoqj-Q.css":{file:"serviceconfig.htjoqj-Q.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/statlog.vue":{file:"v5y5DMRc.js",resourceType:"script",mimeType:void 0,module:!0},"statlog.C1q_3yEh.css":{file:"statlog.C1q_3yEh.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/users.vue":{file:"Dw5yL0ut.js",resourceType:"script",mimeType:void 0,module:!0}}}))() \ No newline at end of file +export default ((h,j,k,m,o,q,u,x,z,A,B)=>({dependencies:{"layouts/auth.vue":{scripts:{},styles:{},preload:{"layouts/auth.vue":h={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"1YPtusTp.js",name:"auth",src:"layouts/auth.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]}},prefetch:{}},"_yUUyh6cG.js":{scripts:{},styles:{},preload:{"_yUUyh6cG.js":j={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"yUUyh6cG.js",name:"state",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]}},prefetch:{}},"_lLLegusN.js":{scripts:{},styles:{},preload:{"_lLLegusN.js":k={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"lLLegusN.js",name:"useToast",imports:["_yUUyh6cG.js"]},"_yUUyh6cG.js":j},prefetch:{}},"_D9HxoMhB.js":{scripts:{},styles:{},preload:{"_D9HxoMhB.js":m={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"D9HxoMhB.js",name:"useLoading",imports:["_yUUyh6cG.js","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"_yUUyh6cG.js":j},prefetch:{}},"layouts/default.vue":{scripts:{},styles:{},preload:{"layouts/default.vue":o={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"FZLr1rN5.js",name:"default",src:"layouts/default.vue",isDynamicEntry:!0,imports:["_CnkSDgVO.js","_lLLegusN.js","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m},prefetch:{}},"_DpWhlKu2.js":{scripts:{},styles:{},preload:{"_DpWhlKu2.js":q={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DpWhlKu2.js",name:"composables",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]}},prefetch:{}},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":{scripts:{},styles:{},preload:{"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"P2ZWRt51.js",name:"error-500",src:"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_DpWhlKu2.js"],css:[]},"_DpWhlKu2.js":q},prefetch:{}},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":{scripts:{"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CTAruH_8.js",name:"entry",src:"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js",isEntry:!0,dynamicImports:["layouts/auth.vue","layouts/default.vue","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue"],css:["entry.BUc396Qi.css"]}},styles:{"entry.BUc396Qi.css":z={file:"entry.BUc396Qi.css",resourceType:"style",prefetch:!0,preload:!0}},preload:{"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"_CnkSDgVO.js":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"_CnkSDgVO.js":A={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CnkSDgVO.js",name:"nuxt-link",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BroHRKpP.js",name:"error-404",src:"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue",isDynamicEntry:!0,imports:["_CnkSDgVO.js","../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_DpWhlKu2.js"],css:[]},"_CnkSDgVO.js":A,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_DpWhlKu2.js":q},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"error-404.Dm-MYrAh.css":{scripts:{},styles:{},preload:{"error-404.Dm-MYrAh.css":{file:"error-404.Dm-MYrAh.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"error-500.DM8oqBl3.css":{scripts:{},styles:{},preload:{"error-500.DM8oqBl3.css":{file:"error-500.DM8oqBl3.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"entry.BUc396Qi.css":{scripts:{},styles:{},preload:{"entry.BUc396Qi.css":z},prefetch:{}},"_9B2ftqmN.js":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"_9B2ftqmN.js":B={resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"9B2ftqmN.js",name:"useApi",imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_D9HxoMhB.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"default.miyQHb0v.css":{scripts:{},styles:{},preload:{"default.miyQHb0v.css":{file:"default.miyQHb0v.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/accounts.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/accounts.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"C2sLAWj2.js",name:"accounts",src:"pages/accounts.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"accounts.B82323Fi.css":{scripts:{},styles:{},preload:{"accounts.B82323Fi.css":{file:"accounts.B82323Fi.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/appconfig.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/appconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"B_JvM6BO.js",name:"appconfig",src:"pages/appconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"appconfig.j94fgYL_.css":{scripts:{},styles:{},preload:{"appconfig.j94fgYL_.css":{file:"appconfig.j94fgYL_.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/apps.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/apps.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"vesedpp3.js",name:"apps",src:"pages/apps.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"apps.B7hnJBQU.css":{scripts:{},styles:{},preload:{"apps.B7hnJBQU.css":{file:"apps.B7hnJBQU.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/calltranslate.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/calltranslate.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"DNKl-FHZ.js",name:"calltranslate",src:"pages/calltranslate.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"calltranslate.B6r4Q8-j.css":{scripts:{},styles:{},preload:{"calltranslate.B6r4Q8-j.css":{file:"calltranslate.B6r4Q8-j.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/code.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/code.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"UoJ1COMF.js",name:"code",src:"pages/code.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"pages/dashboard.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/dashboard.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Cx-e2Cok.js",name:"dashboard",src:"pages/dashboard.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"dashboard.bI0rfjl_.css":{scripts:{},styles:{},preload:{"dashboard.bI0rfjl_.css":{file:"dashboard.bI0rfjl_.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/device.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/device.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Cy8zKM7T.js",name:"device",src:"pages/device.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"pages/environments.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/environments.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Bxcdr2qc.js",name:"environments",src:"pages/environments.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"pages/factory.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/factory.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BVGGsVu4.js",name:"factory",src:"pages/factory.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"pages/globalconfig.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/globalconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"uwVesjjP.js",name:"globalconfig",src:"pages/globalconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"pages/index.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/index.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CnuHOwQV.js",name:"index",src:"pages/index.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"index.4nAkFRy2.css":{scripts:{},styles:{},preload:{"index.4nAkFRy2.css":{file:"index.4nAkFRy2.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/mcpconfig.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/mcpconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BeU4EYjt.js",name:"mcpconfig",src:"pages/mcpconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"pages/meettemplates.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/meettemplates.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CZnZfJ5f.js",name:"meettemplates",src:"pages/meettemplates.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"pages/product.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/product.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"GZxzc1Rc.js",name:"product",src:"pages/product.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"pages/serviceconfig.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/serviceconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"CF8arGVK.js",name:"serviceconfig",src:"pages/serviceconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"serviceconfig.Io3AqtMK.css":{scripts:{},styles:{},preload:{"serviceconfig.Io3AqtMK.css":{file:"serviceconfig.Io3AqtMK.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/statlog.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/statlog.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"Bi5c3E0c.js",name:"statlog",src:"pages/statlog.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"statlog.C1q_3yEh.css":{scripts:{},styles:{},preload:{"statlog.C1q_3yEh.css":{file:"statlog.C1q_3yEh.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/systemconfig.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/systemconfig.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"EIJPD_ga.js",name:"systemconfig",src:"pages/systemconfig.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_lLLegusN.js","_yUUyh6cG.js"],css:[]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_lLLegusN.js":k,"_yUUyh6cG.js":j},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}},"systemconfig.DaWusDMu.css":{scripts:{},styles:{},preload:{"systemconfig.DaWusDMu.css":{file:"systemconfig.DaWusDMu.css",resourceType:"style",prefetch:!0,preload:!0}},prefetch:{}},"pages/users.vue":{scripts:{},styles:{"entry.BUc396Qi.css":z},preload:{"pages/users.vue":{resourceType:"script",module:!0,prefetch:!0,preload:!0,file:"BIBu1qhq.js",name:"users",src:"pages/users.vue",isDynamicEntry:!0,imports:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js","_9B2ftqmN.js","_lLLegusN.js","_D9HxoMhB.js","_yUUyh6cG.js"]},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":x,"entry.BUc396Qi.css":z,"_9B2ftqmN.js":B,"_D9HxoMhB.js":m,"_yUUyh6cG.js":j,"_lLLegusN.js":k},prefetch:{"entry.BUc396Qi.css":z,"layouts/auth.vue":h,"layouts/default.vue":o,"_lLLegusN.js":k,"_yUUyh6cG.js":j,"_D9HxoMhB.js":m,"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":u,"_DpWhlKu2.js":q}}},entrypoints:["../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"],modules:{"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue":{file:"BroHRKpP.js",resourceType:"script",mimeType:void 0,module:!0},"error-404.Dm-MYrAh.css":{file:"error-404.Dm-MYrAh.css",resourceType:"style",mimeType:void 0,module:void 0},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue":{file:"P2ZWRt51.js",resourceType:"script",mimeType:void 0,module:!0},"error-500.DM8oqBl3.css":{file:"error-500.DM8oqBl3.css",resourceType:"style",mimeType:void 0,module:void 0},"../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js":{file:"CTAruH_8.js",resourceType:"script",mimeType:void 0,module:!0},"entry.BUc396Qi.css":{file:"entry.BUc396Qi.css",resourceType:"style",mimeType:void 0,module:void 0},"_9B2ftqmN.js":{file:"9B2ftqmN.js",resourceType:"script",mimeType:void 0,module:!0},"_CnkSDgVO.js":{file:"CnkSDgVO.js",resourceType:"script",mimeType:void 0,module:!0},"_D9HxoMhB.js":{file:"D9HxoMhB.js",resourceType:"script",mimeType:void 0,module:!0},"_DpWhlKu2.js":{file:"DpWhlKu2.js",resourceType:"script",mimeType:void 0,module:!0},"_lLLegusN.js":{file:"lLLegusN.js",resourceType:"script",mimeType:void 0,module:!0},"_yUUyh6cG.js":{file:"yUUyh6cG.js",resourceType:"script",mimeType:void 0,module:!0},"layouts/auth.vue":{file:"1YPtusTp.js",resourceType:"script",mimeType:void 0,module:!0},"layouts/default.vue":{file:"FZLr1rN5.js",resourceType:"script",mimeType:void 0,module:!0},"default.miyQHb0v.css":{file:"default.miyQHb0v.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/accounts.vue":{file:"C2sLAWj2.js",resourceType:"script",mimeType:void 0,module:!0},"accounts.B82323Fi.css":{file:"accounts.B82323Fi.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/appconfig.vue":{file:"B_JvM6BO.js",resourceType:"script",mimeType:void 0,module:!0},"appconfig.j94fgYL_.css":{file:"appconfig.j94fgYL_.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/apps.vue":{file:"vesedpp3.js",resourceType:"script",mimeType:void 0,module:!0},"apps.B7hnJBQU.css":{file:"apps.B7hnJBQU.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/calltranslate.vue":{file:"DNKl-FHZ.js",resourceType:"script",mimeType:void 0,module:!0},"calltranslate.B6r4Q8-j.css":{file:"calltranslate.B6r4Q8-j.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/code.vue":{file:"UoJ1COMF.js",resourceType:"script",mimeType:void 0,module:!0},"pages/dashboard.vue":{file:"Cx-e2Cok.js",resourceType:"script",mimeType:void 0,module:!0},"dashboard.bI0rfjl_.css":{file:"dashboard.bI0rfjl_.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/device.vue":{file:"Cy8zKM7T.js",resourceType:"script",mimeType:void 0,module:!0},"pages/environments.vue":{file:"Bxcdr2qc.js",resourceType:"script",mimeType:void 0,module:!0},"pages/factory.vue":{file:"BVGGsVu4.js",resourceType:"script",mimeType:void 0,module:!0},"pages/globalconfig.vue":{file:"uwVesjjP.js",resourceType:"script",mimeType:void 0,module:!0},"pages/index.vue":{file:"CnuHOwQV.js",resourceType:"script",mimeType:void 0,module:!0},"index.4nAkFRy2.css":{file:"index.4nAkFRy2.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/mcpconfig.vue":{file:"BeU4EYjt.js",resourceType:"script",mimeType:void 0,module:!0},"pages/meettemplates.vue":{file:"CZnZfJ5f.js",resourceType:"script",mimeType:void 0,module:!0},"pages/product.vue":{file:"GZxzc1Rc.js",resourceType:"script",mimeType:void 0,module:!0},"pages/serviceconfig.vue":{file:"CF8arGVK.js",resourceType:"script",mimeType:void 0,module:!0},"serviceconfig.Io3AqtMK.css":{file:"serviceconfig.Io3AqtMK.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/statlog.vue":{file:"Bi5c3E0c.js",resourceType:"script",mimeType:void 0,module:!0},"statlog.C1q_3yEh.css":{file:"statlog.C1q_3yEh.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/systemconfig.vue":{file:"EIJPD_ga.js",resourceType:"script",mimeType:void 0,module:!0},"systemconfig.DaWusDMu.css":{file:"systemconfig.DaWusDMu.css",resourceType:"style",mimeType:void 0,module:void 0},"pages/users.vue":{file:"BIBu1qhq.js",resourceType:"script",mimeType:void 0,module:!0}}}))() \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs index 1cabdf88..98e7b5d2 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs @@ -1939,111 +1939,132 @@ global.__VUE_PROD_DEVTOOLS__ = false; function toArray$1(value) { return Array.isArray(value) ? value : [value]; } -const __nuxt_page_meta$e = { title: "后台账号" }; -const __nuxt_page_meta$d = { title: "应用注册" }; -const __nuxt_page_meta$c = { title: "通话翻译配置" }; -const __nuxt_page_meta$b = { title: "公码管理" }; -const __nuxt_page_meta$a = { title: "数据概览" }; -const __nuxt_page_meta$9 = { title: "生产管理" }; -const __nuxt_page_meta$8 = { title: "厂家管理" }; -const __nuxt_page_meta$7 = { title: "全局环境配置" }; -const __nuxt_page_meta$6 = { title: "MCP配置" }; -const __nuxt_page_meta$5 = { title: "会议模板" }; -const __nuxt_page_meta$4 = { title: "产品管理" }; -const __nuxt_page_meta$3 = { title: "依赖服务配置" }; -const __nuxt_page_meta$2 = { title: "统计日志" }; +const __nuxt_page_meta$h = { title: "后台账号" }; +const __nuxt_page_meta$g = { title: "应用服务配置" }; +const __nuxt_page_meta$f = { title: "应用管理" }; +const __nuxt_page_meta$e = { title: "通话翻译配置" }; +const __nuxt_page_meta$d = { title: "公码管理" }; +const __nuxt_page_meta$c = { title: "数据概览" }; +const __nuxt_page_meta$b = { title: "生产管理" }; +const __nuxt_page_meta$a = { title: "环境节点" }; +const __nuxt_page_meta$9 = { title: "厂家管理" }; +const __nuxt_page_meta$8 = { title: "全局环境配置" }; +const __nuxt_page_meta$7 = { title: "MCP配置" }; +const __nuxt_page_meta$6 = { title: "会议模板" }; +const __nuxt_page_meta$5 = { title: "产品管理" }; +const __nuxt_page_meta$4 = { title: "第三方服务配置" }; +const __nuxt_page_meta$3 = { title: "统计日志" }; +const __nuxt_page_meta$2 = { title: "系统配置" }; const __nuxt_page_meta$1 = { title: "用户查询" }; const __nuxt_page_meta = { layout: "auth" }; const _routes = [ { name: "accounts", path: "/accounts", - meta: __nuxt_page_meta$e || {}, - component: () => import("./_nuxt/accounts-Bou39dJh.js") + meta: __nuxt_page_meta$h || {}, + component: () => import("./_nuxt/accounts-BlBS367g.js") + }, + { + name: "appconfig", + path: "/appconfig", + meta: __nuxt_page_meta$g || {}, + component: () => import("./_nuxt/appconfig-b7qb0UVr.js") }, { name: "apps", path: "/apps", - meta: __nuxt_page_meta$d || {}, - component: () => import("./_nuxt/apps-DL1E6wot.js") + meta: __nuxt_page_meta$f || {}, + component: () => import("./_nuxt/apps-DkgvJNjV.js") }, { name: "calltranslate", path: "/calltranslate", - meta: __nuxt_page_meta$c || {}, - component: () => import("./_nuxt/calltranslate-C6glzS4R.js") + meta: __nuxt_page_meta$e || {}, + component: () => import("./_nuxt/calltranslate-B1hhAqN7.js") }, { name: "code", path: "/code", - meta: __nuxt_page_meta$b || {}, - component: () => import("./_nuxt/code-Bi0p3nMD.js") + meta: __nuxt_page_meta$d || {}, + component: () => import("./_nuxt/code-BQgGcfFH.js") }, { name: "dashboard", path: "/dashboard", - meta: __nuxt_page_meta$a || {}, - component: () => import("./_nuxt/dashboard-ClL32CVK.js") + meta: __nuxt_page_meta$c || {}, + component: () => import("./_nuxt/dashboard-BeG8w5Q7.js") }, { name: "device", path: "/device", - meta: __nuxt_page_meta$9 || {}, - component: () => import("./_nuxt/device-BeGbj3n2.js") + meta: __nuxt_page_meta$b || {}, + component: () => import("./_nuxt/device-CraC512i.js") + }, + { + name: "environments", + path: "/environments", + meta: __nuxt_page_meta$a || {}, + component: () => import("./_nuxt/environments-SWB_O04K.js") }, { name: "factory", path: "/factory", - meta: __nuxt_page_meta$8 || {}, - component: () => import("./_nuxt/factory-CpK-E5oz.js") + meta: __nuxt_page_meta$9 || {}, + component: () => import("./_nuxt/factory-C8vqM9Rd.js") }, { name: "globalconfig", path: "/globalconfig", - meta: __nuxt_page_meta$7 || {}, - component: () => import("./_nuxt/globalconfig-B8x1DBTX.js") + meta: __nuxt_page_meta$8 || {}, + component: () => import("./_nuxt/globalconfig-VTDKVQk0.js") }, { name: "mcpconfig", path: "/mcpconfig", - meta: __nuxt_page_meta$6 || {}, - component: () => import("./_nuxt/mcpconfig-ctvtKFMJ.js") + meta: __nuxt_page_meta$7 || {}, + component: () => import("./_nuxt/mcpconfig-CBH98Fue.js") }, { name: "meettemplates", path: "/meettemplates", - meta: __nuxt_page_meta$5 || {}, - component: () => import("./_nuxt/meettemplates-BLKHVh2U.js") + meta: __nuxt_page_meta$6 || {}, + component: () => import("./_nuxt/meettemplates-JHBZiczV.js") }, { name: "product", path: "/product", - meta: __nuxt_page_meta$4 || {}, - component: () => import("./_nuxt/product-kmWP87Mw.js") + meta: __nuxt_page_meta$5 || {}, + component: () => import("./_nuxt/product-B4xMZxup.js") }, { name: "serviceconfig", path: "/serviceconfig", - meta: __nuxt_page_meta$3 || {}, - component: () => import("./_nuxt/serviceconfig-BTX37VDF.js") + meta: __nuxt_page_meta$4 || {}, + component: () => import("./_nuxt/serviceconfig-DRqotJ7A.js") }, { name: "statlog", path: "/statlog", + meta: __nuxt_page_meta$3 || {}, + component: () => import("./_nuxt/statlog-DjkPa7zJ.js") + }, + { + name: "systemconfig", + path: "/systemconfig", meta: __nuxt_page_meta$2 || {}, - component: () => import("./_nuxt/statlog-CB_u8NxU.js") + component: () => import("./_nuxt/systemconfig-C0cMeH0T.js") }, { name: "users", path: "/users", meta: __nuxt_page_meta$1 || {}, - component: () => import("./_nuxt/users-QyiQmRX_.js") + component: () => import("./_nuxt/users-CqhWenqn.js") }, { name: "index", path: "/", meta: __nuxt_page_meta || {}, - component: () => import("./_nuxt/index-DQ1sfbFW.js") + component: () => import("./_nuxt/index-CilMQOs1.js") } ]; var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; @@ -3554,7 +3575,7 @@ const plugins = [ ]; const layouts = { auth: defineAsyncComponent(() => import("./_nuxt/auth-C9kTPqOY.js").then((m) => m.default || m)), - default: defineAsyncComponent(() => import("./_nuxt/default-CKIkgZOu.js").then((m) => m.default || m)) + default: defineAsyncComponent(() => import("./_nuxt/default-DDIg74_f.js").then((m) => m.default || m)) }; const routeRulesMatcher = _routeRulesMatcher; const LayoutLoader = defineComponent({ @@ -3836,7 +3857,7 @@ const _sfc_main$1 = { const statusText = _error.statusMessage ?? (is404 ? "Page Not Found" : "Internal Server Error"); const description = _error.message || _error.toString(); const stack = void 0; - const _Error404 = defineAsyncComponent(() => import("./_nuxt/error-404-DHCmSEsF.js")); + const _Error404 = defineAsyncComponent(() => import("./_nuxt/error-404-BZja4_wg.js")); const _Error = defineAsyncComponent(() => import("./_nuxt/error-500-DO0PWb4R.js")); const ErrorTemplate = is404 ? _Error404 : _Error; return (_ctx, _push, _parent, _attrs) => { @@ -3930,8 +3951,8 @@ let entry; const entry_default = ((ssrContext) => entry(ssrContext)); export { _export_sfc as _, - useRouter as a, - useRoute$1 as b, + useRoute$1 as a, + useRouter as b, useRuntimeConfig as c, nuxtLinkDefaults as d, entry_default as default, diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map index 7bd008b7..0407d7f3 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map @@ -1 +1 @@ -{"version":3,"file":"server.mjs","sources":["../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Ffetch.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fglobal-polyfills.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fnuxt.config.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/nuxt.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/injections.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/utils.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/router.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/error.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froute-rules.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/manifest.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/payload.js","../../../../../.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/island-head.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/dist/useApi-s_02lHjl.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/dist/devtools-DCoWQoU_.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/dist/vue-router.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/vue-router.node.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/utils.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froutes.mjs","../../../../../.pnpm/@vue+shared@3.5.38/node_modules/@vue/shared/dist/shared.cjs.prod.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/utils.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/router.options.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Frouter.options.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/validate.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/middleware/route-rules.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fmiddleware.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fcomponents.islands.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/server-placeholder.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/client-only.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/compiler/runtime/index.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/asyncData.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/ssr.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/fetch.js","../../../../../.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fcomponents.plugin.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fplugins.server.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Flayouts.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-layout.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/route-provider.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/page.js","../../../../../../app/app.vue","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"],"sourcesContent":["import { $fetch } from 'ofetch'\nimport { baseURL } from '#internal/nuxt/paths'\nif (!globalThis.$fetch) {\n globalThis.$fetch = $fetch.create({\n baseURL: baseURL()\n })\n}","\nif (!(\"global\" in globalThis)) {\n globalThis.global = globalThis;\n}","export const appHead = {\"meta\":[{\"charset\":\"utf-8\"},{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],\"link\":[],\"style\":[],\"script\":[],\"noscript\":[],\"title\":\"Yunyan Admin\"}\n\nexport const appBaseURL = \"/\"\n\nexport const appBuildAssetsDir = \"/_nuxt/\"\n\nexport const appCdnURL = \"\"\n\nexport const appLayoutTransition = false\n\nexport const appPageTransition = false\n\nexport const appViewTransition = {\"enabled\":false}\n\nexport const appKeepalive = false\n\nexport const appRootId = \"__nuxt\"\n\nexport const appRootTag = \"div\"\n\nexport const appRootAttrs = {\"id\":\"__nuxt\"}\n\nexport const appTeleportTag = \"div\"\n\nexport const appTeleportId = \"teleports\"\n\nexport const appTeleportAttrs = {\"id\":\"teleports\"}\n\nexport const appSpaLoaderTag = \"div\"\n\nexport const appSpaLoaderAttrs = {\"id\":\"__nuxt-loader\"}\n\nexport const renderJsonPayloads = true\n\nexport const componentIslands = false\n\nexport const payloadExtraction = false\n\nexport const cookieStore = true\n\nexport const appManifest = true\n\nexport const remoteComponentIslands = false\n\nexport const selectiveClient = false\n\nexport const devPagesDir = null\n\nexport const devRootDir = null\n\nexport const devLogs = false\n\nexport const nuxtLinkDefaults = {\"componentName\":\"NuxtLink\",\"prefetch\":true,\"prefetchOn\":{\"visibility\":true}}\n\nexport const asyncDataDefaults = {\"deep\":false}\n\nexport const useStateDefaults = {\"resetOnClear\":false}\n\nexport const fetchDefaults = {}\n\nexport const vueAppRootContainer = '#__nuxt'\n\nexport const viewTransition = false\n\nexport const appId = \"nuxt-app\"\n\nexport const outdatedBuildInterval = 3600000\n\nexport const multiApp = false\n\nexport const chunkErrorEvent = \"vite:preloadError\"\n\nexport const crawlLinks = false\n\nexport const spaLoadingTemplateOutside = true\n\nexport const purgeCachedData = true\n\nexport const granularCachedData = true\n\nexport const pendingWhenIdle = false\n\nexport const alwaysRunFetchOnKeyChange = false\n\nexport const asyncCallHook = true\n\nexport const clientNodePlaceholder = false","import { effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, reactive, shallowReactive } from \"vue\";\nimport { createHooks } from \"hookable\";\nimport { getContext } from \"unctx\";\nimport { appId, asyncCallHook, chunkErrorEvent, multiApp } from \"#build/nuxt.config.mjs\";\nexport function getNuxtAppCtx(id = appId || \"nuxt-app\") {\n return getContext(id, {\n asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server\n });\n}\nexport const NuxtPluginIndicator = \"__nuxt_plugin\";\nexport function createNuxtApp(options) {\n let hydratingCount = 0;\n const nuxtApp = {\n _id: options.id || appId || \"nuxt-app\",\n _scope: effectScope(),\n provide: void 0,\n versions: {\n get nuxt() {\n return __NUXT_VERSION__;\n },\n get vue() {\n return nuxtApp.vueApp.version;\n }\n },\n payload: shallowReactive({\n ...options.ssrContext?.payload || {},\n data: shallowReactive({}),\n state: reactive({}),\n once: /* @__PURE__ */ new Set(),\n _errors: shallowReactive({})\n }),\n static: {\n data: {}\n },\n runWithContext(fn) {\n if (nuxtApp._scope.active && !getCurrentScope()) {\n return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));\n }\n return callWithNuxt(nuxtApp, fn);\n },\n isHydrating: import.meta.client,\n deferHydration() {\n if (!nuxtApp.isHydrating) {\n return () => {\n };\n }\n hydratingCount++;\n let called = false;\n return () => {\n if (called) {\n return;\n }\n called = true;\n hydratingCount--;\n if (hydratingCount === 0) {\n nuxtApp.isHydrating = false;\n return nuxtApp.callHook(\"app:suspense:resolve\");\n }\n };\n },\n _asyncDataPromises: {},\n _asyncData: shallowReactive({}),\n _state: shallowReactive({}),\n _payloadRevivers: {},\n ...options\n };\n if (import.meta.server) {\n nuxtApp.payload.serverRendered = true;\n }\n if (import.meta.server && nuxtApp.ssrContext) {\n nuxtApp.payload.path = nuxtApp.ssrContext.url;\n nuxtApp.ssrContext.nuxt = nuxtApp;\n nuxtApp.ssrContext.payload = nuxtApp.payload;\n nuxtApp.ssrContext.config = {\n public: nuxtApp.ssrContext.runtimeConfig.public,\n app: nuxtApp.ssrContext.runtimeConfig.app\n };\n }\n if (import.meta.client) {\n const __NUXT__ = multiApp ? window.__NUXT__?.[nuxtApp._id] : window.__NUXT__;\n if (__NUXT__) {\n for (const key in __NUXT__) {\n switch (key) {\n case \"data\":\n case \"state\":\n case \"_errors\":\n Object.assign(nuxtApp.payload[key], __NUXT__[key]);\n break;\n default:\n nuxtApp.payload[key] = __NUXT__[key];\n }\n }\n }\n }\n nuxtApp.hooks = createHooks();\n nuxtApp.hook = nuxtApp.hooks.hook;\n if (import.meta.server) {\n const contextCaller = async function(hooks, args) {\n for (const hook of hooks) {\n await nuxtApp.runWithContext(() => hook(...args));\n }\n };\n nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, args);\n } else if (asyncCallHook) {\n const _callHook = nuxtApp.hooks.callHook;\n nuxtApp.hooks.callHook = (name, ...args) => Promise.resolve().then(() => _callHook(name, ...args));\n }\n nuxtApp.callHook = nuxtApp.hooks.callHook;\n nuxtApp.provide = (name, value) => {\n const $name = \"$\" + name;\n defineGetter(nuxtApp, $name, value);\n defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);\n };\n defineGetter(nuxtApp.vueApp, \"$nuxt\", nuxtApp);\n defineGetter(nuxtApp.vueApp.config.globalProperties, \"$nuxt\", nuxtApp);\n if (import.meta.client) {\n if (chunkErrorEvent) {\n window.addEventListener(chunkErrorEvent, (event) => {\n nuxtApp.callHook(\"app:chunkError\", { error: event.payload });\n if (event.payload?.message?.includes(\"Unable to preload CSS\")) {\n event.preventDefault();\n }\n });\n }\n window.useNuxtApp ||= useNuxtApp;\n const unreg = nuxtApp.hook(\"app:error\", (...args) => {\n console.error(\"[nuxt] error caught during app initialization\", ...args);\n });\n nuxtApp.hook(\"app:mounted\", unreg);\n }\n const runtimeConfig = import.meta.server ? options.ssrContext.runtimeConfig : nuxtApp.payload.config;\n nuxtApp.provide(\"config\", import.meta.client && import.meta.dev ? wrappedConfig(runtimeConfig) : runtimeConfig);\n return nuxtApp;\n}\nexport function registerPluginHooks(nuxtApp, plugin) {\n if (plugin.hooks) {\n nuxtApp.hooks.addHooks(plugin.hooks);\n }\n}\nexport async function applyPlugin(nuxtApp, plugin) {\n if (typeof plugin === \"function\") {\n const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};\n if (provide && typeof provide === \"object\") {\n for (const key in provide) {\n nuxtApp.provide(key, provide[key]);\n }\n }\n }\n}\nexport async function applyPlugins(nuxtApp, plugins) {\n const resolvedPlugins = /* @__PURE__ */ new Set();\n const unresolvedPlugins = [];\n const parallels = [];\n let error = void 0;\n let promiseDepth = 0;\n async function executePlugin(plugin) {\n const unresolvedPluginsForThisPlugin = plugin.dependsOn?.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.has(name)) ?? [];\n if (unresolvedPluginsForThisPlugin.length > 0) {\n unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]);\n } else {\n const promise = applyPlugin(nuxtApp, plugin).then(async () => {\n if (plugin._name) {\n resolvedPlugins.add(plugin._name);\n await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {\n if (dependsOn.has(plugin._name)) {\n dependsOn.delete(plugin._name);\n if (dependsOn.size === 0) {\n promiseDepth++;\n await executePlugin(unexecutedPlugin);\n }\n }\n }));\n }\n }).catch((e) => {\n if (!plugin.parallel && !nuxtApp.payload.error) {\n throw e;\n }\n error ||= e;\n });\n if (plugin.parallel) {\n parallels.push(promise);\n } else {\n await promise;\n }\n }\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n registerPluginHooks(nuxtApp, plugin);\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n await executePlugin(plugin);\n }\n await Promise.all(parallels);\n if (promiseDepth) {\n for (let i = 0; i < promiseDepth; i++) {\n await Promise.all(parallels);\n }\n }\n if (error) {\n throw nuxtApp.payload.error || error;\n }\n}\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtPlugin(plugin) {\n if (typeof plugin === \"function\") {\n return plugin;\n }\n const _name = plugin._name || plugin.name;\n delete plugin.name;\n return Object.assign(plugin.setup || (() => {\n }), plugin, { [NuxtPluginIndicator]: true, _name });\n}\nexport const definePayloadPlugin = defineNuxtPlugin;\nexport function isNuxtPlugin(plugin) {\n return typeof plugin === \"function\" && NuxtPluginIndicator in plugin;\n}\nexport function callWithNuxt(nuxt, setup, args) {\n const fn = () => args ? setup(...args) : setup();\n const nuxtAppCtx = getNuxtAppCtx(nuxt._id);\n if (import.meta.server) {\n return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));\n } else {\n nuxtAppCtx.set(nuxt);\n return nuxt.vueApp.runWithContext(fn);\n }\n}\nexport function tryUseNuxtApp(id) {\n let nuxtAppInstance;\n if (hasInjectionContext()) {\n nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;\n }\n nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();\n return nuxtAppInstance || null;\n}\nexport function useNuxtApp(id) {\n const nuxtAppInstance = tryUseNuxtApp(id);\n if (!nuxtAppInstance) {\n if (import.meta.dev) {\n throw new Error(\"[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/4.x/guide/concepts/auto-imports#vue-and-nuxt-composables`.\");\n } else {\n throw new Error(\"[nuxt] instance unavailable\");\n }\n }\n return nuxtAppInstance;\n}\n// @__NO_SIDE_EFFECTS__\nexport function useRuntimeConfig(_event) {\n return useNuxtApp().$config;\n}\nfunction defineGetter(obj, key, val) {\n Object.defineProperty(obj, key, { get: () => val });\n}\nexport function defineAppConfig(config) {\n return config;\n}\nconst loggedKeys = /* @__PURE__ */ new Set();\nfunction wrappedConfig(runtimeConfig) {\n if (!import.meta.dev || import.meta.server) {\n return runtimeConfig;\n }\n const keys = [];\n for (const key in runtimeConfig) {\n keys.push(`\\`${key}\\``);\n }\n const lastKey = keys.pop();\n return new Proxy(runtimeConfig, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p !== \"public\" && !(p in target) && !p.startsWith(\"__v\")) {\n if (!loggedKeys.has(p)) {\n loggedKeys.add(p);\n console.warn(`[nuxt] Could not access \\`${p}\\`. The only available runtime config keys on the client side are ${keys.join(\", \")} and ${lastKey}. See https://nuxt.com/docs/4.x/guide/going-further/runtime-config for more information.`);\n }\n }\n return Reflect.get(target, p, receiver);\n }\n });\n}\n","export const LayoutMetaSymbol = Symbol(\"layout-meta\");\nexport const PageRouteSymbol = Symbol(\"route\");\n","import { captureStackTrace } from \"errx\";\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nconst distURL = import.meta.url.replace(/\\/app\\/.*$/, \"/\");\nexport function getUserTrace() {\n if (!import.meta.dev) {\n return [];\n }\n const trace = captureStackTrace();\n const start = trace.findIndex((entry) => !entry.source.startsWith(distURL));\n const end = trace.toReversed().findIndex((entry) => !entry.source.includes(\"node_modules\") && !entry.source.startsWith(distURL));\n if (start === -1 || end === -1) {\n return [];\n }\n return trace.slice(start, end > 0 ? -end : void 0).map((i) => ({\n ...i,\n source: i.source.replace(/^file:\\/\\//, \"\")\n }));\n}\nexport function getUserCaller() {\n if (!import.meta.dev) {\n return null;\n }\n const { source, line, column } = captureStackTrace().find((entry) => !entry.source.startsWith(distURL)) ?? {};\n if (!source) {\n return null;\n }\n return {\n source: source.replace(/^file:\\/\\//, \"\"),\n line,\n column\n };\n}\n","import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from \"vue\";\nimport { sanitizeStatusCode } from \"@nuxt/nitro-server/h3\";\nimport { decodePath, encodePath, hasProtocol, isScriptProtocol, joinURL, parseQuery, parseURL, withQuery } from \"ufo\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { PageRouteSymbol } from \"../components/injections.js\";\nimport { createError, showError } from \"./error.js\";\nimport { getUserTrace } from \"../utils.js\";\nexport const useRouter = () => {\n return useNuxtApp()?.$router;\n};\nexport const useRoute = () => {\n if (import.meta.dev && !getCurrentInstance() && isProcessingMiddleware()) {\n const middleware = useNuxtApp()._processingMiddleware;\n const trace = getUserTrace().map(({ source, line, column }) => `at ${source}:${line}:${column}`).join(\"\\n\");\n console.warn(`[nuxt] \\`useRoute\\` was called within middleware${typeof middleware === \"string\" ? ` (\\`${middleware}\\`)` : \"\"}. This may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes. Learn more: https://nuxt.com/docs/4.x/directory-structure/app/middleware#accessing-route-in-middleware` + (\"\\n\" + trace));\n }\n if (hasInjectionContext()) {\n return inject(PageRouteSymbol, useNuxtApp()._route);\n }\n return useNuxtApp()._route;\n};\nexport const onBeforeRouteLeave = (guard) => {\n const unsubscribe = useRouter().beforeEach((to, from, next) => {\n if (to === from) {\n return;\n }\n return guard(to, from, next);\n });\n onScopeDispose(unsubscribe);\n};\nexport const onBeforeRouteUpdate = (guard) => {\n const unsubscribe = useRouter().beforeEach(guard);\n onScopeDispose(unsubscribe);\n};\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtRouteMiddleware(middleware) {\n return middleware;\n}\nexport const addRouteMiddleware = (name, middleware, options = {}) => {\n const nuxtApp = useNuxtApp();\n const global = options.global || typeof name !== \"string\";\n const mw = typeof name !== \"string\" ? name : middleware;\n if (!mw) {\n console.warn(\"[nuxt] No route middleware passed to `addRouteMiddleware`.\", name);\n return;\n }\n if (global) {\n nuxtApp._middleware.global.push(mw);\n } else {\n nuxtApp._middleware.named[name] = mw;\n }\n};\nconst isProcessingMiddleware = () => {\n try {\n if (useNuxtApp()._processingMiddleware) {\n return true;\n }\n } catch {\n return false;\n }\n return false;\n};\nconst HTML_ATTR_UNSAFE_RE = /[&\"'<>]/g;\nconst HTML_ATTR_ENCODE_MAP = {\n \"&\": \"%26\",\n '\"': \"%22\",\n \"'\": \"%27\",\n \"<\": \"%3C\",\n \">\": \"%3E\"\n};\nfunction encodeForHtmlAttr(value) {\n return value.replace(HTML_ATTR_UNSAFE_RE, (c) => HTML_ATTR_ENCODE_MAP[c]);\n}\nexport const navigateTo = (to, options) => {\n to ||= \"/\";\n const toPath = typeof to === \"string\" ? to : \"path\" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;\n if (import.meta.client && options?.open) {\n const { protocol } = new URL(toPath, window.location.href);\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n const { target = \"_blank\", windowFeatures = {} } = options.open;\n const features = [];\n for (const [feature, value] of Object.entries(windowFeatures)) {\n if (value !== void 0) {\n features.push(`${feature.toLowerCase()}=${value}`);\n }\n }\n open(toPath, target, features.join(\", \"));\n return Promise.resolve();\n }\n const isExternalHost = hasProtocol(toPath, { acceptRelative: true });\n const isExternal = options?.external || isExternalHost;\n if (isExternal) {\n if (!options?.external) {\n throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");\n }\n const { protocol } = new URL(toPath, import.meta.client ? window.location.href : \"http://localhost\");\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n }\n const inMiddleware = isProcessingMiddleware();\n if (import.meta.client && !isExternal && inMiddleware) {\n if (options?.replace) {\n if (typeof to === \"string\") {\n const { pathname, search, hash } = parseURL(to);\n return {\n path: pathname,\n ...search && { query: parseQuery(search) },\n ...hash && { hash },\n replace: true\n };\n }\n return { ...to, replace: true };\n }\n return to;\n }\n const router = useRouter();\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (nuxtApp.ssrContext) {\n const fullPath = typeof to === \"string\" || isExternal ? toPath : router.resolve(to).fullPath || \"/\";\n const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath);\n const redirect = async function(response) {\n await nuxtApp.callHook(\"app:redirected\");\n const encodedHeader = encodeURL(location2, isExternalHost);\n const encodedLoc = encodeForHtmlAttr(encodedHeader);\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),\n body: ``,\n headers: { location: encodedHeader }\n };\n return response;\n };\n if (!isExternal && inMiddleware) {\n router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);\n return to;\n }\n return redirect(!inMiddleware ? void 0 : (\n /* abort route navigation */\n false\n ));\n }\n }\n if (isExternal) {\n nuxtApp._scope.stop();\n if (options?.replace) {\n location.replace(toPath);\n } else {\n location.href = toPath;\n }\n if (inMiddleware) {\n if (!nuxtApp.isHydrating) {\n return false;\n }\n return new Promise(() => {\n });\n }\n return Promise.resolve();\n }\n const encodedTo = typeof to === \"string\" ? encodeRoutePath(to) : to;\n return options?.replace ? router.replace(encodedTo) : router.push(encodedTo);\n};\nexport const abortNavigation = (err) => {\n if (import.meta.dev && !isProcessingMiddleware()) {\n throw new Error(\"abortNavigation() is only usable inside a route middleware handler.\");\n }\n if (!err) {\n return false;\n }\n err = createError(err);\n if (err.fatal) {\n useNuxtApp().runWithContext(() => showError(err));\n }\n throw err;\n};\nexport const setPageLayout = (layout, props) => {\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (import.meta.dev && getCurrentInstance() && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.\");\n }\n nuxtApp.payload.state._layout = layout;\n nuxtApp.payload.state._layoutProps = props;\n }\n if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.\");\n }\n const inMiddleware = isProcessingMiddleware();\n if (inMiddleware || import.meta.server || nuxtApp.isHydrating) {\n const unsubscribe = useRouter().beforeResolve((to) => {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n unsubscribe();\n });\n }\n if (!inMiddleware) {\n const route = useRoute();\n route.meta.layout = layout;\n route.meta.layoutProps = props;\n if (import.meta.client) {\n const unsubscribe = useRouter().beforeResolve((to, from) => {\n if (to.path === from.path) {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n } else {\n unsubscribe();\n }\n });\n onScopeDispose(unsubscribe, true);\n }\n }\n};\nexport function resolveRouteObject(to) {\n return withQuery(to.path || \"\", to.query || {}) + (to.hash || \"\");\n}\nexport function encodeURL(location2, isExternalHost = false) {\n const url = new URL(location2, \"http://localhost\");\n if (!isExternalHost) {\n const pathname = url.pathname.replace(/^\\/{2,}/, \"/\");\n return pathname + url.search + url.hash;\n }\n if (location2.startsWith(\"//\")) {\n return url.toString().replace(url.protocol, \"\");\n }\n return url.toString();\n}\nexport function encodeRoutePath(url) {\n const parsed = parseURL(url);\n return encodePath(decodePath(parsed.pathname)) + parsed.search + parsed.hash;\n}\n","import { createError as createH3Error } from \"@nuxt/nitro-server/h3\";\nimport { toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRouter } from \"./router.js\";\nexport const NUXT_ERROR_SIGNATURE = \"__nuxt_error\";\nexport const useError = /* @__NO_SIDE_EFFECTS__ */ () => toRef(useNuxtApp().payload, \"error\");\nexport const showError = (error) => {\n const nuxtError = createError(error);\n try {\n const error2 = /* @__PURE__ */ useError();\n if (import.meta.client) {\n const nuxtApp = useNuxtApp();\n nuxtApp.hooks.callHook(\"app:error\", nuxtError);\n }\n error2.value ||= nuxtError;\n } catch {\n throw nuxtError;\n }\n return nuxtError;\n};\nexport const clearError = async (options = {}) => {\n const nuxtApp = useNuxtApp();\n const error = /* @__PURE__ */ useError();\n nuxtApp.callHook(\"app:error:cleared\", options);\n if (options.redirect) {\n await useRouter().replace(options.redirect);\n }\n error.value = void 0;\n};\nexport const isNuxtError = (error) => !!error && typeof error === \"object\" && NUXT_ERROR_SIGNATURE in error;\nexport const createError = (error) => {\n if (typeof error !== \"string\" && error.statusText) {\n error.message ??= error.statusText;\n }\n const nuxtError = createH3Error(error);\n Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {\n value: true,\n configurable: false,\n writable: false\n });\n Object.defineProperty(nuxtError, \"status\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusCode,\n configurable: true\n });\n Object.defineProperty(nuxtError, \"statusText\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusMessage,\n configurable: true\n });\n return nuxtError;\n};\n","\n import { defu } from 'defu'\n const matcher = (m,p)=>{return [];}\n export default (path) => defu({}, ...matcher('', typeof path === 'string' ? path.toLowerCase() : path).map(r => r.data).reverse())\n ","import { useRuntimeConfig } from \"../nuxt.js\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport { buildAssetsURL } from \"#internal/nuxt/paths\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nlet manifest;\nfunction fetchManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n let _manifest;\n if (import.meta.server) {\n _manifest = import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"#app-manifest\"\n );\n } else {\n _manifest = $fetch(buildAssetsURL(`builds/meta/${useRuntimeConfig().app.buildId}.json`), {\n responseType: \"json\"\n }).then((res) => {\n if (!res || typeof res !== \"object\" || !Array.isArray(res.prerendered)) {\n throw new Error(\"[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.\");\n }\n return res;\n });\n }\n manifest = _manifest;\n _manifest.catch((e) => {\n if (manifest === _manifest) {\n manifest = void 0;\n }\n console.error(\"[nuxt] Error fetching app manifest.\", e);\n });\n return _manifest;\n}\nexport function getAppManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n return manifest || fetchManifest();\n}\nexport function getRouteRules(arg) {\n const path = typeof arg === \"string\" ? arg : arg.path;\n try {\n return routeRulesMatcher(path.toLowerCase());\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\n}\n","import { hasProtocol, joinURL } from \"ufo\";\nimport { parse } from \"devalue\";\nimport { getCurrentInstance, onServerPrefetch, reactive } from \"vue\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { useHead } from \"./head.js\";\nimport { useRoute } from \"./router.js\";\nimport { getAppManifest, getRouteRules } from \"./manifest.js\";\nimport { appId, appManifest, multiApp, payloadExtraction, renderJsonPayloads } from \"#build/nuxt.config.mjs\";\nexport async function loadPayload(url, opts = {}) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n if (await shouldLoadPayload(url)) {\n const payloadURL = await _getPayloadURL(url, opts);\n return await _importPayload(payloadURL) || null;\n }\n return null;\n}\nlet linkRelType;\nfunction detectLinkRelType() {\n if (import.meta.server) {\n return \"preload\";\n }\n if (linkRelType) {\n return linkRelType;\n }\n const relList = document.createElement(\"link\").relList;\n linkRelType = relList && relList.supports && relList.supports(\"prefetch\") ? \"prefetch\" : \"preload\";\n return linkRelType;\n}\nexport function preloadPayload(url, opts = {}) {\n const nuxtApp = useNuxtApp();\n const promise = shouldLoadPayload(url).then(async (shouldPreload) => {\n if (!shouldPreload) {\n return;\n }\n const payloadURL = await _getPayloadURL(url, opts);\n const link = renderJsonPayloads ? { rel: detectLinkRelType(), as: \"fetch\", crossorigin: \"anonymous\", href: payloadURL } : { rel: \"modulepreload\", crossorigin: \"\", href: payloadURL };\n if (import.meta.server) {\n nuxtApp.runWithContext(() => useHead({ link: [link] }));\n } else {\n const linkEl = document.createElement(\"link\");\n for (const key of Object.keys(link)) {\n linkEl[key === \"crossorigin\" ? \"crossOrigin\" : key] = link[key];\n }\n document.head.appendChild(linkEl);\n return new Promise((resolve, reject) => {\n linkEl.addEventListener(\"load\", () => resolve());\n linkEl.addEventListener(\"error\", () => reject());\n });\n }\n });\n if (import.meta.server) {\n onServerPrefetch(() => promise);\n }\n return promise;\n}\nconst filename = renderJsonPayloads ? \"_payload.json\" : \"_payload.js\";\nasync function _getPayloadURL(url, opts = {}) {\n const u = new URL(url, \"http://localhost\");\n if (u.host !== \"localhost\" || hasProtocol(u.pathname, { acceptRelative: true })) {\n throw new Error(\"Payload URL must not include hostname: \" + url);\n }\n const config = useRuntimeConfig();\n const hash = opts.hash || (opts.fresh || import.meta.dev ? Date.now() : config.app.buildId);\n const cdnURL = config.app.cdnURL;\n const baseOrCdnURL = cdnURL && await isPrerendered(url) ? cdnURL : config.app.baseURL;\n return joinURL(baseOrCdnURL, u.pathname, filename + (hash ? `?${hash}` : \"\"));\n}\nasync function _importPayload(payloadURL) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n try {\n if (renderJsonPayloads) {\n const res = await fetch(payloadURL, import.meta.dev ? {} : { cache: \"force-cache\" });\n if (!res.ok) {\n if (import.meta.dev) {\n console.warn(`[nuxt] Cannot load payload ${payloadURL}: ${res.status} ${res.statusText}`);\n }\n return null;\n }\n return await parsePayload(await res.text());\n } else {\n return await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n }\n } catch (err) {\n console.warn(\"[nuxt] Cannot load payload \", payloadURL, err);\n }\n return null;\n}\nfunction _shouldLoadPrerenderedPayload(rules) {\n if (rules.redirect) {\n return false;\n }\n if (rules.prerender) {\n return true;\n }\n}\nasync function _isPrerenderedInManifest(url) {\n if (!appManifest) {\n return false;\n }\n url = url === \"/\" ? url : url.replace(/\\/$/, \"\");\n try {\n const manifest = await getAppManifest();\n return manifest.prerendered.includes(url);\n } catch {\n return false;\n }\n}\nexport async function shouldLoadPayload(url = useRoute().path) {\n const rules = getRouteRules({ path: url });\n if (rules.ssr === false) {\n return false;\n }\n const res = _shouldLoadPrerenderedPayload(rules);\n if (res !== void 0) {\n return res;\n }\n if (rules.payload) {\n return true;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nexport async function isPrerendered(url = useRoute().path) {\n const res = _shouldLoadPrerenderedPayload(getRouteRules({ path: url }));\n if (res !== void 0) {\n return res;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nlet payloadCache = null;\nexport async function getNuxtClientPayload() {\n if (import.meta.server) {\n return null;\n }\n if (payloadCache) {\n return payloadCache;\n }\n const el = multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\");\n if (!el) {\n return {};\n }\n const inlineData = await parsePayload(el.textContent || \"\");\n const externalData = el.dataset.src ? await _importPayload(el.dataset.src) : void 0;\n payloadCache = {\n ...inlineData,\n ...externalData,\n ...multiApp ? window.__NUXT__?.[appId] : window.__NUXT__\n };\n if (payloadCache.config?.public) {\n payloadCache.config.public = reactive(payloadCache.config.public);\n }\n return payloadCache;\n}\nexport async function parsePayload(payload) {\n return await parse(payload, useNuxtApp()._payloadRevivers);\n}\nexport function definePayloadReducer(name, reduce) {\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~payloadReducers\"][name] = reduce;\n }\n}\nexport function definePayloadReviver(name, revive) {\n if (import.meta.dev && getCurrentInstance()) {\n console.warn(\"[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.\");\n }\n if (import.meta.client) {\n useNuxtApp()._payloadRevivers[name] = revive;\n }\n}\n","import {\n definePayloadPlugin,\n definePayloadReducer,\n definePayloadReviver\n} from \"#imports\";\nimport { shouldHydrate } from \"pinia\";\nconst payloadPlugin = definePayloadPlugin(() => {\n definePayloadReducer(\n \"skipHydrate\",\n // We need to return something truthy to be treated as a match\n (data) => !shouldHydrate(data) && 1\n );\n definePayloadReviver(\"skipHydrate\", (_data) => void 0);\n});\nexport default payloadPlugin;\n","export function freezeHead(head) {\n const realPush = head.push;\n head.push = () => ({ dispose: () => {\n }, patch: () => {\n }, _poll: () => {\n } });\n return () => {\n head.push = realPush;\n };\n}\n","import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport { freezeHead } from \"../island-head.js\";\nimport unheadOptions from \"#build/unhead-options.mjs\";\nexport default defineNuxtPlugin({\n name: \"nuxt:head\",\n enforce: \"pre\",\n setup(nuxtApp) {\n const head = import.meta.server ? nuxtApp.ssrContext.head : createClientHead(unheadOptions);\n if (import.meta.server && nuxtApp.ssrContext.islandContext) {\n const unfreeze = freezeHead(head);\n nuxtApp.hooks.hookOnce(\"app:created\", unfreeze);\n }\n nuxtApp.vueApp.use(head);\n if (import.meta.client) {\n let pauseDOMUpdates = true;\n const syncHead = async () => {\n pauseDOMUpdates = false;\n await renderDOMHead(head);\n };\n head.hooks.hook(\"dom:beforeRender\", (context) => {\n context.shouldRender = !pauseDOMUpdates;\n });\n nuxtApp.hooks.hook(\"page:start\", () => {\n pauseDOMUpdates = true;\n });\n nuxtApp.hooks.hook(\"page:finish\", () => {\n if (!nuxtApp.isHydrating) {\n syncHead();\n }\n });\n nuxtApp.hooks.hook(\"app:error\", syncHead);\n nuxtApp.hooks.hook(\"app:suspense:resolve\", syncHead);\n const originalPush = head.push.bind(head);\n head.push = ((input, options) => {\n const entry = originalPush(input, options);\n const originalDispose = entry.dispose.bind(entry);\n entry.dispose = () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(originalDispose);\n } else {\n originalDispose();\n }\n };\n return entry;\n });\n }\n }\n});\n","/*!\n* vue-router v5.1.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { inject } from \"vue\";\n//#region src/utils/env.ts\nconst isBrowser = typeof document !== \"undefined\";\n//#endregion\n//#region src/utils/index.ts\n/**\n* Identity function that returns the value as is.\n*\n* @param v - the value to return\n*\n* @internal\n*/\nconst identityFn = (v) => v;\n/**\n* Allows differentiating lazy components from functional components and vue-class-component\n* @internal\n*\n* @param component\n*/\nfunction isRouteComponent(component) {\n\treturn typeof component === \"object\" || \"displayName\" in component || \"props\" in component || \"__vccOpts\" in component;\n}\nfunction isESModule(obj) {\n\treturn obj.__esModule || obj[Symbol.toStringTag] === \"Module\" || obj.default && isRouteComponent(obj.default);\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n\tconst newParams = {};\n\tfor (const key in params) {\n\t\tconst value = params[key];\n\t\tnewParams[key] = isArray(value) ? value.map(fn) : fn(value);\n\t}\n\treturn newParams;\n}\nconst noop = () => {};\n/**\n* Typesafe alternative to Array.isArray\n* https://github.com/microsoft/TypeScript/pull/48228\n*\n* @internal\n*/\nconst isArray = Array.isArray;\nfunction mergeOptions(defaults, partialOptions) {\n\tconst options = {};\n\tfor (const key in defaults) options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n\treturn options;\n}\n//#endregion\n//#region src/errors.ts\nconst NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== \"production\" ? \"navigation failure\" : \"\");\n/**\n* Enumeration with all possible types for navigation failures. Can be passed to\n* {@link isNavigationFailure} to check for specific failures.\n*/\nlet NavigationFailureType = /* @__PURE__ */ function(NavigationFailureType) {\n\t/**\n\t* An aborted navigation is a navigation that failed because a navigation\n\t* guard returned `false` or called `next(false)`\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\n\t/**\n\t* A cancelled navigation is a navigation that failed because a more recent\n\t* navigation finished started (not necessarily finished).\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\n\t/**\n\t* A duplicated navigation is a navigation that failed because it was\n\t* initiated while already being at the exact same location.\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\n\treturn NavigationFailureType;\n}({});\nconst ErrorTypeMessages = {\n\t[1]({ location, currentLocation }) {\n\t\treturn `No match for\\n ${JSON.stringify(location)}${currentLocation ? \"\\nwhile being at\\n\" + JSON.stringify(currentLocation) : \"\"}`;\n\t},\n\t[2]({ from, to }) {\n\t\treturn `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n\t},\n\t[4]({ from, to }) {\n\t\treturn `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n\t},\n\t[8]({ from, to }) {\n\t\treturn `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n\t},\n\t[16]({ from, to: _to }) {\n\t\treturn `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n\t}\n};\n/**\n* Creates a typed NavigationFailure object.\n* @internal\n* @param type - NavigationFailureType\n* @param params - { from, to }\n*/\nfunction createRouterError(type, params) {\n\tif (process.env.NODE_ENV !== \"production\" || false) return assign(new Error(ErrorTypeMessages[type](params)), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n\telse return assign(/* @__PURE__ */ new Error(), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n}\nfunction isNavigationFailure(error, type) {\n\treturn error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type));\n}\nconst propertiesToLog = [\n\t\"params\",\n\t\"query\",\n\t\"hash\"\n];\nfunction stringifyRoute(to) {\n\tif (typeof to === \"string\") return to;\n\tif (to.path != null) return to.path;\n\tconst location = {};\n\tfor (const key of propertiesToLog) if (key in to) location[key] = to[key];\n\treturn JSON.stringify(location, null, 2);\n}\n//#endregion\n//#region src/injectionSymbols.ts\n/**\n* RouteRecord being rendered by the closest ancestor Router View. Used for\n* `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n* Location Matched\n*\n* @internal\n*/\nconst matchedRouteKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location matched\" : \"\");\n/**\n* Allows overriding the router view depth to control which component in\n* `matched` is rendered. rvd stands for Router View Depth\n*\n* @internal\n*/\nconst viewDepthKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view depth\" : \"\");\n/**\n* Allows overriding the router instance returned by `useRouter` in tests. r\n* stands for router\n*\n* @internal\n*/\nconst routerKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router\" : \"\");\n/**\n* Allows overriding the current route returned by `useRoute` in tests. rl\n* stands for route location\n*\n* @internal\n*/\nconst routeLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"route location\" : \"\");\n/**\n* Allows overriding the current route used by router-view. Internally this is\n* used when the `route` prop is passed.\n*\n* @internal\n*/\nconst routerViewLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location\" : \"\");\n//#endregion\n//#region src/useApi.ts\n/**\n* Returns the router instance. Equivalent to using `$router` inside\n* templates.\n*/\nfunction useRouter() {\n\treturn inject(routerKey);\n}\n/**\n* Returns the current route location. Equivalent to using `$route` inside\n* templates.\n*/\nfunction useRoute(_name) {\n\treturn inject(routeLocationKey);\n}\n//#endregion\nexport { mergeOptions as _, routerKey as a, NavigationFailureType as c, applyToParams as d, assign as f, isRouteComponent as g, isESModule as h, routeLocationKey as i, createRouterError as l, isArray as m, useRouter as n, routerViewLocationKey as o, identityFn as p, matchedRouteKey as r, viewDepthKey as s, useRoute as t, isNavigationFailure as u, noop as v, isBrowser as y };\n","/*!\n* vue-router v5.1.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { f as assign, g as isRouteComponent, h as isESModule, l as createRouterError, m as isArray, r as matchedRouteKey, y as isBrowser } from \"./useApi-s_02lHjl.js\";\nimport { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from \"vue\";\nimport { setupDevtoolsPlugin } from \"@vue/devtools-api\";\n//#region src/warning.ts\nfunction warn$1(msg) {\n\tconst args = Array.from(arguments).slice(1);\n\tconsole.warn.apply(console, [\"[Vue Router warn]: \" + msg].concat(args));\n}\n//#endregion\n//#region src/encoding.ts\n/**\n* Encoding Rules (␣ = Space)\n* - Path: ␣ \" < > # ? { }\n* - Query: ␣ \" < > # & =\n* - Hash: ␣ \" < > `\n*\n* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n* defines some extra characters to be encoded. Most browsers do not encode them\n* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n* plus `-._~`. This extra safety should be applied to query by patching the\n* string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n* into a `/` if directly typed in. The _backtick_ (`````) should also be\n* encoded everywhere because some browsers like FF encode it when directly\n* written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n*/\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\n/**\n* NOTE: It's not clear to me if we should encode the + symbol in queries, it\n* seems to be less flexible than not doing so and I can't find out the legacy\n* systems requiring this for regular requests like text/html. In the standard,\n* the encoding of the plus character is only mentioned for\n* application/x-www-form-urlencoded\n* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n* leave the plus character as is in queries. To be more flexible, we allow the\n* plus character on the query, but it can also be manually encoded by the user.\n*\n* Resources:\n* - https://url.spec.whatwg.org/#urlencoded-parsing\n* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n*/\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\n/**\n* Encode characters that need to be encoded on the path, search and hash\n* sections of the URL.\n*\n* @internal\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction commonEncode(text) {\n\treturn text == null ? \"\" : encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\n/**\n* Encode characters that need to be encoded on the hash section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeHash(text) {\n\treturn commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Encode characters that need to be encoded query values on the query\n* section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeQueryValue(text) {\n\treturn commonEncode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Like `encodeQueryValue` but also encodes the `=` character.\n*\n* @param text - string to encode\n*/\nfunction encodeQueryKey(text) {\n\treturn encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodePath(text) {\n\treturn commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL as a\n* param. This function encodes everything {@link encodePath} does plus the\n* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n* string instead.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeParam(text) {\n\treturn encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n\tif (text == null) return null;\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Error decoding \"${text}\". Using original value`);\n\t}\n\treturn \"\" + text;\n}\n//#endregion\n//#region src/location.ts\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\n/**\n* Transforms a URI into a normalized history location\n*\n* @param parseQuery\n* @param location - URI to normalize\n* @param currentLocation - current absolute location. Allows resolving relative\n* paths. Must start with `/`. Defaults to `/`\n* @returns a normalized history location\n*/\nfunction parseURL(parseQuery, location, currentLocation = \"/\") {\n\tlet path, query = {}, searchString = \"\", hash = \"\";\n\tconst hashPos = location.indexOf(\"#\");\n\tlet searchPos = location.indexOf(\"?\");\n\tsearchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;\n\tif (searchPos >= 0) {\n\t\tpath = location.slice(0, searchPos);\n\t\tsearchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length);\n\t\tquery = parseQuery(searchString.slice(1));\n\t}\n\tif (hashPos >= 0) {\n\t\tpath = path || location.slice(0, hashPos);\n\t\thash = location.slice(hashPos, location.length);\n\t}\n\tpath = resolveRelativePath(path != null ? path : location, currentLocation);\n\treturn {\n\t\tfullPath: path + searchString + hash,\n\t\tpath,\n\t\tquery,\n\t\thash: decode(hash)\n\t};\n}\nfunction NEW_stringifyURL(stringifyQuery, path, query, hash = \"\") {\n\tconst searchText = stringifyQuery(query);\n\treturn path + (searchText && \"?\") + searchText + encodeHash(hash);\n}\n/**\n* Stringifies a URL object\n*\n* @param stringifyQuery\n* @param location\n*/\nfunction stringifyURL(stringifyQuery, location) {\n\tconst query = location.query ? stringifyQuery(location.query) : \"\";\n\treturn location.path + (query && \"?\") + query + (location.hash || \"\");\n}\n/**\n* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n*\n* @param pathname - location.pathname\n* @param base - base to strip off\n*/\nfunction stripBase(pathname, base) {\n\tif (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname;\n\treturn pathname.slice(base.length) || \"/\";\n}\n/**\n* Checks if two RouteLocation are equal. This means that both locations are\n* pointing towards the same {@link RouteRecord} and that all `params`, `query`\n* parameters and `hash` are the same\n*\n* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n* @param a - first {@link RouteLocation}\n* @param b - second {@link RouteLocation}\n*/\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n\tconst aLastIndex = a.matched.length - 1;\n\tconst bLastIndex = b.matched.length - 1;\n\treturn aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery(a.query) === stringifyQuery(b.query) && a.hash === b.hash;\n}\n/**\n* Check if two `RouteRecords` are equal. Takes into account aliases: they are\n* considered equal to the `RouteRecord` they are aliasing.\n*\n* @param a - first {@link RouteRecord}\n* @param b - second {@link RouteRecord}\n*/\nfunction isSameRouteRecord(a, b) {\n\treturn (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (var key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;\n\treturn true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n\treturn isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : (a && a.valueOf()) === (b && b.valueOf());\n}\n/**\n* Check if two arrays are the same or if an array with one single entry is the\n* same as another primitive value. Used to check query and parameters\n*\n* @param a - array of values\n* @param b - array of values or a single value\n*/\nfunction isEquivalentArray(a, b) {\n\treturn isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\n/**\n* Resolves a relative path that starts with `.`.\n*\n* @param to - path location we are resolving\n* @param from - currentLocation.path, should start with `/`\n*/\nfunction resolveRelativePath(to, from) {\n\tif (to.startsWith(\"/\")) return to;\n\tif (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n\t\twarn$1(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n\t\treturn to;\n\t}\n\tif (!to) return from;\n\tconst fromSegments = from.split(\"/\");\n\tconst toSegments = to.split(\"/\");\n\tconst lastToSegment = toSegments[toSegments.length - 1];\n\tif (lastToSegment === \"..\" || lastToSegment === \".\") toSegments.push(\"\");\n\tlet position = fromSegments.length - 1;\n\tlet toPosition;\n\tlet segment;\n\tfor (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n\t\tsegment = toSegments[toPosition];\n\t\tif (segment === \".\") continue;\n\t\tif (segment === \"..\") {\n\t\t\tif (position > 1) position--;\n\t\t} else break;\n\t}\n\treturn fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition).join(\"/\");\n}\n/**\n* Initial route location where the router is. Can be used in navigation guards\n* to differentiate the initial navigation.\n*\n* @example\n* ```js\n* import { START_LOCATION } from 'vue-router'\n*\n* router.beforeEach((to, from) => {\n* if (from === START_LOCATION) {\n* // initial navigation\n* }\n* })\n* ```\n*/\nconst START_LOCATION_NORMALIZED = {\n\tpath: \"/\",\n\tname: void 0,\n\tparams: {},\n\tquery: {},\n\thash: \"\",\n\tfullPath: \"/\",\n\tmatched: [],\n\tmeta: {},\n\tredirectedFrom: void 0\n};\n//#endregion\n//#region src/history/common.ts\n/**\n* Normalizes a base by removing any trailing slash and reading the base tag if\n* present.\n*\n* @param base - base to normalize\n*/\nfunction normalizeBase(base) {\n\tif (!base) if (isBrowser) {\n\t\tconst baseEl = document.querySelector(\"base\");\n\t\tbase = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n\t\tbase = base.replace(/^\\w+:\\/\\/[^/]+/, \"\");\n\t} else base = \"/\";\n\tif (base[0] !== \"/\" && base[0] !== \"#\") base = \"/\" + base;\n\treturn removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n\treturn base.replace(BEFORE_HASH_RE, \"#\") + location;\n}\n//#endregion\n//#region src/scrollBehavior.ts\nfunction getElementPosition(el, offset) {\n\tconst docRect = document.documentElement.getBoundingClientRect();\n\tconst elRect = el.getBoundingClientRect();\n\treturn {\n\t\tbehavior: offset.behavior,\n\t\tleft: elRect.left - docRect.left - (offset.left || 0),\n\t\ttop: elRect.top - docRect.top - (offset.top || 0)\n\t};\n}\nconst computeScrollPosition = () => ({\n\tleft: window.scrollX,\n\ttop: window.scrollY\n});\nfunction scrollToPosition(position) {\n\tlet scrollToOptions;\n\tif (\"el\" in position) {\n\t\tconst positionEl = position.el;\n\t\tconst isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n\t\t/**\n\t\t* `id`s can accept pretty much any characters, including CSS combinators\n\t\t* like `>` or `~`. It's still possible to retrieve elements using\n\t\t* `document.getElementById('~')` but it needs to be escaped when using\n\t\t* `document.querySelector('#\\\\~')` for it to be valid. The only\n\t\t* requirements for `id`s are them to be unique on the page and to not be\n\t\t* empty (`id=\"\"`). Because of that, when passing an id selector, it should\n\t\t* be properly escaped for it to work with `querySelector`. We could check\n\t\t* for the id selector to be simple (no CSS combinators `+ >~`) but that\n\t\t* would make things inconsistent since they are valid characters for an\n\t\t* `id` but would need to be escaped when using `querySelector`, breaking\n\t\t* their usage and ending up in no selector returned. Selectors need to be\n\t\t* escaped:\n\t\t*\n\t\t* - `#1-thing` becomes `#\\31 -thing`\n\t\t* - `#with~symbols` becomes `#with\\\\~symbols`\n\t\t*\n\t\t* - More information about the topic can be found at\n\t\t* https://mathiasbynens.be/notes/html5-id-class.\n\t\t* - Practical example: https://mathiasbynens.be/demo/html5-id\n\t\t*/\n\t\tif (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n\t\t\tif (!isIdSelector || !document.getElementById(position.el.slice(1))) try {\n\t\t\t\tconst foundEl = document.querySelector(position.el);\n\t\t\t\tif (isIdSelector && foundEl) {\n\t\t\t\t\twarn$1(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\twarn$1(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n\t\tif (!el) {\n\t\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n\t\t\treturn;\n\t\t}\n\t\tscrollToOptions = getElementPosition(el, position);\n\t} else scrollToOptions = position;\n\tif (\"scrollBehavior\" in document.documentElement.style) window.scrollTo(scrollToOptions);\n\telse window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n}\nfunction getScrollKey(path, delta) {\n\treturn (history.state ? history.state.position - delta : -1) + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n\tscrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n\tconst scroll = scrollPositions.get(key);\n\tscrollPositions.delete(key);\n\treturn scroll;\n}\n/**\n* ScrollBehavior instance used by the router to compute and restore the scroll\n* position when navigating.\n*/\n//#endregion\n//#region src/types/typeGuards.ts\nfunction isRouteLocation(route) {\n\treturn typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n\treturn typeof name === \"string\" || typeof name === \"symbol\";\n}\n//#endregion\n//#region src/query.ts\n/**\n* Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n* version with the leading `?` and without Should work as URLSearchParams\n\n* @internal\n*\n* @param search - search string to parse\n* @returns a query object\n*/\nfunction parseQuery(search) {\n\tconst query = {};\n\tif (search === \"\" || search === \"?\") return query;\n\tconst searchParams = (search[0] === \"?\" ? search.slice(1) : search).split(\"&\");\n\tfor (let i = 0; i < searchParams.length; ++i) {\n\t\tconst searchParam = searchParams[i].replace(PLUS_RE, \" \");\n\t\tconst eqPos = searchParam.indexOf(\"=\");\n\t\tconst key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n\t\tconst value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n\t\tif (key in query) {\n\t\t\tlet currentValue = query[key];\n\t\t\tif (!isArray(currentValue)) currentValue = query[key] = [currentValue];\n\t\t\tcurrentValue.push(value);\n\t\t} else query[key] = value;\n\t}\n\treturn query;\n}\n/**\n* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n* doesn't prepend a `?`\n*\n* @internal\n*\n* @param query - query object to stringify\n* @returns string version of the query without the leading `?`\n*/\nfunction stringifyQuery(query) {\n\tlet search = \"\";\n\tfor (let key in query) {\n\t\tconst value = query[key];\n\t\tkey = encodeQueryKey(key);\n\t\tif (value == null) {\n\t\t\tif (value !== void 0) search += (search.length ? \"&\" : \"\") + key;\n\t\t\tcontinue;\n\t\t}\n\t\t(isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value) => {\n\t\t\tif (value !== void 0) {\n\t\t\t\tsearch += (search.length ? \"&\" : \"\") + key;\n\t\t\t\tif (value != null) search += \"=\" + value;\n\t\t\t}\n\t\t});\n\t}\n\treturn search;\n}\n/**\n* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n* numbers into strings, removing keys with an undefined value and replacing\n* undefined with null in arrays\n*\n* @param query - query object to normalize\n* @returns a normalized query object\n*/\nfunction normalizeQuery(query) {\n\tconst normalizedQuery = {};\n\tfor (const key in query) {\n\t\tconst value = query[key];\n\t\tif (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n\t}\n\treturn normalizedQuery;\n}\n//#endregion\n//#region src/utils/callbacks.ts\n/**\n* Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n*/\nfunction useCallbacks() {\n\tlet handlers = [];\n\tfunction add(handler) {\n\t\thandlers.push(handler);\n\t\treturn () => {\n\t\t\tconst i = handlers.indexOf(handler);\n\t\t\tif (i > -1) handlers.splice(i, 1);\n\t\t};\n\t}\n\tfunction reset() {\n\t\thandlers = [];\n\t}\n\treturn {\n\t\tadd,\n\t\tlist: () => handlers.slice(),\n\t\treset\n\t};\n}\n//#endregion\n//#region src/navigationGuards.ts\nfunction registerGuard(activeRecordRef, name, guard) {\n\tconst record = activeRecordRef.value;\n\tif (!record) {\n\t\tif (process.env.NODE_ENV !== \"production\") warn$1(`No active route record was found when calling \\`${name === \"updateGuards\" ? \"onBeforeRouteUpdate\" : \"onBeforeRouteLeave\"}()\\`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?`);\n\t\treturn;\n\t}\n\tlet currentRecord = record;\n\tconst removeFromList = () => {\n\t\tcurrentRecord[name].delete(guard);\n\t};\n\tonUnmounted(removeFromList);\n\tonDeactivated(removeFromList);\n\tonActivated(() => {\n\t\tconst newRecord = activeRecordRef.value;\n\t\tif (process.env.NODE_ENV !== \"production\" && !newRecord) warn$1(\"No active route record was found when reactivating component with navigation guard. This is likely a bug in vue-router. Please report it.\");\n\t\tif (newRecord) currentRecord = newRecord;\n\t\tcurrentRecord[name].add(guard);\n\t});\n\tcurrentRecord[name].add(guard);\n}\n/**\n* Add a navigation guard that triggers whenever the component for the current\n* location is about to be left. Similar to {@link beforeRouteLeave} but can be\n* used in any component. The guard is removed when the component is unmounted.\n*\n* @param leaveGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteLeave(leaveGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"leaveGuards\", leaveGuard);\n}\n/**\n* Add a navigation guard that triggers whenever the current location is about\n* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n* component. The guard is removed when the component is unmounted.\n*\n* @param updateGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteUpdate(updateGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"updateGuards\", updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {\n\tconst enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n\treturn () => new Promise((resolve, reject) => {\n\t\tconst next = (valid) => {\n\t\t\tif (valid === false) reject(createRouterError(4, {\n\t\t\t\tfrom,\n\t\t\t\tto\n\t\t\t}));\n\t\t\telse if (valid instanceof Error) reject(valid);\n\t\t\telse if (isRouteLocation(valid)) reject(createRouterError(2, {\n\t\t\t\tfrom: to,\n\t\t\t\tto: valid\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tif (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") enterCallbackArray.push(valid);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tconst guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? withDeprecationWarning(canOnlyBeCalledOnce(next, to, from)) : next));\n\t\tlet guardCall = Promise.resolve(guardReturn);\n\t\tif (guard.length < 3) guardCall = guardCall.then(next);\n\t\tif (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n\t\t\tconst message = `The \"next\" callback was never called inside of ${guard.name ? \"\\\"\" + guard.name + \"\\\"\" : \"\"}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n\t\t\tif (typeof guardReturn === \"object\" && \"then\" in guardReturn) guardCall = guardCall.then((resolvedValue) => {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t}\n\t\t\t\treturn resolvedValue;\n\t\t\t});\n\t\t\telse if (guardReturn !== void 0) {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tguardCall.catch((err) => reject(err));\n\t});\n}\n/**\n* Wraps the next callback to warn when it is used. Dev-only: when __DEV__ is\n* false (production builds), this branch is dead code and is stripped from the\n* bundle.\n*\n* @internal\n*/\nfunction withDeprecationWarning(next) {\n\tlet warned = false;\n\treturn function() {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\twarn$1(\"The `next()` callback in navigation guards is deprecated. Return the value instead of calling `next(value)`.\");\n\t\t}\n\t\treturn next.apply(this, arguments);\n\t};\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n\tlet called = 0;\n\treturn function() {\n\t\tif (called++ === 1) warn$1(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n\t\tnext._called = true;\n\t\tif (called === 1) next.apply(null, arguments);\n\t};\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {\n\tconst guards = [];\n\tfor (const record of matched) {\n\t\tif (process.env.NODE_ENV !== \"production\" && !record.components && record.children && !record.children.length) warn$1(`Record with path \"${record.path}\" is either missing a \"component(s)\" or \"children\" property.`);\n\t\tfor (const name in record.components) {\n\t\t\tlet rawComponent = record.components[name];\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is not a valid component. Received \"${String(rawComponent)}\".`);\n\t\t\t\t\tthrow new Error(\"Invalid route component\");\n\t\t\t\t} else if (\"then\" in rawComponent) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a Promise instead of a function that returns a Promise. Did you write \"import('./MyPage.vue')\" instead of \"() => import('./MyPage.vue')\" ? This will break in production if not fixed.`);\n\t\t\t\t\tconst promise = rawComponent;\n\t\t\t\t\trawComponent = () => promise;\n\t\t\t\t} else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) {\n\t\t\t\t\trawComponent.__warnedDefineAsync = true;\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is defined using \"defineAsyncComponent()\". Write \"() => import('./MyPage.vue')\" instead of \"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (guardType !== \"beforeRouteEnter\" && !record.instances[name]) continue;\n\t\t\tif (isRouteComponent(rawComponent)) {\n\t\t\t\tconst guard = (rawComponent.__vccOpts || rawComponent)[guardType];\n\t\t\t\tguard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n\t\t\t} else {\n\t\t\t\tlet componentPromise = rawComponent();\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n\t\t\t\t\tcomponentPromise = Promise.resolve(componentPromise);\n\t\t\t\t}\n\t\t\t\tguards.push(() => componentPromise.then((resolved) => {\n\t\t\t\t\tif (!resolved) throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n\t\t\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\t\t\trecord.mods[name] = resolved;\n\t\t\t\t\trecord.components[name] = resolvedComponent;\n\t\t\t\t\tconst guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];\n\t\t\t\t\treturn guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\treturn guards;\n}\n/**\n* Ensures a route is loaded, so it can be passed as o prop to ``.\n*\n* @param route - resolved route to load\n*/\nfunction loadRouteLocation(route) {\n\treturn route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error(\"Cannot load a route that redirects.\")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => {\n\t\tconst rawComponent = record.components[name];\n\t\tif (typeof rawComponent === \"function\" && !(\"displayName\" in rawComponent)) promises.push(rawComponent().then((resolved) => {\n\t\t\tif (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\trecord.mods[name] = resolved;\n\t\t\trecord.components[name] = resolvedComponent;\n\t\t}));\n\t\treturn promises;\n\t}, [])))).then(() => route);\n}\n/**\n* Split the leaving, updating, and entering records.\n* @internal\n*\n* @param to - Location we are navigating to\n* @param from - Location we are navigating from\n*/\nfunction extractChangingRecords(to, from) {\n\tconst leavingRecords = [];\n\tconst updatingRecords = [];\n\tconst enteringRecords = [];\n\tconst len = Math.max(from.matched.length, to.matched.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tconst recordFrom = from.matched[i];\n\t\tif (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);\n\t\telse leavingRecords.push(recordFrom);\n\t\tconst recordTo = to.matched[i];\n\t\tif (recordTo) {\n\t\t\tif (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);\n\t\t}\n\t}\n\treturn [\n\t\tleavingRecords,\n\t\tupdatingRecords,\n\t\tenteringRecords\n\t];\n}\n//#endregion\n//#region src/devtools.ts\n/**\n* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n*\n* @param routeLocation - routeLocation to format\n* @param tooltip - optional tooltip\n* @returns a copy of the routeLocation\n*/\nfunction formatRouteLocation(routeLocation, tooltip) {\n\tconst copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [\n\t\t\"instances\",\n\t\t\"children\",\n\t\t\"aliasOf\"\n\t])) });\n\treturn { _custom: {\n\t\ttype: null,\n\t\treadOnly: true,\n\t\tdisplay: routeLocation.fullPath,\n\t\ttooltip,\n\t\tvalue: copy\n\t} };\n}\nfunction formatDisplay(display) {\n\treturn { _custom: { display } };\n}\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n\tif (router.__hasDevtools) return;\n\trouter.__hasDevtools = true;\n\tconst id = routerId++;\n\tsetupDevtoolsPlugin({\n\t\tid: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n\t\tlabel: \"Vue Router\",\n\t\tpackageName: \"vue-router\",\n\t\thomepage: \"https://router.vuejs.org\",\n\t\tlogo: \"https://router.vuejs.org/logo.png\",\n\t\tcomponentStateTypes: [\"Routing\"],\n\t\tapp\n\t}, (api) => {\n\t\tapi.on.inspectComponent((payload) => {\n\t\t\tif (payload.instanceData) payload.instanceData.state.push({\n\t\t\t\ttype: \"Routing\",\n\t\t\t\tkey: \"$route\",\n\t\t\t\teditable: false,\n\t\t\t\tvalue: formatRouteLocation(router.currentRoute.value, \"Current Route\")\n\t\t\t});\n\t\t});\n\t\tapi.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n\t\t\tif (componentInstance.__vrv_devtools) {\n\t\t\t\tconst info = componentInstance.__vrv_devtools;\n\t\t\t\tnode.tags.push({\n\t\t\t\t\tlabel: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n\t\t\t\t\ttextColor: 0,\n\t\t\t\t\ttooltip: \"This component is rendered by <router-view>\",\n\t\t\t\t\tbackgroundColor: PINK_500\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (isArray(componentInstance.__vrl_devtools)) {\n\t\t\t\tcomponentInstance.__devtoolsApi = api;\n\t\t\t\tcomponentInstance.__vrl_devtools.forEach((devtoolsData) => {\n\t\t\t\t\tlet label = devtoolsData.route.path;\n\t\t\t\t\tlet backgroundColor = ORANGE_400;\n\t\t\t\t\tlet tooltip = \"\";\n\t\t\t\t\tlet textColor = 0;\n\t\t\t\t\tif (devtoolsData.error) {\n\t\t\t\t\t\tlabel = devtoolsData.error;\n\t\t\t\t\t\tbackgroundColor = RED_100;\n\t\t\t\t\t\ttextColor = RED_700;\n\t\t\t\t\t} else if (devtoolsData.isExactActive) {\n\t\t\t\t\t\tbackgroundColor = LIME_500;\n\t\t\t\t\t\ttooltip = \"This is exactly active\";\n\t\t\t\t\t} else if (devtoolsData.isActive) {\n\t\t\t\t\t\tbackgroundColor = BLUE_600;\n\t\t\t\t\t\ttooltip = \"This link is active\";\n\t\t\t\t\t}\n\t\t\t\t\tnode.tags.push({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\tbackgroundColor\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\twatch(router.currentRoute, () => {\n\t\t\trefreshRoutesView();\n\t\t\tapi.notifyComponentUpdate();\n\t\t\tapi.sendInspectorTree(routerInspectorId);\n\t\t\tapi.sendInspectorState(routerInspectorId);\n\t\t});\n\t\tconst navigationsLayerId = \"router:navigations:\" + id;\n\t\tapi.addTimelineLayer({\n\t\t\tid: navigationsLayerId,\n\t\t\tlabel: `Router${id ? \" \" + id : \"\"} Navigations`,\n\t\t\tcolor: 4237508\n\t\t});\n\t\trouter.onError((error, to) => {\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"Error during Navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tlogType: \"error\",\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata: { error },\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tlet navigationId = 0;\n\t\trouter.beforeEach((to, from) => {\n\t\t\tconst data = {\n\t\t\t\tguard: formatDisplay(\"beforeEach\"),\n\t\t\t\tfrom: formatRouteLocation(from, \"Current Location during this navigation\"),\n\t\t\t\tto: formatRouteLocation(to, \"Target location\")\n\t\t\t};\n\t\t\tObject.defineProperty(to.meta, \"__navigationId\", { value: navigationId++ });\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\ttitle: \"Start of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tdata,\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\trouter.afterEach((to, from, failure) => {\n\t\t\tconst data = { guard: formatDisplay(\"afterEach\") };\n\t\t\tif (failure) {\n\t\t\t\tdata.failure = { _custom: {\n\t\t\t\t\ttype: Error,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tdisplay: failure ? failure.message : \"\",\n\t\t\t\t\ttooltip: \"Navigation Failure\",\n\t\t\t\t\tvalue: failure\n\t\t\t\t} };\n\t\t\t\tdata.status = formatDisplay(\"❌\");\n\t\t\t} else data.status = formatDisplay(\"✅\");\n\t\t\tdata.from = formatRouteLocation(from, \"Current Location during this navigation\");\n\t\t\tdata.to = formatRouteLocation(to, \"Target location\");\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"End of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata,\n\t\t\t\t\tlogType: failure ? \"warning\" : \"default\",\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t/**\n\t\t* Inspector of Existing routes\n\t\t*/\n\t\tconst routerInspectorId = \"router-inspector:\" + id;\n\t\tapi.addInspector({\n\t\t\tid: routerInspectorId,\n\t\t\tlabel: \"Routes\" + (id ? \" \" + id : \"\"),\n\t\t\ticon: \"book\",\n\t\t\ttreeFilterPlaceholder: \"Search routes\"\n\t\t});\n\t\tfunction refreshRoutesView() {\n\t\t\tif (!activeRoutesPayload) return;\n\t\t\tconst payload = activeRoutesPayload;\n\t\t\tlet routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components);\n\t\t\troutes.forEach(resetMatchStateOnRouteRecord);\n\t\t\tif (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase()));\n\t\t\troutes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value));\n\t\t\tpayload.rootNodes = routes.map(formatRouteRecordForInspector);\n\t\t}\n\t\tlet activeRoutesPayload;\n\t\tapi.on.getInspectorTree((payload) => {\n\t\t\tactiveRoutesPayload = payload;\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView();\n\t\t});\n\t\t/**\n\t\t* Display information about the currently selected route record\n\t\t*/\n\t\tapi.on.getInspectorState((payload) => {\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) {\n\t\t\t\tconst route = matcher.getRoutes().find((route) => route.record.__vd_id === payload.nodeId);\n\t\t\t\tif (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) };\n\t\t\t}\n\t\t});\n\t\tapi.sendInspectorTree(routerInspectorId);\n\t\tapi.sendInspectorState(routerInspectorId);\n\t});\n}\nfunction modifierForKey(key) {\n\tif (key.optional) return key.repeatable ? \"*\" : \"?\";\n\telse return key.repeatable ? \"+\" : \"\";\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n\tconst { record } = route;\n\tconst fields = [{\n\t\teditable: false,\n\t\tkey: \"path\",\n\t\tvalue: record.path\n\t}];\n\tif (record.name != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"name\",\n\t\tvalue: record.name\n\t});\n\tfields.push({\n\t\teditable: false,\n\t\tkey: \"regexp\",\n\t\tvalue: route.re\n\t});\n\tif (route.keys.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"keys\",\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n\t\t\ttooltip: \"Param keys\",\n\t\t\tvalue: route.keys\n\t\t} }\n\t});\n\tif (record.redirect != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"redirect\",\n\t\tvalue: record.redirect\n\t});\n\tif (route.alias.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"aliases\",\n\t\tvalue: route.alias.map((alias) => alias.record.path)\n\t});\n\tif (Object.keys(route.record.meta).length) fields.push({\n\t\teditable: false,\n\t\tkey: \"meta\",\n\t\tvalue: route.record.meta\n\t});\n\tfields.push({\n\t\tkey: \"score\",\n\t\teditable: false,\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.score.map((score) => score.join(\", \")).join(\" | \"),\n\t\t\ttooltip: \"Score used to sort routes\",\n\t\t\tvalue: route.score\n\t\t} }\n\t});\n\treturn fields;\n}\n/**\n* Extracted from tailwind palette\n*/\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nconst RED_100 = 16704226;\nconst RED_700 = 12131356;\nfunction formatRouteRecordForInspector(route) {\n\tconst tags = [];\n\tconst { record } = route;\n\tif (record.name != null) tags.push({\n\t\tlabel: String(record.name),\n\t\ttextColor: 0,\n\t\tbackgroundColor: CYAN_400\n\t});\n\tif (record.aliasOf) tags.push({\n\t\tlabel: \"alias\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: ORANGE_400\n\t});\n\tif (route.__vd_match) tags.push({\n\t\tlabel: \"matches\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: PINK_500\n\t});\n\tif (route.__vd_exactActive) tags.push({\n\t\tlabel: \"exact\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: LIME_500\n\t});\n\tif (route.__vd_active) tags.push({\n\t\tlabel: \"active\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: BLUE_600\n\t});\n\tif (record.redirect) tags.push({\n\t\tlabel: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n\t\ttextColor: 16777215,\n\t\tbackgroundColor: DARK\n\t});\n\tlet id = record.__vd_id;\n\tif (id == null) {\n\t\tid = String(routeRecordId++);\n\t\trecord.__vd_id = id;\n\t}\n\treturn {\n\t\tid,\n\t\tlabel: record.path,\n\t\ttags,\n\t\tchildren: route.children.map(formatRouteRecordForInspector)\n\t};\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n\tconst isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n\troute.__vd_exactActive = route.__vd_active = isExactActive;\n\tif (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n\troute.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n\troute.__vd_match = false;\n\troute.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n\tconst found = String(route.re).match(EXTRACT_REGEXP_RE);\n\troute.__vd_match = false;\n\tif (!found || found.length < 3) return false;\n\tif (new RegExp(found[1].replace(/\\$$/, \"\"), found[2]).test(filter)) {\n\t\troute.children.forEach((child) => isRouteMatching(child, filter));\n\t\tif (route.record.path !== \"/\" || filter === \"/\") {\n\t\t\troute.__vd_match = route.re.test(filter);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst path = route.record.path.toLowerCase();\n\tconst decodedPath = decode(path);\n\tif (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter))) return true;\n\tif (decodedPath.startsWith(filter) || path.startsWith(filter)) return true;\n\tif (route.record.name && String(route.record.name).includes(filter)) return true;\n\treturn route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n\tconst ret = {};\n\tfor (const key in obj) if (!keys.includes(key)) ret[key] = obj[key];\n\treturn ret;\n}\n//#endregion\nexport { PLUS_RE as A, isSameRouteLocation as C, resolveRelativePath as D, parseURL as E, warn$1 as F, encodeHash as M, encodeParam as N, stringifyURL as O, encodePath as P, START_LOCATION_NORMALIZED as S, isSameRouteRecord as T, saveScrollPosition as _, loadRouteLocation as a, normalizeBase as b, useCallbacks as c, stringifyQuery as d, isRouteLocation as f, getScrollKey as g, getSavedScrollPosition as h, guardToPromiseFn as i, decode as j, stripBase as k, normalizeQuery as l, computeScrollPosition as m, extractChangingRecords as n, onBeforeRouteLeave as o, isRouteName as p, extractComponentsGuards as r, onBeforeRouteUpdate as s, addDevtools as t, parseQuery as u, scrollToPosition as v, isSameRouteLocationParams as w, NEW_stringifyURL as x, createHref as y };\n","/*!\n* vue-router v5.1.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { _ as mergeOptions, a as routerKey, c as NavigationFailureType, d as applyToParams, f as assign, i as routeLocationKey, l as createRouterError, m as isArray, n as useRouter, o as routerViewLocationKey, r as matchedRouteKey, s as viewDepthKey, t as useRoute, u as isNavigationFailure, v as noop, y as isBrowser } from \"./useApi-s_02lHjl.js\";\nimport { C as isSameRouteLocation, E as parseURL, F as warn$1, M as encodeHash, N as encodeParam, O as stringifyURL, S as START_LOCATION_NORMALIZED, T as isSameRouteRecord, _ as saveScrollPosition, a as loadRouteLocation, b as normalizeBase, c as useCallbacks, d as stringifyQuery, f as isRouteLocation, g as getScrollKey, h as getSavedScrollPosition, i as guardToPromiseFn, j as decode, k as stripBase, l as normalizeQuery, m as computeScrollPosition, n as extractChangingRecords, o as onBeforeRouteLeave, p as isRouteName, r as extractComponentsGuards, s as onBeforeRouteUpdate, t as addDevtools, u as parseQuery, v as scrollToPosition, w as isSameRouteLocationParams, y as createHref } from \"./devtools-DCoWQoU_.js\";\nimport { computed, defineComponent, getCurrentInstance, h, inject, nextTick, provide, reactive, ref, shallowReactive, shallowRef, unref, watch, watchEffect } from \"vue\";\n//#region src/history/html5.ts\nlet createBaseLocation = () => location.protocol + \"//\" + location.host;\n/**\n* Creates a normalized history location from a window.location object\n* @param base - The base path\n* @param location - The window.location object\n*/\nfunction createCurrentLocation(base, location) {\n\tconst { pathname, search, hash } = location;\n\tconst hashPos = base.indexOf(\"#\");\n\tif (hashPos > -1) {\n\t\tlet slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n\t\tlet pathFromHash = hash.slice(slicePos);\n\t\tif (pathFromHash[0] !== \"/\") pathFromHash = \"/\" + pathFromHash;\n\t\treturn stripBase(pathFromHash, \"\");\n\t}\n\treturn stripBase(pathname, base) + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n\tlet listeners = [];\n\tlet teardowns = [];\n\tlet pauseState = null;\n\tconst popStateHandler = ({ state }) => {\n\t\tconst to = createCurrentLocation(base, location);\n\t\tconst from = currentLocation.value;\n\t\tconst fromState = historyState.value;\n\t\tlet delta = 0;\n\t\tif (state) {\n\t\t\tcurrentLocation.value = to;\n\t\t\thistoryState.value = state;\n\t\t\tif (pauseState && pauseState === from) {\n\t\t\t\tpauseState = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdelta = fromState ? state.position - fromState.position : 0;\n\t\t} else replace(to);\n\t\tlisteners.forEach((listener) => {\n\t\t\tlistener(currentLocation.value, from, {\n\t\t\t\tdelta,\n\t\t\t\ttype: \"pop\",\n\t\t\t\tdirection: delta ? delta > 0 ? \"forward\" : \"back\" : \"\"\n\t\t\t});\n\t\t});\n\t};\n\tfunction pauseListeners() {\n\t\tpauseState = currentLocation.value;\n\t}\n\tfunction listen(callback) {\n\t\tlisteners.push(callback);\n\t\tconst teardown = () => {\n\t\t\tconst index = listeners.indexOf(callback);\n\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t};\n\t\tteardowns.push(teardown);\n\t\treturn teardown;\n\t}\n\tfunction beforeUnloadListener() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tconst { history } = window;\n\t\t\tif (!history.state) return;\n\t\t\thistory.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), \"\");\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tfor (const teardown of teardowns) teardown();\n\t\tteardowns = [];\n\t\twindow.removeEventListener(\"popstate\", popStateHandler);\n\t\twindow.removeEventListener(\"pagehide\", beforeUnloadListener);\n\t\tdocument.removeEventListener(\"visibilitychange\", beforeUnloadListener);\n\t}\n\twindow.addEventListener(\"popstate\", popStateHandler);\n\twindow.addEventListener(\"pagehide\", beforeUnloadListener);\n\tdocument.addEventListener(\"visibilitychange\", beforeUnloadListener);\n\treturn {\n\t\tpauseListeners,\n\t\tlisten,\n\t\tdestroy\n\t};\n}\n/**\n* Creates a state object\n*/\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n\treturn {\n\t\tback,\n\t\tcurrent,\n\t\tforward,\n\t\treplaced,\n\t\tposition: window.history.length,\n\t\tscroll: computeScroll ? computeScrollPosition() : null\n\t};\n}\nfunction useHistoryStateNavigation(base) {\n\tconst { history, location } = window;\n\tconst currentLocation = { value: createCurrentLocation(base, location) };\n\tconst historyState = { value: history.state };\n\tif (!historyState.value) changeLocation(currentLocation.value, {\n\t\tback: null,\n\t\tcurrent: currentLocation.value,\n\t\tforward: null,\n\t\tposition: history.length - 1,\n\t\treplaced: true,\n\t\tscroll: null\n\t}, true);\n\tfunction changeLocation(to, state, replace) {\n\t\t/**\n\t\t* if a base tag is provided, and we are on a normal domain, we have to\n\t\t* respect the provided `base` attribute because pushState() will use it and\n\t\t* potentially erase anything before the `#` like at\n\t\t* https://github.com/vuejs/router/issues/685 where a base of\n\t\t* `/folder/#` but a base of `/` would erase the `/folder/` section. If\n\t\t* there is no host, the `` tag makes no sense and if there isn't a\n\t\t* base tag we can just use everything after the `#`.\n\t\t*/\n\t\tconst hashIndex = base.indexOf(\"#\");\n\t\tconst url = hashIndex > -1 ? (location.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n\t\ttry {\n\t\t\thistory[replace ? \"replaceState\" : \"pushState\"](state, \"\", url);\n\t\t\thistoryState.value = state;\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Error with push/replace State\", err);\n\t\t\telse console.error(err);\n\t\t\tlocation[replace ? \"replace\" : \"assign\"](url);\n\t\t}\n\t}\n\tfunction replace(to, data) {\n\t\tchangeLocation(to, assign({}, history.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);\n\t\tcurrentLocation.value = to;\n\t}\n\tfunction push(to, data) {\n\t\tconst currentState = assign({}, historyState.value, history.state, {\n\t\t\tforward: to,\n\t\t\tscroll: computeScrollPosition()\n\t\t});\n\t\tif (process.env.NODE_ENV !== \"production\" && !history.state) warn$1(\"history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\nhistory.replaceState(history.state, '', url)\\n\\nYou can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state\");\n\t\tchangeLocation(currentState.current, currentState, true);\n\t\tchangeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);\n\t\tcurrentLocation.value = to;\n\t}\n\treturn {\n\t\tlocation: currentLocation,\n\t\tstate: historyState,\n\t\tpush,\n\t\treplace\n\t};\n}\n/**\n* Creates an HTML5 history. Most common history for single page applications.\n*\n* @param base -\n*/\nfunction createWebHistory(base) {\n\tbase = normalizeBase(base);\n\tconst historyNavigation = useHistoryStateNavigation(base);\n\tconst historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n\tfunction go(delta, triggerListeners = true) {\n\t\tif (!triggerListeners) historyListeners.pauseListeners();\n\t\thistory.go(delta);\n\t}\n\tconst routerHistory = assign({\n\t\tlocation: \"\",\n\t\tbase,\n\t\tgo,\n\t\tcreateHref: createHref.bind(null, base)\n\t}, historyNavigation, historyListeners);\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.location.value\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.state.value\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/history/hash.ts\n/**\n* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n* handle any URL is not possible.\n*\n* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n* calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n* after the `#`).\n*\n* @example\n* ```js\n* // at https://example.com/folder\n* createWebHashHistory() // gives a url of `https://example.com/folder#`\n* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n* // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n* // you should avoid doing this because it changes the original url and breaks copying urls\n* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n*\n* // at file:///usr/etc/folder/index.html\n* // for locations with no `host`, the base is ignored\n* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n* ```\n*/\nfunction createWebHashHistory(base) {\n\tbase = location.host ? base || location.pathname + location.search : \"\";\n\tif (!base.includes(\"#\")) base += \"#\";\n\tif (process.env.NODE_ENV !== \"production\" && !base.endsWith(\"#/\") && !base.endsWith(\"#\")) warn$1(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, \"#\")}\".`);\n\treturn createWebHistory(base);\n}\n//#endregion\n//#region src/history/memory.ts\n/**\n* Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n*\n* @param base - Base applied to all urls, defaults to '/'\n* @returns a history object that can be passed to the router constructor\n*/\nfunction createMemoryHistory(base = \"\") {\n\tlet listeners = [];\n\tlet queue = [[\"\", {}]];\n\tlet position = 0;\n\tbase = normalizeBase(base);\n\tfunction setLocation(location, state = {}) {\n\t\tposition++;\n\t\tif (position !== queue.length) queue.splice(position);\n\t\tqueue.push([location, state]);\n\t}\n\tfunction triggerListeners(to, from, { direction, delta }) {\n\t\tconst info = {\n\t\t\tdirection,\n\t\t\tdelta,\n\t\t\ttype: \"pop\"\n\t\t};\n\t\tfor (const callback of listeners) callback(to, from, info);\n\t}\n\tconst routerHistory = {\n\t\tlocation: \"\",\n\t\tstate: {},\n\t\tbase,\n\t\tcreateHref: createHref.bind(null, base),\n\t\treplace(to, state) {\n\t\t\tqueue.splice(position--, 1);\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tpush(to, state) {\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tlisten(callback) {\n\t\t\tlisteners.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = listeners.indexOf(callback);\n\t\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t\t};\n\t\t},\n\t\tdestroy() {\n\t\t\tlisteners = [];\n\t\t\tqueue = [[\"\", {}]];\n\t\t\tposition = 0;\n\t\t},\n\t\tgo(delta, shouldTrigger = true) {\n\t\t\tconst from = this.location;\n\t\t\tconst direction = delta < 0 ? \"back\" : \"forward\";\n\t\t\tposition = Math.max(0, Math.min(position + delta, queue.length - 1));\n\t\t\tif (shouldTrigger) triggerListeners(this.location, from, {\n\t\t\t\tdirection,\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t};\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][0]\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][1]\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/matcher/pathTokenizer.ts\nconst ROOT_TOKEN = {\n\ttype: 0,\n\tvalue: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n\tif (!path) return [[]];\n\tif (path === \"/\") return [[ROOT_TOKEN]];\n\tif (!path.startsWith(\"/\")) throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n\tfunction crash(message) {\n\t\tthrow new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n\t}\n\tlet state = 0;\n\tlet previousState = state;\n\tconst tokens = [];\n\tlet segment;\n\tfunction finalizeSegment() {\n\t\tif (segment) tokens.push(segment);\n\t\tsegment = [];\n\t}\n\tlet i = 0;\n\tlet char;\n\tlet buffer = \"\";\n\tlet customRe = \"\";\n\tfunction consumeBuffer() {\n\t\tif (!buffer) return;\n\t\tif (state === 0) segment.push({\n\t\t\ttype: 0,\n\t\t\tvalue: buffer\n\t\t});\n\t\telse if (state === 1 || state === 2 || state === 3) {\n\t\t\tif (segment.length > 1 && (char === \"*\" || char === \"+\")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n\t\t\tsegment.push({\n\t\t\t\ttype: 1,\n\t\t\t\tvalue: buffer,\n\t\t\t\tregexp: customRe,\n\t\t\t\trepeatable: char === \"*\" || char === \"+\",\n\t\t\t\toptional: char === \"*\" || char === \"?\"\n\t\t\t});\n\t\t} else crash(\"Invalid state to consume buffer\");\n\t\tbuffer = \"\";\n\t}\n\tfunction addCharToBuffer() {\n\t\tbuffer += char;\n\t}\n\twhile (i < path.length) {\n\t\tchar = path[i++];\n\t\tswitch (state) {\n\t\t\tcase 0:\n\t\t\t\tif (char === \"\\\\\") {\n\t\t\t\t\tpreviousState = state;\n\t\t\t\t\tstate = 4;\n\t\t\t\t} else if (char === \"/\") {\n\t\t\t\t\tif (buffer) consumeBuffer();\n\t\t\t\t\tfinalizeSegment();\n\t\t\t\t} else if (char === \":\") {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 1;\n\t\t\t\t} else addCharToBuffer();\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\taddCharToBuffer();\n\t\t\t\tstate = previousState;\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tif (char === \"(\") state = 2;\n\t\t\t\telse if (VALID_PARAM_RE.test(char)) addCharToBuffer();\n\t\t\t\telse {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 0;\n\t\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tif (char === \")\") if (customRe[customRe.length - 1] == \"\\\\\") customRe = customRe.slice(0, -1) + char;\n\t\t\t\telse state = 3;\n\t\t\t\telse customRe += char;\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tconsumeBuffer();\n\t\t\t\tstate = 0;\n\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\tcustomRe = \"\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcrash(\"Unknown state\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tif (state === 2) crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n\tconsumeBuffer();\n\tfinalizeSegment();\n\treturn tokens;\n}\n//#endregion\n//#region src/matcher/pathParserRanker.ts\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n\tsensitive: false,\n\tstrict: false,\n\tstart: true,\n\tend: true\n};\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n* Creates a path parser from an array of Segments (a segment is an array of Tokens)\n*\n* @param segments - array of segments returned by tokenizePath\n* @param extraOptions - optional options for the regexp\n* @returns a PathParser\n*/\nfunction tokensToParser(segments, extraOptions) {\n\tconst options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n\tconst score = [];\n\tlet pattern = options.start ? \"^\" : \"\";\n\tconst keys = [];\n\tfor (const segment of segments) {\n\t\tconst segmentScores = segment.length ? [] : [90];\n\t\tif (options.strict && !segment.length) pattern += \"/\";\n\t\tfor (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n\t\t\tconst token = segment[tokenIndex];\n\t\t\tlet subSegmentScore = 40 + (options.sensitive ? .25 : 0);\n\t\t\tif (token.type === 0) {\n\t\t\t\tif (!tokenIndex) pattern += \"/\";\n\t\t\t\tpattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n\t\t\t\tsubSegmentScore += 40;\n\t\t\t} else if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional, regexp } = token;\n\t\t\t\tkeys.push({\n\t\t\t\t\tname: value,\n\t\t\t\t\trepeatable,\n\t\t\t\t\toptional\n\t\t\t\t});\n\t\t\t\tconst re = regexp ? regexp : BASE_PARAM_PATTERN;\n\t\t\t\tif (re !== BASE_PARAM_PATTERN) {\n\t\t\t\t\tsubSegmentScore += 10;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tnew RegExp(`(${re})`);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` + err.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n\t\t\t\tif (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n\t\t\t\tif (optional) subPattern += \"?\";\n\t\t\t\tpattern += subPattern;\n\t\t\t\tsubSegmentScore += 20;\n\t\t\t\tif (optional) subSegmentScore += -8;\n\t\t\t\tif (repeatable) subSegmentScore += -20;\n\t\t\t\tif (re === \".*\") subSegmentScore += -50;\n\t\t\t}\n\t\t\tsegmentScores.push(subSegmentScore);\n\t\t}\n\t\tscore.push(segmentScores);\n\t}\n\tif (options.strict && options.end) {\n\t\tconst i = score.length - 1;\n\t\tscore[i][score[i].length - 1] += .7000000000000001;\n\t}\n\tif (!options.strict) pattern += \"/?\";\n\tif (options.end) pattern += \"$\";\n\telse if (options.strict && !pattern.endsWith(\"/\")) pattern += \"(?:/|$)\";\n\tconst re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n\tfunction parse(path) {\n\t\tconst match = path.match(re);\n\t\tconst params = {};\n\t\tif (!match) return null;\n\t\tfor (let i = 1; i < match.length; i++) {\n\t\t\tconst value = match[i] || \"\";\n\t\t\tconst key = keys[i - 1];\n\t\t\tparams[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n\t\t}\n\t\treturn params;\n\t}\n\tfunction stringify(params) {\n\t\tlet path = \"\";\n\t\tlet avoidDuplicatedSlash = false;\n\t\tfor (const segment of segments) {\n\t\t\tif (!avoidDuplicatedSlash || !path.endsWith(\"/\")) path += \"/\";\n\t\t\tavoidDuplicatedSlash = false;\n\t\t\tfor (const token of segment) if (token.type === 0) path += token.value;\n\t\t\telse if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional } = token;\n\t\t\t\tconst param = value in params ? params[value] : \"\";\n\t\t\t\tif (isArray(param) && !repeatable) throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n\t\t\t\tconst text = isArray(param) ? param.join(\"/\") : param;\n\t\t\t\tif (!text) if (optional) {\n\t\t\t\t\tif (segment.length < 2) if (path.endsWith(\"/\")) path = path.slice(0, -1);\n\t\t\t\t\telse avoidDuplicatedSlash = true;\n\t\t\t\t} else throw new Error(`Missing required param \"${value}\"`);\n\t\t\t\tpath += text;\n\t\t\t}\n\t\t}\n\t\treturn path || \"/\";\n\t}\n\treturn {\n\t\tre,\n\t\tscore,\n\t\tkeys,\n\t\tparse,\n\t\tstringify\n\t};\n}\n/**\n* Compares an array of numbers as used in PathParser.score and returns a\n* number. This function can be used to `sort` an array\n*\n* @param a - first array of numbers\n* @param b - second array of numbers\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n* should be sorted first\n*/\nfunction compareScoreArray(a, b) {\n\tlet i = 0;\n\twhile (i < a.length && i < b.length) {\n\t\tconst diff = b[i] - a[i];\n\t\tif (diff) return diff;\n\t\ti++;\n\t}\n\tif (a.length < b.length) return a.length === 1 && a[0] === 80 ? -1 : 1;\n\telse if (a.length > b.length) return b.length === 1 && b[0] === 80 ? 1 : -1;\n\treturn 0;\n}\n/**\n* Compare function that can be used with `sort` to sort an array of PathParser\n*\n* @param a - first PathParser\n* @param b - second PathParser\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n*/\nfunction comparePathParserScore(a, b) {\n\tlet i = 0;\n\tconst aScore = a.score;\n\tconst bScore = b.score;\n\twhile (i < aScore.length && i < bScore.length) {\n\t\tconst comp = compareScoreArray(aScore[i], bScore[i]);\n\t\tif (comp) return comp;\n\t\ti++;\n\t}\n\tif (Math.abs(bScore.length - aScore.length) === 1) {\n\t\tif (isLastScoreNegative(aScore)) return 1;\n\t\tif (isLastScoreNegative(bScore)) return -1;\n\t}\n\treturn bScore.length - aScore.length;\n}\n/**\n* This allows detecting splats at the end of a path: /home/:id(.*)*\n*\n* @param score - score to check\n* @returns true if the last entry is negative\n*/\nfunction isLastScoreNegative(score) {\n\tconst last = score[score.length - 1];\n\treturn score.length > 0 && last[last.length - 1] < 0;\n}\nconst PATH_PARSER_OPTIONS_DEFAULTS = {\n\tstrict: false,\n\tend: true,\n\tsensitive: false\n};\n//#endregion\n//#region src/matcher/pathMatcher.ts\nfunction createRouteRecordMatcher(record, parent, options) {\n\tconst parser = tokensToParser(tokenizePath(record.path), options);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst existingKeys = /* @__PURE__ */ new Set();\n\t\tfor (const key of parser.keys) {\n\t\t\tif (existingKeys.has(key.name)) warn$1(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n\t\t\texistingKeys.add(key.name);\n\t\t}\n\t}\n\tconst matcher = assign(parser, {\n\t\trecord,\n\t\tparent,\n\t\tchildren: [],\n\t\talias: []\n\t});\n\tif (parent) {\n\t\tif (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);\n\t}\n\treturn matcher;\n}\n//#endregion\n//#region src/matcher/index.ts\n/**\n* Creates a Router Matcher.\n*\n* @internal\n* @param routes - array of initial routes\n* @param globalOptions - global route options\n*/\nfunction createRouterMatcher(routes, globalOptions) {\n\tconst matchers = [];\n\tconst matcherMap = /* @__PURE__ */ new Map();\n\tglobalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);\n\tfunction getRecordMatcher(name) {\n\t\treturn matcherMap.get(name);\n\t}\n\tfunction addRoute(record, parent, originalRecord) {\n\t\tconst isRootAdd = !originalRecord;\n\t\tconst mainNormalizedRecord = normalizeRouteRecord(record);\n\t\tif (process.env.NODE_ENV !== \"production\") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n\t\tmainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n\t\tconst options = mergeOptions(globalOptions, record);\n\t\tconst normalizedRecords = [mainNormalizedRecord];\n\t\tif (\"alias\" in record) {\n\t\t\tconst aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n\t\t\tfor (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n\t\t\t\tcomponents: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n\t\t\t\tpath: alias,\n\t\t\t\taliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n\t\t\t})));\n\t\t}\n\t\tlet matcher;\n\t\tlet originalMatcher;\n\t\tfor (const normalizedRecord of normalizedRecords) {\n\t\t\tconst { path } = normalizedRecord;\n\t\t\tif (parent && path[0] !== \"/\") {\n\t\t\t\tconst parentPath = parent.record.path;\n\t\t\t\tconst connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n\t\t\t\tnormalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") throw new Error(\"Catch all routes (\\\"*\\\") must now be defined using a param with a custom regexp.\\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.\");\n\t\t\tmatcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\") checkMissingParamsInAbsolutePath(matcher, parent);\n\t\t\tif (originalRecord) {\n\t\t\t\toriginalRecord.alias.push(matcher);\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameParams(originalRecord, matcher);\n\t\t\t} else {\n\t\t\t\toriginalMatcher = originalMatcher || matcher;\n\t\t\t\tif (originalMatcher !== matcher) originalMatcher.alias.push(matcher);\n\t\t\t\tif (isRootAdd && record.name && !isAliasRecord(matcher)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameNameAsAncestor(record, parent);\n\t\t\t\t\tremoveRoute(record.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isMatchable(matcher)) insertMatcher(matcher);\n\t\t\tif (mainNormalizedRecord.children) {\n\t\t\t\tconst children = mainNormalizedRecord.children;\n\t\t\t\tfor (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n\t\t\t}\n\t\t\toriginalRecord = originalRecord || matcher;\n\t\t}\n\t\treturn originalMatcher ? () => {\n\t\t\tremoveRoute(originalMatcher);\n\t\t} : noop;\n\t}\n\tfunction removeRoute(matcherRef) {\n\t\tif (isRouteName(matcherRef)) {\n\t\t\tconst matcher = matcherMap.get(matcherRef);\n\t\t\tif (matcher) {\n\t\t\t\tmatcherMap.delete(matcherRef);\n\t\t\t\tmatchers.splice(matchers.indexOf(matcher), 1);\n\t\t\t\tmatcher.children.forEach(removeRoute);\n\t\t\t\tmatcher.alias.forEach(removeRoute);\n\t\t\t}\n\t\t} else {\n\t\t\tconst index = matchers.indexOf(matcherRef);\n\t\t\tif (index > -1) {\n\t\t\t\tmatchers.splice(index, 1);\n\t\t\t\tif (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);\n\t\t\t\tmatcherRef.children.forEach(removeRoute);\n\t\t\t\tmatcherRef.alias.forEach(removeRoute);\n\t\t\t}\n\t\t}\n\t}\n\tfunction getRoutes() {\n\t\treturn matchers;\n\t}\n\tfunction insertMatcher(matcher) {\n\t\tconst index = findInsertionIndex(matcher, matchers);\n\t\tmatchers.splice(index, 0, matcher);\n\t\tif (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);\n\t}\n\tfunction resolve(location, currentLocation) {\n\t\tlet matcher;\n\t\tlet params = {};\n\t\tlet path;\n\t\tlet name;\n\t\tif (\"name\" in location && location.name) {\n\t\t\tmatcher = matcherMap.get(location.name);\n\t\t\tif (!matcher) throw createRouterError(1, { location });\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconst invalidParams = Object.keys(location.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n\t\t\t\tif (invalidParams.length) {\n\t\t\t\t\tconst isInherited = !matcher.keys.length && invalidParams.some((name) => name in currentLocation.params);\n\t\t\t\t\twarn$1(`Discarded invalid param(s) \"${invalidParams.join(\"\\\", \\\"\")}\" when navigating.` + (isInherited ? ` If you are using a catch-all route with a named redirect, pass an empty \\`params\\` object: \\`redirect: { name: '...', params: {} }\\`.` : \"\") + ` See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location.params && pickParams(location.params, matcher.keys.map((k) => k.name)));\n\t\t\tpath = matcher.stringify(params);\n\t\t} else if (location.path != null) {\n\t\t\tpath = location.path;\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) warn$1(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n\t\t\tmatcher = matchers.find((m) => m.re.test(path));\n\t\t\tif (matcher) {\n\t\t\t\tparams = matcher.parse(path);\n\t\t\t\tname = matcher.record.name;\n\t\t\t\tmatcher.keys.forEach((key) => {\n\t\t\t\t\tif (key.optional && !params[key.name]) delete params[key.name];\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tmatcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));\n\t\t\tif (!matcher) throw createRouterError(1, {\n\t\t\t\tlocation,\n\t\t\t\tcurrentLocation\n\t\t\t});\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign({}, currentLocation.params, location.params);\n\t\t\tpath = matcher.stringify(params);\n\t\t}\n\t\tconst matched = [];\n\t\tlet parentMatcher = matcher;\n\t\twhile (parentMatcher) {\n\t\t\tmatched.unshift(parentMatcher.record);\n\t\t\tparentMatcher = parentMatcher.parent;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tpath,\n\t\t\tparams,\n\t\t\tmatched,\n\t\t\tmeta: mergeMetaFields(matched)\n\t\t};\n\t}\n\troutes.forEach((route) => addRoute(route));\n\tfunction clearRoutes() {\n\t\tmatchers.length = 0;\n\t\tmatcherMap.clear();\n\t}\n\treturn {\n\t\taddRoute,\n\t\tresolve,\n\t\tremoveRoute,\n\t\tclearRoutes,\n\t\tgetRoutes,\n\t\tgetRecordMatcher\n\t};\n}\n/**\n* Picks an object param to contain only specified keys.\n*\n* @param params - params object to pick from\n* @param keys - keys to pick\n*/\nfunction pickParams(params, keys) {\n\tconst newParams = {};\n\tfor (const key of keys) if (key in params) newParams[key] = params[key];\n\treturn newParams;\n}\n/**\n* Normalizes a RouteRecordRaw. Creates a copy\n*\n* @param record\n* @returns the normalized version\n*/\nfunction normalizeRouteRecord(record) {\n\tconst normalized = {\n\t\tpath: record.path,\n\t\tredirect: record.redirect,\n\t\tname: record.name,\n\t\tmeta: record.meta || {},\n\t\taliasOf: record.aliasOf,\n\t\tbeforeEnter: record.beforeEnter,\n\t\tprops: normalizeRecordProps(record),\n\t\tchildren: record.children || [],\n\t\tinstances: {},\n\t\tleaveGuards: /* @__PURE__ */ new Set(),\n\t\tupdateGuards: /* @__PURE__ */ new Set(),\n\t\tenterCallbacks: {},\n\t\tcomponents: \"components\" in record ? record.components || null : record.component && { default: record.component }\n\t};\n\tObject.defineProperty(normalized, \"mods\", { value: {} });\n\treturn normalized;\n}\n/**\n* Normalize the optional `props` in a record to always be an object similar to\n* components. Also accept a boolean for components.\n* @param record\n*/\nfunction normalizeRecordProps(record) {\n\tconst propsObject = {};\n\tconst props = record.props || false;\n\tif (\"component\" in record) propsObject.default = props;\n\telse for (const name in record.components) propsObject[name] = typeof props === \"object\" ? props[name] : props;\n\treturn propsObject;\n}\n/**\n* Checks if a record or any of its parent is an alias\n* @param record\n*/\nfunction isAliasRecord(record) {\n\twhile (record) {\n\t\tif (record.record.aliasOf) return true;\n\t\trecord = record.parent;\n\t}\n\treturn false;\n}\n/**\n* Merge meta fields of an array of records\n*\n* @param matched - array of matched records\n*/\nfunction mergeMetaFields(matched) {\n\treturn matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction isSameParam(a, b) {\n\treturn a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\n/**\n* Check if a path and its alias have the same required params\n*\n* @param a - original record\n* @param b - alias record\n*/\nfunction checkSameParams(a, b) {\n\tfor (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n\tfor (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n}\n/**\n* A route with a name and a child with an empty path without a name should warn when adding the route\n*\n* @param mainNormalizedRecord - RouteRecordNormalized\n* @param parent - RouteRecordMatcher\n*/\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n\tif (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path && mainNormalizedRecord.children.length === 0) warn$1(`The route named \"${String(parent.record.name)}\" has a child without a name, an empty path, and no children. This is probably a mistake: using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to silence the warning.`);\n}\nfunction checkSameNameAsAncestor(record, parent) {\n\tfor (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? \"child\" : \"descendant\"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n\tfor (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) return warn$1(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n}\n/**\n* Performs a binary search to find the correct insertion index for a new matcher.\n*\n* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n*\n* @param matcher - new matcher to be inserted\n* @param matchers - existing matchers\n*/\nfunction findInsertionIndex(matcher, matchers) {\n\tlet lower = 0;\n\tlet upper = matchers.length;\n\twhile (lower !== upper) {\n\t\tconst mid = lower + upper >> 1;\n\t\tif (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;\n\t\telse lower = mid + 1;\n\t}\n\tconst insertionAncestor = getInsertionAncestor(matcher);\n\tif (insertionAncestor) {\n\t\tupper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n\t\tif (process.env.NODE_ENV !== \"production\" && upper < 0) warn$1(`Finding ancestor route \"${insertionAncestor.record.path}\" failed for \"${matcher.record.path}\"`);\n\t}\n\treturn upper;\n}\nfunction getInsertionAncestor(matcher) {\n\tlet ancestor = matcher;\n\twhile (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;\n}\n/**\n* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n* a component, or name, or redirect, are just used to group other routes.\n* @param matcher\n* @param matcher.record record of the matcher\n* @returns\n*/\nfunction isMatchable({ record }) {\n\treturn !!(record.name || record.components && Object.keys(record.components).length || record.redirect);\n}\n//#endregion\n//#region src/RouterLink.ts\n/**\n* Returns the internal behavior of a {@link RouterLink} without the rendering part.\n*\n* @param props - a `to` location and an optional `replace` flag\n*/\nfunction useLink(props) {\n\tconst router = inject(routerKey);\n\tconst currentRoute = inject(routeLocationKey);\n\tlet hasPrevious = false;\n\tlet previousTo = null;\n\tconst route = computed(() => {\n\t\tconst to = unref(props.to);\n\t\tif (process.env.NODE_ENV !== \"production\" && (!hasPrevious || to !== previousTo)) {\n\t\t\tif (!isRouteLocation(to)) if (hasPrevious) warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- previous to:`, previousTo, `\\n- props:`, props);\n\t\t\telse warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- props:`, props);\n\t\t\tpreviousTo = to;\n\t\t\thasPrevious = true;\n\t\t}\n\t\treturn router.resolve(to);\n\t});\n\tconst activeRecordIndex = computed(() => {\n\t\tconst { matched } = route.value;\n\t\tconst { length } = matched;\n\t\tconst routeMatched = matched[length - 1];\n\t\tconst currentMatched = currentRoute.matched;\n\t\tif (!routeMatched || !currentMatched.length) return -1;\n\t\tconst index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n\t\tif (index > -1) return index;\n\t\tconst parentRecordPath = getOriginalPath(matched[length - 2]);\n\t\treturn length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index;\n\t});\n\tconst isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n\tconst isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n\tfunction navigate(e = {}) {\n\t\tif (guardEvent(e)) {\n\t\t\tconst p = router[unref(props.replace) ? \"replace\" : \"push\"](unref(props.to)).catch(noop);\n\t\t\tif (props.viewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document) document.startViewTransition(() => p);\n\t\t\treturn p;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n\t\tconst instance = getCurrentInstance();\n\t\tif (instance) {\n\t\t\tconst linkContextDevtools = {\n\t\t\t\troute: route.value,\n\t\t\t\tisActive: isActive.value,\n\t\t\t\tisExactActive: isExactActive.value,\n\t\t\t\terror: null\n\t\t\t};\n\t\t\tinstance.__vrl_devtools = instance.__vrl_devtools || [];\n\t\t\tinstance.__vrl_devtools.push(linkContextDevtools);\n\t\t\twatchEffect(() => {\n\t\t\t\tlinkContextDevtools.route = route.value;\n\t\t\t\tlinkContextDevtools.isActive = isActive.value;\n\t\t\t\tlinkContextDevtools.isExactActive = isExactActive.value;\n\t\t\t\tlinkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : \"Invalid \\\"to\\\" value\";\n\t\t\t}, { flush: \"post\" });\n\t\t}\n\t}\n\t/**\n\t* NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n\t*/\n\treturn {\n\t\troute,\n\t\thref: computed(() => route.value.href),\n\t\tisActive,\n\t\tisExactActive,\n\t\tnavigate\n\t};\n}\nfunction preferSingleVNode(vnodes) {\n\treturn vnodes.length === 1 ? vnodes[0] : vnodes;\n}\n/**\n* Component to render a link that triggers a navigation on click.\n*/\nconst RouterLink = /* @__PURE__ */ defineComponent({\n\tname: \"RouterLink\",\n\tcompatConfig: { MODE: 3 },\n\tprops: {\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\trequired: true\n\t\t},\n\t\treplace: Boolean,\n\t\tactiveClass: String,\n\t\texactActiveClass: String,\n\t\tcustom: Boolean,\n\t\tariaCurrentValue: {\n\t\t\ttype: String,\n\t\t\tdefault: \"page\"\n\t\t},\n\t\tviewTransition: Boolean\n\t},\n\tuseLink,\n\tsetup(props, { slots }) {\n\t\tconst link = reactive(useLink(props));\n\t\tconst { options } = inject(routerKey);\n\t\tconst elClass = computed(() => ({\n\t\t\t[getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n\t\t\t[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n\t\t}));\n\t\treturn () => {\n\t\t\tconst children = slots.default && preferSingleVNode(slots.default(link));\n\t\t\treturn props.custom ? children : h(\"a\", {\n\t\t\t\t\"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n\t\t\t\thref: link.href,\n\t\t\t\tonClick: link.navigate,\n\t\t\t\tclass: elClass.value\n\t\t\t}, children);\n\t\t};\n\t}\n});\nfunction guardEvent(e) {\n\tif (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n\tif (e.defaultPrevented) return;\n\tif (e.button !== void 0 && e.button !== 0) return;\n\tif (e.currentTarget && e.currentTarget.getAttribute) {\n\t\tconst target = e.currentTarget.getAttribute(\"target\");\n\t\tif (/\\b_blank\\b/i.test(target)) return;\n\t}\n\tif (e.preventDefault) e.preventDefault();\n\treturn true;\n}\nfunction includesParams(outer, inner) {\n\tfor (const key in inner) {\n\t\tconst innerValue = inner[key];\n\t\tconst outerValue = outer[key];\n\t\tif (typeof innerValue === \"string\") {\n\t\t\tif (innerValue !== outerValue) return false;\n\t\t} else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value.valueOf() !== outerValue[i].valueOf())) return false;\n\t}\n\treturn true;\n}\n/**\n* Get the original path value of a record by following its aliasOf\n* @param record\n*/\nfunction getOriginalPath(record) {\n\treturn record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\n/**\n* Utility class to get the active class based on defaults.\n* @param propClass\n* @param globalClass\n* @param defaultClass\n*/\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\n//#endregion\n//#region src/RouterView.ts\nconst RouterViewImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterView\",\n\tinheritAttrs: false,\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: \"default\"\n\t\t},\n\t\troute: Object\n\t},\n\tcompatConfig: { MODE: 3 },\n\tsetup(props, { attrs, slots }) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n\t\tconst injectedRoute = inject(routerViewLocationKey);\n\t\tconst routeToDisplay = computed(() => props.route || injectedRoute.value);\n\t\tconst injectedDepth = inject(viewDepthKey, 0);\n\t\tconst depth = computed(() => {\n\t\t\tlet initialDepth = unref(injectedDepth);\n\t\t\tconst { matched } = routeToDisplay.value;\n\t\t\tlet matchedRoute;\n\t\t\twhile ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;\n\t\t\treturn initialDepth;\n\t\t});\n\t\tconst matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n\t\tprovide(viewDepthKey, computed(() => depth.value + 1));\n\t\tprovide(matchedRouteKey, matchedRouteRef);\n\t\tprovide(routerViewLocationKey, routeToDisplay);\n\t\tconst viewRef = ref();\n\t\twatch(() => [\n\t\t\tviewRef.value,\n\t\t\tmatchedRouteRef.value,\n\t\t\tprops.name\n\t\t], ([instance, to, name], [oldInstance, from, _oldName]) => {\n\t\t\tif (to) {\n\t\t\t\tto.instances[name] = instance;\n\t\t\t\tif (from && from !== to && instance && instance === oldInstance) {\n\t\t\t\t\tif (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards;\n\t\t\t\t\tif (!to.updateGuards.size) to.updateGuards = from.updateGuards;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n\t\t}, { flush: \"post\" });\n\t\treturn () => {\n\t\t\tconst route = routeToDisplay.value;\n\t\t\tconst currentName = props.name;\n\t\t\tconst matchedRoute = matchedRouteRef.value;\n\t\t\tconst ViewComponent = matchedRoute && matchedRoute.components[currentName];\n\t\t\tif (!ViewComponent) return normalizeSlot(slots.default, {\n\t\t\t\tComponent: ViewComponent,\n\t\t\t\troute\n\t\t\t});\n\t\t\tconst routePropsOption = matchedRoute.props[currentName];\n\t\t\tconst routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n\t\t\tconst onVnodeUnmounted = (vnode) => {\n\t\t\t\tif (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;\n\t\t\t};\n\t\t\tconst component = h(ViewComponent, assign({}, routeProps, attrs, {\n\t\t\t\tonVnodeUnmounted,\n\t\t\t\tref: viewRef\n\t\t\t}));\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) {\n\t\t\t\tconst info = {\n\t\t\t\t\tdepth: depth.value,\n\t\t\t\t\tname: matchedRoute.name,\n\t\t\t\t\tpath: matchedRoute.path,\n\t\t\t\t\tmeta: matchedRoute.meta\n\t\t\t\t};\n\t\t\t\t(isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => {\n\t\t\t\t\tinstance.__vrv_devtools = info;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn normalizeSlot(slots.default, {\n\t\t\t\tComponent: component,\n\t\t\t\troute\n\t\t\t}) || component;\n\t\t};\n\t}\n});\nfunction normalizeSlot(slot, data) {\n\tif (!slot) return null;\n\tconst slotContent = slot(data);\n\treturn slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n/**\n* Component to display the current route the user is at.\n*/\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n\tconst instance = getCurrentInstance();\n\tconst parentName = instance.parent && instance.parent.type.name;\n\tconst parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n\tif (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n\t\tconst comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n\t\twarn$1(` can no longer be used directly inside <${comp}>.\\nUse slot props instead:\\n\\n\\n <${comp}>\\n \\n \\n`);\n\t}\n}\n//#endregion\n//#region src/router.ts\n/**\n* Creates a Router instance that can be used by a Vue app.\n*\n* @param options - {@link RouterOptions}\n*/\nfunction createRouter(options) {\n\tconst matcher = createRouterMatcher(options.routes, options);\n\tconst parseQuery$1 = options.parseQuery || parseQuery;\n\tconst stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n\tconst routerHistory = options.history;\n\tif (process.env.NODE_ENV !== \"production\" && !routerHistory) throw new Error(\"Provide the \\\"history\\\" option when calling \\\"createRouter()\\\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history\");\n\tconst beforeGuards = useCallbacks();\n\tconst beforeResolveGuards = useCallbacks();\n\tconst afterGuards = useCallbacks();\n\tconst currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n\tlet pendingLocation = START_LOCATION_NORMALIZED;\n\tif (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) history.scrollRestoration = \"manual\";\n\tconst normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n\tconst encodeParams = applyToParams.bind(null, encodeParam);\n\tconst decodeParams = applyToParams.bind(null, decode);\n\tfunction addRoute(parentOrRoute, route) {\n\t\tlet parent;\n\t\tlet record;\n\t\tif (isRouteName(parentOrRoute)) {\n\t\t\tparent = matcher.getRecordMatcher(parentOrRoute);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !parent) warn$1(`Parent route \"${String(parentOrRoute)}\" not found when adding child route`, route);\n\t\t\trecord = route;\n\t\t} else record = parentOrRoute;\n\t\treturn matcher.addRoute(record, parent);\n\t}\n\tfunction removeRoute(name) {\n\t\tconst recordMatcher = matcher.getRecordMatcher(name);\n\t\tif (recordMatcher) matcher.removeRoute(recordMatcher);\n\t\telse if (process.env.NODE_ENV !== \"production\") warn$1(`Cannot remove non-existent route \"${String(name)}\"`);\n\t}\n\tfunction getRoutes() {\n\t\treturn matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n\t}\n\tfunction hasRoute(name) {\n\t\treturn !!matcher.getRecordMatcher(name);\n\t}\n\tfunction resolve(rawLocation, currentLocation) {\n\t\tcurrentLocation = assign({}, currentLocation || currentRoute.value);\n\t\tif (typeof rawLocation === \"string\") {\n\t\t\tconst locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n\t\t\tconst matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n\t\t\tconst href = routerHistory.createHref(locationNormalized.fullPath);\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation}\"`);\n\t\t\t}\n\t\t\treturn assign(locationNormalized, matchedRoute, {\n\t\t\t\tparams: decodeParams(matchedRoute.params),\n\t\t\t\tredirectedFrom: void 0,\n\t\t\t\thref\n\t\t\t});\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\" && !isRouteLocation(rawLocation)) {\n\t\t\twarn$1(`router.resolve() was passed an invalid location. This will fail in production.\\n- Location:`, rawLocation);\n\t\t\treturn resolve({});\n\t\t}\n\t\tlet matcherLocation;\n\t\tif (rawLocation.path != null) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && Object.keys(rawLocation.params).length) warn$1(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n\t\t\tmatcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });\n\t\t} else {\n\t\t\tconst targetParams = assign({}, rawLocation.params);\n\t\t\tfor (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];\n\t\t\tmatcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) });\n\t\t\tcurrentLocation.params = encodeParams(currentLocation.params);\n\t\t}\n\t\tconst matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n\t\tconst hash = rawLocation.hash || \"\";\n\t\tif (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) warn$1(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n\t\tmatchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n\t\tconst fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n\t\t\thash: encodeHash(hash),\n\t\t\tpath: matchedRoute.path\n\t\t}));\n\t\tconst href = routerHistory.createHref(fullPath);\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation.path != null ? rawLocation.path : rawLocation}\"`);\n\t\t}\n\t\treturn assign({\n\t\t\tfullPath,\n\t\t\thash,\n\t\t\tquery: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n\t\t}, matchedRoute, {\n\t\t\tredirectedFrom: void 0,\n\t\t\thref\n\t\t});\n\t}\n\tfunction locationAsObject(to) {\n\t\treturn typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n\t}\n\tfunction checkCanceledNavigation(to, from) {\n\t\tif (pendingLocation !== to) return createRouterError(8, {\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t}\n\tfunction push(to) {\n\t\treturn pushWithRedirect(to);\n\t}\n\tfunction replace(to) {\n\t\treturn push(assign(locationAsObject(to), { replace: true }));\n\t}\n\tfunction handleRedirectRecord(to, from) {\n\t\tconst lastMatched = to.matched[to.matched.length - 1];\n\t\tif (lastMatched && lastMatched.redirect) {\n\t\t\tconst { redirect } = lastMatched;\n\t\t\tlet newTargetLocation = typeof redirect === \"function\" ? redirect(to, from) : redirect;\n\t\t\tif (typeof newTargetLocation === \"string\") {\n\t\t\t\tnewTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };\n\t\t\t\tnewTargetLocation.params = {};\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && newTargetLocation.path == null && !(\"name\" in newTargetLocation)) {\n\t\t\t\twarn$1(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n\t\t\t\tthrow new Error(\"Invalid redirect\");\n\t\t\t}\n\t\t\treturn assign({\n\t\t\t\tquery: to.query,\n\t\t\t\thash: to.hash,\n\t\t\t\tparams: newTargetLocation.path != null ? {} : to.params\n\t\t\t}, newTargetLocation);\n\t\t}\n\t}\n\tfunction pushWithRedirect(to, redirectedFrom) {\n\t\tconst targetLocation = pendingLocation = resolve(to);\n\t\tconst from = currentRoute.value;\n\t\tconst data = to.state;\n\t\tconst force = to.force;\n\t\tconst replace = to.replace === true;\n\t\tconst shouldRedirect = handleRedirectRecord(targetLocation, from);\n\t\tif (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n\t\t\tstate: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n\t\t\tforce,\n\t\t\treplace\n\t\t}), redirectedFrom || targetLocation);\n\t\tconst toLocation = targetLocation;\n\t\ttoLocation.redirectedFrom = redirectedFrom;\n\t\tlet failure;\n\t\tif (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n\t\t\tfailure = createRouterError(16, {\n\t\t\t\tto: toLocation,\n\t\t\t\tfrom\n\t\t\t});\n\t\t\thandleScroll(from, from, true, false);\n\t\t}\n\t\treturn (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, 2) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure) => {\n\t\t\tif (failure) {\n\t\t\t\tif (isNavigationFailure(failure, 2)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\" && isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) {\n\t\t\t\t\t\twarn$1(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n\t\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Infinite redirect in navigation guard\"));\n\t\t\t\t\t}\n\t\t\t\t\treturn pushWithRedirect(assign({ replace }, locationAsObject(failure.to), {\n\t\t\t\t\t\tstate: typeof failure.to === \"object\" ? assign({}, data, failure.to.state) : data,\n\t\t\t\t\t\tforce\n\t\t\t\t\t}), redirectedFrom || toLocation);\n\t\t\t\t}\n\t\t\t} else failure = finalizeNavigation(toLocation, from, true, replace, data);\n\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\treturn failure;\n\t\t});\n\t}\n\t/**\n\t* Helper to reject and skip all navigation guards if a new navigation happened\n\t* @param to\n\t* @param from\n\t*/\n\tfunction checkCanceledNavigationAndReject(to, from) {\n\t\tconst error = checkCanceledNavigation(to, from);\n\t\treturn error ? Promise.reject(error) : Promise.resolve();\n\t}\n\tfunction runWithContext(fn) {\n\t\tconst app = installedApps.values().next().value;\n\t\treturn app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n\t}\n\tfunction navigate(to, from) {\n\t\tlet guards;\n\t\tconst [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n\t\tguards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n\t\tfor (const record of leavingRecords) record.leaveGuards.forEach((guard) => {\n\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t});\n\t\tconst canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n\t\tguards.push(canceledNavigationCheck);\n\t\treturn runGuardQueue(guards).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n\t\t\tfor (const record of updatingRecords) record.updateGuards.forEach((guard) => {\n\t\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t\t});\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from));\n\t\t\telse guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tto.matched.forEach((record) => record.enterCallbacks = {});\n\t\t\tguards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from, runWithContext);\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).catch((err) => isNavigationFailure(err, 8) ? err : Promise.reject(err));\n\t}\n\tfunction triggerAfterEach(to, from, failure) {\n\t\tafterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n\t}\n\t/**\n\t* - Cleans up any navigation guards\n\t* - Changes the url if necessary\n\t* - Calls the scrollBehavior\n\t*/\n\tfunction finalizeNavigation(toLocation, from, isPush, replace, data) {\n\t\tconst error = checkCanceledNavigation(toLocation, from);\n\t\tif (error) return error;\n\t\tconst isFirstNavigation = from === START_LOCATION_NORMALIZED;\n\t\tconst state = !isBrowser ? {} : history.state;\n\t\tif (isPush) if (replace || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data));\n\t\telse routerHistory.push(toLocation.fullPath, data);\n\t\tcurrentRoute.value = toLocation;\n\t\thandleScroll(toLocation, from, isPush, isFirstNavigation);\n\t\tmarkAsReady();\n\t}\n\tlet removeHistoryListener;\n\tfunction setupListeners() {\n\t\tif (removeHistoryListener) return;\n\t\tremoveHistoryListener = routerHistory.listen((to, _from, info) => {\n\t\t\tif (!router.listening) return;\n\t\t\tconst toLocation = resolve(to);\n\t\t\tconst shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value);\n\t\t\tif (shouldRedirect) {\n\t\t\t\tpushWithRedirect(assign(shouldRedirect, {\n\t\t\t\t\treplace: true,\n\t\t\t\t\tforce: true\n\t\t\t\t}), toLocation).catch(noop);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingLocation = toLocation;\n\t\t\tconst from = currentRoute.value;\n\t\t\tif (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n\t\t\tnavigate(toLocation, from).catch((error) => {\n\t\t\t\tif (isNavigationFailure(error, 12)) return error;\n\t\t\t\tif (isNavigationFailure(error, 2)) {\n\t\t\t\t\tpushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {\n\t\t\t\t\t\tif (isNavigationFailure(failure, 20) && !info.delta && info.type === \"pop\") routerHistory.go(-1, false);\n\t\t\t\t\t}).catch(noop);\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t}\n\t\t\t\tif (info.delta) routerHistory.go(-info.delta, false);\n\t\t\t\treturn triggerError(error, toLocation, from);\n\t\t\t}).then((failure) => {\n\t\t\t\tfailure = failure || finalizeNavigation(toLocation, from, false);\n\t\t\t\tif (failure) {\n\t\t\t\t\tif (info.delta && !isNavigationFailure(failure, 8)) routerHistory.go(-info.delta, false);\n\t\t\t\t\telse if (info.type === \"pop\" && isNavigationFailure(failure, 20)) routerHistory.go(-1, false);\n\t\t\t\t}\n\t\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\t}).catch(noop);\n\t\t});\n\t}\n\tlet readyHandlers = useCallbacks();\n\tlet errorListeners = useCallbacks();\n\tlet ready;\n\t/**\n\t* Trigger errorListeners added via onError and throws the error as well\n\t*\n\t* @param error - error to throw\n\t* @param to - location we were navigating to when the error happened\n\t* @param from - location we were navigating from when the error happened\n\t* @returns the error as a rejected promise\n\t*/\n\tfunction triggerError(error, to, from) {\n\t\tmarkAsReady(error);\n\t\tconst list = errorListeners.list();\n\t\tif (list.length) list.forEach((handler) => handler(error, to, from));\n\t\telse {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"uncaught error during route navigation:\");\n\t\t\tconsole.error(error);\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n\tfunction isReady() {\n\t\tif (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treadyHandlers.add([resolve, reject]);\n\t\t});\n\t}\n\tfunction markAsReady(err) {\n\t\tif (!ready) {\n\t\t\tready = !err;\n\t\t\tsetupListeners();\n\t\t\treadyHandlers.list().forEach(([resolve, reject]) => err ? reject(err) : resolve());\n\t\t\treadyHandlers.reset();\n\t\t}\n\t\treturn err;\n\t}\n\tfunction handleScroll(to, from, isPush, isFirstNavigation) {\n\t\tconst { scrollBehavior } = options;\n\t\tif (!isBrowser || !scrollBehavior) return Promise.resolve();\n\t\tconst scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n\t\treturn nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from));\n\t}\n\tconst go = (delta) => routerHistory.go(delta);\n\tlet started;\n\tconst installedApps = /* @__PURE__ */ new Set();\n\tconst router = {\n\t\tcurrentRoute,\n\t\tlistening: true,\n\t\taddRoute,\n\t\tremoveRoute,\n\t\tclearRoutes: matcher.clearRoutes,\n\t\thasRoute,\n\t\tgetRoutes,\n\t\tresolve,\n\t\toptions,\n\t\tpush,\n\t\treplace,\n\t\tgo,\n\t\tback: () => go(-1),\n\t\tforward: () => go(1),\n\t\tbeforeEach: beforeGuards.add,\n\t\tbeforeResolve: beforeResolveGuards.add,\n\t\tafterEach: afterGuards.add,\n\t\tonError: errorListeners.add,\n\t\tisReady,\n\t\tinstall(app) {\n\t\t\tapp.component(\"RouterLink\", RouterLink);\n\t\t\tapp.component(\"RouterView\", RouterView);\n\t\t\tapp.config.globalProperties.$router = router;\n\t\t\tObject.defineProperty(app.config.globalProperties, \"$route\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => unref(currentRoute)\n\t\t\t});\n\t\t\tif (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n\t\t\t\tstarted = true;\n\t\t\t\tpush(routerHistory.location).catch((err) => {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Unexpected error when starting the router:\", err);\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst reactiveRoute = {};\n\t\t\tfor (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {\n\t\t\t\tget: () => currentRoute.value[key],\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t\tapp.provide(routerKey, router);\n\t\t\tapp.provide(routeLocationKey, shallowReactive(reactiveRoute));\n\t\t\tapp.provide(routerViewLocationKey, currentRoute);\n\t\t\tconst unmountApp = app.unmount;\n\t\t\tinstalledApps.add(app);\n\t\t\tapp.unmount = function() {\n\t\t\t\tinstalledApps.delete(app);\n\t\t\t\tif (installedApps.size < 1) {\n\t\t\t\t\tpendingLocation = START_LOCATION_NORMALIZED;\n\t\t\t\t\tremoveHistoryListener && removeHistoryListener();\n\t\t\t\t\tremoveHistoryListener = null;\n\t\t\t\t\tcurrentRoute.value = START_LOCATION_NORMALIZED;\n\t\t\t\t\tstarted = false;\n\t\t\t\t\tready = false;\n\t\t\t\t}\n\t\t\t\tunmountApp();\n\t\t\t};\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && true) addDevtools(app, router, matcher);\n\t\t}\n\t};\n\tfunction runGuardQueue(guards) {\n\t\treturn guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n\t}\n\treturn router;\n}\n//#endregion\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","global.__VUE_PROD_DEVTOOLS__ = false\nexport * from './dist/vue-router.js'\n","import { KeepAlive, h } from \"vue\";\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nconst interpolatePath = (route, match) => {\n return match.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n};\nexport const generateRouteKey = (routeProps, override) => {\n const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);\n const source = override ?? matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));\n return typeof source === \"function\" ? source(routeProps.route) : source;\n};\nexport const wrapInKeepAlive = (props, children) => {\n return { default: () => import.meta.client && props ? h(KeepAlive, props === true ? {} : props, children) : children };\n};\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","\nif (import.meta.hot) {\n import.meta.hot.accept((mod) => {\n const router = import.meta.hot.data.router\n const generateRoutes = import.meta.hot.data.generateRoutes\n if (!router || !generateRoutes) {\n import.meta.hot.invalidate('[nuxt] Cannot replace routes because there is no active router. Reloading.')\n return\n }\n const addedRoutes = router.getRoutes().filter(r => !r._initial)\n router.clearRoutes()\n const routes = generateRoutes(mod.default || mod)\n function addRoutes (routes) {\n for (const route of routes) {\n router.addRoute(route)\n }\n for (const route of router.getRoutes()) {\n route._initial = true\n }\n for (const route of addedRoutes) {\n router.addRoute(route)\n }\n router.isReady().then(() => {\n // Resolve the current path against the new routes to get updated meta\n const newRoute = router.resolve(router.currentRoute.value.fullPath)\n // Clear old meta values and assign new ones\n for (const key of Object.keys(router.currentRoute.value.meta)) {\n delete router.currentRoute.value.meta[key]\n }\n Object.assign(router.currentRoute.value.meta, newRoute.meta)\n })\n }\n if (routes && 'then' in routes) {\n routes.then(addRoutes)\n } else {\n addRoutes(routes)\n }\n })\n}\n\nexport function handleHotUpdate(_router, _generateRoutes) {\n if (import.meta.hot) {\n import.meta.hot.data ||= {}\n import.meta.hot.data.router = _router\n import.meta.hot.data.generateRoutes = _generateRoutes\n for (const route of _router.getRoutes()) {\n route._initial = true\n }\n }\n}\nimport { default as accountsuf9bCUy96pdO5sDhtrw37BAVSmLjFm_wqAF7eLybYiMMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/accounts.vue?macro=true\";\nimport { default as apps4N_8fM_HAmoSan_tqUVvBfSBVgSnYl__ZGdiSQQbrUQMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/apps.vue?macro=true\";\nimport { default as calltranslateyLuYKm0ZK9L21n5R8uZzUWg2Wz5JWCfqvY_vv13cK8wMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/calltranslate.vue?macro=true\";\nimport { default as codetIaWhqabBnZ9rT9cLF_86EHpOqJs8Du_S5u8tCLN2VcMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/code.vue?macro=true\";\nimport { default as dashboardZNLB5_JiEysWIj_2b5J2hURJ9xLEtnlF8cxz1kh1xgsMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/dashboard.vue?macro=true\";\nimport { default as deviceATlhZZ6PiEtU_HD4qeo7Tbnfw0N2ei8nBzbk1UCWcQAMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/device.vue?macro=true\";\nimport { default as factoryVZatTEN3EjRZOxVm33XY8Gdq71RZ1D_jDUKUf4F_lWIMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/factory.vue?macro=true\";\nimport { default as globalconfignq5luXkq_Ykd2myATDZ7keYzKoRwp_opATj4sH705EcMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/globalconfig.vue?macro=true\";\nimport { default as mcpconfigrFWADY1KKVchc3b_tLzB_4GNdXlzlJnoCP2vK_qS9IgMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/mcpconfig.vue?macro=true\";\nimport { default as meettemplates3Nsj0ut16S4eIXd5Lv9nVQD0XusUnq08ZaalLdE0O7IMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/meettemplates.vue?macro=true\";\nimport { default as productWbWlgO8dvY_vVRFylKRGjH7HyHR9RFTvzFbP8equczwMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/product.vue?macro=true\";\nimport { default as serviceconfig6Gc5qzSDJTYZMnqPqZYds2OIokXbSz4H6XhPAg8iN0EMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/serviceconfig.vue?macro=true\";\nimport { default as statlogrR6XJDIk_e8P5NJMugR6upS2Ifr1zDMQogeCNYwz5MQMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/statlog.vue?macro=true\";\nimport { default as usersfLETUnFtHTvnQYJLMbrQA_IXzpwNp3NUerB3_nZMVvkMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/users.vue?macro=true\";\nimport { default as indexcEvFhP__rFdFTbvBFnPFkHCn7KMBOSKrrLe98tJlrc4Meta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/index.vue?macro=true\";\nexport default [\n {\n name: \"accounts\",\n path: \"/accounts\",\n meta: accountsuf9bCUy96pdO5sDhtrw37BAVSmLjFm_wqAF7eLybYiMMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/accounts.vue\")\n },\n {\n name: \"apps\",\n path: \"/apps\",\n meta: apps4N_8fM_HAmoSan_tqUVvBfSBVgSnYl__ZGdiSQQbrUQMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/apps.vue\")\n },\n {\n name: \"calltranslate\",\n path: \"/calltranslate\",\n meta: calltranslateyLuYKm0ZK9L21n5R8uZzUWg2Wz5JWCfqvY_vv13cK8wMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/calltranslate.vue\")\n },\n {\n name: \"code\",\n path: \"/code\",\n meta: codetIaWhqabBnZ9rT9cLF_86EHpOqJs8Du_S5u8tCLN2VcMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/code.vue\")\n },\n {\n name: \"dashboard\",\n path: \"/dashboard\",\n meta: dashboardZNLB5_JiEysWIj_2b5J2hURJ9xLEtnlF8cxz1kh1xgsMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/dashboard.vue\")\n },\n {\n name: \"device\",\n path: \"/device\",\n meta: deviceATlhZZ6PiEtU_HD4qeo7Tbnfw0N2ei8nBzbk1UCWcQAMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/device.vue\")\n },\n {\n name: \"factory\",\n path: \"/factory\",\n meta: factoryVZatTEN3EjRZOxVm33XY8Gdq71RZ1D_jDUKUf4F_lWIMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/factory.vue\")\n },\n {\n name: \"globalconfig\",\n path: \"/globalconfig\",\n meta: globalconfignq5luXkq_Ykd2myATDZ7keYzKoRwp_opATj4sH705EcMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/globalconfig.vue\")\n },\n {\n name: \"mcpconfig\",\n path: \"/mcpconfig\",\n meta: mcpconfigrFWADY1KKVchc3b_tLzB_4GNdXlzlJnoCP2vK_qS9IgMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/mcpconfig.vue\")\n },\n {\n name: \"meettemplates\",\n path: \"/meettemplates\",\n meta: meettemplates3Nsj0ut16S4eIXd5Lv9nVQD0XusUnq08ZaalLdE0O7IMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/meettemplates.vue\")\n },\n {\n name: \"product\",\n path: \"/product\",\n meta: productWbWlgO8dvY_vVRFylKRGjH7HyHR9RFTvzFbP8equczwMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/product.vue\")\n },\n {\n name: \"serviceconfig\",\n path: \"/serviceconfig\",\n meta: serviceconfig6Gc5qzSDJTYZMnqPqZYds2OIokXbSz4H6XhPAg8iN0EMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/serviceconfig.vue\")\n },\n {\n name: \"statlog\",\n path: \"/statlog\",\n meta: statlogrR6XJDIk_e8P5NJMugR6upS2Ifr1zDMQogeCNYwz5MQMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/statlog.vue\")\n },\n {\n name: \"users\",\n path: \"/users\",\n meta: usersfLETUnFtHTvnQYJLMbrQA_IXzpwNp3NUerB3_nZMVvkMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/users.vue\")\n },\n {\n name: \"index\",\n path: \"/\",\n meta: indexcEvFhP__rFdFTbvBFnPFkHCn7KMBOSKrrLe98tJlrc4Meta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/index.vue\")\n }\n]","/**\n* @vue/shared v3.5.38\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = {};\nconst EMPTY_ARR = [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst 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 camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst 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\";\nconst 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\";\nconst 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\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n 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);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n return String(value);\n}\n\nexports.EMPTY_ARR = EMPTY_ARR;\nexports.EMPTY_OBJ = EMPTY_OBJ;\nexports.NO = NO;\nexports.NOOP = NOOP;\nexports.PatchFlagNames = PatchFlagNames;\nexports.PatchFlags = PatchFlags;\nexports.ShapeFlags = ShapeFlags;\nexports.SlotFlags = SlotFlags;\nexports.camelize = camelize;\nexports.capitalize = capitalize;\nexports.cssVarNameEscapeSymbolsRE = cssVarNameEscapeSymbolsRE;\nexports.def = def;\nexports.escapeHtml = escapeHtml;\nexports.escapeHtmlComment = escapeHtmlComment;\nexports.extend = extend;\nexports.genCacheKey = genCacheKey;\nexports.genPropsAccessExp = genPropsAccessExp;\nexports.generateCodeFrame = generateCodeFrame;\nexports.getEscapedCssVarName = getEscapedCssVarName;\nexports.getGlobalThis = getGlobalThis;\nexports.hasChanged = hasChanged;\nexports.hasOwn = hasOwn;\nexports.hyphenate = hyphenate;\nexports.includeBooleanAttr = includeBooleanAttr;\nexports.invokeArrayFns = invokeArrayFns;\nexports.isArray = isArray;\nexports.isBooleanAttr = isBooleanAttr;\nexports.isBuiltInDirective = isBuiltInDirective;\nexports.isDate = isDate;\nexports.isFunction = isFunction;\nexports.isGloballyAllowed = isGloballyAllowed;\nexports.isGloballyWhitelisted = isGloballyWhitelisted;\nexports.isHTMLTag = isHTMLTag;\nexports.isIntegerKey = isIntegerKey;\nexports.isKnownHtmlAttr = isKnownHtmlAttr;\nexports.isKnownMathMLAttr = isKnownMathMLAttr;\nexports.isKnownSvgAttr = isKnownSvgAttr;\nexports.isMap = isMap;\nexports.isMathMLTag = isMathMLTag;\nexports.isModelListener = isModelListener;\nexports.isObject = isObject;\nexports.isOn = isOn;\nexports.isPlainObject = isPlainObject;\nexports.isPromise = isPromise;\nexports.isRegExp = isRegExp;\nexports.isRenderableAttrValue = isRenderableAttrValue;\nexports.isReservedProp = isReservedProp;\nexports.isSSRSafeAttrName = isSSRSafeAttrName;\nexports.isSVGTag = isSVGTag;\nexports.isSet = isSet;\nexports.isSpecialBooleanAttr = isSpecialBooleanAttr;\nexports.isString = isString;\nexports.isSymbol = isSymbol;\nexports.isVoidTag = isVoidTag;\nexports.looseEqual = looseEqual;\nexports.looseIndexOf = looseIndexOf;\nexports.looseToNumber = looseToNumber;\nexports.makeMap = makeMap;\nexports.normalizeClass = normalizeClass;\nexports.normalizeCssVarValue = normalizeCssVarValue;\nexports.normalizeProps = normalizeProps;\nexports.normalizeStyle = normalizeStyle;\nexports.objectToString = objectToString;\nexports.parseStringStyle = parseStringStyle;\nexports.propsToAttrMap = propsToAttrMap;\nexports.remove = remove;\nexports.slotFlagsText = slotFlagsText;\nexports.stringifyStyle = stringifyStyle;\nexports.toDisplayString = toDisplayString;\nexports.toHandlerKey = toHandlerKey;\nexports.toNumber = toNumber;\nexports.toRawType = toRawType;\nexports.toTypeString = toTypeString;\n","import { Transition, createStaticVNode, h } from \"vue\";\nimport { defu } from \"defu\";\nimport { isString, isPromise, isArray, isObject } from \"@vue/shared\";\nimport { START_LOCATION } from \"#build/pages\";\nexport const _wrapInTransition = (props, children) => {\n return { default: () => import.meta.client && props ? h(Transition, props === true ? {} : props, children) : children.default?.() };\n};\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nfunction generateRouteKey(route) {\n const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n return typeof source === \"function\" ? source(route) : source;\n}\nexport function isChangingPage(to, from) {\n if (to === from || from === START_LOCATION) {\n return false;\n }\n if (generateRouteKey(to) !== generateRouteKey(from)) {\n return true;\n }\n const areComponentsSame = to.matched.every(\n (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default\n );\n if (areComponentsSame) {\n return false;\n }\n return true;\n}\nexport function createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n } else {\n buffer.push(item);\n }\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nexport function vforToArray(source) {\n if (isArray(source)) {\n return source;\n } else if (isString(source)) {\n return source.split(\"\");\n } else if (typeof source === \"number\") {\n if (import.meta.dev && !Number.isInteger(source)) {\n console.warn(`The v-for range expect an integer value but got ${source}.`);\n }\n const array = [];\n for (let i = 0; i < source; i++) {\n array[i] = i;\n }\n return array;\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n return Array.from(\n source,\n (item) => item\n );\n } else {\n const keys = Object.keys(source);\n const array = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n array[i] = source[key];\n }\n return array;\n }\n }\n return [];\n}\nexport function getFragmentHTML(element, withoutSlots = false) {\n if (element) {\n if (element.nodeName === \"#comment\" && element.nodeValue === \"[\") {\n return getFragmentChildren(element, [], withoutSlots);\n }\n if (withoutSlots) {\n const clone = element.cloneNode(true);\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n return [clone.outerHTML];\n }\n return [element.outerHTML];\n }\n}\nfunction getFragmentChildren(element, blocks = [], withoutSlots = false) {\n if (element && element.nodeName) {\n if (isEndFragment(element)) {\n return blocks;\n } else if (!isStartFragment(element)) {\n const clone = element.cloneNode(true);\n if (withoutSlots) {\n clone.querySelectorAll?.(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n }\n blocks.push(clone.outerHTML);\n }\n getFragmentChildren(element.nextSibling, blocks, withoutSlots);\n }\n return blocks;\n}\nexport function elToStaticVNode(el, staticNodeFallback) {\n const fragment = el ? getFragmentHTML(el) : staticNodeFallback ? [staticNodeFallback] : void 0;\n if (fragment) {\n return createStaticVNode(fragment.join(\"\"), fragment.length);\n }\n return h(\"div\");\n}\nexport function isStartFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"[\";\n}\nexport function isEndFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"]\";\n}\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function _mergeTransitionProps(routeProps) {\n const _props = [];\n for (const prop of routeProps) {\n if (!prop) {\n continue;\n }\n _props.push({\n ...prop,\n onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0,\n onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0\n });\n }\n return defu(..._props);\n}\n","import { START_LOCATION } from \"vue-router\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { isChangingPage } from \"#app/components/utils\";\nimport { useRouter } from \"#app/composables/router\";\nexport default {\n scrollBehavior(to, from, savedPosition) {\n const nuxtApp = useNuxtApp();\n const hashScrollBehaviour = useRouter().options?.scrollBehaviorType ?? \"auto\";\n if (to.path.replace(/\\/$/, \"\") === from.path.replace(/\\/$/, \"\")) {\n if (from.hash && !to.hash) {\n return { left: 0, top: 0 };\n }\n if (to.hash) {\n return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior: hashScrollBehaviour };\n }\n return false;\n }\n const routeAllowsScrollToTop = typeof to.meta.scrollToTop === \"function\" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;\n if (routeAllowsScrollToTop === false) {\n return false;\n }\n if (from === START_LOCATION) {\n return _calculatePosition(to, from, savedPosition, hashScrollBehaviour);\n }\n return new Promise((resolve) => {\n const doScroll = () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)));\n };\n nuxtApp.hooks.hookOnce(\"page:loading:end\", () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(doScroll);\n } else {\n doScroll();\n }\n });\n });\n }\n};\nfunction _getHashElementScrollMarginTop(selector) {\n try {\n const elem = document.querySelector(selector);\n if (elem) {\n return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop) || 0);\n }\n } catch {\n }\n return 0;\n}\nfunction _calculatePosition(to, from, savedPosition, defaultHashScrollBehaviour) {\n if (savedPosition) {\n return savedPosition;\n }\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: isChangingPage(to, from) ? defaultHashScrollBehaviour : \"instant\"\n };\n }\n return {\n left: 0,\n top: 0\n };\n}\n","import routerOptions0 from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/router.options.js\";\nconst configRouterOptions = {\n hashMode: false,\n scrollBehaviorType: \"auto\"\n}\nexport const hashMode = false\nexport default {\n...configRouterOptions,\n...routerOptions0,\n}","import { createError } from \"#app/composables/error\";\nimport { defineNuxtRouteMiddleware } from \"#app/composables/router\";\nexport default defineNuxtRouteMiddleware(async (to, from) => {\n if (!to.meta?.validate) {\n return;\n }\n const result = await Promise.resolve(to.meta.validate(to));\n if (result === true) {\n return;\n }\n const error = createError({\n fatal: import.meta.client,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n status: result && (result.status || result.statusCode) || 404,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n });\n if (typeof window !== \"undefined\") {\n window.history.pushState({}, \"\", from.fullPath);\n }\n return error;\n});\n","import { hasProtocol } from \"ufo\";\nimport { defineNuxtRouteMiddleware } from \"../composables/router.js\";\nimport { getRouteRules } from \"../composables/manifest.js\";\nexport default defineNuxtRouteMiddleware((to) => {\n if (import.meta.server || import.meta.test) {\n return;\n }\n const rules = getRouteRules({ path: to.path });\n if (rules.redirect) {\n const path = rules.redirect.includes(\"#\") ? rules.redirect : rules.redirect + to.hash;\n if (hasProtocol(path, { acceptRelative: true })) {\n window.location.href = path;\n return false;\n }\n return path;\n }\n});\n","import validate from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/validate.js\";\nimport manifest_45route_45rule from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/middleware/route-rules.js\";\nexport const globalMiddleware = [\n validate,\n manifest_45route_45rule\n]\nexport const namedMiddleware = {}","import { defineAsyncComponent } from 'vue'\nexport const islandComponents = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})\nexport const pageIslandRoutes = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})","import { isReadonly, reactive, shallowReactive, shallowRef } from \"vue\";\nimport { START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { isSamePath, withoutBase } from \"ufo\";\nimport { toArray } from \"../utils.js\";\nimport { getRouteRules } from \"#app/composables/manifest\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { clearError, createError, isNuxtError, showError, useError } from \"#app/composables/error\";\nimport { navigateTo } from \"#app/composables/router\";\nimport _routes, { handleHotUpdate } from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options.mjs\";\nimport { globalMiddleware, namedMiddleware } from \"#build/middleware\";\nimport { pageIslandRoutes } from \"#build/components.islands.mjs\";\nfunction createCurrentLocation(base, location, renderedPath) {\n const { pathname, search, hash } = location;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n const slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\") {\n pathFromHash = \"/\" + pathFromHash;\n }\n return withoutBase(pathFromHash, \"\");\n }\n const displayedPath = withoutBase(pathname, base);\n const path = !renderedPath || isSamePath(displayedPath, renderedPath) ? displayedPath : renderedPath;\n return path + (path.includes(\"?\") ? \"\" : search) + hash;\n}\nconst plugin = defineNuxtPlugin({\n name: \"nuxt:router\",\n enforce: \"pre\",\n async setup(nuxtApp) {\n let routerBase = useRuntimeConfig().app.baseURL;\n if (hashMode && !routerBase.includes(\"#\")) {\n routerBase += \"#\";\n }\n const history = routerOptions.history?.(routerBase) ?? (import.meta.client ? hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase) : createMemoryHistory(routerBase));\n const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes;\n let startPosition;\n const router = createRouter({\n ...routerOptions,\n scrollBehavior: (to, from, savedPosition) => {\n if (from === START_LOCATION) {\n startPosition = savedPosition;\n return;\n }\n if (routerOptions.scrollBehavior) {\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n if (\"scrollRestoration\" in window.history) {\n const unsub = router.beforeEach(() => {\n unsub();\n window.history.scrollRestoration = \"manual\";\n });\n }\n return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);\n }\n },\n history,\n routes\n });\n if (import.meta.hot) {\n handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2);\n }\n if (import.meta.client && \"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"auto\";\n }\n nuxtApp.vueApp.use(router);\n const previousRoute = shallowRef(router.currentRoute.value);\n router.afterEach((_to, from) => {\n previousRoute.value = from;\n });\n Object.defineProperty(nuxtApp.vueApp.config.globalProperties, \"previousRoute\", {\n get: () => previousRoute.value\n });\n const initialURL = import.meta.server ? nuxtApp.ssrContext.url : createCurrentLocation(routerBase, window.location, nuxtApp.payload.path);\n const _route = shallowRef(router.currentRoute.value);\n const syncCurrentRoute = () => {\n _route.value = router.currentRoute.value;\n };\n router.afterEach((to, from) => {\n const lastTo = to.matched.at(-1)?.components?.default;\n const lastFrom = from.matched.at(-1)?.components?.default;\n if (lastTo === lastFrom) {\n syncCurrentRoute();\n return;\n }\n if (to.matched.length < from.matched.length && to.matched.every((m, i) => m.components?.default === from.matched[i]?.components?.default)) {\n syncCurrentRoute();\n }\n });\n const route = { sync: syncCurrentRoute };\n for (const key in _route.value) {\n Object.defineProperty(route, key, {\n get: () => _route.value[key],\n enumerable: true\n });\n }\n nuxtApp._route = shallowReactive(route);\n nuxtApp._middleware ||= {\n global: [],\n named: {}\n };\n const error = useError();\n const isServerPage = import.meta.server && nuxtApp.ssrContext?.islandContext?.name?.startsWith(\"page_\");\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n router.afterEach(async (to, _from, failure) => {\n delete nuxtApp._processingMiddleware;\n if (import.meta.client && !nuxtApp.isHydrating && error.value) {\n await nuxtApp.runWithContext(clearError);\n }\n if (failure) {\n await nuxtApp.callHook(\"page:loading:end\");\n }\n if (import.meta.server && failure?.type === 4) {\n return;\n }\n if (import.meta.server && to.redirectedFrom && to.fullPath !== initialURL) {\n await nuxtApp.runWithContext(() => navigateTo(to.fullPath || \"/\"));\n }\n });\n }\n try {\n if (import.meta.server) {\n await router.push(initialURL);\n }\n await router.isReady();\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n const resolvedInitialRoute = import.meta.client && initialURL !== router.currentRoute.value.fullPath ? router.resolve(initialURL) : router.currentRoute.value;\n const hasDeferredRoute = import.meta.client && nuxtApp.isHydrating && nuxtApp.payload.prerenderedAt && nuxtApp.payload.path && initialURL !== nuxtApp.payload.path && isSamePath(router.currentRoute.value.path, nuxtApp.payload.path);\n syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && !isServerPage) {\n return { provide: { router } };\n }\n const initialLayout = nuxtApp.payload.state._layout;\n router.beforeEach(async (to, from) => {\n await nuxtApp.callHook(\"page:loading:start\");\n to.meta = reactive(to.meta);\n if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {\n to.meta.layout = initialLayout;\n }\n nuxtApp._processingMiddleware = true;\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);\n for (const component of to.matched) {\n const componentMiddleware = component.meta.middleware;\n if (!componentMiddleware) {\n continue;\n }\n for (const entry of toArray(componentMiddleware)) {\n middlewareEntries.add(entry);\n }\n }\n const routeRules = getRouteRules({ path: to.path });\n if (routeRules.appMiddleware) {\n for (const key in routeRules.appMiddleware) {\n if (routeRules.appMiddleware[key]) {\n middlewareEntries.add(key);\n } else {\n middlewareEntries.delete(key);\n }\n }\n }\n for (const entry of middlewareEntries) {\n const middleware = typeof entry === \"string\" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;\n if (!middleware) {\n if (import.meta.dev) {\n throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map((mw) => `'${mw}'`).join(\", \")}.`);\n }\n throw new Error(`Unknown route middleware: '${entry}'.`);\n }\n try {\n if (import.meta.dev) {\n nuxtApp._processingMiddleware = middleware._path || (typeof entry === \"string\" ? entry : true);\n }\n const result = await nuxtApp.runWithContext(() => middleware(to, from));\n if (import.meta.server || !nuxtApp.payload.serverRendered && nuxtApp.isHydrating) {\n if (result === false || result instanceof Error) {\n const error2 = result || createError({\n status: 404,\n statusText: `Page Not Found: ${initialURL}`\n });\n await nuxtApp.runWithContext(() => showError(error2));\n return false;\n }\n }\n if (result === true) {\n continue;\n }\n if (result === false) {\n return result;\n }\n if (result) {\n if (isNuxtError(result) && result.fatal) {\n await nuxtApp.runWithContext(() => showError(result));\n }\n return result;\n }\n } catch (err) {\n const error2 = createError(err);\n if (error2.fatal) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n return error2;\n }\n }\n }\n });\n if (isServerPage) {\n router.beforeResolve((to) => {\n const expected = pageIslandRoutes[nuxtApp.ssrContext.islandContext.name];\n const actual = to.matched.find((m) => m.components?.default?.__nuxt_island)?.components?.default;\n if (!expected || expected !== actual?.__nuxt_island) {\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: 400,\n statusMessage: \"Invalid island request path\"\n };\n return false;\n }\n });\n }\n router.onError(async () => {\n delete nuxtApp._processingMiddleware;\n await nuxtApp.callHook(\"page:loading:end\");\n });\n router.afterEach((to) => {\n if (to.matched.length === 0 && !error.value) {\n return nuxtApp.runWithContext(() => showError(createError({\n status: 404,\n fatal: false,\n statusText: `Page not found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n })));\n }\n });\n nuxtApp.hooks.hookOnce(\"app:created\", async () => {\n try {\n if (\"name\" in resolvedInitialRoute) {\n resolvedInitialRoute.name = void 0;\n }\n if (hasDeferredRoute) {\n const payloadRoute = router.resolve(nuxtApp.payload.path);\n if (\"name\" in payloadRoute) {\n payloadRoute.name = void 0;\n }\n await router.replace({ ...payloadRoute, force: true });\n nuxtApp.hooks.hookOnce(\"app:suspense:resolve\", async () => {\n await router.replace({ ...resolvedInitialRoute, force: true });\n });\n } else {\n await router.replace({\n ...resolvedInitialRoute,\n force: true\n });\n }\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n });\n return { provide: { router } };\n }\n});\nexport default plugin;\n","import { isReactive, isRef, isShallow, toRaw } from \"vue\";\nimport { definePayloadReducer } from \"../composables/payload.js\";\nimport { isNuxtError } from \"../composables/error.js\";\nimport { defineNuxtPlugin } from \"../nuxt.js\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nimport { isValidIslandKey } from \"./utils.js\";\nconst reducers = [\n [\"NuxtError\", (data) => isNuxtError(data) && data.toJSON()],\n [\"EmptyShallowRef\", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"EmptyRef\", (data) => isRef(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"ShallowRef\", (data) => isRef(data) && isShallow(data) && data.value],\n [\"ShallowReactive\", (data) => isReactive(data) && isShallow(data) && toRaw(data)],\n [\"Ref\", (data) => isRef(data) && data.value],\n [\"Reactive\", (data) => isReactive(data) && toRaw(data)]\n];\nif (componentIslands) {\n reducers.push([\"Island\", (data) => data && data?.__nuxt_island && isValidIslandKey(data.__nuxt_island.key) && data.__nuxt_island]);\n}\nexport default defineNuxtPlugin({\n name: \"nuxt:revive-payload:server\",\n setup() {\n for (const [reducer, fn] of reducers) {\n definePayloadReducer(reducer, fn);\n }\n }\n});\n","import { createCommentVNode, createElementBlock, defineComponent } from \"vue\";\nimport { clientNodePlaceholder } from \"#build/nuxt.config.mjs\";\nexport default defineComponent({\n name: \"ServerPlaceholder\",\n render() {\n return clientNodePlaceholder ? createCommentVNode(\"placeholder\") : createElementBlock(\"div\");\n }\n});\n","import { cloneVNode, createCommentVNode, createElementBlock, defineComponent, getCurrentInstance, h, onMounted, provide, shallowRef } from \"vue\";\nimport { isPromise } from \"@vue/shared\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport ServerPlaceholder from \"./server-placeholder.js\";\nimport { elToStaticVNode } from \"./utils.js\";\nimport { clientNodePlaceholder } from \"#build/nuxt.config.mjs\";\nexport const clientOnlySymbol = Symbol.for(\"nuxt:client-only\");\nconst STATIC_DIV = \"
\";\nfunction isPlaceholderComment(el) {\n return el.nodeName === \"#comment\" && el.nodeValue === \"placeholder\";\n}\nfunction createPlaceholder(el) {\n if (el && !isPlaceholderComment(el)) {\n return elToStaticVNode(el, STATIC_DIV);\n }\n return clientNodePlaceholder ? createCommentVNode(\"placeholder\") : h(\"div\");\n}\nexport default defineComponent({\n name: \"ClientOnly\",\n inheritAttrs: false,\n props: [\"fallback\", \"placeholder\", \"placeholderTag\", \"fallbackTag\"],\n ...import.meta.dev && {\n slots: Object\n },\n setup(props, { slots, attrs }) {\n const mounted = shallowRef(false);\n onMounted(() => {\n mounted.value = true;\n });\n if (import.meta.dev) {\n const nuxtApp = useNuxtApp();\n nuxtApp._isNuxtPageUsed = true;\n nuxtApp._isNuxtLayoutUsed = true;\n }\n const vm = getCurrentInstance();\n if (vm) {\n vm._nuxtClientOnly = true;\n }\n provide(clientOnlySymbol, true);\n return () => {\n if (mounted.value) {\n const vnodes = slots.default?.();\n if (vnodes && vnodes.length === 1) {\n return [cloneVNode(vnodes[0], attrs)];\n }\n return vnodes;\n }\n const slot = slots.fallback || slots.placeholder;\n if (slot) {\n return h(slot);\n }\n const fallbackStr = props.fallback || props.placeholder || \"\";\n const fallbackTag = props.fallbackTag || props.placeholderTag || \"span\";\n return createElementBlock(fallbackTag, attrs, fallbackStr);\n };\n }\n});\nconst cache = /* @__PURE__ */ new WeakMap();\n// @__NO_SIDE_EFFECTS__\nexport function createClientOnly(component) {\n if (import.meta.server) {\n return ServerPlaceholder;\n }\n if (cache.has(component)) {\n return cache.get(component);\n }\n const clone = { ...component };\n if (clone.render) {\n clone.render = (ctx, cache2, $props, $setup, $data, $options) => {\n if ($setup.mounted$ ?? ctx.mounted$) {\n const res = component.render?.bind(ctx)(ctx, cache2, $props, $setup, $data, $options);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return createPlaceholder(ctx._.vnode.el);\n };\n } else {\n const placeholderTemplate = clientNodePlaceholder ? \"\" : \"
\";\n clone.template &&= `\n \n \n `;\n }\n clone.setup = (props, ctx) => {\n const nuxtApp = useNuxtApp();\n const mounted$ = shallowRef(nuxtApp.isHydrating === false);\n const instance = getCurrentInstance();\n if (nuxtApp.isHydrating) {\n const attrs = { ...instance.attrs };\n const directives = extractDirectives(instance);\n for (const key in attrs) {\n delete instance.attrs[key];\n }\n onMounted(() => {\n Object.assign(instance.attrs, attrs);\n instance.vnode.dirs = directives;\n });\n }\n onMounted(() => {\n mounted$.value = true;\n });\n const setupState = component.setup?.(props, ctx) || {};\n if (isPromise(setupState)) {\n return Promise.resolve(setupState).then((setupState2) => {\n if (typeof setupState2 !== \"function\") {\n setupState2 ||= {};\n setupState2.mounted$ = mounted$;\n return setupState2;\n }\n return (...args) => {\n if (mounted$.value || !nuxtApp.isHydrating) {\n const res = setupState2(...args);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return createPlaceholder(instance?.vnode.el);\n };\n });\n } else {\n if (typeof setupState === \"function\") {\n return (...args) => {\n if (mounted$.value) {\n const res = setupState(...args);\n const attrs = clone.inheritAttrs !== false ? ctx.attrs : void 0;\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res, attrs) : h(res, attrs);\n }\n return createPlaceholder(instance?.vnode.el);\n };\n }\n return Object.assign(setupState, { mounted$ });\n }\n };\n cache.set(component, clone);\n return clone;\n}\nfunction extractDirectives(instance) {\n if (!instance || !instance.vnode.dirs) {\n return null;\n }\n const directives = instance.vnode.dirs;\n instance.vnode.dirs = null;\n return directives;\n}\n","import { kebabCase } from \"scule\";\nexport function defineKeyedFunctionFactory(factory) {\n const placeholder = function() {\n if (import.meta.dev) {\n throw new Error(\n `[nuxt:compiler] \\`${factory.name}\\` is a compiler macro that is only usable inside the directories scanned by the Nuxt compiler as an exported function and imported statically. Learn more: \\`https://nuxt.com/docs/4.x/api/composables/${kebabCase(factory.name)}\\``\n );\n }\n throw new Error(`[nuxt] \\`${factory.name}\\` is a compiler macro and cannot be called at runtime.`);\n };\n return Object.defineProperty(placeholder, \"__nuxt_factory\", {\n enumerable: false,\n get: () => factory.factory\n });\n}\n","import { computed, getCurrentInstance, getCurrentScope, inject, isRef, isShallow, nextTick, onBeforeMount, onScopeDispose, onServerPrefetch, onUnmounted, queuePostFlushCb, ref, shallowRef, toRef, toValue, unref, watch } from \"vue\";\nimport { debounce } from \"perfect-debounce\";\nimport { hash } from \"ohash\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { getUserCaller, toArray } from \"../utils.js\";\nimport { clientOnlySymbol } from \"../components/client-only.js\";\nimport { createError } from \"./error.js\";\nimport { onNuxtReady } from \"./ready.js\";\nimport { defineKeyedFunctionFactory } from \"../../compiler/runtime\";\nimport { asyncDataDefaults, granularCachedData, pendingWhenIdle, purgeCachedData } from \"#build/nuxt.config.mjs\";\nexport const createUseAsyncData = defineKeyedFunctionFactory({\n name: \"createUseAsyncData\",\n factory(options = {}) {\n function useAsyncData2(...args) {\n const autoKey = typeof args[args.length - 1] === \"string\" ? args.pop() : void 0;\n if (_isAutoKeyNeeded(args[0], args[1])) {\n args.unshift(autoKey);\n }\n let [_key, _handler, opts = {}] = args;\n let keyChanging = false;\n const isKeyReactive = isRef(_key) || typeof _key === \"function\";\n const key = isKeyReactive ? computed(() => toValue(_key)) : { value: _key };\n if (!key.value || typeof key.value !== \"string\") {\n throw new TypeError(\"[nuxt] [useAsyncData] key must be a non-empty string.\");\n }\n if (typeof _handler !== \"function\") {\n throw new TypeError(\"[nuxt] [useAsyncData] handler must be a function.\");\n }\n const shouldFactoryOptionsOverride = typeof options === \"function\";\n const nuxtApp = useNuxtApp();\n const factoryOptions = shouldFactoryOptionsOverride ? options(opts) : options;\n if (!shouldFactoryOptionsOverride) {\n for (const key2 in factoryOptions) {\n if (factoryOptions[key2] === void 0) {\n continue;\n }\n if (opts[key2] !== void 0) {\n continue;\n }\n opts[key2] = factoryOptions[key2];\n }\n }\n opts.server ??= true;\n opts.default ??= getDefault;\n opts.getCachedData ??= getDefaultCachedData;\n opts.lazy ??= false;\n opts.immediate ??= true;\n opts.deep ??= asyncDataDefaults.deep;\n opts.dedupe ??= \"cancel\";\n if (shouldFactoryOptionsOverride) {\n for (const key2 in factoryOptions) {\n if (factoryOptions[key2] === void 0) {\n continue;\n }\n opts[key2] = factoryOptions[key2];\n }\n }\n const functionName = import.meta.dev ? factoryOptions._functionName || \"useAsyncData\" : \"\";\n const currentData = nuxtApp._asyncData[key.value];\n if (import.meta.dev && currentData) {\n const warnings = [];\n const values = createHash(_handler, opts);\n if (values.handler !== currentData._hash?.handler) {\n warnings.push(`different handler`);\n }\n for (const opt of [\"transform\", \"pick\", \"getCachedData\"]) {\n if (values[opt] !== currentData._hash[opt]) {\n warnings.push(`different \\`${opt}\\` option`);\n }\n }\n if (currentData._default.toString() !== opts.default.toString()) {\n warnings.push(`different \\`default\\` value`);\n }\n if (opts.deep && isShallow(currentData.data)) {\n warnings.push(`mismatching \\`deep\\` option`);\n }\n if (warnings.length) {\n const caller = getUserCaller();\n const explanation = caller ? ` (used at ${caller.source}:${caller.line}:${caller.column})` : \"\";\n console.warn(`[nuxt] [${functionName}] Incompatible options detected for \"${key.value}\"${explanation}:\n${warnings.map((w) => `- ${w}`).join(\"\\n\")}\nYou can use a different key or move the call to a composable to ensure the options are shared across calls.`);\n }\n }\n function createInitialFetch() {\n const initialFetchOptions = { cause: \"initial\", dedupe: opts.dedupe };\n const existing = nuxtApp._asyncData[key.value];\n if (!existing?._init) {\n initialFetchOptions.cachedData = opts.getCachedData(key.value, nuxtApp, { cause: \"initial\" });\n nuxtApp._asyncData[key.value] = buildAsyncData(nuxtApp, key.value, _handler, opts, initialFetchOptions.cachedData);\n nuxtApp._asyncData[key.value]._initialCachedData = initialFetchOptions.cachedData;\n } else if (nuxtApp._asyncDataPromises[key.value]) {\n initialFetchOptions.cachedData = existing._initialCachedData;\n }\n return () => nuxtApp._asyncData[key.value].execute(initialFetchOptions);\n }\n const initialFetch = createInitialFetch();\n const asyncData = nuxtApp._asyncData[key.value];\n asyncData._deps++;\n const fetchOnServer = opts.server !== false && nuxtApp.payload.serverRendered;\n if (import.meta.server && fetchOnServer && opts.immediate) {\n const promise = initialFetch();\n if (getCurrentInstance()) {\n onServerPrefetch(() => promise);\n } else {\n nuxtApp.hook(\"app:created\", async () => {\n await promise;\n });\n }\n }\n if (import.meta.client) {\n let unregister = function(key2) {\n const data = nuxtApp._asyncData[key2];\n if (data?._deps) {\n data._deps--;\n if (data._deps === 0) {\n data?._off();\n }\n }\n };\n const instance = getCurrentInstance();\n if (instance && fetchOnServer && opts.immediate && !instance.sp) {\n instance.sp = [];\n }\n if (import.meta.dev && !nuxtApp.isHydrating && !nuxtApp._processingMiddleware && (!instance || instance?.isMounted)) {\n console.warn(`[nuxt] [${functionName}] Component is already mounted, please use $fetch instead. See https://nuxt.com/docs/4.x/getting-started/data-fetching`);\n }\n if (instance && !instance._nuxtOnBeforeMountCbs) {\n instance._nuxtOnBeforeMountCbs = [];\n const cbs = instance._nuxtOnBeforeMountCbs;\n onBeforeMount(() => {\n cbs.forEach((cb) => {\n cb();\n });\n cbs.splice(0, cbs.length);\n });\n onUnmounted(() => cbs.splice(0, cbs.length));\n }\n const isWithinClientOnly = instance && (instance._nuxtClientOnly || inject(clientOnlySymbol, false));\n if (fetchOnServer && nuxtApp.isHydrating && (asyncData.error.value || asyncData.data.value !== void 0)) {\n if (pendingWhenIdle) {\n asyncData.pending.value = false;\n }\n asyncData.status.value = asyncData.error.value ? \"error\" : \"success\";\n } else if (instance && (!isWithinClientOnly && nuxtApp.payload.serverRendered && nuxtApp.isHydrating || opts.lazy) && opts.immediate) {\n instance._nuxtOnBeforeMountCbs.push(initialFetch);\n } else if (opts.immediate && asyncData.status.value !== \"success\") {\n initialFetch();\n }\n const hasScope = getCurrentScope();\n const noop = () => {\n };\n const unsubKeyWatcher = isKeyReactive ? watch(key, (newKey, oldKey) => {\n if ((newKey || oldKey) && newKey !== oldKey) {\n keyChanging = true;\n const hadData = nuxtApp._asyncData[oldKey]?.data.value !== void 0;\n const wasRunning = nuxtApp._asyncDataPromises[oldKey] !== void 0;\n const initialFetchOptions = { cause: \"initial\", dedupe: opts.dedupe };\n if (!nuxtApp._asyncData[newKey]?._init) {\n let initialValue;\n if (oldKey && hadData) {\n initialValue = nuxtApp._asyncData[oldKey].data.value;\n } else {\n initialValue = opts.getCachedData(newKey, nuxtApp, { cause: \"initial\" });\n initialFetchOptions.cachedData = initialValue;\n }\n nuxtApp._asyncData[newKey] = buildAsyncData(nuxtApp, newKey, _handler, opts, initialValue);\n }\n nuxtApp._asyncData[newKey]._deps++;\n if (oldKey) {\n unregister(oldKey);\n }\n const keyTriggersExecute = opts._keyTriggersExecute !== false;\n if (keyTriggersExecute && (opts.immediate || hadData || wasRunning)) {\n nuxtApp._asyncData[newKey].execute(initialFetchOptions);\n }\n queuePostFlushCb(() => {\n keyChanging = false;\n });\n }\n }, { flush: \"sync\" }) : noop;\n const unsubParamsWatcher = opts.watch ? watch(opts.watch, () => {\n if (keyChanging) {\n return;\n }\n if (nuxtApp._asyncData[key.value]?._execute.isPending()) {\n queuePostFlushCb(() => {\n nuxtApp._asyncData[key.value]?._execute.flush();\n });\n }\n nuxtApp._asyncData[key.value]?._execute({ cause: \"watch\", dedupe: opts.dedupe });\n }) : noop;\n if (hasScope) {\n onScopeDispose(() => {\n unsubKeyWatcher();\n unsubParamsWatcher();\n unregister(key.value);\n });\n }\n }\n const asyncReturn = {\n data: writableComputedRef(() => nuxtApp._asyncData[key.value]?.data),\n pending: writableComputedRef(() => nuxtApp._asyncData[key.value]?.pending),\n status: writableComputedRef(() => nuxtApp._asyncData[key.value]?.status),\n error: writableComputedRef(() => nuxtApp._asyncData[key.value]?.error),\n refresh: (...args2) => {\n if (!nuxtApp._asyncData[key.value]?._init) {\n const initialFetch2 = createInitialFetch();\n return initialFetch2();\n }\n return nuxtApp._asyncData[key.value].execute(...args2);\n },\n execute: (...args2) => asyncReturn.refresh(...args2),\n clear: () => {\n const entry = nuxtApp._asyncData[key.value];\n if (entry?._abortController) {\n try {\n entry._abortController.abort(new DOMException(\"AsyncData aborted by user.\", \"AbortError\"));\n } finally {\n entry._abortController = void 0;\n }\n }\n clearNuxtDataByKey(nuxtApp, key.value);\n }\n };\n const asyncDataPromise = Promise.resolve(nuxtApp._asyncDataPromises[key.value]).then(() => asyncReturn);\n Object.assign(asyncDataPromise, asyncReturn);\n Object.defineProperties(asyncDataPromise, {\n then: { enumerable: true, value: asyncDataPromise.then.bind(asyncDataPromise) },\n catch: { enumerable: true, value: asyncDataPromise.catch.bind(asyncDataPromise) },\n finally: { enumerable: true, value: asyncDataPromise.finally.bind(asyncDataPromise) }\n });\n return asyncDataPromise;\n }\n return useAsyncData2;\n }\n});\nexport const useAsyncData = createUseAsyncData.__nuxt_factory();\nexport const useLazyAsyncData = createUseAsyncData.__nuxt_factory({\n lazy: true,\n // @ts-expect-error private property\n _functionName: \"useLazyAsyncData\"\n});\nfunction writableComputedRef(getter) {\n return computed({\n get() {\n return getter()?.value;\n },\n set(value) {\n const ref2 = getter();\n if (ref2) {\n ref2.value = value;\n }\n }\n });\n}\nfunction _isAutoKeyNeeded(keyOrFetcher, fetcher) {\n if (typeof keyOrFetcher === \"string\") {\n return false;\n }\n if (typeof keyOrFetcher === \"object\" && keyOrFetcher !== null) {\n return false;\n }\n if (typeof keyOrFetcher === \"function\" && typeof fetcher === \"function\") {\n return false;\n }\n return true;\n}\nexport function useNuxtData(key) {\n const nuxtApp = useNuxtApp();\n if (!(key in nuxtApp.payload.data)) {\n nuxtApp.payload.data[key] = void 0;\n }\n if (nuxtApp._asyncData[key]) {\n const data = nuxtApp._asyncData[key];\n data._deps++;\n if (getCurrentScope()) {\n onScopeDispose(() => {\n data._deps--;\n if (data._deps === 0) {\n data?._off();\n }\n });\n }\n }\n return {\n data: computed({\n get() {\n return nuxtApp._asyncData[key]?.data.value ?? nuxtApp.payload.data[key];\n },\n set(value) {\n if (nuxtApp._asyncData[key]) {\n nuxtApp._asyncData[key].data.value = value;\n } else {\n nuxtApp.payload.data[key] = value;\n }\n }\n })\n };\n}\nexport async function refreshNuxtData(keys) {\n if (import.meta.server) {\n return Promise.resolve();\n }\n await new Promise((resolve) => onNuxtReady(resolve));\n const _keys = keys ? toArray(keys) : void 0;\n await useNuxtApp().hooks.callHookParallel(\"app:data:refresh\", _keys);\n}\nexport function clearNuxtData(keys) {\n const nuxtApp = useNuxtApp();\n const _allKeys = Object.keys(nuxtApp.payload.data);\n const _keys = !keys ? _allKeys : typeof keys === \"function\" ? _allKeys.filter(keys) : toArray(keys);\n for (const key of _keys) {\n clearNuxtDataByKey(nuxtApp, key);\n }\n}\nfunction clearNuxtDataByKey(nuxtApp, key) {\n if (key in nuxtApp.payload.data) {\n nuxtApp.payload.data[key] = void 0;\n }\n if (key in nuxtApp.payload._errors) {\n nuxtApp.payload._errors[key] = void 0;\n }\n if (nuxtApp._asyncData[key]) {\n nuxtApp._asyncData[key].data.value = unref(nuxtApp._asyncData[key]._default());\n nuxtApp._asyncData[key].error.value = void 0;\n if (pendingWhenIdle) {\n nuxtApp._asyncData[key].pending.value = false;\n }\n nuxtApp._asyncData[key].status.value = \"idle\";\n nuxtApp._asyncData[key]._initialCachedData = void 0;\n }\n if (key in nuxtApp._asyncDataPromises) {\n nuxtApp._asyncDataPromises[key] = void 0;\n }\n}\nfunction pick(obj, keys) {\n const newObj = {};\n for (const key of keys) {\n newObj[key] = obj[key];\n }\n return newObj;\n}\nfunction buildAsyncData(nuxtApp, key, _handler, options, initialCachedData) {\n nuxtApp.payload._errors[key] ??= void 0;\n const hasCustomGetCachedData = options.getCachedData !== getDefaultCachedData;\n const handler = import.meta.client || !import.meta.prerender || !nuxtApp.ssrContext?.[\"~sharedPrerenderCache\"] ? _handler : (nuxtApp2, options2) => {\n const value = nuxtApp2.ssrContext[\"~sharedPrerenderCache\"].get(key);\n if (value) {\n return value;\n }\n const promise = Promise.resolve().then(() => nuxtApp2.runWithContext(() => _handler(nuxtApp2, options2)));\n nuxtApp2.ssrContext[\"~sharedPrerenderCache\"].set(key, promise);\n return promise;\n };\n const _ref = options.deep ? ref : shallowRef;\n const hasCachedData = initialCachedData !== void 0;\n const unsubRefreshAsyncData = nuxtApp.hook(\"app:data:refresh\", async (keys) => {\n if (!keys || keys.includes(key)) {\n await asyncData.execute({ cause: \"refresh:hook\" });\n }\n });\n const asyncData = {\n data: _ref(hasCachedData ? initialCachedData : options.default()),\n pending: pendingWhenIdle ? shallowRef(!hasCachedData) : computed(() => asyncData.status.value === \"pending\"),\n error: toRef(nuxtApp.payload._errors, key),\n status: shallowRef(\"idle\"),\n execute: (...args) => {\n const [_opts, newValue = void 0] = args;\n const opts = _opts && newValue === void 0 && typeof _opts === \"object\" ? _opts : {};\n if (import.meta.dev && newValue !== void 0 && (!_opts || typeof _opts !== \"object\")) {\n console.warn(`[nuxt] [${options._functionName}] Do not pass \\`execute\\` directly to \\`watch\\`. Instead, use an inline function, such as \\`watch(q, () => execute())\\`.`);\n }\n if (nuxtApp._asyncDataPromises[key]) {\n if ((opts.dedupe ?? options.dedupe) === \"defer\") {\n return nuxtApp._asyncDataPromises[key];\n }\n }\n if (granularCachedData || opts.cause === \"initial\" || nuxtApp.isHydrating) {\n const cachedData = \"cachedData\" in opts ? opts.cachedData : options.getCachedData(key, nuxtApp, { cause: opts.cause ?? \"refresh:manual\" });\n if (cachedData !== void 0) {\n nuxtApp.payload.data[key] = asyncData.data.value = cachedData;\n asyncData.error.value = void 0;\n asyncData.status.value = \"success\";\n return Promise.resolve(cachedData);\n }\n }\n if (pendingWhenIdle) {\n asyncData.pending.value = true;\n }\n if (asyncData._abortController) {\n asyncData._abortController.abort(new DOMException(\"AsyncData request cancelled by deduplication\", \"AbortError\"));\n }\n asyncData._abortController = new AbortController();\n asyncData.status.value = \"pending\";\n const cleanupController = new AbortController();\n const promise = new Promise(\n (resolve, reject) => {\n try {\n const timeout = opts.timeout ?? options.timeout;\n const mergedSignal = mergeAbortSignals([asyncData._abortController?.signal, opts?.signal], cleanupController.signal, timeout);\n if (mergedSignal.aborted) {\n const reason = mergedSignal.reason;\n reject(reason instanceof Error ? reason : new DOMException(String(reason ?? \"Aborted\"), \"AbortError\"));\n return;\n }\n mergedSignal.addEventListener(\"abort\", () => {\n const reason = mergedSignal.reason;\n reject(reason instanceof Error ? reason : new DOMException(String(reason ?? \"Aborted\"), \"AbortError\"));\n }, { once: true, signal: cleanupController.signal });\n return Promise.resolve(handler(nuxtApp, { signal: mergedSignal })).then(resolve, reject);\n } catch (err) {\n reject(err);\n }\n }\n ).then(async (_result) => {\n if (nuxtApp._asyncDataPromises[key] !== promise) {\n return;\n }\n let result = _result;\n if (options.transform) {\n result = await options.transform(_result);\n }\n if (options.pick) {\n result = pick(result, options.pick);\n }\n if (import.meta.dev && import.meta.server && typeof result === \"undefined\") {\n const caller = getUserCaller();\n const explanation = caller ? ` (used at ${caller.source}:${caller.line}:${caller.column})` : \"\";\n console.warn(`[nuxt] \\`${options._functionName || \"useAsyncData\"}${explanation}\\` must return a value (it should not be \\`undefined\\`) or the request may be duplicated on the client side.`);\n }\n nuxtApp.payload.data[key] = result;\n asyncData.data.value = result;\n asyncData.error.value = void 0;\n asyncData.status.value = \"success\";\n }).catch((error) => {\n if (nuxtApp._asyncDataPromises[key] !== promise) {\n return nuxtApp._asyncDataPromises[key];\n }\n if (asyncData._abortController?.signal.aborted) {\n return nuxtApp._asyncDataPromises[key];\n }\n if (typeof DOMException !== \"undefined\" && error instanceof DOMException && error.name === \"AbortError\") {\n asyncData.status.value = \"idle\";\n return nuxtApp._asyncDataPromises[key];\n }\n asyncData.error.value = createError(error);\n asyncData.data.value = unref(options.default());\n asyncData.status.value = \"error\";\n }).finally(() => {\n cleanupController.abort();\n if (nuxtApp._asyncDataPromises[key] === promise) {\n if (pendingWhenIdle) {\n asyncData.pending.value = false;\n }\n delete nuxtApp._asyncDataPromises[key];\n }\n });\n nuxtApp._asyncDataPromises[key] = promise;\n return nuxtApp._asyncDataPromises[key];\n },\n _execute: debounce((...args) => asyncData.execute(...args), 0, { leading: true }),\n _default: options.default,\n _deps: 0,\n _init: true,\n _hash: import.meta.dev ? createHash(_handler, options) : void 0,\n _off: () => {\n unsubRefreshAsyncData();\n if (nuxtApp._asyncData[key]?._init) {\n nuxtApp._asyncData[key]._init = false;\n }\n if (purgeCachedData && !hasCustomGetCachedData) {\n nextTick(() => {\n if (!nuxtApp._asyncData[key]?._init) {\n clearNuxtDataByKey(nuxtApp, key);\n asyncData.execute = () => Promise.resolve();\n }\n });\n }\n }\n };\n return asyncData;\n}\nconst getDefault = () => void 0;\nconst getDefaultCachedData = (key, nuxtApp, ctx) => {\n if (nuxtApp.isHydrating) {\n return nuxtApp.payload.data[key];\n }\n if (ctx.cause !== \"refresh:manual\" && ctx.cause !== \"refresh:hook\") {\n return nuxtApp.static.data[key];\n }\n};\nfunction createHash(_handler, options) {\n return {\n handler: hash(_handler),\n transform: options.transform ? hash(options.transform) : void 0,\n pick: options.pick ? hash(options.pick) : void 0,\n getCachedData: options.getCachedData ? hash(options.getCachedData) : void 0\n };\n}\nfunction mergeAbortSignals(signals, cleanupSignal, timeout) {\n const list = signals.filter((s) => !!s);\n if (typeof timeout === \"number\" && timeout >= 0) {\n const timeoutSignal = AbortSignal.timeout?.(timeout);\n if (timeoutSignal) {\n list.push(timeoutSignal);\n }\n }\n if (AbortSignal.any) {\n return AbortSignal.any(list);\n }\n const controller = new AbortController();\n for (const sig of list) {\n if (sig.aborted) {\n const reason = sig.reason ?? new DOMException(\"Aborted\", \"AbortError\");\n try {\n controller.abort(reason);\n } catch {\n controller.abort();\n }\n return controller.signal;\n }\n }\n const onAbort = () => {\n const abortedSignal = list.find((s) => s.aborted);\n const reason = abortedSignal?.reason ?? new DOMException(\"Aborted\", \"AbortError\");\n try {\n controller.abort(reason);\n } catch {\n controller.abort();\n }\n };\n for (const sig of list) {\n sig.addEventListener?.(\"abort\", onAbort, { once: true, signal: cleanupSignal });\n }\n return controller.signal;\n}\n","import { setResponseStatus as _setResponseStatus, appendHeader, getRequestHeader, getRequestHeaders, getResponseHeader, removeResponseHeader, setResponseHeader } from \"@nuxt/nitro-server/h3\";\nimport { computed, getCurrentInstance, ref } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useHead } from \"./head.js\";\nexport function useRequestEvent(nuxtApp) {\n if (import.meta.client) {\n return;\n }\n nuxtApp ||= useNuxtApp();\n return nuxtApp.ssrContext?.event;\n}\nexport function useRequestHeaders(include) {\n if (import.meta.client) {\n return {};\n }\n const event = useRequestEvent();\n const _headers = event ? getRequestHeaders(event) : {};\n if (!include || !event) {\n return _headers;\n }\n const headers = /* @__PURE__ */ Object.create(null);\n for (const _key of include) {\n const key = _key.toLowerCase();\n const header = _headers[key];\n if (header) {\n headers[key] = header;\n }\n }\n return headers;\n}\nexport function useRequestHeader(header) {\n if (import.meta.client) {\n return void 0;\n }\n const event = useRequestEvent();\n return event ? getRequestHeader(event, header) : void 0;\n}\nexport function useRequestFetch() {\n if (import.meta.client) {\n return globalThis.$fetch;\n }\n return useRequestEvent()?.$fetch || globalThis.$fetch;\n}\nexport function setResponseStatus(arg1, arg2, arg3) {\n if (import.meta.client) {\n return;\n }\n if (arg1 && typeof arg1 !== \"number\") {\n return _setResponseStatus(arg1, arg2, arg3);\n }\n const event = useRequestEvent();\n if (event) {\n return _setResponseStatus(event, arg1, arg2);\n }\n}\nexport function useResponseHeader(header) {\n if (import.meta.client) {\n if (import.meta.dev) {\n return computed({\n get: () => void 0,\n set: () => console.warn(\"[nuxt] Setting response headers is not supported in the browser.\")\n });\n }\n return ref();\n }\n const event = useRequestEvent();\n return computed({\n get() {\n return getResponseHeader(event, header);\n },\n set(newValue) {\n if (!newValue) {\n return removeResponseHeader(event, header);\n }\n return setResponseHeader(event, header, newValue);\n }\n });\n}\nexport function prerenderRoutes(path) {\n if (!import.meta.server || !import.meta.prerender) {\n return;\n }\n const paths = toArray(path);\n appendHeader(useRequestEvent(), \"x-nitro-prerender\", paths.map((p) => encodeURIComponent(p)).join(\", \"));\n}\nconst PREHYDRATE_ATTR_KEY = \"data-prehydrate-id\";\nexport function onPrehydrate(callback, key) {\n if (import.meta.client) {\n return;\n }\n if (typeof callback !== \"string\") {\n throw new TypeError(\"[nuxt] To transform a callback into a string, `onPrehydrate` must be processed by the Nuxt build pipeline. If it is called in a third-party library, make sure to add the library to `build.transpile`.\");\n }\n const vm = getCurrentInstance();\n if (vm && key) {\n vm.attrs[PREHYDRATE_ATTR_KEY] ||= \"\";\n key = \":\" + key + \":\";\n if (!vm.attrs[PREHYDRATE_ATTR_KEY].includes(key)) {\n vm.attrs[PREHYDRATE_ATTR_KEY] += key;\n }\n }\n const code = vm && key ? `document.querySelectorAll('[${PREHYDRATE_ATTR_KEY}*=${JSON.stringify(key)}]').forEach` + callback : callback + \"()\";\n useHead({\n script: [{\n key: vm && key ? key : void 0,\n tagPosition: \"bodyClose\",\n tagPriority: \"critical\",\n innerHTML: code\n }]\n });\n return vm && key ? vm.attrs[PREHYDRATE_ATTR_KEY] : void 0;\n}\n","import { computed, reactive, toValue, watch } from \"vue\";\nimport { hash } from \"ohash\";\nimport { isPlainObject } from \"@vue/shared\";\nimport { useRequestFetch } from \"./ssr.js\";\nimport { useAsyncData } from \"./asyncData.js\";\nimport { defineKeyedFunctionFactory } from \"../../compiler/runtime\";\nimport { alwaysRunFetchOnKeyChange, fetchDefaults } from \"#build/nuxt.config.mjs\";\nfunction generateOptionSegments(opts) {\n const segments = [\n toValue(opts.method)?.toUpperCase() || \"GET\",\n toValue(opts.baseURL)\n ];\n for (const _obj of [opts.query || opts.params]) {\n const obj = toValue(_obj);\n if (!obj) {\n continue;\n }\n const unwrapped = {};\n for (const [key, value] of Object.entries(obj)) {\n unwrapped[toValue(key)] = toValue(value);\n }\n segments.push(unwrapped);\n }\n if (opts.body) {\n const value = toValue(opts.body);\n if (!value) {\n segments.push(hash(value));\n } else if (value instanceof ArrayBuffer) {\n segments.push(hash(Object.fromEntries([...new Uint8Array(value).entries()].map(([k, v]) => [k, v.toString()]))));\n } else if (value instanceof FormData) {\n const entries = [];\n for (const entry of value.entries()) {\n const [key, val] = entry;\n entries.push([key, val instanceof File ? `${val.name}:${val.size}:${val.lastModified}` : val]);\n }\n segments.push(hash(entries));\n } else if (isPlainObject(value)) {\n segments.push(hash(reactive(value)));\n } else {\n try {\n segments.push(hash(value));\n } catch {\n console.warn(\"[useFetch] Failed to hash body\", value);\n }\n }\n }\n return segments;\n}\nexport const createUseFetch = defineKeyedFunctionFactory({\n name: \"createUseFetch\",\n factory(options = {}) {\n function useFetch2(request, arg1, arg2) {\n const [opts = {}, autoKey] = typeof arg1 === \"string\" ? [{}, arg1] : [arg1, arg2];\n const factoryOptions = typeof options === \"function\" ? options(opts) : options;\n const {\n server,\n lazy,\n default: defaultFn,\n transform,\n pick,\n watch: watchSources,\n immediate,\n getCachedData,\n deep,\n dedupe,\n timeout,\n ...fetchOptions\n } = {\n ...typeof options === \"function\" ? {} : factoryOptions,\n ...opts,\n ...typeof options === \"function\" ? factoryOptions : {}\n };\n const _request = computed(() => toValue(request));\n const key = computed(() => toValue(fetchOptions.key) || \"$f\" + hash([autoKey, typeof _request.value === \"string\" ? _request.value : \"\", ...generateOptionSegments(fetchOptions)]));\n if (!fetchOptions.baseURL && typeof _request.value === \"string\" && (_request.value[0] === \"/\" && _request.value[1] === \"/\")) {\n throw new Error('[nuxt] [useFetch] the request URL must not start with \"//\".');\n }\n const _fetchOptions = reactive({\n ...fetchDefaults,\n ...fetchOptions,\n cache: typeof fetchOptions.cache === \"boolean\" ? void 0 : fetchOptions.cache\n });\n const _asyncDataOptions = {\n server,\n lazy,\n default: defaultFn,\n transform,\n pick,\n immediate,\n getCachedData,\n deep,\n dedupe,\n timeout,\n watch: watchSources === false ? [] : [...watchSources || [], _fetchOptions]\n };\n if (import.meta.dev) {\n _asyncDataOptions._functionName ||= factoryOptions._functionName || \"useFetch\";\n }\n if (watchSources === false) {\n ;\n _asyncDataOptions._keyTriggersExecute = false;\n }\n if (alwaysRunFetchOnKeyChange && !immediate) {\n let setImmediate = function() {\n _asyncDataOptions.immediate = true;\n };\n watch(key, setImmediate, { flush: \"sync\", once: true });\n watch([...watchSources || [], _fetchOptions], setImmediate, { flush: \"sync\", once: true });\n }\n const asyncData = useAsyncData(key, (_, { signal }) => {\n let _$fetch = fetchOptions.$fetch || globalThis.$fetch;\n if (import.meta.server && !fetchOptions.$fetch) {\n const isLocalFetch = typeof _request.value === \"string\" && _request.value[0] === \"/\" && (!toValue(fetchOptions.baseURL) || toValue(fetchOptions.baseURL)[0] === \"/\");\n if (isLocalFetch) {\n _$fetch = useRequestFetch();\n }\n }\n return _$fetch(_request.value, { signal, ..._fetchOptions });\n }, _asyncDataOptions);\n return asyncData;\n }\n return useFetch2;\n }\n});\nexport const useFetch = createUseFetch.__nuxt_factory();\nexport const useLazyFetch = createUseFetch.__nuxt_factory({\n lazy: true,\n // @ts-expect-error private property\n _functionName: \"useLazyFetch\"\n});\n","import { createPinia, setActivePinia } from \"pinia\";\nimport { defineNuxtPlugin, useNuxtApp } from \"#app\";\nimport { toRaw } from \"vue\";\nconst plugin = defineNuxtPlugin({\n name: \"pinia\",\n setup(nuxtApp) {\n const pinia = createPinia();\n nuxtApp.vueApp.use(pinia);\n setActivePinia(pinia);\n if (nuxtApp.payload && nuxtApp.payload.pinia) {\n pinia.state.value = nuxtApp.payload.pinia;\n }\n return {\n provide: {\n pinia\n }\n };\n },\n hooks: {\n \"app:rendered\"() {\n const nuxtApp = useNuxtApp();\n nuxtApp.payload.pinia = toRaw(nuxtApp.$pinia).state.value;\n setActivePinia(void 0);\n }\n }\n});\nexport default plugin;\n","\nimport { defineNuxtPlugin } from '#app/nuxt'\nexport default defineNuxtPlugin({\n name: 'nuxt:global-components',\n})\n","import payload_plugin_vfxyM1biN59FP0Nnr5zjaaXnrjmDUAMUDHGB1jIAoxw from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js\";\nimport unhead_onaWNbu_aBWmOMZtU6jpQtjACQlz0S9RZ6v_ogqPSGE from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_MhK3qgJ0WYuBDV9Bc2R15ebVnAkYpW_sO8RSA5WFQ8Q from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_y_Jg9TKMK_pSVgbwS3QYggu2__NI0DEkI7DvOxdnJaM from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport plugin_vue3_vUOR2Yexyy_5GDuyJio1AxmO0eM0omT0mn6x_agTjzA from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js\";\nimport components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8 from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.cache/nuxt/.nuxt/components.plugin.mjs\";\nexport default [\n payload_plugin_vfxyM1biN59FP0Nnr5zjaaXnrjmDUAMUDHGB1jIAoxw,\n unhead_onaWNbu_aBWmOMZtU6jpQtjACQlz0S9RZ6v_ogqPSGE,\n router_MhK3qgJ0WYuBDV9Bc2R15ebVnAkYpW_sO8RSA5WFQ8Q,\n revive_payload_server_y_Jg9TKMK_pSVgbwS3QYggu2__NI0DEkI7DvOxdnJaM,\n plugin_vue3_vUOR2Yexyy_5GDuyJio1AxmO0eM0omT0mn6x_agTjzA,\n components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8\n]","import { defineAsyncComponent } from 'vue'\nexport default {\n auth: defineAsyncComponent(() => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/layouts/auth.vue\").then(m => m.default || m)),\n default: defineAsyncComponent(() => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/layouts/default.vue\").then(m => m.default || m))\n}","import { Suspense, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, shallowReactive, shallowRef, unref } from \"vue\";\nimport { useRoute, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"./utils.js\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"./injections.js\";\nimport { useRoute as useVueRouterRoute } from \"#build/pages\";\nimport layouts from \"#build/layouts\";\nimport { appLayoutTransition as defaultLayoutTransition } from \"#build/nuxt.config.mjs\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nconst LayoutLoader = defineComponent({\n name: \"LayoutLoader\",\n inheritAttrs: false,\n props: {\n name: String,\n layoutProps: Object\n },\n setup(props, context) {\n return () => h(layouts[props.name], props.layoutProps, context.slots);\n }\n});\nconst nuxtLayoutProps = {\n name: {\n type: [String, Boolean, Object],\n default: null\n },\n fallback: {\n type: [String, Object],\n default: null\n }\n};\nexport default defineComponent({\n name: \"NuxtLayout\",\n inheritAttrs: false,\n props: nuxtLayoutProps,\n setup(props, context) {\n const nuxtApp = useNuxtApp();\n const injectedRoute = inject(PageRouteSymbol);\n const shouldUseEagerRoute = !injectedRoute || injectedRoute === useRoute();\n const route = shouldUseEagerRoute ? useVueRouterRoute() : injectedRoute;\n const layout = computed(() => {\n let layout2 = unref(props.name) ?? route?.meta.layout ?? routeRulesMatcher(route?.path).appLayout ?? \"default\";\n if (layout2 && !(layout2 in layouts)) {\n if (import.meta.dev && layout2 !== \"default\") {\n console.warn(`[nuxt] Invalid layout \\`${layout2}\\` selected.`);\n }\n if (props.fallback) {\n layout2 = unref(props.fallback);\n }\n }\n return layout2;\n });\n const layoutRef = shallowRef();\n context.expose({ layoutRef });\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtLayoutUsed = true;\n }\n let lastLayout;\n return () => {\n const hasLayout = !!layout.value && layout.value in layouts;\n const hasTransition = hasLayout && !!(route?.meta.layoutTransition ?? defaultLayoutTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n route?.meta.layoutTransition,\n defaultLayoutTransition,\n {\n onBeforeLeave() {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n },\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n }\n }\n ]);\n const previouslyRenderedLayout = lastLayout;\n lastLayout = layout.value;\n return _wrapInTransition(transitionProps, {\n default: () => h(\n Suspense,\n {\n suspensible: true,\n onResolve: async () => {\n await nextTick(done);\n }\n },\n {\n default: () => h(\n LayoutProvider,\n {\n layoutProps: mergeProps(context.attrs, route.meta.layoutProps ?? {}, { ref: layoutRef }),\n key: layout.value || void 0,\n name: layout.value,\n shouldProvide: !props.name,\n isRenderingNewLayout: (name) => {\n return name !== previouslyRenderedLayout && name === layout.value;\n },\n hasTransition\n },\n context.slots\n )\n }\n )\n }).default();\n };\n }\n});\nconst LayoutProvider = defineComponent({\n name: \"NuxtLayoutProvider\",\n inheritAttrs: false,\n props: {\n name: {\n type: [String, Boolean]\n },\n layoutProps: {\n type: Object\n },\n hasTransition: {\n type: Boolean\n },\n shouldProvide: {\n type: Boolean\n },\n isRenderingNewLayout: {\n type: Function,\n required: true\n }\n },\n setup(props, context) {\n const name = props.name;\n if (props.shouldProvide) {\n provide(LayoutMetaSymbol, {\n // When name=false, always return true so NuxtPage doesn't skip rendering\n isCurrent: (route) => name === false || name === (route.meta.layout ?? routeRulesMatcher(route.path).appLayout ?? \"default\")\n });\n }\n const injectedRoute = inject(PageRouteSymbol);\n const isNotWithinNuxtPage = injectedRoute && injectedRoute === useRoute();\n if (isNotWithinNuxtPage) {\n const vueRouterRoute = useVueRouterRoute();\n const reactiveChildRoute = {};\n for (const _key in vueRouterRoute) {\n const key = _key;\n Object.defineProperty(reactiveChildRoute, key, {\n enumerable: true,\n get: () => {\n return props.isRenderingNewLayout(props.name) ? vueRouterRoute[key] : injectedRoute[key];\n }\n });\n }\n provide(PageRouteSymbol, shallowReactive(reactiveChildRoute));\n }\n let vnode;\n if (import.meta.dev && import.meta.client) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n if (name) {\n console.warn(`[nuxt] \\`${name}\\` layout does not have a single root node and will cause errors when navigating between routes.`);\n } else {\n console.warn(\"[nuxt] `` needs to be passed a single root node in its default slot.\");\n }\n }\n });\n });\n }\n return () => {\n if (!name || typeof name === \"string\" && !(name in layouts)) {\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = context.slots.default?.();\n return vnode;\n }\n return context.slots.default?.();\n }\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n return vnode;\n }\n return h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n };\n }\n});\n","import { defineComponent, h, nextTick, onMounted, provide, shallowReactive } from \"vue\";\nimport { PageRouteSymbol } from \"./injections.js\";\nexport const defineRouteProvider = (name = \"RouteProvider\") => defineComponent({\n name,\n props: {\n route: {\n type: Object,\n required: true\n },\n vnode: Object,\n vnodeRef: Object,\n renderKey: String,\n trackRootNodes: Boolean\n },\n setup(props) {\n const previousKey = props.renderKey;\n const previousRoute = props.route;\n const route = {};\n for (const key in props.route) {\n Object.defineProperty(route, key, {\n get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],\n enumerable: true\n });\n }\n provide(PageRouteSymbol, shallowReactive(route));\n let vnode;\n if (import.meta.dev && import.meta.client && props.trackRootNodes) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n const filename = vnode?.type?.__file;\n console.warn(`[nuxt] \\`${filename}\\` does not have a single root node and will cause errors when navigating between routes.`);\n }\n });\n });\n }\n return () => {\n if (!props.vnode) {\n return props.vnode;\n }\n if (import.meta.dev && import.meta.client) {\n vnode = h(props.vnode, { ref: props.vnodeRef });\n return vnode;\n }\n return h(props.vnode, { ref: props.vnodeRef });\n };\n }\n});\nexport const RouteProvider = defineRouteProvider();\n","import { Fragment, Suspense, defineComponent, h, inject, nextTick, onBeforeUnmount, ref, watch } from \"vue\";\nimport { RouterView } from \"vue-router\";\nimport { generateRouteKey, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"#app/components/utils\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"#app/components/injections\";\nimport { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nconst _routeProviders = import.meta.dev ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new WeakMap();\nexport default defineComponent({\n name: \"NuxtPage\",\n inheritAttrs: false,\n props: {\n name: {\n type: String\n },\n transition: {\n type: [Boolean, Object],\n default: void 0\n },\n keepalive: {\n type: [Boolean, Object],\n default: void 0\n },\n route: {\n type: Object\n },\n pageKey: {\n type: [Function, String],\n default: null\n }\n },\n setup(props, { attrs, slots, expose }) {\n const nuxtApp = useNuxtApp();\n const pageRef = ref();\n const forkRoute = inject(PageRouteSymbol, null);\n let previousPageKey;\n expose({ pageRef });\n const _layoutMeta = inject(LayoutMetaSymbol, null);\n let vnode;\n const done = nuxtApp.deferHydration();\n let isSuspensePending = false;\n let hasResolvedOnce = false;\n let suspenseKey = 0;\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.client && props.pageKey) {\n watch(() => props.pageKey, (next, prev) => {\n if (next !== prev) {\n nuxtApp.callHook(\"page:loading:start\");\n }\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtPageUsed = true;\n }\n let pageLoadingEndHookAlreadyCalled = false;\n if (import.meta.client) {\n const unsub = useRouter().beforeResolve(() => {\n pageLoadingEndHookAlreadyCalled = false;\n });\n onBeforeUnmount(() => {\n unsub();\n done();\n });\n }\n return () => {\n return h(RouterView, { name: props.name, route: props.route, ...attrs }, {\n default: import.meta.server ? (routeProps) => {\n return h(Suspense, { suspensible: true }, {\n default() {\n return h(RouteProvider, {\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n vnodeRef: pageRef\n });\n }\n });\n } : (routeProps) => {\n const isRenderingNewRouteInOldFork = haveParentRoutesRendered(forkRoute, routeProps.route, routeProps.Component);\n const hasSameChildren = forkRoute && forkRoute.matched.length === routeProps.route.matched.length;\n if (!routeProps.Component) {\n if (vnode && !hasSameChildren && !isStaleVNode(vnode)) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !isStaleVNode(vnode) && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if ((hasSameChildren || vnode) && !isStaleVNode(vnode)) {\n return vnode;\n }\n return null;\n }\n const key = generateRouteKey(routeProps, props.pageKey);\n const willRenderAnotherChild = hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component);\n if (!nuxtApp.isHydrating && previousPageKey === key && !willRenderAnotherChild) {\n nextTick(() => {\n if (!pageLoadingEndHookAlreadyCalled) {\n pageLoadingEndHookAlreadyCalled = true;\n nuxtApp.callHook(\"page:loading:end\");\n }\n });\n }\n if (isSuspensePending && previousPageKey !== key && hasResolvedOnce) {\n suspenseKey++;\n }\n previousPageKey = key;\n const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n props.transition,\n routeProps.route.meta.pageTransition,\n defaultPageTransition,\n {\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n nuxtApp.callHook(\"page:transition:finish\", routeProps.Component);\n }\n }\n ]);\n const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? defaultKeepaliveConfig;\n vnode = _wrapInTransition(\n hasTransition && transitionProps,\n wrapInKeepAlive(\n keepaliveConfig,\n h(Suspense, {\n key: suspenseKey,\n suspensible: true,\n onPending: () => {\n isSuspensePending = true;\n if (hasTransition && !nuxtApp[\"~transitionPromise\"]) {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n }\n nuxtApp.callHook(\"page:start\", routeProps.Component);\n },\n onResolve: async () => {\n isSuspensePending = false;\n hasResolvedOnce = true;\n try {\n await nextTick();\n nuxtApp._route.sync?.();\n await nuxtApp.callHook(\"page:finish\", routeProps.Component);\n if (!pageLoadingEndHookAlreadyCalled && !willRenderAnotherChild) {\n pageLoadingEndHookAlreadyCalled = true;\n await nuxtApp.callHook(\"page:loading:end\");\n }\n } finally {\n done();\n }\n }\n }, {\n default: () => {\n const routeProviderProps = {\n key: key || void 0,\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n renderKey: key || void 0,\n trackRootNodes: hasTransition,\n vnodeRef: pageRef\n };\n if (!keepaliveConfig) {\n return h(RouteProvider, routeProviderProps);\n }\n const routerComponentType = routeProps.Component.type;\n const routeProviderKey = import.meta.dev ? routerComponentType.name || routerComponentType.__name : routerComponentType;\n let PageRouteProvider = _routeProviders.get(routeProviderKey);\n if (!PageRouteProvider) {\n PageRouteProvider = defineRouteProvider(routerComponentType.name || routerComponentType.__name);\n _routeProviders.set(routeProviderKey, PageRouteProvider);\n }\n return h(PageRouteProvider, routeProviderProps);\n }\n })\n )\n ).default();\n return vnode;\n }\n });\n };\n }\n});\nfunction haveParentRoutesRendered(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n if (index === -1) {\n return false;\n }\n const newParents = newRoute.matched.slice(0, index).filter((m) => m.components?.default);\n if (!newParents.length) {\n return false;\n }\n const forkParents = fork.matched.filter((m) => m.components?.default);\n return newParents.some((c, i) => c.components?.default !== forkParents[i]?.components?.default) || Component && generateRouteKey({ route: newRoute, Component }) !== generateRouteKey({ route: fork, Component });\n}\nfunction hasChildrenRoutes(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n return index < newRoute.matched.length - 1;\n}\nfunction normalizeSlot(slot, data) {\n const slotContent = slot(data);\n return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);\n}\nfunction isStaleVNode(vnode) {\n return !!vnode && (!!vnode.suspense?.isUnmounted || !!vnode.component?.isUnmounted);\n}\n","\n","\n\n\n","\n\n\n","import { createApp, createSSRApp, nextTick } from \"vue\";\nimport \"#build/fetch.mjs\";\nimport \"#build/global-polyfills.mjs\";\nimport { applyPlugins, createNuxtApp } from \"./nuxt.js\";\nimport { createError } from \"./composables/error.js\";\nimport \"#build/css\";\nimport plugins from \"#build/plugins\";\nimport RootComponent from \"#build/root-component.mjs\";\nimport { appId, appSpaLoaderAttrs, multiApp, spaLoadingTemplateOutside, vueAppRootContainer } from \"#build/nuxt.config.mjs\";\nlet entry;\nif (import.meta.server) {\n entry = async function createNuxtAppServer(ssrContext) {\n const vueApp = createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp, ssrContext });\n try {\n await applyPlugins(nuxt, plugins);\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n } catch (error) {\n await nuxt.hooks.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n if (ssrContext && (ssrContext[\"~renderResponse\"] || ssrContext._renderResponse)) {\n throw new Error(\"skipping render\");\n }\n return vueApp;\n };\n}\nif (import.meta.client) {\n if (import.meta.dev && import.meta.webpackHot) {\n import.meta.webpackHot.accept();\n }\n let vueAppPromise;\n entry = async function initApp() {\n if (vueAppPromise) {\n return vueAppPromise;\n }\n const isSSR = Boolean(\n (multiApp ? window.__NUXT__?.[appId] : window.__NUXT__)?.serverRendered ?? (multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\"))?.dataset.ssr === \"true\"\n );\n const vueApp = isSSR ? createSSRApp(RootComponent) : createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp });\n async function handleVueError(error) {\n await nuxt.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n ;\n handleVueError.__nuxt_default = true;\n vueApp.config.errorHandler = handleVueError;\n nuxt.hook(\"app:suspense:resolve\", () => {\n if (vueApp.config.errorHandler === handleVueError) {\n vueApp.config.errorHandler = void 0;\n }\n });\n if (spaLoadingTemplateOutside && !isSSR && appSpaLoaderAttrs.id) {\n nuxt.hook(\"app:suspense:resolve\", () => {\n document.getElementById(appSpaLoaderAttrs.id)?.remove();\n });\n }\n try {\n await applyPlugins(nuxt, plugins);\n } catch (err) {\n handleVueError(err);\n }\n try {\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n await nuxt.hooks.callHook(\"app:beforeMount\", vueApp);\n vueApp.mount(vueAppRootContainer);\n await nuxt.hooks.callHook(\"app:mounted\", vueApp);\n await nextTick();\n } catch (err) {\n handleVueError(err);\n }\n return vueApp;\n };\n vueAppPromise = entry().catch((error) => {\n console.error(\"Error while mounting app:\", error);\n throw error;\n });\n}\nexport default ((ssrContext) => entry(ssrContext));\n"],"names":["plugin","provide","plugins","useRoute","parseURL","encodePath","createH3Error","routeRulesMatcher","parseQuery","hash","stringifyQuery","value","location","re","matcher","name","normalizeSlot","matchedRoute","href","replace","failure","resolve","toArray","accountsuf9bCUy96pdO5sDhtrw37BAVSmLjFm_wqAF7eLybYiMMeta","apps4N_8fM_HAmoSan_tqUVvBfSBVgSnYl__ZGdiSQQbrUQMeta","calltranslateyLuYKm0ZK9L21n5R8uZzUWg2Wz5JWCfqvY_vv13cK8wMeta","codetIaWhqabBnZ9rT9cLF_86EHpOqJs8Du_S5u8tCLN2VcMeta","dashboardZNLB5_JiEysWIj_2b5J2hURJ9xLEtnlF8cxz1kh1xgsMeta","deviceATlhZZ6PiEtU_HD4qeo7Tbnfw0N2ei8nBzbk1UCWcQAMeta","factoryVZatTEN3EjRZOxVm33XY8Gdq71RZ1D_jDUKUf4F_lWIMeta","globalconfignq5luXkq_Ykd2myATDZ7keYzKoRwp_opATj4sH705EcMeta","mcpconfigrFWADY1KKVchc3b_tLzB_4GNdXlzlJnoCP2vK_qS9IgMeta","meettemplates3Nsj0ut16S4eIXd5Lv9nVQD0XusUnq08ZaalLdE0O7IMeta","productWbWlgO8dvY_vVRFylKRGjH7HyHR9RFTvzFbP8equczwMeta","serviceconfig6Gc5qzSDJTYZMnqPqZYds2OIokXbSz4H6XhPAg8iN0EMeta","statlogrR6XJDIk_e8P5NJMugR6upS2Ifr1zDMQogeCNYwz5MQMeta","usersfLETUnFtHTvnQYJLMbrQA_IXzpwNp3NUerB3_nZMVvkMeta","indexcEvFhP__rFdFTbvBFnPFkHCn7KMBOSKrrLe98tJlrc4Meta","isArray","global","isRef","START_LOCATION","__executeAsync","entry","isPlainObject","pick","payload_plugin_vfxyM1biN59FP0Nnr5zjaaXnrjmDUAMUDHGB1jIAoxw","router_MhK3qgJ0WYuBDV9Bc2R15ebVnAkYpW_sO8RSA5WFQ8Q","plugin_vue3_vUOR2Yexyy_5GDuyJio1AxmO0eM0omT0mn6x_agTjzA","useVueRouterRoute","defaultLayoutTransition","_push","_parent","_createVNode","_unref","_ssrRenderComponent","ErrorComponent","RootComponent"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,44,45,46]} \ No newline at end of file +{"version":3,"file":"server.mjs","sources":["../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Ffetch.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fglobal-polyfills.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fnuxt.config.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/nuxt.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/injections.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/utils.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/router.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/error.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froute-rules.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/manifest.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/payload.js","../../../../../.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/island-head.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/dist/useApi-s_02lHjl.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/dist/devtools-DCoWQoU_.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/dist/vue-router.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/vue-router.node.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/utils.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froutes.mjs","../../../../../.pnpm/@vue+shared@3.5.38/node_modules/@vue/shared/dist/shared.cjs.prod.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/utils.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/router.options.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Frouter.options.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/validate.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/middleware/route-rules.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fmiddleware.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fcomponents.islands.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/server-placeholder.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/client-only.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/compiler/runtime/index.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/asyncData.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/ssr.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/fetch.js","../../../../../.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fcomponents.plugin.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fplugins.server.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Flayouts.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-layout.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/route-provider.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/page.js","../../../../../../app/app.vue","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"],"sourcesContent":["import { $fetch } from 'ofetch'\nimport { baseURL } from '#internal/nuxt/paths'\nif (!globalThis.$fetch) {\n globalThis.$fetch = $fetch.create({\n baseURL: baseURL()\n })\n}","\nif (!(\"global\" in globalThis)) {\n globalThis.global = globalThis;\n}","export const appHead = {\"meta\":[{\"charset\":\"utf-8\"},{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],\"link\":[],\"style\":[],\"script\":[],\"noscript\":[],\"title\":\"Yunyan Admin\"}\n\nexport const appBaseURL = \"/\"\n\nexport const appBuildAssetsDir = \"/_nuxt/\"\n\nexport const appCdnURL = \"\"\n\nexport const appLayoutTransition = false\n\nexport const appPageTransition = false\n\nexport const appViewTransition = {\"enabled\":false}\n\nexport const appKeepalive = false\n\nexport const appRootId = \"__nuxt\"\n\nexport const appRootTag = \"div\"\n\nexport const appRootAttrs = {\"id\":\"__nuxt\"}\n\nexport const appTeleportTag = \"div\"\n\nexport const appTeleportId = \"teleports\"\n\nexport const appTeleportAttrs = {\"id\":\"teleports\"}\n\nexport const appSpaLoaderTag = \"div\"\n\nexport const appSpaLoaderAttrs = {\"id\":\"__nuxt-loader\"}\n\nexport const renderJsonPayloads = true\n\nexport const componentIslands = false\n\nexport const payloadExtraction = false\n\nexport const cookieStore = true\n\nexport const appManifest = true\n\nexport const remoteComponentIslands = false\n\nexport const selectiveClient = false\n\nexport const devPagesDir = null\n\nexport const devRootDir = null\n\nexport const devLogs = false\n\nexport const nuxtLinkDefaults = {\"componentName\":\"NuxtLink\",\"prefetch\":true,\"prefetchOn\":{\"visibility\":true}}\n\nexport const asyncDataDefaults = {\"deep\":false}\n\nexport const useStateDefaults = {\"resetOnClear\":false}\n\nexport const fetchDefaults = {}\n\nexport const vueAppRootContainer = '#__nuxt'\n\nexport const viewTransition = false\n\nexport const appId = \"nuxt-app\"\n\nexport const outdatedBuildInterval = 3600000\n\nexport const multiApp = false\n\nexport const chunkErrorEvent = \"vite:preloadError\"\n\nexport const crawlLinks = false\n\nexport const spaLoadingTemplateOutside = true\n\nexport const purgeCachedData = true\n\nexport const granularCachedData = true\n\nexport const pendingWhenIdle = false\n\nexport const alwaysRunFetchOnKeyChange = false\n\nexport const asyncCallHook = true\n\nexport const clientNodePlaceholder = false","import { effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, reactive, shallowReactive } from \"vue\";\nimport { createHooks } from \"hookable\";\nimport { getContext } from \"unctx\";\nimport { appId, asyncCallHook, chunkErrorEvent, multiApp } from \"#build/nuxt.config.mjs\";\nexport function getNuxtAppCtx(id = appId || \"nuxt-app\") {\n return getContext(id, {\n asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server\n });\n}\nexport const NuxtPluginIndicator = \"__nuxt_plugin\";\nexport function createNuxtApp(options) {\n let hydratingCount = 0;\n const nuxtApp = {\n _id: options.id || appId || \"nuxt-app\",\n _scope: effectScope(),\n provide: void 0,\n versions: {\n get nuxt() {\n return __NUXT_VERSION__;\n },\n get vue() {\n return nuxtApp.vueApp.version;\n }\n },\n payload: shallowReactive({\n ...options.ssrContext?.payload || {},\n data: shallowReactive({}),\n state: reactive({}),\n once: /* @__PURE__ */ new Set(),\n _errors: shallowReactive({})\n }),\n static: {\n data: {}\n },\n runWithContext(fn) {\n if (nuxtApp._scope.active && !getCurrentScope()) {\n return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));\n }\n return callWithNuxt(nuxtApp, fn);\n },\n isHydrating: import.meta.client,\n deferHydration() {\n if (!nuxtApp.isHydrating) {\n return () => {\n };\n }\n hydratingCount++;\n let called = false;\n return () => {\n if (called) {\n return;\n }\n called = true;\n hydratingCount--;\n if (hydratingCount === 0) {\n nuxtApp.isHydrating = false;\n return nuxtApp.callHook(\"app:suspense:resolve\");\n }\n };\n },\n _asyncDataPromises: {},\n _asyncData: shallowReactive({}),\n _state: shallowReactive({}),\n _payloadRevivers: {},\n ...options\n };\n if (import.meta.server) {\n nuxtApp.payload.serverRendered = true;\n }\n if (import.meta.server && nuxtApp.ssrContext) {\n nuxtApp.payload.path = nuxtApp.ssrContext.url;\n nuxtApp.ssrContext.nuxt = nuxtApp;\n nuxtApp.ssrContext.payload = nuxtApp.payload;\n nuxtApp.ssrContext.config = {\n public: nuxtApp.ssrContext.runtimeConfig.public,\n app: nuxtApp.ssrContext.runtimeConfig.app\n };\n }\n if (import.meta.client) {\n const __NUXT__ = multiApp ? window.__NUXT__?.[nuxtApp._id] : window.__NUXT__;\n if (__NUXT__) {\n for (const key in __NUXT__) {\n switch (key) {\n case \"data\":\n case \"state\":\n case \"_errors\":\n Object.assign(nuxtApp.payload[key], __NUXT__[key]);\n break;\n default:\n nuxtApp.payload[key] = __NUXT__[key];\n }\n }\n }\n }\n nuxtApp.hooks = createHooks();\n nuxtApp.hook = nuxtApp.hooks.hook;\n if (import.meta.server) {\n const contextCaller = async function(hooks, args) {\n for (const hook of hooks) {\n await nuxtApp.runWithContext(() => hook(...args));\n }\n };\n nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, args);\n } else if (asyncCallHook) {\n const _callHook = nuxtApp.hooks.callHook;\n nuxtApp.hooks.callHook = (name, ...args) => Promise.resolve().then(() => _callHook(name, ...args));\n }\n nuxtApp.callHook = nuxtApp.hooks.callHook;\n nuxtApp.provide = (name, value) => {\n const $name = \"$\" + name;\n defineGetter(nuxtApp, $name, value);\n defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);\n };\n defineGetter(nuxtApp.vueApp, \"$nuxt\", nuxtApp);\n defineGetter(nuxtApp.vueApp.config.globalProperties, \"$nuxt\", nuxtApp);\n if (import.meta.client) {\n if (chunkErrorEvent) {\n window.addEventListener(chunkErrorEvent, (event) => {\n nuxtApp.callHook(\"app:chunkError\", { error: event.payload });\n if (event.payload?.message?.includes(\"Unable to preload CSS\")) {\n event.preventDefault();\n }\n });\n }\n window.useNuxtApp ||= useNuxtApp;\n const unreg = nuxtApp.hook(\"app:error\", (...args) => {\n console.error(\"[nuxt] error caught during app initialization\", ...args);\n });\n nuxtApp.hook(\"app:mounted\", unreg);\n }\n const runtimeConfig = import.meta.server ? options.ssrContext.runtimeConfig : nuxtApp.payload.config;\n nuxtApp.provide(\"config\", import.meta.client && import.meta.dev ? wrappedConfig(runtimeConfig) : runtimeConfig);\n return nuxtApp;\n}\nexport function registerPluginHooks(nuxtApp, plugin) {\n if (plugin.hooks) {\n nuxtApp.hooks.addHooks(plugin.hooks);\n }\n}\nexport async function applyPlugin(nuxtApp, plugin) {\n if (typeof plugin === \"function\") {\n const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};\n if (provide && typeof provide === \"object\") {\n for (const key in provide) {\n nuxtApp.provide(key, provide[key]);\n }\n }\n }\n}\nexport async function applyPlugins(nuxtApp, plugins) {\n const resolvedPlugins = /* @__PURE__ */ new Set();\n const unresolvedPlugins = [];\n const parallels = [];\n let error = void 0;\n let promiseDepth = 0;\n async function executePlugin(plugin) {\n const unresolvedPluginsForThisPlugin = plugin.dependsOn?.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.has(name)) ?? [];\n if (unresolvedPluginsForThisPlugin.length > 0) {\n unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]);\n } else {\n const promise = applyPlugin(nuxtApp, plugin).then(async () => {\n if (plugin._name) {\n resolvedPlugins.add(plugin._name);\n await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {\n if (dependsOn.has(plugin._name)) {\n dependsOn.delete(plugin._name);\n if (dependsOn.size === 0) {\n promiseDepth++;\n await executePlugin(unexecutedPlugin);\n }\n }\n }));\n }\n }).catch((e) => {\n if (!plugin.parallel && !nuxtApp.payload.error) {\n throw e;\n }\n error ||= e;\n });\n if (plugin.parallel) {\n parallels.push(promise);\n } else {\n await promise;\n }\n }\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n registerPluginHooks(nuxtApp, plugin);\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n await executePlugin(plugin);\n }\n await Promise.all(parallels);\n if (promiseDepth) {\n for (let i = 0; i < promiseDepth; i++) {\n await Promise.all(parallels);\n }\n }\n if (error) {\n throw nuxtApp.payload.error || error;\n }\n}\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtPlugin(plugin) {\n if (typeof plugin === \"function\") {\n return plugin;\n }\n const _name = plugin._name || plugin.name;\n delete plugin.name;\n return Object.assign(plugin.setup || (() => {\n }), plugin, { [NuxtPluginIndicator]: true, _name });\n}\nexport const definePayloadPlugin = defineNuxtPlugin;\nexport function isNuxtPlugin(plugin) {\n return typeof plugin === \"function\" && NuxtPluginIndicator in plugin;\n}\nexport function callWithNuxt(nuxt, setup, args) {\n const fn = () => args ? setup(...args) : setup();\n const nuxtAppCtx = getNuxtAppCtx(nuxt._id);\n if (import.meta.server) {\n return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));\n } else {\n nuxtAppCtx.set(nuxt);\n return nuxt.vueApp.runWithContext(fn);\n }\n}\nexport function tryUseNuxtApp(id) {\n let nuxtAppInstance;\n if (hasInjectionContext()) {\n nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;\n }\n nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();\n return nuxtAppInstance || null;\n}\nexport function useNuxtApp(id) {\n const nuxtAppInstance = tryUseNuxtApp(id);\n if (!nuxtAppInstance) {\n if (import.meta.dev) {\n throw new Error(\"[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/4.x/guide/concepts/auto-imports#vue-and-nuxt-composables`.\");\n } else {\n throw new Error(\"[nuxt] instance unavailable\");\n }\n }\n return nuxtAppInstance;\n}\n// @__NO_SIDE_EFFECTS__\nexport function useRuntimeConfig(_event) {\n return useNuxtApp().$config;\n}\nfunction defineGetter(obj, key, val) {\n Object.defineProperty(obj, key, { get: () => val });\n}\nexport function defineAppConfig(config) {\n return config;\n}\nconst loggedKeys = /* @__PURE__ */ new Set();\nfunction wrappedConfig(runtimeConfig) {\n if (!import.meta.dev || import.meta.server) {\n return runtimeConfig;\n }\n const keys = [];\n for (const key in runtimeConfig) {\n keys.push(`\\`${key}\\``);\n }\n const lastKey = keys.pop();\n return new Proxy(runtimeConfig, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p !== \"public\" && !(p in target) && !p.startsWith(\"__v\")) {\n if (!loggedKeys.has(p)) {\n loggedKeys.add(p);\n console.warn(`[nuxt] Could not access \\`${p}\\`. The only available runtime config keys on the client side are ${keys.join(\", \")} and ${lastKey}. See https://nuxt.com/docs/4.x/guide/going-further/runtime-config for more information.`);\n }\n }\n return Reflect.get(target, p, receiver);\n }\n });\n}\n","export const LayoutMetaSymbol = Symbol(\"layout-meta\");\nexport const PageRouteSymbol = Symbol(\"route\");\n","import { captureStackTrace } from \"errx\";\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nconst distURL = import.meta.url.replace(/\\/app\\/.*$/, \"/\");\nexport function getUserTrace() {\n if (!import.meta.dev) {\n return [];\n }\n const trace = captureStackTrace();\n const start = trace.findIndex((entry) => !entry.source.startsWith(distURL));\n const end = trace.toReversed().findIndex((entry) => !entry.source.includes(\"node_modules\") && !entry.source.startsWith(distURL));\n if (start === -1 || end === -1) {\n return [];\n }\n return trace.slice(start, end > 0 ? -end : void 0).map((i) => ({\n ...i,\n source: i.source.replace(/^file:\\/\\//, \"\")\n }));\n}\nexport function getUserCaller() {\n if (!import.meta.dev) {\n return null;\n }\n const { source, line, column } = captureStackTrace().find((entry) => !entry.source.startsWith(distURL)) ?? {};\n if (!source) {\n return null;\n }\n return {\n source: source.replace(/^file:\\/\\//, \"\"),\n line,\n column\n };\n}\n","import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from \"vue\";\nimport { sanitizeStatusCode } from \"@nuxt/nitro-server/h3\";\nimport { decodePath, encodePath, hasProtocol, isScriptProtocol, joinURL, parseQuery, parseURL, withQuery } from \"ufo\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { PageRouteSymbol } from \"../components/injections.js\";\nimport { createError, showError } from \"./error.js\";\nimport { getUserTrace } from \"../utils.js\";\nexport const useRouter = () => {\n return useNuxtApp()?.$router;\n};\nexport const useRoute = () => {\n if (import.meta.dev && !getCurrentInstance() && isProcessingMiddleware()) {\n const middleware = useNuxtApp()._processingMiddleware;\n const trace = getUserTrace().map(({ source, line, column }) => `at ${source}:${line}:${column}`).join(\"\\n\");\n console.warn(`[nuxt] \\`useRoute\\` was called within middleware${typeof middleware === \"string\" ? ` (\\`${middleware}\\`)` : \"\"}. This may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes. Learn more: https://nuxt.com/docs/4.x/directory-structure/app/middleware#accessing-route-in-middleware` + (\"\\n\" + trace));\n }\n if (hasInjectionContext()) {\n return inject(PageRouteSymbol, useNuxtApp()._route);\n }\n return useNuxtApp()._route;\n};\nexport const onBeforeRouteLeave = (guard) => {\n const unsubscribe = useRouter().beforeEach((to, from, next) => {\n if (to === from) {\n return;\n }\n return guard(to, from, next);\n });\n onScopeDispose(unsubscribe);\n};\nexport const onBeforeRouteUpdate = (guard) => {\n const unsubscribe = useRouter().beforeEach(guard);\n onScopeDispose(unsubscribe);\n};\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtRouteMiddleware(middleware) {\n return middleware;\n}\nexport const addRouteMiddleware = (name, middleware, options = {}) => {\n const nuxtApp = useNuxtApp();\n const global = options.global || typeof name !== \"string\";\n const mw = typeof name !== \"string\" ? name : middleware;\n if (!mw) {\n console.warn(\"[nuxt] No route middleware passed to `addRouteMiddleware`.\", name);\n return;\n }\n if (global) {\n nuxtApp._middleware.global.push(mw);\n } else {\n nuxtApp._middleware.named[name] = mw;\n }\n};\nconst isProcessingMiddleware = () => {\n try {\n if (useNuxtApp()._processingMiddleware) {\n return true;\n }\n } catch {\n return false;\n }\n return false;\n};\nconst HTML_ATTR_UNSAFE_RE = /[&\"'<>]/g;\nconst HTML_ATTR_ENCODE_MAP = {\n \"&\": \"%26\",\n '\"': \"%22\",\n \"'\": \"%27\",\n \"<\": \"%3C\",\n \">\": \"%3E\"\n};\nfunction encodeForHtmlAttr(value) {\n return value.replace(HTML_ATTR_UNSAFE_RE, (c) => HTML_ATTR_ENCODE_MAP[c]);\n}\nexport const navigateTo = (to, options) => {\n to ||= \"/\";\n const toPath = typeof to === \"string\" ? to : \"path\" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;\n if (import.meta.client && options?.open) {\n const { protocol } = new URL(toPath, window.location.href);\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n const { target = \"_blank\", windowFeatures = {} } = options.open;\n const features = [];\n for (const [feature, value] of Object.entries(windowFeatures)) {\n if (value !== void 0) {\n features.push(`${feature.toLowerCase()}=${value}`);\n }\n }\n open(toPath, target, features.join(\", \"));\n return Promise.resolve();\n }\n const isExternalHost = hasProtocol(toPath, { acceptRelative: true });\n const isExternal = options?.external || isExternalHost;\n if (isExternal) {\n if (!options?.external) {\n throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");\n }\n const { protocol } = new URL(toPath, import.meta.client ? window.location.href : \"http://localhost\");\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n }\n const inMiddleware = isProcessingMiddleware();\n if (import.meta.client && !isExternal && inMiddleware) {\n if (options?.replace) {\n if (typeof to === \"string\") {\n const { pathname, search, hash } = parseURL(to);\n return {\n path: pathname,\n ...search && { query: parseQuery(search) },\n ...hash && { hash },\n replace: true\n };\n }\n return { ...to, replace: true };\n }\n return to;\n }\n const router = useRouter();\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (nuxtApp.ssrContext) {\n const fullPath = typeof to === \"string\" || isExternal ? toPath : router.resolve(to).fullPath || \"/\";\n const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath);\n const redirect = async function(response) {\n await nuxtApp.callHook(\"app:redirected\");\n const encodedHeader = encodeURL(location2, isExternalHost);\n const encodedLoc = encodeForHtmlAttr(encodedHeader);\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),\n body: ``,\n headers: { location: encodedHeader }\n };\n return response;\n };\n if (!isExternal && inMiddleware) {\n router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);\n return to;\n }\n return redirect(!inMiddleware ? void 0 : (\n /* abort route navigation */\n false\n ));\n }\n }\n if (isExternal) {\n nuxtApp._scope.stop();\n if (options?.replace) {\n location.replace(toPath);\n } else {\n location.href = toPath;\n }\n if (inMiddleware) {\n if (!nuxtApp.isHydrating) {\n return false;\n }\n return new Promise(() => {\n });\n }\n return Promise.resolve();\n }\n const encodedTo = typeof to === \"string\" ? encodeRoutePath(to) : to;\n return options?.replace ? router.replace(encodedTo) : router.push(encodedTo);\n};\nexport const abortNavigation = (err) => {\n if (import.meta.dev && !isProcessingMiddleware()) {\n throw new Error(\"abortNavigation() is only usable inside a route middleware handler.\");\n }\n if (!err) {\n return false;\n }\n err = createError(err);\n if (err.fatal) {\n useNuxtApp().runWithContext(() => showError(err));\n }\n throw err;\n};\nexport const setPageLayout = (layout, props) => {\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (import.meta.dev && getCurrentInstance() && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.\");\n }\n nuxtApp.payload.state._layout = layout;\n nuxtApp.payload.state._layoutProps = props;\n }\n if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.\");\n }\n const inMiddleware = isProcessingMiddleware();\n if (inMiddleware || import.meta.server || nuxtApp.isHydrating) {\n const unsubscribe = useRouter().beforeResolve((to) => {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n unsubscribe();\n });\n }\n if (!inMiddleware) {\n const route = useRoute();\n route.meta.layout = layout;\n route.meta.layoutProps = props;\n if (import.meta.client) {\n const unsubscribe = useRouter().beforeResolve((to, from) => {\n if (to.path === from.path) {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n } else {\n unsubscribe();\n }\n });\n onScopeDispose(unsubscribe, true);\n }\n }\n};\nexport function resolveRouteObject(to) {\n return withQuery(to.path || \"\", to.query || {}) + (to.hash || \"\");\n}\nexport function encodeURL(location2, isExternalHost = false) {\n const url = new URL(location2, \"http://localhost\");\n if (!isExternalHost) {\n const pathname = url.pathname.replace(/^\\/{2,}/, \"/\");\n return pathname + url.search + url.hash;\n }\n if (location2.startsWith(\"//\")) {\n return url.toString().replace(url.protocol, \"\");\n }\n return url.toString();\n}\nexport function encodeRoutePath(url) {\n const parsed = parseURL(url);\n return encodePath(decodePath(parsed.pathname)) + parsed.search + parsed.hash;\n}\n","import { createError as createH3Error } from \"@nuxt/nitro-server/h3\";\nimport { toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRouter } from \"./router.js\";\nexport const NUXT_ERROR_SIGNATURE = \"__nuxt_error\";\nexport const useError = /* @__NO_SIDE_EFFECTS__ */ () => toRef(useNuxtApp().payload, \"error\");\nexport const showError = (error) => {\n const nuxtError = createError(error);\n try {\n const error2 = /* @__PURE__ */ useError();\n if (import.meta.client) {\n const nuxtApp = useNuxtApp();\n nuxtApp.hooks.callHook(\"app:error\", nuxtError);\n }\n error2.value ||= nuxtError;\n } catch {\n throw nuxtError;\n }\n return nuxtError;\n};\nexport const clearError = async (options = {}) => {\n const nuxtApp = useNuxtApp();\n const error = /* @__PURE__ */ useError();\n nuxtApp.callHook(\"app:error:cleared\", options);\n if (options.redirect) {\n await useRouter().replace(options.redirect);\n }\n error.value = void 0;\n};\nexport const isNuxtError = (error) => !!error && typeof error === \"object\" && NUXT_ERROR_SIGNATURE in error;\nexport const createError = (error) => {\n if (typeof error !== \"string\" && error.statusText) {\n error.message ??= error.statusText;\n }\n const nuxtError = createH3Error(error);\n Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {\n value: true,\n configurable: false,\n writable: false\n });\n Object.defineProperty(nuxtError, \"status\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusCode,\n configurable: true\n });\n Object.defineProperty(nuxtError, \"statusText\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusMessage,\n configurable: true\n });\n return nuxtError;\n};\n","\n import { defu } from 'defu'\n const matcher = (m,p)=>{return [];}\n export default (path) => defu({}, ...matcher('', typeof path === 'string' ? path.toLowerCase() : path).map(r => r.data).reverse())\n ","import { useRuntimeConfig } from \"../nuxt.js\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport { buildAssetsURL } from \"#internal/nuxt/paths\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nlet manifest;\nfunction fetchManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n let _manifest;\n if (import.meta.server) {\n _manifest = import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"#app-manifest\"\n );\n } else {\n _manifest = $fetch(buildAssetsURL(`builds/meta/${useRuntimeConfig().app.buildId}.json`), {\n responseType: \"json\"\n }).then((res) => {\n if (!res || typeof res !== \"object\" || !Array.isArray(res.prerendered)) {\n throw new Error(\"[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.\");\n }\n return res;\n });\n }\n manifest = _manifest;\n _manifest.catch((e) => {\n if (manifest === _manifest) {\n manifest = void 0;\n }\n console.error(\"[nuxt] Error fetching app manifest.\", e);\n });\n return _manifest;\n}\nexport function getAppManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n return manifest || fetchManifest();\n}\nexport function getRouteRules(arg) {\n const path = typeof arg === \"string\" ? arg : arg.path;\n try {\n return routeRulesMatcher(path.toLowerCase());\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\n}\n","import { hasProtocol, joinURL } from \"ufo\";\nimport { parse } from \"devalue\";\nimport { getCurrentInstance, onServerPrefetch, reactive } from \"vue\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { useHead } from \"./head.js\";\nimport { useRoute } from \"./router.js\";\nimport { getAppManifest, getRouteRules } from \"./manifest.js\";\nimport { appId, appManifest, multiApp, payloadExtraction, renderJsonPayloads } from \"#build/nuxt.config.mjs\";\nexport async function loadPayload(url, opts = {}) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n if (await shouldLoadPayload(url)) {\n const payloadURL = await _getPayloadURL(url, opts);\n return await _importPayload(payloadURL) || null;\n }\n return null;\n}\nlet linkRelType;\nfunction detectLinkRelType() {\n if (import.meta.server) {\n return \"preload\";\n }\n if (linkRelType) {\n return linkRelType;\n }\n const relList = document.createElement(\"link\").relList;\n linkRelType = relList && relList.supports && relList.supports(\"prefetch\") ? \"prefetch\" : \"preload\";\n return linkRelType;\n}\nexport function preloadPayload(url, opts = {}) {\n const nuxtApp = useNuxtApp();\n const promise = shouldLoadPayload(url).then(async (shouldPreload) => {\n if (!shouldPreload) {\n return;\n }\n const payloadURL = await _getPayloadURL(url, opts);\n const link = renderJsonPayloads ? { rel: detectLinkRelType(), as: \"fetch\", crossorigin: \"anonymous\", href: payloadURL } : { rel: \"modulepreload\", crossorigin: \"\", href: payloadURL };\n if (import.meta.server) {\n nuxtApp.runWithContext(() => useHead({ link: [link] }));\n } else {\n const linkEl = document.createElement(\"link\");\n for (const key of Object.keys(link)) {\n linkEl[key === \"crossorigin\" ? \"crossOrigin\" : key] = link[key];\n }\n document.head.appendChild(linkEl);\n return new Promise((resolve, reject) => {\n linkEl.addEventListener(\"load\", () => resolve());\n linkEl.addEventListener(\"error\", () => reject());\n });\n }\n });\n if (import.meta.server) {\n onServerPrefetch(() => promise);\n }\n return promise;\n}\nconst filename = renderJsonPayloads ? \"_payload.json\" : \"_payload.js\";\nasync function _getPayloadURL(url, opts = {}) {\n const u = new URL(url, \"http://localhost\");\n if (u.host !== \"localhost\" || hasProtocol(u.pathname, { acceptRelative: true })) {\n throw new Error(\"Payload URL must not include hostname: \" + url);\n }\n const config = useRuntimeConfig();\n const hash = opts.hash || (opts.fresh || import.meta.dev ? Date.now() : config.app.buildId);\n const cdnURL = config.app.cdnURL;\n const baseOrCdnURL = cdnURL && await isPrerendered(url) ? cdnURL : config.app.baseURL;\n return joinURL(baseOrCdnURL, u.pathname, filename + (hash ? `?${hash}` : \"\"));\n}\nasync function _importPayload(payloadURL) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n try {\n if (renderJsonPayloads) {\n const res = await fetch(payloadURL, import.meta.dev ? {} : { cache: \"force-cache\" });\n if (!res.ok) {\n if (import.meta.dev) {\n console.warn(`[nuxt] Cannot load payload ${payloadURL}: ${res.status} ${res.statusText}`);\n }\n return null;\n }\n return await parsePayload(await res.text());\n } else {\n return await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n }\n } catch (err) {\n console.warn(\"[nuxt] Cannot load payload \", payloadURL, err);\n }\n return null;\n}\nfunction _shouldLoadPrerenderedPayload(rules) {\n if (rules.redirect) {\n return false;\n }\n if (rules.prerender) {\n return true;\n }\n}\nasync function _isPrerenderedInManifest(url) {\n if (!appManifest) {\n return false;\n }\n url = url === \"/\" ? url : url.replace(/\\/$/, \"\");\n try {\n const manifest = await getAppManifest();\n return manifest.prerendered.includes(url);\n } catch {\n return false;\n }\n}\nexport async function shouldLoadPayload(url = useRoute().path) {\n const rules = getRouteRules({ path: url });\n if (rules.ssr === false) {\n return false;\n }\n const res = _shouldLoadPrerenderedPayload(rules);\n if (res !== void 0) {\n return res;\n }\n if (rules.payload) {\n return true;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nexport async function isPrerendered(url = useRoute().path) {\n const res = _shouldLoadPrerenderedPayload(getRouteRules({ path: url }));\n if (res !== void 0) {\n return res;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nlet payloadCache = null;\nexport async function getNuxtClientPayload() {\n if (import.meta.server) {\n return null;\n }\n if (payloadCache) {\n return payloadCache;\n }\n const el = multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\");\n if (!el) {\n return {};\n }\n const inlineData = await parsePayload(el.textContent || \"\");\n const externalData = el.dataset.src ? await _importPayload(el.dataset.src) : void 0;\n payloadCache = {\n ...inlineData,\n ...externalData,\n ...multiApp ? window.__NUXT__?.[appId] : window.__NUXT__\n };\n if (payloadCache.config?.public) {\n payloadCache.config.public = reactive(payloadCache.config.public);\n }\n return payloadCache;\n}\nexport async function parsePayload(payload) {\n return await parse(payload, useNuxtApp()._payloadRevivers);\n}\nexport function definePayloadReducer(name, reduce) {\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~payloadReducers\"][name] = reduce;\n }\n}\nexport function definePayloadReviver(name, revive) {\n if (import.meta.dev && getCurrentInstance()) {\n console.warn(\"[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.\");\n }\n if (import.meta.client) {\n useNuxtApp()._payloadRevivers[name] = revive;\n }\n}\n","import {\n definePayloadPlugin,\n definePayloadReducer,\n definePayloadReviver\n} from \"#imports\";\nimport { shouldHydrate } from \"pinia\";\nconst payloadPlugin = definePayloadPlugin(() => {\n definePayloadReducer(\n \"skipHydrate\",\n // We need to return something truthy to be treated as a match\n (data) => !shouldHydrate(data) && 1\n );\n definePayloadReviver(\"skipHydrate\", (_data) => void 0);\n});\nexport default payloadPlugin;\n","export function freezeHead(head) {\n const realPush = head.push;\n head.push = () => ({ dispose: () => {\n }, patch: () => {\n }, _poll: () => {\n } });\n return () => {\n head.push = realPush;\n };\n}\n","import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport { freezeHead } from \"../island-head.js\";\nimport unheadOptions from \"#build/unhead-options.mjs\";\nexport default defineNuxtPlugin({\n name: \"nuxt:head\",\n enforce: \"pre\",\n setup(nuxtApp) {\n const head = import.meta.server ? nuxtApp.ssrContext.head : createClientHead(unheadOptions);\n if (import.meta.server && nuxtApp.ssrContext.islandContext) {\n const unfreeze = freezeHead(head);\n nuxtApp.hooks.hookOnce(\"app:created\", unfreeze);\n }\n nuxtApp.vueApp.use(head);\n if (import.meta.client) {\n let pauseDOMUpdates = true;\n const syncHead = async () => {\n pauseDOMUpdates = false;\n await renderDOMHead(head);\n };\n head.hooks.hook(\"dom:beforeRender\", (context) => {\n context.shouldRender = !pauseDOMUpdates;\n });\n nuxtApp.hooks.hook(\"page:start\", () => {\n pauseDOMUpdates = true;\n });\n nuxtApp.hooks.hook(\"page:finish\", () => {\n if (!nuxtApp.isHydrating) {\n syncHead();\n }\n });\n nuxtApp.hooks.hook(\"app:error\", syncHead);\n nuxtApp.hooks.hook(\"app:suspense:resolve\", syncHead);\n const originalPush = head.push.bind(head);\n head.push = ((input, options) => {\n const entry = originalPush(input, options);\n const originalDispose = entry.dispose.bind(entry);\n entry.dispose = () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(originalDispose);\n } else {\n originalDispose();\n }\n };\n return entry;\n });\n }\n }\n});\n","/*!\n* vue-router v5.1.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { inject } from \"vue\";\n//#region src/utils/env.ts\nconst isBrowser = typeof document !== \"undefined\";\n//#endregion\n//#region src/utils/index.ts\n/**\n* Identity function that returns the value as is.\n*\n* @param v - the value to return\n*\n* @internal\n*/\nconst identityFn = (v) => v;\n/**\n* Allows differentiating lazy components from functional components and vue-class-component\n* @internal\n*\n* @param component\n*/\nfunction isRouteComponent(component) {\n\treturn typeof component === \"object\" || \"displayName\" in component || \"props\" in component || \"__vccOpts\" in component;\n}\nfunction isESModule(obj) {\n\treturn obj.__esModule || obj[Symbol.toStringTag] === \"Module\" || obj.default && isRouteComponent(obj.default);\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n\tconst newParams = {};\n\tfor (const key in params) {\n\t\tconst value = params[key];\n\t\tnewParams[key] = isArray(value) ? value.map(fn) : fn(value);\n\t}\n\treturn newParams;\n}\nconst noop = () => {};\n/**\n* Typesafe alternative to Array.isArray\n* https://github.com/microsoft/TypeScript/pull/48228\n*\n* @internal\n*/\nconst isArray = Array.isArray;\nfunction mergeOptions(defaults, partialOptions) {\n\tconst options = {};\n\tfor (const key in defaults) options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n\treturn options;\n}\n//#endregion\n//#region src/errors.ts\nconst NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== \"production\" ? \"navigation failure\" : \"\");\n/**\n* Enumeration with all possible types for navigation failures. Can be passed to\n* {@link isNavigationFailure} to check for specific failures.\n*/\nlet NavigationFailureType = /* @__PURE__ */ function(NavigationFailureType) {\n\t/**\n\t* An aborted navigation is a navigation that failed because a navigation\n\t* guard returned `false` or called `next(false)`\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\n\t/**\n\t* A cancelled navigation is a navigation that failed because a more recent\n\t* navigation finished started (not necessarily finished).\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\n\t/**\n\t* A duplicated navigation is a navigation that failed because it was\n\t* initiated while already being at the exact same location.\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\n\treturn NavigationFailureType;\n}({});\nconst ErrorTypeMessages = {\n\t[1]({ location, currentLocation }) {\n\t\treturn `No match for\\n ${JSON.stringify(location)}${currentLocation ? \"\\nwhile being at\\n\" + JSON.stringify(currentLocation) : \"\"}`;\n\t},\n\t[2]({ from, to }) {\n\t\treturn `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n\t},\n\t[4]({ from, to }) {\n\t\treturn `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n\t},\n\t[8]({ from, to }) {\n\t\treturn `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n\t},\n\t[16]({ from, to: _to }) {\n\t\treturn `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n\t}\n};\n/**\n* Creates a typed NavigationFailure object.\n* @internal\n* @param type - NavigationFailureType\n* @param params - { from, to }\n*/\nfunction createRouterError(type, params) {\n\tif (process.env.NODE_ENV !== \"production\" || false) return assign(new Error(ErrorTypeMessages[type](params)), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n\telse return assign(/* @__PURE__ */ new Error(), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n}\nfunction isNavigationFailure(error, type) {\n\treturn error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type));\n}\nconst propertiesToLog = [\n\t\"params\",\n\t\"query\",\n\t\"hash\"\n];\nfunction stringifyRoute(to) {\n\tif (typeof to === \"string\") return to;\n\tif (to.path != null) return to.path;\n\tconst location = {};\n\tfor (const key of propertiesToLog) if (key in to) location[key] = to[key];\n\treturn JSON.stringify(location, null, 2);\n}\n//#endregion\n//#region src/injectionSymbols.ts\n/**\n* RouteRecord being rendered by the closest ancestor Router View. Used for\n* `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n* Location Matched\n*\n* @internal\n*/\nconst matchedRouteKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location matched\" : \"\");\n/**\n* Allows overriding the router view depth to control which component in\n* `matched` is rendered. rvd stands for Router View Depth\n*\n* @internal\n*/\nconst viewDepthKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view depth\" : \"\");\n/**\n* Allows overriding the router instance returned by `useRouter` in tests. r\n* stands for router\n*\n* @internal\n*/\nconst routerKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router\" : \"\");\n/**\n* Allows overriding the current route returned by `useRoute` in tests. rl\n* stands for route location\n*\n* @internal\n*/\nconst routeLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"route location\" : \"\");\n/**\n* Allows overriding the current route used by router-view. Internally this is\n* used when the `route` prop is passed.\n*\n* @internal\n*/\nconst routerViewLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location\" : \"\");\n//#endregion\n//#region src/useApi.ts\n/**\n* Returns the router instance. Equivalent to using `$router` inside\n* templates.\n*/\nfunction useRouter() {\n\treturn inject(routerKey);\n}\n/**\n* Returns the current route location. Equivalent to using `$route` inside\n* templates.\n*/\nfunction useRoute(_name) {\n\treturn inject(routeLocationKey);\n}\n//#endregion\nexport { mergeOptions as _, routerKey as a, NavigationFailureType as c, applyToParams as d, assign as f, isRouteComponent as g, isESModule as h, routeLocationKey as i, createRouterError as l, isArray as m, useRouter as n, routerViewLocationKey as o, identityFn as p, matchedRouteKey as r, viewDepthKey as s, useRoute as t, isNavigationFailure as u, noop as v, isBrowser as y };\n","/*!\n* vue-router v5.1.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { f as assign, g as isRouteComponent, h as isESModule, l as createRouterError, m as isArray, r as matchedRouteKey, y as isBrowser } from \"./useApi-s_02lHjl.js\";\nimport { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from \"vue\";\nimport { setupDevtoolsPlugin } from \"@vue/devtools-api\";\n//#region src/warning.ts\nfunction warn$1(msg) {\n\tconst args = Array.from(arguments).slice(1);\n\tconsole.warn.apply(console, [\"[Vue Router warn]: \" + msg].concat(args));\n}\n//#endregion\n//#region src/encoding.ts\n/**\n* Encoding Rules (␣ = Space)\n* - Path: ␣ \" < > # ? { }\n* - Query: ␣ \" < > # & =\n* - Hash: ␣ \" < > `\n*\n* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n* defines some extra characters to be encoded. Most browsers do not encode them\n* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n* plus `-._~`. This extra safety should be applied to query by patching the\n* string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n* into a `/` if directly typed in. The _backtick_ (`````) should also be\n* encoded everywhere because some browsers like FF encode it when directly\n* written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n*/\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\n/**\n* NOTE: It's not clear to me if we should encode the + symbol in queries, it\n* seems to be less flexible than not doing so and I can't find out the legacy\n* systems requiring this for regular requests like text/html. In the standard,\n* the encoding of the plus character is only mentioned for\n* application/x-www-form-urlencoded\n* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n* leave the plus character as is in queries. To be more flexible, we allow the\n* plus character on the query, but it can also be manually encoded by the user.\n*\n* Resources:\n* - https://url.spec.whatwg.org/#urlencoded-parsing\n* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n*/\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\n/**\n* Encode characters that need to be encoded on the path, search and hash\n* sections of the URL.\n*\n* @internal\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction commonEncode(text) {\n\treturn text == null ? \"\" : encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\n/**\n* Encode characters that need to be encoded on the hash section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeHash(text) {\n\treturn commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Encode characters that need to be encoded query values on the query\n* section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeQueryValue(text) {\n\treturn commonEncode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Like `encodeQueryValue` but also encodes the `=` character.\n*\n* @param text - string to encode\n*/\nfunction encodeQueryKey(text) {\n\treturn encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodePath(text) {\n\treturn commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL as a\n* param. This function encodes everything {@link encodePath} does plus the\n* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n* string instead.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeParam(text) {\n\treturn encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n\tif (text == null) return null;\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Error decoding \"${text}\". Using original value`);\n\t}\n\treturn \"\" + text;\n}\n//#endregion\n//#region src/location.ts\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\n/**\n* Transforms a URI into a normalized history location\n*\n* @param parseQuery\n* @param location - URI to normalize\n* @param currentLocation - current absolute location. Allows resolving relative\n* paths. Must start with `/`. Defaults to `/`\n* @returns a normalized history location\n*/\nfunction parseURL(parseQuery, location, currentLocation = \"/\") {\n\tlet path, query = {}, searchString = \"\", hash = \"\";\n\tconst hashPos = location.indexOf(\"#\");\n\tlet searchPos = location.indexOf(\"?\");\n\tsearchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;\n\tif (searchPos >= 0) {\n\t\tpath = location.slice(0, searchPos);\n\t\tsearchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length);\n\t\tquery = parseQuery(searchString.slice(1));\n\t}\n\tif (hashPos >= 0) {\n\t\tpath = path || location.slice(0, hashPos);\n\t\thash = location.slice(hashPos, location.length);\n\t}\n\tpath = resolveRelativePath(path != null ? path : location, currentLocation);\n\treturn {\n\t\tfullPath: path + searchString + hash,\n\t\tpath,\n\t\tquery,\n\t\thash: decode(hash)\n\t};\n}\nfunction NEW_stringifyURL(stringifyQuery, path, query, hash = \"\") {\n\tconst searchText = stringifyQuery(query);\n\treturn path + (searchText && \"?\") + searchText + encodeHash(hash);\n}\n/**\n* Stringifies a URL object\n*\n* @param stringifyQuery\n* @param location\n*/\nfunction stringifyURL(stringifyQuery, location) {\n\tconst query = location.query ? stringifyQuery(location.query) : \"\";\n\treturn location.path + (query && \"?\") + query + (location.hash || \"\");\n}\n/**\n* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n*\n* @param pathname - location.pathname\n* @param base - base to strip off\n*/\nfunction stripBase(pathname, base) {\n\tif (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname;\n\treturn pathname.slice(base.length) || \"/\";\n}\n/**\n* Checks if two RouteLocation are equal. This means that both locations are\n* pointing towards the same {@link RouteRecord} and that all `params`, `query`\n* parameters and `hash` are the same\n*\n* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n* @param a - first {@link RouteLocation}\n* @param b - second {@link RouteLocation}\n*/\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n\tconst aLastIndex = a.matched.length - 1;\n\tconst bLastIndex = b.matched.length - 1;\n\treturn aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery(a.query) === stringifyQuery(b.query) && a.hash === b.hash;\n}\n/**\n* Check if two `RouteRecords` are equal. Takes into account aliases: they are\n* considered equal to the `RouteRecord` they are aliasing.\n*\n* @param a - first {@link RouteRecord}\n* @param b - second {@link RouteRecord}\n*/\nfunction isSameRouteRecord(a, b) {\n\treturn (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (var key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;\n\treturn true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n\treturn isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : (a && a.valueOf()) === (b && b.valueOf());\n}\n/**\n* Check if two arrays are the same or if an array with one single entry is the\n* same as another primitive value. Used to check query and parameters\n*\n* @param a - array of values\n* @param b - array of values or a single value\n*/\nfunction isEquivalentArray(a, b) {\n\treturn isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\n/**\n* Resolves a relative path that starts with `.`.\n*\n* @param to - path location we are resolving\n* @param from - currentLocation.path, should start with `/`\n*/\nfunction resolveRelativePath(to, from) {\n\tif (to.startsWith(\"/\")) return to;\n\tif (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n\t\twarn$1(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n\t\treturn to;\n\t}\n\tif (!to) return from;\n\tconst fromSegments = from.split(\"/\");\n\tconst toSegments = to.split(\"/\");\n\tconst lastToSegment = toSegments[toSegments.length - 1];\n\tif (lastToSegment === \"..\" || lastToSegment === \".\") toSegments.push(\"\");\n\tlet position = fromSegments.length - 1;\n\tlet toPosition;\n\tlet segment;\n\tfor (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n\t\tsegment = toSegments[toPosition];\n\t\tif (segment === \".\") continue;\n\t\tif (segment === \"..\") {\n\t\t\tif (position > 1) position--;\n\t\t} else break;\n\t}\n\treturn fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition).join(\"/\");\n}\n/**\n* Initial route location where the router is. Can be used in navigation guards\n* to differentiate the initial navigation.\n*\n* @example\n* ```js\n* import { START_LOCATION } from 'vue-router'\n*\n* router.beforeEach((to, from) => {\n* if (from === START_LOCATION) {\n* // initial navigation\n* }\n* })\n* ```\n*/\nconst START_LOCATION_NORMALIZED = {\n\tpath: \"/\",\n\tname: void 0,\n\tparams: {},\n\tquery: {},\n\thash: \"\",\n\tfullPath: \"/\",\n\tmatched: [],\n\tmeta: {},\n\tredirectedFrom: void 0\n};\n//#endregion\n//#region src/history/common.ts\n/**\n* Normalizes a base by removing any trailing slash and reading the base tag if\n* present.\n*\n* @param base - base to normalize\n*/\nfunction normalizeBase(base) {\n\tif (!base) if (isBrowser) {\n\t\tconst baseEl = document.querySelector(\"base\");\n\t\tbase = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n\t\tbase = base.replace(/^\\w+:\\/\\/[^/]+/, \"\");\n\t} else base = \"/\";\n\tif (base[0] !== \"/\" && base[0] !== \"#\") base = \"/\" + base;\n\treturn removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n\treturn base.replace(BEFORE_HASH_RE, \"#\") + location;\n}\n//#endregion\n//#region src/scrollBehavior.ts\nfunction getElementPosition(el, offset) {\n\tconst docRect = document.documentElement.getBoundingClientRect();\n\tconst elRect = el.getBoundingClientRect();\n\treturn {\n\t\tbehavior: offset.behavior,\n\t\tleft: elRect.left - docRect.left - (offset.left || 0),\n\t\ttop: elRect.top - docRect.top - (offset.top || 0)\n\t};\n}\nconst computeScrollPosition = () => ({\n\tleft: window.scrollX,\n\ttop: window.scrollY\n});\nfunction scrollToPosition(position) {\n\tlet scrollToOptions;\n\tif (\"el\" in position) {\n\t\tconst positionEl = position.el;\n\t\tconst isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n\t\t/**\n\t\t* `id`s can accept pretty much any characters, including CSS combinators\n\t\t* like `>` or `~`. It's still possible to retrieve elements using\n\t\t* `document.getElementById('~')` but it needs to be escaped when using\n\t\t* `document.querySelector('#\\\\~')` for it to be valid. The only\n\t\t* requirements for `id`s are them to be unique on the page and to not be\n\t\t* empty (`id=\"\"`). Because of that, when passing an id selector, it should\n\t\t* be properly escaped for it to work with `querySelector`. We could check\n\t\t* for the id selector to be simple (no CSS combinators `+ >~`) but that\n\t\t* would make things inconsistent since they are valid characters for an\n\t\t* `id` but would need to be escaped when using `querySelector`, breaking\n\t\t* their usage and ending up in no selector returned. Selectors need to be\n\t\t* escaped:\n\t\t*\n\t\t* - `#1-thing` becomes `#\\31 -thing`\n\t\t* - `#with~symbols` becomes `#with\\\\~symbols`\n\t\t*\n\t\t* - More information about the topic can be found at\n\t\t* https://mathiasbynens.be/notes/html5-id-class.\n\t\t* - Practical example: https://mathiasbynens.be/demo/html5-id\n\t\t*/\n\t\tif (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n\t\t\tif (!isIdSelector || !document.getElementById(position.el.slice(1))) try {\n\t\t\t\tconst foundEl = document.querySelector(position.el);\n\t\t\t\tif (isIdSelector && foundEl) {\n\t\t\t\t\twarn$1(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\twarn$1(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n\t\tif (!el) {\n\t\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n\t\t\treturn;\n\t\t}\n\t\tscrollToOptions = getElementPosition(el, position);\n\t} else scrollToOptions = position;\n\tif (\"scrollBehavior\" in document.documentElement.style) window.scrollTo(scrollToOptions);\n\telse window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n}\nfunction getScrollKey(path, delta) {\n\treturn (history.state ? history.state.position - delta : -1) + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n\tscrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n\tconst scroll = scrollPositions.get(key);\n\tscrollPositions.delete(key);\n\treturn scroll;\n}\n/**\n* ScrollBehavior instance used by the router to compute and restore the scroll\n* position when navigating.\n*/\n//#endregion\n//#region src/types/typeGuards.ts\nfunction isRouteLocation(route) {\n\treturn typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n\treturn typeof name === \"string\" || typeof name === \"symbol\";\n}\n//#endregion\n//#region src/query.ts\n/**\n* Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n* version with the leading `?` and without Should work as URLSearchParams\n\n* @internal\n*\n* @param search - search string to parse\n* @returns a query object\n*/\nfunction parseQuery(search) {\n\tconst query = {};\n\tif (search === \"\" || search === \"?\") return query;\n\tconst searchParams = (search[0] === \"?\" ? search.slice(1) : search).split(\"&\");\n\tfor (let i = 0; i < searchParams.length; ++i) {\n\t\tconst searchParam = searchParams[i].replace(PLUS_RE, \" \");\n\t\tconst eqPos = searchParam.indexOf(\"=\");\n\t\tconst key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n\t\tconst value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n\t\tif (key in query) {\n\t\t\tlet currentValue = query[key];\n\t\t\tif (!isArray(currentValue)) currentValue = query[key] = [currentValue];\n\t\t\tcurrentValue.push(value);\n\t\t} else query[key] = value;\n\t}\n\treturn query;\n}\n/**\n* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n* doesn't prepend a `?`\n*\n* @internal\n*\n* @param query - query object to stringify\n* @returns string version of the query without the leading `?`\n*/\nfunction stringifyQuery(query) {\n\tlet search = \"\";\n\tfor (let key in query) {\n\t\tconst value = query[key];\n\t\tkey = encodeQueryKey(key);\n\t\tif (value == null) {\n\t\t\tif (value !== void 0) search += (search.length ? \"&\" : \"\") + key;\n\t\t\tcontinue;\n\t\t}\n\t\t(isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value) => {\n\t\t\tif (value !== void 0) {\n\t\t\t\tsearch += (search.length ? \"&\" : \"\") + key;\n\t\t\t\tif (value != null) search += \"=\" + value;\n\t\t\t}\n\t\t});\n\t}\n\treturn search;\n}\n/**\n* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n* numbers into strings, removing keys with an undefined value and replacing\n* undefined with null in arrays\n*\n* @param query - query object to normalize\n* @returns a normalized query object\n*/\nfunction normalizeQuery(query) {\n\tconst normalizedQuery = {};\n\tfor (const key in query) {\n\t\tconst value = query[key];\n\t\tif (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n\t}\n\treturn normalizedQuery;\n}\n//#endregion\n//#region src/utils/callbacks.ts\n/**\n* Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n*/\nfunction useCallbacks() {\n\tlet handlers = [];\n\tfunction add(handler) {\n\t\thandlers.push(handler);\n\t\treturn () => {\n\t\t\tconst i = handlers.indexOf(handler);\n\t\t\tif (i > -1) handlers.splice(i, 1);\n\t\t};\n\t}\n\tfunction reset() {\n\t\thandlers = [];\n\t}\n\treturn {\n\t\tadd,\n\t\tlist: () => handlers.slice(),\n\t\treset\n\t};\n}\n//#endregion\n//#region src/navigationGuards.ts\nfunction registerGuard(activeRecordRef, name, guard) {\n\tconst record = activeRecordRef.value;\n\tif (!record) {\n\t\tif (process.env.NODE_ENV !== \"production\") warn$1(`No active route record was found when calling \\`${name === \"updateGuards\" ? \"onBeforeRouteUpdate\" : \"onBeforeRouteLeave\"}()\\`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?`);\n\t\treturn;\n\t}\n\tlet currentRecord = record;\n\tconst removeFromList = () => {\n\t\tcurrentRecord[name].delete(guard);\n\t};\n\tonUnmounted(removeFromList);\n\tonDeactivated(removeFromList);\n\tonActivated(() => {\n\t\tconst newRecord = activeRecordRef.value;\n\t\tif (process.env.NODE_ENV !== \"production\" && !newRecord) warn$1(\"No active route record was found when reactivating component with navigation guard. This is likely a bug in vue-router. Please report it.\");\n\t\tif (newRecord) currentRecord = newRecord;\n\t\tcurrentRecord[name].add(guard);\n\t});\n\tcurrentRecord[name].add(guard);\n}\n/**\n* Add a navigation guard that triggers whenever the component for the current\n* location is about to be left. Similar to {@link beforeRouteLeave} but can be\n* used in any component. The guard is removed when the component is unmounted.\n*\n* @param leaveGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteLeave(leaveGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"leaveGuards\", leaveGuard);\n}\n/**\n* Add a navigation guard that triggers whenever the current location is about\n* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n* component. The guard is removed when the component is unmounted.\n*\n* @param updateGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteUpdate(updateGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"updateGuards\", updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {\n\tconst enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n\treturn () => new Promise((resolve, reject) => {\n\t\tconst next = (valid) => {\n\t\t\tif (valid === false) reject(createRouterError(4, {\n\t\t\t\tfrom,\n\t\t\t\tto\n\t\t\t}));\n\t\t\telse if (valid instanceof Error) reject(valid);\n\t\t\telse if (isRouteLocation(valid)) reject(createRouterError(2, {\n\t\t\t\tfrom: to,\n\t\t\t\tto: valid\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tif (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") enterCallbackArray.push(valid);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tconst guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? withDeprecationWarning(canOnlyBeCalledOnce(next, to, from)) : next));\n\t\tlet guardCall = Promise.resolve(guardReturn);\n\t\tif (guard.length < 3) guardCall = guardCall.then(next);\n\t\tif (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n\t\t\tconst message = `The \"next\" callback was never called inside of ${guard.name ? \"\\\"\" + guard.name + \"\\\"\" : \"\"}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n\t\t\tif (typeof guardReturn === \"object\" && \"then\" in guardReturn) guardCall = guardCall.then((resolvedValue) => {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t}\n\t\t\t\treturn resolvedValue;\n\t\t\t});\n\t\t\telse if (guardReturn !== void 0) {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tguardCall.catch((err) => reject(err));\n\t});\n}\n/**\n* Wraps the next callback to warn when it is used. Dev-only: when __DEV__ is\n* false (production builds), this branch is dead code and is stripped from the\n* bundle.\n*\n* @internal\n*/\nfunction withDeprecationWarning(next) {\n\tlet warned = false;\n\treturn function() {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\twarn$1(\"The `next()` callback in navigation guards is deprecated. Return the value instead of calling `next(value)`.\");\n\t\t}\n\t\treturn next.apply(this, arguments);\n\t};\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n\tlet called = 0;\n\treturn function() {\n\t\tif (called++ === 1) warn$1(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n\t\tnext._called = true;\n\t\tif (called === 1) next.apply(null, arguments);\n\t};\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {\n\tconst guards = [];\n\tfor (const record of matched) {\n\t\tif (process.env.NODE_ENV !== \"production\" && !record.components && record.children && !record.children.length) warn$1(`Record with path \"${record.path}\" is either missing a \"component(s)\" or \"children\" property.`);\n\t\tfor (const name in record.components) {\n\t\t\tlet rawComponent = record.components[name];\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is not a valid component. Received \"${String(rawComponent)}\".`);\n\t\t\t\t\tthrow new Error(\"Invalid route component\");\n\t\t\t\t} else if (\"then\" in rawComponent) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a Promise instead of a function that returns a Promise. Did you write \"import('./MyPage.vue')\" instead of \"() => import('./MyPage.vue')\" ? This will break in production if not fixed.`);\n\t\t\t\t\tconst promise = rawComponent;\n\t\t\t\t\trawComponent = () => promise;\n\t\t\t\t} else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) {\n\t\t\t\t\trawComponent.__warnedDefineAsync = true;\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is defined using \"defineAsyncComponent()\". Write \"() => import('./MyPage.vue')\" instead of \"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (guardType !== \"beforeRouteEnter\" && !record.instances[name]) continue;\n\t\t\tif (isRouteComponent(rawComponent)) {\n\t\t\t\tconst guard = (rawComponent.__vccOpts || rawComponent)[guardType];\n\t\t\t\tguard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n\t\t\t} else {\n\t\t\t\tlet componentPromise = rawComponent();\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n\t\t\t\t\tcomponentPromise = Promise.resolve(componentPromise);\n\t\t\t\t}\n\t\t\t\tguards.push(() => componentPromise.then((resolved) => {\n\t\t\t\t\tif (!resolved) throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n\t\t\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\t\t\trecord.mods[name] = resolved;\n\t\t\t\t\trecord.components[name] = resolvedComponent;\n\t\t\t\t\tconst guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];\n\t\t\t\t\treturn guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\treturn guards;\n}\n/**\n* Ensures a route is loaded, so it can be passed as o prop to ``.\n*\n* @param route - resolved route to load\n*/\nfunction loadRouteLocation(route) {\n\treturn route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error(\"Cannot load a route that redirects.\")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => {\n\t\tconst rawComponent = record.components[name];\n\t\tif (typeof rawComponent === \"function\" && !(\"displayName\" in rawComponent)) promises.push(rawComponent().then((resolved) => {\n\t\t\tif (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\trecord.mods[name] = resolved;\n\t\t\trecord.components[name] = resolvedComponent;\n\t\t}));\n\t\treturn promises;\n\t}, [])))).then(() => route);\n}\n/**\n* Split the leaving, updating, and entering records.\n* @internal\n*\n* @param to - Location we are navigating to\n* @param from - Location we are navigating from\n*/\nfunction extractChangingRecords(to, from) {\n\tconst leavingRecords = [];\n\tconst updatingRecords = [];\n\tconst enteringRecords = [];\n\tconst len = Math.max(from.matched.length, to.matched.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tconst recordFrom = from.matched[i];\n\t\tif (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);\n\t\telse leavingRecords.push(recordFrom);\n\t\tconst recordTo = to.matched[i];\n\t\tif (recordTo) {\n\t\t\tif (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);\n\t\t}\n\t}\n\treturn [\n\t\tleavingRecords,\n\t\tupdatingRecords,\n\t\tenteringRecords\n\t];\n}\n//#endregion\n//#region src/devtools.ts\n/**\n* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n*\n* @param routeLocation - routeLocation to format\n* @param tooltip - optional tooltip\n* @returns a copy of the routeLocation\n*/\nfunction formatRouteLocation(routeLocation, tooltip) {\n\tconst copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [\n\t\t\"instances\",\n\t\t\"children\",\n\t\t\"aliasOf\"\n\t])) });\n\treturn { _custom: {\n\t\ttype: null,\n\t\treadOnly: true,\n\t\tdisplay: routeLocation.fullPath,\n\t\ttooltip,\n\t\tvalue: copy\n\t} };\n}\nfunction formatDisplay(display) {\n\treturn { _custom: { display } };\n}\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n\tif (router.__hasDevtools) return;\n\trouter.__hasDevtools = true;\n\tconst id = routerId++;\n\tsetupDevtoolsPlugin({\n\t\tid: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n\t\tlabel: \"Vue Router\",\n\t\tpackageName: \"vue-router\",\n\t\thomepage: \"https://router.vuejs.org\",\n\t\tlogo: \"https://router.vuejs.org/logo.png\",\n\t\tcomponentStateTypes: [\"Routing\"],\n\t\tapp\n\t}, (api) => {\n\t\tapi.on.inspectComponent((payload) => {\n\t\t\tif (payload.instanceData) payload.instanceData.state.push({\n\t\t\t\ttype: \"Routing\",\n\t\t\t\tkey: \"$route\",\n\t\t\t\teditable: false,\n\t\t\t\tvalue: formatRouteLocation(router.currentRoute.value, \"Current Route\")\n\t\t\t});\n\t\t});\n\t\tapi.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n\t\t\tif (componentInstance.__vrv_devtools) {\n\t\t\t\tconst info = componentInstance.__vrv_devtools;\n\t\t\t\tnode.tags.push({\n\t\t\t\t\tlabel: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n\t\t\t\t\ttextColor: 0,\n\t\t\t\t\ttooltip: \"This component is rendered by <router-view>\",\n\t\t\t\t\tbackgroundColor: PINK_500\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (isArray(componentInstance.__vrl_devtools)) {\n\t\t\t\tcomponentInstance.__devtoolsApi = api;\n\t\t\t\tcomponentInstance.__vrl_devtools.forEach((devtoolsData) => {\n\t\t\t\t\tlet label = devtoolsData.route.path;\n\t\t\t\t\tlet backgroundColor = ORANGE_400;\n\t\t\t\t\tlet tooltip = \"\";\n\t\t\t\t\tlet textColor = 0;\n\t\t\t\t\tif (devtoolsData.error) {\n\t\t\t\t\t\tlabel = devtoolsData.error;\n\t\t\t\t\t\tbackgroundColor = RED_100;\n\t\t\t\t\t\ttextColor = RED_700;\n\t\t\t\t\t} else if (devtoolsData.isExactActive) {\n\t\t\t\t\t\tbackgroundColor = LIME_500;\n\t\t\t\t\t\ttooltip = \"This is exactly active\";\n\t\t\t\t\t} else if (devtoolsData.isActive) {\n\t\t\t\t\t\tbackgroundColor = BLUE_600;\n\t\t\t\t\t\ttooltip = \"This link is active\";\n\t\t\t\t\t}\n\t\t\t\t\tnode.tags.push({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\tbackgroundColor\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\twatch(router.currentRoute, () => {\n\t\t\trefreshRoutesView();\n\t\t\tapi.notifyComponentUpdate();\n\t\t\tapi.sendInspectorTree(routerInspectorId);\n\t\t\tapi.sendInspectorState(routerInspectorId);\n\t\t});\n\t\tconst navigationsLayerId = \"router:navigations:\" + id;\n\t\tapi.addTimelineLayer({\n\t\t\tid: navigationsLayerId,\n\t\t\tlabel: `Router${id ? \" \" + id : \"\"} Navigations`,\n\t\t\tcolor: 4237508\n\t\t});\n\t\trouter.onError((error, to) => {\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"Error during Navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tlogType: \"error\",\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata: { error },\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tlet navigationId = 0;\n\t\trouter.beforeEach((to, from) => {\n\t\t\tconst data = {\n\t\t\t\tguard: formatDisplay(\"beforeEach\"),\n\t\t\t\tfrom: formatRouteLocation(from, \"Current Location during this navigation\"),\n\t\t\t\tto: formatRouteLocation(to, \"Target location\")\n\t\t\t};\n\t\t\tObject.defineProperty(to.meta, \"__navigationId\", { value: navigationId++ });\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\ttitle: \"Start of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tdata,\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\trouter.afterEach((to, from, failure) => {\n\t\t\tconst data = { guard: formatDisplay(\"afterEach\") };\n\t\t\tif (failure) {\n\t\t\t\tdata.failure = { _custom: {\n\t\t\t\t\ttype: Error,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tdisplay: failure ? failure.message : \"\",\n\t\t\t\t\ttooltip: \"Navigation Failure\",\n\t\t\t\t\tvalue: failure\n\t\t\t\t} };\n\t\t\t\tdata.status = formatDisplay(\"❌\");\n\t\t\t} else data.status = formatDisplay(\"✅\");\n\t\t\tdata.from = formatRouteLocation(from, \"Current Location during this navigation\");\n\t\t\tdata.to = formatRouteLocation(to, \"Target location\");\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"End of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata,\n\t\t\t\t\tlogType: failure ? \"warning\" : \"default\",\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t/**\n\t\t* Inspector of Existing routes\n\t\t*/\n\t\tconst routerInspectorId = \"router-inspector:\" + id;\n\t\tapi.addInspector({\n\t\t\tid: routerInspectorId,\n\t\t\tlabel: \"Routes\" + (id ? \" \" + id : \"\"),\n\t\t\ticon: \"book\",\n\t\t\ttreeFilterPlaceholder: \"Search routes\"\n\t\t});\n\t\tfunction refreshRoutesView() {\n\t\t\tif (!activeRoutesPayload) return;\n\t\t\tconst payload = activeRoutesPayload;\n\t\t\tlet routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components);\n\t\t\troutes.forEach(resetMatchStateOnRouteRecord);\n\t\t\tif (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase()));\n\t\t\troutes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value));\n\t\t\tpayload.rootNodes = routes.map(formatRouteRecordForInspector);\n\t\t}\n\t\tlet activeRoutesPayload;\n\t\tapi.on.getInspectorTree((payload) => {\n\t\t\tactiveRoutesPayload = payload;\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView();\n\t\t});\n\t\t/**\n\t\t* Display information about the currently selected route record\n\t\t*/\n\t\tapi.on.getInspectorState((payload) => {\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) {\n\t\t\t\tconst route = matcher.getRoutes().find((route) => route.record.__vd_id === payload.nodeId);\n\t\t\t\tif (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) };\n\t\t\t}\n\t\t});\n\t\tapi.sendInspectorTree(routerInspectorId);\n\t\tapi.sendInspectorState(routerInspectorId);\n\t});\n}\nfunction modifierForKey(key) {\n\tif (key.optional) return key.repeatable ? \"*\" : \"?\";\n\telse return key.repeatable ? \"+\" : \"\";\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n\tconst { record } = route;\n\tconst fields = [{\n\t\teditable: false,\n\t\tkey: \"path\",\n\t\tvalue: record.path\n\t}];\n\tif (record.name != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"name\",\n\t\tvalue: record.name\n\t});\n\tfields.push({\n\t\teditable: false,\n\t\tkey: \"regexp\",\n\t\tvalue: route.re\n\t});\n\tif (route.keys.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"keys\",\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n\t\t\ttooltip: \"Param keys\",\n\t\t\tvalue: route.keys\n\t\t} }\n\t});\n\tif (record.redirect != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"redirect\",\n\t\tvalue: record.redirect\n\t});\n\tif (route.alias.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"aliases\",\n\t\tvalue: route.alias.map((alias) => alias.record.path)\n\t});\n\tif (Object.keys(route.record.meta).length) fields.push({\n\t\teditable: false,\n\t\tkey: \"meta\",\n\t\tvalue: route.record.meta\n\t});\n\tfields.push({\n\t\tkey: \"score\",\n\t\teditable: false,\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.score.map((score) => score.join(\", \")).join(\" | \"),\n\t\t\ttooltip: \"Score used to sort routes\",\n\t\t\tvalue: route.score\n\t\t} }\n\t});\n\treturn fields;\n}\n/**\n* Extracted from tailwind palette\n*/\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nconst RED_100 = 16704226;\nconst RED_700 = 12131356;\nfunction formatRouteRecordForInspector(route) {\n\tconst tags = [];\n\tconst { record } = route;\n\tif (record.name != null) tags.push({\n\t\tlabel: String(record.name),\n\t\ttextColor: 0,\n\t\tbackgroundColor: CYAN_400\n\t});\n\tif (record.aliasOf) tags.push({\n\t\tlabel: \"alias\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: ORANGE_400\n\t});\n\tif (route.__vd_match) tags.push({\n\t\tlabel: \"matches\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: PINK_500\n\t});\n\tif (route.__vd_exactActive) tags.push({\n\t\tlabel: \"exact\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: LIME_500\n\t});\n\tif (route.__vd_active) tags.push({\n\t\tlabel: \"active\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: BLUE_600\n\t});\n\tif (record.redirect) tags.push({\n\t\tlabel: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n\t\ttextColor: 16777215,\n\t\tbackgroundColor: DARK\n\t});\n\tlet id = record.__vd_id;\n\tif (id == null) {\n\t\tid = String(routeRecordId++);\n\t\trecord.__vd_id = id;\n\t}\n\treturn {\n\t\tid,\n\t\tlabel: record.path,\n\t\ttags,\n\t\tchildren: route.children.map(formatRouteRecordForInspector)\n\t};\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n\tconst isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n\troute.__vd_exactActive = route.__vd_active = isExactActive;\n\tif (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n\troute.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n\troute.__vd_match = false;\n\troute.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n\tconst found = String(route.re).match(EXTRACT_REGEXP_RE);\n\troute.__vd_match = false;\n\tif (!found || found.length < 3) return false;\n\tif (new RegExp(found[1].replace(/\\$$/, \"\"), found[2]).test(filter)) {\n\t\troute.children.forEach((child) => isRouteMatching(child, filter));\n\t\tif (route.record.path !== \"/\" || filter === \"/\") {\n\t\t\troute.__vd_match = route.re.test(filter);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst path = route.record.path.toLowerCase();\n\tconst decodedPath = decode(path);\n\tif (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter))) return true;\n\tif (decodedPath.startsWith(filter) || path.startsWith(filter)) return true;\n\tif (route.record.name && String(route.record.name).includes(filter)) return true;\n\treturn route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n\tconst ret = {};\n\tfor (const key in obj) if (!keys.includes(key)) ret[key] = obj[key];\n\treturn ret;\n}\n//#endregion\nexport { PLUS_RE as A, isSameRouteLocation as C, resolveRelativePath as D, parseURL as E, warn$1 as F, encodeHash as M, encodeParam as N, stringifyURL as O, encodePath as P, START_LOCATION_NORMALIZED as S, isSameRouteRecord as T, saveScrollPosition as _, loadRouteLocation as a, normalizeBase as b, useCallbacks as c, stringifyQuery as d, isRouteLocation as f, getScrollKey as g, getSavedScrollPosition as h, guardToPromiseFn as i, decode as j, stripBase as k, normalizeQuery as l, computeScrollPosition as m, extractChangingRecords as n, onBeforeRouteLeave as o, isRouteName as p, extractComponentsGuards as r, onBeforeRouteUpdate as s, addDevtools as t, parseQuery as u, scrollToPosition as v, isSameRouteLocationParams as w, NEW_stringifyURL as x, createHref as y };\n","/*!\n* vue-router v5.1.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { _ as mergeOptions, a as routerKey, c as NavigationFailureType, d as applyToParams, f as assign, i as routeLocationKey, l as createRouterError, m as isArray, n as useRouter, o as routerViewLocationKey, r as matchedRouteKey, s as viewDepthKey, t as useRoute, u as isNavigationFailure, v as noop, y as isBrowser } from \"./useApi-s_02lHjl.js\";\nimport { C as isSameRouteLocation, E as parseURL, F as warn$1, M as encodeHash, N as encodeParam, O as stringifyURL, S as START_LOCATION_NORMALIZED, T as isSameRouteRecord, _ as saveScrollPosition, a as loadRouteLocation, b as normalizeBase, c as useCallbacks, d as stringifyQuery, f as isRouteLocation, g as getScrollKey, h as getSavedScrollPosition, i as guardToPromiseFn, j as decode, k as stripBase, l as normalizeQuery, m as computeScrollPosition, n as extractChangingRecords, o as onBeforeRouteLeave, p as isRouteName, r as extractComponentsGuards, s as onBeforeRouteUpdate, t as addDevtools, u as parseQuery, v as scrollToPosition, w as isSameRouteLocationParams, y as createHref } from \"./devtools-DCoWQoU_.js\";\nimport { computed, defineComponent, getCurrentInstance, h, inject, nextTick, provide, reactive, ref, shallowReactive, shallowRef, unref, watch, watchEffect } from \"vue\";\n//#region src/history/html5.ts\nlet createBaseLocation = () => location.protocol + \"//\" + location.host;\n/**\n* Creates a normalized history location from a window.location object\n* @param base - The base path\n* @param location - The window.location object\n*/\nfunction createCurrentLocation(base, location) {\n\tconst { pathname, search, hash } = location;\n\tconst hashPos = base.indexOf(\"#\");\n\tif (hashPos > -1) {\n\t\tlet slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n\t\tlet pathFromHash = hash.slice(slicePos);\n\t\tif (pathFromHash[0] !== \"/\") pathFromHash = \"/\" + pathFromHash;\n\t\treturn stripBase(pathFromHash, \"\");\n\t}\n\treturn stripBase(pathname, base) + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n\tlet listeners = [];\n\tlet teardowns = [];\n\tlet pauseState = null;\n\tconst popStateHandler = ({ state }) => {\n\t\tconst to = createCurrentLocation(base, location);\n\t\tconst from = currentLocation.value;\n\t\tconst fromState = historyState.value;\n\t\tlet delta = 0;\n\t\tif (state) {\n\t\t\tcurrentLocation.value = to;\n\t\t\thistoryState.value = state;\n\t\t\tif (pauseState && pauseState === from) {\n\t\t\t\tpauseState = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdelta = fromState ? state.position - fromState.position : 0;\n\t\t} else replace(to);\n\t\tlisteners.forEach((listener) => {\n\t\t\tlistener(currentLocation.value, from, {\n\t\t\t\tdelta,\n\t\t\t\ttype: \"pop\",\n\t\t\t\tdirection: delta ? delta > 0 ? \"forward\" : \"back\" : \"\"\n\t\t\t});\n\t\t});\n\t};\n\tfunction pauseListeners() {\n\t\tpauseState = currentLocation.value;\n\t}\n\tfunction listen(callback) {\n\t\tlisteners.push(callback);\n\t\tconst teardown = () => {\n\t\t\tconst index = listeners.indexOf(callback);\n\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t};\n\t\tteardowns.push(teardown);\n\t\treturn teardown;\n\t}\n\tfunction beforeUnloadListener() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tconst { history } = window;\n\t\t\tif (!history.state) return;\n\t\t\thistory.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), \"\");\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tfor (const teardown of teardowns) teardown();\n\t\tteardowns = [];\n\t\twindow.removeEventListener(\"popstate\", popStateHandler);\n\t\twindow.removeEventListener(\"pagehide\", beforeUnloadListener);\n\t\tdocument.removeEventListener(\"visibilitychange\", beforeUnloadListener);\n\t}\n\twindow.addEventListener(\"popstate\", popStateHandler);\n\twindow.addEventListener(\"pagehide\", beforeUnloadListener);\n\tdocument.addEventListener(\"visibilitychange\", beforeUnloadListener);\n\treturn {\n\t\tpauseListeners,\n\t\tlisten,\n\t\tdestroy\n\t};\n}\n/**\n* Creates a state object\n*/\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n\treturn {\n\t\tback,\n\t\tcurrent,\n\t\tforward,\n\t\treplaced,\n\t\tposition: window.history.length,\n\t\tscroll: computeScroll ? computeScrollPosition() : null\n\t};\n}\nfunction useHistoryStateNavigation(base) {\n\tconst { history, location } = window;\n\tconst currentLocation = { value: createCurrentLocation(base, location) };\n\tconst historyState = { value: history.state };\n\tif (!historyState.value) changeLocation(currentLocation.value, {\n\t\tback: null,\n\t\tcurrent: currentLocation.value,\n\t\tforward: null,\n\t\tposition: history.length - 1,\n\t\treplaced: true,\n\t\tscroll: null\n\t}, true);\n\tfunction changeLocation(to, state, replace) {\n\t\t/**\n\t\t* if a base tag is provided, and we are on a normal domain, we have to\n\t\t* respect the provided `base` attribute because pushState() will use it and\n\t\t* potentially erase anything before the `#` like at\n\t\t* https://github.com/vuejs/router/issues/685 where a base of\n\t\t* `/folder/#` but a base of `/` would erase the `/folder/` section. If\n\t\t* there is no host, the `` tag makes no sense and if there isn't a\n\t\t* base tag we can just use everything after the `#`.\n\t\t*/\n\t\tconst hashIndex = base.indexOf(\"#\");\n\t\tconst url = hashIndex > -1 ? (location.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n\t\ttry {\n\t\t\thistory[replace ? \"replaceState\" : \"pushState\"](state, \"\", url);\n\t\t\thistoryState.value = state;\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Error with push/replace State\", err);\n\t\t\telse console.error(err);\n\t\t\tlocation[replace ? \"replace\" : \"assign\"](url);\n\t\t}\n\t}\n\tfunction replace(to, data) {\n\t\tchangeLocation(to, assign({}, history.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);\n\t\tcurrentLocation.value = to;\n\t}\n\tfunction push(to, data) {\n\t\tconst currentState = assign({}, historyState.value, history.state, {\n\t\t\tforward: to,\n\t\t\tscroll: computeScrollPosition()\n\t\t});\n\t\tif (process.env.NODE_ENV !== \"production\" && !history.state) warn$1(\"history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\nhistory.replaceState(history.state, '', url)\\n\\nYou can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state\");\n\t\tchangeLocation(currentState.current, currentState, true);\n\t\tchangeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);\n\t\tcurrentLocation.value = to;\n\t}\n\treturn {\n\t\tlocation: currentLocation,\n\t\tstate: historyState,\n\t\tpush,\n\t\treplace\n\t};\n}\n/**\n* Creates an HTML5 history. Most common history for single page applications.\n*\n* @param base -\n*/\nfunction createWebHistory(base) {\n\tbase = normalizeBase(base);\n\tconst historyNavigation = useHistoryStateNavigation(base);\n\tconst historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n\tfunction go(delta, triggerListeners = true) {\n\t\tif (!triggerListeners) historyListeners.pauseListeners();\n\t\thistory.go(delta);\n\t}\n\tconst routerHistory = assign({\n\t\tlocation: \"\",\n\t\tbase,\n\t\tgo,\n\t\tcreateHref: createHref.bind(null, base)\n\t}, historyNavigation, historyListeners);\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.location.value\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.state.value\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/history/hash.ts\n/**\n* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n* handle any URL is not possible.\n*\n* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n* calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n* after the `#`).\n*\n* @example\n* ```js\n* // at https://example.com/folder\n* createWebHashHistory() // gives a url of `https://example.com/folder#`\n* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n* // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n* // you should avoid doing this because it changes the original url and breaks copying urls\n* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n*\n* // at file:///usr/etc/folder/index.html\n* // for locations with no `host`, the base is ignored\n* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n* ```\n*/\nfunction createWebHashHistory(base) {\n\tbase = location.host ? base || location.pathname + location.search : \"\";\n\tif (!base.includes(\"#\")) base += \"#\";\n\tif (process.env.NODE_ENV !== \"production\" && !base.endsWith(\"#/\") && !base.endsWith(\"#\")) warn$1(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, \"#\")}\".`);\n\treturn createWebHistory(base);\n}\n//#endregion\n//#region src/history/memory.ts\n/**\n* Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n*\n* @param base - Base applied to all urls, defaults to '/'\n* @returns a history object that can be passed to the router constructor\n*/\nfunction createMemoryHistory(base = \"\") {\n\tlet listeners = [];\n\tlet queue = [[\"\", {}]];\n\tlet position = 0;\n\tbase = normalizeBase(base);\n\tfunction setLocation(location, state = {}) {\n\t\tposition++;\n\t\tif (position !== queue.length) queue.splice(position);\n\t\tqueue.push([location, state]);\n\t}\n\tfunction triggerListeners(to, from, { direction, delta }) {\n\t\tconst info = {\n\t\t\tdirection,\n\t\t\tdelta,\n\t\t\ttype: \"pop\"\n\t\t};\n\t\tfor (const callback of listeners) callback(to, from, info);\n\t}\n\tconst routerHistory = {\n\t\tlocation: \"\",\n\t\tstate: {},\n\t\tbase,\n\t\tcreateHref: createHref.bind(null, base),\n\t\treplace(to, state) {\n\t\t\tqueue.splice(position--, 1);\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tpush(to, state) {\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tlisten(callback) {\n\t\t\tlisteners.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = listeners.indexOf(callback);\n\t\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t\t};\n\t\t},\n\t\tdestroy() {\n\t\t\tlisteners = [];\n\t\t\tqueue = [[\"\", {}]];\n\t\t\tposition = 0;\n\t\t},\n\t\tgo(delta, shouldTrigger = true) {\n\t\t\tconst from = this.location;\n\t\t\tconst direction = delta < 0 ? \"back\" : \"forward\";\n\t\t\tposition = Math.max(0, Math.min(position + delta, queue.length - 1));\n\t\t\tif (shouldTrigger) triggerListeners(this.location, from, {\n\t\t\t\tdirection,\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t};\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][0]\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][1]\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/matcher/pathTokenizer.ts\nconst ROOT_TOKEN = {\n\ttype: 0,\n\tvalue: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n\tif (!path) return [[]];\n\tif (path === \"/\") return [[ROOT_TOKEN]];\n\tif (!path.startsWith(\"/\")) throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n\tfunction crash(message) {\n\t\tthrow new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n\t}\n\tlet state = 0;\n\tlet previousState = state;\n\tconst tokens = [];\n\tlet segment;\n\tfunction finalizeSegment() {\n\t\tif (segment) tokens.push(segment);\n\t\tsegment = [];\n\t}\n\tlet i = 0;\n\tlet char;\n\tlet buffer = \"\";\n\tlet customRe = \"\";\n\tfunction consumeBuffer() {\n\t\tif (!buffer) return;\n\t\tif (state === 0) segment.push({\n\t\t\ttype: 0,\n\t\t\tvalue: buffer\n\t\t});\n\t\telse if (state === 1 || state === 2 || state === 3) {\n\t\t\tif (segment.length > 1 && (char === \"*\" || char === \"+\")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n\t\t\tsegment.push({\n\t\t\t\ttype: 1,\n\t\t\t\tvalue: buffer,\n\t\t\t\tregexp: customRe,\n\t\t\t\trepeatable: char === \"*\" || char === \"+\",\n\t\t\t\toptional: char === \"*\" || char === \"?\"\n\t\t\t});\n\t\t} else crash(\"Invalid state to consume buffer\");\n\t\tbuffer = \"\";\n\t}\n\tfunction addCharToBuffer() {\n\t\tbuffer += char;\n\t}\n\twhile (i < path.length) {\n\t\tchar = path[i++];\n\t\tswitch (state) {\n\t\t\tcase 0:\n\t\t\t\tif (char === \"\\\\\") {\n\t\t\t\t\tpreviousState = state;\n\t\t\t\t\tstate = 4;\n\t\t\t\t} else if (char === \"/\") {\n\t\t\t\t\tif (buffer) consumeBuffer();\n\t\t\t\t\tfinalizeSegment();\n\t\t\t\t} else if (char === \":\") {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 1;\n\t\t\t\t} else addCharToBuffer();\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\taddCharToBuffer();\n\t\t\t\tstate = previousState;\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tif (char === \"(\") state = 2;\n\t\t\t\telse if (VALID_PARAM_RE.test(char)) addCharToBuffer();\n\t\t\t\telse {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 0;\n\t\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tif (char === \")\") if (customRe[customRe.length - 1] == \"\\\\\") customRe = customRe.slice(0, -1) + char;\n\t\t\t\telse state = 3;\n\t\t\t\telse customRe += char;\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tconsumeBuffer();\n\t\t\t\tstate = 0;\n\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\tcustomRe = \"\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcrash(\"Unknown state\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tif (state === 2) crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n\tconsumeBuffer();\n\tfinalizeSegment();\n\treturn tokens;\n}\n//#endregion\n//#region src/matcher/pathParserRanker.ts\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n\tsensitive: false,\n\tstrict: false,\n\tstart: true,\n\tend: true\n};\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n* Creates a path parser from an array of Segments (a segment is an array of Tokens)\n*\n* @param segments - array of segments returned by tokenizePath\n* @param extraOptions - optional options for the regexp\n* @returns a PathParser\n*/\nfunction tokensToParser(segments, extraOptions) {\n\tconst options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n\tconst score = [];\n\tlet pattern = options.start ? \"^\" : \"\";\n\tconst keys = [];\n\tfor (const segment of segments) {\n\t\tconst segmentScores = segment.length ? [] : [90];\n\t\tif (options.strict && !segment.length) pattern += \"/\";\n\t\tfor (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n\t\t\tconst token = segment[tokenIndex];\n\t\t\tlet subSegmentScore = 40 + (options.sensitive ? .25 : 0);\n\t\t\tif (token.type === 0) {\n\t\t\t\tif (!tokenIndex) pattern += \"/\";\n\t\t\t\tpattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n\t\t\t\tsubSegmentScore += 40;\n\t\t\t} else if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional, regexp } = token;\n\t\t\t\tkeys.push({\n\t\t\t\t\tname: value,\n\t\t\t\t\trepeatable,\n\t\t\t\t\toptional\n\t\t\t\t});\n\t\t\t\tconst re = regexp ? regexp : BASE_PARAM_PATTERN;\n\t\t\t\tif (re !== BASE_PARAM_PATTERN) {\n\t\t\t\t\tsubSegmentScore += 10;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tnew RegExp(`(${re})`);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` + err.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n\t\t\t\tif (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n\t\t\t\tif (optional) subPattern += \"?\";\n\t\t\t\tpattern += subPattern;\n\t\t\t\tsubSegmentScore += 20;\n\t\t\t\tif (optional) subSegmentScore += -8;\n\t\t\t\tif (repeatable) subSegmentScore += -20;\n\t\t\t\tif (re === \".*\") subSegmentScore += -50;\n\t\t\t}\n\t\t\tsegmentScores.push(subSegmentScore);\n\t\t}\n\t\tscore.push(segmentScores);\n\t}\n\tif (options.strict && options.end) {\n\t\tconst i = score.length - 1;\n\t\tscore[i][score[i].length - 1] += .7000000000000001;\n\t}\n\tif (!options.strict) pattern += \"/?\";\n\tif (options.end) pattern += \"$\";\n\telse if (options.strict && !pattern.endsWith(\"/\")) pattern += \"(?:/|$)\";\n\tconst re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n\tfunction parse(path) {\n\t\tconst match = path.match(re);\n\t\tconst params = {};\n\t\tif (!match) return null;\n\t\tfor (let i = 1; i < match.length; i++) {\n\t\t\tconst value = match[i] || \"\";\n\t\t\tconst key = keys[i - 1];\n\t\t\tparams[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n\t\t}\n\t\treturn params;\n\t}\n\tfunction stringify(params) {\n\t\tlet path = \"\";\n\t\tlet avoidDuplicatedSlash = false;\n\t\tfor (const segment of segments) {\n\t\t\tif (!avoidDuplicatedSlash || !path.endsWith(\"/\")) path += \"/\";\n\t\t\tavoidDuplicatedSlash = false;\n\t\t\tfor (const token of segment) if (token.type === 0) path += token.value;\n\t\t\telse if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional } = token;\n\t\t\t\tconst param = value in params ? params[value] : \"\";\n\t\t\t\tif (isArray(param) && !repeatable) throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n\t\t\t\tconst text = isArray(param) ? param.join(\"/\") : param;\n\t\t\t\tif (!text) if (optional) {\n\t\t\t\t\tif (segment.length < 2) if (path.endsWith(\"/\")) path = path.slice(0, -1);\n\t\t\t\t\telse avoidDuplicatedSlash = true;\n\t\t\t\t} else throw new Error(`Missing required param \"${value}\"`);\n\t\t\t\tpath += text;\n\t\t\t}\n\t\t}\n\t\treturn path || \"/\";\n\t}\n\treturn {\n\t\tre,\n\t\tscore,\n\t\tkeys,\n\t\tparse,\n\t\tstringify\n\t};\n}\n/**\n* Compares an array of numbers as used in PathParser.score and returns a\n* number. This function can be used to `sort` an array\n*\n* @param a - first array of numbers\n* @param b - second array of numbers\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n* should be sorted first\n*/\nfunction compareScoreArray(a, b) {\n\tlet i = 0;\n\twhile (i < a.length && i < b.length) {\n\t\tconst diff = b[i] - a[i];\n\t\tif (diff) return diff;\n\t\ti++;\n\t}\n\tif (a.length < b.length) return a.length === 1 && a[0] === 80 ? -1 : 1;\n\telse if (a.length > b.length) return b.length === 1 && b[0] === 80 ? 1 : -1;\n\treturn 0;\n}\n/**\n* Compare function that can be used with `sort` to sort an array of PathParser\n*\n* @param a - first PathParser\n* @param b - second PathParser\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n*/\nfunction comparePathParserScore(a, b) {\n\tlet i = 0;\n\tconst aScore = a.score;\n\tconst bScore = b.score;\n\twhile (i < aScore.length && i < bScore.length) {\n\t\tconst comp = compareScoreArray(aScore[i], bScore[i]);\n\t\tif (comp) return comp;\n\t\ti++;\n\t}\n\tif (Math.abs(bScore.length - aScore.length) === 1) {\n\t\tif (isLastScoreNegative(aScore)) return 1;\n\t\tif (isLastScoreNegative(bScore)) return -1;\n\t}\n\treturn bScore.length - aScore.length;\n}\n/**\n* This allows detecting splats at the end of a path: /home/:id(.*)*\n*\n* @param score - score to check\n* @returns true if the last entry is negative\n*/\nfunction isLastScoreNegative(score) {\n\tconst last = score[score.length - 1];\n\treturn score.length > 0 && last[last.length - 1] < 0;\n}\nconst PATH_PARSER_OPTIONS_DEFAULTS = {\n\tstrict: false,\n\tend: true,\n\tsensitive: false\n};\n//#endregion\n//#region src/matcher/pathMatcher.ts\nfunction createRouteRecordMatcher(record, parent, options) {\n\tconst parser = tokensToParser(tokenizePath(record.path), options);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst existingKeys = /* @__PURE__ */ new Set();\n\t\tfor (const key of parser.keys) {\n\t\t\tif (existingKeys.has(key.name)) warn$1(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n\t\t\texistingKeys.add(key.name);\n\t\t}\n\t}\n\tconst matcher = assign(parser, {\n\t\trecord,\n\t\tparent,\n\t\tchildren: [],\n\t\talias: []\n\t});\n\tif (parent) {\n\t\tif (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);\n\t}\n\treturn matcher;\n}\n//#endregion\n//#region src/matcher/index.ts\n/**\n* Creates a Router Matcher.\n*\n* @internal\n* @param routes - array of initial routes\n* @param globalOptions - global route options\n*/\nfunction createRouterMatcher(routes, globalOptions) {\n\tconst matchers = [];\n\tconst matcherMap = /* @__PURE__ */ new Map();\n\tglobalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);\n\tfunction getRecordMatcher(name) {\n\t\treturn matcherMap.get(name);\n\t}\n\tfunction addRoute(record, parent, originalRecord) {\n\t\tconst isRootAdd = !originalRecord;\n\t\tconst mainNormalizedRecord = normalizeRouteRecord(record);\n\t\tif (process.env.NODE_ENV !== \"production\") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n\t\tmainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n\t\tconst options = mergeOptions(globalOptions, record);\n\t\tconst normalizedRecords = [mainNormalizedRecord];\n\t\tif (\"alias\" in record) {\n\t\t\tconst aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n\t\t\tfor (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n\t\t\t\tcomponents: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n\t\t\t\tpath: alias,\n\t\t\t\taliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n\t\t\t})));\n\t\t}\n\t\tlet matcher;\n\t\tlet originalMatcher;\n\t\tfor (const normalizedRecord of normalizedRecords) {\n\t\t\tconst { path } = normalizedRecord;\n\t\t\tif (parent && path[0] !== \"/\") {\n\t\t\t\tconst parentPath = parent.record.path;\n\t\t\t\tconst connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n\t\t\t\tnormalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") throw new Error(\"Catch all routes (\\\"*\\\") must now be defined using a param with a custom regexp.\\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.\");\n\t\t\tmatcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\") checkMissingParamsInAbsolutePath(matcher, parent);\n\t\t\tif (originalRecord) {\n\t\t\t\toriginalRecord.alias.push(matcher);\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameParams(originalRecord, matcher);\n\t\t\t} else {\n\t\t\t\toriginalMatcher = originalMatcher || matcher;\n\t\t\t\tif (originalMatcher !== matcher) originalMatcher.alias.push(matcher);\n\t\t\t\tif (isRootAdd && record.name && !isAliasRecord(matcher)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameNameAsAncestor(record, parent);\n\t\t\t\t\tremoveRoute(record.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isMatchable(matcher)) insertMatcher(matcher);\n\t\t\tif (mainNormalizedRecord.children) {\n\t\t\t\tconst children = mainNormalizedRecord.children;\n\t\t\t\tfor (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n\t\t\t}\n\t\t\toriginalRecord = originalRecord || matcher;\n\t\t}\n\t\treturn originalMatcher ? () => {\n\t\t\tremoveRoute(originalMatcher);\n\t\t} : noop;\n\t}\n\tfunction removeRoute(matcherRef) {\n\t\tif (isRouteName(matcherRef)) {\n\t\t\tconst matcher = matcherMap.get(matcherRef);\n\t\t\tif (matcher) {\n\t\t\t\tmatcherMap.delete(matcherRef);\n\t\t\t\tmatchers.splice(matchers.indexOf(matcher), 1);\n\t\t\t\tmatcher.children.forEach(removeRoute);\n\t\t\t\tmatcher.alias.forEach(removeRoute);\n\t\t\t}\n\t\t} else {\n\t\t\tconst index = matchers.indexOf(matcherRef);\n\t\t\tif (index > -1) {\n\t\t\t\tmatchers.splice(index, 1);\n\t\t\t\tif (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);\n\t\t\t\tmatcherRef.children.forEach(removeRoute);\n\t\t\t\tmatcherRef.alias.forEach(removeRoute);\n\t\t\t}\n\t\t}\n\t}\n\tfunction getRoutes() {\n\t\treturn matchers;\n\t}\n\tfunction insertMatcher(matcher) {\n\t\tconst index = findInsertionIndex(matcher, matchers);\n\t\tmatchers.splice(index, 0, matcher);\n\t\tif (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);\n\t}\n\tfunction resolve(location, currentLocation) {\n\t\tlet matcher;\n\t\tlet params = {};\n\t\tlet path;\n\t\tlet name;\n\t\tif (\"name\" in location && location.name) {\n\t\t\tmatcher = matcherMap.get(location.name);\n\t\t\tif (!matcher) throw createRouterError(1, { location });\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconst invalidParams = Object.keys(location.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n\t\t\t\tif (invalidParams.length) {\n\t\t\t\t\tconst isInherited = !matcher.keys.length && invalidParams.some((name) => name in currentLocation.params);\n\t\t\t\t\twarn$1(`Discarded invalid param(s) \"${invalidParams.join(\"\\\", \\\"\")}\" when navigating.` + (isInherited ? ` If you are using a catch-all route with a named redirect, pass an empty \\`params\\` object: \\`redirect: { name: '...', params: {} }\\`.` : \"\") + ` See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location.params && pickParams(location.params, matcher.keys.map((k) => k.name)));\n\t\t\tpath = matcher.stringify(params);\n\t\t} else if (location.path != null) {\n\t\t\tpath = location.path;\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) warn$1(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n\t\t\tmatcher = matchers.find((m) => m.re.test(path));\n\t\t\tif (matcher) {\n\t\t\t\tparams = matcher.parse(path);\n\t\t\t\tname = matcher.record.name;\n\t\t\t\tmatcher.keys.forEach((key) => {\n\t\t\t\t\tif (key.optional && !params[key.name]) delete params[key.name];\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tmatcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));\n\t\t\tif (!matcher) throw createRouterError(1, {\n\t\t\t\tlocation,\n\t\t\t\tcurrentLocation\n\t\t\t});\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign({}, currentLocation.params, location.params);\n\t\t\tpath = matcher.stringify(params);\n\t\t}\n\t\tconst matched = [];\n\t\tlet parentMatcher = matcher;\n\t\twhile (parentMatcher) {\n\t\t\tmatched.unshift(parentMatcher.record);\n\t\t\tparentMatcher = parentMatcher.parent;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tpath,\n\t\t\tparams,\n\t\t\tmatched,\n\t\t\tmeta: mergeMetaFields(matched)\n\t\t};\n\t}\n\troutes.forEach((route) => addRoute(route));\n\tfunction clearRoutes() {\n\t\tmatchers.length = 0;\n\t\tmatcherMap.clear();\n\t}\n\treturn {\n\t\taddRoute,\n\t\tresolve,\n\t\tremoveRoute,\n\t\tclearRoutes,\n\t\tgetRoutes,\n\t\tgetRecordMatcher\n\t};\n}\n/**\n* Picks an object param to contain only specified keys.\n*\n* @param params - params object to pick from\n* @param keys - keys to pick\n*/\nfunction pickParams(params, keys) {\n\tconst newParams = {};\n\tfor (const key of keys) if (key in params) newParams[key] = params[key];\n\treturn newParams;\n}\n/**\n* Normalizes a RouteRecordRaw. Creates a copy\n*\n* @param record\n* @returns the normalized version\n*/\nfunction normalizeRouteRecord(record) {\n\tconst normalized = {\n\t\tpath: record.path,\n\t\tredirect: record.redirect,\n\t\tname: record.name,\n\t\tmeta: record.meta || {},\n\t\taliasOf: record.aliasOf,\n\t\tbeforeEnter: record.beforeEnter,\n\t\tprops: normalizeRecordProps(record),\n\t\tchildren: record.children || [],\n\t\tinstances: {},\n\t\tleaveGuards: /* @__PURE__ */ new Set(),\n\t\tupdateGuards: /* @__PURE__ */ new Set(),\n\t\tenterCallbacks: {},\n\t\tcomponents: \"components\" in record ? record.components || null : record.component && { default: record.component }\n\t};\n\tObject.defineProperty(normalized, \"mods\", { value: {} });\n\treturn normalized;\n}\n/**\n* Normalize the optional `props` in a record to always be an object similar to\n* components. Also accept a boolean for components.\n* @param record\n*/\nfunction normalizeRecordProps(record) {\n\tconst propsObject = {};\n\tconst props = record.props || false;\n\tif (\"component\" in record) propsObject.default = props;\n\telse for (const name in record.components) propsObject[name] = typeof props === \"object\" ? props[name] : props;\n\treturn propsObject;\n}\n/**\n* Checks if a record or any of its parent is an alias\n* @param record\n*/\nfunction isAliasRecord(record) {\n\twhile (record) {\n\t\tif (record.record.aliasOf) return true;\n\t\trecord = record.parent;\n\t}\n\treturn false;\n}\n/**\n* Merge meta fields of an array of records\n*\n* @param matched - array of matched records\n*/\nfunction mergeMetaFields(matched) {\n\treturn matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction isSameParam(a, b) {\n\treturn a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\n/**\n* Check if a path and its alias have the same required params\n*\n* @param a - original record\n* @param b - alias record\n*/\nfunction checkSameParams(a, b) {\n\tfor (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n\tfor (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n}\n/**\n* A route with a name and a child with an empty path without a name should warn when adding the route\n*\n* @param mainNormalizedRecord - RouteRecordNormalized\n* @param parent - RouteRecordMatcher\n*/\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n\tif (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path && mainNormalizedRecord.children.length === 0) warn$1(`The route named \"${String(parent.record.name)}\" has a child without a name, an empty path, and no children. This is probably a mistake: using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to silence the warning.`);\n}\nfunction checkSameNameAsAncestor(record, parent) {\n\tfor (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? \"child\" : \"descendant\"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n\tfor (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) return warn$1(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n}\n/**\n* Performs a binary search to find the correct insertion index for a new matcher.\n*\n* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n*\n* @param matcher - new matcher to be inserted\n* @param matchers - existing matchers\n*/\nfunction findInsertionIndex(matcher, matchers) {\n\tlet lower = 0;\n\tlet upper = matchers.length;\n\twhile (lower !== upper) {\n\t\tconst mid = lower + upper >> 1;\n\t\tif (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;\n\t\telse lower = mid + 1;\n\t}\n\tconst insertionAncestor = getInsertionAncestor(matcher);\n\tif (insertionAncestor) {\n\t\tupper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n\t\tif (process.env.NODE_ENV !== \"production\" && upper < 0) warn$1(`Finding ancestor route \"${insertionAncestor.record.path}\" failed for \"${matcher.record.path}\"`);\n\t}\n\treturn upper;\n}\nfunction getInsertionAncestor(matcher) {\n\tlet ancestor = matcher;\n\twhile (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;\n}\n/**\n* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n* a component, or name, or redirect, are just used to group other routes.\n* @param matcher\n* @param matcher.record record of the matcher\n* @returns\n*/\nfunction isMatchable({ record }) {\n\treturn !!(record.name || record.components && Object.keys(record.components).length || record.redirect);\n}\n//#endregion\n//#region src/RouterLink.ts\n/**\n* Returns the internal behavior of a {@link RouterLink} without the rendering part.\n*\n* @param props - a `to` location and an optional `replace` flag\n*/\nfunction useLink(props) {\n\tconst router = inject(routerKey);\n\tconst currentRoute = inject(routeLocationKey);\n\tlet hasPrevious = false;\n\tlet previousTo = null;\n\tconst route = computed(() => {\n\t\tconst to = unref(props.to);\n\t\tif (process.env.NODE_ENV !== \"production\" && (!hasPrevious || to !== previousTo)) {\n\t\t\tif (!isRouteLocation(to)) if (hasPrevious) warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- previous to:`, previousTo, `\\n- props:`, props);\n\t\t\telse warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- props:`, props);\n\t\t\tpreviousTo = to;\n\t\t\thasPrevious = true;\n\t\t}\n\t\treturn router.resolve(to);\n\t});\n\tconst activeRecordIndex = computed(() => {\n\t\tconst { matched } = route.value;\n\t\tconst { length } = matched;\n\t\tconst routeMatched = matched[length - 1];\n\t\tconst currentMatched = currentRoute.matched;\n\t\tif (!routeMatched || !currentMatched.length) return -1;\n\t\tconst index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n\t\tif (index > -1) return index;\n\t\tconst parentRecordPath = getOriginalPath(matched[length - 2]);\n\t\treturn length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index;\n\t});\n\tconst isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n\tconst isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n\tfunction navigate(e = {}) {\n\t\tif (guardEvent(e)) {\n\t\t\tconst p = router[unref(props.replace) ? \"replace\" : \"push\"](unref(props.to)).catch(noop);\n\t\t\tif (props.viewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document) document.startViewTransition(() => p);\n\t\t\treturn p;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n\t\tconst instance = getCurrentInstance();\n\t\tif (instance) {\n\t\t\tconst linkContextDevtools = {\n\t\t\t\troute: route.value,\n\t\t\t\tisActive: isActive.value,\n\t\t\t\tisExactActive: isExactActive.value,\n\t\t\t\terror: null\n\t\t\t};\n\t\t\tinstance.__vrl_devtools = instance.__vrl_devtools || [];\n\t\t\tinstance.__vrl_devtools.push(linkContextDevtools);\n\t\t\twatchEffect(() => {\n\t\t\t\tlinkContextDevtools.route = route.value;\n\t\t\t\tlinkContextDevtools.isActive = isActive.value;\n\t\t\t\tlinkContextDevtools.isExactActive = isExactActive.value;\n\t\t\t\tlinkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : \"Invalid \\\"to\\\" value\";\n\t\t\t}, { flush: \"post\" });\n\t\t}\n\t}\n\t/**\n\t* NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n\t*/\n\treturn {\n\t\troute,\n\t\thref: computed(() => route.value.href),\n\t\tisActive,\n\t\tisExactActive,\n\t\tnavigate\n\t};\n}\nfunction preferSingleVNode(vnodes) {\n\treturn vnodes.length === 1 ? vnodes[0] : vnodes;\n}\n/**\n* Component to render a link that triggers a navigation on click.\n*/\nconst RouterLink = /* @__PURE__ */ defineComponent({\n\tname: \"RouterLink\",\n\tcompatConfig: { MODE: 3 },\n\tprops: {\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\trequired: true\n\t\t},\n\t\treplace: Boolean,\n\t\tactiveClass: String,\n\t\texactActiveClass: String,\n\t\tcustom: Boolean,\n\t\tariaCurrentValue: {\n\t\t\ttype: String,\n\t\t\tdefault: \"page\"\n\t\t},\n\t\tviewTransition: Boolean\n\t},\n\tuseLink,\n\tsetup(props, { slots }) {\n\t\tconst link = reactive(useLink(props));\n\t\tconst { options } = inject(routerKey);\n\t\tconst elClass = computed(() => ({\n\t\t\t[getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n\t\t\t[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n\t\t}));\n\t\treturn () => {\n\t\t\tconst children = slots.default && preferSingleVNode(slots.default(link));\n\t\t\treturn props.custom ? children : h(\"a\", {\n\t\t\t\t\"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n\t\t\t\thref: link.href,\n\t\t\t\tonClick: link.navigate,\n\t\t\t\tclass: elClass.value\n\t\t\t}, children);\n\t\t};\n\t}\n});\nfunction guardEvent(e) {\n\tif (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n\tif (e.defaultPrevented) return;\n\tif (e.button !== void 0 && e.button !== 0) return;\n\tif (e.currentTarget && e.currentTarget.getAttribute) {\n\t\tconst target = e.currentTarget.getAttribute(\"target\");\n\t\tif (/\\b_blank\\b/i.test(target)) return;\n\t}\n\tif (e.preventDefault) e.preventDefault();\n\treturn true;\n}\nfunction includesParams(outer, inner) {\n\tfor (const key in inner) {\n\t\tconst innerValue = inner[key];\n\t\tconst outerValue = outer[key];\n\t\tif (typeof innerValue === \"string\") {\n\t\t\tif (innerValue !== outerValue) return false;\n\t\t} else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value.valueOf() !== outerValue[i].valueOf())) return false;\n\t}\n\treturn true;\n}\n/**\n* Get the original path value of a record by following its aliasOf\n* @param record\n*/\nfunction getOriginalPath(record) {\n\treturn record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\n/**\n* Utility class to get the active class based on defaults.\n* @param propClass\n* @param globalClass\n* @param defaultClass\n*/\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\n//#endregion\n//#region src/RouterView.ts\nconst RouterViewImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterView\",\n\tinheritAttrs: false,\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: \"default\"\n\t\t},\n\t\troute: Object\n\t},\n\tcompatConfig: { MODE: 3 },\n\tsetup(props, { attrs, slots }) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n\t\tconst injectedRoute = inject(routerViewLocationKey);\n\t\tconst routeToDisplay = computed(() => props.route || injectedRoute.value);\n\t\tconst injectedDepth = inject(viewDepthKey, 0);\n\t\tconst depth = computed(() => {\n\t\t\tlet initialDepth = unref(injectedDepth);\n\t\t\tconst { matched } = routeToDisplay.value;\n\t\t\tlet matchedRoute;\n\t\t\twhile ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;\n\t\t\treturn initialDepth;\n\t\t});\n\t\tconst matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n\t\tprovide(viewDepthKey, computed(() => depth.value + 1));\n\t\tprovide(matchedRouteKey, matchedRouteRef);\n\t\tprovide(routerViewLocationKey, routeToDisplay);\n\t\tconst viewRef = ref();\n\t\twatch(() => [\n\t\t\tviewRef.value,\n\t\t\tmatchedRouteRef.value,\n\t\t\tprops.name\n\t\t], ([instance, to, name], [oldInstance, from, _oldName]) => {\n\t\t\tif (to) {\n\t\t\t\tto.instances[name] = instance;\n\t\t\t\tif (from && from !== to && instance && instance === oldInstance) {\n\t\t\t\t\tif (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards;\n\t\t\t\t\tif (!to.updateGuards.size) to.updateGuards = from.updateGuards;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n\t\t}, { flush: \"post\" });\n\t\treturn () => {\n\t\t\tconst route = routeToDisplay.value;\n\t\t\tconst currentName = props.name;\n\t\t\tconst matchedRoute = matchedRouteRef.value;\n\t\t\tconst ViewComponent = matchedRoute && matchedRoute.components[currentName];\n\t\t\tif (!ViewComponent) return normalizeSlot(slots.default, {\n\t\t\t\tComponent: ViewComponent,\n\t\t\t\troute\n\t\t\t});\n\t\t\tconst routePropsOption = matchedRoute.props[currentName];\n\t\t\tconst routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n\t\t\tconst onVnodeUnmounted = (vnode) => {\n\t\t\t\tif (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;\n\t\t\t};\n\t\t\tconst component = h(ViewComponent, assign({}, routeProps, attrs, {\n\t\t\t\tonVnodeUnmounted,\n\t\t\t\tref: viewRef\n\t\t\t}));\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) {\n\t\t\t\tconst info = {\n\t\t\t\t\tdepth: depth.value,\n\t\t\t\t\tname: matchedRoute.name,\n\t\t\t\t\tpath: matchedRoute.path,\n\t\t\t\t\tmeta: matchedRoute.meta\n\t\t\t\t};\n\t\t\t\t(isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => {\n\t\t\t\t\tinstance.__vrv_devtools = info;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn normalizeSlot(slots.default, {\n\t\t\t\tComponent: component,\n\t\t\t\troute\n\t\t\t}) || component;\n\t\t};\n\t}\n});\nfunction normalizeSlot(slot, data) {\n\tif (!slot) return null;\n\tconst slotContent = slot(data);\n\treturn slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n/**\n* Component to display the current route the user is at.\n*/\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n\tconst instance = getCurrentInstance();\n\tconst parentName = instance.parent && instance.parent.type.name;\n\tconst parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n\tif (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n\t\tconst comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n\t\twarn$1(` can no longer be used directly inside <${comp}>.\\nUse slot props instead:\\n\\n\\n <${comp}>\\n \\n \\n`);\n\t}\n}\n//#endregion\n//#region src/router.ts\n/**\n* Creates a Router instance that can be used by a Vue app.\n*\n* @param options - {@link RouterOptions}\n*/\nfunction createRouter(options) {\n\tconst matcher = createRouterMatcher(options.routes, options);\n\tconst parseQuery$1 = options.parseQuery || parseQuery;\n\tconst stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n\tconst routerHistory = options.history;\n\tif (process.env.NODE_ENV !== \"production\" && !routerHistory) throw new Error(\"Provide the \\\"history\\\" option when calling \\\"createRouter()\\\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history\");\n\tconst beforeGuards = useCallbacks();\n\tconst beforeResolveGuards = useCallbacks();\n\tconst afterGuards = useCallbacks();\n\tconst currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n\tlet pendingLocation = START_LOCATION_NORMALIZED;\n\tif (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) history.scrollRestoration = \"manual\";\n\tconst normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n\tconst encodeParams = applyToParams.bind(null, encodeParam);\n\tconst decodeParams = applyToParams.bind(null, decode);\n\tfunction addRoute(parentOrRoute, route) {\n\t\tlet parent;\n\t\tlet record;\n\t\tif (isRouteName(parentOrRoute)) {\n\t\t\tparent = matcher.getRecordMatcher(parentOrRoute);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !parent) warn$1(`Parent route \"${String(parentOrRoute)}\" not found when adding child route`, route);\n\t\t\trecord = route;\n\t\t} else record = parentOrRoute;\n\t\treturn matcher.addRoute(record, parent);\n\t}\n\tfunction removeRoute(name) {\n\t\tconst recordMatcher = matcher.getRecordMatcher(name);\n\t\tif (recordMatcher) matcher.removeRoute(recordMatcher);\n\t\telse if (process.env.NODE_ENV !== \"production\") warn$1(`Cannot remove non-existent route \"${String(name)}\"`);\n\t}\n\tfunction getRoutes() {\n\t\treturn matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n\t}\n\tfunction hasRoute(name) {\n\t\treturn !!matcher.getRecordMatcher(name);\n\t}\n\tfunction resolve(rawLocation, currentLocation) {\n\t\tcurrentLocation = assign({}, currentLocation || currentRoute.value);\n\t\tif (typeof rawLocation === \"string\") {\n\t\t\tconst locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n\t\t\tconst matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n\t\t\tconst href = routerHistory.createHref(locationNormalized.fullPath);\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation}\"`);\n\t\t\t}\n\t\t\treturn assign(locationNormalized, matchedRoute, {\n\t\t\t\tparams: decodeParams(matchedRoute.params),\n\t\t\t\tredirectedFrom: void 0,\n\t\t\t\thref\n\t\t\t});\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\" && !isRouteLocation(rawLocation)) {\n\t\t\twarn$1(`router.resolve() was passed an invalid location. This will fail in production.\\n- Location:`, rawLocation);\n\t\t\treturn resolve({});\n\t\t}\n\t\tlet matcherLocation;\n\t\tif (rawLocation.path != null) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && Object.keys(rawLocation.params).length) warn$1(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n\t\t\tmatcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });\n\t\t} else {\n\t\t\tconst targetParams = assign({}, rawLocation.params);\n\t\t\tfor (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];\n\t\t\tmatcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) });\n\t\t\tcurrentLocation.params = encodeParams(currentLocation.params);\n\t\t}\n\t\tconst matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n\t\tconst hash = rawLocation.hash || \"\";\n\t\tif (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) warn$1(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n\t\tmatchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n\t\tconst fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n\t\t\thash: encodeHash(hash),\n\t\t\tpath: matchedRoute.path\n\t\t}));\n\t\tconst href = routerHistory.createHref(fullPath);\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation.path != null ? rawLocation.path : rawLocation}\"`);\n\t\t}\n\t\treturn assign({\n\t\t\tfullPath,\n\t\t\thash,\n\t\t\tquery: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n\t\t}, matchedRoute, {\n\t\t\tredirectedFrom: void 0,\n\t\t\thref\n\t\t});\n\t}\n\tfunction locationAsObject(to) {\n\t\treturn typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n\t}\n\tfunction checkCanceledNavigation(to, from) {\n\t\tif (pendingLocation !== to) return createRouterError(8, {\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t}\n\tfunction push(to) {\n\t\treturn pushWithRedirect(to);\n\t}\n\tfunction replace(to) {\n\t\treturn push(assign(locationAsObject(to), { replace: true }));\n\t}\n\tfunction handleRedirectRecord(to, from) {\n\t\tconst lastMatched = to.matched[to.matched.length - 1];\n\t\tif (lastMatched && lastMatched.redirect) {\n\t\t\tconst { redirect } = lastMatched;\n\t\t\tlet newTargetLocation = typeof redirect === \"function\" ? redirect(to, from) : redirect;\n\t\t\tif (typeof newTargetLocation === \"string\") {\n\t\t\t\tnewTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };\n\t\t\t\tnewTargetLocation.params = {};\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && newTargetLocation.path == null && !(\"name\" in newTargetLocation)) {\n\t\t\t\twarn$1(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n\t\t\t\tthrow new Error(\"Invalid redirect\");\n\t\t\t}\n\t\t\treturn assign({\n\t\t\t\tquery: to.query,\n\t\t\t\thash: to.hash,\n\t\t\t\tparams: newTargetLocation.path != null ? {} : to.params\n\t\t\t}, newTargetLocation);\n\t\t}\n\t}\n\tfunction pushWithRedirect(to, redirectedFrom) {\n\t\tconst targetLocation = pendingLocation = resolve(to);\n\t\tconst from = currentRoute.value;\n\t\tconst data = to.state;\n\t\tconst force = to.force;\n\t\tconst replace = to.replace === true;\n\t\tconst shouldRedirect = handleRedirectRecord(targetLocation, from);\n\t\tif (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n\t\t\tstate: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n\t\t\tforce,\n\t\t\treplace\n\t\t}), redirectedFrom || targetLocation);\n\t\tconst toLocation = targetLocation;\n\t\ttoLocation.redirectedFrom = redirectedFrom;\n\t\tlet failure;\n\t\tif (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n\t\t\tfailure = createRouterError(16, {\n\t\t\t\tto: toLocation,\n\t\t\t\tfrom\n\t\t\t});\n\t\t\thandleScroll(from, from, true, false);\n\t\t}\n\t\treturn (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, 2) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure) => {\n\t\t\tif (failure) {\n\t\t\t\tif (isNavigationFailure(failure, 2)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\" && isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) {\n\t\t\t\t\t\twarn$1(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n\t\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Infinite redirect in navigation guard\"));\n\t\t\t\t\t}\n\t\t\t\t\treturn pushWithRedirect(assign({ replace }, locationAsObject(failure.to), {\n\t\t\t\t\t\tstate: typeof failure.to === \"object\" ? assign({}, data, failure.to.state) : data,\n\t\t\t\t\t\tforce\n\t\t\t\t\t}), redirectedFrom || toLocation);\n\t\t\t\t}\n\t\t\t} else failure = finalizeNavigation(toLocation, from, true, replace, data);\n\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\treturn failure;\n\t\t});\n\t}\n\t/**\n\t* Helper to reject and skip all navigation guards if a new navigation happened\n\t* @param to\n\t* @param from\n\t*/\n\tfunction checkCanceledNavigationAndReject(to, from) {\n\t\tconst error = checkCanceledNavigation(to, from);\n\t\treturn error ? Promise.reject(error) : Promise.resolve();\n\t}\n\tfunction runWithContext(fn) {\n\t\tconst app = installedApps.values().next().value;\n\t\treturn app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n\t}\n\tfunction navigate(to, from) {\n\t\tlet guards;\n\t\tconst [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n\t\tguards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n\t\tfor (const record of leavingRecords) record.leaveGuards.forEach((guard) => {\n\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t});\n\t\tconst canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n\t\tguards.push(canceledNavigationCheck);\n\t\treturn runGuardQueue(guards).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n\t\t\tfor (const record of updatingRecords) record.updateGuards.forEach((guard) => {\n\t\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t\t});\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from));\n\t\t\telse guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tto.matched.forEach((record) => record.enterCallbacks = {});\n\t\t\tguards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from, runWithContext);\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).catch((err) => isNavigationFailure(err, 8) ? err : Promise.reject(err));\n\t}\n\tfunction triggerAfterEach(to, from, failure) {\n\t\tafterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n\t}\n\t/**\n\t* - Cleans up any navigation guards\n\t* - Changes the url if necessary\n\t* - Calls the scrollBehavior\n\t*/\n\tfunction finalizeNavigation(toLocation, from, isPush, replace, data) {\n\t\tconst error = checkCanceledNavigation(toLocation, from);\n\t\tif (error) return error;\n\t\tconst isFirstNavigation = from === START_LOCATION_NORMALIZED;\n\t\tconst state = !isBrowser ? {} : history.state;\n\t\tif (isPush) if (replace || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data));\n\t\telse routerHistory.push(toLocation.fullPath, data);\n\t\tcurrentRoute.value = toLocation;\n\t\thandleScroll(toLocation, from, isPush, isFirstNavigation);\n\t\tmarkAsReady();\n\t}\n\tlet removeHistoryListener;\n\tfunction setupListeners() {\n\t\tif (removeHistoryListener) return;\n\t\tremoveHistoryListener = routerHistory.listen((to, _from, info) => {\n\t\t\tif (!router.listening) return;\n\t\t\tconst toLocation = resolve(to);\n\t\t\tconst shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value);\n\t\t\tif (shouldRedirect) {\n\t\t\t\tpushWithRedirect(assign(shouldRedirect, {\n\t\t\t\t\treplace: true,\n\t\t\t\t\tforce: true\n\t\t\t\t}), toLocation).catch(noop);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingLocation = toLocation;\n\t\t\tconst from = currentRoute.value;\n\t\t\tif (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n\t\t\tnavigate(toLocation, from).catch((error) => {\n\t\t\t\tif (isNavigationFailure(error, 12)) return error;\n\t\t\t\tif (isNavigationFailure(error, 2)) {\n\t\t\t\t\tpushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {\n\t\t\t\t\t\tif (isNavigationFailure(failure, 20) && !info.delta && info.type === \"pop\") routerHistory.go(-1, false);\n\t\t\t\t\t}).catch(noop);\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t}\n\t\t\t\tif (info.delta) routerHistory.go(-info.delta, false);\n\t\t\t\treturn triggerError(error, toLocation, from);\n\t\t\t}).then((failure) => {\n\t\t\t\tfailure = failure || finalizeNavigation(toLocation, from, false);\n\t\t\t\tif (failure) {\n\t\t\t\t\tif (info.delta && !isNavigationFailure(failure, 8)) routerHistory.go(-info.delta, false);\n\t\t\t\t\telse if (info.type === \"pop\" && isNavigationFailure(failure, 20)) routerHistory.go(-1, false);\n\t\t\t\t}\n\t\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\t}).catch(noop);\n\t\t});\n\t}\n\tlet readyHandlers = useCallbacks();\n\tlet errorListeners = useCallbacks();\n\tlet ready;\n\t/**\n\t* Trigger errorListeners added via onError and throws the error as well\n\t*\n\t* @param error - error to throw\n\t* @param to - location we were navigating to when the error happened\n\t* @param from - location we were navigating from when the error happened\n\t* @returns the error as a rejected promise\n\t*/\n\tfunction triggerError(error, to, from) {\n\t\tmarkAsReady(error);\n\t\tconst list = errorListeners.list();\n\t\tif (list.length) list.forEach((handler) => handler(error, to, from));\n\t\telse {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"uncaught error during route navigation:\");\n\t\t\tconsole.error(error);\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n\tfunction isReady() {\n\t\tif (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treadyHandlers.add([resolve, reject]);\n\t\t});\n\t}\n\tfunction markAsReady(err) {\n\t\tif (!ready) {\n\t\t\tready = !err;\n\t\t\tsetupListeners();\n\t\t\treadyHandlers.list().forEach(([resolve, reject]) => err ? reject(err) : resolve());\n\t\t\treadyHandlers.reset();\n\t\t}\n\t\treturn err;\n\t}\n\tfunction handleScroll(to, from, isPush, isFirstNavigation) {\n\t\tconst { scrollBehavior } = options;\n\t\tif (!isBrowser || !scrollBehavior) return Promise.resolve();\n\t\tconst scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n\t\treturn nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from));\n\t}\n\tconst go = (delta) => routerHistory.go(delta);\n\tlet started;\n\tconst installedApps = /* @__PURE__ */ new Set();\n\tconst router = {\n\t\tcurrentRoute,\n\t\tlistening: true,\n\t\taddRoute,\n\t\tremoveRoute,\n\t\tclearRoutes: matcher.clearRoutes,\n\t\thasRoute,\n\t\tgetRoutes,\n\t\tresolve,\n\t\toptions,\n\t\tpush,\n\t\treplace,\n\t\tgo,\n\t\tback: () => go(-1),\n\t\tforward: () => go(1),\n\t\tbeforeEach: beforeGuards.add,\n\t\tbeforeResolve: beforeResolveGuards.add,\n\t\tafterEach: afterGuards.add,\n\t\tonError: errorListeners.add,\n\t\tisReady,\n\t\tinstall(app) {\n\t\t\tapp.component(\"RouterLink\", RouterLink);\n\t\t\tapp.component(\"RouterView\", RouterView);\n\t\t\tapp.config.globalProperties.$router = router;\n\t\t\tObject.defineProperty(app.config.globalProperties, \"$route\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => unref(currentRoute)\n\t\t\t});\n\t\t\tif (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n\t\t\t\tstarted = true;\n\t\t\t\tpush(routerHistory.location).catch((err) => {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Unexpected error when starting the router:\", err);\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst reactiveRoute = {};\n\t\t\tfor (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {\n\t\t\t\tget: () => currentRoute.value[key],\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t\tapp.provide(routerKey, router);\n\t\t\tapp.provide(routeLocationKey, shallowReactive(reactiveRoute));\n\t\t\tapp.provide(routerViewLocationKey, currentRoute);\n\t\t\tconst unmountApp = app.unmount;\n\t\t\tinstalledApps.add(app);\n\t\t\tapp.unmount = function() {\n\t\t\t\tinstalledApps.delete(app);\n\t\t\t\tif (installedApps.size < 1) {\n\t\t\t\t\tpendingLocation = START_LOCATION_NORMALIZED;\n\t\t\t\t\tremoveHistoryListener && removeHistoryListener();\n\t\t\t\t\tremoveHistoryListener = null;\n\t\t\t\t\tcurrentRoute.value = START_LOCATION_NORMALIZED;\n\t\t\t\t\tstarted = false;\n\t\t\t\t\tready = false;\n\t\t\t\t}\n\t\t\t\tunmountApp();\n\t\t\t};\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && true) addDevtools(app, router, matcher);\n\t\t}\n\t};\n\tfunction runGuardQueue(guards) {\n\t\treturn guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n\t}\n\treturn router;\n}\n//#endregion\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","global.__VUE_PROD_DEVTOOLS__ = false\nexport * from './dist/vue-router.js'\n","import { KeepAlive, h } from \"vue\";\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nconst interpolatePath = (route, match) => {\n return match.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n};\nexport const generateRouteKey = (routeProps, override) => {\n const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);\n const source = override ?? matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));\n return typeof source === \"function\" ? source(routeProps.route) : source;\n};\nexport const wrapInKeepAlive = (props, children) => {\n return { default: () => import.meta.client && props ? h(KeepAlive, props === true ? {} : props, children) : children };\n};\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","\nif (import.meta.hot) {\n import.meta.hot.accept((mod) => {\n const router = import.meta.hot.data.router\n const generateRoutes = import.meta.hot.data.generateRoutes\n if (!router || !generateRoutes) {\n import.meta.hot.invalidate('[nuxt] Cannot replace routes because there is no active router. Reloading.')\n return\n }\n const addedRoutes = router.getRoutes().filter(r => !r._initial)\n router.clearRoutes()\n const routes = generateRoutes(mod.default || mod)\n function addRoutes (routes) {\n for (const route of routes) {\n router.addRoute(route)\n }\n for (const route of router.getRoutes()) {\n route._initial = true\n }\n for (const route of addedRoutes) {\n router.addRoute(route)\n }\n router.isReady().then(() => {\n // Resolve the current path against the new routes to get updated meta\n const newRoute = router.resolve(router.currentRoute.value.fullPath)\n // Clear old meta values and assign new ones\n for (const key of Object.keys(router.currentRoute.value.meta)) {\n delete router.currentRoute.value.meta[key]\n }\n Object.assign(router.currentRoute.value.meta, newRoute.meta)\n })\n }\n if (routes && 'then' in routes) {\n routes.then(addRoutes)\n } else {\n addRoutes(routes)\n }\n })\n}\n\nexport function handleHotUpdate(_router, _generateRoutes) {\n if (import.meta.hot) {\n import.meta.hot.data ||= {}\n import.meta.hot.data.router = _router\n import.meta.hot.data.generateRoutes = _generateRoutes\n for (const route of _router.getRoutes()) {\n route._initial = true\n }\n }\n}\nimport { default as accountsuf9bCUy96pdO5sDhtrw37BAVSmLjFm_wqAF7eLybYiMMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/accounts.vue?macro=true\";\nimport { default as appconfigMaNwwQRe3all4OpVg4ypcFX_uYs7MhHHxXy6HdSwqzAMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/appconfig.vue?macro=true\";\nimport { default as apps4N_8fM_HAmoSan_tqUVvBfSBVgSnYl__ZGdiSQQbrUQMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/apps.vue?macro=true\";\nimport { default as calltranslateyLuYKm0ZK9L21n5R8uZzUWg2Wz5JWCfqvY_vv13cK8wMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/calltranslate.vue?macro=true\";\nimport { default as codetIaWhqabBnZ9rT9cLF_86EHpOqJs8Du_S5u8tCLN2VcMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/code.vue?macro=true\";\nimport { default as dashboardZNLB5_JiEysWIj_2b5J2hURJ9xLEtnlF8cxz1kh1xgsMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/dashboard.vue?macro=true\";\nimport { default as deviceATlhZZ6PiEtU_HD4qeo7Tbnfw0N2ei8nBzbk1UCWcQAMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/device.vue?macro=true\";\nimport { default as environments2K1an_2pLlUuq0wZm4vf5M_8qSrfGyBr04Cp4cfHb8EMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/environments.vue?macro=true\";\nimport { default as factoryVZatTEN3EjRZOxVm33XY8Gdq71RZ1D_jDUKUf4F_lWIMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/factory.vue?macro=true\";\nimport { default as globalconfignq5luXkq_Ykd2myATDZ7keYzKoRwp_opATj4sH705EcMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/globalconfig.vue?macro=true\";\nimport { default as mcpconfigrFWADY1KKVchc3b_tLzB_4GNdXlzlJnoCP2vK_qS9IgMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/mcpconfig.vue?macro=true\";\nimport { default as meettemplates3Nsj0ut16S4eIXd5Lv9nVQD0XusUnq08ZaalLdE0O7IMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/meettemplates.vue?macro=true\";\nimport { default as productWbWlgO8dvY_vVRFylKRGjH7HyHR9RFTvzFbP8equczwMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/product.vue?macro=true\";\nimport { default as serviceconfig6Gc5qzSDJTYZMnqPqZYds2OIokXbSz4H6XhPAg8iN0EMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/serviceconfig.vue?macro=true\";\nimport { default as statlogrR6XJDIk_e8P5NJMugR6upS2Ifr1zDMQogeCNYwz5MQMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/statlog.vue?macro=true\";\nimport { default as systemconfigLbtF1nV2kUjJU1iP8sTLfpqV4d2QGryXpZEovNtPXBYMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/systemconfig.vue?macro=true\";\nimport { default as usersfLETUnFtHTvnQYJLMbrQA_IXzpwNp3NUerB3_nZMVvkMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/users.vue?macro=true\";\nimport { default as indexcEvFhP__rFdFTbvBFnPFkHCn7KMBOSKrrLe98tJlrc4Meta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/index.vue?macro=true\";\nexport default [\n {\n name: \"accounts\",\n path: \"/accounts\",\n meta: accountsuf9bCUy96pdO5sDhtrw37BAVSmLjFm_wqAF7eLybYiMMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/accounts.vue\")\n },\n {\n name: \"appconfig\",\n path: \"/appconfig\",\n meta: appconfigMaNwwQRe3all4OpVg4ypcFX_uYs7MhHHxXy6HdSwqzAMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/appconfig.vue\")\n },\n {\n name: \"apps\",\n path: \"/apps\",\n meta: apps4N_8fM_HAmoSan_tqUVvBfSBVgSnYl__ZGdiSQQbrUQMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/apps.vue\")\n },\n {\n name: \"calltranslate\",\n path: \"/calltranslate\",\n meta: calltranslateyLuYKm0ZK9L21n5R8uZzUWg2Wz5JWCfqvY_vv13cK8wMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/calltranslate.vue\")\n },\n {\n name: \"code\",\n path: \"/code\",\n meta: codetIaWhqabBnZ9rT9cLF_86EHpOqJs8Du_S5u8tCLN2VcMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/code.vue\")\n },\n {\n name: \"dashboard\",\n path: \"/dashboard\",\n meta: dashboardZNLB5_JiEysWIj_2b5J2hURJ9xLEtnlF8cxz1kh1xgsMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/dashboard.vue\")\n },\n {\n name: \"device\",\n path: \"/device\",\n meta: deviceATlhZZ6PiEtU_HD4qeo7Tbnfw0N2ei8nBzbk1UCWcQAMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/device.vue\")\n },\n {\n name: \"environments\",\n path: \"/environments\",\n meta: environments2K1an_2pLlUuq0wZm4vf5M_8qSrfGyBr04Cp4cfHb8EMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/environments.vue\")\n },\n {\n name: \"factory\",\n path: \"/factory\",\n meta: factoryVZatTEN3EjRZOxVm33XY8Gdq71RZ1D_jDUKUf4F_lWIMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/factory.vue\")\n },\n {\n name: \"globalconfig\",\n path: \"/globalconfig\",\n meta: globalconfignq5luXkq_Ykd2myATDZ7keYzKoRwp_opATj4sH705EcMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/globalconfig.vue\")\n },\n {\n name: \"mcpconfig\",\n path: \"/mcpconfig\",\n meta: mcpconfigrFWADY1KKVchc3b_tLzB_4GNdXlzlJnoCP2vK_qS9IgMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/mcpconfig.vue\")\n },\n {\n name: \"meettemplates\",\n path: \"/meettemplates\",\n meta: meettemplates3Nsj0ut16S4eIXd5Lv9nVQD0XusUnq08ZaalLdE0O7IMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/meettemplates.vue\")\n },\n {\n name: \"product\",\n path: \"/product\",\n meta: productWbWlgO8dvY_vVRFylKRGjH7HyHR9RFTvzFbP8equczwMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/product.vue\")\n },\n {\n name: \"serviceconfig\",\n path: \"/serviceconfig\",\n meta: serviceconfig6Gc5qzSDJTYZMnqPqZYds2OIokXbSz4H6XhPAg8iN0EMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/serviceconfig.vue\")\n },\n {\n name: \"statlog\",\n path: \"/statlog\",\n meta: statlogrR6XJDIk_e8P5NJMugR6upS2Ifr1zDMQogeCNYwz5MQMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/statlog.vue\")\n },\n {\n name: \"systemconfig\",\n path: \"/systemconfig\",\n meta: systemconfigLbtF1nV2kUjJU1iP8sTLfpqV4d2QGryXpZEovNtPXBYMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/systemconfig.vue\")\n },\n {\n name: \"users\",\n path: \"/users\",\n meta: usersfLETUnFtHTvnQYJLMbrQA_IXzpwNp3NUerB3_nZMVvkMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/users.vue\")\n },\n {\n name: \"index\",\n path: \"/\",\n meta: indexcEvFhP__rFdFTbvBFnPFkHCn7KMBOSKrrLe98tJlrc4Meta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/index.vue\")\n }\n]","/**\n* @vue/shared v3.5.38\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = {};\nconst EMPTY_ARR = [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst 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 camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst 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\";\nconst 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\";\nconst 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\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n 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);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n return String(value);\n}\n\nexports.EMPTY_ARR = EMPTY_ARR;\nexports.EMPTY_OBJ = EMPTY_OBJ;\nexports.NO = NO;\nexports.NOOP = NOOP;\nexports.PatchFlagNames = PatchFlagNames;\nexports.PatchFlags = PatchFlags;\nexports.ShapeFlags = ShapeFlags;\nexports.SlotFlags = SlotFlags;\nexports.camelize = camelize;\nexports.capitalize = capitalize;\nexports.cssVarNameEscapeSymbolsRE = cssVarNameEscapeSymbolsRE;\nexports.def = def;\nexports.escapeHtml = escapeHtml;\nexports.escapeHtmlComment = escapeHtmlComment;\nexports.extend = extend;\nexports.genCacheKey = genCacheKey;\nexports.genPropsAccessExp = genPropsAccessExp;\nexports.generateCodeFrame = generateCodeFrame;\nexports.getEscapedCssVarName = getEscapedCssVarName;\nexports.getGlobalThis = getGlobalThis;\nexports.hasChanged = hasChanged;\nexports.hasOwn = hasOwn;\nexports.hyphenate = hyphenate;\nexports.includeBooleanAttr = includeBooleanAttr;\nexports.invokeArrayFns = invokeArrayFns;\nexports.isArray = isArray;\nexports.isBooleanAttr = isBooleanAttr;\nexports.isBuiltInDirective = isBuiltInDirective;\nexports.isDate = isDate;\nexports.isFunction = isFunction;\nexports.isGloballyAllowed = isGloballyAllowed;\nexports.isGloballyWhitelisted = isGloballyWhitelisted;\nexports.isHTMLTag = isHTMLTag;\nexports.isIntegerKey = isIntegerKey;\nexports.isKnownHtmlAttr = isKnownHtmlAttr;\nexports.isKnownMathMLAttr = isKnownMathMLAttr;\nexports.isKnownSvgAttr = isKnownSvgAttr;\nexports.isMap = isMap;\nexports.isMathMLTag = isMathMLTag;\nexports.isModelListener = isModelListener;\nexports.isObject = isObject;\nexports.isOn = isOn;\nexports.isPlainObject = isPlainObject;\nexports.isPromise = isPromise;\nexports.isRegExp = isRegExp;\nexports.isRenderableAttrValue = isRenderableAttrValue;\nexports.isReservedProp = isReservedProp;\nexports.isSSRSafeAttrName = isSSRSafeAttrName;\nexports.isSVGTag = isSVGTag;\nexports.isSet = isSet;\nexports.isSpecialBooleanAttr = isSpecialBooleanAttr;\nexports.isString = isString;\nexports.isSymbol = isSymbol;\nexports.isVoidTag = isVoidTag;\nexports.looseEqual = looseEqual;\nexports.looseIndexOf = looseIndexOf;\nexports.looseToNumber = looseToNumber;\nexports.makeMap = makeMap;\nexports.normalizeClass = normalizeClass;\nexports.normalizeCssVarValue = normalizeCssVarValue;\nexports.normalizeProps = normalizeProps;\nexports.normalizeStyle = normalizeStyle;\nexports.objectToString = objectToString;\nexports.parseStringStyle = parseStringStyle;\nexports.propsToAttrMap = propsToAttrMap;\nexports.remove = remove;\nexports.slotFlagsText = slotFlagsText;\nexports.stringifyStyle = stringifyStyle;\nexports.toDisplayString = toDisplayString;\nexports.toHandlerKey = toHandlerKey;\nexports.toNumber = toNumber;\nexports.toRawType = toRawType;\nexports.toTypeString = toTypeString;\n","import { Transition, createStaticVNode, h } from \"vue\";\nimport { defu } from \"defu\";\nimport { isString, isPromise, isArray, isObject } from \"@vue/shared\";\nimport { START_LOCATION } from \"#build/pages\";\nexport const _wrapInTransition = (props, children) => {\n return { default: () => import.meta.client && props ? h(Transition, props === true ? {} : props, children) : children.default?.() };\n};\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nfunction generateRouteKey(route) {\n const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n return typeof source === \"function\" ? source(route) : source;\n}\nexport function isChangingPage(to, from) {\n if (to === from || from === START_LOCATION) {\n return false;\n }\n if (generateRouteKey(to) !== generateRouteKey(from)) {\n return true;\n }\n const areComponentsSame = to.matched.every(\n (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default\n );\n if (areComponentsSame) {\n return false;\n }\n return true;\n}\nexport function createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n } else {\n buffer.push(item);\n }\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nexport function vforToArray(source) {\n if (isArray(source)) {\n return source;\n } else if (isString(source)) {\n return source.split(\"\");\n } else if (typeof source === \"number\") {\n if (import.meta.dev && !Number.isInteger(source)) {\n console.warn(`The v-for range expect an integer value but got ${source}.`);\n }\n const array = [];\n for (let i = 0; i < source; i++) {\n array[i] = i;\n }\n return array;\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n return Array.from(\n source,\n (item) => item\n );\n } else {\n const keys = Object.keys(source);\n const array = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n array[i] = source[key];\n }\n return array;\n }\n }\n return [];\n}\nexport function getFragmentHTML(element, withoutSlots = false) {\n if (element) {\n if (element.nodeName === \"#comment\" && element.nodeValue === \"[\") {\n return getFragmentChildren(element, [], withoutSlots);\n }\n if (withoutSlots) {\n const clone = element.cloneNode(true);\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n return [clone.outerHTML];\n }\n return [element.outerHTML];\n }\n}\nfunction getFragmentChildren(element, blocks = [], withoutSlots = false) {\n if (element && element.nodeName) {\n if (isEndFragment(element)) {\n return blocks;\n } else if (!isStartFragment(element)) {\n const clone = element.cloneNode(true);\n if (withoutSlots) {\n clone.querySelectorAll?.(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n }\n blocks.push(clone.outerHTML);\n }\n getFragmentChildren(element.nextSibling, blocks, withoutSlots);\n }\n return blocks;\n}\nexport function elToStaticVNode(el, staticNodeFallback) {\n const fragment = el ? getFragmentHTML(el) : staticNodeFallback ? [staticNodeFallback] : void 0;\n if (fragment) {\n return createStaticVNode(fragment.join(\"\"), fragment.length);\n }\n return h(\"div\");\n}\nexport function isStartFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"[\";\n}\nexport function isEndFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"]\";\n}\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function _mergeTransitionProps(routeProps) {\n const _props = [];\n for (const prop of routeProps) {\n if (!prop) {\n continue;\n }\n _props.push({\n ...prop,\n onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0,\n onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0\n });\n }\n return defu(..._props);\n}\n","import { START_LOCATION } from \"vue-router\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { isChangingPage } from \"#app/components/utils\";\nimport { useRouter } from \"#app/composables/router\";\nexport default {\n scrollBehavior(to, from, savedPosition) {\n const nuxtApp = useNuxtApp();\n const hashScrollBehaviour = useRouter().options?.scrollBehaviorType ?? \"auto\";\n if (to.path.replace(/\\/$/, \"\") === from.path.replace(/\\/$/, \"\")) {\n if (from.hash && !to.hash) {\n return { left: 0, top: 0 };\n }\n if (to.hash) {\n return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior: hashScrollBehaviour };\n }\n return false;\n }\n const routeAllowsScrollToTop = typeof to.meta.scrollToTop === \"function\" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;\n if (routeAllowsScrollToTop === false) {\n return false;\n }\n if (from === START_LOCATION) {\n return _calculatePosition(to, from, savedPosition, hashScrollBehaviour);\n }\n return new Promise((resolve) => {\n const doScroll = () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)));\n };\n nuxtApp.hooks.hookOnce(\"page:loading:end\", () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(doScroll);\n } else {\n doScroll();\n }\n });\n });\n }\n};\nfunction _getHashElementScrollMarginTop(selector) {\n try {\n const elem = document.querySelector(selector);\n if (elem) {\n return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop) || 0);\n }\n } catch {\n }\n return 0;\n}\nfunction _calculatePosition(to, from, savedPosition, defaultHashScrollBehaviour) {\n if (savedPosition) {\n return savedPosition;\n }\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: isChangingPage(to, from) ? defaultHashScrollBehaviour : \"instant\"\n };\n }\n return {\n left: 0,\n top: 0\n };\n}\n","import routerOptions0 from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/router.options.js\";\nconst configRouterOptions = {\n hashMode: false,\n scrollBehaviorType: \"auto\"\n}\nexport const hashMode = false\nexport default {\n...configRouterOptions,\n...routerOptions0,\n}","import { createError } from \"#app/composables/error\";\nimport { defineNuxtRouteMiddleware } from \"#app/composables/router\";\nexport default defineNuxtRouteMiddleware(async (to, from) => {\n if (!to.meta?.validate) {\n return;\n }\n const result = await Promise.resolve(to.meta.validate(to));\n if (result === true) {\n return;\n }\n const error = createError({\n fatal: import.meta.client,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n status: result && (result.status || result.statusCode) || 404,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n });\n if (typeof window !== \"undefined\") {\n window.history.pushState({}, \"\", from.fullPath);\n }\n return error;\n});\n","import { hasProtocol } from \"ufo\";\nimport { defineNuxtRouteMiddleware } from \"../composables/router.js\";\nimport { getRouteRules } from \"../composables/manifest.js\";\nexport default defineNuxtRouteMiddleware((to) => {\n if (import.meta.server || import.meta.test) {\n return;\n }\n const rules = getRouteRules({ path: to.path });\n if (rules.redirect) {\n const path = rules.redirect.includes(\"#\") ? rules.redirect : rules.redirect + to.hash;\n if (hasProtocol(path, { acceptRelative: true })) {\n window.location.href = path;\n return false;\n }\n return path;\n }\n});\n","import validate from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/validate.js\";\nimport manifest_45route_45rule from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/middleware/route-rules.js\";\nexport const globalMiddleware = [\n validate,\n manifest_45route_45rule\n]\nexport const namedMiddleware = {}","import { defineAsyncComponent } from 'vue'\nexport const islandComponents = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})\nexport const pageIslandRoutes = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})","import { isReadonly, reactive, shallowReactive, shallowRef } from \"vue\";\nimport { START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { isSamePath, withoutBase } from \"ufo\";\nimport { toArray } from \"../utils.js\";\nimport { getRouteRules } from \"#app/composables/manifest\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { clearError, createError, isNuxtError, showError, useError } from \"#app/composables/error\";\nimport { navigateTo } from \"#app/composables/router\";\nimport _routes, { handleHotUpdate } from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options.mjs\";\nimport { globalMiddleware, namedMiddleware } from \"#build/middleware\";\nimport { pageIslandRoutes } from \"#build/components.islands.mjs\";\nfunction createCurrentLocation(base, location, renderedPath) {\n const { pathname, search, hash } = location;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n const slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\") {\n pathFromHash = \"/\" + pathFromHash;\n }\n return withoutBase(pathFromHash, \"\");\n }\n const displayedPath = withoutBase(pathname, base);\n const path = !renderedPath || isSamePath(displayedPath, renderedPath) ? displayedPath : renderedPath;\n return path + (path.includes(\"?\") ? \"\" : search) + hash;\n}\nconst plugin = defineNuxtPlugin({\n name: \"nuxt:router\",\n enforce: \"pre\",\n async setup(nuxtApp) {\n let routerBase = useRuntimeConfig().app.baseURL;\n if (hashMode && !routerBase.includes(\"#\")) {\n routerBase += \"#\";\n }\n const history = routerOptions.history?.(routerBase) ?? (import.meta.client ? hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase) : createMemoryHistory(routerBase));\n const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes;\n let startPosition;\n const router = createRouter({\n ...routerOptions,\n scrollBehavior: (to, from, savedPosition) => {\n if (from === START_LOCATION) {\n startPosition = savedPosition;\n return;\n }\n if (routerOptions.scrollBehavior) {\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n if (\"scrollRestoration\" in window.history) {\n const unsub = router.beforeEach(() => {\n unsub();\n window.history.scrollRestoration = \"manual\";\n });\n }\n return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);\n }\n },\n history,\n routes\n });\n if (import.meta.hot) {\n handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2);\n }\n if (import.meta.client && \"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"auto\";\n }\n nuxtApp.vueApp.use(router);\n const previousRoute = shallowRef(router.currentRoute.value);\n router.afterEach((_to, from) => {\n previousRoute.value = from;\n });\n Object.defineProperty(nuxtApp.vueApp.config.globalProperties, \"previousRoute\", {\n get: () => previousRoute.value\n });\n const initialURL = import.meta.server ? nuxtApp.ssrContext.url : createCurrentLocation(routerBase, window.location, nuxtApp.payload.path);\n const _route = shallowRef(router.currentRoute.value);\n const syncCurrentRoute = () => {\n _route.value = router.currentRoute.value;\n };\n router.afterEach((to, from) => {\n const lastTo = to.matched.at(-1)?.components?.default;\n const lastFrom = from.matched.at(-1)?.components?.default;\n if (lastTo === lastFrom) {\n syncCurrentRoute();\n return;\n }\n if (to.matched.length < from.matched.length && to.matched.every((m, i) => m.components?.default === from.matched[i]?.components?.default)) {\n syncCurrentRoute();\n }\n });\n const route = { sync: syncCurrentRoute };\n for (const key in _route.value) {\n Object.defineProperty(route, key, {\n get: () => _route.value[key],\n enumerable: true\n });\n }\n nuxtApp._route = shallowReactive(route);\n nuxtApp._middleware ||= {\n global: [],\n named: {}\n };\n const error = useError();\n const isServerPage = import.meta.server && nuxtApp.ssrContext?.islandContext?.name?.startsWith(\"page_\");\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n router.afterEach(async (to, _from, failure) => {\n delete nuxtApp._processingMiddleware;\n if (import.meta.client && !nuxtApp.isHydrating && error.value) {\n await nuxtApp.runWithContext(clearError);\n }\n if (failure) {\n await nuxtApp.callHook(\"page:loading:end\");\n }\n if (import.meta.server && failure?.type === 4) {\n return;\n }\n if (import.meta.server && to.redirectedFrom && to.fullPath !== initialURL) {\n await nuxtApp.runWithContext(() => navigateTo(to.fullPath || \"/\"));\n }\n });\n }\n try {\n if (import.meta.server) {\n await router.push(initialURL);\n }\n await router.isReady();\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n const resolvedInitialRoute = import.meta.client && initialURL !== router.currentRoute.value.fullPath ? router.resolve(initialURL) : router.currentRoute.value;\n const hasDeferredRoute = import.meta.client && nuxtApp.isHydrating && nuxtApp.payload.prerenderedAt && nuxtApp.payload.path && initialURL !== nuxtApp.payload.path && isSamePath(router.currentRoute.value.path, nuxtApp.payload.path);\n syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && !isServerPage) {\n return { provide: { router } };\n }\n const initialLayout = nuxtApp.payload.state._layout;\n router.beforeEach(async (to, from) => {\n await nuxtApp.callHook(\"page:loading:start\");\n to.meta = reactive(to.meta);\n if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {\n to.meta.layout = initialLayout;\n }\n nuxtApp._processingMiddleware = true;\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);\n for (const component of to.matched) {\n const componentMiddleware = component.meta.middleware;\n if (!componentMiddleware) {\n continue;\n }\n for (const entry of toArray(componentMiddleware)) {\n middlewareEntries.add(entry);\n }\n }\n const routeRules = getRouteRules({ path: to.path });\n if (routeRules.appMiddleware) {\n for (const key in routeRules.appMiddleware) {\n if (routeRules.appMiddleware[key]) {\n middlewareEntries.add(key);\n } else {\n middlewareEntries.delete(key);\n }\n }\n }\n for (const entry of middlewareEntries) {\n const middleware = typeof entry === \"string\" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;\n if (!middleware) {\n if (import.meta.dev) {\n throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map((mw) => `'${mw}'`).join(\", \")}.`);\n }\n throw new Error(`Unknown route middleware: '${entry}'.`);\n }\n try {\n if (import.meta.dev) {\n nuxtApp._processingMiddleware = middleware._path || (typeof entry === \"string\" ? entry : true);\n }\n const result = await nuxtApp.runWithContext(() => middleware(to, from));\n if (import.meta.server || !nuxtApp.payload.serverRendered && nuxtApp.isHydrating) {\n if (result === false || result instanceof Error) {\n const error2 = result || createError({\n status: 404,\n statusText: `Page Not Found: ${initialURL}`\n });\n await nuxtApp.runWithContext(() => showError(error2));\n return false;\n }\n }\n if (result === true) {\n continue;\n }\n if (result === false) {\n return result;\n }\n if (result) {\n if (isNuxtError(result) && result.fatal) {\n await nuxtApp.runWithContext(() => showError(result));\n }\n return result;\n }\n } catch (err) {\n const error2 = createError(err);\n if (error2.fatal) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n return error2;\n }\n }\n }\n });\n if (isServerPage) {\n router.beforeResolve((to) => {\n const expected = pageIslandRoutes[nuxtApp.ssrContext.islandContext.name];\n const actual = to.matched.find((m) => m.components?.default?.__nuxt_island)?.components?.default;\n if (!expected || expected !== actual?.__nuxt_island) {\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: 400,\n statusMessage: \"Invalid island request path\"\n };\n return false;\n }\n });\n }\n router.onError(async () => {\n delete nuxtApp._processingMiddleware;\n await nuxtApp.callHook(\"page:loading:end\");\n });\n router.afterEach((to) => {\n if (to.matched.length === 0 && !error.value) {\n return nuxtApp.runWithContext(() => showError(createError({\n status: 404,\n fatal: false,\n statusText: `Page not found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n })));\n }\n });\n nuxtApp.hooks.hookOnce(\"app:created\", async () => {\n try {\n if (\"name\" in resolvedInitialRoute) {\n resolvedInitialRoute.name = void 0;\n }\n if (hasDeferredRoute) {\n const payloadRoute = router.resolve(nuxtApp.payload.path);\n if (\"name\" in payloadRoute) {\n payloadRoute.name = void 0;\n }\n await router.replace({ ...payloadRoute, force: true });\n nuxtApp.hooks.hookOnce(\"app:suspense:resolve\", async () => {\n await router.replace({ ...resolvedInitialRoute, force: true });\n });\n } else {\n await router.replace({\n ...resolvedInitialRoute,\n force: true\n });\n }\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n });\n return { provide: { router } };\n }\n});\nexport default plugin;\n","import { isReactive, isRef, isShallow, toRaw } from \"vue\";\nimport { definePayloadReducer } from \"../composables/payload.js\";\nimport { isNuxtError } from \"../composables/error.js\";\nimport { defineNuxtPlugin } from \"../nuxt.js\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nimport { isValidIslandKey } from \"./utils.js\";\nconst reducers = [\n [\"NuxtError\", (data) => isNuxtError(data) && data.toJSON()],\n [\"EmptyShallowRef\", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"EmptyRef\", (data) => isRef(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"ShallowRef\", (data) => isRef(data) && isShallow(data) && data.value],\n [\"ShallowReactive\", (data) => isReactive(data) && isShallow(data) && toRaw(data)],\n [\"Ref\", (data) => isRef(data) && data.value],\n [\"Reactive\", (data) => isReactive(data) && toRaw(data)]\n];\nif (componentIslands) {\n reducers.push([\"Island\", (data) => data && data?.__nuxt_island && isValidIslandKey(data.__nuxt_island.key) && data.__nuxt_island]);\n}\nexport default defineNuxtPlugin({\n name: \"nuxt:revive-payload:server\",\n setup() {\n for (const [reducer, fn] of reducers) {\n definePayloadReducer(reducer, fn);\n }\n }\n});\n","import { createCommentVNode, createElementBlock, defineComponent } from \"vue\";\nimport { clientNodePlaceholder } from \"#build/nuxt.config.mjs\";\nexport default defineComponent({\n name: \"ServerPlaceholder\",\n render() {\n return clientNodePlaceholder ? createCommentVNode(\"placeholder\") : createElementBlock(\"div\");\n }\n});\n","import { cloneVNode, createCommentVNode, createElementBlock, defineComponent, getCurrentInstance, h, onMounted, provide, shallowRef } from \"vue\";\nimport { isPromise } from \"@vue/shared\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport ServerPlaceholder from \"./server-placeholder.js\";\nimport { elToStaticVNode } from \"./utils.js\";\nimport { clientNodePlaceholder } from \"#build/nuxt.config.mjs\";\nexport const clientOnlySymbol = Symbol.for(\"nuxt:client-only\");\nconst STATIC_DIV = \"
\";\nfunction isPlaceholderComment(el) {\n return el.nodeName === \"#comment\" && el.nodeValue === \"placeholder\";\n}\nfunction createPlaceholder(el) {\n if (el && !isPlaceholderComment(el)) {\n return elToStaticVNode(el, STATIC_DIV);\n }\n return clientNodePlaceholder ? createCommentVNode(\"placeholder\") : h(\"div\");\n}\nexport default defineComponent({\n name: \"ClientOnly\",\n inheritAttrs: false,\n props: [\"fallback\", \"placeholder\", \"placeholderTag\", \"fallbackTag\"],\n ...import.meta.dev && {\n slots: Object\n },\n setup(props, { slots, attrs }) {\n const mounted = shallowRef(false);\n onMounted(() => {\n mounted.value = true;\n });\n if (import.meta.dev) {\n const nuxtApp = useNuxtApp();\n nuxtApp._isNuxtPageUsed = true;\n nuxtApp._isNuxtLayoutUsed = true;\n }\n const vm = getCurrentInstance();\n if (vm) {\n vm._nuxtClientOnly = true;\n }\n provide(clientOnlySymbol, true);\n return () => {\n if (mounted.value) {\n const vnodes = slots.default?.();\n if (vnodes && vnodes.length === 1) {\n return [cloneVNode(vnodes[0], attrs)];\n }\n return vnodes;\n }\n const slot = slots.fallback || slots.placeholder;\n if (slot) {\n return h(slot);\n }\n const fallbackStr = props.fallback || props.placeholder || \"\";\n const fallbackTag = props.fallbackTag || props.placeholderTag || \"span\";\n return createElementBlock(fallbackTag, attrs, fallbackStr);\n };\n }\n});\nconst cache = /* @__PURE__ */ new WeakMap();\n// @__NO_SIDE_EFFECTS__\nexport function createClientOnly(component) {\n if (import.meta.server) {\n return ServerPlaceholder;\n }\n if (cache.has(component)) {\n return cache.get(component);\n }\n const clone = { ...component };\n if (clone.render) {\n clone.render = (ctx, cache2, $props, $setup, $data, $options) => {\n if ($setup.mounted$ ?? ctx.mounted$) {\n const res = component.render?.bind(ctx)(ctx, cache2, $props, $setup, $data, $options);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return createPlaceholder(ctx._.vnode.el);\n };\n } else {\n const placeholderTemplate = clientNodePlaceholder ? \"\" : \"
\";\n clone.template &&= `\n \n \n `;\n }\n clone.setup = (props, ctx) => {\n const nuxtApp = useNuxtApp();\n const mounted$ = shallowRef(nuxtApp.isHydrating === false);\n const instance = getCurrentInstance();\n if (nuxtApp.isHydrating) {\n const attrs = { ...instance.attrs };\n const directives = extractDirectives(instance);\n for (const key in attrs) {\n delete instance.attrs[key];\n }\n onMounted(() => {\n Object.assign(instance.attrs, attrs);\n instance.vnode.dirs = directives;\n });\n }\n onMounted(() => {\n mounted$.value = true;\n });\n const setupState = component.setup?.(props, ctx) || {};\n if (isPromise(setupState)) {\n return Promise.resolve(setupState).then((setupState2) => {\n if (typeof setupState2 !== \"function\") {\n setupState2 ||= {};\n setupState2.mounted$ = mounted$;\n return setupState2;\n }\n return (...args) => {\n if (mounted$.value || !nuxtApp.isHydrating) {\n const res = setupState2(...args);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return createPlaceholder(instance?.vnode.el);\n };\n });\n } else {\n if (typeof setupState === \"function\") {\n return (...args) => {\n if (mounted$.value) {\n const res = setupState(...args);\n const attrs = clone.inheritAttrs !== false ? ctx.attrs : void 0;\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res, attrs) : h(res, attrs);\n }\n return createPlaceholder(instance?.vnode.el);\n };\n }\n return Object.assign(setupState, { mounted$ });\n }\n };\n cache.set(component, clone);\n return clone;\n}\nfunction extractDirectives(instance) {\n if (!instance || !instance.vnode.dirs) {\n return null;\n }\n const directives = instance.vnode.dirs;\n instance.vnode.dirs = null;\n return directives;\n}\n","import { kebabCase } from \"scule\";\nexport function defineKeyedFunctionFactory(factory) {\n const placeholder = function() {\n if (import.meta.dev) {\n throw new Error(\n `[nuxt:compiler] \\`${factory.name}\\` is a compiler macro that is only usable inside the directories scanned by the Nuxt compiler as an exported function and imported statically. Learn more: \\`https://nuxt.com/docs/4.x/api/composables/${kebabCase(factory.name)}\\``\n );\n }\n throw new Error(`[nuxt] \\`${factory.name}\\` is a compiler macro and cannot be called at runtime.`);\n };\n return Object.defineProperty(placeholder, \"__nuxt_factory\", {\n enumerable: false,\n get: () => factory.factory\n });\n}\n","import { computed, getCurrentInstance, getCurrentScope, inject, isRef, isShallow, nextTick, onBeforeMount, onScopeDispose, onServerPrefetch, onUnmounted, queuePostFlushCb, ref, shallowRef, toRef, toValue, unref, watch } from \"vue\";\nimport { debounce } from \"perfect-debounce\";\nimport { hash } from \"ohash\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { getUserCaller, toArray } from \"../utils.js\";\nimport { clientOnlySymbol } from \"../components/client-only.js\";\nimport { createError } from \"./error.js\";\nimport { onNuxtReady } from \"./ready.js\";\nimport { defineKeyedFunctionFactory } from \"../../compiler/runtime\";\nimport { asyncDataDefaults, granularCachedData, pendingWhenIdle, purgeCachedData } from \"#build/nuxt.config.mjs\";\nexport const createUseAsyncData = defineKeyedFunctionFactory({\n name: \"createUseAsyncData\",\n factory(options = {}) {\n function useAsyncData2(...args) {\n const autoKey = typeof args[args.length - 1] === \"string\" ? args.pop() : void 0;\n if (_isAutoKeyNeeded(args[0], args[1])) {\n args.unshift(autoKey);\n }\n let [_key, _handler, opts = {}] = args;\n let keyChanging = false;\n const isKeyReactive = isRef(_key) || typeof _key === \"function\";\n const key = isKeyReactive ? computed(() => toValue(_key)) : { value: _key };\n if (!key.value || typeof key.value !== \"string\") {\n throw new TypeError(\"[nuxt] [useAsyncData] key must be a non-empty string.\");\n }\n if (typeof _handler !== \"function\") {\n throw new TypeError(\"[nuxt] [useAsyncData] handler must be a function.\");\n }\n const shouldFactoryOptionsOverride = typeof options === \"function\";\n const nuxtApp = useNuxtApp();\n const factoryOptions = shouldFactoryOptionsOverride ? options(opts) : options;\n if (!shouldFactoryOptionsOverride) {\n for (const key2 in factoryOptions) {\n if (factoryOptions[key2] === void 0) {\n continue;\n }\n if (opts[key2] !== void 0) {\n continue;\n }\n opts[key2] = factoryOptions[key2];\n }\n }\n opts.server ??= true;\n opts.default ??= getDefault;\n opts.getCachedData ??= getDefaultCachedData;\n opts.lazy ??= false;\n opts.immediate ??= true;\n opts.deep ??= asyncDataDefaults.deep;\n opts.dedupe ??= \"cancel\";\n if (shouldFactoryOptionsOverride) {\n for (const key2 in factoryOptions) {\n if (factoryOptions[key2] === void 0) {\n continue;\n }\n opts[key2] = factoryOptions[key2];\n }\n }\n const functionName = import.meta.dev ? factoryOptions._functionName || \"useAsyncData\" : \"\";\n const currentData = nuxtApp._asyncData[key.value];\n if (import.meta.dev && currentData) {\n const warnings = [];\n const values = createHash(_handler, opts);\n if (values.handler !== currentData._hash?.handler) {\n warnings.push(`different handler`);\n }\n for (const opt of [\"transform\", \"pick\", \"getCachedData\"]) {\n if (values[opt] !== currentData._hash[opt]) {\n warnings.push(`different \\`${opt}\\` option`);\n }\n }\n if (currentData._default.toString() !== opts.default.toString()) {\n warnings.push(`different \\`default\\` value`);\n }\n if (opts.deep && isShallow(currentData.data)) {\n warnings.push(`mismatching \\`deep\\` option`);\n }\n if (warnings.length) {\n const caller = getUserCaller();\n const explanation = caller ? ` (used at ${caller.source}:${caller.line}:${caller.column})` : \"\";\n console.warn(`[nuxt] [${functionName}] Incompatible options detected for \"${key.value}\"${explanation}:\n${warnings.map((w) => `- ${w}`).join(\"\\n\")}\nYou can use a different key or move the call to a composable to ensure the options are shared across calls.`);\n }\n }\n function createInitialFetch() {\n const initialFetchOptions = { cause: \"initial\", dedupe: opts.dedupe };\n const existing = nuxtApp._asyncData[key.value];\n if (!existing?._init) {\n initialFetchOptions.cachedData = opts.getCachedData(key.value, nuxtApp, { cause: \"initial\" });\n nuxtApp._asyncData[key.value] = buildAsyncData(nuxtApp, key.value, _handler, opts, initialFetchOptions.cachedData);\n nuxtApp._asyncData[key.value]._initialCachedData = initialFetchOptions.cachedData;\n } else if (nuxtApp._asyncDataPromises[key.value]) {\n initialFetchOptions.cachedData = existing._initialCachedData;\n }\n return () => nuxtApp._asyncData[key.value].execute(initialFetchOptions);\n }\n const initialFetch = createInitialFetch();\n const asyncData = nuxtApp._asyncData[key.value];\n asyncData._deps++;\n const fetchOnServer = opts.server !== false && nuxtApp.payload.serverRendered;\n if (import.meta.server && fetchOnServer && opts.immediate) {\n const promise = initialFetch();\n if (getCurrentInstance()) {\n onServerPrefetch(() => promise);\n } else {\n nuxtApp.hook(\"app:created\", async () => {\n await promise;\n });\n }\n }\n if (import.meta.client) {\n let unregister = function(key2) {\n const data = nuxtApp._asyncData[key2];\n if (data?._deps) {\n data._deps--;\n if (data._deps === 0) {\n data?._off();\n }\n }\n };\n const instance = getCurrentInstance();\n if (instance && fetchOnServer && opts.immediate && !instance.sp) {\n instance.sp = [];\n }\n if (import.meta.dev && !nuxtApp.isHydrating && !nuxtApp._processingMiddleware && (!instance || instance?.isMounted)) {\n console.warn(`[nuxt] [${functionName}] Component is already mounted, please use $fetch instead. See https://nuxt.com/docs/4.x/getting-started/data-fetching`);\n }\n if (instance && !instance._nuxtOnBeforeMountCbs) {\n instance._nuxtOnBeforeMountCbs = [];\n const cbs = instance._nuxtOnBeforeMountCbs;\n onBeforeMount(() => {\n cbs.forEach((cb) => {\n cb();\n });\n cbs.splice(0, cbs.length);\n });\n onUnmounted(() => cbs.splice(0, cbs.length));\n }\n const isWithinClientOnly = instance && (instance._nuxtClientOnly || inject(clientOnlySymbol, false));\n if (fetchOnServer && nuxtApp.isHydrating && (asyncData.error.value || asyncData.data.value !== void 0)) {\n if (pendingWhenIdle) {\n asyncData.pending.value = false;\n }\n asyncData.status.value = asyncData.error.value ? \"error\" : \"success\";\n } else if (instance && (!isWithinClientOnly && nuxtApp.payload.serverRendered && nuxtApp.isHydrating || opts.lazy) && opts.immediate) {\n instance._nuxtOnBeforeMountCbs.push(initialFetch);\n } else if (opts.immediate && asyncData.status.value !== \"success\") {\n initialFetch();\n }\n const hasScope = getCurrentScope();\n const noop = () => {\n };\n const unsubKeyWatcher = isKeyReactive ? watch(key, (newKey, oldKey) => {\n if ((newKey || oldKey) && newKey !== oldKey) {\n keyChanging = true;\n const hadData = nuxtApp._asyncData[oldKey]?.data.value !== void 0;\n const wasRunning = nuxtApp._asyncDataPromises[oldKey] !== void 0;\n const initialFetchOptions = { cause: \"initial\", dedupe: opts.dedupe };\n if (!nuxtApp._asyncData[newKey]?._init) {\n let initialValue;\n if (oldKey && hadData) {\n initialValue = nuxtApp._asyncData[oldKey].data.value;\n } else {\n initialValue = opts.getCachedData(newKey, nuxtApp, { cause: \"initial\" });\n initialFetchOptions.cachedData = initialValue;\n }\n nuxtApp._asyncData[newKey] = buildAsyncData(nuxtApp, newKey, _handler, opts, initialValue);\n }\n nuxtApp._asyncData[newKey]._deps++;\n if (oldKey) {\n unregister(oldKey);\n }\n const keyTriggersExecute = opts._keyTriggersExecute !== false;\n if (keyTriggersExecute && (opts.immediate || hadData || wasRunning)) {\n nuxtApp._asyncData[newKey].execute(initialFetchOptions);\n }\n queuePostFlushCb(() => {\n keyChanging = false;\n });\n }\n }, { flush: \"sync\" }) : noop;\n const unsubParamsWatcher = opts.watch ? watch(opts.watch, () => {\n if (keyChanging) {\n return;\n }\n if (nuxtApp._asyncData[key.value]?._execute.isPending()) {\n queuePostFlushCb(() => {\n nuxtApp._asyncData[key.value]?._execute.flush();\n });\n }\n nuxtApp._asyncData[key.value]?._execute({ cause: \"watch\", dedupe: opts.dedupe });\n }) : noop;\n if (hasScope) {\n onScopeDispose(() => {\n unsubKeyWatcher();\n unsubParamsWatcher();\n unregister(key.value);\n });\n }\n }\n const asyncReturn = {\n data: writableComputedRef(() => nuxtApp._asyncData[key.value]?.data),\n pending: writableComputedRef(() => nuxtApp._asyncData[key.value]?.pending),\n status: writableComputedRef(() => nuxtApp._asyncData[key.value]?.status),\n error: writableComputedRef(() => nuxtApp._asyncData[key.value]?.error),\n refresh: (...args2) => {\n if (!nuxtApp._asyncData[key.value]?._init) {\n const initialFetch2 = createInitialFetch();\n return initialFetch2();\n }\n return nuxtApp._asyncData[key.value].execute(...args2);\n },\n execute: (...args2) => asyncReturn.refresh(...args2),\n clear: () => {\n const entry = nuxtApp._asyncData[key.value];\n if (entry?._abortController) {\n try {\n entry._abortController.abort(new DOMException(\"AsyncData aborted by user.\", \"AbortError\"));\n } finally {\n entry._abortController = void 0;\n }\n }\n clearNuxtDataByKey(nuxtApp, key.value);\n }\n };\n const asyncDataPromise = Promise.resolve(nuxtApp._asyncDataPromises[key.value]).then(() => asyncReturn);\n Object.assign(asyncDataPromise, asyncReturn);\n Object.defineProperties(asyncDataPromise, {\n then: { enumerable: true, value: asyncDataPromise.then.bind(asyncDataPromise) },\n catch: { enumerable: true, value: asyncDataPromise.catch.bind(asyncDataPromise) },\n finally: { enumerable: true, value: asyncDataPromise.finally.bind(asyncDataPromise) }\n });\n return asyncDataPromise;\n }\n return useAsyncData2;\n }\n});\nexport const useAsyncData = createUseAsyncData.__nuxt_factory();\nexport const useLazyAsyncData = createUseAsyncData.__nuxt_factory({\n lazy: true,\n // @ts-expect-error private property\n _functionName: \"useLazyAsyncData\"\n});\nfunction writableComputedRef(getter) {\n return computed({\n get() {\n return getter()?.value;\n },\n set(value) {\n const ref2 = getter();\n if (ref2) {\n ref2.value = value;\n }\n }\n });\n}\nfunction _isAutoKeyNeeded(keyOrFetcher, fetcher) {\n if (typeof keyOrFetcher === \"string\") {\n return false;\n }\n if (typeof keyOrFetcher === \"object\" && keyOrFetcher !== null) {\n return false;\n }\n if (typeof keyOrFetcher === \"function\" && typeof fetcher === \"function\") {\n return false;\n }\n return true;\n}\nexport function useNuxtData(key) {\n const nuxtApp = useNuxtApp();\n if (!(key in nuxtApp.payload.data)) {\n nuxtApp.payload.data[key] = void 0;\n }\n if (nuxtApp._asyncData[key]) {\n const data = nuxtApp._asyncData[key];\n data._deps++;\n if (getCurrentScope()) {\n onScopeDispose(() => {\n data._deps--;\n if (data._deps === 0) {\n data?._off();\n }\n });\n }\n }\n return {\n data: computed({\n get() {\n return nuxtApp._asyncData[key]?.data.value ?? nuxtApp.payload.data[key];\n },\n set(value) {\n if (nuxtApp._asyncData[key]) {\n nuxtApp._asyncData[key].data.value = value;\n } else {\n nuxtApp.payload.data[key] = value;\n }\n }\n })\n };\n}\nexport async function refreshNuxtData(keys) {\n if (import.meta.server) {\n return Promise.resolve();\n }\n await new Promise((resolve) => onNuxtReady(resolve));\n const _keys = keys ? toArray(keys) : void 0;\n await useNuxtApp().hooks.callHookParallel(\"app:data:refresh\", _keys);\n}\nexport function clearNuxtData(keys) {\n const nuxtApp = useNuxtApp();\n const _allKeys = Object.keys(nuxtApp.payload.data);\n const _keys = !keys ? _allKeys : typeof keys === \"function\" ? _allKeys.filter(keys) : toArray(keys);\n for (const key of _keys) {\n clearNuxtDataByKey(nuxtApp, key);\n }\n}\nfunction clearNuxtDataByKey(nuxtApp, key) {\n if (key in nuxtApp.payload.data) {\n nuxtApp.payload.data[key] = void 0;\n }\n if (key in nuxtApp.payload._errors) {\n nuxtApp.payload._errors[key] = void 0;\n }\n if (nuxtApp._asyncData[key]) {\n nuxtApp._asyncData[key].data.value = unref(nuxtApp._asyncData[key]._default());\n nuxtApp._asyncData[key].error.value = void 0;\n if (pendingWhenIdle) {\n nuxtApp._asyncData[key].pending.value = false;\n }\n nuxtApp._asyncData[key].status.value = \"idle\";\n nuxtApp._asyncData[key]._initialCachedData = void 0;\n }\n if (key in nuxtApp._asyncDataPromises) {\n nuxtApp._asyncDataPromises[key] = void 0;\n }\n}\nfunction pick(obj, keys) {\n const newObj = {};\n for (const key of keys) {\n newObj[key] = obj[key];\n }\n return newObj;\n}\nfunction buildAsyncData(nuxtApp, key, _handler, options, initialCachedData) {\n nuxtApp.payload._errors[key] ??= void 0;\n const hasCustomGetCachedData = options.getCachedData !== getDefaultCachedData;\n const handler = import.meta.client || !import.meta.prerender || !nuxtApp.ssrContext?.[\"~sharedPrerenderCache\"] ? _handler : (nuxtApp2, options2) => {\n const value = nuxtApp2.ssrContext[\"~sharedPrerenderCache\"].get(key);\n if (value) {\n return value;\n }\n const promise = Promise.resolve().then(() => nuxtApp2.runWithContext(() => _handler(nuxtApp2, options2)));\n nuxtApp2.ssrContext[\"~sharedPrerenderCache\"].set(key, promise);\n return promise;\n };\n const _ref = options.deep ? ref : shallowRef;\n const hasCachedData = initialCachedData !== void 0;\n const unsubRefreshAsyncData = nuxtApp.hook(\"app:data:refresh\", async (keys) => {\n if (!keys || keys.includes(key)) {\n await asyncData.execute({ cause: \"refresh:hook\" });\n }\n });\n const asyncData = {\n data: _ref(hasCachedData ? initialCachedData : options.default()),\n pending: pendingWhenIdle ? shallowRef(!hasCachedData) : computed(() => asyncData.status.value === \"pending\"),\n error: toRef(nuxtApp.payload._errors, key),\n status: shallowRef(\"idle\"),\n execute: (...args) => {\n const [_opts, newValue = void 0] = args;\n const opts = _opts && newValue === void 0 && typeof _opts === \"object\" ? _opts : {};\n if (import.meta.dev && newValue !== void 0 && (!_opts || typeof _opts !== \"object\")) {\n console.warn(`[nuxt] [${options._functionName}] Do not pass \\`execute\\` directly to \\`watch\\`. Instead, use an inline function, such as \\`watch(q, () => execute())\\`.`);\n }\n if (nuxtApp._asyncDataPromises[key]) {\n if ((opts.dedupe ?? options.dedupe) === \"defer\") {\n return nuxtApp._asyncDataPromises[key];\n }\n }\n if (granularCachedData || opts.cause === \"initial\" || nuxtApp.isHydrating) {\n const cachedData = \"cachedData\" in opts ? opts.cachedData : options.getCachedData(key, nuxtApp, { cause: opts.cause ?? \"refresh:manual\" });\n if (cachedData !== void 0) {\n nuxtApp.payload.data[key] = asyncData.data.value = cachedData;\n asyncData.error.value = void 0;\n asyncData.status.value = \"success\";\n return Promise.resolve(cachedData);\n }\n }\n if (pendingWhenIdle) {\n asyncData.pending.value = true;\n }\n if (asyncData._abortController) {\n asyncData._abortController.abort(new DOMException(\"AsyncData request cancelled by deduplication\", \"AbortError\"));\n }\n asyncData._abortController = new AbortController();\n asyncData.status.value = \"pending\";\n const cleanupController = new AbortController();\n const promise = new Promise(\n (resolve, reject) => {\n try {\n const timeout = opts.timeout ?? options.timeout;\n const mergedSignal = mergeAbortSignals([asyncData._abortController?.signal, opts?.signal], cleanupController.signal, timeout);\n if (mergedSignal.aborted) {\n const reason = mergedSignal.reason;\n reject(reason instanceof Error ? reason : new DOMException(String(reason ?? \"Aborted\"), \"AbortError\"));\n return;\n }\n mergedSignal.addEventListener(\"abort\", () => {\n const reason = mergedSignal.reason;\n reject(reason instanceof Error ? reason : new DOMException(String(reason ?? \"Aborted\"), \"AbortError\"));\n }, { once: true, signal: cleanupController.signal });\n return Promise.resolve(handler(nuxtApp, { signal: mergedSignal })).then(resolve, reject);\n } catch (err) {\n reject(err);\n }\n }\n ).then(async (_result) => {\n if (nuxtApp._asyncDataPromises[key] !== promise) {\n return;\n }\n let result = _result;\n if (options.transform) {\n result = await options.transform(_result);\n }\n if (options.pick) {\n result = pick(result, options.pick);\n }\n if (import.meta.dev && import.meta.server && typeof result === \"undefined\") {\n const caller = getUserCaller();\n const explanation = caller ? ` (used at ${caller.source}:${caller.line}:${caller.column})` : \"\";\n console.warn(`[nuxt] \\`${options._functionName || \"useAsyncData\"}${explanation}\\` must return a value (it should not be \\`undefined\\`) or the request may be duplicated on the client side.`);\n }\n nuxtApp.payload.data[key] = result;\n asyncData.data.value = result;\n asyncData.error.value = void 0;\n asyncData.status.value = \"success\";\n }).catch((error) => {\n if (nuxtApp._asyncDataPromises[key] !== promise) {\n return nuxtApp._asyncDataPromises[key];\n }\n if (asyncData._abortController?.signal.aborted) {\n return nuxtApp._asyncDataPromises[key];\n }\n if (typeof DOMException !== \"undefined\" && error instanceof DOMException && error.name === \"AbortError\") {\n asyncData.status.value = \"idle\";\n return nuxtApp._asyncDataPromises[key];\n }\n asyncData.error.value = createError(error);\n asyncData.data.value = unref(options.default());\n asyncData.status.value = \"error\";\n }).finally(() => {\n cleanupController.abort();\n if (nuxtApp._asyncDataPromises[key] === promise) {\n if (pendingWhenIdle) {\n asyncData.pending.value = false;\n }\n delete nuxtApp._asyncDataPromises[key];\n }\n });\n nuxtApp._asyncDataPromises[key] = promise;\n return nuxtApp._asyncDataPromises[key];\n },\n _execute: debounce((...args) => asyncData.execute(...args), 0, { leading: true }),\n _default: options.default,\n _deps: 0,\n _init: true,\n _hash: import.meta.dev ? createHash(_handler, options) : void 0,\n _off: () => {\n unsubRefreshAsyncData();\n if (nuxtApp._asyncData[key]?._init) {\n nuxtApp._asyncData[key]._init = false;\n }\n if (purgeCachedData && !hasCustomGetCachedData) {\n nextTick(() => {\n if (!nuxtApp._asyncData[key]?._init) {\n clearNuxtDataByKey(nuxtApp, key);\n asyncData.execute = () => Promise.resolve();\n }\n });\n }\n }\n };\n return asyncData;\n}\nconst getDefault = () => void 0;\nconst getDefaultCachedData = (key, nuxtApp, ctx) => {\n if (nuxtApp.isHydrating) {\n return nuxtApp.payload.data[key];\n }\n if (ctx.cause !== \"refresh:manual\" && ctx.cause !== \"refresh:hook\") {\n return nuxtApp.static.data[key];\n }\n};\nfunction createHash(_handler, options) {\n return {\n handler: hash(_handler),\n transform: options.transform ? hash(options.transform) : void 0,\n pick: options.pick ? hash(options.pick) : void 0,\n getCachedData: options.getCachedData ? hash(options.getCachedData) : void 0\n };\n}\nfunction mergeAbortSignals(signals, cleanupSignal, timeout) {\n const list = signals.filter((s) => !!s);\n if (typeof timeout === \"number\" && timeout >= 0) {\n const timeoutSignal = AbortSignal.timeout?.(timeout);\n if (timeoutSignal) {\n list.push(timeoutSignal);\n }\n }\n if (AbortSignal.any) {\n return AbortSignal.any(list);\n }\n const controller = new AbortController();\n for (const sig of list) {\n if (sig.aborted) {\n const reason = sig.reason ?? new DOMException(\"Aborted\", \"AbortError\");\n try {\n controller.abort(reason);\n } catch {\n controller.abort();\n }\n return controller.signal;\n }\n }\n const onAbort = () => {\n const abortedSignal = list.find((s) => s.aborted);\n const reason = abortedSignal?.reason ?? new DOMException(\"Aborted\", \"AbortError\");\n try {\n controller.abort(reason);\n } catch {\n controller.abort();\n }\n };\n for (const sig of list) {\n sig.addEventListener?.(\"abort\", onAbort, { once: true, signal: cleanupSignal });\n }\n return controller.signal;\n}\n","import { setResponseStatus as _setResponseStatus, appendHeader, getRequestHeader, getRequestHeaders, getResponseHeader, removeResponseHeader, setResponseHeader } from \"@nuxt/nitro-server/h3\";\nimport { computed, getCurrentInstance, ref } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useHead } from \"./head.js\";\nexport function useRequestEvent(nuxtApp) {\n if (import.meta.client) {\n return;\n }\n nuxtApp ||= useNuxtApp();\n return nuxtApp.ssrContext?.event;\n}\nexport function useRequestHeaders(include) {\n if (import.meta.client) {\n return {};\n }\n const event = useRequestEvent();\n const _headers = event ? getRequestHeaders(event) : {};\n if (!include || !event) {\n return _headers;\n }\n const headers = /* @__PURE__ */ Object.create(null);\n for (const _key of include) {\n const key = _key.toLowerCase();\n const header = _headers[key];\n if (header) {\n headers[key] = header;\n }\n }\n return headers;\n}\nexport function useRequestHeader(header) {\n if (import.meta.client) {\n return void 0;\n }\n const event = useRequestEvent();\n return event ? getRequestHeader(event, header) : void 0;\n}\nexport function useRequestFetch() {\n if (import.meta.client) {\n return globalThis.$fetch;\n }\n return useRequestEvent()?.$fetch || globalThis.$fetch;\n}\nexport function setResponseStatus(arg1, arg2, arg3) {\n if (import.meta.client) {\n return;\n }\n if (arg1 && typeof arg1 !== \"number\") {\n return _setResponseStatus(arg1, arg2, arg3);\n }\n const event = useRequestEvent();\n if (event) {\n return _setResponseStatus(event, arg1, arg2);\n }\n}\nexport function useResponseHeader(header) {\n if (import.meta.client) {\n if (import.meta.dev) {\n return computed({\n get: () => void 0,\n set: () => console.warn(\"[nuxt] Setting response headers is not supported in the browser.\")\n });\n }\n return ref();\n }\n const event = useRequestEvent();\n return computed({\n get() {\n return getResponseHeader(event, header);\n },\n set(newValue) {\n if (!newValue) {\n return removeResponseHeader(event, header);\n }\n return setResponseHeader(event, header, newValue);\n }\n });\n}\nexport function prerenderRoutes(path) {\n if (!import.meta.server || !import.meta.prerender) {\n return;\n }\n const paths = toArray(path);\n appendHeader(useRequestEvent(), \"x-nitro-prerender\", paths.map((p) => encodeURIComponent(p)).join(\", \"));\n}\nconst PREHYDRATE_ATTR_KEY = \"data-prehydrate-id\";\nexport function onPrehydrate(callback, key) {\n if (import.meta.client) {\n return;\n }\n if (typeof callback !== \"string\") {\n throw new TypeError(\"[nuxt] To transform a callback into a string, `onPrehydrate` must be processed by the Nuxt build pipeline. If it is called in a third-party library, make sure to add the library to `build.transpile`.\");\n }\n const vm = getCurrentInstance();\n if (vm && key) {\n vm.attrs[PREHYDRATE_ATTR_KEY] ||= \"\";\n key = \":\" + key + \":\";\n if (!vm.attrs[PREHYDRATE_ATTR_KEY].includes(key)) {\n vm.attrs[PREHYDRATE_ATTR_KEY] += key;\n }\n }\n const code = vm && key ? `document.querySelectorAll('[${PREHYDRATE_ATTR_KEY}*=${JSON.stringify(key)}]').forEach` + callback : callback + \"()\";\n useHead({\n script: [{\n key: vm && key ? key : void 0,\n tagPosition: \"bodyClose\",\n tagPriority: \"critical\",\n innerHTML: code\n }]\n });\n return vm && key ? vm.attrs[PREHYDRATE_ATTR_KEY] : void 0;\n}\n","import { computed, reactive, toValue, watch } from \"vue\";\nimport { hash } from \"ohash\";\nimport { isPlainObject } from \"@vue/shared\";\nimport { useRequestFetch } from \"./ssr.js\";\nimport { useAsyncData } from \"./asyncData.js\";\nimport { defineKeyedFunctionFactory } from \"../../compiler/runtime\";\nimport { alwaysRunFetchOnKeyChange, fetchDefaults } from \"#build/nuxt.config.mjs\";\nfunction generateOptionSegments(opts) {\n const segments = [\n toValue(opts.method)?.toUpperCase() || \"GET\",\n toValue(opts.baseURL)\n ];\n for (const _obj of [opts.query || opts.params]) {\n const obj = toValue(_obj);\n if (!obj) {\n continue;\n }\n const unwrapped = {};\n for (const [key, value] of Object.entries(obj)) {\n unwrapped[toValue(key)] = toValue(value);\n }\n segments.push(unwrapped);\n }\n if (opts.body) {\n const value = toValue(opts.body);\n if (!value) {\n segments.push(hash(value));\n } else if (value instanceof ArrayBuffer) {\n segments.push(hash(Object.fromEntries([...new Uint8Array(value).entries()].map(([k, v]) => [k, v.toString()]))));\n } else if (value instanceof FormData) {\n const entries = [];\n for (const entry of value.entries()) {\n const [key, val] = entry;\n entries.push([key, val instanceof File ? `${val.name}:${val.size}:${val.lastModified}` : val]);\n }\n segments.push(hash(entries));\n } else if (isPlainObject(value)) {\n segments.push(hash(reactive(value)));\n } else {\n try {\n segments.push(hash(value));\n } catch {\n console.warn(\"[useFetch] Failed to hash body\", value);\n }\n }\n }\n return segments;\n}\nexport const createUseFetch = defineKeyedFunctionFactory({\n name: \"createUseFetch\",\n factory(options = {}) {\n function useFetch2(request, arg1, arg2) {\n const [opts = {}, autoKey] = typeof arg1 === \"string\" ? [{}, arg1] : [arg1, arg2];\n const factoryOptions = typeof options === \"function\" ? options(opts) : options;\n const {\n server,\n lazy,\n default: defaultFn,\n transform,\n pick,\n watch: watchSources,\n immediate,\n getCachedData,\n deep,\n dedupe,\n timeout,\n ...fetchOptions\n } = {\n ...typeof options === \"function\" ? {} : factoryOptions,\n ...opts,\n ...typeof options === \"function\" ? factoryOptions : {}\n };\n const _request = computed(() => toValue(request));\n const key = computed(() => toValue(fetchOptions.key) || \"$f\" + hash([autoKey, typeof _request.value === \"string\" ? _request.value : \"\", ...generateOptionSegments(fetchOptions)]));\n if (!fetchOptions.baseURL && typeof _request.value === \"string\" && (_request.value[0] === \"/\" && _request.value[1] === \"/\")) {\n throw new Error('[nuxt] [useFetch] the request URL must not start with \"//\".');\n }\n const _fetchOptions = reactive({\n ...fetchDefaults,\n ...fetchOptions,\n cache: typeof fetchOptions.cache === \"boolean\" ? void 0 : fetchOptions.cache\n });\n const _asyncDataOptions = {\n server,\n lazy,\n default: defaultFn,\n transform,\n pick,\n immediate,\n getCachedData,\n deep,\n dedupe,\n timeout,\n watch: watchSources === false ? [] : [...watchSources || [], _fetchOptions]\n };\n if (import.meta.dev) {\n _asyncDataOptions._functionName ||= factoryOptions._functionName || \"useFetch\";\n }\n if (watchSources === false) {\n ;\n _asyncDataOptions._keyTriggersExecute = false;\n }\n if (alwaysRunFetchOnKeyChange && !immediate) {\n let setImmediate = function() {\n _asyncDataOptions.immediate = true;\n };\n watch(key, setImmediate, { flush: \"sync\", once: true });\n watch([...watchSources || [], _fetchOptions], setImmediate, { flush: \"sync\", once: true });\n }\n const asyncData = useAsyncData(key, (_, { signal }) => {\n let _$fetch = fetchOptions.$fetch || globalThis.$fetch;\n if (import.meta.server && !fetchOptions.$fetch) {\n const isLocalFetch = typeof _request.value === \"string\" && _request.value[0] === \"/\" && (!toValue(fetchOptions.baseURL) || toValue(fetchOptions.baseURL)[0] === \"/\");\n if (isLocalFetch) {\n _$fetch = useRequestFetch();\n }\n }\n return _$fetch(_request.value, { signal, ..._fetchOptions });\n }, _asyncDataOptions);\n return asyncData;\n }\n return useFetch2;\n }\n});\nexport const useFetch = createUseFetch.__nuxt_factory();\nexport const useLazyFetch = createUseFetch.__nuxt_factory({\n lazy: true,\n // @ts-expect-error private property\n _functionName: \"useLazyFetch\"\n});\n","import { createPinia, setActivePinia } from \"pinia\";\nimport { defineNuxtPlugin, useNuxtApp } from \"#app\";\nimport { toRaw } from \"vue\";\nconst plugin = defineNuxtPlugin({\n name: \"pinia\",\n setup(nuxtApp) {\n const pinia = createPinia();\n nuxtApp.vueApp.use(pinia);\n setActivePinia(pinia);\n if (nuxtApp.payload && nuxtApp.payload.pinia) {\n pinia.state.value = nuxtApp.payload.pinia;\n }\n return {\n provide: {\n pinia\n }\n };\n },\n hooks: {\n \"app:rendered\"() {\n const nuxtApp = useNuxtApp();\n nuxtApp.payload.pinia = toRaw(nuxtApp.$pinia).state.value;\n setActivePinia(void 0);\n }\n }\n});\nexport default plugin;\n","\nimport { defineNuxtPlugin } from '#app/nuxt'\nexport default defineNuxtPlugin({\n name: 'nuxt:global-components',\n})\n","import payload_plugin_vfxyM1biN59FP0Nnr5zjaaXnrjmDUAMUDHGB1jIAoxw from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js\";\nimport unhead_onaWNbu_aBWmOMZtU6jpQtjACQlz0S9RZ6v_ogqPSGE from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_MhK3qgJ0WYuBDV9Bc2R15ebVnAkYpW_sO8RSA5WFQ8Q from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_y_Jg9TKMK_pSVgbwS3QYggu2__NI0DEkI7DvOxdnJaM from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport plugin_vue3_vUOR2Yexyy_5GDuyJio1AxmO0eM0omT0mn6x_agTjzA from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js\";\nimport components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8 from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.cache/nuxt/.nuxt/components.plugin.mjs\";\nexport default [\n payload_plugin_vfxyM1biN59FP0Nnr5zjaaXnrjmDUAMUDHGB1jIAoxw,\n unhead_onaWNbu_aBWmOMZtU6jpQtjACQlz0S9RZ6v_ogqPSGE,\n router_MhK3qgJ0WYuBDV9Bc2R15ebVnAkYpW_sO8RSA5WFQ8Q,\n revive_payload_server_y_Jg9TKMK_pSVgbwS3QYggu2__NI0DEkI7DvOxdnJaM,\n plugin_vue3_vUOR2Yexyy_5GDuyJio1AxmO0eM0omT0mn6x_agTjzA,\n components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8\n]","import { defineAsyncComponent } from 'vue'\nexport default {\n auth: defineAsyncComponent(() => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/layouts/auth.vue\").then(m => m.default || m)),\n default: defineAsyncComponent(() => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/layouts/default.vue\").then(m => m.default || m))\n}","import { Suspense, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, shallowReactive, shallowRef, unref } from \"vue\";\nimport { useRoute, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"./utils.js\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"./injections.js\";\nimport { useRoute as useVueRouterRoute } from \"#build/pages\";\nimport layouts from \"#build/layouts\";\nimport { appLayoutTransition as defaultLayoutTransition } from \"#build/nuxt.config.mjs\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nconst LayoutLoader = defineComponent({\n name: \"LayoutLoader\",\n inheritAttrs: false,\n props: {\n name: String,\n layoutProps: Object\n },\n setup(props, context) {\n return () => h(layouts[props.name], props.layoutProps, context.slots);\n }\n});\nconst nuxtLayoutProps = {\n name: {\n type: [String, Boolean, Object],\n default: null\n },\n fallback: {\n type: [String, Object],\n default: null\n }\n};\nexport default defineComponent({\n name: \"NuxtLayout\",\n inheritAttrs: false,\n props: nuxtLayoutProps,\n setup(props, context) {\n const nuxtApp = useNuxtApp();\n const injectedRoute = inject(PageRouteSymbol);\n const shouldUseEagerRoute = !injectedRoute || injectedRoute === useRoute();\n const route = shouldUseEagerRoute ? useVueRouterRoute() : injectedRoute;\n const layout = computed(() => {\n let layout2 = unref(props.name) ?? route?.meta.layout ?? routeRulesMatcher(route?.path).appLayout ?? \"default\";\n if (layout2 && !(layout2 in layouts)) {\n if (import.meta.dev && layout2 !== \"default\") {\n console.warn(`[nuxt] Invalid layout \\`${layout2}\\` selected.`);\n }\n if (props.fallback) {\n layout2 = unref(props.fallback);\n }\n }\n return layout2;\n });\n const layoutRef = shallowRef();\n context.expose({ layoutRef });\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtLayoutUsed = true;\n }\n let lastLayout;\n return () => {\n const hasLayout = !!layout.value && layout.value in layouts;\n const hasTransition = hasLayout && !!(route?.meta.layoutTransition ?? defaultLayoutTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n route?.meta.layoutTransition,\n defaultLayoutTransition,\n {\n onBeforeLeave() {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n },\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n }\n }\n ]);\n const previouslyRenderedLayout = lastLayout;\n lastLayout = layout.value;\n return _wrapInTransition(transitionProps, {\n default: () => h(\n Suspense,\n {\n suspensible: true,\n onResolve: async () => {\n await nextTick(done);\n }\n },\n {\n default: () => h(\n LayoutProvider,\n {\n layoutProps: mergeProps(context.attrs, route.meta.layoutProps ?? {}, { ref: layoutRef }),\n key: layout.value || void 0,\n name: layout.value,\n shouldProvide: !props.name,\n isRenderingNewLayout: (name) => {\n return name !== previouslyRenderedLayout && name === layout.value;\n },\n hasTransition\n },\n context.slots\n )\n }\n )\n }).default();\n };\n }\n});\nconst LayoutProvider = defineComponent({\n name: \"NuxtLayoutProvider\",\n inheritAttrs: false,\n props: {\n name: {\n type: [String, Boolean]\n },\n layoutProps: {\n type: Object\n },\n hasTransition: {\n type: Boolean\n },\n shouldProvide: {\n type: Boolean\n },\n isRenderingNewLayout: {\n type: Function,\n required: true\n }\n },\n setup(props, context) {\n const name = props.name;\n if (props.shouldProvide) {\n provide(LayoutMetaSymbol, {\n // When name=false, always return true so NuxtPage doesn't skip rendering\n isCurrent: (route) => name === false || name === (route.meta.layout ?? routeRulesMatcher(route.path).appLayout ?? \"default\")\n });\n }\n const injectedRoute = inject(PageRouteSymbol);\n const isNotWithinNuxtPage = injectedRoute && injectedRoute === useRoute();\n if (isNotWithinNuxtPage) {\n const vueRouterRoute = useVueRouterRoute();\n const reactiveChildRoute = {};\n for (const _key in vueRouterRoute) {\n const key = _key;\n Object.defineProperty(reactiveChildRoute, key, {\n enumerable: true,\n get: () => {\n return props.isRenderingNewLayout(props.name) ? vueRouterRoute[key] : injectedRoute[key];\n }\n });\n }\n provide(PageRouteSymbol, shallowReactive(reactiveChildRoute));\n }\n let vnode;\n if (import.meta.dev && import.meta.client) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n if (name) {\n console.warn(`[nuxt] \\`${name}\\` layout does not have a single root node and will cause errors when navigating between routes.`);\n } else {\n console.warn(\"[nuxt] `` needs to be passed a single root node in its default slot.\");\n }\n }\n });\n });\n }\n return () => {\n if (!name || typeof name === \"string\" && !(name in layouts)) {\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = context.slots.default?.();\n return vnode;\n }\n return context.slots.default?.();\n }\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n return vnode;\n }\n return h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n };\n }\n});\n","import { defineComponent, h, nextTick, onMounted, provide, shallowReactive } from \"vue\";\nimport { PageRouteSymbol } from \"./injections.js\";\nexport const defineRouteProvider = (name = \"RouteProvider\") => defineComponent({\n name,\n props: {\n route: {\n type: Object,\n required: true\n },\n vnode: Object,\n vnodeRef: Object,\n renderKey: String,\n trackRootNodes: Boolean\n },\n setup(props) {\n const previousKey = props.renderKey;\n const previousRoute = props.route;\n const route = {};\n for (const key in props.route) {\n Object.defineProperty(route, key, {\n get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],\n enumerable: true\n });\n }\n provide(PageRouteSymbol, shallowReactive(route));\n let vnode;\n if (import.meta.dev && import.meta.client && props.trackRootNodes) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n const filename = vnode?.type?.__file;\n console.warn(`[nuxt] \\`${filename}\\` does not have a single root node and will cause errors when navigating between routes.`);\n }\n });\n });\n }\n return () => {\n if (!props.vnode) {\n return props.vnode;\n }\n if (import.meta.dev && import.meta.client) {\n vnode = h(props.vnode, { ref: props.vnodeRef });\n return vnode;\n }\n return h(props.vnode, { ref: props.vnodeRef });\n };\n }\n});\nexport const RouteProvider = defineRouteProvider();\n","import { Fragment, Suspense, defineComponent, h, inject, nextTick, onBeforeUnmount, ref, watch } from \"vue\";\nimport { RouterView } from \"vue-router\";\nimport { generateRouteKey, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"#app/components/utils\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"#app/components/injections\";\nimport { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nconst _routeProviders = import.meta.dev ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new WeakMap();\nexport default defineComponent({\n name: \"NuxtPage\",\n inheritAttrs: false,\n props: {\n name: {\n type: String\n },\n transition: {\n type: [Boolean, Object],\n default: void 0\n },\n keepalive: {\n type: [Boolean, Object],\n default: void 0\n },\n route: {\n type: Object\n },\n pageKey: {\n type: [Function, String],\n default: null\n }\n },\n setup(props, { attrs, slots, expose }) {\n const nuxtApp = useNuxtApp();\n const pageRef = ref();\n const forkRoute = inject(PageRouteSymbol, null);\n let previousPageKey;\n expose({ pageRef });\n const _layoutMeta = inject(LayoutMetaSymbol, null);\n let vnode;\n const done = nuxtApp.deferHydration();\n let isSuspensePending = false;\n let hasResolvedOnce = false;\n let suspenseKey = 0;\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.client && props.pageKey) {\n watch(() => props.pageKey, (next, prev) => {\n if (next !== prev) {\n nuxtApp.callHook(\"page:loading:start\");\n }\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtPageUsed = true;\n }\n let pageLoadingEndHookAlreadyCalled = false;\n if (import.meta.client) {\n const unsub = useRouter().beforeResolve(() => {\n pageLoadingEndHookAlreadyCalled = false;\n });\n onBeforeUnmount(() => {\n unsub();\n done();\n });\n }\n return () => {\n return h(RouterView, { name: props.name, route: props.route, ...attrs }, {\n default: import.meta.server ? (routeProps) => {\n return h(Suspense, { suspensible: true }, {\n default() {\n return h(RouteProvider, {\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n vnodeRef: pageRef\n });\n }\n });\n } : (routeProps) => {\n const isRenderingNewRouteInOldFork = haveParentRoutesRendered(forkRoute, routeProps.route, routeProps.Component);\n const hasSameChildren = forkRoute && forkRoute.matched.length === routeProps.route.matched.length;\n if (!routeProps.Component) {\n if (vnode && !hasSameChildren && !isStaleVNode(vnode)) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !isStaleVNode(vnode) && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if ((hasSameChildren || vnode) && !isStaleVNode(vnode)) {\n return vnode;\n }\n return null;\n }\n const key = generateRouteKey(routeProps, props.pageKey);\n const willRenderAnotherChild = hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component);\n if (!nuxtApp.isHydrating && previousPageKey === key && !willRenderAnotherChild) {\n nextTick(() => {\n if (!pageLoadingEndHookAlreadyCalled) {\n pageLoadingEndHookAlreadyCalled = true;\n nuxtApp.callHook(\"page:loading:end\");\n }\n });\n }\n if (isSuspensePending && previousPageKey !== key && hasResolvedOnce) {\n suspenseKey++;\n }\n previousPageKey = key;\n const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n props.transition,\n routeProps.route.meta.pageTransition,\n defaultPageTransition,\n {\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n nuxtApp.callHook(\"page:transition:finish\", routeProps.Component);\n }\n }\n ]);\n const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? defaultKeepaliveConfig;\n vnode = _wrapInTransition(\n hasTransition && transitionProps,\n wrapInKeepAlive(\n keepaliveConfig,\n h(Suspense, {\n key: suspenseKey,\n suspensible: true,\n onPending: () => {\n isSuspensePending = true;\n if (hasTransition && !nuxtApp[\"~transitionPromise\"]) {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n }\n nuxtApp.callHook(\"page:start\", routeProps.Component);\n },\n onResolve: async () => {\n isSuspensePending = false;\n hasResolvedOnce = true;\n try {\n await nextTick();\n nuxtApp._route.sync?.();\n await nuxtApp.callHook(\"page:finish\", routeProps.Component);\n if (!pageLoadingEndHookAlreadyCalled && !willRenderAnotherChild) {\n pageLoadingEndHookAlreadyCalled = true;\n await nuxtApp.callHook(\"page:loading:end\");\n }\n } finally {\n done();\n }\n }\n }, {\n default: () => {\n const routeProviderProps = {\n key: key || void 0,\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n renderKey: key || void 0,\n trackRootNodes: hasTransition,\n vnodeRef: pageRef\n };\n if (!keepaliveConfig) {\n return h(RouteProvider, routeProviderProps);\n }\n const routerComponentType = routeProps.Component.type;\n const routeProviderKey = import.meta.dev ? routerComponentType.name || routerComponentType.__name : routerComponentType;\n let PageRouteProvider = _routeProviders.get(routeProviderKey);\n if (!PageRouteProvider) {\n PageRouteProvider = defineRouteProvider(routerComponentType.name || routerComponentType.__name);\n _routeProviders.set(routeProviderKey, PageRouteProvider);\n }\n return h(PageRouteProvider, routeProviderProps);\n }\n })\n )\n ).default();\n return vnode;\n }\n });\n };\n }\n});\nfunction haveParentRoutesRendered(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n if (index === -1) {\n return false;\n }\n const newParents = newRoute.matched.slice(0, index).filter((m) => m.components?.default);\n if (!newParents.length) {\n return false;\n }\n const forkParents = fork.matched.filter((m) => m.components?.default);\n return newParents.some((c, i) => c.components?.default !== forkParents[i]?.components?.default) || Component && generateRouteKey({ route: newRoute, Component }) !== generateRouteKey({ route: fork, Component });\n}\nfunction hasChildrenRoutes(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n return index < newRoute.matched.length - 1;\n}\nfunction normalizeSlot(slot, data) {\n const slotContent = slot(data);\n return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);\n}\nfunction isStaleVNode(vnode) {\n return !!vnode && (!!vnode.suspense?.isUnmounted || !!vnode.component?.isUnmounted);\n}\n","\n","\n\n\n","\n\n\n","import { createApp, createSSRApp, nextTick } from \"vue\";\nimport \"#build/fetch.mjs\";\nimport \"#build/global-polyfills.mjs\";\nimport { applyPlugins, createNuxtApp } from \"./nuxt.js\";\nimport { createError } from \"./composables/error.js\";\nimport \"#build/css\";\nimport plugins from \"#build/plugins\";\nimport RootComponent from \"#build/root-component.mjs\";\nimport { appId, appSpaLoaderAttrs, multiApp, spaLoadingTemplateOutside, vueAppRootContainer } from \"#build/nuxt.config.mjs\";\nlet entry;\nif (import.meta.server) {\n entry = async function createNuxtAppServer(ssrContext) {\n const vueApp = createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp, ssrContext });\n try {\n await applyPlugins(nuxt, plugins);\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n } catch (error) {\n await nuxt.hooks.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n if (ssrContext && (ssrContext[\"~renderResponse\"] || ssrContext._renderResponse)) {\n throw new Error(\"skipping render\");\n }\n return vueApp;\n };\n}\nif (import.meta.client) {\n if (import.meta.dev && import.meta.webpackHot) {\n import.meta.webpackHot.accept();\n }\n let vueAppPromise;\n entry = async function initApp() {\n if (vueAppPromise) {\n return vueAppPromise;\n }\n const isSSR = Boolean(\n (multiApp ? window.__NUXT__?.[appId] : window.__NUXT__)?.serverRendered ?? (multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\"))?.dataset.ssr === \"true\"\n );\n const vueApp = isSSR ? createSSRApp(RootComponent) : createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp });\n async function handleVueError(error) {\n await nuxt.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n ;\n handleVueError.__nuxt_default = true;\n vueApp.config.errorHandler = handleVueError;\n nuxt.hook(\"app:suspense:resolve\", () => {\n if (vueApp.config.errorHandler === handleVueError) {\n vueApp.config.errorHandler = void 0;\n }\n });\n if (spaLoadingTemplateOutside && !isSSR && appSpaLoaderAttrs.id) {\n nuxt.hook(\"app:suspense:resolve\", () => {\n document.getElementById(appSpaLoaderAttrs.id)?.remove();\n });\n }\n try {\n await applyPlugins(nuxt, plugins);\n } catch (err) {\n handleVueError(err);\n }\n try {\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n await nuxt.hooks.callHook(\"app:beforeMount\", vueApp);\n vueApp.mount(vueAppRootContainer);\n await nuxt.hooks.callHook(\"app:mounted\", vueApp);\n await nextTick();\n } catch (err) {\n handleVueError(err);\n }\n return vueApp;\n };\n vueAppPromise = entry().catch((error) => {\n console.error(\"Error while mounting app:\", error);\n throw error;\n });\n}\nexport default ((ssrContext) => entry(ssrContext));\n"],"names":["plugin","provide","plugins","useRoute","parseURL","encodePath","createH3Error","routeRulesMatcher","parseQuery","hash","stringifyQuery","value","location","re","matcher","name","normalizeSlot","matchedRoute","href","replace","failure","resolve","toArray","accountsuf9bCUy96pdO5sDhtrw37BAVSmLjFm_wqAF7eLybYiMMeta","appconfigMaNwwQRe3all4OpVg4ypcFX_uYs7MhHHxXy6HdSwqzAMeta","apps4N_8fM_HAmoSan_tqUVvBfSBVgSnYl__ZGdiSQQbrUQMeta","calltranslateyLuYKm0ZK9L21n5R8uZzUWg2Wz5JWCfqvY_vv13cK8wMeta","codetIaWhqabBnZ9rT9cLF_86EHpOqJs8Du_S5u8tCLN2VcMeta","dashboardZNLB5_JiEysWIj_2b5J2hURJ9xLEtnlF8cxz1kh1xgsMeta","deviceATlhZZ6PiEtU_HD4qeo7Tbnfw0N2ei8nBzbk1UCWcQAMeta","environments2K1an_2pLlUuq0wZm4vf5M_8qSrfGyBr04Cp4cfHb8EMeta","factoryVZatTEN3EjRZOxVm33XY8Gdq71RZ1D_jDUKUf4F_lWIMeta","globalconfignq5luXkq_Ykd2myATDZ7keYzKoRwp_opATj4sH705EcMeta","mcpconfigrFWADY1KKVchc3b_tLzB_4GNdXlzlJnoCP2vK_qS9IgMeta","meettemplates3Nsj0ut16S4eIXd5Lv9nVQD0XusUnq08ZaalLdE0O7IMeta","productWbWlgO8dvY_vVRFylKRGjH7HyHR9RFTvzFbP8equczwMeta","serviceconfig6Gc5qzSDJTYZMnqPqZYds2OIokXbSz4H6XhPAg8iN0EMeta","statlogrR6XJDIk_e8P5NJMugR6upS2Ifr1zDMQogeCNYwz5MQMeta","systemconfigLbtF1nV2kUjJU1iP8sTLfpqV4d2QGryXpZEovNtPXBYMeta","usersfLETUnFtHTvnQYJLMbrQA_IXzpwNp3NUerB3_nZMVvkMeta","indexcEvFhP__rFdFTbvBFnPFkHCn7KMBOSKrrLe98tJlrc4Meta","isArray","global","isRef","START_LOCATION","__executeAsync","entry","isPlainObject","pick","payload_plugin_vfxyM1biN59FP0Nnr5zjaaXnrjmDUAMUDHGB1jIAoxw","router_MhK3qgJ0WYuBDV9Bc2R15ebVnAkYpW_sO8RSA5WFQ8Q","plugin_vue3_vUOR2Yexyy_5GDuyJio1AxmO0eM0omT0mn6x_agTjzA","useVueRouterRoute","defaultLayoutTransition","_push","_parent","_createVNode","_unref","_ssrRenderComponent","ErrorComponent","RootComponent"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,44,45,46]} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map.json index db4f28c4..4bb11b43 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map.json +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/server.mjs.map.json @@ -1 +1 @@ -{"file":"server.mjs","mappings":";;;;;;;;;;;;;AAEA,IAAI,CAAC,WAAW,QAAQ;AACtB,aAAW,SAAS,OAAO,OAAO;AAAA,IAChC,SAAS,QAAO;AAAA,EACpB,CAAG;AACH;ACLA,IAAI,EAAE,YAAY,aAAa;AAC7B,aAAW,SAAS;AACtB;ACKO,MAAM,sBAAsB;AA4CvB,MAAC,mBAAmB,EAAC,iBAAgB,WAA2D;AAErG,MAAM,oBAAoB,EAAC,QAAO,MAAK;AAIvC,MAAM,gBAAgB,CAAA;AAMtB,MAAM,QAAQ;AC5Dd,SAAS,cAAc,KAAK,OAAqB;AACtD,SAAO,WAAW,IAAI;AAAA,IACpB,cAAc;AAAA,EAAA,CACf;AACH;AACO,MAAM,sBAAsB;AAC5B,SAAS,cAAc,SAAS;AACrC,MAAI,iBAAiB;AACrB,QAAM,UAAU;AAAA,IACd,KAAK,QAAQ,MAAM,SAAS;AAAA,IAC5B,QAAQ,YAAA;AAAA,IACR,SAAS;AAAA,IACT,UAAU;AAAA,MACR,IAAI,OAAO;AACT,eAAO;AAAA,MACT;AAAA,MACA,IAAI,MAAM;AACR,eAAO,QAAQ,OAAO;AAAA,MACxB;AAAA,IAAA;AAAA,IAEF,SAAS,gBAAgB;AAAA,MACvB,GAAG,QAAQ,YAAY,WAAW,CAAA;AAAA,MAClC,MAAM,gBAAgB,EAAE;AAAA,MACxB,OAAO,SAAS,EAAE;AAAA,MAClB,0BAA0B,IAAA;AAAA,MAC1B,SAAS,gBAAgB,CAAA,CAAE;AAAA,IAAA,CAC5B;AAAA,IACD,QAAQ;AAAA,MACN,MAAM,CAAA;AAAA,IAAC;AAAA,IAET,eAAe,IAAI;AACjB,UAAI,QAAQ,OAAO,UAAU,CAAC,mBAAmB;AAC/C,eAAO,QAAQ,OAAO,IAAI,MAAM,aAAa,SAAS,EAAE,CAAC;AAAA,MAC3D;AACA,aAAO,aAAa,SAAS,EAAE;AAAA,IACjC;AAAA,IACA,aAAa;AAAA,IACb,iBAAiB;AACf,UAAI,CAAC,QAAQ,aAAa;AACxB,eAAO,MAAM;AAAA,QACb;AAAA,MACF;AACA;AACA,UAAI,SAAS;AACb,aAAO,MAAM;AACX,YAAI,QAAQ;AACV;AAAA,QACF;AACA,iBAAS;AACT;AACA,YAAI,mBAAmB,GAAG;AACxB,kBAAQ,cAAc;AACtB,iBAAO,QAAQ,SAAS,sBAAsB;AAAA,QAChD;AAAA,MACF;AAAA,IACF;AAAA,IACA,oBAAoB,CAAA;AAAA,IACpB,YAAY,gBAAgB,EAAE;AAAA,IAC9B,QAAQ,gBAAgB,EAAE;AAAA,IAC1B,kBAAkB,CAAA;AAAA,IAClB,GAAG;AAAA,EAAA;AAEmB;AACtB,YAAQ,QAAQ,iBAAiB;AAAA,EACnC;AACA,MAA0B,QAAQ,YAAY;AAC5C,YAAQ,QAAQ,OAAO,QAAQ,WAAW;AAC1C,YAAQ,WAAW,OAAO;AAC1B,YAAQ,WAAW,UAAU,QAAQ;AACrC,YAAQ,WAAW,SAAS;AAAA,MAC1B,QAAQ,QAAQ,WAAW,cAAc;AAAA,MACzC,KAAK,QAAQ,WAAW,cAAc;AAAA,IAAA;AAAA,EAE1C;AAiBA,UAAQ,QAAQ,YAAA;AAChB,UAAQ,OAAO,QAAQ,MAAM;AACL;AACtB,UAAM,gBAAgB,eAAe,OAAO,MAAM;AAChD,iBAAW,QAAQ,OAAO;AACxB,cAAM,QAAQ,eAAe,MAAM,KAAK,GAAG,IAAI,CAAC;AAAA,MAClD;AAAA,IACF;AACA,YAAQ,MAAM,WAAW,CAAC,SAAS,SAAS,QAAQ,MAAM,aAAa,eAAe,MAAM,IAAI;AAAA,EAClG;AAIA,UAAQ,WAAW,QAAQ,MAAM;AACjC,UAAQ,UAAU,CAAC,MAAM,UAAU;AACjC,UAAM,QAAQ,MAAM;AACpB,iBAAa,SAAS,OAAO,KAAK;AAClC,iBAAa,QAAQ,OAAO,OAAO,kBAAkB,OAAO,KAAK;AAAA,EACnE;AACA,eAAa,QAAQ,QAAQ,SAAS,OAAO;AAC7C,eAAa,QAAQ,OAAO,OAAO,kBAAkB,SAAS,OAAO;AAgBrE,QAAM,gBAAqC,QAAQ,WAAW;AAC9D,UAAQ,QAAQ,UAAiF,aAAa;AAC9G,SAAO;AACT;AACO,SAAS,oBAAoB,SAASA,SAAQ;AACnD,MAAIA,QAAO,OAAO;AAChB,YAAQ,MAAM,SAASA,QAAO,KAAK;AAAA,EACrC;AACF;AACA,eAAsB,YAAY,SAASA,SAAQ;AACjD,MAAI,OAAOA,YAAW,YAAY;AAChC,UAAM,EAAE,SAAAC,SAAA,IAAY,MAAM,QAAQ,eAAe,MAAMD,QAAO,OAAO,CAAC,KAAK,CAAA;AAC3E,QAAIC,YAAW,OAAOA,aAAY,UAAU;AAC1C,iBAAW,OAAOA,UAAS;AACzB,gBAAQ,QAAQ,KAAKA,SAAQ,GAAG,CAAC;AAAA,MACnC;AAAA,IACF;AAAA,EACF;AACF;AACA,eAAsB,aAAa,SAASC,UAAS;AACnD,QAAM,sCAAsC,IAAA;AAC5C,QAAM,oBAAoB,CAAA;AAC1B,QAAM,YAAY,CAAA;AAClB,MAAI,QAAQ;AACZ,MAAI,eAAe;AACnB,iBAAe,cAAcF,SAAQ;AACnC,UAAM,iCAAiCA,QAAO,WAAW,OAAO,CAAC,SAASE,SAAQ,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAA;AAClJ,QAAI,+BAA+B,SAAS,GAAG;AAC7C,wBAAkB,KAAK,CAAC,IAAI,IAAI,8BAA8B,GAAGF,OAAM,CAAC;AAAA,IAC1E,OAAO;AACL,YAAM,UAAU,YAAY,SAASA,OAAM,EAAE,KAAK,YAAY;AAC5D,YAAIA,QAAO,OAAO;AAChB,0BAAgB,IAAIA,QAAO,KAAK;AAChC,gBAAM,QAAQ,IAAI,kBAAkB,IAAI,OAAO,CAAC,WAAW,gBAAgB,MAAM;AAC/E,gBAAI,UAAU,IAAIA,QAAO,KAAK,GAAG;AAC/B,wBAAU,OAAOA,QAAO,KAAK;AAC7B,kBAAI,UAAU,SAAS,GAAG;AACxB;AACA,sBAAM,cAAc,gBAAgB;AAAA,cACtC;AAAA,YACF;AAAA,UACF,CAAC,CAAC;AAAA,QACJ;AAAA,MACF,CAAC,EAAE,MAAM,CAAC,MAAM;AACd,YAAI,CAACA,QAAO,YAAY,CAAC,QAAQ,QAAQ,OAAO;AAC9C,gBAAM;AAAA,QACR;AACA,kBAAU;AAAA,MACZ,CAAC;AACD,UAAIA,QAAO,UAAU;AACnB,kBAAU,KAAK,OAAO;AAAA,MACxB,OAAO;AACL,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,aAAWA,WAAUE,UAAS;AAC5B,QAA0B,QAAQ,YAAY,iBAAiBF,QAAO,KAAK,YAAY,OAAO;AAC5F;AAAA,IACF;AACA,wBAAoB,SAASA,OAAM;AAAA,EACrC;AACA,aAAWA,WAAUE,UAAS;AAC5B,QAA0B,QAAQ,YAAY,iBAAiBF,QAAO,KAAK,YAAY,OAAO;AAC5F;AAAA,IACF;AACA,UAAM,cAAcA,OAAM;AAAA,EAC5B;AACA,QAAM,QAAQ,IAAI,SAAS;AAC3B,MAAI,cAAc;AAChB,aAAS,IAAI,GAAG,IAAI,cAAc,KAAK;AACrC,YAAM,QAAQ,IAAI,SAAS;AAAA,IAC7B;AAAA,EACF;AACA,MAAI,OAAO;AACT,UAAM,QAAQ,QAAQ,SAAS;AAAA,EACjC;AACF;AAAA;AAEO,SAAS,iBAAiBA,SAAQ;AACvC,MAAI,OAAOA,YAAW,YAAY;AAChC,WAAOA;AAAA,EACT;AACA,QAAM,QAAQA,QAAO,SAASA,QAAO;AACrC,SAAOA,QAAO;AACd,SAAO,OAAO,OAAOA,QAAO,UAAU,MAAM;AAAA,EAC5C,IAAIA,SAAQ,EAAE,CAAC,mBAAmB,GAAG,MAAM,OAAO;AACpD;AACO,MAAM,sBAAsB;AAI5B,SAAS,aAAa,MAAM,OAAO,MAAM;AAC9C,QAAM,KAAK,MAA8B,MAAA;AACzC,QAAM,aAAa,cAAc,KAAK,GAAG;AACjB;AACtB,WAAO,KAAK,OAAO,eAAe,MAAM,WAAW,UAAU,MAAM,EAAE,CAAC;AAAA,EACxE;AAIF;AACO,SAAS,cAAc,IAAI;AAChC,MAAI;AACJ,MAAI,uBAAuB;AACzB,sBAAkB,mBAAA,GAAsB,WAAW,IAAI;AAAA,EACzD;AACA,sBAAoB,cAAc,EAAE,EAAE,OAAA;AACtC,SAAO,mBAAmB;AAC5B;AACO,SAAS,WAAW,IAAI;AAC7B,QAAM,kBAAkB,cAAc,EAAE;AACxC,MAAI,CAAC,iBAAiB;AAGb;AACL,YAAM,IAAI,MAAM,6BAA6B;AAAA,IAC/C;AAAA,EACF;AACA,SAAO;AACT;AAAA;AAEO,SAAS,iBAAiB,QAAQ;AACvC,SAAO,aAAa;AACtB;AACA,SAAS,aAAa,KAAK,KAAK,KAAK;AACnC,SAAO,eAAe,KAAK,KAAK,EAAE,KAAK,MAAM,KAAK;AACpD;ACjQO,MAAM,mBAAmB,uBAAO,aAAa;AAC7C,MAAM,kBAAkB,uBAAO,OAAO;ACG7B,YAAY,IAAI,QAAQ,cAAc,GAAG;ACGlD,MAAM,YAAY,MAAM;AAC7B,SAAO,cAAc;AACvB;AACO,MAAMG,aAAW,MAAM;AAM5B,MAAI,uBAAuB;AACzB,WAAO,OAAO,iBAAiB,WAAA,EAAa,MAAM;AAAA,EACpD;AACA,SAAO,aAAa;AACtB;AAAA;AAeO,SAAS,0BAA0B,YAAY;AACpD,SAAO;AACT;AAeA,MAAM,yBAAyB,MAAM;AACnC,MAAI;AACF,QAAI,WAAA,EAAa,uBAAuB;AACtC,aAAO;AAAA,IACT;AAAA,EACF,QAAQ;AACN,WAAO;AAAA,EACT;AACA,SAAO;AACT;AACA,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;AAAA,EAC3B,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AACA,SAAS,kBAAkB,OAAO;AAChC,SAAO,MAAM,QAAQ,qBAAqB,CAAC,MAAM,qBAAqB,CAAC,CAAC;AAC1E;AACO,MAAM,aAAa,CAAC,IAAI,YAAY;AACzC,SAAO;AACP,QAAM,SAAS,OAAO,OAAO,WAAW,KAAK,UAAU,KAAK,mBAAmB,EAAE,IAAI,UAAA,EAAY,QAAQ,EAAE,EAAE;AAgB7G,QAAM,iBAAiB,YAAY,QAAQ,EAAE,gBAAgB,MAAM;AACnE,QAAM,aAAa,SAAS,YAAY;AACxC,MAAI,YAAY;AACd,QAAI,CAAC,SAAS,UAAU;AACtB,YAAM,IAAI,MAAM,qGAAqG;AAAA,IACvH;AACA,UAAM,EAAE,SAAA,IAAa,IAAI,IAAI,QAAoD,kBAAkB;AACnG,QAAI,YAAY,iBAAiB,QAAQ,GAAG;AAC1C,YAAM,IAAI,MAAM,kCAAkC,QAAQ,aAAa;AAAA,IACzE;AAAA,EACF;AACA,QAAM,eAAe,uBAAA;AAgBrB,QAAM,SAAS,UAAA;AACf,QAAM,UAAU,WAAA;AACQ;AACtB,QAAI,QAAQ,YAAY;AACtB,YAAM,WAAW,OAAO,OAAO,YAAY,aAAa,SAAS,OAAO,QAAQ,EAAE,EAAE,YAAY;AAChG,YAAM,YAAY,aAAa,SAAS,SAAQ,oCAAmB,IAAI,SAAS,QAAQ;AACxF,YAAM,WAAW,eAAe,UAAU;AACxC,cAAM,QAAQ,SAAS,gBAAgB;AACvC,cAAM,gBAAgB,UAAU,WAAW,cAAc;AACzD,cAAM,aAAa,kBAAkB,aAAa;AAClD,gBAAQ,WAAW,iBAAiB,IAAI;AAAA,UACtC,YAAY,mBAAmB,SAAS,gBAAgB,KAAK,GAAG;AAAA,UAChE,MAAM,yEAAyE,UAAU;AAAA,UACzF,SAAS,EAAE,UAAU,cAAA;AAAA,QAAc;AAErC,eAAO;AAAA,MACT;AACA,UAAI,CAAC,cAAc,cAAc;AAC/B,eAAO,UAAU,CAAC,UAAU,MAAM,aAAa,WAAW,SAAS,KAAK,IAAI,MAAM;AAClF,eAAO;AAAA,MACT;AACA,aAAO,SAAS,CAAC,eAAe;AAAA;AAAA,QAE9B;AAAA,OACD;AAAA,IACH;AAAA,EACF;AACA,MAAI,YAAY;AACd,YAAQ,OAAO,KAAA;AACf,QAAI,SAAS,SAAS;AACpB,MAAA,SAAS,QAAQ,MAAM;AAAA,IACzB,OAAO;AACL,MAAA,SAAS,OAAO;AAAA,IAClB;AACA,QAAI,cAAc;AAChB,UAAI,CAAC,QAAQ,aAAa;AACxB,eAAO;AAAA,MACT;AACA,aAAO,IAAI,QAAQ,MAAM;AAAA,MACzB,CAAC;AAAA,IACH;AACA,WAAO,QAAQ,QAAA;AAAA,EACjB;AACA,QAAM,YAAY,OAAO,OAAO,WAAW,gBAAgB,EAAE,IAAI;AACjE,SAAO,SAAS,UAAU,OAAO,QAAQ,SAAS,IAAI,OAAO,KAAK,SAAS;AAC7E;AAmDO,SAAS,mBAAmB,IAAI;AACrC,SAAO,UAAU,GAAG,QAAQ,IAAI,GAAG,SAAS,EAAE,KAAK,GAAG,QAAQ;AAChE;AACO,SAAS,UAAU,WAAW,iBAAiB,OAAO;AAC3D,QAAM,MAAM,IAAI,IAAI,WAAW,kBAAkB;AACjD,MAAI,CAAC,gBAAgB;AACnB,UAAM,WAAW,IAAI,SAAS,QAAQ,WAAW,GAAG;AACpD,WAAO,WAAW,IAAI,SAAS,IAAI;AAAA,EACrC;AACA,MAAI,UAAU,WAAW,IAAI,GAAG;AAC9B,WAAO,IAAI,SAAA,EAAW,QAAQ,IAAI,UAAU,EAAE;AAAA,EAChD;AACA,SAAO,IAAI,SAAA;AACb;AACO,SAAS,gBAAgB,KAAK;AACnC,QAAM,SAASC,WAAS,GAAG;AAC3B,SAAOC,aAAW,WAAW,OAAO,QAAQ,CAAC,IAAI,OAAO,SAAS,OAAO;AAC1E;ACnOO,MAAM,uBAAuB;AAC7B,MAAM,sCAAsC,MAAM,MAAM,WAAA,EAAa,SAAS,OAAO;AACrF,MAAM,YAAY,CAAC,UAAU;AAClC,QAAM,YAAY,YAAY,KAAK;AACnC,MAAI;AACF,UAAM,SAAyB,yBAAA;AAC/B,QAAI,MAAoB;AAIxB,WAAO,UAAU;AAAA,EACnB,QAAQ;AACN,UAAM;AAAA,EACR;AACA,SAAO;AACT;AAUO,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC,SAAS,OAAO,UAAU,YAAY,wBAAwB;AAC/F,MAAM,cAAc,CAAC,UAAU;AACpC,MAAI,OAAO,UAAU,YAAY,MAAM,YAAY;AACjD,UAAM,YAAY,MAAM;AAAA,EAC1B;AACA,QAAM,YAAYC,cAAc,KAAK;AACrC,SAAO,eAAe,WAAW,sBAAsB;AAAA,IACrD,OAAO;AAAA,IACP,cAAc;AAAA,IACd,UAAU;AAAA,EAAA,CACX;AACD,SAAO,eAAe,WAAW,UAAU;AAAA;AAAA,IAEzC,KAAK,MAAM,UAAU;AAAA,IACrB,cAAc;AAAA,EAAA,CACf;AACD,SAAO,eAAe,WAAW,cAAc;AAAA;AAAA,IAE7C,KAAK,MAAM,UAAU;AAAA,IACrB,cAAc;AAAA,EAAA,CACf;AACD,SAAO;AACT;ACjDM,MAAM,UAAU,CAAC,GAAE,MAAI;AAAC,SAAO,CAAA;AAAG;AAClC,2BAAe,CAAC,SAAS,KAAK,CAAA,GAAI,GAAG,QAAQ,IAAI,OAAO,SAAS,WAAW,KAAK,YAAW,IAAK,IAAI,EAAE,IAAI,OAAK,EAAE,IAAI,EAAE,QAAO,CAAE;ACCvI,MAAMC,sBAAoB;AAsCnB,SAAS,cAAc,KAAK;AACjC,QAAM,OAAO,OAAO,QAAQ,WAAW,MAAM,IAAI;AACjD,MAAI;AACF,WAAOA,oBAAkB,KAAK,aAAa;AAAA,EAC7C,SAAS,GAAG;AACV,YAAQ,MAAM,sCAAsC,CAAC;AACrD,WAAO,CAAA;AAAA,EACT;AACF;ACmHO,SAAS,qBAAqB,MAAM,QAAQ;AACzB;AACtB,eAAA,EAAa,WAAW,kBAAkB,EAAE,IAAI,IAAI;AAAA,EACtD;AACF;ACnKA,MAAM,gBAAgB,oBAAoB,MAAM;AAC9C;AAAA,IACE;AAAA;AAAA,IAEA,CAAC,SAAS,CAAC,cAAc,IAAI,KAAK;AAAA,EACtC;AAEA,CAAC;ACbM,SAAS,WAAW,MAAM;AAC/B,QAAM,WAAW,KAAK;AACtB,OAAK,OAAO,OAAO,EAAE,SAAS,MAAM;AAAA,EACpC,GAAG,OAAO,MAAM;AAAA,EAChB,GAAG,OAAO,MAAM;AAAA,EAChB;AACA,SAAO,MAAM;AACX,SAAK,OAAO;AAAA,EACd;AACF;ACLA,MAAA,qDAAe,iCAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM,SAAS;AACb,UAAM,OAA4B,QAAQ,WAAW;AACrD,QAA0B,QAAQ,WAAW,eAAe;AAC1D,YAAM,WAAW,WAAW,IAAI;AAChC,cAAQ,MAAM,SAAS,eAAe,QAAQ;AAAA,IAChD;AACA,YAAQ,OAAO,IAAI,IAAI;AAAA,EAmCzB;AACF,CAAC;AC1CD,MAAM,YAAY;AAiBlB,SAAS,iBAAiB,WAAW;AACpC,SAAO,OAAO,cAAc,YAAY,iBAAiB,aAAa,WAAW,aAAa,eAAe;AAC9G;AACA,SAAS,WAAW,KAAK;AACxB,SAAO,IAAI,cAAc,IAAI,OAAO,WAAW,MAAM,YAAY,IAAI,WAAW,iBAAiB,IAAI,OAAO;AAC7G;AACA,MAAM,SAAS,OAAO;AACtB,SAAS,cAAc,IAAI,QAAQ;AAClC,QAAM,YAAY,CAAA;AAClB,aAAW,OAAO,QAAQ;AACzB,UAAM,QAAQ,OAAO,GAAG;AACxB,cAAU,GAAG,IAAI,QAAQ,KAAK,IAAI,MAAM,IAAI,EAAE,IAAI,GAAG,KAAK;AAAA,EAC3D;AACA,SAAO;AACR;AACA,MAAM,OAAO,MAAM;AAAC;AAOpB,MAAM,UAAU,MAAM;AACtB,SAAS,aAAa,UAAU,gBAAgB;AAC/C,QAAM,UAAU,CAAA;AAChB,aAAW,OAAO,SAAU,SAAQ,GAAG,IAAI,OAAO,iBAAiB,eAAe,GAAG,IAAI,SAAS,GAAG;AACrG,SAAO;AACR;AAGA,MAAM,0BAA0B,uBAAO,QAAQ,IAAI,aAAa,eAAe,uBAAuB,EAAE;AAuBxG,MAAM,oBAAoB;AAAA,EACzB,CAAC,CAAC,EAAE,EAAE,UAAU,mBAAmB;AAClC,WAAO;AAAA,GAAkB,KAAK,UAAU,QAAQ,CAAC,GAAG,kBAAkB,uBAAuB,KAAK,UAAU,eAAe,IAAI,EAAE;AAAA,EAClI;AAAA,EACA,CAAC,CAAC,EAAE,EAAE,MAAM,MAAM;AACjB,WAAO,oBAAoB,KAAK,QAAQ,SAAS,eAAe,EAAE,CAAC;AAAA,EACpE;AAAA,EACA,CAAC,CAAC,EAAE,EAAE,MAAM,MAAM;AACjB,WAAO,4BAA4B,KAAK,QAAQ,SAAS,GAAG,QAAQ;AAAA,EACrE;AAAA,EACA,CAAC,CAAC,EAAE,EAAE,MAAM,MAAM;AACjB,WAAO,8BAA8B,KAAK,QAAQ,SAAS,GAAG,QAAQ;AAAA,EACvE;AAAA,EACA,CAAC,EAAE,EAAE,EAAE,MAAM,IAAI,OAAO;AACvB,WAAO,sDAAsD,KAAK,QAAQ;AAAA,EAC3E;AACD;AAOA,SAAS,kBAAkB,MAAM,QAAQ;AACxC,MAAI,QAAQ,IAAI,aAAa,gBAAgB,MAAO,QAAO,OAAO,IAAI,MAAM,kBAAkB,IAAI,EAAE,MAAM,CAAC,GAAG;AAAA,IAC7G;AAAA,IACA,CAAC,uBAAuB,GAAG;AAAA,EAAA,GACzB,MAAM;AAAA,MACJ,QAAO,OAAuB,oBAAI,SAAS;AAAA,IAC/C;AAAA,IACA,CAAC,uBAAuB,GAAG;AAAA,EAAA,GACzB,MAAM;AACV;AACA,SAAS,oBAAoB,OAAO,MAAM;AACzC,SAAO,iBAAiB,SAAS,2BAA2B,UAAU,QAAQ,QAAQ,CAAC,EAAE,MAAM,OAAO;AACvG;AACA,MAAM,kBAAkB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACD;AACA,SAAS,eAAe,IAAI;AAC3B,MAAI,OAAO,OAAO,SAAU,QAAO;AACnC,MAAI,GAAG,QAAQ,KAAM,QAAO,GAAG;AAC/B,QAAM,WAAW,CAAA;AACjB,aAAW,OAAO,gBAAiB,KAAI,OAAO,GAAI,UAAS,GAAG,IAAI,GAAG,GAAG;AACxE,SAAO,KAAK,UAAU,UAAU,MAAM,CAAC;AACxC;AAUA,MAAM,kBAAkB,uBAAO,QAAQ,IAAI,aAAa,eAAe,iCAAiC,EAAE;AAO1G,MAAM,eAAe,uBAAO,QAAQ,IAAI,aAAa,eAAe,sBAAsB,EAAE;AAO5F,MAAM,YAAY,uBAAO,QAAQ,IAAI,aAAa,eAAe,WAAW,EAAE;AAO9E,MAAM,mBAAmB,uBAAO,QAAQ,IAAI,aAAa,eAAe,mBAAmB,EAAE;AAO7F,MAAM,wBAAwB,uBAAO,QAAQ,IAAI,aAAa,eAAe,yBAAyB,EAAE;AAcxG,SAAS,SAAS,OAAO;AACxB,SAAO,OAAO,gBAAgB;AAC/B;ACzKA,SAAS,OAAO,KAAK;AACpB,QAAM,OAAO,MAAM,KAAK,SAAS,EAAE,MAAM,CAAC;AAC1C,UAAQ,KAAK,MAAM,SAAS,CAAC,wBAAwB,GAAG,EAAE,OAAO,IAAI,CAAC;AACvE;AAoBA,MAAM,UAAU;AAChB,MAAM,eAAe;AACrB,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,QAAQ;AACd,MAAM,UAAU;AAehB,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;AAC7B,MAAM,eAAe;AACrB,MAAM,kBAAkB;AACxB,MAAM,oBAAoB;AAC1B,MAAM,cAAc;AACpB,MAAM,qBAAqB;AAC3B,MAAM,eAAe;AASrB,SAAS,aAAa,MAAM;AAC3B,SAAO,QAAQ,OAAO,KAAK,UAAU,KAAK,IAAI,EAAE,QAAQ,aAAa,GAAG,EAAE,QAAQ,qBAAqB,GAAG,EAAE,QAAQ,sBAAsB,GAAG;AAC9I;AAOA,SAAS,WAAW,MAAM;AACzB,SAAO,aAAa,IAAI,EAAE,QAAQ,mBAAmB,GAAG,EAAE,QAAQ,oBAAoB,GAAG,EAAE,QAAQ,cAAc,GAAG;AACrH;AAQA,SAAS,iBAAiB,MAAM;AAC/B,SAAO,aAAa,IAAI,EAAE,QAAQ,SAAS,KAAK,EAAE,QAAQ,cAAc,GAAG,EAAE,QAAQ,SAAS,KAAK,EAAE,QAAQ,cAAc,KAAK,EAAE,QAAQ,iBAAiB,GAAG,EAAE,QAAQ,mBAAmB,GAAG,EAAE,QAAQ,oBAAoB,GAAG,EAAE,QAAQ,cAAc,GAAG;AAC3P;AAMA,SAAS,eAAe,MAAM;AAC7B,SAAO,iBAAiB,IAAI,EAAE,QAAQ,UAAU,KAAK;AACtD;AAOA,SAAS,WAAW,MAAM;AACzB,SAAO,aAAa,IAAI,EAAE,QAAQ,SAAS,KAAK,EAAE,QAAQ,OAAO,KAAK;AACvE;AAUA,SAAS,YAAY,MAAM;AAC1B,SAAO,WAAW,IAAI,EAAE,QAAQ,UAAU,KAAK;AAChD;AACA,SAAS,OAAO,MAAM;AACrB,MAAI,QAAQ,KAAM,QAAO;AACzB,MAAI;AACH,WAAO,mBAAmB,KAAK,IAAI;AAAA,EACpC,QAAQ;AACP,YAAQ,IAAI,aAAa,gBAAgB,OAAO,mBAAmB,IAAI,yBAAyB;AAAA,EACjG;AACA,SAAO,KAAK;AACb;AAGA,MAAM,oBAAoB;AAC1B,MAAM,sBAAsB,CAAC,SAAS,KAAK,QAAQ,mBAAmB,EAAE;AAUxE,SAAS,SAASC,aAAY,UAAU,kBAAkB,KAAK;AAC9D,MAAI,MAAM,QAAQ,CAAA,GAAI,eAAe,IAAIC,QAAO;AAChD,QAAM,UAAU,SAAS,QAAQ,GAAG;AACpC,MAAI,YAAY,SAAS,QAAQ,GAAG;AACpC,cAAY,WAAW,KAAK,YAAY,UAAU,KAAK;AACvD,MAAI,aAAa,GAAG;AACnB,WAAO,SAAS,MAAM,GAAG,SAAS;AAClC,mBAAe,SAAS,MAAM,WAAW,UAAU,IAAI,UAAU,SAAS,MAAM;AAChF,YAAQD,YAAW,aAAa,MAAM,CAAC,CAAC;AAAA,EACzC;AACA,MAAI,WAAW,GAAG;AACjB,WAAO,QAAQ,SAAS,MAAM,GAAG,OAAO;AACxC,IAAAC,QAAO,SAAS,MAAM,SAAS,SAAS,MAAM;AAAA,EAC/C;AACA,SAAO,oBAAoB,QAAQ,OAAO,OAAO,UAAU,eAAe;AAC1E,SAAO;AAAA,IACN,UAAU,OAAO,eAAeA;AAAA,IAChC;AAAA,IACA;AAAA,IACA,MAAM,OAAOA,KAAI;AAAA,EAAA;AAEnB;AAWA,SAAS,aAAaC,iBAAgB,UAAU;AAC/C,QAAM,QAAQ,SAAS,QAAQA,gBAAe,SAAS,KAAK,IAAI;AAChE,SAAO,SAAS,QAAQ,SAAS,OAAO,SAAS,SAAS,QAAQ;AACnE;AAoBA,SAAS,oBAAoBA,iBAAgB,GAAG,GAAG;AAClD,QAAM,aAAa,EAAE,QAAQ,SAAS;AACtC,QAAM,aAAa,EAAE,QAAQ,SAAS;AACtC,SAAO,aAAa,MAAM,eAAe,cAAc,kBAAkB,EAAE,QAAQ,UAAU,GAAG,EAAE,QAAQ,UAAU,CAAC,KAAK,0BAA0B,EAAE,QAAQ,EAAE,MAAM,KAAKA,gBAAe,EAAE,KAAK,MAAMA,gBAAe,EAAE,KAAK,KAAK,EAAE,SAAS,EAAE;AAChP;AAQA,SAAS,kBAAkB,GAAG,GAAG;AAChC,UAAQ,EAAE,WAAW,QAAQ,EAAE,WAAW;AAC3C;AACA,SAAS,0BAA0B,GAAG,GAAG;AACxC,MAAI,OAAO,KAAK,CAAC,EAAE,WAAW,OAAO,KAAK,CAAC,EAAE,OAAQ,QAAO;AAC5D,WAAS,OAAO,EAAG,KAAI,CAAC,+BAA+B,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,EAAG,QAAO;AAC/E,SAAO;AACR;AACA,SAAS,+BAA+B,GAAG,GAAG;AAC7C,SAAO,QAAQ,CAAC,IAAI,kBAAkB,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,kBAAkB,GAAG,CAAC,KAAK,KAAK,EAAE,gBAAgB,KAAK,EAAE;AACrH;AAQA,SAAS,kBAAkB,GAAG,GAAG;AAChC,SAAO,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,MAAM,UAAU,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,EAAE,CAAC,MAAM;AACjH;AAOA,SAAS,oBAAoB,IAAI,MAAM;AACtC,MAAI,GAAG,WAAW,GAAG,EAAG,QAAO;AAC/B,MAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,KAAK,WAAW,GAAG,GAAG;AACnE,WAAO,mFAAmF,EAAE,WAAW,IAAI,4BAA4B,IAAI,IAAI;AAC/I,WAAO;AAAA,EACR;AACA,MAAI,CAAC,GAAI,QAAO;AAChB,QAAM,eAAe,KAAK,MAAM,GAAG;AACnC,QAAM,aAAa,GAAG,MAAM,GAAG;AAC/B,QAAM,gBAAgB,WAAW,WAAW,SAAS,CAAC;AACtD,MAAI,kBAAkB,QAAQ,kBAAkB,IAAK,YAAW,KAAK,EAAE;AACvE,MAAI,WAAW,aAAa,SAAS;AACrC,MAAI;AACJ,MAAI;AACJ,OAAK,aAAa,GAAG,aAAa,WAAW,QAAQ,cAAc;AAClE,cAAU,WAAW,UAAU;AAC/B,QAAI,YAAY,IAAK;AACrB,QAAI,YAAY,MAAM;AACrB,UAAI,WAAW,EAAG;AAAA,IACnB,MAAO;AAAA,EACR;AACA,SAAO,aAAa,MAAM,GAAG,QAAQ,EAAE,KAAK,GAAG,IAAI,MAAM,WAAW,MAAM,UAAU,EAAE,KAAK,GAAG;AAC/F;AAgBA,MAAM,4BAA4B;AAAA,EACjC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,QAAQ,CAAA;AAAA,EACR,OAAO,CAAA;AAAA,EACP,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS,CAAA;AAAA,EACT,MAAM,CAAA;AAAA,EACN,gBAAgB;AACjB;AASA,SAAS,cAAc,MAAM;AAC5B,MAAI,CAAC,KAIE,QAAO;AACd,MAAI,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,MAAM,IAAK,QAAO,MAAM;AACrD,SAAO,oBAAoB,IAAI;AAChC;AACA,MAAM,iBAAiB;AACvB,SAAS,WAAW,MAAM,UAAU;AACnC,SAAO,KAAK,QAAQ,gBAAgB,GAAG,IAAI;AAC5C;AAkFA,SAAS,gBAAgB,OAAO;AAC/B,SAAO,OAAO,UAAU,YAAY,SAAS,OAAO,UAAU;AAC/D;AACA,SAAS,YAAY,MAAM;AAC1B,SAAO,OAAO,SAAS,YAAY,OAAO,SAAS;AACpD;AAYA,SAAS,WAAW,QAAQ;AAC3B,QAAM,QAAQ,CAAA;AACd,MAAI,WAAW,MAAM,WAAW,IAAK,QAAO;AAC5C,QAAM,gBAAgB,OAAO,CAAC,MAAM,MAAM,OAAO,MAAM,CAAC,IAAI,QAAQ,MAAM,GAAG;AAC7E,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,EAAE,GAAG;AAC7C,UAAM,cAAc,aAAa,CAAC,EAAE,QAAQ,SAAS,GAAG;AACxD,UAAM,QAAQ,YAAY,QAAQ,GAAG;AACrC,UAAM,MAAM,OAAO,QAAQ,IAAI,cAAc,YAAY,MAAM,GAAG,KAAK,CAAC;AACxE,UAAM,QAAQ,QAAQ,IAAI,OAAO,OAAO,YAAY,MAAM,QAAQ,CAAC,CAAC;AACpE,QAAI,OAAO,OAAO;AACjB,UAAI,eAAe,MAAM,GAAG;AAC5B,UAAI,CAAC,QAAQ,YAAY,kBAAkB,MAAM,GAAG,IAAI,CAAC,YAAY;AACrE,mBAAa,KAAK,KAAK;AAAA,IACxB,MAAO,OAAM,GAAG,IAAI;AAAA,EACrB;AACA,SAAO;AACR;AAUA,SAAS,eAAe,OAAO;AAC9B,MAAI,SAAS;AACb,WAAS,OAAO,OAAO;AACtB,UAAM,QAAQ,MAAM,GAAG;AACvB,UAAM,eAAe,GAAG;AACxB,QAAI,SAAS,MAAM;AAClB,UAAI,UAAU,OAAQ,YAAW,OAAO,SAAS,MAAM,MAAM;AAC7D;AAAA,IACD;AACA,KAAC,QAAQ,KAAK,IAAI,MAAM,IAAI,CAAC,MAAM,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,SAAS,iBAAiB,KAAK,CAAC,GAAG,QAAQ,CAACC,WAAU;AACrH,UAAIA,WAAU,QAAQ;AACrB,mBAAW,OAAO,SAAS,MAAM,MAAM;AACvC,YAAIA,UAAS,KAAM,WAAU,MAAMA;AAAAA,MACpC;AAAA,IACD,CAAC;AAAA,EACF;AACA,SAAO;AACR;AASA,SAAS,eAAe,OAAO;AAC9B,QAAM,kBAAkB,CAAA;AACxB,aAAW,OAAO,OAAO;AACxB,UAAM,QAAQ,MAAM,GAAG;AACvB,QAAI,UAAU,OAAQ,iBAAgB,GAAG,IAAI,QAAQ,KAAK,IAAI,MAAM,IAAI,CAAC,MAAM,KAAK,OAAO,OAAO,KAAK,CAAC,IAAI,SAAS,OAAO,QAAQ,KAAK;AAAA,EAC1I;AACA,SAAO;AACR;AAMA,SAAS,eAAe;AACvB,MAAI,WAAW,CAAA;AACf,WAAS,IAAI,SAAS;AACrB,aAAS,KAAK,OAAO;AACrB,WAAO,MAAM;AACZ,YAAM,IAAI,SAAS,QAAQ,OAAO;AAClC,UAAI,IAAI,GAAI,UAAS,OAAO,GAAG,CAAC;AAAA,IACjC;AAAA,EACD;AACA,WAAS,QAAQ;AAChB,eAAW,CAAA;AAAA,EACZ;AACA,SAAO;AAAA,IACN;AAAA,IACA,MAAM,MAAM,SAAS,MAAA;AAAA,IACrB;AAAA,EAAA;AAEF;AAmDA,SAAS,iBAAiB,OAAO,IAAI,MAAM,QAAQ,MAAM,iBAAiB,CAAC,OAAO,MAAM;AACvF,QAAM,qBAAqB,WAAW,OAAO,eAAe,IAAI,IAAI,OAAO,eAAe,IAAI,KAAK;AACnG,SAAO,MAAM,IAAI,QAAQ,CAAC,SAAS,WAAW;AAC7C,UAAM,OAAO,CAAC,UAAU;AACvB,UAAI,UAAU,MAAO,QAAO,kBAAkB,GAAG;AAAA,QAChD;AAAA,QACA;AAAA,MAAA,CACA,CAAC;AAAA,eACO,iBAAiB,MAAO,QAAO,KAAK;AAAA,eACpC,gBAAgB,KAAK,EAAG,QAAO,kBAAkB,GAAG;AAAA,QAC5D,MAAM;AAAA,QACN,IAAI;AAAA,MAAA,CACJ,CAAC;AAAA,WACG;AACJ,YAAI,sBAAsB,OAAO,eAAe,IAAI,MAAM,sBAAsB,OAAO,UAAU,WAAY,oBAAmB,KAAK,KAAK;AAC1I,gBAAA;AAAA,MACD;AAAA,IACD;AACA,UAAM,cAAc,eAAe,MAAM,MAAM,KAAK,UAAU,OAAO,UAAU,IAAI,GAAG,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,uBAAuB,oBAAoB,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;AAC3M,QAAI,YAAY,QAAQ,QAAQ,WAAW;AAC3C,QAAI,MAAM,SAAS,EAAG,aAAY,UAAU,KAAK,IAAI;AACrD,QAAI,QAAQ,IAAI,aAAa,gBAAgB,MAAM,SAAS,GAAG;AAC9D,YAAM,UAAU,kDAAkD,MAAM,OAAO,MAAO,MAAM,OAAO,MAAO,EAAE;AAAA,EAAM,MAAM,UAAU;AAAA;AAClI,UAAI,OAAO,gBAAgB,YAAY,UAAU,YAAa,aAAY,UAAU,KAAK,CAAC,kBAAkB;AAC3G,YAAI,CAAC,KAAK,SAAS;AAClB,iBAAO,OAAO;AACd,iBAAO,QAAQ,OAAuB,oBAAI,MAAM,0BAA0B,CAAC;AAAA,QAC5E;AACA,eAAO;AAAA,MACR,CAAC;AAAA,eACQ,gBAAgB,QAAQ;AAChC,YAAI,CAAC,KAAK,SAAS;AAClB,iBAAO,OAAO;AACd,iBAAuB,oBAAI,MAAM,0BAA0B,CAAC;AAC5D;AAAA,QACD;AAAA,MACD;AAAA,IACD;AACA,cAAU,MAAM,CAAC,QAAQ,OAAO,GAAG,CAAC;AAAA,EACrC,CAAC;AACF;AAQA,SAAS,uBAAuB,MAAM;AACrC,MAAI,SAAS;AACb,SAAO,WAAW;AACjB,QAAI,CAAC,QAAQ;AACZ,eAAS;AACT,aAAO,8GAA8G;AAAA,IACtH;AACA,WAAO,KAAK,MAAM,MAAM,SAAS;AAAA,EAClC;AACD;AACA,SAAS,oBAAoB,MAAM,IAAI,MAAM;AAC5C,MAAI,SAAS;AACb,SAAO,WAAW;AACjB,QAAI,aAAa,EAAG,QAAO,0FAA0F,KAAK,QAAQ,SAAS,GAAG,QAAQ,iGAAiG;AACvP,SAAK,UAAU;AACf,QAAI,WAAW,EAAG,MAAK,MAAM,MAAM,SAAS;AAAA,EAC7C;AACD;AACA,SAAS,wBAAwB,SAAS,WAAW,IAAI,MAAM,iBAAiB,CAAC,OAAO,MAAM;AAC7F,QAAM,SAAS,CAAA;AACf,aAAW,UAAU,SAAS;AAC7B,QAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,OAAO,cAAc,OAAO,YAAY,CAAC,OAAO,SAAS,eAAe,qBAAqB,OAAO,IAAI,8DAA8D;AACpN,eAAW,QAAQ,OAAO,YAAY;AACrC,UAAI,eAAe,OAAO,WAAW,IAAI;AACzC,UAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,YAAI,CAAC,gBAAgB,OAAO,iBAAiB,YAAY,OAAO,iBAAiB,YAAY;AAC5F,iBAAO,cAAc,IAAI,0BAA0B,OAAO,IAAI,yCAAyC,OAAO,YAAY,CAAC,IAAI;AAC/H,gBAAM,IAAI,MAAM,yBAAyB;AAAA,QAC1C,WAAW,UAAU,cAAc;AAClC,iBAAO,cAAc,IAAI,0BAA0B,OAAO,IAAI,6LAA6L;AAC3P,gBAAM,UAAU;AAChB,yBAAe,MAAM;AAAA,QACtB,WAAW,aAAa,iBAAiB,CAAC,aAAa,qBAAqB;AAC3E,uBAAa,sBAAsB;AACnC,iBAAO,cAAc,IAAI,0BAA0B,OAAO,IAAI,oJAAoJ;AAAA,QACnN;AAAA,MACD;AACA,UAAI,cAAc,sBAAsB,CAAC,OAAO,UAAU,IAAI,EAAG;AACjE,UAAI,iBAAiB,YAAY,GAAG;AACnC,cAAM,SAAS,aAAa,aAAa,cAAc,SAAS;AAChE,iBAAS,OAAO,KAAK,iBAAiB,OAAO,IAAI,MAAM,QAAQ,MAAM,cAAc,CAAC;AAAA,MACrF,OAAO;AACN,YAAI,mBAAmB,aAAA;AACvB,YAAI,QAAQ,IAAI,aAAa,gBAAgB,EAAE,WAAW,mBAAmB;AAC5E,iBAAO,cAAc,IAAI,0BAA0B,OAAO,IAAI,4LAA4L;AAC1P,6BAAmB,QAAQ,QAAQ,gBAAgB;AAAA,QACpD;AACA,eAAO,KAAK,MAAM,iBAAiB,KAAK,CAAC,aAAa;AACrD,cAAI,CAAC,SAAU,OAAM,IAAI,MAAM,+BAA+B,IAAI,SAAS,OAAO,IAAI,GAAG;AACzF,gBAAM,oBAAoB,WAAW,QAAQ,IAAI,SAAS,UAAU;AACpE,iBAAO,KAAK,IAAI,IAAI;AACpB,iBAAO,WAAW,IAAI,IAAI;AAC1B,gBAAM,SAAS,kBAAkB,aAAa,mBAAmB,SAAS;AAC1E,iBAAO,SAAS,iBAAiB,OAAO,IAAI,MAAM,QAAQ,MAAM,cAAc,EAAA;AAAA,QAC/E,CAAC,CAAC;AAAA,MACH;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR;AAyBA,SAAS,uBAAuB,IAAI,MAAM;AACzC,QAAM,iBAAiB,CAAA;AACvB,QAAM,kBAAkB,CAAA;AACxB,QAAM,kBAAkB,CAAA;AACxB,QAAM,MAAM,KAAK,IAAI,KAAK,QAAQ,QAAQ,GAAG,QAAQ,MAAM;AAC3D,WAAS,IAAI,GAAG,IAAI,KAAK,KAAK;AAC7B,UAAM,aAAa,KAAK,QAAQ,CAAC;AACjC,QAAI,WAAY,KAAI,GAAG,QAAQ,KAAK,CAAC,WAAW,kBAAkB,QAAQ,UAAU,CAAC,EAAG,iBAAgB,KAAK,UAAU;AAAA,QAClH,gBAAe,KAAK,UAAU;AACnC,UAAM,WAAW,GAAG,QAAQ,CAAC;AAC7B,QAAI,UAAU;AACb,UAAI,CAAC,KAAK,QAAQ,KAAK,CAAC,WAAW,kBAAkB,QAAQ,QAAQ,CAAC,EAAG,iBAAgB,KAAK,QAAQ;AAAA,IACvG;AAAA,EACD;AACA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;AC/cA,SAAS,oBAAoB,OAAO,IAAI;AACvC,MAAI,YAAY,CAAA;AAChB,MAAI,QAAQ,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC;AACrB,MAAI,WAAW;AACf,SAAO,cAAc,IAAI;AACzB,WAAS,YAAYC,WAAU,QAAQ,IAAI;AAC1C;AACA,QAAI,aAAa,MAAM,OAAQ,OAAM,OAAO,QAAQ;AACpD,UAAM,KAAK,CAACA,WAAU,KAAK,CAAC;AAAA,EAC7B;AACA,WAAS,iBAAiB,IAAI,MAAM,EAAE,WAAW,SAAS;AACzD,UAAM,OAAO;AAAA,MACZ;AAAA,MACA;AAAA,MACA,MAAM;AAAA,IAAA;AAEP,eAAW,YAAY,UAAW,UAAS,IAAI,MAAM,IAAI;AAAA,EAC1D;AACA,QAAM,gBAAgB;AAAA,IACrB,UAAU;AAAA,IACV,OAAO,CAAA;AAAA,IACP;AAAA,IACA,YAAY,WAAW,KAAK,MAAM,IAAI;AAAA,IACtC,QAAQ,IAAI,OAAO;AAClB,YAAM,OAAO,YAAY,CAAC;AAC1B,kBAAY,IAAI,KAAK;AAAA,IACtB;AAAA,IACA,KAAK,IAAI,OAAO;AACf,kBAAY,IAAI,KAAK;AAAA,IACtB;AAAA,IACA,OAAO,UAAU;AAChB,gBAAU,KAAK,QAAQ;AACvB,aAAO,MAAM;AACZ,cAAM,QAAQ,UAAU,QAAQ,QAAQ;AACxC,YAAI,QAAQ,GAAI,WAAU,OAAO,OAAO,CAAC;AAAA,MAC1C;AAAA,IACD;AAAA,IACA,UAAU;AACT,kBAAY,CAAA;AACZ,cAAQ,CAAC,CAAC,IAAI,CAAA,CAAE,CAAC;AACjB,iBAAW;AAAA,IACZ;AAAA,IACA,GAAG,OAAO,gBAAgB,MAAM;AAC/B,YAAM,OAAO,KAAK;AAClB,YAAM,YAAY,QAAQ,IAAI,SAAS;AACvC,iBAAW,KAAK,IAAI,GAAG,KAAK,IAAI,WAAW,OAAO,MAAM,SAAS,CAAC,CAAC;AACnE,UAAI,cAAe,kBAAiB,KAAK,UAAU,MAAM;AAAA,QACxD;AAAA,QACA;AAAA,MAAA,CACA;AAAA,IACF;AAAA,EAAA;AAED,SAAO,eAAe,eAAe,YAAY;AAAA,IAChD,YAAY;AAAA,IACZ,KAAK,MAAM,MAAM,QAAQ,EAAE,CAAC;AAAA,EAAA,CAC5B;AACD,SAAO,eAAe,eAAe,SAAS;AAAA,IAC7C,YAAY;AAAA,IACZ,KAAK,MAAM,MAAM,QAAQ,EAAE,CAAC;AAAA,EAAA,CAC5B;AACD,SAAO;AACR;AAGA,MAAM,aAAa;AAAA,EAClB,MAAM;AAAA,EACN,OAAO;AACR;AACA,MAAM,iBAAiB;AACvB,SAAS,aAAa,MAAM;AAC3B,MAAI,CAAC,KAAM,QAAO,CAAC,EAAE;AACrB,MAAI,SAAS,IAAK,QAAO,CAAC,CAAC,UAAU,CAAC;AACtC,MAAI,CAAC,KAAK,WAAW,GAAG,EAAG,OAAM,IAAI,MAAM,QAAQ,IAAI,aAAa,eAAe,yCAAyC,IAAI,iBAAiB,IAAI,OAAO,iBAAiB,IAAI,GAAG;AACpL,WAAS,MAAM,SAAS;AACvB,UAAM,IAAI,MAAM,QAAQ,KAAK,MAAM,MAAM,MAAM,OAAO,EAAE;AAAA,EACzD;AACA,MAAI,QAAQ;AACZ,MAAI,gBAAgB;AACpB,QAAM,SAAS,CAAA;AACf,MAAI;AACJ,WAAS,kBAAkB;AAC1B,QAAI,QAAS,QAAO,KAAK,OAAO;AAChC,cAAU,CAAA;AAAA,EACX;AACA,MAAI,IAAI;AACR,MAAI;AACJ,MAAI,SAAS;AACb,MAAI,WAAW;AACf,WAAS,gBAAgB;AACxB,QAAI,CAAC,OAAQ;AACb,QAAI,UAAU,EAAG,SAAQ,KAAK;AAAA,MAC7B,MAAM;AAAA,MACN,OAAO;AAAA,IAAA,CACP;AAAA,aACQ,UAAU,KAAK,UAAU,KAAK,UAAU,GAAG;AACnD,UAAI,QAAQ,SAAS,MAAM,SAAS,OAAO,SAAS,KAAM,OAAM,uBAAuB,MAAM,8CAA8C;AAC3I,cAAQ,KAAK;AAAA,QACZ,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,YAAY,SAAS,OAAO,SAAS;AAAA,QACrC,UAAU,SAAS,OAAO,SAAS;AAAA,MAAA,CACnC;AAAA,IACF,aAAa,iCAAiC;AAC9C,aAAS;AAAA,EACV;AACA,WAAS,kBAAkB;AAC1B,cAAU;AAAA,EACX;AACA,SAAO,IAAI,KAAK,QAAQ;AACvB,WAAO,KAAK,GAAG;AACf,YAAQ,OAAA;AAAA,MACP,KAAK;AACJ,YAAI,SAAS,MAAM;AAClB,0BAAgB;AAChB,kBAAQ;AAAA,QACT,WAAW,SAAS,KAAK;AACxB,cAAI,OAAQ,eAAA;AACZ,0BAAA;AAAA,QACD,WAAW,SAAS,KAAK;AACxB,wBAAA;AACA,kBAAQ;AAAA,QACT,MAAO,iBAAA;AACP;AAAA,MACD,KAAK;AACJ,wBAAA;AACA,gBAAQ;AACR;AAAA,MACD,KAAK;AACJ,YAAI,SAAS,IAAK,SAAQ;AAAA,iBACjB,eAAe,KAAK,IAAI,EAAG,iBAAA;AAAA,aAC/B;AACJ,wBAAA;AACA,kBAAQ;AACR,cAAI,SAAS,OAAO,SAAS,OAAO,SAAS,IAAK;AAAA,QACnD;AACA;AAAA,MACD,KAAK;AACJ,YAAI,SAAS,IAAK,KAAI,SAAS,SAAS,SAAS,CAAC,KAAK,KAAM,YAAW,SAAS,MAAM,GAAG,EAAE,IAAI;AAAA,YAC3F,SAAQ;AAAA,YACR,aAAY;AACjB;AAAA,MACD,KAAK;AACJ,sBAAA;AACA,gBAAQ;AACR,YAAI,SAAS,OAAO,SAAS,OAAO,SAAS,IAAK;AAClD,mBAAW;AACX;AAAA,MACD;AACC,cAAM,eAAe;AACrB;AAAA,IAAA;AAAA,EAEH;AACA,MAAI,UAAU,EAAG,OAAM,uCAAuC,MAAM,GAAG;AACvE,gBAAA;AACA,kBAAA;AACA,SAAO;AACR;AAGA,MAAM,qBAAqB;AAC3B,MAAM,2BAA2B;AAAA,EAChC,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,KAAK;AACN;AACA,MAAM,iBAAiB;AAQvB,SAAS,eAAe,UAAU,cAAc;AAC/C,QAAM,UAAU,OAAO,IAAI,0BAA0B,YAAY;AACjE,QAAM,QAAQ,CAAA;AACd,MAAI,UAAU,QAAQ,QAAQ,MAAM;AACpC,QAAM,OAAO,CAAA;AACb,aAAW,WAAW,UAAU;AAC/B,UAAM,gBAAgB,QAAQ,SAAS,CAAA,IAAK,CAAC,EAAE;AAC/C,QAAI,QAAQ,UAAU,CAAC,QAAQ,OAAQ,YAAW;AAClD,aAAS,aAAa,GAAG,aAAa,QAAQ,QAAQ,cAAc;AACnE,YAAM,QAAQ,QAAQ,UAAU;AAChC,UAAI,kBAAkB,MAAM,QAAQ,YAAY,OAAM;AACtD,UAAI,MAAM,SAAS,GAAG;AACrB,YAAI,CAAC,WAAY,YAAW;AAC5B,mBAAW,MAAM,MAAM,QAAQ,gBAAgB,MAAM;AACrD,2BAAmB;AAAA,MACpB,WAAW,MAAM,SAAS,GAAG;AAC5B,cAAM,EAAE,OAAO,YAAY,UAAU,WAAW;AAChD,aAAK,KAAK;AAAA,UACT,MAAM;AAAA,UACN;AAAA,UACA;AAAA,QAAA,CACA;AACD,cAAMC,MAAK,SAAS,SAAS;AAC7B,YAAIA,QAAO,oBAAoB;AAC9B,6BAAmB;AACnB,cAAI;AACH,gBAAI,OAAO,IAAIA,GAAE,GAAG;AAAA,UACrB,SAAS,KAAK;AACb,kBAAM,IAAI,MAAM,oCAAoC,KAAK,MAAMA,GAAE,QAAQ,IAAI,OAAO;AAAA,UACrF;AAAA,QACD;AACA,YAAI,aAAa,aAAa,OAAOA,GAAE,WAAWA,GAAE,SAAS,IAAIA,GAAE;AACnE,YAAI,CAAC,WAAY,cAAa,YAAY,QAAQ,SAAS,IAAI,OAAO,UAAU,MAAM,MAAM;AAC5F,YAAI,SAAU,eAAc;AAC5B,mBAAW;AACX,2BAAmB;AACnB,YAAI,SAAU,oBAAmB;AACjC,YAAI,WAAY,oBAAmB;AACnC,YAAIA,QAAO,KAAM,oBAAmB;AAAA,MACrC;AACA,oBAAc,KAAK,eAAe;AAAA,IACnC;AACA,UAAM,KAAK,aAAa;AAAA,EACzB;AACA,MAAI,QAAQ,UAAU,QAAQ,KAAK;AAClC,UAAM,IAAI,MAAM,SAAS;AACzB,UAAM,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK;AAAA,EAClC;AACA,MAAI,CAAC,QAAQ,OAAQ,YAAW;AAChC,MAAI,QAAQ,IAAK,YAAW;AAAA,WACnB,QAAQ,UAAU,CAAC,QAAQ,SAAS,GAAG,EAAG,YAAW;AAC9D,QAAM,KAAK,IAAI,OAAO,SAAS,QAAQ,YAAY,KAAK,GAAG;AAC3D,WAAS,MAAM,MAAM;AACpB,UAAM,QAAQ,KAAK,MAAM,EAAE;AAC3B,UAAM,SAAS,CAAA;AACf,QAAI,CAAC,MAAO,QAAO;AACnB,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACtC,YAAM,QAAQ,MAAM,CAAC,KAAK;AAC1B,YAAM,MAAM,KAAK,IAAI,CAAC;AACtB,aAAO,IAAI,IAAI,IAAI,SAAS,IAAI,aAAa,MAAM,MAAM,GAAG,IAAI;AAAA,IACjE;AACA,WAAO;AAAA,EACR;AACA,WAAS,UAAU,QAAQ;AAC1B,QAAI,OAAO;AACX,QAAI,uBAAuB;AAC3B,eAAW,WAAW,UAAU;AAC/B,UAAI,CAAC,wBAAwB,CAAC,KAAK,SAAS,GAAG,EAAG,SAAQ;AAC1D,6BAAuB;AACvB,iBAAW,SAAS,QAAS,KAAI,MAAM,SAAS,WAAW,MAAM;AAAA,eACxD,MAAM,SAAS,GAAG;AAC1B,cAAM,EAAE,OAAO,YAAY,SAAA,IAAa;AACxC,cAAM,QAAQ,SAAS,SAAS,OAAO,KAAK,IAAI;AAChD,YAAI,QAAQ,KAAK,KAAK,CAAC,kBAAkB,IAAI,MAAM,mBAAmB,KAAK,2DAA2D;AACtI,cAAM,OAAO,QAAQ,KAAK,IAAI,MAAM,KAAK,GAAG,IAAI;AAChD,YAAI,CAAC,KAAM,KAAI,UAAU;AACxB,cAAI,QAAQ,SAAS,EAAG,KAAI,KAAK,SAAS,GAAG,EAAG,QAAO,KAAK,MAAM,GAAG,EAAE;AAAA,cAClE,wBAAuB;AAAA,QAC7B,MAAO,OAAM,IAAI,MAAM,2BAA2B,KAAK,GAAG;AAC1D,gBAAQ;AAAA,MACT;AAAA,IACD;AACA,WAAO,QAAQ;AAAA,EAChB;AACA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;AAUA,SAAS,kBAAkB,GAAG,GAAG;AAChC,MAAI,IAAI;AACR,SAAO,IAAI,EAAE,UAAU,IAAI,EAAE,QAAQ;AACpC,UAAM,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC;AACvB,QAAI,KAAM,QAAO;AACjB;AAAA,EACD;AACA,MAAI,EAAE,SAAS,EAAE,OAAQ,QAAO,EAAE,WAAW,KAAK,EAAE,CAAC,MAAM,KAAK,KAAK;AAAA,WAC5D,EAAE,SAAS,EAAE,OAAQ,QAAO,EAAE,WAAW,KAAK,EAAE,CAAC,MAAM,KAAK,IAAI;AACzE,SAAO;AACR;AAQA,SAAS,uBAAuB,GAAG,GAAG;AACrC,MAAI,IAAI;AACR,QAAM,SAAS,EAAE;AACjB,QAAM,SAAS,EAAE;AACjB,SAAO,IAAI,OAAO,UAAU,IAAI,OAAO,QAAQ;AAC9C,UAAM,OAAO,kBAAkB,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACnD,QAAI,KAAM,QAAO;AACjB;AAAA,EACD;AACA,MAAI,KAAK,IAAI,OAAO,SAAS,OAAO,MAAM,MAAM,GAAG;AAClD,QAAI,oBAAoB,MAAM,EAAG,QAAO;AACxC,QAAI,oBAAoB,MAAM,EAAG,QAAO;AAAA,EACzC;AACA,SAAO,OAAO,SAAS,OAAO;AAC/B;AAOA,SAAS,oBAAoB,OAAO;AACnC,QAAM,OAAO,MAAM,MAAM,SAAS,CAAC;AACnC,SAAO,MAAM,SAAS,KAAK,KAAK,KAAK,SAAS,CAAC,IAAI;AACpD;AACA,MAAM,+BAA+B;AAAA,EACpC,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,WAAW;AACZ;AAGA,SAAS,yBAAyB,QAAQ,QAAQ,SAAS;AAC1D,QAAM,SAAS,eAAe,aAAa,OAAO,IAAI,GAAG,OAAO;AAChE,MAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,UAAM,mCAAmC,IAAA;AACzC,eAAW,OAAO,OAAO,MAAM;AAC9B,UAAI,aAAa,IAAI,IAAI,IAAI,EAAG,QAAO,sCAAsC,IAAI,IAAI,eAAe,OAAO,IAAI,4DAA4D;AAC3K,mBAAa,IAAI,IAAI,IAAI;AAAA,IAC1B;AAAA,EACD;AACA,QAAMC,WAAU,OAAO,QAAQ;AAAA,IAC9B;AAAA,IACA;AAAA,IACA,UAAU,CAAA;AAAA,IACV,OAAO,CAAA;AAAA,EAAC,CACR;AACD,MAAI,QAAQ;AACX,QAAI,CAACA,SAAQ,OAAO,YAAY,CAAC,OAAO,OAAO,QAAS,QAAO,SAAS,KAAKA,QAAO;AAAA,EACrF;AACA,SAAOA;AACR;AAUA,SAAS,oBAAoB,QAAQ,eAAe;AACnD,QAAM,WAAW,CAAA;AACjB,QAAM,iCAAiC,IAAA;AACvC,kBAAgB,aAAa,8BAA8B,aAAa;AACxE,WAAS,iBAAiB,MAAM;AAC/B,WAAO,WAAW,IAAI,IAAI;AAAA,EAC3B;AACA,WAAS,SAAS,QAAQ,QAAQ,gBAAgB;AACjD,UAAM,YAAY,CAAC;AACnB,UAAM,uBAAuB,qBAAqB,MAAM;AACxD,QAAI,QAAQ,IAAI,aAAa,aAAc,oCAAmC,sBAAsB,MAAM;AAC1G,yBAAqB,UAAU,kBAAkB,eAAe;AAChE,UAAM,UAAU,aAAa,eAAe,MAAM;AAClD,UAAM,oBAAoB,CAAC,oBAAoB;AAC/C,QAAI,WAAW,QAAQ;AACtB,YAAM,UAAU,OAAO,OAAO,UAAU,WAAW,CAAC,OAAO,KAAK,IAAI,OAAO;AAC3E,iBAAW,SAAS,QAAS,mBAAkB,KAAK,qBAAqB,OAAO,CAAA,GAAI,sBAAsB;AAAA,QACzG,YAAY,iBAAiB,eAAe,OAAO,aAAa,qBAAqB;AAAA,QACrF,MAAM;AAAA,QACN,SAAS,iBAAiB,eAAe,SAAS;AAAA,MAAA,CAClD,CAAC,CAAC;AAAA,IACJ;AACA,QAAIA;AACJ,QAAI;AACJ,eAAW,oBAAoB,mBAAmB;AACjD,YAAM,EAAE,SAAS;AACjB,UAAI,UAAU,KAAK,CAAC,MAAM,KAAK;AAC9B,cAAM,aAAa,OAAO,OAAO;AACjC,cAAM,kBAAkB,WAAW,WAAW,SAAS,CAAC,MAAM,MAAM,KAAK;AACzE,yBAAiB,OAAO,OAAO,OAAO,QAAQ,QAAQ,kBAAkB;AAAA,MACzE;AACA,UAAI,QAAQ,IAAI,aAAa,gBAAgB,iBAAiB,SAAS,IAAK,OAAM,IAAI,MAAM,yKAA2K;AACvQ,MAAAA,WAAU,yBAAyB,kBAAkB,QAAQ,OAAO;AACpE,UAAI,QAAQ,IAAI,aAAa,gBAAgB,UAAU,KAAK,CAAC,MAAM,IAAK,kCAAiCA,UAAS,MAAM;AACxH,UAAI,gBAAgB;AACnB,uBAAe,MAAM,KAAKA,QAAO;AACjC,YAAI,QAAQ,IAAI,aAAa,aAAc,iBAAgB,gBAAgBA,QAAO;AAAA,MACnF,OAAO;AACN,0BAAkB,mBAAmBA;AACrC,YAAI,oBAAoBA,SAAS,iBAAgB,MAAM,KAAKA,QAAO;AACnE,YAAI,aAAa,OAAO,QAAQ,CAAC,cAAcA,QAAO,GAAG;AACxD,cAAI,QAAQ,IAAI,aAAa,aAAc,yBAAwB,QAAQ,MAAM;AACjF,sBAAY,OAAO,IAAI;AAAA,QACxB;AAAA,MACD;AACA,UAAI,YAAYA,QAAO,EAAG,eAAcA,QAAO;AAC/C,UAAI,qBAAqB,UAAU;AAClC,cAAM,WAAW,qBAAqB;AACtC,iBAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,IAAK,UAAS,SAAS,CAAC,GAAGA,UAAS,kBAAkB,eAAe,SAAS,CAAC,CAAC;AAAA,MACtH;AACA,uBAAiB,kBAAkBA;AAAA,IACpC;AACA,WAAO,kBAAkB,MAAM;AAC9B,kBAAY,eAAe;AAAA,IAC5B,IAAI;AAAA,EACL;AACA,WAAS,YAAY,YAAY;AAChC,QAAI,YAAY,UAAU,GAAG;AAC5B,YAAMA,WAAU,WAAW,IAAI,UAAU;AACzC,UAAIA,UAAS;AACZ,mBAAW,OAAO,UAAU;AAC5B,iBAAS,OAAO,SAAS,QAAQA,QAAO,GAAG,CAAC;AAC5C,QAAAA,SAAQ,SAAS,QAAQ,WAAW;AACpC,QAAAA,SAAQ,MAAM,QAAQ,WAAW;AAAA,MAClC;AAAA,IACD,OAAO;AACN,YAAM,QAAQ,SAAS,QAAQ,UAAU;AACzC,UAAI,QAAQ,IAAI;AACf,iBAAS,OAAO,OAAO,CAAC;AACxB,YAAI,WAAW,OAAO,iBAAiB,OAAO,WAAW,OAAO,IAAI;AACpE,mBAAW,SAAS,QAAQ,WAAW;AACvC,mBAAW,MAAM,QAAQ,WAAW;AAAA,MACrC;AAAA,IACD;AAAA,EACD;AACA,WAAS,YAAY;AACpB,WAAO;AAAA,EACR;AACA,WAAS,cAAcA,UAAS;AAC/B,UAAM,QAAQ,mBAAmBA,UAAS,QAAQ;AAClD,aAAS,OAAO,OAAO,GAAGA,QAAO;AACjC,QAAIA,SAAQ,OAAO,QAAQ,CAAC,cAAcA,QAAO,EAAG,YAAW,IAAIA,SAAQ,OAAO,MAAMA,QAAO;AAAA,EAChG;AACA,WAAS,QAAQF,WAAU,iBAAiB;AAC3C,QAAIE;AACJ,QAAI,SAAS,CAAA;AACb,QAAI;AACJ,QAAI;AACJ,QAAI,UAAUF,aAAYA,UAAS,MAAM;AACxC,MAAAE,WAAU,WAAW,IAAIF,UAAS,IAAI;AACtC,UAAI,CAACE,SAAS,OAAM,kBAAkB,GAAG,EAAE,UAAAF,WAAU;AACrD,UAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,cAAM,gBAAgB,OAAO,KAAKA,UAAS,UAAU,CAAA,CAAE,EAAE,OAAO,CAAC,cAAc,CAACE,SAAQ,KAAK,KAAK,CAAC,MAAM,EAAE,SAAS,SAAS,CAAC;AAC9H,YAAI,cAAc,QAAQ;AACzB,gBAAM,cAAc,CAACA,SAAQ,KAAK,UAAU,cAAc,KAAK,CAACC,UAASA,SAAQ,gBAAgB,MAAM;AACvG,iBAAO,+BAA+B,cAAc,KAAK,MAAQ,CAAC,wBAAwB,cAAc,2IAA2I,MAAM,8GAA8G;AAAA,QACxW;AAAA,MACD;AACA,aAAOD,SAAQ,OAAO;AACtB,eAAS,OAAO,WAAW,gBAAgB,QAAQA,SAAQ,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAOA,SAAQ,SAASA,SAAQ,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE,QAAQ,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAGF,UAAS,UAAU,WAAWA,UAAS,QAAQE,SAAQ,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAC3Q,aAAOA,SAAQ,UAAU,MAAM;AAAA,IAChC,WAAWF,UAAS,QAAQ,MAAM;AACjC,aAAOA,UAAS;AAChB,UAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,KAAK,WAAW,GAAG,EAAG,QAAO,2DAA2D,IAAI,oDAAoD,IAAI,wHAAwH;AAC1T,MAAAE,WAAU,SAAS,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;AAC9C,UAAIA,UAAS;AACZ,iBAASA,SAAQ,MAAM,IAAI;AAC3B,eAAOA,SAAQ,OAAO;AACtB,QAAAA,SAAQ,KAAK,QAAQ,CAAC,QAAQ;AAC7B,cAAI,IAAI,YAAY,CAAC,OAAO,IAAI,IAAI,EAAG,QAAO,OAAO,IAAI,IAAI;AAAA,QAC9D,CAAC;AAAA,MACF;AAAA,IACD,OAAO;AACN,MAAAA,WAAU,gBAAgB,OAAO,WAAW,IAAI,gBAAgB,IAAI,IAAI,SAAS,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,gBAAgB,IAAI,CAAC;AAC5H,UAAI,CAACA,SAAS,OAAM,kBAAkB,GAAG;AAAA,QACxC,UAAAF;AAAAA,QACA;AAAA,MAAA,CACA;AACD,aAAOE,SAAQ,OAAO;AACtB,eAAS,OAAO,CAAA,GAAI,gBAAgB,QAAQF,UAAS,MAAM;AAC3D,aAAOE,SAAQ,UAAU,MAAM;AAAA,IAChC;AACA,UAAM,UAAU,CAAA;AAChB,QAAI,gBAAgBA;AACpB,WAAO,eAAe;AACrB,cAAQ,QAAQ,cAAc,MAAM;AACpC,sBAAgB,cAAc;AAAA,IAC/B;AACA,WAAO;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM,gBAAgB,OAAO;AAAA,IAAA;AAAA,EAE/B;AACA,SAAO,QAAQ,CAAC,UAAU,SAAS,KAAK,CAAC;AACzC,WAAS,cAAc;AACtB,aAAS,SAAS;AAClB,eAAW,MAAA;AAAA,EACZ;AACA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;AAOA,SAAS,WAAW,QAAQ,MAAM;AACjC,QAAM,YAAY,CAAA;AAClB,aAAW,OAAO,KAAM,KAAI,OAAO,OAAQ,WAAU,GAAG,IAAI,OAAO,GAAG;AACtE,SAAO;AACR;AAOA,SAAS,qBAAqB,QAAQ;AACrC,QAAM,aAAa;AAAA,IAClB,MAAM,OAAO;AAAA,IACb,UAAU,OAAO;AAAA,IACjB,MAAM,OAAO;AAAA,IACb,MAAM,OAAO,QAAQ,CAAA;AAAA,IACrB,SAAS,OAAO;AAAA,IAChB,aAAa,OAAO;AAAA,IACpB,OAAO,qBAAqB,MAAM;AAAA,IAClC,UAAU,OAAO,YAAY,CAAA;AAAA,IAC7B,WAAW,CAAA;AAAA,IACX,iCAAiC,IAAA;AAAA,IACjC,kCAAkC,IAAA;AAAA,IAClC,gBAAgB,CAAA;AAAA,IAChB,YAAY,gBAAgB,SAAS,OAAO,cAAc,OAAO,OAAO,aAAa,EAAE,SAAS,OAAO,UAAA;AAAA,EAAU;AAElH,SAAO,eAAe,YAAY,QAAQ,EAAE,OAAO,CAAA,GAAI;AACvD,SAAO;AACR;AAMA,SAAS,qBAAqB,QAAQ;AACrC,QAAM,cAAc,CAAA;AACpB,QAAM,QAAQ,OAAO,SAAS;AAC9B,MAAI,eAAe,OAAQ,aAAY,UAAU;AAAA,MAC5C,YAAW,QAAQ,OAAO,WAAY,aAAY,IAAI,IAAI,OAAO,UAAU,WAAW,MAAM,IAAI,IAAI;AACzG,SAAO;AACR;AAKA,SAAS,cAAc,QAAQ;AAC9B,SAAO,QAAQ;AACd,QAAI,OAAO,OAAO,QAAS,QAAO;AAClC,aAAS,OAAO;AAAA,EACjB;AACA,SAAO;AACR;AAMA,SAAS,gBAAgB,SAAS;AACjC,SAAO,QAAQ,OAAO,CAAC,MAAM,WAAW,OAAO,MAAM,OAAO,IAAI,GAAG,EAAE;AACtE;AACA,SAAS,YAAY,GAAG,GAAG;AAC1B,SAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE;AAC7E;AAOA,SAAS,gBAAgB,GAAG,GAAG;AAC9B,aAAW,OAAO,EAAE,KAAM,KAAI,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,MAAM,GAAG,CAAC,EAAG,QAAO,OAAO,UAAU,EAAE,OAAO,IAAI,+BAA+B,EAAE,OAAO,IAAI,2CAA2C,IAAI,IAAI,GAAG;AACjO,aAAW,OAAO,EAAE,KAAM,KAAI,CAAC,IAAI,YAAY,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,MAAM,GAAG,CAAC,EAAG,QAAO,OAAO,UAAU,EAAE,OAAO,IAAI,+BAA+B,EAAE,OAAO,IAAI,2CAA2C,IAAI,IAAI,GAAG;AAClO;AAOA,SAAS,mCAAmC,sBAAsB,QAAQ;AACzE,MAAI,UAAU,OAAO,OAAO,QAAQ,CAAC,qBAAqB,QAAQ,CAAC,qBAAqB,QAAQ,qBAAqB,SAAS,WAAW,EAAG,QAAO,oBAAoB,OAAO,OAAO,OAAO,IAAI,CAAC,uRAAuR;AACzd;AACA,SAAS,wBAAwB,QAAQ,QAAQ;AAChD,WAAS,WAAW,QAAQ,UAAU,WAAW,SAAS,OAAQ,KAAI,SAAS,OAAO,SAAS,OAAO,YAAY,IAAI,MAAM,kBAAkB,OAAO,OAAO,IAAI,CAAC,yBAAyB,WAAW,WAAW,UAAU,YAAY,wHAAwH;AAC/V;AACA,SAAS,iCAAiC,QAAQ,QAAQ;AACzD,aAAW,OAAO,OAAO,KAAM,KAAI,CAAC,OAAO,KAAK,KAAK,YAAY,KAAK,MAAM,GAAG,CAAC,EAAG,QAAO,OAAO,kBAAkB,OAAO,OAAO,IAAI,2CAA2C,IAAI,IAAI,oBAAoB,OAAO,OAAO,IAAI,IAAI;AACnO;AAUA,SAAS,mBAAmBA,UAAS,UAAU;AAC9C,MAAI,QAAQ;AACZ,MAAI,QAAQ,SAAS;AACrB,SAAO,UAAU,OAAO;AACvB,UAAM,MAAM,QAAQ,SAAS;AAC7B,QAAI,uBAAuBA,UAAS,SAAS,GAAG,CAAC,IAAI,EAAG,SAAQ;AAAA,iBACnD,MAAM;AAAA,EACpB;AACA,QAAM,oBAAoB,qBAAqBA,QAAO;AACtD,MAAI,mBAAmB;AACtB,YAAQ,SAAS,YAAY,mBAAmB,QAAQ,CAAC;AACzD,QAAI,QAAQ,IAAI,aAAa,gBAAgB,QAAQ,EAAG,QAAO,2BAA2B,kBAAkB,OAAO,IAAI,iBAAiBA,SAAQ,OAAO,IAAI,GAAG;AAAA,EAC/J;AACA,SAAO;AACR;AACA,SAAS,qBAAqBA,UAAS;AACtC,MAAI,WAAWA;AACf,SAAO,WAAW,SAAS,OAAQ,KAAI,YAAY,QAAQ,KAAK,uBAAuBA,UAAS,QAAQ,MAAM,EAAG,QAAO;AACzH;AAQA,SAAS,YAAY,EAAE,UAAU;AAChC,SAAO,CAAC,EAAE,OAAO,QAAQ,OAAO,cAAc,OAAO,KAAK,OAAO,UAAU,EAAE,UAAU,OAAO;AAC/F;AAQA,SAAS,QAAQ,OAAO;AACvB,QAAM,SAAS,OAAO,SAAS;AAC/B,QAAM,eAAe,OAAO,gBAAgB;AAC5C,MAAI,cAAc;AAClB,MAAI,aAAa;AACjB,QAAM,QAAQ,SAAS,MAAM;AAC5B,UAAM,KAAK,MAAM,MAAM,EAAE;AACzB,QAAI,QAAQ,IAAI,aAAa,iBAAiB,CAAC,eAAe,OAAO,aAAa;AACjF,UAAI,CAAC,gBAAgB,EAAE,EAAG,KAAI,YAAa,QAAO;AAAA,QAAmD,IAAI;AAAA,iBAAoB,YAAY;AAAA,WAAc,KAAK;AAAA,UACvJ,QAAO;AAAA,QAAmD,IAAI;AAAA,WAAc,KAAK;AACtF,mBAAa;AACb,oBAAc;AAAA,IACf;AACA,WAAO,OAAO,QAAQ,EAAE;AAAA,EACzB,CAAC;AACD,QAAM,oBAAoB,SAAS,MAAM;AACxC,UAAM,EAAE,YAAY,MAAM;AAC1B,UAAM,EAAE,WAAW;AACnB,UAAM,eAAe,QAAQ,SAAS,CAAC;AACvC,UAAM,iBAAiB,aAAa;AACpC,QAAI,CAAC,gBAAgB,CAAC,eAAe,OAAQ,QAAO;AACpD,UAAM,QAAQ,eAAe,UAAU,kBAAkB,KAAK,MAAM,YAAY,CAAC;AACjF,QAAI,QAAQ,GAAI,QAAO;AACvB,UAAM,mBAAmB,gBAAgB,QAAQ,SAAS,CAAC,CAAC;AAC5D,WAAO,SAAS,KAAK,gBAAgB,YAAY,MAAM,oBAAoB,eAAe,eAAe,SAAS,CAAC,EAAE,SAAS,mBAAmB,eAAe,UAAU,kBAAkB,KAAK,MAAM,QAAQ,SAAS,CAAC,CAAC,CAAC,IAAI;AAAA,EAChO,CAAC;AACD,QAAM,WAAW,SAAS,MAAM,kBAAkB,QAAQ,MAAM,eAAe,aAAa,QAAQ,MAAM,MAAM,MAAM,CAAC;AACvH,QAAM,gBAAgB,SAAS,MAAM,kBAAkB,QAAQ,MAAM,kBAAkB,UAAU,aAAa,QAAQ,SAAS,KAAK,0BAA0B,aAAa,QAAQ,MAAM,MAAM,MAAM,CAAC;AACtM,WAAS,SAAS,IAAI,IAAI;AACzB,QAAI,WAAW,CAAC,GAAG;AAClB,YAAM,IAAI,OAAO,MAAM,MAAM,OAAO,IAAI,YAAY,MAAM,EAAE,MAAM,MAAM,EAAE,CAAC,EAAE,MAAM,IAAI;AACvF,UAAI,MAAM,kBAAkB,MAAsE;AAClG,aAAO;AAAA,IACR;AACA,WAAO,QAAQ,QAAA;AAAA,EAChB;AACA,OAAK,QAAQ,IAAI,aAAa,gBAAgB,UAA0B,UAAW;AAsBnF,SAAO;AAAA,IACN;AAAA,IACA,MAAM,SAAS,MAAM,MAAM,MAAM,IAAI;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF;AACA,SAAS,kBAAkB,QAAQ;AAClC,SAAO,OAAO,WAAW,IAAI,OAAO,CAAC,IAAI;AAC1C;AAIA,MAAM,aAA6B,gCAAgB;AAAA,EAClD,MAAM;AAAA,EACN,cAAc,EAAE,MAAM,EAAA;AAAA,EACtB,OAAO;AAAA,IACN,IAAI;AAAA,MACH,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,UAAU;AAAA,IAAA;AAAA,IAEX,SAAS;AAAA,IACT,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB,QAAQ;AAAA,IACR,kBAAkB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAEV,gBAAgB;AAAA,EAAA;AAAA,EAEjB;AAAA,EACA,MAAM,OAAO,EAAE,SAAS;AACvB,UAAM,OAAO,SAAS,QAAQ,KAAK,CAAC;AACpC,UAAM,EAAE,QAAA,IAAY,OAAO,SAAS;AACpC,UAAM,UAAU,SAAS,OAAO;AAAA,MAC/B,CAAC,aAAa,MAAM,aAAa,QAAQ,iBAAiB,oBAAoB,CAAC,GAAG,KAAK;AAAA,MACvF,CAAC,aAAa,MAAM,kBAAkB,QAAQ,sBAAsB,0BAA0B,CAAC,GAAG,KAAK;AAAA,IAAA,EACtG;AACF,WAAO,MAAM;AACZ,YAAM,WAAW,MAAM,WAAW,kBAAkB,MAAM,QAAQ,IAAI,CAAC;AACvE,aAAO,MAAM,SAAS,WAAW,EAAE,KAAK;AAAA,QACvC,gBAAgB,KAAK,gBAAgB,MAAM,mBAAmB;AAAA,QAC9D,MAAM,KAAK;AAAA,QACX,SAAS,KAAK;AAAA,QACd,OAAO,QAAQ;AAAA,MAAA,GACb,QAAQ;AAAA,IACZ;AAAA,EACD;AACD,CAAC;AACD,SAAS,WAAW,GAAG;AACtB,MAAI,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,SAAU;AACtD,MAAI,EAAE,iBAAkB;AACxB,MAAI,EAAE,WAAW,UAAU,EAAE,WAAW,EAAG;AAC3C,MAAI,EAAE,iBAAiB,EAAE,cAAc,cAAc;AACpD,UAAM,SAAS,EAAE,cAAc,aAAa,QAAQ;AACpD,QAAI,cAAc,KAAK,MAAM,EAAG;AAAA,EACjC;AACA,MAAI,EAAE,eAAgB,GAAE,eAAA;AACxB,SAAO;AACR;AACA,SAAS,eAAe,OAAO,OAAO;AACrC,aAAW,OAAO,OAAO;AACxB,UAAM,aAAa,MAAM,GAAG;AAC5B,UAAM,aAAa,MAAM,GAAG;AAC5B,QAAI,OAAO,eAAe,UAAU;AACnC,UAAI,eAAe,WAAY,QAAO;AAAA,IACvC,WAAW,CAAC,QAAQ,UAAU,KAAK,WAAW,WAAW,WAAW,UAAU,WAAW,KAAK,CAAC,OAAO,MAAM,MAAM,QAAA,MAAc,WAAW,CAAC,EAAE,SAAS,EAAG,QAAO;AAAA,EAClK;AACA,SAAO;AACR;AAKA,SAAS,gBAAgB,QAAQ;AAChC,SAAO,SAAS,OAAO,UAAU,OAAO,QAAQ,OAAO,OAAO,OAAO;AACtE;AAOA,MAAM,eAAe,CAAC,WAAW,aAAa,iBAAiB,aAAa,OAAO,YAAY,eAAe,OAAO,cAAc;AAGnI,MAAM,iBAAiC,gCAAgB;AAAA,EACtD,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACN,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAEV,OAAO;AAAA,EAAA;AAAA,EAER,cAAc,EAAE,MAAM,EAAA;AAAA,EACtB,MAAM,OAAO,EAAE,OAAO,SAAS;AAC9B,YAAQ,IAAI,aAAa,gBAAgB,oBAAA;AACzC,UAAM,gBAAgB,OAAO,qBAAqB;AAClD,UAAM,iBAAiB,SAAS,MAAM,MAAM,SAAS,cAAc,KAAK;AACxE,UAAM,gBAAgB,OAAO,cAAc,CAAC;AAC5C,UAAM,QAAQ,SAAS,MAAM;AAC5B,UAAI,eAAe,MAAM,aAAa;AACtC,YAAM,EAAE,YAAY,eAAe;AACnC,UAAI;AACJ,cAAQ,eAAe,QAAQ,YAAY,MAAM,CAAC,aAAa,WAAY;AAC3E,aAAO;AAAA,IACR,CAAC;AACD,UAAM,kBAAkB,SAAS,MAAM,eAAe,MAAM,QAAQ,MAAM,KAAK,CAAC;AAChF,YAAQ,cAAc,SAAS,MAAM,MAAM,QAAQ,CAAC,CAAC;AACrD,YAAQ,iBAAiB,eAAe;AACxC,YAAQ,uBAAuB,cAAc;AAC7C,UAAM,UAAU,IAAA;AAChB,UAAM,MAAM;AAAA,MACX,QAAQ;AAAA,MACR,gBAAgB;AAAA,MAChB,MAAM;AAAA,IAAA,GACJ,CAAC,CAAC,UAAU,IAAI,IAAI,GAAG,CAAC,aAAa,MAAM,QAAQ,MAAM;AAC3D,UAAI,IAAI;AACP,WAAG,UAAU,IAAI,IAAI;AACrB,YAAI,QAAQ,SAAS,MAAM,YAAY,aAAa,aAAa;AAChE,cAAI,CAAC,GAAG,YAAY,KAAM,IAAG,cAAc,KAAK;AAChD,cAAI,CAAC,GAAG,aAAa,KAAM,IAAG,eAAe,KAAK;AAAA,QACnD;AAAA,MACD;AACA,UAAI,YAAY,OAAO,CAAC,QAAQ,CAAC,kBAAkB,IAAI,IAAI,KAAK,CAAC,eAAe,GAAG,eAAe,IAAI,KAAK,CAAA,GAAI,QAAQ,CAAC,aAAa,SAAS,QAAQ,CAAC;AAAA,IACxJ,GAAG,EAAE,OAAO,QAAQ;AACpB,WAAO,MAAM;AACZ,YAAM,QAAQ,eAAe;AAC7B,YAAM,cAAc,MAAM;AAC1B,YAAM,eAAe,gBAAgB;AACrC,YAAM,gBAAgB,gBAAgB,aAAa,WAAW,WAAW;AACzE,UAAI,CAAC,cAAe,QAAOE,gBAAc,MAAM,SAAS;AAAA,QACvD,WAAW;AAAA,QACX;AAAA,MAAA,CACA;AACD,YAAM,mBAAmB,aAAa,MAAM,WAAW;AACvD,YAAM,aAAa,mBAAmB,qBAAqB,OAAO,MAAM,SAAS,OAAO,qBAAqB,aAAa,iBAAiB,KAAK,IAAI,mBAAmB;AACvK,YAAM,mBAAmB,CAAC,UAAU;AACnC,YAAI,MAAM,UAAU,YAAa,cAAa,UAAU,WAAW,IAAI;AAAA,MACxE;AACA,YAAM,YAAY,EAAE,eAAe,OAAO,CAAA,GAAI,YAAY,OAAO;AAAA,QAChE;AAAA,QACA,KAAK;AAAA,MAAA,CACL,CAAC;AACF,WAAK,QAAQ,IAAI,aAAa,gBAAgB,UAA0B,UAA4B;AAWpG,aAAOA,gBAAc,MAAM,SAAS;AAAA,QACnC,WAAW;AAAA,QACX;AAAA,MAAA,CACA,KAAK;AAAA,IACP;AAAA,EACD;AACD,CAAC;AACD,SAASA,gBAAc,MAAM,MAAM;AAClC,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,cAAc,KAAK,IAAI;AAC7B,SAAO,YAAY,WAAW,IAAI,YAAY,CAAC,IAAI;AACpD;AAIA,MAAM,aAAa;AACnB,SAAS,sBAAsB;AAC9B,QAAM,WAAW,mBAAA;AACjB,QAAM,aAAa,SAAS,UAAU,SAAS,OAAO,KAAK;AAC3D,QAAM,oBAAoB,SAAS,UAAU,SAAS,OAAO,WAAW,SAAS,OAAO,QAAQ;AAChG,MAAI,eAAe,eAAe,eAAe,WAAW,SAAS,YAAY,MAAM,OAAO,sBAAsB,YAAY,kBAAkB,SAAS,cAAc;AACxK,UAAM,OAAO,eAAe,cAAc,eAAe;AACzD,WAAO,wDAAwD,IAAI;AAAA;AAAA;AAAA;AAAA,KAA2E,IAAI;AAAA;AAAA,MAA6C,IAAI;AAAA,eAAmB;AAAA,EACvN;AACD;AAQA,SAAS,aAAa,SAAS;AAC9B,QAAMF,WAAU,oBAAoB,QAAQ,QAAQ,OAAO;AAC3D,QAAM,eAAe,QAAQ,cAAc;AAC3C,QAAM,mBAAmB,QAAQ,kBAAkB;AACnD,QAAM,gBAAgB,QAAQ;AAC9B,MAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,cAAe,OAAM,IAAI,MAAM,gIAAoI;AACjN,QAAM,eAAe,aAAA;AACrB,QAAM,sBAAsB,aAAA;AAC5B,QAAM,cAAc,aAAA;AACpB,QAAM,eAAe,WAAW,yBAAyB;AACzD,MAAI,kBAAkB;AAEtB,QAAM,kBAAkB,cAAc,KAAK,MAAM,CAAC,eAAe,KAAK,UAAU;AAChF,QAAM,eAAe,cAAc,KAAK,MAAM,WAAW;AACzD,QAAM,eAAe,cAAc,KAAK,MAAM,MAAM;AACpD,WAAS,SAAS,eAAe,OAAO;AACvC,QAAI;AACJ,QAAI;AACJ,QAAI,YAAY,aAAa,GAAG;AAC/B,eAASA,SAAQ,iBAAiB,aAAa;AAC/C,UAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,OAAQ,QAAO,iBAAiB,OAAO,aAAa,CAAC,uCAAuC,KAAK;AAC/I,eAAS;AAAA,IACV,MAAO,UAAS;AAChB,WAAOA,SAAQ,SAAS,QAAQ,MAAM;AAAA,EACvC;AACA,WAAS,YAAY,MAAM;AAC1B,UAAM,gBAAgBA,SAAQ,iBAAiB,IAAI;AACnD,QAAI,cAAe,CAAAA,SAAQ,YAAY,aAAa;AAAA,aAC3C,QAAQ,IAAI,aAAa,qBAAqB,qCAAqC,OAAO,IAAI,CAAC,GAAG;AAAA,EAC5G;AACA,WAAS,YAAY;AACpB,WAAOA,SAAQ,YAAY,IAAI,CAAC,iBAAiB,aAAa,MAAM;AAAA,EACrE;AACA,WAAS,SAAS,MAAM;AACvB,WAAO,CAAC,CAACA,SAAQ,iBAAiB,IAAI;AAAA,EACvC;AACA,WAAS,QAAQ,aAAa,iBAAiB;AAC9C,sBAAkB,OAAO,CAAA,GAAI,mBAAmB,aAAa,KAAK;AAClE,QAAI,OAAO,gBAAgB,UAAU;AACpC,YAAM,qBAAqB,SAAS,cAAc,aAAa,gBAAgB,IAAI;AACnF,YAAMG,gBAAeH,SAAQ,QAAQ,EAAE,MAAM,mBAAmB,KAAA,GAAQ,eAAe;AACvF,YAAMI,QAAO,cAAc,WAAW,mBAAmB,QAAQ;AACjE,UAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,YAAIA,MAAK,WAAW,IAAI,UAAU,aAAa,WAAW,kBAAkBA,KAAI,4DAA4D;AAAA,iBACnI,CAACD,cAAa,QAAQ,OAAQ,QAAO,0CAA0C,WAAW,GAAG;AAAA,MACvG;AACA,aAAO,OAAO,oBAAoBA,eAAc;AAAA,QAC/C,QAAQ,aAAaA,cAAa,MAAM;AAAA,QACxC,gBAAgB;AAAA,QAChB,MAAAC;AAAAA,MAAA,CACA;AAAA,IACF;AACA,QAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,gBAAgB,WAAW,GAAG;AAC3E,aAAO;AAAA,cAA+F,WAAW;AACjH,aAAO,QAAQ,CAAA,CAAE;AAAA,IAClB;AACA,QAAI;AACJ,QAAI,YAAY,QAAQ,MAAM;AAC7B,UAAI,QAAQ,IAAI,aAAa,gBAAgB,YAAY,eAAe,EAAE,UAAU,gBAAgB,OAAO,KAAK,YAAY,MAAM,EAAE,eAAe,SAAS,YAAY,IAAI,gGAAgG;AAC5Q,wBAAkB,OAAO,CAAA,GAAI,aAAa,EAAE,MAAM,SAAS,cAAc,YAAY,MAAM,gBAAgB,IAAI,EAAE,MAAM;AAAA,IACxH,OAAO;AACN,YAAM,eAAe,OAAO,IAAI,YAAY,MAAM;AAClD,iBAAW,OAAO,aAAc,KAAI,aAAa,GAAG,KAAK,KAAM,QAAO,aAAa,GAAG;AACtF,wBAAkB,OAAO,CAAA,GAAI,aAAa,EAAE,QAAQ,aAAa,YAAY,GAAG;AAChF,sBAAgB,SAAS,aAAa,gBAAgB,MAAM;AAAA,IAC7D;AACA,UAAM,eAAeJ,SAAQ,QAAQ,iBAAiB,eAAe;AACrE,UAAML,QAAO,YAAY,QAAQ;AACjC,QAAI,QAAQ,IAAI,aAAa,gBAAgBA,SAAQ,CAACA,MAAK,WAAW,GAAG,EAAG,QAAO,mEAAmEA,KAAI,YAAYA,KAAI,IAAI;AAC9K,iBAAa,SAAS,gBAAgB,aAAa,aAAa,MAAM,CAAC;AACvE,UAAM,WAAW,aAAa,kBAAkB,OAAO,CAAA,GAAI,aAAa;AAAA,MACvE,MAAM,WAAWA,KAAI;AAAA,MACrB,MAAM,aAAa;AAAA,IAAA,CACnB,CAAC;AACF,UAAM,OAAO,cAAc,WAAW,QAAQ;AAC9C,QAAI,QAAQ,IAAI,aAAa,cAAc;AAC1C,UAAI,KAAK,WAAW,IAAI,UAAU,aAAa,WAAW,kBAAkB,IAAI,4DAA4D;AAAA,eACnI,CAAC,aAAa,QAAQ,OAAQ,QAAO,0CAA0C,YAAY,QAAQ,OAAO,YAAY,OAAO,WAAW,GAAG;AAAA,IACrJ;AACA,WAAO,OAAO;AAAA,MACb;AAAA,MACA,MAAAA;AAAA,MACA,OAAO,qBAAqB,iBAAiB,eAAe,YAAY,KAAK,IAAI,YAAY,SAAS,CAAA;AAAA,IAAC,GACrG,cAAc;AAAA,MAChB,gBAAgB;AAAA,MAChB;AAAA,IAAA,CACA;AAAA,EACF;AACA,WAAS,iBAAiB,IAAI;AAC7B,WAAO,OAAO,OAAO,WAAW,SAAS,cAAc,IAAI,aAAa,MAAM,IAAI,IAAI,OAAO,CAAA,GAAI,EAAE;AAAA,EACpG;AACA,WAAS,wBAAwB,IAAI,MAAM;AAC1C,QAAI,oBAAoB,GAAI,QAAO,kBAAkB,GAAG;AAAA,MACvD;AAAA,MACA;AAAA,IAAA,CACA;AAAA,EACF;AACA,WAAS,KAAK,IAAI;AACjB,WAAO,iBAAiB,EAAE;AAAA,EAC3B;AACA,WAAS,QAAQ,IAAI;AACpB,WAAO,KAAK,OAAO,iBAAiB,EAAE,GAAG,EAAE,SAAS,KAAA,CAAM,CAAC;AAAA,EAC5D;AACA,WAAS,qBAAqB,IAAI,MAAM;AACvC,UAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,SAAS,CAAC;AACpD,QAAI,eAAe,YAAY,UAAU;AACxC,YAAM,EAAE,aAAa;AACrB,UAAI,oBAAoB,OAAO,aAAa,aAAa,SAAS,IAAI,IAAI,IAAI;AAC9E,UAAI,OAAO,sBAAsB,UAAU;AAC1C,4BAAoB,kBAAkB,SAAS,GAAG,KAAK,kBAAkB,SAAS,GAAG,IAAI,oBAAoB,iBAAiB,iBAAiB,IAAI,EAAE,MAAM,kBAAA;AAC3J,0BAAkB,SAAS,CAAA;AAAA,MAC5B;AACA,UAAI,QAAQ,IAAI,aAAa,gBAAgB,kBAAkB,QAAQ,QAAQ,EAAE,UAAU,oBAAoB;AAC9G,eAAO;AAAA,EAA4B,KAAK,UAAU,mBAAmB,MAAM,CAAC,CAAC;AAAA,uBAA0B,GAAG,QAAQ,2EAA2E;AAC7L,cAAM,IAAI,MAAM,kBAAkB;AAAA,MACnC;AACA,aAAO,OAAO;AAAA,QACb,OAAO,GAAG;AAAA,QACV,MAAM,GAAG;AAAA,QACT,QAAQ,kBAAkB,QAAQ,OAAO,CAAA,IAAK,GAAG;AAAA,MAAA,GAC/C,iBAAiB;AAAA,IACrB;AAAA,EACD;AACA,WAAS,iBAAiB,IAAI,gBAAgB;AAC7C,UAAM,iBAAiB,kBAAkB,QAAQ,EAAE;AACnD,UAAM,OAAO,aAAa;AAC1B,UAAM,OAAO,GAAG;AAChB,UAAM,QAAQ,GAAG;AACjB,UAAMU,WAAU,GAAG,YAAY;AAC/B,UAAM,iBAAiB,qBAAqB,gBAAgB,IAAI;AAChE,QAAI,eAAgB,QAAO,iBAAiB,OAAO,iBAAiB,cAAc,GAAG;AAAA,MACpF,OAAO,OAAO,mBAAmB,WAAW,OAAO,CAAA,GAAI,MAAM,eAAe,KAAK,IAAI;AAAA,MACrF;AAAA,MACA,SAAAA;AAAAA,IAAA,CACA,GAAG,kBAAkB,cAAc;AACpC,UAAM,aAAa;AACnB,eAAW,iBAAiB;AAC5B,QAAI;AACJ,QAAI,CAAC,SAAS,oBAAoB,kBAAkB,MAAM,cAAc,GAAG;AAC1E,gBAAU,kBAAkB,IAAI;AAAA,QAC/B,IAAI;AAAA,QACJ;AAAA,MAAA,CACA;AACD,mBAAoC;AAAA,IACrC;AACA,YAAQ,UAAU,QAAQ,QAAQ,OAAO,IAAI,SAAS,YAAY,IAAI,GAAG,MAAM,CAAC,UAAU,oBAAoB,KAAK,IAAI,oBAAoB,OAAO,CAAC,IAAI,QAAQ,YAAY,KAAK,IAAI,aAAa,OAAO,YAAY,IAAI,CAAC,EAAE,KAAK,CAACC,aAAY;AAC5O,UAAIA,UAAS;AACZ,YAAI,oBAAoBA,UAAS,CAAC,GAAG;AACpC,cAAI,QAAQ,IAAI,aAAa,gBAAgB,oBAAoB,kBAAkB,QAAQA,SAAQ,EAAE,GAAG,UAAU,KAAK,mBAAmB,eAAe,SAAS,eAAe,SAAS,eAAe,SAAS,IAAI,KAAK,IAAI;AAC9N,mBAAO,mFAAmF,KAAK,QAAQ,SAAS,WAAW,QAAQ;AAAA,gNAAyP;AAC5X,mBAAO,QAAQ,OAAuB,oBAAI,MAAM,uCAAuC,CAAC;AAAA,UACzF;AACA,iBAAO,iBAAiB,OAAO,EAAE,SAAAD,YAAW,iBAAiBC,SAAQ,EAAE,GAAG;AAAA,YACzE,OAAO,OAAOA,SAAQ,OAAO,WAAW,OAAO,IAAI,MAAMA,SAAQ,GAAG,KAAK,IAAI;AAAA,YAC7E;AAAA,UAAA,CACA,GAAG,kBAAkB,UAAU;AAAA,QACjC;AAAA,MACD,MAAOA,YAAU,mBAAmB,YAAY,MAAM,MAAMD,UAAS,IAAI;AACzE,uBAAiB,YAAY,MAAMC,QAAO;AAC1C,aAAOA;AAAAA,IACR,CAAC;AAAA,EACF;AAMA,WAAS,iCAAiC,IAAI,MAAM;AACnD,UAAM,QAAQ,wBAAwB,IAAI,IAAI;AAC9C,WAAO,QAAQ,QAAQ,OAAO,KAAK,IAAI,QAAQ,QAAA;AAAA,EAChD;AACA,WAAS,eAAe,IAAI;AAC3B,UAAM,MAAM,cAAc,OAAA,EAAS,OAAO;AAC1C,WAAO,OAAO,OAAO,IAAI,mBAAmB,aAAa,IAAI,eAAe,EAAE,IAAI,GAAA;AAAA,EACnF;AACA,WAAS,SAAS,IAAI,MAAM;AAC3B,QAAI;AACJ,UAAM,CAAC,gBAAgB,iBAAiB,eAAe,IAAI,uBAAuB,IAAI,IAAI;AAC1F,aAAS,wBAAwB,eAAe,QAAA,GAAW,oBAAoB,IAAI,IAAI;AACvF,eAAW,UAAU,eAAgB,QAAO,YAAY,QAAQ,CAAC,UAAU;AAC1E,aAAO,KAAK,iBAAiB,OAAO,IAAI,IAAI,CAAC;AAAA,IAC9C,CAAC;AACD,UAAM,0BAA0B,iCAAiC,KAAK,MAAM,IAAI,IAAI;AACpF,WAAO,KAAK,uBAAuB;AACnC,WAAO,cAAc,MAAM,EAAE,KAAK,MAAM;AACvC,eAAS,CAAA;AACT,iBAAW,SAAS,aAAa,OAAQ,QAAO,KAAK,iBAAiB,OAAO,IAAI,IAAI,CAAC;AACtF,aAAO,KAAK,uBAAuB;AACnC,aAAO,cAAc,MAAM;AAAA,IAC5B,CAAC,EAAE,KAAK,MAAM;AACb,eAAS,wBAAwB,iBAAiB,qBAAqB,IAAI,IAAI;AAC/E,iBAAW,UAAU,gBAAiB,QAAO,aAAa,QAAQ,CAAC,UAAU;AAC5E,eAAO,KAAK,iBAAiB,OAAO,IAAI,IAAI,CAAC;AAAA,MAC9C,CAAC;AACD,aAAO,KAAK,uBAAuB;AACnC,aAAO,cAAc,MAAM;AAAA,IAC5B,CAAC,EAAE,KAAK,MAAM;AACb,eAAS,CAAA;AACT,iBAAW,UAAU,gBAAiB,KAAI,OAAO,YAAa,KAAI,QAAQ,OAAO,WAAW,cAAc,eAAe,OAAO,YAAa,QAAO,KAAK,iBAAiB,aAAa,IAAI,IAAI,CAAC;AAAA,kBACpL,KAAK,iBAAiB,OAAO,aAAa,IAAI,IAAI,CAAC;AAC/D,aAAO,KAAK,uBAAuB;AACnC,aAAO,cAAc,MAAM;AAAA,IAC5B,CAAC,EAAE,KAAK,MAAM;AACb,SAAG,QAAQ,QAAQ,CAAC,WAAW,OAAO,iBAAiB,EAAE;AACzD,eAAS,wBAAwB,iBAAiB,oBAAoB,IAAI,MAAM,cAAc;AAC9F,aAAO,KAAK,uBAAuB;AACnC,aAAO,cAAc,MAAM;AAAA,IAC5B,CAAC,EAAE,KAAK,MAAM;AACb,eAAS,CAAA;AACT,iBAAW,SAAS,oBAAoB,OAAQ,QAAO,KAAK,iBAAiB,OAAO,IAAI,IAAI,CAAC;AAC7F,aAAO,KAAK,uBAAuB;AACnC,aAAO,cAAc,MAAM;AAAA,IAC5B,CAAC,EAAE,MAAM,CAAC,QAAQ,oBAAoB,KAAK,CAAC,IAAI,MAAM,QAAQ,OAAO,GAAG,CAAC;AAAA,EAC1E;AACA,WAAS,iBAAiB,IAAI,MAAM,SAAS;AAC5C,gBAAY,KAAA,EAAO,QAAQ,CAAC,UAAU,eAAe,MAAM,MAAM,IAAI,MAAM,OAAO,CAAC,CAAC;AAAA,EACrF;AAMA,WAAS,mBAAmB,YAAY,MAAM,QAAQD,UAAS,MAAM;AACpE,UAAM,QAAQ,wBAAwB,YAAY,IAAI;AACtD,QAAI,MAAO,QAAO;AAClB,UAAM,oBAAoB,SAAS;AACnC,UAAM,QAAqB,CAAA;AAC3B,QAAI,OAAQ,KAAIA,YAAW,kBAAmB,eAAc,QAAQ,WAAW,UAAU,OAAO,EAAE,QAAQ,qBAAqB,SAAS,MAAM,OAAA,GAAU,IAAI,CAAC;AAAA,QACxJ,eAAc,KAAK,WAAW,UAAU,IAAI;AACjD,iBAAa,QAAQ;AACrB,iBAAwD;AACxD,gBAAA;AAAA,EACD;AACA,MAAI;AACJ,WAAS,iBAAiB;AACzB,QAAI,sBAAuB;AAC3B,4BAAwB,cAAc,OAAO,CAAC,IAAI,OAAO,SAAS;AACjE,UAAI,CAAC,OAAO,UAAW;AACvB,YAAM,aAAa,QAAQ,EAAE;AAC7B,YAAM,iBAAiB,qBAAqB,YAAY,OAAO,aAAa,KAAK;AACjF,UAAI,gBAAgB;AACnB,yBAAiB,OAAO,gBAAgB;AAAA,UACvC,SAAS;AAAA,UACT,OAAO;AAAA,QAAA,CACP,GAAG,UAAU,EAAE,MAAM,IAAI;AAC1B;AAAA,MACD;AACA,wBAAkB;AAClB,YAAM,OAAO,aAAa;AAE1B,eAAS,YAAY,IAAI,EAAE,MAAM,CAAC,UAAU;AAC3C,YAAI,oBAAoB,OAAO,EAAE,EAAG,QAAO;AAC3C,YAAI,oBAAoB,OAAO,CAAC,GAAG;AAClC,2BAAiB,OAAO,iBAAiB,MAAM,EAAE,GAAG,EAAE,OAAO,KAAA,CAAM,GAAG,UAAU,EAAE,KAAK,CAAC,YAAY;AACnG,gBAAI,oBAAoB,SAAS,EAAE,KAAK,CAAC,KAAK,SAAS,KAAK,SAAS,MAAO,eAAc,GAAG,IAAI,KAAK;AAAA,UACvG,CAAC,EAAE,MAAM,IAAI;AACb,iBAAO,QAAQ,OAAA;AAAA,QAChB;AACA,YAAI,KAAK,MAAO,eAAc,GAAG,CAAC,KAAK,OAAO,KAAK;AACnD,eAAO,aAAa,OAAO,YAAY,IAAI;AAAA,MAC5C,CAAC,EAAE,KAAK,CAAC,YAAY;AACpB,kBAAU,WAAW,mBAAmB,YAAY,MAAM,KAAK;AAC/D,YAAI,SAAS;AACZ,cAAI,KAAK,SAAS,CAAC,oBAAoB,SAAS,CAAC,EAAG,eAAc,GAAG,CAAC,KAAK,OAAO,KAAK;AAAA,mBAC9E,KAAK,SAAS,SAAS,oBAAoB,SAAS,EAAE,EAAG,eAAc,GAAG,IAAI,KAAK;AAAA,QAC7F;AACA,yBAAiB,YAAY,MAAM,OAAO;AAAA,MAC3C,CAAC,EAAE,MAAM,IAAI;AAAA,IACd,CAAC;AAAA,EACF;AACA,MAAI,gBAAgB,aAAA;AACpB,MAAI,iBAAiB,aAAA;AACrB,MAAI;AASJ,WAAS,aAAa,OAAO,IAAI,MAAM;AACtC,gBAAY,KAAK;AACjB,UAAM,OAAO,eAAe,KAAA;AAC5B,QAAI,KAAK,OAAQ,MAAK,QAAQ,CAAC,YAAY,QAAQ,OAAO,IAAI,IAAI,CAAC;AAAA,SAC9D;AACJ,UAAI,QAAQ,IAAI,aAAa,qBAAqB,yCAAyC;AAC3F,cAAQ,MAAM,KAAK;AAAA,IACpB;AACA,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC5B;AACA,WAAS,UAAU;AAClB,QAAI,SAAS,aAAa,UAAU,0BAA2B,QAAO,QAAQ,QAAA;AAC9E,WAAO,IAAI,QAAQ,CAACE,UAAS,WAAW;AACvC,oBAAc,IAAI,CAACA,UAAS,MAAM,CAAC;AAAA,IACpC,CAAC;AAAA,EACF;AACA,WAAS,YAAY,KAAK;AACzB,QAAI,CAAC,OAAO;AACX,cAAQ,CAAC;AACT,qBAAA;AACA,oBAAc,KAAA,EAAO,QAAQ,CAAC,CAACA,UAAS,MAAM,MAAM,MAAM,OAAO,GAAG,IAAIA,UAAS;AACjF,oBAAc,MAAA;AAAA,IACf;AACA,WAAO;AAAA,EACR;AACA,WAAS,aAAa,IAAI,MAAM,QAAQ,mBAAmB;AAC1D,UAAM,EAAE,mBAAmB;AACQ,WAAO,QAAQ,QAAA;AAAA,EAGnD;AACA,QAAM,KAAK,CAAC,UAAU,cAAc,GAAG,KAAK;AAE5C,QAAM,oCAAoC,IAAA;AAC1C,QAAM,SAAS;AAAA,IACd;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,aAAaP,SAAQ;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM,MAAM,GAAG,EAAE;AAAA,IACjB,SAAS,MAAM,GAAG,CAAC;AAAA,IACnB,YAAY,aAAa;AAAA,IACzB,eAAe,oBAAoB;AAAA,IACnC,WAAW,YAAY;AAAA,IACvB,SAAS,eAAe;AAAA,IACxB;AAAA,IACA,QAAQ,KAAK;AACZ,UAAI,UAAU,cAAc,UAAU;AACtC,UAAI,UAAU,cAAc,UAAU;AACtC,UAAI,OAAO,iBAAiB,UAAU;AACtC,aAAO,eAAe,IAAI,OAAO,kBAAkB,UAAU;AAAA,QAC5D,YAAY;AAAA,QACZ,KAAK,MAAM,MAAM,YAAY;AAAA,MAAA,CAC7B;AAOD,YAAM,gBAAgB,CAAA;AACtB,iBAAW,OAAO,0BAA2B,QAAO,eAAe,eAAe,KAAK;AAAA,QACtF,KAAK,MAAM,aAAa,MAAM,GAAG;AAAA,QACjC,YAAY;AAAA,MAAA,CACZ;AACD,UAAI,QAAQ,WAAW,MAAM;AAC7B,UAAI,QAAQ,kBAAkB,gBAAgB,aAAa,CAAC;AAC5D,UAAI,QAAQ,uBAAuB,YAAY;AAC/C,YAAM,aAAa,IAAI;AACvB,oBAAc,IAAI,GAAG;AACrB,UAAI,UAAU,WAAW;AACxB,sBAAc,OAAO,GAAG;AACxB,YAAI,cAAc,OAAO,GAAG;AAC3B,4BAAkB;AAClB,mCAAyB,sBAAA;AACzB,kCAAwB;AACxB,uBAAa,QAAQ;AAErB,kBAAQ;AAAA,QACT;AACA,mBAAA;AAAA,MACD;AACA,WAAK,QAAQ,IAAI,aAAa,gBAAgB,UAA0B,UAAmB;AAAA,IAC5F;AAAA,EAAA;AAED,WAAS,cAAc,QAAQ;AAC9B,WAAO,OAAO,OAAO,CAAC,SAAS,UAAU,QAAQ,KAAK,MAAM,eAAe,KAAK,CAAC,GAAG,QAAQ,SAAS;AAAA,EACtG;AACA,SAAO;AACR;ACx9CA,OAAO,wBAAwB;ACexB,SAASQ,UAAQ,OAAO;AAC7B,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;;;;;;;;;;;;;;;;ACgDA,MAAA,UAAe;AAAA,EACb;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAA2D,CAAA;AAAA,IACjE,WAAW,MAAM,OAAO,8BAA0E;AAAA,EAAA;AAAA,EAEpG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAAuD,CAAA;AAAA,IAC7D,WAAW,MAAM,OAAO,0BAAsE;AAAA,EAAA;AAAA,EAEhG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAAgE,CAAA;AAAA,IACtE,WAAW,MAAM,OAAO,mCAA+E;AAAA,EAAA;AAAA,EAEzG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAAuD,CAAA;AAAA,IAC7D,WAAW,MAAM,OAAO,0BAAsE;AAAA,EAAA;AAAA,EAEhG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAA4D,CAAA;AAAA,IAClE,WAAW,MAAM,OAAO,+BAA2E;AAAA,EAAA;AAAA,EAErG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAAyD,CAAA;AAAA,IAC/D,WAAW,MAAM,OAAO,4BAAwE;AAAA,EAAA;AAAA,EAElG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAA0D,CAAA;AAAA,IAChE,WAAW,MAAM,OAAO,6BAAyE;AAAA,EAAA;AAAA,EAEnG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAA+D,CAAA;AAAA,IACrE,WAAW,MAAM,OAAO,kCAA8E;AAAA,EAAA;AAAA,EAExG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAA4D,CAAA;AAAA,IAClE,WAAW,MAAM,OAAO,+BAA2E;AAAA,EAAA;AAAA,EAErG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAAgE,CAAA;AAAA,IACtE,WAAW,MAAM,OAAO,mCAA+E;AAAA,EAAA;AAAA,EAEzG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAA0D,CAAA;AAAA,IAChE,WAAW,MAAM,OAAO,6BAAyE;AAAA,EAAA;AAAA,EAEnG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAAgE,CAAA;AAAA,IACtE,WAAW,MAAM,OAAO,mCAA+E;AAAA,EAAA;AAAA,EAEzG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAA0D,CAAA;AAAA,IAChE,WAAW,MAAM,OAAO,6BAAyE;AAAA,EAAA;AAAA,EAEnG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,sBAAwD,CAAA;AAAA,IAC9D,WAAW,MAAM,OAAO,2BAAuE;AAAA,EAAA;AAAA,EAEjG;AAAA,IACE,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAMC,oBAAwD,CAAA;AAAA,IAC9D,WAAW,MAAM,OAAO,2BAAuE;AAAA,EAAA;AAEnG;;;;;;;ACrJA,SAAO,eAAe,iBAAS,cAAc,EAAE,OAAO,MAAM;AAAA;AAG5D,WAAS,QAAQ,KAAK;AACpB,UAAM,MAAsB,uBAAO,OAAO,IAAI;AAC9C,eAAW,OAAO,IAAI,MAAM,GAAG,EAAG,KAAI,GAAG,IAAI;AAC7C,WAAO,CAAC,QAAQ,OAAO;AAAA,EACzB;AAEA,QAAM,YAAY,CAAA;AAClB,QAAM,YAAY,CAAA;AAClB,QAAM,OAAO,MAAM;AAAA,EACnB;AACA,QAAM,KAAK,MAAM;AACjB,QAAM,OAAO,CAAC,QAAQ,IAAI,WAAW,CAAC,MAAM,OAAO,IAAI,WAAW,CAAC,MAAM;AAAA,GACxE,IAAI,WAAW,CAAC,IAAI,OAAO,IAAI,WAAW,CAAC,IAAI;AAChD,QAAM,kBAAkB,CAAC,QAAQ,IAAI,WAAW,WAAW;AAC3D,QAAM,SAAS,OAAO;AACtB,QAAM,SAAS,CAAC,KAAK,OAAO;AAC1B,UAAM,IAAI,IAAI,QAAQ,EAAE;AACxB,QAAI,IAAI,IAAI;AACV,UAAI,OAAO,GAAG,CAAC;AAAA,IAAA;AAAA,EAEnB;AACA,QAAM,iBAAiB,OAAO,UAAU;AACxC,QAAM,SAAS,CAAC,KAAK,QAAQ,eAAe,KAAK,KAAK,GAAG;AACzD,QAAMC,WAAU,MAAM;AACtB,QAAM,QAAQ,CAAC,QAAQ,aAAa,GAAG,MAAM;AAC7C,QAAM,QAAQ,CAAC,QAAQ,aAAa,GAAG,MAAM;AAC7C,QAAM,SAAS,CAAC,QAAQ,aAAa,GAAG,MAAM;AAC9C,QAAM,WAAW,CAAC,QAAQ,aAAa,GAAG,MAAM;AAChD,QAAM,aAAa,CAAC,QAAQ,OAAO,QAAQ;AAC3C,QAAM,WAAW,CAAC,QAAQ,OAAO,QAAQ;AACzC,QAAM,WAAW,CAAC,QAAQ,OAAO,QAAQ;AACzC,QAAM,WAAW,CAAC,QAAQ,QAAQ,QAAQ,OAAO,QAAQ;AACzD,QAAM,YAAY,CAAC,QAAQ;AACzB,YAAQ,SAAS,GAAG,KAAK,WAAW,GAAG,MAAM,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,KAAK;AAAA,EAC3F;AACA,QAAM,iBAAiB,OAAO,UAAU;AACxC,QAAM,eAAe,CAAC,UAAU,eAAe,KAAK,KAAK;AACzD,QAAM,YAAY,CAAC,UAAU;AAC3B,WAAO,aAAa,KAAK,EAAE,MAAM,GAAG,EAAE;AAAA,EACxC;AACA,QAAM,gBAAgB,CAAC,QAAQ,aAAa,GAAG,MAAM;AACrD,QAAM,eAAe,CAAC,QAAQ,SAAS,GAAG,KAAK,QAAQ,SAAS,IAAI,CAAC,MAAM,OAAO,KAAK,SAAS,KAAK,EAAE,MAAM;AAC7G,QAAM,iBAAiC;AAAA;AAAA,IAErC;AAAA;AAEF,QAAM,qBAAqC;AAAA,IACzC;AAAA;AAEF,QAAM,sBAAsB,CAAC,OAAO;AAClC,UAAM,QAAwB,uBAAO,OAAO,IAAI;AAChD,YAAQ,CAAC,QAAQ;AACf,YAAM,MAAM,MAAM,GAAG;AACrB,aAAO,QAAQ,MAAM,GAAG,IAAI,GAAG,GAAG;AAAA,IAAA;AAAA,EAEtC;AACA,QAAM,aAAa;AACnB,QAAM,WAAW;AAAA,IACf,CAAC,QAAQ;AACP,aAAO,IAAI,QAAQ,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,aAAa;AAAA,IAAA;AAAA;AAGlE,QAAM,cAAc;AACpB,QAAM,YAAY;AAAA,IAChB,CAAC,QAAQ,IAAI,QAAQ,aAAa,KAAK,EAAE,YAAA;AAAA;AAE3C,QAAM,aAAa,oBAAoB,CAAC,QAAQ;AAC9C,WAAO,IAAI,OAAO,CAAC,EAAE,gBAAgB,IAAI,MAAM,CAAC;AAAA,EAClD,CAAC;AACD,QAAM,eAAe;AAAA,IACnB,CAAC,QAAQ;AACP,YAAM,IAAI,MAAM,KAAK,WAAW,GAAG,CAAC,KAAK;AACzC,aAAO;AAAA,IAAA;AAAA;AAGX,QAAM,aAAa,CAAC,OAAO,aAAa,CAAC,OAAO,GAAG,OAAO,QAAQ;AAClE,QAAM,iBAAiB,CAAC,QAAQ,QAAQ;AACtC,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,UAAI,CAAC,EAAE,GAAG,GAAG;AAAA,IAAA;AAAA,EAEjB;AACA,QAAM,MAAM,CAAC,KAAK,KAAK,OAAO,WAAW,UAAU;AACjD,WAAO,eAAe,KAAK,KAAK;AAAA,MAC9B,cAAc;AAAA,MACd,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,IAAA,CACD;AAAA,EACH;AACA,QAAM,gBAAgB,CAAC,QAAQ;AAC7B,UAAM,IAAI,WAAW,GAAG;AACxB,WAAO,MAAM,CAAC,IAAI,MAAM;AAAA,EAC1B;AACA,QAAM,WAAW,CAAC,QAAQ;AACxB,UAAM,IAAI,SAAS,GAAG,IAAI,OAAO,GAAG,IAAI;AACxC,WAAO,MAAM,CAAC,IAAI,MAAM;AAAA,EAC1B;AACA,MAAI;AACJ,QAAM,gBAAgB,MAAM;AAC1B,WAAO,gBAAgB,cAAc,OAAO,eAAe,cAAc,aAAa,OAAO,SAAS,cAAc,OAAgD,OAAOC,mBAAW,cAAcA,iBAAS,CAAA;AAAA,EAC/M;AACA,QAAM,UAAU;AAChB,WAAS,kBAAkB,MAAM;AAC/B,WAAO,QAAQ,KAAK,IAAI,IAAI,WAAW,IAAI,KAAK,WAAW,KAAK,UAAU,IAAI,CAAC;AAAA,EACjF;AACA,WAAS,YAAY,QAAQ,SAAS;AACpC,WAAO,SAAS,KAAK;AAAA,MACnB;AAAA,MACA,CAAC,GAAG,QAAQ,OAAO,QAAQ,aAAa,IAAI,aAAa;AAAA;EAE7D;AAEA,QAAM,aAAa;AAAA,IACjB,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,SAAS;AAAA,IACT,KAAK;AAAA,IACL,SAAS;AAAA,IACT,KAAK;AAAA,IACL,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM;AAAA,IACN,kBAAkB;AAAA,IAClB,MAAM;AAAA,IACN,mBAAmB;AAAA,IACnB,MAAM;AAAA,IACN,kBAAkB;AAAA,IAClB,OAAO;AAAA,IACP,oBAAoB;AAAA,IACpB,OAAO;AAAA,IACP,cAAc;AAAA,IACd,OAAO;AAAA,IACP,iBAAiB;AAAA,IACjB,QAAQ;AAAA,IACR,qBAAqB;AAAA,IACrB,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,MAAM;AAAA;AAER,QAAM,iBAAiB;AAAA,IACrB,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,GAAG,GAAG;AAAA,IACP,CAAC,IAAI,GAAG;AAAA,IACR,CAAC,IAAI,GAAG;AAAA,IACR,CAAC,EAAE,GAAG;AAAA,IACN,CAAC,EAAE,GAAG;AAAA;AAGR,QAAM,aAAa;AAAA,IACjB,WAAW;AAAA,IACX,KAAK;AAAA,IACL,wBAAwB;AAAA,IACxB,KAAK;AAAA,IACL,sBAAsB;AAAA,IACtB,KAAK;AAAA,IACL,iBAAiB;AAAA,IACjB,KAAK;AAAA,IACL,kBAAkB;AAAA,IAClB,MAAM;AAAA,IACN,kBAAkB;AAAA,IAClB,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,+BAA+B;AAAA,IAC/B,OAAO;AAAA,IACP,wBAAwB;AAAA,IACxB,OAAO;AAAA,IACP,aAAa;AAAA,IACb,KAAK;AAAA;AAGP,QAAM,YAAY;AAAA,IAChB,UAAU;AAAA,IACV,KAAK;AAAA,IACL,WAAW;AAAA,IACX,KAAK;AAAA,IACL,aAAa;AAAA,IACb,KAAK;AAAA;AAEP,QAAM,gBAAgB;AAAA,IACpB,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,CAAC,GAAG;AAAA,IACL,CAAC,CAAC,GAAG;AAAA;AAGP,QAAM,kBAAkB;AACxB,QAAM,4CAA4C,eAAe;AACjE,QAAM,wBAAwB;AAE9B,QAAM,QAAQ;AACd,WAAS,kBAAkB,QAAQ,QAAQ,GAAG,MAAM,OAAO,QAAQ;AACjE,YAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,OAAO,OAAO,MAAM,CAAC;AAClD,UAAM,KAAK,IAAI,GAAG,KAAK,IAAI,KAAK,OAAO,MAAM,CAAC;AAC9C,QAAI,QAAQ,IAAK,QAAO;AACxB,QAAI,QAAQ,OAAO,MAAM,SAAS;AAClC,UAAM,mBAAmB,MAAM,OAAO,CAAC,GAAG,QAAQ,MAAM,MAAM,CAAC;AAC/D,YAAQ,MAAM,OAAO,CAAC,GAAG,QAAQ,MAAM,MAAM,CAAC;AAC9C,QAAI,QAAQ;AACZ,UAAM,MAAM,CAAA;AACZ,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,eAAS,MAAM,CAAC,EAAE,UAAU,iBAAiB,CAAC,KAAK,iBAAiB,CAAC,EAAE,UAAU;AACjF,UAAI,SAAS,OAAO;AAClB,iBAAS,IAAI,IAAI,OAAO,KAAK,IAAI,SAAS,MAAM,OAAO,KAAK;AAC1D,cAAI,IAAI,KAAK,KAAK,MAAM,OAAQ;AAChC,gBAAM,OAAO,IAAI;AACjB,cAAI;AAAA,YACF,GAAG,IAAI,GAAG,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC;AAAA;AAE1E,gBAAM,aAAa,MAAM,CAAC,EAAE;AAC5B,gBAAM,mBAAmB,iBAAiB,CAAC,KAAK,iBAAiB,CAAC,EAAE,UAAU;AAC9E,cAAI,MAAM,GAAG;AACX,kBAAM,MAAM,SAAS,SAAS,aAAa;AAC3C,kBAAM,SAAS,KAAK;AAAA,cAClB;AAAA,cACA,MAAM,QAAQ,aAAa,MAAM,MAAM;AAAA;AAEzC,gBAAI,KAAK,WAAW,IAAI,OAAO,GAAG,IAAI,IAAI,OAAO,MAAM,CAAC;AAAA,UAAA,WAC/C,IAAI,GAAG;AAChB,gBAAI,MAAM,OAAO;AACf,oBAAM,SAAS,KAAK,IAAI,KAAK,IAAI,MAAM,OAAO,UAAU,GAAG,CAAC;AAC5D,kBAAI,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC;AAAA,YAAA;AAExC,qBAAS,aAAa;AAAA,UAAA;AAAA,QACxB;AAEF;AAAA,MAAA;AAAA,IACF;AAEF,WAAO,IAAI,KAAK,IAAI;AAAA,EACtB;AAEA,WAAS,eAAe,OAAO;AAC7B,QAAID,SAAQ,KAAK,GAAG;AAClB,YAAM,MAAM,CAAA;AACZ,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,cAAM,OAAO,MAAM,CAAC;AACpB,cAAM,aAAa,SAAS,IAAI,IAAI,iBAAiB,IAAI,IAAI,eAAe,IAAI;AAChF,YAAI,YAAY;AACd,qBAAW,OAAO,YAAY;AAC5B,gBAAI,GAAG,IAAI,WAAW,GAAG;AAAA,UAAA;AAAA,QAC3B;AAAA,MACF;AAEF,aAAO;AAAA,IAAA,WACE,SAAS,KAAK,KAAK,SAAS,KAAK,GAAG;AAC7C,aAAO;AAAA,IAAA;AAAA,EAEX;AACA,QAAM,kBAAkB;AACxB,QAAM,sBAAsB;AAC5B,QAAM,iBAAiB;AACvB,WAAS,iBAAiB,SAAS;AACjC,UAAM,MAAM,CAAA;AACZ,YAAQ,QAAQ,gBAAgB,EAAE,EAAE,MAAM,eAAe,EAAE,QAAQ,CAAC,SAAS;AAC3E,UAAI,MAAM;AACR,cAAM,MAAM,KAAK,MAAM,mBAAmB;AAC1C,YAAI,SAAS,MAAM,IAAI,IAAI,CAAC,EAAE,KAAA,CAAM,IAAI,IAAI,CAAC,EAAE,KAAA;AAAA,MAAK;AAAA,IACtD,CACD;AACD,WAAO;AAAA,EACT;AACA,WAAS,eAAe,QAAQ;AAC9B,QAAI,CAAC,OAAQ,QAAO;AACpB,QAAI,SAAS,MAAM,EAAG,QAAO;AAC7B,QAAI,MAAM;AACV,eAAW,OAAO,QAAQ;AACxB,YAAM,QAAQ,OAAO,GAAG;AACxB,UAAI,SAAS,KAAK,KAAK,OAAO,UAAU,UAAU;AAChD,cAAM,gBAAgB,IAAI,WAAW,IAAI,IAAI,MAAM,UAAU,GAAG;AAChE,eAAO,GAAG,aAAa,IAAI,KAAK;AAAA,MAAA;AAAA,IAClC;AAEF,WAAO;AAAA,EACT;AACA,WAAS,eAAe,OAAO;AAC7B,QAAI,MAAM;AACV,QAAI,SAAS,KAAK,GAAG;AACnB,YAAM;AAAA,IAAA,WACGA,SAAQ,KAAK,GAAG;AACzB,eAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,cAAM,aAAa,eAAe,MAAM,CAAC,CAAC;AAC1C,YAAI,YAAY;AACd,iBAAO,aAAa;AAAA,QAAA;AAAA,MACtB;AAAA,IACF,WACS,SAAS,KAAK,GAAG;AAC1B,iBAAW,QAAQ,OAAO;AACxB,YAAI,MAAM,IAAI,GAAG;AACf,iBAAO,OAAO;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAEF,WAAO,IAAI,KAAA;AAAA,EACb;AACA,WAAS,eAAe,OAAO;AAC7B,QAAI,CAAC,MAAO,QAAO;AACnB,QAAI,EAAE,OAAO,OAAO,MAAA,IAAU;AAC9B,QAAI,SAAS,CAAC,SAAS,KAAK,GAAG;AAC7B,YAAM,QAAQ,eAAe,KAAK;AAAA,IAAA;AAEpC,QAAI,OAAO;AACT,YAAM,QAAQ,eAAe,KAAK;AAAA,IAAA;AAEpC,WAAO;AAAA,EACT;AAEA,QAAM,YAAY;AAClB,QAAM,WAAW;AACjB,QAAM,YAAY;AAClB,QAAM,YAAY;AAClB,QAAM,oCAAoC,SAAS;AACnD,QAAM,mCAAmC,QAAQ;AACjD,QAAM,sCAAsC,SAAS;AACrD,QAAM,oCAAoC,SAAS;AAEnD,QAAM,sBAAsB;AAC5B,QAAM,+CAA+C,mBAAmB;AACxE,QAAM,gBAAgC;AAAA,IACpC,sBAAsB;AAAA;AAExB,WAAS,mBAAmB,OAAO;AACjC,WAAO,CAAC,CAAC,SAAS,UAAU;AAAA,EAC9B;AACA,QAAM,mBAAmB;AACzB,QAAM,sBAAsB,CAAA;AAC5B,WAAS,kBAAkB,MAAM;AAC/B,QAAI,oBAAoB,eAAe,IAAI,GAAG;AAC5C,aAAO,oBAAoB,IAAI;AAAA,IAAA;AAEjC,UAAM,WAAW,iBAAiB,KAAK,IAAI;AAC3C,QAAI,UAAU;AACZ,cAAQ,MAAM,0BAA0B,IAAI,EAAE;AAAA,IAAA;AAEhD,WAAO,oBAAoB,IAAI,IAAI,CAAC;AAAA,EACtC;AACA,QAAM,iBAAiB;AAAA,IACrB,eAAe;AAAA,IACf,WAAW;AAAA,IACX,SAAS;AAAA,IACT,WAAW;AAAA;AAEb,QAAM,kBAAkC;AAAA,IACtC;AAAA;AAEF,QAAM,iBAAiC;AAAA,IACrC;AAAA;AAEF,QAAM,oBAAoC;AAAA,IACxC;AAAA;AAEF,WAAS,sBAAsB,OAAO;AACpC,QAAI,SAAS,MAAM;AACjB,aAAO;AAAA,IAAA;AAET,UAAM,OAAO,OAAO;AACpB,WAAO,SAAS,YAAY,SAAS,YAAY,SAAS;AAAA,EAC5D;AAEA,QAAM,WAAW;AACjB,WAAS,WAAW,QAAQ;AAC1B,UAAM,MAAM,KAAK;AACjB,UAAM,QAAQ,SAAS,KAAK,GAAG;AAC/B,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IAAA;AAET,QAAI,OAAO;AACX,QAAI;AACJ,QAAI;AACJ,QAAI,YAAY;AAChB,SAAK,QAAQ,MAAM,OAAO,QAAQ,IAAI,QAAQ,SAAS;AACrD,cAAQ,IAAI,WAAW,KAAK,GAAA;AAAA,QAC1B,KAAK;AACH,oBAAU;AACV;AAAA,QACF,KAAK;AACH,oBAAU;AACV;AAAA,QACF,KAAK;AACH,oBAAU;AACV;AAAA,QACF,KAAK;AACH,oBAAU;AACV;AAAA,QACF,KAAK;AACH,oBAAU;AACV;AAAA,QACF;AACE;AAAA,MAAA;AAEJ,UAAI,cAAc,OAAO;AACvB,gBAAQ,IAAI,MAAM,WAAW,KAAK;AAAA,MAAA;AAEpC,kBAAY,QAAQ;AACpB,cAAQ;AAAA,IAAA;AAEV,WAAO,cAAc,QAAQ,OAAO,IAAI,MAAM,WAAW,KAAK,IAAI;AAAA,EACpE;AACA,QAAM,iBAAiB;AACvB,WAAS,kBAAkB,KAAK;AAC9B,WAAO,IAAI,QAAQ,gBAAgB,EAAE;AAAA,EACvC;AACA,QAAM,4BAA4B;AAClC,WAAS,qBAAqB,KAAK,cAAc;AAC/C,WAAO,IAAI;AAAA,MACT;AAAA,MACA,CAAC,MAAM,eAAe,MAAM,MAAM,YAAY,OAAO,CAAC,KAAK,KAAK,CAAC;AAAA;EAErE;AAEA,WAAS,mBAAmB,GAAG,GAAG;AAChC,QAAI,EAAE,WAAW,EAAE,OAAQ,QAAO;AAClC,QAAI,QAAQ;AACZ,aAAS,IAAI,GAAG,SAAS,IAAI,EAAE,QAAQ,KAAK;AAC1C,cAAQ,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAAA,IAAA;AAE/B,WAAO;AAAA,EACT;AACA,WAAS,WAAW,GAAG,GAAG;AACxB,QAAI,MAAM,EAAG,QAAO;AACpB,QAAI,aAAa,OAAO,CAAC;AACzB,QAAI,aAAa,OAAO,CAAC;AACzB,QAAI,cAAc,YAAY;AAC5B,aAAO,cAAc,aAAa,EAAE,cAAc,EAAE,YAAY;AAAA,IAAA;AAElE,iBAAa,SAAS,CAAC;AACvB,iBAAa,SAAS,CAAC;AACvB,QAAI,cAAc,YAAY;AAC5B,aAAO,MAAM;AAAA,IAAA;AAEf,iBAAaA,SAAQ,CAAC;AACtB,iBAAaA,SAAQ,CAAC;AACtB,QAAI,cAAc,YAAY;AAC5B,aAAO,cAAc,aAAa,mBAAmB,GAAG,CAAC,IAAI;AAAA,IAAA;AAE/D,iBAAa,SAAS,CAAC;AACvB,iBAAa,SAAS,CAAC;AACvB,QAAI,cAAc,YAAY;AAC5B,UAAI,CAAC,cAAc,CAAC,YAAY;AAC9B,eAAO;AAAA,MAAA;AAET,YAAM,aAAa,OAAO,KAAK,CAAC,EAAE;AAClC,YAAM,aAAa,OAAO,KAAK,CAAC,EAAE;AAClC,UAAI,eAAe,YAAY;AAC7B,eAAO;AAAA,MAAA;AAET,iBAAW,OAAO,GAAG;AACnB,cAAM,UAAU,EAAE,eAAe,GAAG;AACpC,cAAM,UAAU,EAAE,eAAe,GAAG;AACpC,YAAI,WAAW,CAAC,WAAW,CAAC,WAAW,WAAW,CAAC,WAAW,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG;AAC7E,iBAAO;AAAA,QAAA;AAAA,MACT;AAAA,IACF;AAEF,WAAO,OAAO,CAAC,MAAM,OAAO,CAAC;AAAA,EAC/B;AACA,WAAS,aAAa,KAAK,KAAK;AAC9B,WAAO,IAAI,UAAU,CAAC,SAAS,WAAW,MAAM,GAAG,CAAC;AAAA,EACtD;AAEA,QAAME,SAAQ,CAAC,QAAQ;AACrB,WAAO,CAAC,EAAE,OAAO,IAAI,WAAW,MAAM;AAAA,EACxC;AACA,QAAM,kBAAkB,CAAC,QAAQ;AAC/B,WAAO,SAAS,GAAG,IAAI,MAAM,OAAO,OAAO,KAAKF,SAAQ,GAAG,KAAK,SAAS,GAAG,MAAM,IAAI,aAAa,kBAAkB,CAAC,WAAW,IAAI,QAAQ,KAAKE,OAAM,GAAG,IAAI,gBAAgB,IAAI,KAAK,IAAI,KAAK,UAAU,KAAK,UAAU,CAAC,IAAI,OAAO,GAAG;AAAA,EAC3O;AACA,QAAM,WAAW,CAAC,MAAM,QAAQ;AAC9B,QAAIA,OAAM,GAAG,GAAG;AACd,aAAO,SAAS,MAAM,IAAI,KAAK;AAAA,IAAA,WACtB,MAAM,GAAG,GAAG;AACrB,aAAO;AAAA,QACL,CAAC,OAAO,IAAI,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,QAAA,CAAS,EAAE;AAAA,UACvC,CAAC,SAAS,CAAC,KAAK,IAAI,GAAG,MAAM;AAC3B,oBAAQ,gBAAgB,KAAK,CAAC,IAAI,KAAK,IAAI;AAC3C,mBAAO;AAAA,UAAA;AAAA,UAET,CAAA;AAAA,QAAC;AAAA;IAEL,WACS,MAAM,GAAG,GAAG;AACrB,aAAO;AAAA,QACL,CAAC,OAAO,IAAI,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,OAAA,CAAQ,EAAE,IAAI,CAAC,MAAM,gBAAgB,CAAC,CAAC;AAAA;IACvE,WACS,SAAS,GAAG,GAAG;AACxB,aAAO,gBAAgB,GAAG;AAAA,IAAA,WACjB,SAAS,GAAG,KAAK,CAACF,SAAQ,GAAG,KAAK,CAAC,cAAc,GAAG,GAAG;AAChE,aAAO,OAAO,GAAG;AAAA,IAAA;AAEnB,WAAO;AAAA,EACT;AACA,QAAM,kBAAkB,CAAC,GAAG,IAAI,OAAO;AACrC,QAAI;AACJ;AAAA;AAAA;AAAA,MAGE,SAAS,CAAC,IAAI,WAAW,KAAK,EAAE,gBAAgB,OAAO,KAAK,CAAC,MAAM;AAAA;AAAA,EAEvE;AAEA,WAAS,qBAAqB,OAAO;AACnC,QAAI,SAAS,MAAM;AACjB,aAAO;AAAA,IAAA;AAET,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,UAAU,KAAK,MAAM;AAAA,IAAA;AAE9B,WAAO,OAAO,KAAK;AAAA,EACrB;AAEA,kBAAA,YAAoB;AACpB,kBAAA,YAAoB;AACpB,kBAAA,KAAa;AACb,kBAAA,OAAe;AACf,kBAAA,iBAAyB;AACzB,kBAAA,aAAqB;AACrB,kBAAA,aAAqB;AACrB,kBAAA,YAAoB;AACpB,kBAAA,WAAmB;AACnB,kBAAA,aAAqB;AACrB,kBAAA,4BAAoC;AACpC,kBAAA,MAAc;AACd,kBAAA,aAAqB;AACrB,kBAAA,oBAA4B;AAC5B,kBAAA,SAAiB;AACjB,kBAAA,cAAsB;AACtB,kBAAA,oBAA4B;AAC5B,kBAAA,oBAA4B;AAC5B,kBAAA,uBAA+B;AAC/B,kBAAA,gBAAwB;AACxB,kBAAA,aAAqB;AACrB,kBAAA,SAAiB;AACjB,kBAAA,YAAoB;AACpB,kBAAA,qBAA6B;AAC7B,kBAAA,iBAAyB;AACzB,kBAAA,UAAkBA;AAClB,kBAAA,gBAAwB;AACxB,kBAAA,qBAA6B;AAC7B,kBAAA,SAAiB;AACjB,kBAAA,aAAqB;AACrB,kBAAA,oBAA4B;AAC5B,kBAAA,wBAAgC;AAChC,kBAAA,YAAoB;AACpB,kBAAA,eAAuB;AACvB,kBAAA,kBAA0B;AAC1B,kBAAA,oBAA4B;AAC5B,kBAAA,iBAAyB;AACzB,kBAAA,QAAgB;AAChB,kBAAA,cAAsB;AACtB,kBAAA,kBAA0B;AAC1B,kBAAA,WAAmB;AACnB,kBAAA,OAAe;AACf,kBAAA,gBAAwB;AACxB,kBAAA,YAAoB;AACpB,kBAAA,WAAmB;AACnB,kBAAA,wBAAgC;AAChC,kBAAA,iBAAyB;AACzB,kBAAA,oBAA4B;AAC5B,kBAAA,WAAmB;AACnB,kBAAA,QAAgB;AAChB,kBAAA,uBAA+B;AAC/B,kBAAA,WAAmB;AACnB,kBAAA,WAAmB;AACnB,kBAAA,YAAoB;AACpB,kBAAA,aAAqB;AACrB,kBAAA,eAAuB;AACvB,kBAAA,gBAAwB;AACxB,kBAAA,UAAkB;AAClB,kBAAA,iBAAyB;AACzB,kBAAA,uBAA+B;AAC/B,kBAAA,iBAAyB;AACzB,kBAAA,iBAAyB;AACzB,kBAAA,iBAAyB;AACzB,kBAAA,mBAA2B;AAC3B,kBAAA,iBAAyB;AACzB,kBAAA,SAAiB;AACjB,kBAAA,gBAAwB;AACxB,kBAAA,iBAAyB;AACzB,kBAAA,kBAA0B;AAC1B,kBAAA,eAAuB;AACvB,kBAAA,WAAmB;AACnB,kBAAA,YAAoB;AACpB,kBAAA,eAAuB;;;;ACvlBhB,MAAM,oBAAoB,CAAC,OAAO,aAAa;AACpD,SAAO,EAAE,SAAS,MAA2F,SAAS,YAAU;AAClI;AACA,MAAM,2BAA2B;AACjC,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB;AAC5B,SAAS,iBAAiB,OAAO;AAC/B,QAAM,SAAS,OAAO,KAAK,OAAO,MAAM,KAAK,QAAQ,0BAA0B,IAAI,EAAE,QAAQ,sBAAsB,IAAI,EAAE,QAAQ,qBAAqB,CAAC,MAAM,MAAM,OAAO,EAAE,MAAM,CAAC,CAAC,GAAG,SAAA,KAAc,EAAE;AACvM,SAAO,OAAO,WAAW,aAAa,OAAO,KAAK,IAAI;AACxD;AACO,SAAS,eAAe,IAAI,MAAM;AACvC,MAAI,OAAO,QAAQ,SAASG,2BAAgB;AAC1C,WAAO;AAAA,EACT;AACA,MAAI,iBAAiB,EAAE,MAAM,iBAAiB,IAAI,GAAG;AACnD,WAAO;AAAA,EACT;AACA,QAAM,oBAAoB,GAAG,QAAQ;AAAA,IACnC,CAAC,MAAM,UAAU,KAAK,cAAc,KAAK,WAAW,YAAY,KAAK,QAAQ,KAAK,GAAG,YAAY;AAAA,EAAA;AAEnG,MAAI,mBAAmB;AACrB,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAmGO,SAAS,QAAQ,OAAO;AAC7B,SAAO,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK;AAC9C;AACO,SAAS,sBAAsB,YAAY;AAChD,QAAM,SAAS,CAAA;AACf,aAAW,QAAQ,YAAY;AAC7B,QAAI,CAAC,MAAM;AACT;AAAA,IACF;AACA,WAAO,KAAK;AAAA,MACV,GAAG;AAAA,MACH,cAAc,KAAK,eAAe,QAAQ,KAAK,YAAY,IAAI;AAAA,MAC/D,eAAe,KAAK,gBAAgB,QAAQ,KAAK,aAAa,IAAI;AAAA,IAAA,CACnE;AAAA,EACH;AACA,SAAO,KAAK,GAAG,MAAM;AACvB;AC3IA,MAAA,iBAAe;AAAA,EACb,eAAe,IAAI,MAAM,eAAe;AACtC,UAAM,UAAU,WAAA;AAChB,UAAM,sBAAsB,UAAA,EAAY,SAAS,sBAAsB;AACvE,QAAI,GAAG,KAAK,QAAQ,OAAO,EAAE,MAAM,KAAK,KAAK,QAAQ,OAAO,EAAE,GAAG;AAC/D,UAAI,KAAK,QAAQ,CAAC,GAAG,MAAM;AACzB,eAAO,EAAE,MAAM,GAAG,KAAK,EAAA;AAAA,MACzB;AACA,UAAI,GAAG,MAAM;AACX,eAAO,EAAE,IAAI,GAAG,MAAM,KAAK,+BAA+B,GAAG,IAAI,GAAG,UAAU,oBAAA;AAAA,MAChF;AACA,aAAO;AAAA,IACT;AACA,UAAM,yBAAyB,OAAO,GAAG,KAAK,gBAAgB,aAAa,GAAG,KAAK,YAAY,IAAI,IAAI,IAAI,GAAG,KAAK;AACnH,QAAI,2BAA2B,OAAO;AACpC,aAAO;AAAA,IACT;AACA,QAAI,SAASA,2BAAgB;AAC3B,aAAO,mBAAmB,IAAI,MAAM,eAAe,mBAAmB;AAAA,IACxE;AACA,WAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,YAAM,WAAW,MAAM;AACrB,8BAAsB,MAAM,QAAQ,mBAAmB,IAAI,MAAM,eAAe,mBAAmB,CAAC,CAAC;AAAA,MACvG;AACA,cAAQ,MAAM,SAAS,oBAAoB,MAAM;AAC/C,cAAM,oBAAoB,QAAQ,oBAAoB;AACtD,YAAI,mBAAmB;AACrB,4BAAkB,KAAK,QAAQ;AAAA,QACjC,OAAO;AACL,mBAAA;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AACF;AACA,SAAS,+BAA+B,UAAU;AAChD,MAAI;AACF,UAAM,OAAO,SAAS,cAAc,QAAQ;AAC5C,QAAI,MAAM;AACR,cAAQ,OAAO,WAAW,iBAAiB,IAAI,EAAE,eAAe,KAAK,MAAM,OAAO,WAAW,iBAAiB,SAAS,eAAe,EAAE,gBAAgB,KAAK;AAAA,IAC/J;AAAA,EACF,QAAQ;AAAA,EACR;AACA,SAAO;AACT;AACA,SAAS,mBAAmB,IAAI,MAAM,eAAe,4BAA4B;AAC/E,MAAI,eAAe;AACjB,WAAO;AAAA,EACT;AACA,MAAI,GAAG,MAAM;AACX,WAAO;AAAA,MACL,IAAI,GAAG;AAAA,MACP,KAAK,+BAA+B,GAAG,IAAI;AAAA,MAC3C,UAAU,eAAe,IAAI,IAAI,IAAI,6BAA6B;AAAA,IAAA;AAAA,EAEtE;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN,KAAK;AAAA,EAAA;AAET;AC/DA,MAAM,sBAAsB;AAAA,EAC1B,UAAU;AAAA,EACV,oBAAoB;AACtB;AAEA,MAAA,gBAAe;AAAA,EACf,GAAG;AAAA,EACH,GAAG;AACH;ACNE,MAAA,WAAQ,0CAAgB,OAAA,IAAA,SAAA;AAAA,MAAA,QAAA;AACtB,MAAA,CAAA,GAAA,MAAA,UAAA;AACF;AAAA,EACA;AACA,kBAAe,CAAA,QAAM,SAAA,IAAAC,aAAA,MAAA,QAAA,QAAA,GAAA,KAAA,SAAA,EAAA,CAAA,CAAA,GAAA,SAAA,MAAA,QAAA,UAAA,GAAA;AACnB,MAAA,WAAA,MAAA;AACF;AAAA,EACA;AAA0B,QACxB,QAAO,YAAA;AAAA,IAAA,OAAA;AAAA;AAAA,IAEmD,QAAA,WAAA,OAAA,UAAA,OAAA,eAAA;AAAA;AAAA,IAG1D,YAAM,WAAA,OAAA,cAAA,OAAA,kBAAA,mBAAA,GAAA,QAAA;AAAA,IAAA;MAEN,MAAA,GAAA;AAAA,IAAA;AAAA,EAEF,CAAA;AAIF,SAAC;;ACrBD,MAAA,0BAAe,0CAA0B,CAAC,OAAO;AACH;AAC1C;AAAA,EACF;AAUF,CAAC;ACdM,MAAM,mBAAmB;AAAA,EAC9B;AAAA,EACA;AACF;AACO,MAAM,kBAAkB,CAAA;ACL4C,OAAO,OAAO,uBAAO,OAAO,IAAI,GAAG,CAAA,CAE7G;AACM,MAAM,mBAA8D,OAAO,OAAO,uBAAO,OAAO,IAAI,GAAG,EAE7G;ACqB+B,MAC9B1C,WAAM,iCAAA;AAAA,EACN,MAAA;AAAA,EACA;EACE,MAAI,MAAA,SAAa;AAAA,QAAA,QAAA;AACjB,QAAI,cAAa,oCAAW,IAAY;AAIxC,UAAM,wBAAuB,UAAA,UAAA,KAA2C,oBAAK,UAAU;AACvF,UAAI,SAAA,cAAA,UAAA,CAAA,QAAA,SAAA,IAAA0C,aAAA,MAAA,cAAA,OAAA,OAAA,CAAA,GAAA,SAAA,MAAA,QAAA,UAAA,GAAA,WAAA,UAAA;AACJ,QAAA;AAA4B,UACvB,SAAA,aAAA;AAAA,MACH,GAAA;AAAA,MACE,gBAAa,CAAA,IAAA,MAAA,kBAAgB;AAC3B,YAAA,SAAAD,2BAAgB;AAChB,0BAAA;AACF;AAAA,QACA;AACE,YAAA,8BAAgC;AAChC,iBAAI,QAAA,+BAAuC;AACzC,cAAA,uBAAqB,SAAW,SAAM;AACpC,kBAAA,QAAM,OAAA,WAAA,MAAA;AACN,oBAAA;AACD,cAAA,SAAA,QAAA,oBAAA;AAAA,YACH,CAAA;AAAA,UACA;AACF,iBAAA,cAAA,eAAA,IAAAA,2BAAA,iBAAA,aAAA;AAAA,QACF;AAAA,MACA;AAAA,MACA;AAAA,MACD;AAAA,IACD,CAAA;AAOA,YAAM,OAAA,IAAA,MAAgB;AACtB,UAAA,gBAAkB,WAAc,OAAA,aAAA,KAAA;AAC9B,WAAA,UAAc,CAAA,KAAA,SAAQ;AACvB,oBAAA,QAAA;AAAA,IACD,CAAA;AAA+E,WACxE,eAAM,QAAc,OAAA,OAAA,kBAAA,iBAAA;AAAA,MAC1B,KAAA,MAAA,cAAA;AAAA,IACD,CAAA;AACA,UAAM,aAAoB,QAAO,WAAA;AACjC,UAAM,oBAAmB,OAAM,aAAA,KAAA;AAC7B,UAAA,mBAAsB,MAAA;AACxB,aAAA,QAAA,OAAA,aAAA;AAAA,IACA;AACE,WAAA,UAAe,CAAA,IAAG,SAAW;AAC7B,YAAM,YAAW,QAAK,GAAA,EAAQ,GAAG,YAAK;AACtC,uBAAe,KAAA,QAAU,GAAA,EAAA,GAAA,YAAA;AACvB,UAAA,WAAA,UAAiB;AACjB,yBAAA;AACF;AAAA,MACA;AACE,UAAA,GAAA,QAAA,SAAiB,KAAA,QAAA,UAAA,GAAA,QAAA,MAAA,CAAA,GAAA,MAAA,EAAA,YAAA,YAAA,KAAA,QAAA,CAAA,GAAA,YAAA,OAAA,GAAA;AACnB,yBAAA;AAAA,MACD;AAAA,IACD,CAAA;AACA,UAAA,QAAW,EAAA,uBAAqB;AAC9B,eAAO,OAAA,cAAsB;AAAK,aAC3B,eAAa,OAAS,KAAA;AAAA,QAC3B,KAAA,MAAA,OAAY,MAAA,GAAA;AAAA,QACb,YAAA;AAAA,MAAA,CACH;AAAA,IACA;AACA,YAAQ,SAAA,gBAAgB,KAAA;AAAA,4BACb;AAAA,MACT,QAAQ,CAAA;AAAA,MACV,OAAA,CAAA;AAAA,IACA;AACA,UAAM,iCAAqC;AAC3C,UAA2B,eAAQ,QAAY,YAAA,eAA+B,MAAA,WAAA,OAAA;AAC5E,QAAA,CAAA,QAAO,YAAU,iBAAkB,cAAY;AAC7C,aAAA,UAAe,OAAA,IAAA,OAAA,YAAA;AACf,eAAI,QAA2D;AAI7D,YAAA,SAAM;AACR,gBAAA,QAAA,SAAA,kBAAA;AAAA,QACA;AACE,YAAA,SAAA,SAAA,GAAA;AACF;AAAA,QACA;AACE,YAAA,GAAA,kBAAc,GAAA,yBAAmC;AACnD,gBAAA,QAAA,eAAA,MAAA,WAAA,GAAA,YAAA,GAAA,CAAA;AAAA,QACD;AAAA,MACH,CAAA;AAAA,IACA;AACE,QAAA;AACE,UAAA,MAAA;AACF;AAAA,QAAA,CAAA,QAAA,SAAA,IAAAC,aAAA,MAAA,OAAA,KAAA,UAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA;AAAA;;eAEO,SAAQ,IAAAA,aAAA,MAAA,OAAA,QAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA;AAAA,IACf;AACF,MAAA,CAAA,QAAA,SAAA,IAAAA,aAAA,MAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA,IACA;AACA,UAAM,uBAAmB,OAAA,aAAA;AACzB,UAAA,mBAAiB;AACjB,qBAAkC;AAChC,QAAA,QAAS,YAAW,iBAAS,CAAA,cAAA;AAC/B,aAAA,EAAA,SAAA,EAAA,SAAA;AAAA,IACA;AACA,UAAA,gBAAkB,QAAW,QAAS,MAAA;AACpC,WAAA,kBAAuB,IAAA,SAAA;AACvB,YAAG,QAAO,SAAY,oBAAI;AAC1B,SAAA,OAAI;AACF,UAAA,QAAQ,eAAS,iBAAA,CAAA,WAAA,GAAA,KAAA,MAAA,GAAA;AACnB,WAAA,KAAA,SAAA;AAAA,MACA;AACA,cAA2B,wBAAoB;AAC7C,UAAA,CAAA,QAAM,YAAA,iBAAoC,cAAY;AACtD,cAAA,oBAAoC,oBAAA,IAAA,CAAA,GAAA,kBAAA,GAAA,QAAA,YAAA,MAAA,CAAA;AAClC,mBAAM,aAAA,GAAA;AACN,gBAAK,sBAAqB,UAAA,KAAA;AACxB,cAAA,CAAA,qBAAA;AACF;AAAA,UACA;AACE,qBAAAC,UAAkBrB,UAAI,mBAAK,GAAA;AAC7B,8BAAA,IAAAqB,MAAA;AAAA,UACF;AAAA,QACA;AACA,2BAAe,cAAe,EAAA,MAAA,GAAA,KAAA,CAAA;AAC5B,YAAA,WAAW;AACT,qBAAI,OAAW,WAAA,eAAoB;AACjC,gBAAA,WAAA,cAAyB,GAAA,GAAA;AAC3B,gCAAO,IAAA,GAAA;AAAA,YACL,OAAA;AACF,gCAAA,OAAA,GAAA;AAAA,YACF;AAAA,UACF;AAAA,QACA;AACE,mBAAMA,UAAA,mBAA8B;AACpC,gBAAK,aAAY,OAAAA,WAAA,WAAA,QAAA,YAAA,MAAAA,MAAA,KAAA,MAAA,gBAAAA,MAAA,IAAA,EAAA,KAAA,CAAA,MAAA,EAAA,WAAA,CAAA,IAAAA;AACf,cAAA,CAAA,YAAqB;AAIvB,kBAAA,IAAA,MAAA,8BAAAA,MAAA,IAAA;AAAA,UACA;AACE,cAAA;AACE,gBAAA;AAGF,kBAAI,SAA8E,MAAA,QAAA,eAAA,MAAA,WAAA,IAAA,IAAA,CAAA;AAChF,gBAAA,MAAI;AACF,kBAAA,WAAM,2BAA+B,OAAA;AAAA,sBACnC,SAAQ,UAAA,YAAA;AAAA,kBACR,QAAA;AAAA,kBACD,YAAA,mBAAA,UAAA;AAAA,gBACD,CAAA;AACA,sBAAA,QAAO,eAAA,MAAA,UAAA,MAAA,CAAA;AACT,uBAAA;AAAA,cACF;AAAA,YACA;AACE,gBAAA,WAAA,MAAA;AACF;AAAA,YACA;AACE,gBAAA,WAAO,OAAA;AACT,qBAAA;AAAA,YACA;AACE,gBAAA,QAAI;AACF,kBAAA,YAAc,MAAA,KAAA,OAAe,OAAM;AACrC,sBAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AAAA,cACA;AACF,qBAAA;AAAA;UAEA,SAAM,KAAA;AACN,2BAAW,YAAO,GAAA;AAChB,gBAAA,OAAM,OAAQ;AAChB,oBAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AAAA,YACA;AACF,mBAAA;AAAA,UACF;AAAA,QACF;AAAA,MACD;AAAA,IACD,CAAA;AACE,QAAA,cAAO;AACL,aAAA,cAAiB,CAAA,OAAA;AACjB,cAAM,WAAS,iBAAiB,QAAQ,WAAY,cAAS,IAAA;AAC7D,cAAK,SAAA,GAAY,QAAA,KAAa,CAAA,MAAQ,EAAA,YAAA,SAAe,aAAA,GAAA,YAAA;AACnD,YAAA,CAAA,YAAQ,qBAA4B,eAAI;AAAA,kBACtC,WAAY,iBAAA,IAAA;AAAA,YACZ,YAAA;AAAA,YACF,eAAA;AAAA,UACA;AACF,iBAAA;AAAA,QACD;AAAA,MACH,CAAA;AAAA,IACA;AACE,WAAA,QAAO,YAAQ;AACf,aAAM;AACP,YAAA,QAAA,SAAA,kBAAA;AAAA,IACD,CAAA;AACE,qBAAe,CAAA,OAAA;AACb,UAAA,GAAA,QAAO,WAAQ,KAAA,CAAe,MAAM,OAAA;AAAsB,eACxD,QAAQ,eAAA,MAAA,UAAA,YAAA;AAAA,UACR,QAAO;AAAA,UACP,OAAA;AAAA,UACA,YAAM,mBAAA,GAAA,QAAA;AAAA,UAAA;YAEN,MAAA,GAAA;AAAA,UAAA;AAAA,QACC,CACL,CAAA,CAAA;AAAA,MACD;AAAA,IACD,CAAA;AACE,YAAI,MAAA,SAAA,eAAA,YAAA;AACF,UAAA;AACE,YAAA,UAAA,sBAA4B;AAC9B,+BAAA,OAAA;AAAA,QACA;AACE,YAAA,iBAAM;AAAA,aASN;AAAqB,gBAChB,OAAA,QAAA;AAAA,YACH,GAAA;AAAA,YACD,OAAA;AAAA,UAAA,CACH;AAAA,QACA;eACO,QAAQ,iBAAA,cAAA;AAAA,MACf,SAAM,QAAQ;AAChB,cAAA,QAAA,eAAA,MAAA,UAAA,MAAA,CAAA;AAAA,MACD;AAAA,IACD,CAAA;AACF,WAAA,EAAA,SAAA,EAAA,SAAA;AAAA,EACF;AACA,CAAA;ACnQA,MAAM,WAAW;AAAA,EACf,CAAC,aAAa,CAAC,SAAS,YAAY,IAAI,KAAK,KAAK,QAAQ;AAAA,EAC1D,CAAC,mBAAmB,CAAC,SAAS,MAAM,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,KAAK,UAAU,OAAO,KAAK,UAAU,WAAW,OAAO,KAAK,UAAU,KAAK,KAAK,KAAK,IAAI;AAAA,EAC1J,CAAC,YAAY,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC,KAAK,UAAU,OAAO,KAAK,UAAU,WAAW,OAAO,KAAK,UAAU,KAAK,KAAK,KAAK,IAAI;AAAA,EAChI,CAAC,cAAc,CAAC,SAAS,MAAM,IAAI,KAAK,UAAU,IAAI,KAAK,KAAK,KAAK;AAAA,EACrE,CAAC,mBAAmB,CAAC,SAAS,WAAW,IAAI,KAAK,UAAU,IAAI,KAAK,MAAM,IAAI,CAAC;AAAA,EAChF,CAAC,OAAO,CAAC,SAAS,MAAM,IAAI,KAAK,KAAK,KAAK;AAAA,EAC3C,CAAC,YAAY,CAAC,SAAS,WAAW,IAAI,KAAK,MAAM,IAAI,CAAC;AACxD;AAIA,MAAA,oEAAe,iCAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,QAAQ;AACN,eAAW,CAAC,SAAS,EAAE,KAAK,UAAU;AACpC,2BAAqB,SAAS,EAAE;AAAA,IAClC;AAAA,EACF;AACF,CAAC;ACvBc,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,SAAS;AACP,WAAmE,mBAAmB,KAAK;AAAA,EAC7F;AACF,CAAC;ACDM,MAAM,mBAAmB,uBAAO,IAAI,kBAAkB;AAW9C,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO,CAAC,YAAY,eAAe,kBAAkB,aAAa;AAAA,EAClE,GAAG;AAAA,EAGH,MAAM,OAAO,EAAE,OAAO,SAAS;AAC7B,UAAM,UAAU,WAAW,KAAK;AAShC,UAAM,KAAK,mBAAA;AACX,QAAI,IAAI;AACN,SAAG,kBAAkB;AAAA,IACvB;AACA,YAAQ,kBAAkB,IAAI;AAC9B,WAAO,MAAM;AACX,UAAI,QAAQ,OAAO;AACjB,cAAM,SAAS,MAAM,UAAA;AACrB,YAAI,UAAU,OAAO,WAAW,GAAG;AACjC,iBAAO,CAAC,WAAW,OAAO,CAAC,GAAG,KAAK,CAAC;AAAA,QACtC;AACA,eAAO;AAAA,MACT;AACA,YAAM,OAAO,MAAM,YAAY,MAAM;AACrC,UAAI,MAAM;AACR,eAAO,EAAE,IAAI;AAAA,MACf;AACA,YAAM,cAAc,MAAM,YAAY,MAAM,eAAe;AAC3D,YAAM,cAAc,MAAM,eAAe,MAAM,kBAAkB;AACjE,aAAO,mBAAmB,aAAa,OAAO,WAAW;AAAA,IAC3D;AAAA,EACF;AACF,CAAC;ACvDM,SAAS,2BAA2B,SAAS;AAClD,QAAM,cAAc,WAAW;AAM7B,UAAM,IAAI,MAAM,YAAY,QAAQ,IAAI,yDAAyD;AAAA,EACnG;AACA,SAAO,OAAO,eAAe,aAAa,kBAAkB;AAAA,IAC1D,YAAY;AAAA,IACZ,KAAK,MAAM,QAAQ;AAAA,EAAA,CACpB;AACH;ACJO,MAAM,qBAAqB,2BAA2B;AAAA,EAC3D,MAAM;AAAA,EACN,QAAQ,UAAU,IAAI;AACpB,aAAS,iBAAiB,MAAM;AAC9B,YAAM,UAAU,OAAO,KAAK,KAAK,SAAS,CAAC,MAAM,WAAW,KAAK,IAAA,IAAQ;AACzE,UAAI,iBAAiB,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG;AACtC,aAAK,QAAQ,OAAO;AAAA,MACtB;AACA,UAAI,CAAC,MAAM,UAAU,OAAO,CAAA,CAAE,IAAI;AAElC,YAAM,gBAAgB,MAAM,IAAI,KAAK,OAAO,SAAS;AACrD,YAAM,MAAM,gBAAgB,SAAS,MAAM,QAAQ,IAAI,CAAC,IAAI,EAAE,OAAO,KAAA;AACrE,UAAI,CAAC,IAAI,SAAS,OAAO,IAAI,UAAU,UAAU;AAC/C,cAAM,IAAI,UAAU,uDAAuD;AAAA,MAC7E;AACA,UAAI,OAAO,aAAa,YAAY;AAClC,cAAM,IAAI,UAAU,mDAAmD;AAAA,MACzE;AACA,YAAM,+BAA+B,OAAO,YAAY;AACxD,YAAM,UAAU,WAAA;AAChB,YAAM,iBAAiB,+BAA+B,QAAQ,IAAI,IAAI;AACtE,UAAI,CAAC,8BAA8B;AACjC,mBAAW,QAAQ,gBAAgB;AACjC,cAAI,eAAe,IAAI,MAAM,QAAQ;AACnC;AAAA,UACF;AACA,cAAI,KAAK,IAAI,MAAM,QAAQ;AACzB;AAAA,UACF;AACA,eAAK,IAAI,IAAI,eAAe,IAAI;AAAA,QAClC;AAAA,MACF;AACA,WAAK,WAAW;AAChB,WAAK,YAAY;AACjB,WAAK,kBAAkB;AACvB,WAAK,SAAS;AACd,WAAK,cAAc;AACnB,WAAK,SAAS,kBAAkB;AAChC,WAAK,WAAW;AAChB,UAAI,8BAA8B;AAChC,mBAAW,QAAQ,gBAAgB;AACjC,cAAI,eAAe,IAAI,MAAM,QAAQ;AACnC;AAAA,UACF;AACA,eAAK,IAAI,IAAI,eAAe,IAAI;AAAA,QAClC;AAAA,MACF;AAEoB,cAAQ,WAAW,IAAI,KAAK;AA0BhD,eAAS,qBAAqB;AAC5B,cAAM,sBAAsB,EAAE,OAAO,WAAW,QAAQ,KAAK,OAAA;AAC7D,cAAM,WAAW,QAAQ,WAAW,IAAI,KAAK;AAC7C,YAAI,CAAC,UAAU,OAAO;AACpB,8BAAoB,aAAa,KAAK,cAAc,IAAI,OAAO,SAAS,EAAE,OAAO,WAAW;AAC5F,kBAAQ,WAAW,IAAI,KAAK,IAAI,eAAe,SAAS,IAAI,OAAO,UAAU,MAAM,oBAAoB,UAAU;AACjH,kBAAQ,WAAW,IAAI,KAAK,EAAE,qBAAqB,oBAAoB;AAAA,QACzE,WAAW,QAAQ,mBAAmB,IAAI,KAAK,GAAG;AAChD,8BAAoB,aAAa,SAAS;AAAA,QAC5C;AACA,eAAO,MAAM,QAAQ,WAAW,IAAI,KAAK,EAAE,QAAQ,mBAAmB;AAAA,MACxE;AACA,YAAM,eAAe,mBAAA;AACrB,YAAM,YAAY,QAAQ,WAAW,IAAI,KAAK;AAC9C,gBAAU;AACV,YAAM,gBAAgB,KAAK,WAAW,SAAS,QAAQ,QAAQ;AAC/D,UAA0B,iBAAiB,KAAK,WAAW;AACzD,cAAM,UAAU,aAAA;AAChB,YAAI,sBAAsB;AACxB,2BAAiB,MAAM,OAAO;AAAA,QAChC,OAAO;AACL,kBAAQ,KAAK,eAAe,YAAY;AACtC,kBAAM;AAAA,UACR,CAAC;AAAA,QACH;AAAA,MACF;AA2FA,YAAM,cAAc;AAAA,QAClB,MAAM,oBAAoB,MAAM,QAAQ,WAAW,IAAI,KAAK,GAAG,IAAI;AAAA,QACnE,SAAS,oBAAoB,MAAM,QAAQ,WAAW,IAAI,KAAK,GAAG,OAAO;AAAA,QACzE,QAAQ,oBAAoB,MAAM,QAAQ,WAAW,IAAI,KAAK,GAAG,MAAM;AAAA,QACvE,OAAO,oBAAoB,MAAM,QAAQ,WAAW,IAAI,KAAK,GAAG,KAAK;AAAA,QACrE,SAAS,IAAI,UAAU;AACrB,cAAI,CAAC,QAAQ,WAAW,IAAI,KAAK,GAAG,OAAO;AACzC,kBAAM,gBAAgB,mBAAA;AACtB,mBAAO,cAAA;AAAA,UACT;AACA,iBAAO,QAAQ,WAAW,IAAI,KAAK,EAAE,QAAQ,GAAG,KAAK;AAAA,QACvD;AAAA,QACA,SAAS,IAAI,UAAU,YAAY,QAAQ,GAAG,KAAK;AAAA,QACnD,OAAO,MAAM;AACX,gBAAMA,SAAQ,QAAQ,WAAW,IAAI,KAAK;AAC1C,cAAIA,QAAO,kBAAkB;AAC3B,gBAAI;AACF,cAAAA,OAAM,iBAAiB,MAAM,IAAI,aAAa,8BAA8B,YAAY,CAAC;AAAA,YAC3F,UAAA;AACE,cAAAA,OAAM,mBAAmB;AAAA,YAC3B;AAAA,UACF;AACA,6BAAmB,SAAS,IAAI,KAAK;AAAA,QACvC;AAAA,MAAA;AAEF,YAAM,mBAAmB,QAAQ,QAAQ,QAAQ,mBAAmB,IAAI,KAAK,CAAC,EAAE,KAAK,MAAM,WAAW;AACtG,aAAO,OAAO,kBAAkB,WAAW;AAC3C,aAAO,iBAAiB,kBAAkB;AAAA,QACxC,MAAM,EAAE,YAAY,MAAM,OAAO,iBAAiB,KAAK,KAAK,gBAAgB,EAAA;AAAA,QAC5E,OAAO,EAAE,YAAY,MAAM,OAAO,iBAAiB,MAAM,KAAK,gBAAgB,EAAA;AAAA,QAC9E,SAAS,EAAE,YAAY,MAAM,OAAO,iBAAiB,QAAQ,KAAK,gBAAgB,EAAA;AAAA,MAAE,CACrF;AACD,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACF,CAAC;AACM,MAAM,eAAe,mBAAmB,eAAA;AACf,mBAAmB,eAAe;AAAA,EAChE,MAAM;AAAA;AAAA,EAEN,eAAe;AACjB,CAAC;AACD,SAAS,oBAAoB,QAAQ;AACnC,SAAO,SAAS;AAAA,IACd,MAAM;AACJ,aAAO,UAAU;AAAA,IACnB;AAAA,IACA,IAAI,OAAO;AACT,YAAM,OAAO,OAAA;AACb,UAAI,MAAM;AACR,aAAK,QAAQ;AAAA,MACf;AAAA,IACF;AAAA,EAAA,CACD;AACH;AACA,SAAS,iBAAiB,cAAc,SAAS;AAC/C,MAAI,OAAO,iBAAiB,UAAU;AACpC,WAAO;AAAA,EACT;AACA,MAAI,OAAO,iBAAiB,YAAY,iBAAiB,MAAM;AAC7D,WAAO;AAAA,EACT;AACA,MAAI,OAAO,iBAAiB,cAAc,OAAO,YAAY,YAAY;AACvE,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAiDA,SAAS,mBAAmB,SAAS,KAAK;AACxC,MAAI,OAAO,QAAQ,QAAQ,MAAM;AAC/B,YAAQ,QAAQ,KAAK,GAAG,IAAI;AAAA,EAC9B;AACA,MAAI,OAAO,QAAQ,QAAQ,SAAS;AAClC,YAAQ,QAAQ,QAAQ,GAAG,IAAI;AAAA,EACjC;AACA,MAAI,QAAQ,WAAW,GAAG,GAAG;AAC3B,YAAQ,WAAW,GAAG,EAAE,KAAK,QAAQ,MAAM,QAAQ,WAAW,GAAG,EAAE,SAAA,CAAU;AAC7E,YAAQ,WAAW,GAAG,EAAE,MAAM,QAAQ;AAItC,YAAQ,WAAW,GAAG,EAAE,OAAO,QAAQ;AACvC,YAAQ,WAAW,GAAG,EAAE,qBAAqB;AAAA,EAC/C;AACA,MAAI,OAAO,QAAQ,oBAAoB;AACrC,YAAQ,mBAAmB,GAAG,IAAI;AAAA,EACpC;AACF;AACA,SAAS,KAAK,KAAK,MAAM;AACvB,QAAM,SAAS,CAAA;AACf,aAAW,OAAO,MAAM;AACtB,WAAO,GAAG,IAAI,IAAI,GAAG;AAAA,EACvB;AACA,SAAO;AACT;AACA,SAAS,eAAe,SAAS,KAAK,UAAU,SAAS,mBAAmB;AAC1E,UAAQ,QAAQ,QAAQ,GAAG,MAAM;AACjC,QAAM,yBAAyB,QAAQ,kBAAkB;AACzD,QAAM,UAAgC,CAAC,YAAY,aAAa,CAAC,QAAQ,aAAa,uBAAuB,IAAI,WAAW,CAAC,UAAU,aAAa;AAClJ,UAAM,QAAQ,SAAS,WAAW,uBAAuB,EAAE,IAAI,GAAG;AAClE,QAAI,OAAO;AACT,aAAO;AAAA,IACT;AACA,UAAM,UAAU,QAAQ,QAAA,EAAU,KAAK,MAAM,SAAS,eAAe,MAAM,SAAS,UAAU,QAAQ,CAAC,CAAC;AACxG,aAAS,WAAW,uBAAuB,EAAE,IAAI,KAAK,OAAO;AAC7D,WAAO;AAAA,EACT;AACA,QAAM,OAAO,QAAQ,OAAO,MAAM;AAClC,QAAM,gBAAgB,sBAAsB;AAC5C,QAAM,wBAAwB,QAAQ,KAAK,oBAAoB,OAAO,SAAS;AAC7E,QAAI,CAAC,QAAQ,KAAK,SAAS,GAAG,GAAG;AAC/B,YAAM,UAAU,QAAQ,EAAE,OAAO,gBAAgB;AAAA,IACnD;AAAA,EACF,CAAC;AACD,QAAM,YAAY;AAAA,IAChB,MAAM,KAAK,gBAAgB,oBAAoB,QAAQ,SAAS;AAAA,IAChE,SAAwD,SAAS,MAAM,UAAU,OAAO,UAAU,SAAS;AAAA,IAC3G,OAAO,MAAM,QAAQ,QAAQ,SAAS,GAAG;AAAA,IACzC,QAAQ,WAAW,MAAM;AAAA,IACzB,SAAS,IAAI,SAAS;AACpB,YAAM,CAAC,OAAO,WAAW,MAAM,IAAI;AACnC,YAAM,OAAO,SAAS,aAAa,UAAU,OAAO,UAAU,WAAW,QAAQ,CAAA;AAIjF,UAAI,QAAQ,mBAAmB,GAAG,GAAG;AACnC,aAAK,KAAK,UAAU,QAAQ,YAAY,SAAS;AAC/C,iBAAO,QAAQ,mBAAmB,GAAG;AAAA,QACvC;AAAA,MACF;AAC2E;AACzE,cAAM,aAAa,gBAAgB,OAAO,KAAK,aAAa,QAAQ,cAAc,KAAK,SAAS,EAAE,OAAO,KAAK,SAAS,kBAAkB;AACzI,YAAI,eAAe,QAAQ;AACzB,kBAAQ,QAAQ,KAAK,GAAG,IAAI,UAAU,KAAK,QAAQ;AACnD,oBAAU,MAAM,QAAQ;AACxB,oBAAU,OAAO,QAAQ;AACzB,iBAAO,QAAQ,QAAQ,UAAU;AAAA,QACnC;AAAA,MACF;AAIA,UAAI,UAAU,kBAAkB;AAC9B,kBAAU,iBAAiB,MAAM,IAAI,aAAa,gDAAgD,YAAY,CAAC;AAAA,MACjH;AACA,gBAAU,mBAAmB,IAAI,gBAAA;AACjC,gBAAU,OAAO,QAAQ;AACzB,YAAM,oBAAoB,IAAI,gBAAA;AAC9B,YAAM,UAAU,IAAI;AAAA,QAClB,CAAC,SAAS,WAAW;AACnB,cAAI;AACF,kBAAM,UAAU,KAAK,WAAW,QAAQ;AACxC,kBAAM,eAAe,kBAAkB,CAAC,UAAU,kBAAkB,QAAQ,MAAM,MAAM,GAAG,kBAAkB,QAAQ,OAAO;AAC5H,gBAAI,aAAa,SAAS;AACxB,oBAAM,SAAS,aAAa;AAC5B,qBAAO,kBAAkB,QAAQ,SAAS,IAAI,aAAa,OAAO,UAAU,SAAS,GAAG,YAAY,CAAC;AACrG;AAAA,YACF;AACA,yBAAa,iBAAiB,SAAS,MAAM;AAC3C,oBAAM,SAAS,aAAa;AAC5B,qBAAO,kBAAkB,QAAQ,SAAS,IAAI,aAAa,OAAO,UAAU,SAAS,GAAG,YAAY,CAAC;AAAA,YACvG,GAAG,EAAE,MAAM,MAAM,QAAQ,kBAAkB,QAAQ;AACnD,mBAAO,QAAQ,QAAQ,QAAQ,SAAS,EAAE,QAAQ,aAAA,CAAc,CAAC,EAAE,KAAK,SAAS,MAAM;AAAA,UACzF,SAAS,KAAK;AACZ,mBAAO,GAAG;AAAA,UACZ;AAAA,QACF;AAAA,MAAA,EACA,KAAK,OAAO,YAAY;AACxB,YAAI,QAAQ,mBAAmB,GAAG,MAAM,SAAS;AAC/C;AAAA,QACF;AACA,YAAI,SAAS;AACb,YAAI,QAAQ,WAAW;AACrB,mBAAS,MAAM,QAAQ,UAAU,OAAO;AAAA,QAC1C;AACA,YAAI,QAAQ,MAAM;AAChB,mBAAS,KAAK,QAAQ,QAAQ,IAAI;AAAA,QACpC;AAMA,gBAAQ,QAAQ,KAAK,GAAG,IAAI;AAC5B,kBAAU,KAAK,QAAQ;AACvB,kBAAU,MAAM,QAAQ;AACxB,kBAAU,OAAO,QAAQ;AAAA,MAC3B,CAAC,EAAE,MAAM,CAAC,UAAU;AAClB,YAAI,QAAQ,mBAAmB,GAAG,MAAM,SAAS;AAC/C,iBAAO,QAAQ,mBAAmB,GAAG;AAAA,QACvC;AACA,YAAI,UAAU,kBAAkB,OAAO,SAAS;AAC9C,iBAAO,QAAQ,mBAAmB,GAAG;AAAA,QACvC;AACA,YAAI,OAAO,iBAAiB,eAAe,iBAAiB,gBAAgB,MAAM,SAAS,cAAc;AACvG,oBAAU,OAAO,QAAQ;AACzB,iBAAO,QAAQ,mBAAmB,GAAG;AAAA,QACvC;AACA,kBAAU,MAAM,QAAQ,YAAY,KAAK;AACzC,kBAAU,KAAK,QAAQ,MAAM,QAAQ,SAAS;AAC9C,kBAAU,OAAO,QAAQ;AAAA,MAC3B,CAAC,EAAE,QAAQ,MAAM;AACf,0BAAkB,MAAA;AAClB,YAAI,QAAQ,mBAAmB,GAAG,MAAM,SAAS;AAI/C,iBAAO,QAAQ,mBAAmB,GAAG;AAAA,QACvC;AAAA,MACF,CAAC;AACD,cAAQ,mBAAmB,GAAG,IAAI;AAClC,aAAO,QAAQ,mBAAmB,GAAG;AAAA,IACvC;AAAA,IACA,UAAU,SAAS,IAAI,SAAS,UAAU,QAAQ,GAAG,IAAI,GAAG,GAAG,EAAE,SAAS,MAAM;AAAA,IAChF,UAAU,QAAQ;AAAA,IAClB,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAyD;AAAA,IACzD,MAAM,MAAM;AACV,4BAAA;AACA,UAAI,QAAQ,WAAW,GAAG,GAAG,OAAO;AAClC,gBAAQ,WAAW,GAAG,EAAE,QAAQ;AAAA,MAClC;AACA,UAAuB,CAAC,wBAAwB;AAC9C,iBAAS,MAAM;AACb,cAAI,CAAC,QAAQ,WAAW,GAAG,GAAG,OAAO;AACnC,+BAAmB,SAAS,GAAG;AAC/B,sBAAU,UAAU,MAAM,QAAQ,QAAA;AAAA,UACpC;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EAAA;AAEF,SAAO;AACT;AACA,MAAM,aAAa,MAAM;AACzB,MAAM,uBAAuB,CAAC,KAAK,SAAS,QAAQ;AAClD,MAAI,QAAQ,aAAa;AACvB,WAAO,QAAQ,QAAQ,KAAK,GAAG;AAAA,EACjC;AACA,MAAI,IAAI,UAAU,oBAAoB,IAAI,UAAU,gBAAgB;AAClE,WAAO,QAAQ,OAAO,KAAK,GAAG;AAAA,EAChC;AACF;AASA,SAAS,kBAAkB,SAAS,eAAe,SAAS;AAC1D,QAAM,OAAO,QAAQ,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,MAAI,OAAO,YAAY,YAAY,WAAW,GAAG;AAC/C,UAAM,gBAAgB,YAAY,UAAU,OAAO;AACnD,QAAI,eAAe;AACjB,WAAK,KAAK,aAAa;AAAA,IACzB;AAAA,EACF;AACA,MAAI,YAAY,KAAK;AACnB,WAAO,YAAY,IAAI,IAAI;AAAA,EAC7B;AACA,QAAM,aAAa,IAAI,gBAAA;AACvB,aAAW,OAAO,MAAM;AACtB,QAAI,IAAI,SAAS;AACf,YAAM,SAAS,IAAI,UAAU,IAAI,aAAa,WAAW,YAAY;AACrE,UAAI;AACF,mBAAW,MAAM,MAAM;AAAA,MACzB,QAAQ;AACN,mBAAW,MAAA;AAAA,MACb;AACA,aAAO,WAAW;AAAA,IACpB;AAAA,EACF;AACA,QAAM,UAAU,MAAM;AACpB,UAAM,gBAAgB,KAAK,KAAK,CAAC,MAAM,EAAE,OAAO;AAChD,UAAM,SAAS,eAAe,UAAU,IAAI,aAAa,WAAW,YAAY;AAChF,QAAI;AACF,iBAAW,MAAM,MAAM;AAAA,IACzB,QAAQ;AACN,iBAAW,MAAA;AAAA,IACb;AAAA,EACF;AACA,aAAW,OAAO,MAAM;AACtB,QAAI,mBAAmB,SAAS,SAAS,EAAE,MAAM,MAAM,QAAQ,eAAe;AAAA,EAChF;AACA,SAAO,WAAW;AACpB;ACnhBO,SAAS,gBAAgB,SAAS;AAIvC,cAAY,WAAA;AACZ,SAAO,QAAQ,YAAY;AAC7B;AA2BO,SAAS,kBAAkB;AAIhC,SAAO,gBAAA,GAAmB,UAAU,WAAW;AACjD;ACpCA,SAAS,uBAAuB,MAAM;AACpC,QAAM,WAAW;AAAA,IACf,QAAQ,KAAK,MAAM,GAAG,iBAAiB;AAAA,IACvC,QAAQ,KAAK,OAAO;AAAA,EAAA;AAEtB,aAAW,QAAQ,CAAC,KAAK,SAAS,KAAK,MAAM,GAAG;AAC9C,UAAM,MAAM,QAAQ,IAAI;AACxB,QAAI,CAAC,KAAK;AACR;AAAA,IACF;AACA,UAAM,YAAY,CAAA;AAClB,eAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,gBAAU,QAAQ,GAAG,CAAC,IAAI,QAAQ,KAAK;AAAA,IACzC;AACA,aAAS,KAAK,SAAS;AAAA,EACzB;AACA,MAAI,KAAK,MAAM;AACb,UAAM,QAAQ,QAAQ,KAAK,IAAI;AAC/B,QAAI,CAAC,OAAO;AACV,eAAS,KAAK,KAAK,KAAK,CAAC;AAAA,IAC3B,WAAW,iBAAiB,aAAa;AACvC,eAAS,KAAK,KAAK,OAAO,YAAY,CAAC,GAAG,IAAI,WAAW,KAAK,EAAE,QAAA,CAAS,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,SAAA,CAAU,CAAC,CAAC,CAAC,CAAC;AAAA,IACjH,WAAW,iBAAiB,UAAU;AACpC,YAAM,UAAU,CAAA;AAChB,iBAAWA,UAAS,MAAM,WAAW;AACnC,cAAM,CAAC,KAAK,GAAG,IAAIA;AACnB,gBAAQ,KAAK,CAAC,KAAK,eAAe,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,YAAY,KAAK,GAAG,CAAC;AAAA,MAC/F;AACA,eAAS,KAAK,KAAK,OAAO,CAAC;AAAA,IAC7B,WAAWC,qCAAc,KAAK,GAAG;AAC/B,eAAS,KAAK,KAAK,SAAS,KAAK,CAAC,CAAC;AAAA,IACrC,OAAO;AACL,UAAI;AACF,iBAAS,KAAK,KAAK,KAAK,CAAC;AAAA,MAC3B,QAAQ;AACN,gBAAQ,KAAK,kCAAkC,KAAK;AAAA,MACtD;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AACO,MAAM,iBAAiB,2BAA2B;AAAA,EACvD,MAAM;AAAA,EACN,QAAQ,UAAU,IAAI;AACpB,aAAS,UAAU,SAAS,MAAM,MAAM;AACtC,YAAM,CAAC,OAAO,CAAA,GAAI,OAAO,IAAI,OAAO,SAAS,WAAW,CAAC,CAAA,GAAI,IAAI,IAAI,CAAC,MAAM,IAAI;AAChF,YAAM,iBAAiB,OAAO,YAAY,aAAa,QAAQ,IAAI,IAAI;AACvE,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA,MAAAC;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MAAA,IACD;AAAA,QACF,GAAG,OAAO,YAAY,aAAa,CAAA,IAAK;AAAA,QACxC,GAAG;AAAA,QACH,GAAG,OAAO,YAAY,aAAa,iBAAiB,CAAA;AAAA,MAAC;AAEvD,YAAM,WAAW,SAAS,MAAM,QAAQ,OAAO,CAAC;AAChD,YAAM,MAAM,SAAS,MAAM,QAAQ,aAAa,GAAG,KAAK,OAAO,KAAK,CAAC,SAAS,OAAO,SAAS,UAAU,WAAW,SAAS,QAAQ,IAAI,GAAG,uBAAuB,YAAY,CAAC,CAAC,CAAC;AACjL,UAAI,CAAC,aAAa,WAAW,OAAO,SAAS,UAAU,aAAa,SAAS,MAAM,CAAC,MAAM,OAAO,SAAS,MAAM,CAAC,MAAM,MAAM;AAC3H,cAAM,IAAI,MAAM,6DAA6D;AAAA,MAC/E;AACA,YAAM,gBAAgB,SAAS;AAAA,QAC7B,GAAG;AAAA,QACH,GAAG;AAAA,QACH,OAAO,OAAO,aAAa,UAAU,YAAY,SAAS,aAAa;AAAA,MAAA,CACxE;AACD,YAAM,oBAAoB;AAAA,QACxB;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA,MAAAA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,iBAAiB,QAAQ,CAAA,IAAK,CAAC,GAAG,gBAAgB,CAAA,GAAI,aAAa;AAAA,MAAA;AAK5E,UAAI,iBAAiB,OAAO;AAE1B,0BAAkB,sBAAsB;AAAA,MAC1C;AAQA,YAAM,YAAY,aAAa,KAAK,CAAC,GAAG,EAAE,aAAa;AACrD,YAAI,UAAU,aAAa,UAAU,WAAW;AAChD,YAA0B,CAAC,aAAa,QAAQ;AAC9C,gBAAM,eAAe,OAAO,SAAS,UAAU,YAAY,SAAS,MAAM,CAAC,MAAM,QAAQ,CAAC,QAAQ,aAAa,OAAO,KAAK,QAAQ,aAAa,OAAO,EAAE,CAAC,MAAM;AAChK,cAAI,cAAc;AAChB,sBAAU,gBAAA;AAAA,UACZ;AAAA,QACF;AACA,eAAO,QAAQ,SAAS,OAAO,EAAE,QAAQ,GAAG,eAAe;AAAA,MAC7D,GAAG,iBAAiB;AACpB,aAAO;AAAA,IACT;AACA,WAAO;AAAA,EACT;AACF,CAAC;AACuB,eAAe,eAAA;AACX,eAAe,eAAe;AAAA,EACxD,MAAM;AAAA;AAAA,EAEN,eAAe;AACjB,CAAC;AC9HD,MAAM,SAAS,iCAAiB;AAAA,EAC9B,MAAM;AAAA,EACN,MAAM,SAAS;AACb,UAAM,QAAQ,YAAW;AACzB,YAAQ,OAAO,IAAI,KAAK;AACxB,mBAAe,KAAK;AACpB,QAAI,QAAQ,WAAW,QAAQ,QAAQ,OAAO;AAC5C,YAAM,MAAM,QAAQ,QAAQ,QAAQ;AAAA,IACtC;AACA,WAAO;AAAA,MACL,SAAS;AAAA,QACP;AAAA,MACR;AAAA,IACA;AAAA,EACE;AAAA,EACA,OAAO;AAAA,IACL,iBAAiB;AACf,YAAM,UAAU,WAAU;AAC1B,cAAQ,QAAQ,QAAQ,MAAM,QAAQ,MAAM,EAAE,MAAM;AACpD,qBAAe,MAAM;AAAA,IACvB;AAAA,EACJ;AACA,CAAC;ACvBD,MAAA,gEAAe,iCAAiB;AAAA,EAC9B,MAAM;AACR,CAAC;ACED,MAAA,UAAe;AAAA,EACbC;AAAAA,EACA;AAAA,EACAC;AAAAA,EACA;AAAA,EACAC;AAAAA,EACA;AACF;ACZA,MAAA,UAAe;AAAA,EACb,MAAM,qBAAqB,MAAM,OAAO,0BAAwE,EAAE,KAAK,OAAK,EAAE,WAAW,CAAC,CAAC;AAAA,EAC3I,SAAS,qBAAqB,MAAM,OAAO,6BAA2E,EAAE,KAAK,OAAK,EAAE,WAAW,CAAC,CAAC;AACnJ;ACKA,MAAM,oBAAoB;AAC1B,MAAM,eAAe,gBAAgB;AAAA,EACnC,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aAAa;AAAA,EAAA;AAAA,EAEf,MAAM,OAAO,SAAS;AACpB,WAAO,MAAM,EAAE,QAAQ,MAAM,IAAI,GAAG,MAAM,aAAa,QAAQ,KAAK;AAAA,EACtE;AACF,CAAC;AACD,MAAM,kBAAkB;AAAA,EACtB,MAAM;AAAA,IACJ,MAAM,CAAC,QAAQ,SAAS,MAAM;AAAA,IAC9B,SAAS;AAAA,EAAA;AAAA,EAEX,UAAU;AAAA,IACR,MAAM,CAAC,QAAQ,MAAM;AAAA,IACrB,SAAS;AAAA,EAAA;AAEb;AACA,MAAA,qBAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,EACP,MAAM,OAAO,SAAS;AACpB,UAAM,UAAU,WAAA;AAChB,UAAM,gBAAgB,OAAO,eAAe;AAC5C,UAAM,sBAAsB,CAAC,iBAAiB,kBAAkB7C,WAAA;AAChE,UAAM,QAAQ,sBAAsB8C,SAAA,IAAsB;AAC1D,UAAM,SAAS,SAAS,MAAM;AAC5B,UAAI,UAAU,MAAM,MAAM,IAAI,KAAK,OAAO,KAAK,UAAU,kBAAkB,OAAO,IAAI,EAAE,aAAa;AACrG,UAAI,WAAW,EAAE,WAAW,UAAU;AAIpC,YAAI,MAAM,UAAU;AAClB,oBAAU,MAAM,MAAM,QAAQ;AAAA,QAChC;AAAA,MACF;AACA,aAAO;AAAA,IACT,CAAC;AACD,UAAM,YAAY,WAAA;AAClB,YAAQ,OAAO,EAAE,WAAW;AAC5B,UAAM,OAAO,QAAQ,eAAA;AAWrB,QAAI;AACJ,WAAO,MAAM;AACX,YAAM,YAAY,CAAC,CAAC,OAAO,SAAS,OAAO,SAAS;AACpD,YAAM,gBAAgB,aAAa,CAAC,EAAE,OAAO,KAAK,oBAAoBC;AACtE,YAAM,kBAAkB,iBAAiB,sBAAsB;AAAA,QAC7D,OAAO,KAAK;AAAA,QACZA;AAAAA,QACA;AAAA,UACE,gBAAgB;AACd,oBAAQ,oBAAoB,IAAI,IAAI,QAAQ,CAAC,YAAY;AACvD,sBAAQ,mBAAmB,IAAI;AAAA,YACjC,CAAC;AAAA,UACH;AAAA,UACA,eAAe;AACb,oBAAQ,mBAAmB,IAAA;AAC3B,mBAAO,QAAQ,mBAAmB;AAClC,mBAAO,QAAQ,oBAAoB;AAAA,UACrC;AAAA,QAAA;AAAA,MACF,CACD;AACD,YAAM,2BAA2B;AACjC,mBAAa,OAAO;AACpB,aAAO,kBAAkB,iBAAiB;AAAA,QACxC,SAAS,MAAM;AAAA,UACb;AAAA,UACA;AAAA,YACE,aAAa;AAAA,YACb,WAAW,YAAY;AACrB,oBAAM,SAAS,IAAI;AAAA,YACrB;AAAA,UAAA;AAAA,UAEF;AAAA,YACE,SAAS,MAAM;AAAA,cACb;AAAA,cACA;AAAA,gBACE,aAAa,WAAW,QAAQ,OAAO,MAAM,KAAK,eAAe,CAAA,GAAI,EAAE,KAAK,UAAA,CAAW;AAAA,gBACvF,KAAK,OAAO,SAAS;AAAA,gBACrB,MAAM,OAAO;AAAA,gBACb,eAAe,CAAC,MAAM;AAAA,gBACtB,sBAAsB,CAAC,SAAS;AAC9B,yBAAO,SAAS,4BAA4B,SAAS,OAAO;AAAA,gBAC9D;AAAA,gBACA;AAAA,cAAA;AAAA,cAEF,QAAQ;AAAA,YAAA;AAAA,UACV;AAAA,QACF;AAAA,MACF,CACD,EAAE,QAAA;AAAA,IACL;AAAA,EACF;AACF,CAAC;AACD,MAAM,iBAAiB,gBAAgB;AAAA,EACrC,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM,CAAC,QAAQ,OAAO;AAAA,IAAA;AAAA,IAExB,aAAa;AAAA,MACX,MAAM;AAAA,IAAA;AAAA,IAER,eAAe;AAAA,MACb,MAAM;AAAA,IAAA;AAAA,IAER,eAAe;AAAA,MACb,MAAM;AAAA,IAAA;AAAA,IAER,sBAAsB;AAAA,MACpB,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,EACZ;AAAA,EAEF,MAAM,OAAO,SAAS;AACpB,UAAM,OAAO,MAAM;AACnB,QAAI,MAAM,eAAe;AACvB,cAAQ,kBAAkB;AAAA;AAAA,QAExB,WAAW,CAAC,UAAU,SAAS,SAAS,UAAU,MAAM,KAAK,UAAU,kBAAkB,MAAM,IAAI,EAAE,aAAa;AAAA,MAAA,CACnH;AAAA,IACH;AACA,UAAM,gBAAgB,OAAO,eAAe;AAC5C,UAAM,sBAAsB,iBAAiB,kBAAkB/C,WAAA;AAC/D,QAAI,qBAAqB;AACvB,YAAM,iBAAiB8C,SAAA;AACvB,YAAM,qBAAqB,CAAA;AAC3B,iBAAW,QAAQ,gBAAgB;AACjC,cAAM,MAAM;AACZ,eAAO,eAAe,oBAAoB,KAAK;AAAA,UAC7C,YAAY;AAAA,UACZ,KAAK,MAAM;AACT,mBAAO,MAAM,qBAAqB,MAAM,IAAI,IAAI,eAAe,GAAG,IAAI,cAAc,GAAG;AAAA,UACzF;AAAA,QAAA,CACD;AAAA,MACH;AACA,cAAQ,iBAAiB,gBAAgB,kBAAkB,CAAC;AAAA,IAC9D;AAeA,WAAO,MAAM;AACX,UAAI,CAAC,QAAQ,OAAO,SAAS,YAAY,EAAE,QAAQ,UAAU;AAK3D,eAAO,QAAQ,MAAM,UAAA;AAAA,MACvB;AASA,aAAO;AAAA,QACL;AAAA,QACA,EAAE,KAAK,MAAM,aAAa,MAAM,aAAa,KAAA;AAAA,QAC7C,QAAQ;AAAA,MAAA;AAAA,IAEZ;AAAA,EACF;AACF,CAAC;ACrMM,MAAM,sBAAsB,CAAC,OAAO,oBAAoB,gBAAgB;AAAA,EAC7E;AAAA,EACA,OAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM;AAAA,MACN,UAAU;AAAA,IAAA;AAAA,IAEZ,OAAO;AAAA,IACP,UAAU;AAAA,IACV,WAAW;AAAA,IACX,gBAAgB;AAAA,EAAA;AAAA,EAElB,MAAM,OAAO;AACX,UAAM,cAAc,MAAM;AAC1B,UAAM,gBAAgB,MAAM;AAC5B,UAAM,QAAQ,CAAA;AACd,eAAW,OAAO,MAAM,OAAO;AAC7B,aAAO,eAAe,OAAO,KAAK;AAAA,QAChC,KAAK,MAAM,gBAAgB,MAAM,YAAY,MAAM,MAAM,GAAG,IAAI,cAAc,GAAG;AAAA,QACjF,YAAY;AAAA,MAAA,CACb;AAAA,IACH;AACA,YAAQ,iBAAiB,gBAAgB,KAAK,CAAC;AAY/C,WAAO,MAAM;AACX,UAAI,CAAC,MAAM,OAAO;AAChB,eAAO,MAAM;AAAA,MACf;AAKA,aAAO,EAAE,MAAM,OAAO,EAAE,KAAK,MAAM,UAAU;AAAA,IAC/C;AAAA,EACF;AACF,CAAC;AACM,MAAM,gBAAgB,oBAAA;ACtC7B,MAAA,qBAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,MACJ,MAAM;AAAA,IAAA;AAAA,IAER,YAAY;AAAA,MACV,MAAM,CAAC,SAAS,MAAM;AAAA,MACtB,SAAS;AAAA,IAAA;AAAA,IAEX,WAAW;AAAA,MACT,MAAM,CAAC,SAAS,MAAM;AAAA,MACtB,SAAS;AAAA,IAAA;AAAA,IAEX,OAAO;AAAA,MACL,MAAM;AAAA,IAAA;AAAA,IAER,SAAS;AAAA,MACP,MAAM,CAAC,UAAU,MAAM;AAAA,MACvB,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,MAAM,OAAO,EAAE,OAAO,OAAO,UAAU;AACrC,UAAM,UAAU,WAAA;AAChB,UAAM,UAAU,IAAA;AACE,WAAO,iBAAiB,IAAI;AAE9C,WAAO,EAAE,SAAS;AACE,WAAO,kBAAkB,IAAI;AAEpC,YAAQ,eAAA;AA+BrB,WAAO,MAAM;AACX,aAAO,EAAE,YAAY,EAAE,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,GAAG,MAAA,GAAS;AAAA,QACvE,SAA8B,CAAC,eAAe;AAC5C,iBAAO,EAAE,UAAU,EAAE,aAAa,QAAQ;AAAA,YACxC,UAAU;AACR,qBAAO,EAAE,eAAe;AAAA,gBACtB,OAAO,MAAM,UAAU,cAAc,MAAM,SAAS,UAAU,IAAI,WAAW;AAAA,gBAC7E,OAAO,WAAW;AAAA,gBAClB,UAAU;AAAA,cAAA,CACX;AAAA,YACH;AAAA,UAAA,CACD;AAAA,QACH;AAAA,MAyGA,CACD;AAAA,IACH;AAAA,EACF;AACF,CAAC;AAuBD,SAAS,cAAc,MAAM,MAAM;AACjC,QAAM,cAAc,KAAK,IAAI;AAC7B,SAAO,YAAY,WAAW,IAAI,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,UAAU,QAAQ,WAAW;AACvF;;;;;;;;;;;;;qBC1NE,CAEa,GAAAE,QAAAC,UAAA,aAAA;;;;;UADXC,YAAY,mBAAA;AAAA;;;;;;;;;;;;;;;;;;;;ACKhB,UAAM,QAAQ;AAGd,UAAM,SAAS,MAAM;AAQrB,UAAM,SAAS,OAAO,OAAO,cAAc,GAAG;AAC9C,UAAM,QAAQ,WAAW;AACzB,UAAM,aAAa,OAAO,kBAAkB,QAAQ,mBAAmB;AACvE,UAAM,cAAc,OAAO,WAAW,OAAO,SAAA;AAC7C,UAAM,QAAuF;AAC7F,UAAM,YAAY,qBAAqB,MAAM,OAAO,+BAAiB,CAAC;AACtE,UAAM,SAAS,qBAAqB,MAAM,OAAO,+BAAiB,CAAC;AACnE,UAAM,gBAAgB,QAAQ,YAAY;;0EAxBfC,MAAA,MAAA,GAAM,YAAEA,mBAAU,YAAcA,MAAA,MAAA,kBAAuBA,MAAA,UAAA,GAAU,aAAEA,MAAA,WAAA,GAAW,OAAEA,MAAA,KAAA,KAAK,MAAA,GAAA,MAAA,OAAA,CAAA;AAAA;;;;;;;;;;;;;AC2BhH,UAAM,iBAAgJ,MAAM;AAC5J,UAAM,UAAU,WAAA;AACE,YAAQ,eAAA;AAQO,YAAQ,WAAW;AACpD,UAAM,iBAAiB;AACvB,YAAQ,iBAAiBnD,YAAU;AACnB,YAAQ,MAAM,aAAa,CAAC,UAAU,MAAM,IAAI,CAAC,SAAS,MAAM,GAAG,aAAa,CAAA,CAAE;AAIlG,UAAM,QAAQ,yBAAA;AACd,UAAM,cAAoC,MAAM,SAAS,CAAC,QAAQ,WAAW;AAE7E,aAAS,sBAAsB,KAAK,QAAQ,MAAM;AAChD,YAAM,eAAe,QAAQ,OAAO,OAAO;AAC3C,UAAI,gBAAgB,CAAC,aAAa,gBAAgB;AAChD,YAAI;AACF,uBAAa,KAAK,QAAQ,IAAI;AAAA,QAChC,SAAS,cAAc;AACrB,kBAAQ,MAAM,6CAA6C,YAAY;AAAA,QACzE;AAAA,MACF;AAAA,IACF;AACA,oBAAgB,CAAC,KAAK,QAAQ,SAAS;AACrC,cAAQ,MAAM,SAAS,aAAa,KAAK,QAAQ,IAAI,GAAG,MAAM,CAAC,cAAc,QAAQ,MAAM,oCAAoC,SAAS,CAAC;AAM7D;AAC1E,cAAM,IAAI,QAAQ,eAAe,MAAM,UAAU,GAAG,CAAC;AACrD,yBAAiB,MAAM,CAAC;AACxB,8BAAsB,KAAK,QAAQ,IAAI;AACvC,eAAO;AAAA,MACT;AAAA,IACF,CAAC;AACD,UAAM,gBAAsC,QAAQ,WAAW;;;iBAvE7D,MAeW;cAdEmD,MAAA,WAAA,GAAW;;qBAETA,MAAA,KAAA,GAAK;AACf,kBAAAC,mBAAAD,MAAAE,WAAA,GAAA,EAAA,OAAOF,MAAA,KAAA,EAAA,GAAK,MAAA,OAAA,CAAA;AAAA,qBAGFA,MAAA,aAAA,GAAa;AACvB,kBAAAC,mBAAAD,MAAA,cAAA,GAAA,EAAA,SAASA,MAAA,aAAA,EAAA,GAAa,MAAA,OAAA,CAAA;AAAA,qBAIZA,MAAA,cAAA,GAAc;sEADpBA,MAAA,cAAA,CAAc,GAAA,MAAA,IAAA,GAAA,OAAA;AAAA;;;;;;;;;;;;;;;ACHzB,IAAI;AACoB;AACtB,UAAQ,eAAe,oBAAoB,YAAY;AACrD,UAAM,SAAS,UAAUG,SAAa;AACtC,UAAM,OAAO,cAAc,EAAE,QAAQ,YAAY;AACjD,QAAI;AACF,YAAM,aAAa,MAAM,OAAO;AAChC,YAAM,KAAK,MAAM,SAAS,eAAe,MAAM;AAAA,IACjD,SAAS,OAAO;AACd,YAAM,KAAK,MAAM,SAAS,aAAa,KAAK;AAC5C,WAAK,QAAQ,UAAU,YAAY,KAAK;AAAA,IAC1C;AACA,QAAI,eAAe,WAAW,iBAAiB,KAAK,WAAW,kBAAkB;AAC/E,YAAM,IAAI,MAAM,iBAAiB;AAAA,IACnC;AACA,WAAO;AAAA,EACT;AACF;AAqDA,MAAA,iBAAgB,CAAC,eAAe,MAAM,UAAU;","names":["plugin","provide","plugins","useRoute","parseURL","encodePath","createH3Error","routeRulesMatcher","parseQuery","hash","stringifyQuery","value","location","re","matcher","name","normalizeSlot","matchedRoute","href","replace","failure","resolve","toArray","accountsuf9bCUy96pdO5sDhtrw37BAVSmLjFm_wqAF7eLybYiMMeta","apps4N_8fM_HAmoSan_tqUVvBfSBVgSnYl__ZGdiSQQbrUQMeta","calltranslateyLuYKm0ZK9L21n5R8uZzUWg2Wz5JWCfqvY_vv13cK8wMeta","codetIaWhqabBnZ9rT9cLF_86EHpOqJs8Du_S5u8tCLN2VcMeta","dashboardZNLB5_JiEysWIj_2b5J2hURJ9xLEtnlF8cxz1kh1xgsMeta","deviceATlhZZ6PiEtU_HD4qeo7Tbnfw0N2ei8nBzbk1UCWcQAMeta","factoryVZatTEN3EjRZOxVm33XY8Gdq71RZ1D_jDUKUf4F_lWIMeta","globalconfignq5luXkq_Ykd2myATDZ7keYzKoRwp_opATj4sH705EcMeta","mcpconfigrFWADY1KKVchc3b_tLzB_4GNdXlzlJnoCP2vK_qS9IgMeta","meettemplates3Nsj0ut16S4eIXd5Lv9nVQD0XusUnq08ZaalLdE0O7IMeta","productWbWlgO8dvY_vVRFylKRGjH7HyHR9RFTvzFbP8equczwMeta","serviceconfig6Gc5qzSDJTYZMnqPqZYds2OIokXbSz4H6XhPAg8iN0EMeta","statlogrR6XJDIk_e8P5NJMugR6upS2Ifr1zDMQogeCNYwz5MQMeta","usersfLETUnFtHTvnQYJLMbrQA_IXzpwNp3NUerB3_nZMVvkMeta","indexcEvFhP__rFdFTbvBFnPFkHCn7KMBOSKrrLe98tJlrc4Meta","isArray","global","isRef","START_LOCATION","__executeAsync","entry","isPlainObject","pick","payload_plugin_vfxyM1biN59FP0Nnr5zjaaXnrjmDUAMUDHGB1jIAoxw","router_MhK3qgJ0WYuBDV9Bc2R15ebVnAkYpW_sO8RSA5WFQ8Q","plugin_vue3_vUOR2Yexyy_5GDuyJio1AxmO0eM0omT0mn6x_agTjzA","useVueRouterRoute","defaultLayoutTransition","_push","_parent","_createVNode","_unref","_ssrRenderComponent","ErrorComponent","RootComponent"],"sources":["../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Ffetch.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fglobal-polyfills.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fnuxt.config.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/nuxt.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/injections.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/utils.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/router.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/error.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froute-rules.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/manifest.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/payload.js","../../../../../.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/island-head.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/dist/useApi-s_02lHjl.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/dist/devtools-DCoWQoU_.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/dist/vue-router.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/vue-router.node.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/utils.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froutes.mjs","../../../../../.pnpm/@vue+shared@3.5.38/node_modules/@vue/shared/dist/shared.cjs.prod.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/utils.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/router.options.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Frouter.options.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/validate.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/middleware/route-rules.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fmiddleware.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fcomponents.islands.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/server-placeholder.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/client-only.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/compiler/runtime/index.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/asyncData.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/ssr.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/fetch.js","../../../../../.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fcomponents.plugin.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fplugins.server.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Flayouts.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-layout.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/route-provider.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/page.js","../../../../../../app/app.vue","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"],"sourcesContent":["import { $fetch } from 'ofetch'\nimport { baseURL } from '#internal/nuxt/paths'\nif (!globalThis.$fetch) {\n globalThis.$fetch = $fetch.create({\n baseURL: baseURL()\n })\n}","\nif (!(\"global\" in globalThis)) {\n globalThis.global = globalThis;\n}","export const appHead = {\"meta\":[{\"charset\":\"utf-8\"},{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],\"link\":[],\"style\":[],\"script\":[],\"noscript\":[],\"title\":\"Yunyan Admin\"}\n\nexport const appBaseURL = \"/\"\n\nexport const appBuildAssetsDir = \"/_nuxt/\"\n\nexport const appCdnURL = \"\"\n\nexport const appLayoutTransition = false\n\nexport const appPageTransition = false\n\nexport const appViewTransition = {\"enabled\":false}\n\nexport const appKeepalive = false\n\nexport const appRootId = \"__nuxt\"\n\nexport const appRootTag = \"div\"\n\nexport const appRootAttrs = {\"id\":\"__nuxt\"}\n\nexport const appTeleportTag = \"div\"\n\nexport const appTeleportId = \"teleports\"\n\nexport const appTeleportAttrs = {\"id\":\"teleports\"}\n\nexport const appSpaLoaderTag = \"div\"\n\nexport const appSpaLoaderAttrs = {\"id\":\"__nuxt-loader\"}\n\nexport const renderJsonPayloads = true\n\nexport const componentIslands = false\n\nexport const payloadExtraction = false\n\nexport const cookieStore = true\n\nexport const appManifest = true\n\nexport const remoteComponentIslands = false\n\nexport const selectiveClient = false\n\nexport const devPagesDir = null\n\nexport const devRootDir = null\n\nexport const devLogs = false\n\nexport const nuxtLinkDefaults = {\"componentName\":\"NuxtLink\",\"prefetch\":true,\"prefetchOn\":{\"visibility\":true}}\n\nexport const asyncDataDefaults = {\"deep\":false}\n\nexport const useStateDefaults = {\"resetOnClear\":false}\n\nexport const fetchDefaults = {}\n\nexport const vueAppRootContainer = '#__nuxt'\n\nexport const viewTransition = false\n\nexport const appId = \"nuxt-app\"\n\nexport const outdatedBuildInterval = 3600000\n\nexport const multiApp = false\n\nexport const chunkErrorEvent = \"vite:preloadError\"\n\nexport const crawlLinks = false\n\nexport const spaLoadingTemplateOutside = true\n\nexport const purgeCachedData = true\n\nexport const granularCachedData = true\n\nexport const pendingWhenIdle = false\n\nexport const alwaysRunFetchOnKeyChange = false\n\nexport const asyncCallHook = true\n\nexport const clientNodePlaceholder = false","import { effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, reactive, shallowReactive } from \"vue\";\nimport { createHooks } from \"hookable\";\nimport { getContext } from \"unctx\";\nimport { appId, asyncCallHook, chunkErrorEvent, multiApp } from \"#build/nuxt.config.mjs\";\nexport function getNuxtAppCtx(id = appId || \"nuxt-app\") {\n return getContext(id, {\n asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server\n });\n}\nexport const NuxtPluginIndicator = \"__nuxt_plugin\";\nexport function createNuxtApp(options) {\n let hydratingCount = 0;\n const nuxtApp = {\n _id: options.id || appId || \"nuxt-app\",\n _scope: effectScope(),\n provide: void 0,\n versions: {\n get nuxt() {\n return __NUXT_VERSION__;\n },\n get vue() {\n return nuxtApp.vueApp.version;\n }\n },\n payload: shallowReactive({\n ...options.ssrContext?.payload || {},\n data: shallowReactive({}),\n state: reactive({}),\n once: /* @__PURE__ */ new Set(),\n _errors: shallowReactive({})\n }),\n static: {\n data: {}\n },\n runWithContext(fn) {\n if (nuxtApp._scope.active && !getCurrentScope()) {\n return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));\n }\n return callWithNuxt(nuxtApp, fn);\n },\n isHydrating: import.meta.client,\n deferHydration() {\n if (!nuxtApp.isHydrating) {\n return () => {\n };\n }\n hydratingCount++;\n let called = false;\n return () => {\n if (called) {\n return;\n }\n called = true;\n hydratingCount--;\n if (hydratingCount === 0) {\n nuxtApp.isHydrating = false;\n return nuxtApp.callHook(\"app:suspense:resolve\");\n }\n };\n },\n _asyncDataPromises: {},\n _asyncData: shallowReactive({}),\n _state: shallowReactive({}),\n _payloadRevivers: {},\n ...options\n };\n if (import.meta.server) {\n nuxtApp.payload.serverRendered = true;\n }\n if (import.meta.server && nuxtApp.ssrContext) {\n nuxtApp.payload.path = nuxtApp.ssrContext.url;\n nuxtApp.ssrContext.nuxt = nuxtApp;\n nuxtApp.ssrContext.payload = nuxtApp.payload;\n nuxtApp.ssrContext.config = {\n public: nuxtApp.ssrContext.runtimeConfig.public,\n app: nuxtApp.ssrContext.runtimeConfig.app\n };\n }\n if (import.meta.client) {\n const __NUXT__ = multiApp ? window.__NUXT__?.[nuxtApp._id] : window.__NUXT__;\n if (__NUXT__) {\n for (const key in __NUXT__) {\n switch (key) {\n case \"data\":\n case \"state\":\n case \"_errors\":\n Object.assign(nuxtApp.payload[key], __NUXT__[key]);\n break;\n default:\n nuxtApp.payload[key] = __NUXT__[key];\n }\n }\n }\n }\n nuxtApp.hooks = createHooks();\n nuxtApp.hook = nuxtApp.hooks.hook;\n if (import.meta.server) {\n const contextCaller = async function(hooks, args) {\n for (const hook of hooks) {\n await nuxtApp.runWithContext(() => hook(...args));\n }\n };\n nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, args);\n } else if (asyncCallHook) {\n const _callHook = nuxtApp.hooks.callHook;\n nuxtApp.hooks.callHook = (name, ...args) => Promise.resolve().then(() => _callHook(name, ...args));\n }\n nuxtApp.callHook = nuxtApp.hooks.callHook;\n nuxtApp.provide = (name, value) => {\n const $name = \"$\" + name;\n defineGetter(nuxtApp, $name, value);\n defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);\n };\n defineGetter(nuxtApp.vueApp, \"$nuxt\", nuxtApp);\n defineGetter(nuxtApp.vueApp.config.globalProperties, \"$nuxt\", nuxtApp);\n if (import.meta.client) {\n if (chunkErrorEvent) {\n window.addEventListener(chunkErrorEvent, (event) => {\n nuxtApp.callHook(\"app:chunkError\", { error: event.payload });\n if (event.payload?.message?.includes(\"Unable to preload CSS\")) {\n event.preventDefault();\n }\n });\n }\n window.useNuxtApp ||= useNuxtApp;\n const unreg = nuxtApp.hook(\"app:error\", (...args) => {\n console.error(\"[nuxt] error caught during app initialization\", ...args);\n });\n nuxtApp.hook(\"app:mounted\", unreg);\n }\n const runtimeConfig = import.meta.server ? options.ssrContext.runtimeConfig : nuxtApp.payload.config;\n nuxtApp.provide(\"config\", import.meta.client && import.meta.dev ? wrappedConfig(runtimeConfig) : runtimeConfig);\n return nuxtApp;\n}\nexport function registerPluginHooks(nuxtApp, plugin) {\n if (plugin.hooks) {\n nuxtApp.hooks.addHooks(plugin.hooks);\n }\n}\nexport async function applyPlugin(nuxtApp, plugin) {\n if (typeof plugin === \"function\") {\n const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};\n if (provide && typeof provide === \"object\") {\n for (const key in provide) {\n nuxtApp.provide(key, provide[key]);\n }\n }\n }\n}\nexport async function applyPlugins(nuxtApp, plugins) {\n const resolvedPlugins = /* @__PURE__ */ new Set();\n const unresolvedPlugins = [];\n const parallels = [];\n let error = void 0;\n let promiseDepth = 0;\n async function executePlugin(plugin) {\n const unresolvedPluginsForThisPlugin = plugin.dependsOn?.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.has(name)) ?? [];\n if (unresolvedPluginsForThisPlugin.length > 0) {\n unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]);\n } else {\n const promise = applyPlugin(nuxtApp, plugin).then(async () => {\n if (plugin._name) {\n resolvedPlugins.add(plugin._name);\n await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {\n if (dependsOn.has(plugin._name)) {\n dependsOn.delete(plugin._name);\n if (dependsOn.size === 0) {\n promiseDepth++;\n await executePlugin(unexecutedPlugin);\n }\n }\n }));\n }\n }).catch((e) => {\n if (!plugin.parallel && !nuxtApp.payload.error) {\n throw e;\n }\n error ||= e;\n });\n if (plugin.parallel) {\n parallels.push(promise);\n } else {\n await promise;\n }\n }\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n registerPluginHooks(nuxtApp, plugin);\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n await executePlugin(plugin);\n }\n await Promise.all(parallels);\n if (promiseDepth) {\n for (let i = 0; i < promiseDepth; i++) {\n await Promise.all(parallels);\n }\n }\n if (error) {\n throw nuxtApp.payload.error || error;\n }\n}\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtPlugin(plugin) {\n if (typeof plugin === \"function\") {\n return plugin;\n }\n const _name = plugin._name || plugin.name;\n delete plugin.name;\n return Object.assign(plugin.setup || (() => {\n }), plugin, { [NuxtPluginIndicator]: true, _name });\n}\nexport const definePayloadPlugin = defineNuxtPlugin;\nexport function isNuxtPlugin(plugin) {\n return typeof plugin === \"function\" && NuxtPluginIndicator in plugin;\n}\nexport function callWithNuxt(nuxt, setup, args) {\n const fn = () => args ? setup(...args) : setup();\n const nuxtAppCtx = getNuxtAppCtx(nuxt._id);\n if (import.meta.server) {\n return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));\n } else {\n nuxtAppCtx.set(nuxt);\n return nuxt.vueApp.runWithContext(fn);\n }\n}\nexport function tryUseNuxtApp(id) {\n let nuxtAppInstance;\n if (hasInjectionContext()) {\n nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;\n }\n nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();\n return nuxtAppInstance || null;\n}\nexport function useNuxtApp(id) {\n const nuxtAppInstance = tryUseNuxtApp(id);\n if (!nuxtAppInstance) {\n if (import.meta.dev) {\n throw new Error(\"[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/4.x/guide/concepts/auto-imports#vue-and-nuxt-composables`.\");\n } else {\n throw new Error(\"[nuxt] instance unavailable\");\n }\n }\n return nuxtAppInstance;\n}\n// @__NO_SIDE_EFFECTS__\nexport function useRuntimeConfig(_event) {\n return useNuxtApp().$config;\n}\nfunction defineGetter(obj, key, val) {\n Object.defineProperty(obj, key, { get: () => val });\n}\nexport function defineAppConfig(config) {\n return config;\n}\nconst loggedKeys = /* @__PURE__ */ new Set();\nfunction wrappedConfig(runtimeConfig) {\n if (!import.meta.dev || import.meta.server) {\n return runtimeConfig;\n }\n const keys = [];\n for (const key in runtimeConfig) {\n keys.push(`\\`${key}\\``);\n }\n const lastKey = keys.pop();\n return new Proxy(runtimeConfig, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p !== \"public\" && !(p in target) && !p.startsWith(\"__v\")) {\n if (!loggedKeys.has(p)) {\n loggedKeys.add(p);\n console.warn(`[nuxt] Could not access \\`${p}\\`. The only available runtime config keys on the client side are ${keys.join(\", \")} and ${lastKey}. See https://nuxt.com/docs/4.x/guide/going-further/runtime-config for more information.`);\n }\n }\n return Reflect.get(target, p, receiver);\n }\n });\n}\n","export const LayoutMetaSymbol = Symbol(\"layout-meta\");\nexport const PageRouteSymbol = Symbol(\"route\");\n","import { captureStackTrace } from \"errx\";\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nconst distURL = import.meta.url.replace(/\\/app\\/.*$/, \"/\");\nexport function getUserTrace() {\n if (!import.meta.dev) {\n return [];\n }\n const trace = captureStackTrace();\n const start = trace.findIndex((entry) => !entry.source.startsWith(distURL));\n const end = trace.toReversed().findIndex((entry) => !entry.source.includes(\"node_modules\") && !entry.source.startsWith(distURL));\n if (start === -1 || end === -1) {\n return [];\n }\n return trace.slice(start, end > 0 ? -end : void 0).map((i) => ({\n ...i,\n source: i.source.replace(/^file:\\/\\//, \"\")\n }));\n}\nexport function getUserCaller() {\n if (!import.meta.dev) {\n return null;\n }\n const { source, line, column } = captureStackTrace().find((entry) => !entry.source.startsWith(distURL)) ?? {};\n if (!source) {\n return null;\n }\n return {\n source: source.replace(/^file:\\/\\//, \"\"),\n line,\n column\n };\n}\n","import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from \"vue\";\nimport { sanitizeStatusCode } from \"@nuxt/nitro-server/h3\";\nimport { decodePath, encodePath, hasProtocol, isScriptProtocol, joinURL, parseQuery, parseURL, withQuery } from \"ufo\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { PageRouteSymbol } from \"../components/injections.js\";\nimport { createError, showError } from \"./error.js\";\nimport { getUserTrace } from \"../utils.js\";\nexport const useRouter = () => {\n return useNuxtApp()?.$router;\n};\nexport const useRoute = () => {\n if (import.meta.dev && !getCurrentInstance() && isProcessingMiddleware()) {\n const middleware = useNuxtApp()._processingMiddleware;\n const trace = getUserTrace().map(({ source, line, column }) => `at ${source}:${line}:${column}`).join(\"\\n\");\n console.warn(`[nuxt] \\`useRoute\\` was called within middleware${typeof middleware === \"string\" ? ` (\\`${middleware}\\`)` : \"\"}. This may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes. Learn more: https://nuxt.com/docs/4.x/directory-structure/app/middleware#accessing-route-in-middleware` + (\"\\n\" + trace));\n }\n if (hasInjectionContext()) {\n return inject(PageRouteSymbol, useNuxtApp()._route);\n }\n return useNuxtApp()._route;\n};\nexport const onBeforeRouteLeave = (guard) => {\n const unsubscribe = useRouter().beforeEach((to, from, next) => {\n if (to === from) {\n return;\n }\n return guard(to, from, next);\n });\n onScopeDispose(unsubscribe);\n};\nexport const onBeforeRouteUpdate = (guard) => {\n const unsubscribe = useRouter().beforeEach(guard);\n onScopeDispose(unsubscribe);\n};\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtRouteMiddleware(middleware) {\n return middleware;\n}\nexport const addRouteMiddleware = (name, middleware, options = {}) => {\n const nuxtApp = useNuxtApp();\n const global = options.global || typeof name !== \"string\";\n const mw = typeof name !== \"string\" ? name : middleware;\n if (!mw) {\n console.warn(\"[nuxt] No route middleware passed to `addRouteMiddleware`.\", name);\n return;\n }\n if (global) {\n nuxtApp._middleware.global.push(mw);\n } else {\n nuxtApp._middleware.named[name] = mw;\n }\n};\nconst isProcessingMiddleware = () => {\n try {\n if (useNuxtApp()._processingMiddleware) {\n return true;\n }\n } catch {\n return false;\n }\n return false;\n};\nconst HTML_ATTR_UNSAFE_RE = /[&\"'<>]/g;\nconst HTML_ATTR_ENCODE_MAP = {\n \"&\": \"%26\",\n '\"': \"%22\",\n \"'\": \"%27\",\n \"<\": \"%3C\",\n \">\": \"%3E\"\n};\nfunction encodeForHtmlAttr(value) {\n return value.replace(HTML_ATTR_UNSAFE_RE, (c) => HTML_ATTR_ENCODE_MAP[c]);\n}\nexport const navigateTo = (to, options) => {\n to ||= \"/\";\n const toPath = typeof to === \"string\" ? to : \"path\" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;\n if (import.meta.client && options?.open) {\n const { protocol } = new URL(toPath, window.location.href);\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n const { target = \"_blank\", windowFeatures = {} } = options.open;\n const features = [];\n for (const [feature, value] of Object.entries(windowFeatures)) {\n if (value !== void 0) {\n features.push(`${feature.toLowerCase()}=${value}`);\n }\n }\n open(toPath, target, features.join(\", \"));\n return Promise.resolve();\n }\n const isExternalHost = hasProtocol(toPath, { acceptRelative: true });\n const isExternal = options?.external || isExternalHost;\n if (isExternal) {\n if (!options?.external) {\n throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");\n }\n const { protocol } = new URL(toPath, import.meta.client ? window.location.href : \"http://localhost\");\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n }\n const inMiddleware = isProcessingMiddleware();\n if (import.meta.client && !isExternal && inMiddleware) {\n if (options?.replace) {\n if (typeof to === \"string\") {\n const { pathname, search, hash } = parseURL(to);\n return {\n path: pathname,\n ...search && { query: parseQuery(search) },\n ...hash && { hash },\n replace: true\n };\n }\n return { ...to, replace: true };\n }\n return to;\n }\n const router = useRouter();\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (nuxtApp.ssrContext) {\n const fullPath = typeof to === \"string\" || isExternal ? toPath : router.resolve(to).fullPath || \"/\";\n const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath);\n const redirect = async function(response) {\n await nuxtApp.callHook(\"app:redirected\");\n const encodedHeader = encodeURL(location2, isExternalHost);\n const encodedLoc = encodeForHtmlAttr(encodedHeader);\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),\n body: ``,\n headers: { location: encodedHeader }\n };\n return response;\n };\n if (!isExternal && inMiddleware) {\n router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);\n return to;\n }\n return redirect(!inMiddleware ? void 0 : (\n /* abort route navigation */\n false\n ));\n }\n }\n if (isExternal) {\n nuxtApp._scope.stop();\n if (options?.replace) {\n location.replace(toPath);\n } else {\n location.href = toPath;\n }\n if (inMiddleware) {\n if (!nuxtApp.isHydrating) {\n return false;\n }\n return new Promise(() => {\n });\n }\n return Promise.resolve();\n }\n const encodedTo = typeof to === \"string\" ? encodeRoutePath(to) : to;\n return options?.replace ? router.replace(encodedTo) : router.push(encodedTo);\n};\nexport const abortNavigation = (err) => {\n if (import.meta.dev && !isProcessingMiddleware()) {\n throw new Error(\"abortNavigation() is only usable inside a route middleware handler.\");\n }\n if (!err) {\n return false;\n }\n err = createError(err);\n if (err.fatal) {\n useNuxtApp().runWithContext(() => showError(err));\n }\n throw err;\n};\nexport const setPageLayout = (layout, props) => {\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (import.meta.dev && getCurrentInstance() && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.\");\n }\n nuxtApp.payload.state._layout = layout;\n nuxtApp.payload.state._layoutProps = props;\n }\n if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.\");\n }\n const inMiddleware = isProcessingMiddleware();\n if (inMiddleware || import.meta.server || nuxtApp.isHydrating) {\n const unsubscribe = useRouter().beforeResolve((to) => {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n unsubscribe();\n });\n }\n if (!inMiddleware) {\n const route = useRoute();\n route.meta.layout = layout;\n route.meta.layoutProps = props;\n if (import.meta.client) {\n const unsubscribe = useRouter().beforeResolve((to, from) => {\n if (to.path === from.path) {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n } else {\n unsubscribe();\n }\n });\n onScopeDispose(unsubscribe, true);\n }\n }\n};\nexport function resolveRouteObject(to) {\n return withQuery(to.path || \"\", to.query || {}) + (to.hash || \"\");\n}\nexport function encodeURL(location2, isExternalHost = false) {\n const url = new URL(location2, \"http://localhost\");\n if (!isExternalHost) {\n const pathname = url.pathname.replace(/^\\/{2,}/, \"/\");\n return pathname + url.search + url.hash;\n }\n if (location2.startsWith(\"//\")) {\n return url.toString().replace(url.protocol, \"\");\n }\n return url.toString();\n}\nexport function encodeRoutePath(url) {\n const parsed = parseURL(url);\n return encodePath(decodePath(parsed.pathname)) + parsed.search + parsed.hash;\n}\n","import { createError as createH3Error } from \"@nuxt/nitro-server/h3\";\nimport { toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRouter } from \"./router.js\";\nexport const NUXT_ERROR_SIGNATURE = \"__nuxt_error\";\nexport const useError = /* @__NO_SIDE_EFFECTS__ */ () => toRef(useNuxtApp().payload, \"error\");\nexport const showError = (error) => {\n const nuxtError = createError(error);\n try {\n const error2 = /* @__PURE__ */ useError();\n if (import.meta.client) {\n const nuxtApp = useNuxtApp();\n nuxtApp.hooks.callHook(\"app:error\", nuxtError);\n }\n error2.value ||= nuxtError;\n } catch {\n throw nuxtError;\n }\n return nuxtError;\n};\nexport const clearError = async (options = {}) => {\n const nuxtApp = useNuxtApp();\n const error = /* @__PURE__ */ useError();\n nuxtApp.callHook(\"app:error:cleared\", options);\n if (options.redirect) {\n await useRouter().replace(options.redirect);\n }\n error.value = void 0;\n};\nexport const isNuxtError = (error) => !!error && typeof error === \"object\" && NUXT_ERROR_SIGNATURE in error;\nexport const createError = (error) => {\n if (typeof error !== \"string\" && error.statusText) {\n error.message ??= error.statusText;\n }\n const nuxtError = createH3Error(error);\n Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {\n value: true,\n configurable: false,\n writable: false\n });\n Object.defineProperty(nuxtError, \"status\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusCode,\n configurable: true\n });\n Object.defineProperty(nuxtError, \"statusText\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusMessage,\n configurable: true\n });\n return nuxtError;\n};\n","\n import { defu } from 'defu'\n const matcher = (m,p)=>{return [];}\n export default (path) => defu({}, ...matcher('', typeof path === 'string' ? path.toLowerCase() : path).map(r => r.data).reverse())\n ","import { useRuntimeConfig } from \"../nuxt.js\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport { buildAssetsURL } from \"#internal/nuxt/paths\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nlet manifest;\nfunction fetchManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n let _manifest;\n if (import.meta.server) {\n _manifest = import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"#app-manifest\"\n );\n } else {\n _manifest = $fetch(buildAssetsURL(`builds/meta/${useRuntimeConfig().app.buildId}.json`), {\n responseType: \"json\"\n }).then((res) => {\n if (!res || typeof res !== \"object\" || !Array.isArray(res.prerendered)) {\n throw new Error(\"[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.\");\n }\n return res;\n });\n }\n manifest = _manifest;\n _manifest.catch((e) => {\n if (manifest === _manifest) {\n manifest = void 0;\n }\n console.error(\"[nuxt] Error fetching app manifest.\", e);\n });\n return _manifest;\n}\nexport function getAppManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n return manifest || fetchManifest();\n}\nexport function getRouteRules(arg) {\n const path = typeof arg === \"string\" ? arg : arg.path;\n try {\n return routeRulesMatcher(path.toLowerCase());\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\n}\n","import { hasProtocol, joinURL } from \"ufo\";\nimport { parse } from \"devalue\";\nimport { getCurrentInstance, onServerPrefetch, reactive } from \"vue\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { useHead } from \"./head.js\";\nimport { useRoute } from \"./router.js\";\nimport { getAppManifest, getRouteRules } from \"./manifest.js\";\nimport { appId, appManifest, multiApp, payloadExtraction, renderJsonPayloads } from \"#build/nuxt.config.mjs\";\nexport async function loadPayload(url, opts = {}) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n if (await shouldLoadPayload(url)) {\n const payloadURL = await _getPayloadURL(url, opts);\n return await _importPayload(payloadURL) || null;\n }\n return null;\n}\nlet linkRelType;\nfunction detectLinkRelType() {\n if (import.meta.server) {\n return \"preload\";\n }\n if (linkRelType) {\n return linkRelType;\n }\n const relList = document.createElement(\"link\").relList;\n linkRelType = relList && relList.supports && relList.supports(\"prefetch\") ? \"prefetch\" : \"preload\";\n return linkRelType;\n}\nexport function preloadPayload(url, opts = {}) {\n const nuxtApp = useNuxtApp();\n const promise = shouldLoadPayload(url).then(async (shouldPreload) => {\n if (!shouldPreload) {\n return;\n }\n const payloadURL = await _getPayloadURL(url, opts);\n const link = renderJsonPayloads ? { rel: detectLinkRelType(), as: \"fetch\", crossorigin: \"anonymous\", href: payloadURL } : { rel: \"modulepreload\", crossorigin: \"\", href: payloadURL };\n if (import.meta.server) {\n nuxtApp.runWithContext(() => useHead({ link: [link] }));\n } else {\n const linkEl = document.createElement(\"link\");\n for (const key of Object.keys(link)) {\n linkEl[key === \"crossorigin\" ? \"crossOrigin\" : key] = link[key];\n }\n document.head.appendChild(linkEl);\n return new Promise((resolve, reject) => {\n linkEl.addEventListener(\"load\", () => resolve());\n linkEl.addEventListener(\"error\", () => reject());\n });\n }\n });\n if (import.meta.server) {\n onServerPrefetch(() => promise);\n }\n return promise;\n}\nconst filename = renderJsonPayloads ? \"_payload.json\" : \"_payload.js\";\nasync function _getPayloadURL(url, opts = {}) {\n const u = new URL(url, \"http://localhost\");\n if (u.host !== \"localhost\" || hasProtocol(u.pathname, { acceptRelative: true })) {\n throw new Error(\"Payload URL must not include hostname: \" + url);\n }\n const config = useRuntimeConfig();\n const hash = opts.hash || (opts.fresh || import.meta.dev ? Date.now() : config.app.buildId);\n const cdnURL = config.app.cdnURL;\n const baseOrCdnURL = cdnURL && await isPrerendered(url) ? cdnURL : config.app.baseURL;\n return joinURL(baseOrCdnURL, u.pathname, filename + (hash ? `?${hash}` : \"\"));\n}\nasync function _importPayload(payloadURL) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n try {\n if (renderJsonPayloads) {\n const res = await fetch(payloadURL, import.meta.dev ? {} : { cache: \"force-cache\" });\n if (!res.ok) {\n if (import.meta.dev) {\n console.warn(`[nuxt] Cannot load payload ${payloadURL}: ${res.status} ${res.statusText}`);\n }\n return null;\n }\n return await parsePayload(await res.text());\n } else {\n return await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n }\n } catch (err) {\n console.warn(\"[nuxt] Cannot load payload \", payloadURL, err);\n }\n return null;\n}\nfunction _shouldLoadPrerenderedPayload(rules) {\n if (rules.redirect) {\n return false;\n }\n if (rules.prerender) {\n return true;\n }\n}\nasync function _isPrerenderedInManifest(url) {\n if (!appManifest) {\n return false;\n }\n url = url === \"/\" ? url : url.replace(/\\/$/, \"\");\n try {\n const manifest = await getAppManifest();\n return manifest.prerendered.includes(url);\n } catch {\n return false;\n }\n}\nexport async function shouldLoadPayload(url = useRoute().path) {\n const rules = getRouteRules({ path: url });\n if (rules.ssr === false) {\n return false;\n }\n const res = _shouldLoadPrerenderedPayload(rules);\n if (res !== void 0) {\n return res;\n }\n if (rules.payload) {\n return true;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nexport async function isPrerendered(url = useRoute().path) {\n const res = _shouldLoadPrerenderedPayload(getRouteRules({ path: url }));\n if (res !== void 0) {\n return res;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nlet payloadCache = null;\nexport async function getNuxtClientPayload() {\n if (import.meta.server) {\n return null;\n }\n if (payloadCache) {\n return payloadCache;\n }\n const el = multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\");\n if (!el) {\n return {};\n }\n const inlineData = await parsePayload(el.textContent || \"\");\n const externalData = el.dataset.src ? await _importPayload(el.dataset.src) : void 0;\n payloadCache = {\n ...inlineData,\n ...externalData,\n ...multiApp ? window.__NUXT__?.[appId] : window.__NUXT__\n };\n if (payloadCache.config?.public) {\n payloadCache.config.public = reactive(payloadCache.config.public);\n }\n return payloadCache;\n}\nexport async function parsePayload(payload) {\n return await parse(payload, useNuxtApp()._payloadRevivers);\n}\nexport function definePayloadReducer(name, reduce) {\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~payloadReducers\"][name] = reduce;\n }\n}\nexport function definePayloadReviver(name, revive) {\n if (import.meta.dev && getCurrentInstance()) {\n console.warn(\"[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.\");\n }\n if (import.meta.client) {\n useNuxtApp()._payloadRevivers[name] = revive;\n }\n}\n","import {\n definePayloadPlugin,\n definePayloadReducer,\n definePayloadReviver\n} from \"#imports\";\nimport { shouldHydrate } from \"pinia\";\nconst payloadPlugin = definePayloadPlugin(() => {\n definePayloadReducer(\n \"skipHydrate\",\n // We need to return something truthy to be treated as a match\n (data) => !shouldHydrate(data) && 1\n );\n definePayloadReviver(\"skipHydrate\", (_data) => void 0);\n});\nexport default payloadPlugin;\n","export function freezeHead(head) {\n const realPush = head.push;\n head.push = () => ({ dispose: () => {\n }, patch: () => {\n }, _poll: () => {\n } });\n return () => {\n head.push = realPush;\n };\n}\n","import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport { freezeHead } from \"../island-head.js\";\nimport unheadOptions from \"#build/unhead-options.mjs\";\nexport default defineNuxtPlugin({\n name: \"nuxt:head\",\n enforce: \"pre\",\n setup(nuxtApp) {\n const head = import.meta.server ? nuxtApp.ssrContext.head : createClientHead(unheadOptions);\n if (import.meta.server && nuxtApp.ssrContext.islandContext) {\n const unfreeze = freezeHead(head);\n nuxtApp.hooks.hookOnce(\"app:created\", unfreeze);\n }\n nuxtApp.vueApp.use(head);\n if (import.meta.client) {\n let pauseDOMUpdates = true;\n const syncHead = async () => {\n pauseDOMUpdates = false;\n await renderDOMHead(head);\n };\n head.hooks.hook(\"dom:beforeRender\", (context) => {\n context.shouldRender = !pauseDOMUpdates;\n });\n nuxtApp.hooks.hook(\"page:start\", () => {\n pauseDOMUpdates = true;\n });\n nuxtApp.hooks.hook(\"page:finish\", () => {\n if (!nuxtApp.isHydrating) {\n syncHead();\n }\n });\n nuxtApp.hooks.hook(\"app:error\", syncHead);\n nuxtApp.hooks.hook(\"app:suspense:resolve\", syncHead);\n const originalPush = head.push.bind(head);\n head.push = ((input, options) => {\n const entry = originalPush(input, options);\n const originalDispose = entry.dispose.bind(entry);\n entry.dispose = () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(originalDispose);\n } else {\n originalDispose();\n }\n };\n return entry;\n });\n }\n }\n});\n","/*!\n* vue-router v5.1.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { inject } from \"vue\";\n//#region src/utils/env.ts\nconst isBrowser = typeof document !== \"undefined\";\n//#endregion\n//#region src/utils/index.ts\n/**\n* Identity function that returns the value as is.\n*\n* @param v - the value to return\n*\n* @internal\n*/\nconst identityFn = (v) => v;\n/**\n* Allows differentiating lazy components from functional components and vue-class-component\n* @internal\n*\n* @param component\n*/\nfunction isRouteComponent(component) {\n\treturn typeof component === \"object\" || \"displayName\" in component || \"props\" in component || \"__vccOpts\" in component;\n}\nfunction isESModule(obj) {\n\treturn obj.__esModule || obj[Symbol.toStringTag] === \"Module\" || obj.default && isRouteComponent(obj.default);\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n\tconst newParams = {};\n\tfor (const key in params) {\n\t\tconst value = params[key];\n\t\tnewParams[key] = isArray(value) ? value.map(fn) : fn(value);\n\t}\n\treturn newParams;\n}\nconst noop = () => {};\n/**\n* Typesafe alternative to Array.isArray\n* https://github.com/microsoft/TypeScript/pull/48228\n*\n* @internal\n*/\nconst isArray = Array.isArray;\nfunction mergeOptions(defaults, partialOptions) {\n\tconst options = {};\n\tfor (const key in defaults) options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n\treturn options;\n}\n//#endregion\n//#region src/errors.ts\nconst NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== \"production\" ? \"navigation failure\" : \"\");\n/**\n* Enumeration with all possible types for navigation failures. Can be passed to\n* {@link isNavigationFailure} to check for specific failures.\n*/\nlet NavigationFailureType = /* @__PURE__ */ function(NavigationFailureType) {\n\t/**\n\t* An aborted navigation is a navigation that failed because a navigation\n\t* guard returned `false` or called `next(false)`\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\n\t/**\n\t* A cancelled navigation is a navigation that failed because a more recent\n\t* navigation finished started (not necessarily finished).\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\n\t/**\n\t* A duplicated navigation is a navigation that failed because it was\n\t* initiated while already being at the exact same location.\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\n\treturn NavigationFailureType;\n}({});\nconst ErrorTypeMessages = {\n\t[1]({ location, currentLocation }) {\n\t\treturn `No match for\\n ${JSON.stringify(location)}${currentLocation ? \"\\nwhile being at\\n\" + JSON.stringify(currentLocation) : \"\"}`;\n\t},\n\t[2]({ from, to }) {\n\t\treturn `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n\t},\n\t[4]({ from, to }) {\n\t\treturn `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n\t},\n\t[8]({ from, to }) {\n\t\treturn `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n\t},\n\t[16]({ from, to: _to }) {\n\t\treturn `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n\t}\n};\n/**\n* Creates a typed NavigationFailure object.\n* @internal\n* @param type - NavigationFailureType\n* @param params - { from, to }\n*/\nfunction createRouterError(type, params) {\n\tif (process.env.NODE_ENV !== \"production\" || false) return assign(new Error(ErrorTypeMessages[type](params)), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n\telse return assign(/* @__PURE__ */ new Error(), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n}\nfunction isNavigationFailure(error, type) {\n\treturn error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type));\n}\nconst propertiesToLog = [\n\t\"params\",\n\t\"query\",\n\t\"hash\"\n];\nfunction stringifyRoute(to) {\n\tif (typeof to === \"string\") return to;\n\tif (to.path != null) return to.path;\n\tconst location = {};\n\tfor (const key of propertiesToLog) if (key in to) location[key] = to[key];\n\treturn JSON.stringify(location, null, 2);\n}\n//#endregion\n//#region src/injectionSymbols.ts\n/**\n* RouteRecord being rendered by the closest ancestor Router View. Used for\n* `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n* Location Matched\n*\n* @internal\n*/\nconst matchedRouteKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location matched\" : \"\");\n/**\n* Allows overriding the router view depth to control which component in\n* `matched` is rendered. rvd stands for Router View Depth\n*\n* @internal\n*/\nconst viewDepthKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view depth\" : \"\");\n/**\n* Allows overriding the router instance returned by `useRouter` in tests. r\n* stands for router\n*\n* @internal\n*/\nconst routerKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router\" : \"\");\n/**\n* Allows overriding the current route returned by `useRoute` in tests. rl\n* stands for route location\n*\n* @internal\n*/\nconst routeLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"route location\" : \"\");\n/**\n* Allows overriding the current route used by router-view. Internally this is\n* used when the `route` prop is passed.\n*\n* @internal\n*/\nconst routerViewLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location\" : \"\");\n//#endregion\n//#region src/useApi.ts\n/**\n* Returns the router instance. Equivalent to using `$router` inside\n* templates.\n*/\nfunction useRouter() {\n\treturn inject(routerKey);\n}\n/**\n* Returns the current route location. Equivalent to using `$route` inside\n* templates.\n*/\nfunction useRoute(_name) {\n\treturn inject(routeLocationKey);\n}\n//#endregion\nexport { mergeOptions as _, routerKey as a, NavigationFailureType as c, applyToParams as d, assign as f, isRouteComponent as g, isESModule as h, routeLocationKey as i, createRouterError as l, isArray as m, useRouter as n, routerViewLocationKey as o, identityFn as p, matchedRouteKey as r, viewDepthKey as s, useRoute as t, isNavigationFailure as u, noop as v, isBrowser as y };\n","/*!\n* vue-router v5.1.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { f as assign, g as isRouteComponent, h as isESModule, l as createRouterError, m as isArray, r as matchedRouteKey, y as isBrowser } from \"./useApi-s_02lHjl.js\";\nimport { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from \"vue\";\nimport { setupDevtoolsPlugin } from \"@vue/devtools-api\";\n//#region src/warning.ts\nfunction warn$1(msg) {\n\tconst args = Array.from(arguments).slice(1);\n\tconsole.warn.apply(console, [\"[Vue Router warn]: \" + msg].concat(args));\n}\n//#endregion\n//#region src/encoding.ts\n/**\n* Encoding Rules (␣ = Space)\n* - Path: ␣ \" < > # ? { }\n* - Query: ␣ \" < > # & =\n* - Hash: ␣ \" < > `\n*\n* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n* defines some extra characters to be encoded. Most browsers do not encode them\n* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n* plus `-._~`. This extra safety should be applied to query by patching the\n* string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n* into a `/` if directly typed in. The _backtick_ (`````) should also be\n* encoded everywhere because some browsers like FF encode it when directly\n* written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n*/\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\n/**\n* NOTE: It's not clear to me if we should encode the + symbol in queries, it\n* seems to be less flexible than not doing so and I can't find out the legacy\n* systems requiring this for regular requests like text/html. In the standard,\n* the encoding of the plus character is only mentioned for\n* application/x-www-form-urlencoded\n* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n* leave the plus character as is in queries. To be more flexible, we allow the\n* plus character on the query, but it can also be manually encoded by the user.\n*\n* Resources:\n* - https://url.spec.whatwg.org/#urlencoded-parsing\n* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n*/\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\n/**\n* Encode characters that need to be encoded on the path, search and hash\n* sections of the URL.\n*\n* @internal\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction commonEncode(text) {\n\treturn text == null ? \"\" : encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\n/**\n* Encode characters that need to be encoded on the hash section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeHash(text) {\n\treturn commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Encode characters that need to be encoded query values on the query\n* section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeQueryValue(text) {\n\treturn commonEncode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Like `encodeQueryValue` but also encodes the `=` character.\n*\n* @param text - string to encode\n*/\nfunction encodeQueryKey(text) {\n\treturn encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodePath(text) {\n\treturn commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL as a\n* param. This function encodes everything {@link encodePath} does plus the\n* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n* string instead.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeParam(text) {\n\treturn encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n\tif (text == null) return null;\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Error decoding \"${text}\". Using original value`);\n\t}\n\treturn \"\" + text;\n}\n//#endregion\n//#region src/location.ts\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\n/**\n* Transforms a URI into a normalized history location\n*\n* @param parseQuery\n* @param location - URI to normalize\n* @param currentLocation - current absolute location. Allows resolving relative\n* paths. Must start with `/`. Defaults to `/`\n* @returns a normalized history location\n*/\nfunction parseURL(parseQuery, location, currentLocation = \"/\") {\n\tlet path, query = {}, searchString = \"\", hash = \"\";\n\tconst hashPos = location.indexOf(\"#\");\n\tlet searchPos = location.indexOf(\"?\");\n\tsearchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;\n\tif (searchPos >= 0) {\n\t\tpath = location.slice(0, searchPos);\n\t\tsearchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length);\n\t\tquery = parseQuery(searchString.slice(1));\n\t}\n\tif (hashPos >= 0) {\n\t\tpath = path || location.slice(0, hashPos);\n\t\thash = location.slice(hashPos, location.length);\n\t}\n\tpath = resolveRelativePath(path != null ? path : location, currentLocation);\n\treturn {\n\t\tfullPath: path + searchString + hash,\n\t\tpath,\n\t\tquery,\n\t\thash: decode(hash)\n\t};\n}\nfunction NEW_stringifyURL(stringifyQuery, path, query, hash = \"\") {\n\tconst searchText = stringifyQuery(query);\n\treturn path + (searchText && \"?\") + searchText + encodeHash(hash);\n}\n/**\n* Stringifies a URL object\n*\n* @param stringifyQuery\n* @param location\n*/\nfunction stringifyURL(stringifyQuery, location) {\n\tconst query = location.query ? stringifyQuery(location.query) : \"\";\n\treturn location.path + (query && \"?\") + query + (location.hash || \"\");\n}\n/**\n* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n*\n* @param pathname - location.pathname\n* @param base - base to strip off\n*/\nfunction stripBase(pathname, base) {\n\tif (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname;\n\treturn pathname.slice(base.length) || \"/\";\n}\n/**\n* Checks if two RouteLocation are equal. This means that both locations are\n* pointing towards the same {@link RouteRecord} and that all `params`, `query`\n* parameters and `hash` are the same\n*\n* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n* @param a - first {@link RouteLocation}\n* @param b - second {@link RouteLocation}\n*/\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n\tconst aLastIndex = a.matched.length - 1;\n\tconst bLastIndex = b.matched.length - 1;\n\treturn aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery(a.query) === stringifyQuery(b.query) && a.hash === b.hash;\n}\n/**\n* Check if two `RouteRecords` are equal. Takes into account aliases: they are\n* considered equal to the `RouteRecord` they are aliasing.\n*\n* @param a - first {@link RouteRecord}\n* @param b - second {@link RouteRecord}\n*/\nfunction isSameRouteRecord(a, b) {\n\treturn (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (var key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;\n\treturn true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n\treturn isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : (a && a.valueOf()) === (b && b.valueOf());\n}\n/**\n* Check if two arrays are the same or if an array with one single entry is the\n* same as another primitive value. Used to check query and parameters\n*\n* @param a - array of values\n* @param b - array of values or a single value\n*/\nfunction isEquivalentArray(a, b) {\n\treturn isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\n/**\n* Resolves a relative path that starts with `.`.\n*\n* @param to - path location we are resolving\n* @param from - currentLocation.path, should start with `/`\n*/\nfunction resolveRelativePath(to, from) {\n\tif (to.startsWith(\"/\")) return to;\n\tif (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n\t\twarn$1(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n\t\treturn to;\n\t}\n\tif (!to) return from;\n\tconst fromSegments = from.split(\"/\");\n\tconst toSegments = to.split(\"/\");\n\tconst lastToSegment = toSegments[toSegments.length - 1];\n\tif (lastToSegment === \"..\" || lastToSegment === \".\") toSegments.push(\"\");\n\tlet position = fromSegments.length - 1;\n\tlet toPosition;\n\tlet segment;\n\tfor (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n\t\tsegment = toSegments[toPosition];\n\t\tif (segment === \".\") continue;\n\t\tif (segment === \"..\") {\n\t\t\tif (position > 1) position--;\n\t\t} else break;\n\t}\n\treturn fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition).join(\"/\");\n}\n/**\n* Initial route location where the router is. Can be used in navigation guards\n* to differentiate the initial navigation.\n*\n* @example\n* ```js\n* import { START_LOCATION } from 'vue-router'\n*\n* router.beforeEach((to, from) => {\n* if (from === START_LOCATION) {\n* // initial navigation\n* }\n* })\n* ```\n*/\nconst START_LOCATION_NORMALIZED = {\n\tpath: \"/\",\n\tname: void 0,\n\tparams: {},\n\tquery: {},\n\thash: \"\",\n\tfullPath: \"/\",\n\tmatched: [],\n\tmeta: {},\n\tredirectedFrom: void 0\n};\n//#endregion\n//#region src/history/common.ts\n/**\n* Normalizes a base by removing any trailing slash and reading the base tag if\n* present.\n*\n* @param base - base to normalize\n*/\nfunction normalizeBase(base) {\n\tif (!base) if (isBrowser) {\n\t\tconst baseEl = document.querySelector(\"base\");\n\t\tbase = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n\t\tbase = base.replace(/^\\w+:\\/\\/[^/]+/, \"\");\n\t} else base = \"/\";\n\tif (base[0] !== \"/\" && base[0] !== \"#\") base = \"/\" + base;\n\treturn removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n\treturn base.replace(BEFORE_HASH_RE, \"#\") + location;\n}\n//#endregion\n//#region src/scrollBehavior.ts\nfunction getElementPosition(el, offset) {\n\tconst docRect = document.documentElement.getBoundingClientRect();\n\tconst elRect = el.getBoundingClientRect();\n\treturn {\n\t\tbehavior: offset.behavior,\n\t\tleft: elRect.left - docRect.left - (offset.left || 0),\n\t\ttop: elRect.top - docRect.top - (offset.top || 0)\n\t};\n}\nconst computeScrollPosition = () => ({\n\tleft: window.scrollX,\n\ttop: window.scrollY\n});\nfunction scrollToPosition(position) {\n\tlet scrollToOptions;\n\tif (\"el\" in position) {\n\t\tconst positionEl = position.el;\n\t\tconst isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n\t\t/**\n\t\t* `id`s can accept pretty much any characters, including CSS combinators\n\t\t* like `>` or `~`. It's still possible to retrieve elements using\n\t\t* `document.getElementById('~')` but it needs to be escaped when using\n\t\t* `document.querySelector('#\\\\~')` for it to be valid. The only\n\t\t* requirements for `id`s are them to be unique on the page and to not be\n\t\t* empty (`id=\"\"`). Because of that, when passing an id selector, it should\n\t\t* be properly escaped for it to work with `querySelector`. We could check\n\t\t* for the id selector to be simple (no CSS combinators `+ >~`) but that\n\t\t* would make things inconsistent since they are valid characters for an\n\t\t* `id` but would need to be escaped when using `querySelector`, breaking\n\t\t* their usage and ending up in no selector returned. Selectors need to be\n\t\t* escaped:\n\t\t*\n\t\t* - `#1-thing` becomes `#\\31 -thing`\n\t\t* - `#with~symbols` becomes `#with\\\\~symbols`\n\t\t*\n\t\t* - More information about the topic can be found at\n\t\t* https://mathiasbynens.be/notes/html5-id-class.\n\t\t* - Practical example: https://mathiasbynens.be/demo/html5-id\n\t\t*/\n\t\tif (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n\t\t\tif (!isIdSelector || !document.getElementById(position.el.slice(1))) try {\n\t\t\t\tconst foundEl = document.querySelector(position.el);\n\t\t\t\tif (isIdSelector && foundEl) {\n\t\t\t\t\twarn$1(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\twarn$1(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n\t\tif (!el) {\n\t\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n\t\t\treturn;\n\t\t}\n\t\tscrollToOptions = getElementPosition(el, position);\n\t} else scrollToOptions = position;\n\tif (\"scrollBehavior\" in document.documentElement.style) window.scrollTo(scrollToOptions);\n\telse window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n}\nfunction getScrollKey(path, delta) {\n\treturn (history.state ? history.state.position - delta : -1) + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n\tscrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n\tconst scroll = scrollPositions.get(key);\n\tscrollPositions.delete(key);\n\treturn scroll;\n}\n/**\n* ScrollBehavior instance used by the router to compute and restore the scroll\n* position when navigating.\n*/\n//#endregion\n//#region src/types/typeGuards.ts\nfunction isRouteLocation(route) {\n\treturn typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n\treturn typeof name === \"string\" || typeof name === \"symbol\";\n}\n//#endregion\n//#region src/query.ts\n/**\n* Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n* version with the leading `?` and without Should work as URLSearchParams\n\n* @internal\n*\n* @param search - search string to parse\n* @returns a query object\n*/\nfunction parseQuery(search) {\n\tconst query = {};\n\tif (search === \"\" || search === \"?\") return query;\n\tconst searchParams = (search[0] === \"?\" ? search.slice(1) : search).split(\"&\");\n\tfor (let i = 0; i < searchParams.length; ++i) {\n\t\tconst searchParam = searchParams[i].replace(PLUS_RE, \" \");\n\t\tconst eqPos = searchParam.indexOf(\"=\");\n\t\tconst key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n\t\tconst value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n\t\tif (key in query) {\n\t\t\tlet currentValue = query[key];\n\t\t\tif (!isArray(currentValue)) currentValue = query[key] = [currentValue];\n\t\t\tcurrentValue.push(value);\n\t\t} else query[key] = value;\n\t}\n\treturn query;\n}\n/**\n* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n* doesn't prepend a `?`\n*\n* @internal\n*\n* @param query - query object to stringify\n* @returns string version of the query without the leading `?`\n*/\nfunction stringifyQuery(query) {\n\tlet search = \"\";\n\tfor (let key in query) {\n\t\tconst value = query[key];\n\t\tkey = encodeQueryKey(key);\n\t\tif (value == null) {\n\t\t\tif (value !== void 0) search += (search.length ? \"&\" : \"\") + key;\n\t\t\tcontinue;\n\t\t}\n\t\t(isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value) => {\n\t\t\tif (value !== void 0) {\n\t\t\t\tsearch += (search.length ? \"&\" : \"\") + key;\n\t\t\t\tif (value != null) search += \"=\" + value;\n\t\t\t}\n\t\t});\n\t}\n\treturn search;\n}\n/**\n* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n* numbers into strings, removing keys with an undefined value and replacing\n* undefined with null in arrays\n*\n* @param query - query object to normalize\n* @returns a normalized query object\n*/\nfunction normalizeQuery(query) {\n\tconst normalizedQuery = {};\n\tfor (const key in query) {\n\t\tconst value = query[key];\n\t\tif (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n\t}\n\treturn normalizedQuery;\n}\n//#endregion\n//#region src/utils/callbacks.ts\n/**\n* Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n*/\nfunction useCallbacks() {\n\tlet handlers = [];\n\tfunction add(handler) {\n\t\thandlers.push(handler);\n\t\treturn () => {\n\t\t\tconst i = handlers.indexOf(handler);\n\t\t\tif (i > -1) handlers.splice(i, 1);\n\t\t};\n\t}\n\tfunction reset() {\n\t\thandlers = [];\n\t}\n\treturn {\n\t\tadd,\n\t\tlist: () => handlers.slice(),\n\t\treset\n\t};\n}\n//#endregion\n//#region src/navigationGuards.ts\nfunction registerGuard(activeRecordRef, name, guard) {\n\tconst record = activeRecordRef.value;\n\tif (!record) {\n\t\tif (process.env.NODE_ENV !== \"production\") warn$1(`No active route record was found when calling \\`${name === \"updateGuards\" ? \"onBeforeRouteUpdate\" : \"onBeforeRouteLeave\"}()\\`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?`);\n\t\treturn;\n\t}\n\tlet currentRecord = record;\n\tconst removeFromList = () => {\n\t\tcurrentRecord[name].delete(guard);\n\t};\n\tonUnmounted(removeFromList);\n\tonDeactivated(removeFromList);\n\tonActivated(() => {\n\t\tconst newRecord = activeRecordRef.value;\n\t\tif (process.env.NODE_ENV !== \"production\" && !newRecord) warn$1(\"No active route record was found when reactivating component with navigation guard. This is likely a bug in vue-router. Please report it.\");\n\t\tif (newRecord) currentRecord = newRecord;\n\t\tcurrentRecord[name].add(guard);\n\t});\n\tcurrentRecord[name].add(guard);\n}\n/**\n* Add a navigation guard that triggers whenever the component for the current\n* location is about to be left. Similar to {@link beforeRouteLeave} but can be\n* used in any component. The guard is removed when the component is unmounted.\n*\n* @param leaveGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteLeave(leaveGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"leaveGuards\", leaveGuard);\n}\n/**\n* Add a navigation guard that triggers whenever the current location is about\n* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n* component. The guard is removed when the component is unmounted.\n*\n* @param updateGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteUpdate(updateGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"updateGuards\", updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {\n\tconst enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n\treturn () => new Promise((resolve, reject) => {\n\t\tconst next = (valid) => {\n\t\t\tif (valid === false) reject(createRouterError(4, {\n\t\t\t\tfrom,\n\t\t\t\tto\n\t\t\t}));\n\t\t\telse if (valid instanceof Error) reject(valid);\n\t\t\telse if (isRouteLocation(valid)) reject(createRouterError(2, {\n\t\t\t\tfrom: to,\n\t\t\t\tto: valid\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tif (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") enterCallbackArray.push(valid);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tconst guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? withDeprecationWarning(canOnlyBeCalledOnce(next, to, from)) : next));\n\t\tlet guardCall = Promise.resolve(guardReturn);\n\t\tif (guard.length < 3) guardCall = guardCall.then(next);\n\t\tif (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n\t\t\tconst message = `The \"next\" callback was never called inside of ${guard.name ? \"\\\"\" + guard.name + \"\\\"\" : \"\"}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n\t\t\tif (typeof guardReturn === \"object\" && \"then\" in guardReturn) guardCall = guardCall.then((resolvedValue) => {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t}\n\t\t\t\treturn resolvedValue;\n\t\t\t});\n\t\t\telse if (guardReturn !== void 0) {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tguardCall.catch((err) => reject(err));\n\t});\n}\n/**\n* Wraps the next callback to warn when it is used. Dev-only: when __DEV__ is\n* false (production builds), this branch is dead code and is stripped from the\n* bundle.\n*\n* @internal\n*/\nfunction withDeprecationWarning(next) {\n\tlet warned = false;\n\treturn function() {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\twarn$1(\"The `next()` callback in navigation guards is deprecated. Return the value instead of calling `next(value)`.\");\n\t\t}\n\t\treturn next.apply(this, arguments);\n\t};\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n\tlet called = 0;\n\treturn function() {\n\t\tif (called++ === 1) warn$1(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n\t\tnext._called = true;\n\t\tif (called === 1) next.apply(null, arguments);\n\t};\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {\n\tconst guards = [];\n\tfor (const record of matched) {\n\t\tif (process.env.NODE_ENV !== \"production\" && !record.components && record.children && !record.children.length) warn$1(`Record with path \"${record.path}\" is either missing a \"component(s)\" or \"children\" property.`);\n\t\tfor (const name in record.components) {\n\t\t\tlet rawComponent = record.components[name];\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is not a valid component. Received \"${String(rawComponent)}\".`);\n\t\t\t\t\tthrow new Error(\"Invalid route component\");\n\t\t\t\t} else if (\"then\" in rawComponent) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a Promise instead of a function that returns a Promise. Did you write \"import('./MyPage.vue')\" instead of \"() => import('./MyPage.vue')\" ? This will break in production if not fixed.`);\n\t\t\t\t\tconst promise = rawComponent;\n\t\t\t\t\trawComponent = () => promise;\n\t\t\t\t} else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) {\n\t\t\t\t\trawComponent.__warnedDefineAsync = true;\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is defined using \"defineAsyncComponent()\". Write \"() => import('./MyPage.vue')\" instead of \"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (guardType !== \"beforeRouteEnter\" && !record.instances[name]) continue;\n\t\t\tif (isRouteComponent(rawComponent)) {\n\t\t\t\tconst guard = (rawComponent.__vccOpts || rawComponent)[guardType];\n\t\t\t\tguard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n\t\t\t} else {\n\t\t\t\tlet componentPromise = rawComponent();\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n\t\t\t\t\tcomponentPromise = Promise.resolve(componentPromise);\n\t\t\t\t}\n\t\t\t\tguards.push(() => componentPromise.then((resolved) => {\n\t\t\t\t\tif (!resolved) throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n\t\t\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\t\t\trecord.mods[name] = resolved;\n\t\t\t\t\trecord.components[name] = resolvedComponent;\n\t\t\t\t\tconst guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];\n\t\t\t\t\treturn guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\treturn guards;\n}\n/**\n* Ensures a route is loaded, so it can be passed as o prop to ``.\n*\n* @param route - resolved route to load\n*/\nfunction loadRouteLocation(route) {\n\treturn route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error(\"Cannot load a route that redirects.\")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => {\n\t\tconst rawComponent = record.components[name];\n\t\tif (typeof rawComponent === \"function\" && !(\"displayName\" in rawComponent)) promises.push(rawComponent().then((resolved) => {\n\t\t\tif (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\trecord.mods[name] = resolved;\n\t\t\trecord.components[name] = resolvedComponent;\n\t\t}));\n\t\treturn promises;\n\t}, [])))).then(() => route);\n}\n/**\n* Split the leaving, updating, and entering records.\n* @internal\n*\n* @param to - Location we are navigating to\n* @param from - Location we are navigating from\n*/\nfunction extractChangingRecords(to, from) {\n\tconst leavingRecords = [];\n\tconst updatingRecords = [];\n\tconst enteringRecords = [];\n\tconst len = Math.max(from.matched.length, to.matched.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tconst recordFrom = from.matched[i];\n\t\tif (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);\n\t\telse leavingRecords.push(recordFrom);\n\t\tconst recordTo = to.matched[i];\n\t\tif (recordTo) {\n\t\t\tif (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);\n\t\t}\n\t}\n\treturn [\n\t\tleavingRecords,\n\t\tupdatingRecords,\n\t\tenteringRecords\n\t];\n}\n//#endregion\n//#region src/devtools.ts\n/**\n* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n*\n* @param routeLocation - routeLocation to format\n* @param tooltip - optional tooltip\n* @returns a copy of the routeLocation\n*/\nfunction formatRouteLocation(routeLocation, tooltip) {\n\tconst copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [\n\t\t\"instances\",\n\t\t\"children\",\n\t\t\"aliasOf\"\n\t])) });\n\treturn { _custom: {\n\t\ttype: null,\n\t\treadOnly: true,\n\t\tdisplay: routeLocation.fullPath,\n\t\ttooltip,\n\t\tvalue: copy\n\t} };\n}\nfunction formatDisplay(display) {\n\treturn { _custom: { display } };\n}\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n\tif (router.__hasDevtools) return;\n\trouter.__hasDevtools = true;\n\tconst id = routerId++;\n\tsetupDevtoolsPlugin({\n\t\tid: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n\t\tlabel: \"Vue Router\",\n\t\tpackageName: \"vue-router\",\n\t\thomepage: \"https://router.vuejs.org\",\n\t\tlogo: \"https://router.vuejs.org/logo.png\",\n\t\tcomponentStateTypes: [\"Routing\"],\n\t\tapp\n\t}, (api) => {\n\t\tapi.on.inspectComponent((payload) => {\n\t\t\tif (payload.instanceData) payload.instanceData.state.push({\n\t\t\t\ttype: \"Routing\",\n\t\t\t\tkey: \"$route\",\n\t\t\t\teditable: false,\n\t\t\t\tvalue: formatRouteLocation(router.currentRoute.value, \"Current Route\")\n\t\t\t});\n\t\t});\n\t\tapi.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n\t\t\tif (componentInstance.__vrv_devtools) {\n\t\t\t\tconst info = componentInstance.__vrv_devtools;\n\t\t\t\tnode.tags.push({\n\t\t\t\t\tlabel: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n\t\t\t\t\ttextColor: 0,\n\t\t\t\t\ttooltip: \"This component is rendered by <router-view>\",\n\t\t\t\t\tbackgroundColor: PINK_500\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (isArray(componentInstance.__vrl_devtools)) {\n\t\t\t\tcomponentInstance.__devtoolsApi = api;\n\t\t\t\tcomponentInstance.__vrl_devtools.forEach((devtoolsData) => {\n\t\t\t\t\tlet label = devtoolsData.route.path;\n\t\t\t\t\tlet backgroundColor = ORANGE_400;\n\t\t\t\t\tlet tooltip = \"\";\n\t\t\t\t\tlet textColor = 0;\n\t\t\t\t\tif (devtoolsData.error) {\n\t\t\t\t\t\tlabel = devtoolsData.error;\n\t\t\t\t\t\tbackgroundColor = RED_100;\n\t\t\t\t\t\ttextColor = RED_700;\n\t\t\t\t\t} else if (devtoolsData.isExactActive) {\n\t\t\t\t\t\tbackgroundColor = LIME_500;\n\t\t\t\t\t\ttooltip = \"This is exactly active\";\n\t\t\t\t\t} else if (devtoolsData.isActive) {\n\t\t\t\t\t\tbackgroundColor = BLUE_600;\n\t\t\t\t\t\ttooltip = \"This link is active\";\n\t\t\t\t\t}\n\t\t\t\t\tnode.tags.push({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\tbackgroundColor\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\twatch(router.currentRoute, () => {\n\t\t\trefreshRoutesView();\n\t\t\tapi.notifyComponentUpdate();\n\t\t\tapi.sendInspectorTree(routerInspectorId);\n\t\t\tapi.sendInspectorState(routerInspectorId);\n\t\t});\n\t\tconst navigationsLayerId = \"router:navigations:\" + id;\n\t\tapi.addTimelineLayer({\n\t\t\tid: navigationsLayerId,\n\t\t\tlabel: `Router${id ? \" \" + id : \"\"} Navigations`,\n\t\t\tcolor: 4237508\n\t\t});\n\t\trouter.onError((error, to) => {\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"Error during Navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tlogType: \"error\",\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata: { error },\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tlet navigationId = 0;\n\t\trouter.beforeEach((to, from) => {\n\t\t\tconst data = {\n\t\t\t\tguard: formatDisplay(\"beforeEach\"),\n\t\t\t\tfrom: formatRouteLocation(from, \"Current Location during this navigation\"),\n\t\t\t\tto: formatRouteLocation(to, \"Target location\")\n\t\t\t};\n\t\t\tObject.defineProperty(to.meta, \"__navigationId\", { value: navigationId++ });\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\ttitle: \"Start of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tdata,\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\trouter.afterEach((to, from, failure) => {\n\t\t\tconst data = { guard: formatDisplay(\"afterEach\") };\n\t\t\tif (failure) {\n\t\t\t\tdata.failure = { _custom: {\n\t\t\t\t\ttype: Error,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tdisplay: failure ? failure.message : \"\",\n\t\t\t\t\ttooltip: \"Navigation Failure\",\n\t\t\t\t\tvalue: failure\n\t\t\t\t} };\n\t\t\t\tdata.status = formatDisplay(\"❌\");\n\t\t\t} else data.status = formatDisplay(\"✅\");\n\t\t\tdata.from = formatRouteLocation(from, \"Current Location during this navigation\");\n\t\t\tdata.to = formatRouteLocation(to, \"Target location\");\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"End of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata,\n\t\t\t\t\tlogType: failure ? \"warning\" : \"default\",\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t/**\n\t\t* Inspector of Existing routes\n\t\t*/\n\t\tconst routerInspectorId = \"router-inspector:\" + id;\n\t\tapi.addInspector({\n\t\t\tid: routerInspectorId,\n\t\t\tlabel: \"Routes\" + (id ? \" \" + id : \"\"),\n\t\t\ticon: \"book\",\n\t\t\ttreeFilterPlaceholder: \"Search routes\"\n\t\t});\n\t\tfunction refreshRoutesView() {\n\t\t\tif (!activeRoutesPayload) return;\n\t\t\tconst payload = activeRoutesPayload;\n\t\t\tlet routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components);\n\t\t\troutes.forEach(resetMatchStateOnRouteRecord);\n\t\t\tif (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase()));\n\t\t\troutes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value));\n\t\t\tpayload.rootNodes = routes.map(formatRouteRecordForInspector);\n\t\t}\n\t\tlet activeRoutesPayload;\n\t\tapi.on.getInspectorTree((payload) => {\n\t\t\tactiveRoutesPayload = payload;\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView();\n\t\t});\n\t\t/**\n\t\t* Display information about the currently selected route record\n\t\t*/\n\t\tapi.on.getInspectorState((payload) => {\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) {\n\t\t\t\tconst route = matcher.getRoutes().find((route) => route.record.__vd_id === payload.nodeId);\n\t\t\t\tif (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) };\n\t\t\t}\n\t\t});\n\t\tapi.sendInspectorTree(routerInspectorId);\n\t\tapi.sendInspectorState(routerInspectorId);\n\t});\n}\nfunction modifierForKey(key) {\n\tif (key.optional) return key.repeatable ? \"*\" : \"?\";\n\telse return key.repeatable ? \"+\" : \"\";\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n\tconst { record } = route;\n\tconst fields = [{\n\t\teditable: false,\n\t\tkey: \"path\",\n\t\tvalue: record.path\n\t}];\n\tif (record.name != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"name\",\n\t\tvalue: record.name\n\t});\n\tfields.push({\n\t\teditable: false,\n\t\tkey: \"regexp\",\n\t\tvalue: route.re\n\t});\n\tif (route.keys.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"keys\",\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n\t\t\ttooltip: \"Param keys\",\n\t\t\tvalue: route.keys\n\t\t} }\n\t});\n\tif (record.redirect != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"redirect\",\n\t\tvalue: record.redirect\n\t});\n\tif (route.alias.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"aliases\",\n\t\tvalue: route.alias.map((alias) => alias.record.path)\n\t});\n\tif (Object.keys(route.record.meta).length) fields.push({\n\t\teditable: false,\n\t\tkey: \"meta\",\n\t\tvalue: route.record.meta\n\t});\n\tfields.push({\n\t\tkey: \"score\",\n\t\teditable: false,\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.score.map((score) => score.join(\", \")).join(\" | \"),\n\t\t\ttooltip: \"Score used to sort routes\",\n\t\t\tvalue: route.score\n\t\t} }\n\t});\n\treturn fields;\n}\n/**\n* Extracted from tailwind palette\n*/\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nconst RED_100 = 16704226;\nconst RED_700 = 12131356;\nfunction formatRouteRecordForInspector(route) {\n\tconst tags = [];\n\tconst { record } = route;\n\tif (record.name != null) tags.push({\n\t\tlabel: String(record.name),\n\t\ttextColor: 0,\n\t\tbackgroundColor: CYAN_400\n\t});\n\tif (record.aliasOf) tags.push({\n\t\tlabel: \"alias\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: ORANGE_400\n\t});\n\tif (route.__vd_match) tags.push({\n\t\tlabel: \"matches\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: PINK_500\n\t});\n\tif (route.__vd_exactActive) tags.push({\n\t\tlabel: \"exact\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: LIME_500\n\t});\n\tif (route.__vd_active) tags.push({\n\t\tlabel: \"active\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: BLUE_600\n\t});\n\tif (record.redirect) tags.push({\n\t\tlabel: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n\t\ttextColor: 16777215,\n\t\tbackgroundColor: DARK\n\t});\n\tlet id = record.__vd_id;\n\tif (id == null) {\n\t\tid = String(routeRecordId++);\n\t\trecord.__vd_id = id;\n\t}\n\treturn {\n\t\tid,\n\t\tlabel: record.path,\n\t\ttags,\n\t\tchildren: route.children.map(formatRouteRecordForInspector)\n\t};\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n\tconst isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n\troute.__vd_exactActive = route.__vd_active = isExactActive;\n\tif (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n\troute.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n\troute.__vd_match = false;\n\troute.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n\tconst found = String(route.re).match(EXTRACT_REGEXP_RE);\n\troute.__vd_match = false;\n\tif (!found || found.length < 3) return false;\n\tif (new RegExp(found[1].replace(/\\$$/, \"\"), found[2]).test(filter)) {\n\t\troute.children.forEach((child) => isRouteMatching(child, filter));\n\t\tif (route.record.path !== \"/\" || filter === \"/\") {\n\t\t\troute.__vd_match = route.re.test(filter);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst path = route.record.path.toLowerCase();\n\tconst decodedPath = decode(path);\n\tif (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter))) return true;\n\tif (decodedPath.startsWith(filter) || path.startsWith(filter)) return true;\n\tif (route.record.name && String(route.record.name).includes(filter)) return true;\n\treturn route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n\tconst ret = {};\n\tfor (const key in obj) if (!keys.includes(key)) ret[key] = obj[key];\n\treturn ret;\n}\n//#endregion\nexport { PLUS_RE as A, isSameRouteLocation as C, resolveRelativePath as D, parseURL as E, warn$1 as F, encodeHash as M, encodeParam as N, stringifyURL as O, encodePath as P, START_LOCATION_NORMALIZED as S, isSameRouteRecord as T, saveScrollPosition as _, loadRouteLocation as a, normalizeBase as b, useCallbacks as c, stringifyQuery as d, isRouteLocation as f, getScrollKey as g, getSavedScrollPosition as h, guardToPromiseFn as i, decode as j, stripBase as k, normalizeQuery as l, computeScrollPosition as m, extractChangingRecords as n, onBeforeRouteLeave as o, isRouteName as p, extractComponentsGuards as r, onBeforeRouteUpdate as s, addDevtools as t, parseQuery as u, scrollToPosition as v, isSameRouteLocationParams as w, NEW_stringifyURL as x, createHref as y };\n","/*!\n* vue-router v5.1.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { _ as mergeOptions, a as routerKey, c as NavigationFailureType, d as applyToParams, f as assign, i as routeLocationKey, l as createRouterError, m as isArray, n as useRouter, o as routerViewLocationKey, r as matchedRouteKey, s as viewDepthKey, t as useRoute, u as isNavigationFailure, v as noop, y as isBrowser } from \"./useApi-s_02lHjl.js\";\nimport { C as isSameRouteLocation, E as parseURL, F as warn$1, M as encodeHash, N as encodeParam, O as stringifyURL, S as START_LOCATION_NORMALIZED, T as isSameRouteRecord, _ as saveScrollPosition, a as loadRouteLocation, b as normalizeBase, c as useCallbacks, d as stringifyQuery, f as isRouteLocation, g as getScrollKey, h as getSavedScrollPosition, i as guardToPromiseFn, j as decode, k as stripBase, l as normalizeQuery, m as computeScrollPosition, n as extractChangingRecords, o as onBeforeRouteLeave, p as isRouteName, r as extractComponentsGuards, s as onBeforeRouteUpdate, t as addDevtools, u as parseQuery, v as scrollToPosition, w as isSameRouteLocationParams, y as createHref } from \"./devtools-DCoWQoU_.js\";\nimport { computed, defineComponent, getCurrentInstance, h, inject, nextTick, provide, reactive, ref, shallowReactive, shallowRef, unref, watch, watchEffect } from \"vue\";\n//#region src/history/html5.ts\nlet createBaseLocation = () => location.protocol + \"//\" + location.host;\n/**\n* Creates a normalized history location from a window.location object\n* @param base - The base path\n* @param location - The window.location object\n*/\nfunction createCurrentLocation(base, location) {\n\tconst { pathname, search, hash } = location;\n\tconst hashPos = base.indexOf(\"#\");\n\tif (hashPos > -1) {\n\t\tlet slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n\t\tlet pathFromHash = hash.slice(slicePos);\n\t\tif (pathFromHash[0] !== \"/\") pathFromHash = \"/\" + pathFromHash;\n\t\treturn stripBase(pathFromHash, \"\");\n\t}\n\treturn stripBase(pathname, base) + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n\tlet listeners = [];\n\tlet teardowns = [];\n\tlet pauseState = null;\n\tconst popStateHandler = ({ state }) => {\n\t\tconst to = createCurrentLocation(base, location);\n\t\tconst from = currentLocation.value;\n\t\tconst fromState = historyState.value;\n\t\tlet delta = 0;\n\t\tif (state) {\n\t\t\tcurrentLocation.value = to;\n\t\t\thistoryState.value = state;\n\t\t\tif (pauseState && pauseState === from) {\n\t\t\t\tpauseState = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdelta = fromState ? state.position - fromState.position : 0;\n\t\t} else replace(to);\n\t\tlisteners.forEach((listener) => {\n\t\t\tlistener(currentLocation.value, from, {\n\t\t\t\tdelta,\n\t\t\t\ttype: \"pop\",\n\t\t\t\tdirection: delta ? delta > 0 ? \"forward\" : \"back\" : \"\"\n\t\t\t});\n\t\t});\n\t};\n\tfunction pauseListeners() {\n\t\tpauseState = currentLocation.value;\n\t}\n\tfunction listen(callback) {\n\t\tlisteners.push(callback);\n\t\tconst teardown = () => {\n\t\t\tconst index = listeners.indexOf(callback);\n\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t};\n\t\tteardowns.push(teardown);\n\t\treturn teardown;\n\t}\n\tfunction beforeUnloadListener() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tconst { history } = window;\n\t\t\tif (!history.state) return;\n\t\t\thistory.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), \"\");\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tfor (const teardown of teardowns) teardown();\n\t\tteardowns = [];\n\t\twindow.removeEventListener(\"popstate\", popStateHandler);\n\t\twindow.removeEventListener(\"pagehide\", beforeUnloadListener);\n\t\tdocument.removeEventListener(\"visibilitychange\", beforeUnloadListener);\n\t}\n\twindow.addEventListener(\"popstate\", popStateHandler);\n\twindow.addEventListener(\"pagehide\", beforeUnloadListener);\n\tdocument.addEventListener(\"visibilitychange\", beforeUnloadListener);\n\treturn {\n\t\tpauseListeners,\n\t\tlisten,\n\t\tdestroy\n\t};\n}\n/**\n* Creates a state object\n*/\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n\treturn {\n\t\tback,\n\t\tcurrent,\n\t\tforward,\n\t\treplaced,\n\t\tposition: window.history.length,\n\t\tscroll: computeScroll ? computeScrollPosition() : null\n\t};\n}\nfunction useHistoryStateNavigation(base) {\n\tconst { history, location } = window;\n\tconst currentLocation = { value: createCurrentLocation(base, location) };\n\tconst historyState = { value: history.state };\n\tif (!historyState.value) changeLocation(currentLocation.value, {\n\t\tback: null,\n\t\tcurrent: currentLocation.value,\n\t\tforward: null,\n\t\tposition: history.length - 1,\n\t\treplaced: true,\n\t\tscroll: null\n\t}, true);\n\tfunction changeLocation(to, state, replace) {\n\t\t/**\n\t\t* if a base tag is provided, and we are on a normal domain, we have to\n\t\t* respect the provided `base` attribute because pushState() will use it and\n\t\t* potentially erase anything before the `#` like at\n\t\t* https://github.com/vuejs/router/issues/685 where a base of\n\t\t* `/folder/#` but a base of `/` would erase the `/folder/` section. If\n\t\t* there is no host, the `` tag makes no sense and if there isn't a\n\t\t* base tag we can just use everything after the `#`.\n\t\t*/\n\t\tconst hashIndex = base.indexOf(\"#\");\n\t\tconst url = hashIndex > -1 ? (location.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n\t\ttry {\n\t\t\thistory[replace ? \"replaceState\" : \"pushState\"](state, \"\", url);\n\t\t\thistoryState.value = state;\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Error with push/replace State\", err);\n\t\t\telse console.error(err);\n\t\t\tlocation[replace ? \"replace\" : \"assign\"](url);\n\t\t}\n\t}\n\tfunction replace(to, data) {\n\t\tchangeLocation(to, assign({}, history.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);\n\t\tcurrentLocation.value = to;\n\t}\n\tfunction push(to, data) {\n\t\tconst currentState = assign({}, historyState.value, history.state, {\n\t\t\tforward: to,\n\t\t\tscroll: computeScrollPosition()\n\t\t});\n\t\tif (process.env.NODE_ENV !== \"production\" && !history.state) warn$1(\"history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\nhistory.replaceState(history.state, '', url)\\n\\nYou can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state\");\n\t\tchangeLocation(currentState.current, currentState, true);\n\t\tchangeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);\n\t\tcurrentLocation.value = to;\n\t}\n\treturn {\n\t\tlocation: currentLocation,\n\t\tstate: historyState,\n\t\tpush,\n\t\treplace\n\t};\n}\n/**\n* Creates an HTML5 history. Most common history for single page applications.\n*\n* @param base -\n*/\nfunction createWebHistory(base) {\n\tbase = normalizeBase(base);\n\tconst historyNavigation = useHistoryStateNavigation(base);\n\tconst historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n\tfunction go(delta, triggerListeners = true) {\n\t\tif (!triggerListeners) historyListeners.pauseListeners();\n\t\thistory.go(delta);\n\t}\n\tconst routerHistory = assign({\n\t\tlocation: \"\",\n\t\tbase,\n\t\tgo,\n\t\tcreateHref: createHref.bind(null, base)\n\t}, historyNavigation, historyListeners);\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.location.value\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.state.value\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/history/hash.ts\n/**\n* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n* handle any URL is not possible.\n*\n* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n* calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n* after the `#`).\n*\n* @example\n* ```js\n* // at https://example.com/folder\n* createWebHashHistory() // gives a url of `https://example.com/folder#`\n* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n* // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n* // you should avoid doing this because it changes the original url and breaks copying urls\n* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n*\n* // at file:///usr/etc/folder/index.html\n* // for locations with no `host`, the base is ignored\n* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n* ```\n*/\nfunction createWebHashHistory(base) {\n\tbase = location.host ? base || location.pathname + location.search : \"\";\n\tif (!base.includes(\"#\")) base += \"#\";\n\tif (process.env.NODE_ENV !== \"production\" && !base.endsWith(\"#/\") && !base.endsWith(\"#\")) warn$1(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, \"#\")}\".`);\n\treturn createWebHistory(base);\n}\n//#endregion\n//#region src/history/memory.ts\n/**\n* Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n*\n* @param base - Base applied to all urls, defaults to '/'\n* @returns a history object that can be passed to the router constructor\n*/\nfunction createMemoryHistory(base = \"\") {\n\tlet listeners = [];\n\tlet queue = [[\"\", {}]];\n\tlet position = 0;\n\tbase = normalizeBase(base);\n\tfunction setLocation(location, state = {}) {\n\t\tposition++;\n\t\tif (position !== queue.length) queue.splice(position);\n\t\tqueue.push([location, state]);\n\t}\n\tfunction triggerListeners(to, from, { direction, delta }) {\n\t\tconst info = {\n\t\t\tdirection,\n\t\t\tdelta,\n\t\t\ttype: \"pop\"\n\t\t};\n\t\tfor (const callback of listeners) callback(to, from, info);\n\t}\n\tconst routerHistory = {\n\t\tlocation: \"\",\n\t\tstate: {},\n\t\tbase,\n\t\tcreateHref: createHref.bind(null, base),\n\t\treplace(to, state) {\n\t\t\tqueue.splice(position--, 1);\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tpush(to, state) {\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tlisten(callback) {\n\t\t\tlisteners.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = listeners.indexOf(callback);\n\t\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t\t};\n\t\t},\n\t\tdestroy() {\n\t\t\tlisteners = [];\n\t\t\tqueue = [[\"\", {}]];\n\t\t\tposition = 0;\n\t\t},\n\t\tgo(delta, shouldTrigger = true) {\n\t\t\tconst from = this.location;\n\t\t\tconst direction = delta < 0 ? \"back\" : \"forward\";\n\t\t\tposition = Math.max(0, Math.min(position + delta, queue.length - 1));\n\t\t\tif (shouldTrigger) triggerListeners(this.location, from, {\n\t\t\t\tdirection,\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t};\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][0]\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][1]\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/matcher/pathTokenizer.ts\nconst ROOT_TOKEN = {\n\ttype: 0,\n\tvalue: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n\tif (!path) return [[]];\n\tif (path === \"/\") return [[ROOT_TOKEN]];\n\tif (!path.startsWith(\"/\")) throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n\tfunction crash(message) {\n\t\tthrow new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n\t}\n\tlet state = 0;\n\tlet previousState = state;\n\tconst tokens = [];\n\tlet segment;\n\tfunction finalizeSegment() {\n\t\tif (segment) tokens.push(segment);\n\t\tsegment = [];\n\t}\n\tlet i = 0;\n\tlet char;\n\tlet buffer = \"\";\n\tlet customRe = \"\";\n\tfunction consumeBuffer() {\n\t\tif (!buffer) return;\n\t\tif (state === 0) segment.push({\n\t\t\ttype: 0,\n\t\t\tvalue: buffer\n\t\t});\n\t\telse if (state === 1 || state === 2 || state === 3) {\n\t\t\tif (segment.length > 1 && (char === \"*\" || char === \"+\")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n\t\t\tsegment.push({\n\t\t\t\ttype: 1,\n\t\t\t\tvalue: buffer,\n\t\t\t\tregexp: customRe,\n\t\t\t\trepeatable: char === \"*\" || char === \"+\",\n\t\t\t\toptional: char === \"*\" || char === \"?\"\n\t\t\t});\n\t\t} else crash(\"Invalid state to consume buffer\");\n\t\tbuffer = \"\";\n\t}\n\tfunction addCharToBuffer() {\n\t\tbuffer += char;\n\t}\n\twhile (i < path.length) {\n\t\tchar = path[i++];\n\t\tswitch (state) {\n\t\t\tcase 0:\n\t\t\t\tif (char === \"\\\\\") {\n\t\t\t\t\tpreviousState = state;\n\t\t\t\t\tstate = 4;\n\t\t\t\t} else if (char === \"/\") {\n\t\t\t\t\tif (buffer) consumeBuffer();\n\t\t\t\t\tfinalizeSegment();\n\t\t\t\t} else if (char === \":\") {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 1;\n\t\t\t\t} else addCharToBuffer();\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\taddCharToBuffer();\n\t\t\t\tstate = previousState;\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tif (char === \"(\") state = 2;\n\t\t\t\telse if (VALID_PARAM_RE.test(char)) addCharToBuffer();\n\t\t\t\telse {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 0;\n\t\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tif (char === \")\") if (customRe[customRe.length - 1] == \"\\\\\") customRe = customRe.slice(0, -1) + char;\n\t\t\t\telse state = 3;\n\t\t\t\telse customRe += char;\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tconsumeBuffer();\n\t\t\t\tstate = 0;\n\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\tcustomRe = \"\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcrash(\"Unknown state\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tif (state === 2) crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n\tconsumeBuffer();\n\tfinalizeSegment();\n\treturn tokens;\n}\n//#endregion\n//#region src/matcher/pathParserRanker.ts\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n\tsensitive: false,\n\tstrict: false,\n\tstart: true,\n\tend: true\n};\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n* Creates a path parser from an array of Segments (a segment is an array of Tokens)\n*\n* @param segments - array of segments returned by tokenizePath\n* @param extraOptions - optional options for the regexp\n* @returns a PathParser\n*/\nfunction tokensToParser(segments, extraOptions) {\n\tconst options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n\tconst score = [];\n\tlet pattern = options.start ? \"^\" : \"\";\n\tconst keys = [];\n\tfor (const segment of segments) {\n\t\tconst segmentScores = segment.length ? [] : [90];\n\t\tif (options.strict && !segment.length) pattern += \"/\";\n\t\tfor (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n\t\t\tconst token = segment[tokenIndex];\n\t\t\tlet subSegmentScore = 40 + (options.sensitive ? .25 : 0);\n\t\t\tif (token.type === 0) {\n\t\t\t\tif (!tokenIndex) pattern += \"/\";\n\t\t\t\tpattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n\t\t\t\tsubSegmentScore += 40;\n\t\t\t} else if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional, regexp } = token;\n\t\t\t\tkeys.push({\n\t\t\t\t\tname: value,\n\t\t\t\t\trepeatable,\n\t\t\t\t\toptional\n\t\t\t\t});\n\t\t\t\tconst re = regexp ? regexp : BASE_PARAM_PATTERN;\n\t\t\t\tif (re !== BASE_PARAM_PATTERN) {\n\t\t\t\t\tsubSegmentScore += 10;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tnew RegExp(`(${re})`);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` + err.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n\t\t\t\tif (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n\t\t\t\tif (optional) subPattern += \"?\";\n\t\t\t\tpattern += subPattern;\n\t\t\t\tsubSegmentScore += 20;\n\t\t\t\tif (optional) subSegmentScore += -8;\n\t\t\t\tif (repeatable) subSegmentScore += -20;\n\t\t\t\tif (re === \".*\") subSegmentScore += -50;\n\t\t\t}\n\t\t\tsegmentScores.push(subSegmentScore);\n\t\t}\n\t\tscore.push(segmentScores);\n\t}\n\tif (options.strict && options.end) {\n\t\tconst i = score.length - 1;\n\t\tscore[i][score[i].length - 1] += .7000000000000001;\n\t}\n\tif (!options.strict) pattern += \"/?\";\n\tif (options.end) pattern += \"$\";\n\telse if (options.strict && !pattern.endsWith(\"/\")) pattern += \"(?:/|$)\";\n\tconst re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n\tfunction parse(path) {\n\t\tconst match = path.match(re);\n\t\tconst params = {};\n\t\tif (!match) return null;\n\t\tfor (let i = 1; i < match.length; i++) {\n\t\t\tconst value = match[i] || \"\";\n\t\t\tconst key = keys[i - 1];\n\t\t\tparams[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n\t\t}\n\t\treturn params;\n\t}\n\tfunction stringify(params) {\n\t\tlet path = \"\";\n\t\tlet avoidDuplicatedSlash = false;\n\t\tfor (const segment of segments) {\n\t\t\tif (!avoidDuplicatedSlash || !path.endsWith(\"/\")) path += \"/\";\n\t\t\tavoidDuplicatedSlash = false;\n\t\t\tfor (const token of segment) if (token.type === 0) path += token.value;\n\t\t\telse if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional } = token;\n\t\t\t\tconst param = value in params ? params[value] : \"\";\n\t\t\t\tif (isArray(param) && !repeatable) throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n\t\t\t\tconst text = isArray(param) ? param.join(\"/\") : param;\n\t\t\t\tif (!text) if (optional) {\n\t\t\t\t\tif (segment.length < 2) if (path.endsWith(\"/\")) path = path.slice(0, -1);\n\t\t\t\t\telse avoidDuplicatedSlash = true;\n\t\t\t\t} else throw new Error(`Missing required param \"${value}\"`);\n\t\t\t\tpath += text;\n\t\t\t}\n\t\t}\n\t\treturn path || \"/\";\n\t}\n\treturn {\n\t\tre,\n\t\tscore,\n\t\tkeys,\n\t\tparse,\n\t\tstringify\n\t};\n}\n/**\n* Compares an array of numbers as used in PathParser.score and returns a\n* number. This function can be used to `sort` an array\n*\n* @param a - first array of numbers\n* @param b - second array of numbers\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n* should be sorted first\n*/\nfunction compareScoreArray(a, b) {\n\tlet i = 0;\n\twhile (i < a.length && i < b.length) {\n\t\tconst diff = b[i] - a[i];\n\t\tif (diff) return diff;\n\t\ti++;\n\t}\n\tif (a.length < b.length) return a.length === 1 && a[0] === 80 ? -1 : 1;\n\telse if (a.length > b.length) return b.length === 1 && b[0] === 80 ? 1 : -1;\n\treturn 0;\n}\n/**\n* Compare function that can be used with `sort` to sort an array of PathParser\n*\n* @param a - first PathParser\n* @param b - second PathParser\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n*/\nfunction comparePathParserScore(a, b) {\n\tlet i = 0;\n\tconst aScore = a.score;\n\tconst bScore = b.score;\n\twhile (i < aScore.length && i < bScore.length) {\n\t\tconst comp = compareScoreArray(aScore[i], bScore[i]);\n\t\tif (comp) return comp;\n\t\ti++;\n\t}\n\tif (Math.abs(bScore.length - aScore.length) === 1) {\n\t\tif (isLastScoreNegative(aScore)) return 1;\n\t\tif (isLastScoreNegative(bScore)) return -1;\n\t}\n\treturn bScore.length - aScore.length;\n}\n/**\n* This allows detecting splats at the end of a path: /home/:id(.*)*\n*\n* @param score - score to check\n* @returns true if the last entry is negative\n*/\nfunction isLastScoreNegative(score) {\n\tconst last = score[score.length - 1];\n\treturn score.length > 0 && last[last.length - 1] < 0;\n}\nconst PATH_PARSER_OPTIONS_DEFAULTS = {\n\tstrict: false,\n\tend: true,\n\tsensitive: false\n};\n//#endregion\n//#region src/matcher/pathMatcher.ts\nfunction createRouteRecordMatcher(record, parent, options) {\n\tconst parser = tokensToParser(tokenizePath(record.path), options);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst existingKeys = /* @__PURE__ */ new Set();\n\t\tfor (const key of parser.keys) {\n\t\t\tif (existingKeys.has(key.name)) warn$1(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n\t\t\texistingKeys.add(key.name);\n\t\t}\n\t}\n\tconst matcher = assign(parser, {\n\t\trecord,\n\t\tparent,\n\t\tchildren: [],\n\t\talias: []\n\t});\n\tif (parent) {\n\t\tif (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);\n\t}\n\treturn matcher;\n}\n//#endregion\n//#region src/matcher/index.ts\n/**\n* Creates a Router Matcher.\n*\n* @internal\n* @param routes - array of initial routes\n* @param globalOptions - global route options\n*/\nfunction createRouterMatcher(routes, globalOptions) {\n\tconst matchers = [];\n\tconst matcherMap = /* @__PURE__ */ new Map();\n\tglobalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);\n\tfunction getRecordMatcher(name) {\n\t\treturn matcherMap.get(name);\n\t}\n\tfunction addRoute(record, parent, originalRecord) {\n\t\tconst isRootAdd = !originalRecord;\n\t\tconst mainNormalizedRecord = normalizeRouteRecord(record);\n\t\tif (process.env.NODE_ENV !== \"production\") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n\t\tmainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n\t\tconst options = mergeOptions(globalOptions, record);\n\t\tconst normalizedRecords = [mainNormalizedRecord];\n\t\tif (\"alias\" in record) {\n\t\t\tconst aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n\t\t\tfor (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n\t\t\t\tcomponents: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n\t\t\t\tpath: alias,\n\t\t\t\taliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n\t\t\t})));\n\t\t}\n\t\tlet matcher;\n\t\tlet originalMatcher;\n\t\tfor (const normalizedRecord of normalizedRecords) {\n\t\t\tconst { path } = normalizedRecord;\n\t\t\tif (parent && path[0] !== \"/\") {\n\t\t\t\tconst parentPath = parent.record.path;\n\t\t\t\tconst connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n\t\t\t\tnormalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") throw new Error(\"Catch all routes (\\\"*\\\") must now be defined using a param with a custom regexp.\\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.\");\n\t\t\tmatcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\") checkMissingParamsInAbsolutePath(matcher, parent);\n\t\t\tif (originalRecord) {\n\t\t\t\toriginalRecord.alias.push(matcher);\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameParams(originalRecord, matcher);\n\t\t\t} else {\n\t\t\t\toriginalMatcher = originalMatcher || matcher;\n\t\t\t\tif (originalMatcher !== matcher) originalMatcher.alias.push(matcher);\n\t\t\t\tif (isRootAdd && record.name && !isAliasRecord(matcher)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameNameAsAncestor(record, parent);\n\t\t\t\t\tremoveRoute(record.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isMatchable(matcher)) insertMatcher(matcher);\n\t\t\tif (mainNormalizedRecord.children) {\n\t\t\t\tconst children = mainNormalizedRecord.children;\n\t\t\t\tfor (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n\t\t\t}\n\t\t\toriginalRecord = originalRecord || matcher;\n\t\t}\n\t\treturn originalMatcher ? () => {\n\t\t\tremoveRoute(originalMatcher);\n\t\t} : noop;\n\t}\n\tfunction removeRoute(matcherRef) {\n\t\tif (isRouteName(matcherRef)) {\n\t\t\tconst matcher = matcherMap.get(matcherRef);\n\t\t\tif (matcher) {\n\t\t\t\tmatcherMap.delete(matcherRef);\n\t\t\t\tmatchers.splice(matchers.indexOf(matcher), 1);\n\t\t\t\tmatcher.children.forEach(removeRoute);\n\t\t\t\tmatcher.alias.forEach(removeRoute);\n\t\t\t}\n\t\t} else {\n\t\t\tconst index = matchers.indexOf(matcherRef);\n\t\t\tif (index > -1) {\n\t\t\t\tmatchers.splice(index, 1);\n\t\t\t\tif (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);\n\t\t\t\tmatcherRef.children.forEach(removeRoute);\n\t\t\t\tmatcherRef.alias.forEach(removeRoute);\n\t\t\t}\n\t\t}\n\t}\n\tfunction getRoutes() {\n\t\treturn matchers;\n\t}\n\tfunction insertMatcher(matcher) {\n\t\tconst index = findInsertionIndex(matcher, matchers);\n\t\tmatchers.splice(index, 0, matcher);\n\t\tif (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);\n\t}\n\tfunction resolve(location, currentLocation) {\n\t\tlet matcher;\n\t\tlet params = {};\n\t\tlet path;\n\t\tlet name;\n\t\tif (\"name\" in location && location.name) {\n\t\t\tmatcher = matcherMap.get(location.name);\n\t\t\tif (!matcher) throw createRouterError(1, { location });\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconst invalidParams = Object.keys(location.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n\t\t\t\tif (invalidParams.length) {\n\t\t\t\t\tconst isInherited = !matcher.keys.length && invalidParams.some((name) => name in currentLocation.params);\n\t\t\t\t\twarn$1(`Discarded invalid param(s) \"${invalidParams.join(\"\\\", \\\"\")}\" when navigating.` + (isInherited ? ` If you are using a catch-all route with a named redirect, pass an empty \\`params\\` object: \\`redirect: { name: '...', params: {} }\\`.` : \"\") + ` See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location.params && pickParams(location.params, matcher.keys.map((k) => k.name)));\n\t\t\tpath = matcher.stringify(params);\n\t\t} else if (location.path != null) {\n\t\t\tpath = location.path;\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) warn$1(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n\t\t\tmatcher = matchers.find((m) => m.re.test(path));\n\t\t\tif (matcher) {\n\t\t\t\tparams = matcher.parse(path);\n\t\t\t\tname = matcher.record.name;\n\t\t\t\tmatcher.keys.forEach((key) => {\n\t\t\t\t\tif (key.optional && !params[key.name]) delete params[key.name];\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tmatcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));\n\t\t\tif (!matcher) throw createRouterError(1, {\n\t\t\t\tlocation,\n\t\t\t\tcurrentLocation\n\t\t\t});\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign({}, currentLocation.params, location.params);\n\t\t\tpath = matcher.stringify(params);\n\t\t}\n\t\tconst matched = [];\n\t\tlet parentMatcher = matcher;\n\t\twhile (parentMatcher) {\n\t\t\tmatched.unshift(parentMatcher.record);\n\t\t\tparentMatcher = parentMatcher.parent;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tpath,\n\t\t\tparams,\n\t\t\tmatched,\n\t\t\tmeta: mergeMetaFields(matched)\n\t\t};\n\t}\n\troutes.forEach((route) => addRoute(route));\n\tfunction clearRoutes() {\n\t\tmatchers.length = 0;\n\t\tmatcherMap.clear();\n\t}\n\treturn {\n\t\taddRoute,\n\t\tresolve,\n\t\tremoveRoute,\n\t\tclearRoutes,\n\t\tgetRoutes,\n\t\tgetRecordMatcher\n\t};\n}\n/**\n* Picks an object param to contain only specified keys.\n*\n* @param params - params object to pick from\n* @param keys - keys to pick\n*/\nfunction pickParams(params, keys) {\n\tconst newParams = {};\n\tfor (const key of keys) if (key in params) newParams[key] = params[key];\n\treturn newParams;\n}\n/**\n* Normalizes a RouteRecordRaw. Creates a copy\n*\n* @param record\n* @returns the normalized version\n*/\nfunction normalizeRouteRecord(record) {\n\tconst normalized = {\n\t\tpath: record.path,\n\t\tredirect: record.redirect,\n\t\tname: record.name,\n\t\tmeta: record.meta || {},\n\t\taliasOf: record.aliasOf,\n\t\tbeforeEnter: record.beforeEnter,\n\t\tprops: normalizeRecordProps(record),\n\t\tchildren: record.children || [],\n\t\tinstances: {},\n\t\tleaveGuards: /* @__PURE__ */ new Set(),\n\t\tupdateGuards: /* @__PURE__ */ new Set(),\n\t\tenterCallbacks: {},\n\t\tcomponents: \"components\" in record ? record.components || null : record.component && { default: record.component }\n\t};\n\tObject.defineProperty(normalized, \"mods\", { value: {} });\n\treturn normalized;\n}\n/**\n* Normalize the optional `props` in a record to always be an object similar to\n* components. Also accept a boolean for components.\n* @param record\n*/\nfunction normalizeRecordProps(record) {\n\tconst propsObject = {};\n\tconst props = record.props || false;\n\tif (\"component\" in record) propsObject.default = props;\n\telse for (const name in record.components) propsObject[name] = typeof props === \"object\" ? props[name] : props;\n\treturn propsObject;\n}\n/**\n* Checks if a record or any of its parent is an alias\n* @param record\n*/\nfunction isAliasRecord(record) {\n\twhile (record) {\n\t\tif (record.record.aliasOf) return true;\n\t\trecord = record.parent;\n\t}\n\treturn false;\n}\n/**\n* Merge meta fields of an array of records\n*\n* @param matched - array of matched records\n*/\nfunction mergeMetaFields(matched) {\n\treturn matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction isSameParam(a, b) {\n\treturn a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\n/**\n* Check if a path and its alias have the same required params\n*\n* @param a - original record\n* @param b - alias record\n*/\nfunction checkSameParams(a, b) {\n\tfor (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n\tfor (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n}\n/**\n* A route with a name and a child with an empty path without a name should warn when adding the route\n*\n* @param mainNormalizedRecord - RouteRecordNormalized\n* @param parent - RouteRecordMatcher\n*/\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n\tif (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path && mainNormalizedRecord.children.length === 0) warn$1(`The route named \"${String(parent.record.name)}\" has a child without a name, an empty path, and no children. This is probably a mistake: using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to silence the warning.`);\n}\nfunction checkSameNameAsAncestor(record, parent) {\n\tfor (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? \"child\" : \"descendant\"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n\tfor (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) return warn$1(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n}\n/**\n* Performs a binary search to find the correct insertion index for a new matcher.\n*\n* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n*\n* @param matcher - new matcher to be inserted\n* @param matchers - existing matchers\n*/\nfunction findInsertionIndex(matcher, matchers) {\n\tlet lower = 0;\n\tlet upper = matchers.length;\n\twhile (lower !== upper) {\n\t\tconst mid = lower + upper >> 1;\n\t\tif (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;\n\t\telse lower = mid + 1;\n\t}\n\tconst insertionAncestor = getInsertionAncestor(matcher);\n\tif (insertionAncestor) {\n\t\tupper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n\t\tif (process.env.NODE_ENV !== \"production\" && upper < 0) warn$1(`Finding ancestor route \"${insertionAncestor.record.path}\" failed for \"${matcher.record.path}\"`);\n\t}\n\treturn upper;\n}\nfunction getInsertionAncestor(matcher) {\n\tlet ancestor = matcher;\n\twhile (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;\n}\n/**\n* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n* a component, or name, or redirect, are just used to group other routes.\n* @param matcher\n* @param matcher.record record of the matcher\n* @returns\n*/\nfunction isMatchable({ record }) {\n\treturn !!(record.name || record.components && Object.keys(record.components).length || record.redirect);\n}\n//#endregion\n//#region src/RouterLink.ts\n/**\n* Returns the internal behavior of a {@link RouterLink} without the rendering part.\n*\n* @param props - a `to` location and an optional `replace` flag\n*/\nfunction useLink(props) {\n\tconst router = inject(routerKey);\n\tconst currentRoute = inject(routeLocationKey);\n\tlet hasPrevious = false;\n\tlet previousTo = null;\n\tconst route = computed(() => {\n\t\tconst to = unref(props.to);\n\t\tif (process.env.NODE_ENV !== \"production\" && (!hasPrevious || to !== previousTo)) {\n\t\t\tif (!isRouteLocation(to)) if (hasPrevious) warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- previous to:`, previousTo, `\\n- props:`, props);\n\t\t\telse warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- props:`, props);\n\t\t\tpreviousTo = to;\n\t\t\thasPrevious = true;\n\t\t}\n\t\treturn router.resolve(to);\n\t});\n\tconst activeRecordIndex = computed(() => {\n\t\tconst { matched } = route.value;\n\t\tconst { length } = matched;\n\t\tconst routeMatched = matched[length - 1];\n\t\tconst currentMatched = currentRoute.matched;\n\t\tif (!routeMatched || !currentMatched.length) return -1;\n\t\tconst index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n\t\tif (index > -1) return index;\n\t\tconst parentRecordPath = getOriginalPath(matched[length - 2]);\n\t\treturn length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index;\n\t});\n\tconst isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n\tconst isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n\tfunction navigate(e = {}) {\n\t\tif (guardEvent(e)) {\n\t\t\tconst p = router[unref(props.replace) ? \"replace\" : \"push\"](unref(props.to)).catch(noop);\n\t\t\tif (props.viewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document) document.startViewTransition(() => p);\n\t\t\treturn p;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n\t\tconst instance = getCurrentInstance();\n\t\tif (instance) {\n\t\t\tconst linkContextDevtools = {\n\t\t\t\troute: route.value,\n\t\t\t\tisActive: isActive.value,\n\t\t\t\tisExactActive: isExactActive.value,\n\t\t\t\terror: null\n\t\t\t};\n\t\t\tinstance.__vrl_devtools = instance.__vrl_devtools || [];\n\t\t\tinstance.__vrl_devtools.push(linkContextDevtools);\n\t\t\twatchEffect(() => {\n\t\t\t\tlinkContextDevtools.route = route.value;\n\t\t\t\tlinkContextDevtools.isActive = isActive.value;\n\t\t\t\tlinkContextDevtools.isExactActive = isExactActive.value;\n\t\t\t\tlinkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : \"Invalid \\\"to\\\" value\";\n\t\t\t}, { flush: \"post\" });\n\t\t}\n\t}\n\t/**\n\t* NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n\t*/\n\treturn {\n\t\troute,\n\t\thref: computed(() => route.value.href),\n\t\tisActive,\n\t\tisExactActive,\n\t\tnavigate\n\t};\n}\nfunction preferSingleVNode(vnodes) {\n\treturn vnodes.length === 1 ? vnodes[0] : vnodes;\n}\n/**\n* Component to render a link that triggers a navigation on click.\n*/\nconst RouterLink = /* @__PURE__ */ defineComponent({\n\tname: \"RouterLink\",\n\tcompatConfig: { MODE: 3 },\n\tprops: {\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\trequired: true\n\t\t},\n\t\treplace: Boolean,\n\t\tactiveClass: String,\n\t\texactActiveClass: String,\n\t\tcustom: Boolean,\n\t\tariaCurrentValue: {\n\t\t\ttype: String,\n\t\t\tdefault: \"page\"\n\t\t},\n\t\tviewTransition: Boolean\n\t},\n\tuseLink,\n\tsetup(props, { slots }) {\n\t\tconst link = reactive(useLink(props));\n\t\tconst { options } = inject(routerKey);\n\t\tconst elClass = computed(() => ({\n\t\t\t[getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n\t\t\t[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n\t\t}));\n\t\treturn () => {\n\t\t\tconst children = slots.default && preferSingleVNode(slots.default(link));\n\t\t\treturn props.custom ? children : h(\"a\", {\n\t\t\t\t\"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n\t\t\t\thref: link.href,\n\t\t\t\tonClick: link.navigate,\n\t\t\t\tclass: elClass.value\n\t\t\t}, children);\n\t\t};\n\t}\n});\nfunction guardEvent(e) {\n\tif (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n\tif (e.defaultPrevented) return;\n\tif (e.button !== void 0 && e.button !== 0) return;\n\tif (e.currentTarget && e.currentTarget.getAttribute) {\n\t\tconst target = e.currentTarget.getAttribute(\"target\");\n\t\tif (/\\b_blank\\b/i.test(target)) return;\n\t}\n\tif (e.preventDefault) e.preventDefault();\n\treturn true;\n}\nfunction includesParams(outer, inner) {\n\tfor (const key in inner) {\n\t\tconst innerValue = inner[key];\n\t\tconst outerValue = outer[key];\n\t\tif (typeof innerValue === \"string\") {\n\t\t\tif (innerValue !== outerValue) return false;\n\t\t} else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value.valueOf() !== outerValue[i].valueOf())) return false;\n\t}\n\treturn true;\n}\n/**\n* Get the original path value of a record by following its aliasOf\n* @param record\n*/\nfunction getOriginalPath(record) {\n\treturn record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\n/**\n* Utility class to get the active class based on defaults.\n* @param propClass\n* @param globalClass\n* @param defaultClass\n*/\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\n//#endregion\n//#region src/RouterView.ts\nconst RouterViewImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterView\",\n\tinheritAttrs: false,\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: \"default\"\n\t\t},\n\t\troute: Object\n\t},\n\tcompatConfig: { MODE: 3 },\n\tsetup(props, { attrs, slots }) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n\t\tconst injectedRoute = inject(routerViewLocationKey);\n\t\tconst routeToDisplay = computed(() => props.route || injectedRoute.value);\n\t\tconst injectedDepth = inject(viewDepthKey, 0);\n\t\tconst depth = computed(() => {\n\t\t\tlet initialDepth = unref(injectedDepth);\n\t\t\tconst { matched } = routeToDisplay.value;\n\t\t\tlet matchedRoute;\n\t\t\twhile ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;\n\t\t\treturn initialDepth;\n\t\t});\n\t\tconst matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n\t\tprovide(viewDepthKey, computed(() => depth.value + 1));\n\t\tprovide(matchedRouteKey, matchedRouteRef);\n\t\tprovide(routerViewLocationKey, routeToDisplay);\n\t\tconst viewRef = ref();\n\t\twatch(() => [\n\t\t\tviewRef.value,\n\t\t\tmatchedRouteRef.value,\n\t\t\tprops.name\n\t\t], ([instance, to, name], [oldInstance, from, _oldName]) => {\n\t\t\tif (to) {\n\t\t\t\tto.instances[name] = instance;\n\t\t\t\tif (from && from !== to && instance && instance === oldInstance) {\n\t\t\t\t\tif (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards;\n\t\t\t\t\tif (!to.updateGuards.size) to.updateGuards = from.updateGuards;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n\t\t}, { flush: \"post\" });\n\t\treturn () => {\n\t\t\tconst route = routeToDisplay.value;\n\t\t\tconst currentName = props.name;\n\t\t\tconst matchedRoute = matchedRouteRef.value;\n\t\t\tconst ViewComponent = matchedRoute && matchedRoute.components[currentName];\n\t\t\tif (!ViewComponent) return normalizeSlot(slots.default, {\n\t\t\t\tComponent: ViewComponent,\n\t\t\t\troute\n\t\t\t});\n\t\t\tconst routePropsOption = matchedRoute.props[currentName];\n\t\t\tconst routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n\t\t\tconst onVnodeUnmounted = (vnode) => {\n\t\t\t\tif (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;\n\t\t\t};\n\t\t\tconst component = h(ViewComponent, assign({}, routeProps, attrs, {\n\t\t\t\tonVnodeUnmounted,\n\t\t\t\tref: viewRef\n\t\t\t}));\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) {\n\t\t\t\tconst info = {\n\t\t\t\t\tdepth: depth.value,\n\t\t\t\t\tname: matchedRoute.name,\n\t\t\t\t\tpath: matchedRoute.path,\n\t\t\t\t\tmeta: matchedRoute.meta\n\t\t\t\t};\n\t\t\t\t(isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => {\n\t\t\t\t\tinstance.__vrv_devtools = info;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn normalizeSlot(slots.default, {\n\t\t\t\tComponent: component,\n\t\t\t\troute\n\t\t\t}) || component;\n\t\t};\n\t}\n});\nfunction normalizeSlot(slot, data) {\n\tif (!slot) return null;\n\tconst slotContent = slot(data);\n\treturn slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n/**\n* Component to display the current route the user is at.\n*/\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n\tconst instance = getCurrentInstance();\n\tconst parentName = instance.parent && instance.parent.type.name;\n\tconst parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n\tif (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n\t\tconst comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n\t\twarn$1(` can no longer be used directly inside <${comp}>.\\nUse slot props instead:\\n\\n\\n <${comp}>\\n \\n \\n`);\n\t}\n}\n//#endregion\n//#region src/router.ts\n/**\n* Creates a Router instance that can be used by a Vue app.\n*\n* @param options - {@link RouterOptions}\n*/\nfunction createRouter(options) {\n\tconst matcher = createRouterMatcher(options.routes, options);\n\tconst parseQuery$1 = options.parseQuery || parseQuery;\n\tconst stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n\tconst routerHistory = options.history;\n\tif (process.env.NODE_ENV !== \"production\" && !routerHistory) throw new Error(\"Provide the \\\"history\\\" option when calling \\\"createRouter()\\\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history\");\n\tconst beforeGuards = useCallbacks();\n\tconst beforeResolveGuards = useCallbacks();\n\tconst afterGuards = useCallbacks();\n\tconst currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n\tlet pendingLocation = START_LOCATION_NORMALIZED;\n\tif (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) history.scrollRestoration = \"manual\";\n\tconst normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n\tconst encodeParams = applyToParams.bind(null, encodeParam);\n\tconst decodeParams = applyToParams.bind(null, decode);\n\tfunction addRoute(parentOrRoute, route) {\n\t\tlet parent;\n\t\tlet record;\n\t\tif (isRouteName(parentOrRoute)) {\n\t\t\tparent = matcher.getRecordMatcher(parentOrRoute);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !parent) warn$1(`Parent route \"${String(parentOrRoute)}\" not found when adding child route`, route);\n\t\t\trecord = route;\n\t\t} else record = parentOrRoute;\n\t\treturn matcher.addRoute(record, parent);\n\t}\n\tfunction removeRoute(name) {\n\t\tconst recordMatcher = matcher.getRecordMatcher(name);\n\t\tif (recordMatcher) matcher.removeRoute(recordMatcher);\n\t\telse if (process.env.NODE_ENV !== \"production\") warn$1(`Cannot remove non-existent route \"${String(name)}\"`);\n\t}\n\tfunction getRoutes() {\n\t\treturn matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n\t}\n\tfunction hasRoute(name) {\n\t\treturn !!matcher.getRecordMatcher(name);\n\t}\n\tfunction resolve(rawLocation, currentLocation) {\n\t\tcurrentLocation = assign({}, currentLocation || currentRoute.value);\n\t\tif (typeof rawLocation === \"string\") {\n\t\t\tconst locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n\t\t\tconst matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n\t\t\tconst href = routerHistory.createHref(locationNormalized.fullPath);\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation}\"`);\n\t\t\t}\n\t\t\treturn assign(locationNormalized, matchedRoute, {\n\t\t\t\tparams: decodeParams(matchedRoute.params),\n\t\t\t\tredirectedFrom: void 0,\n\t\t\t\thref\n\t\t\t});\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\" && !isRouteLocation(rawLocation)) {\n\t\t\twarn$1(`router.resolve() was passed an invalid location. This will fail in production.\\n- Location:`, rawLocation);\n\t\t\treturn resolve({});\n\t\t}\n\t\tlet matcherLocation;\n\t\tif (rawLocation.path != null) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && Object.keys(rawLocation.params).length) warn$1(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n\t\t\tmatcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });\n\t\t} else {\n\t\t\tconst targetParams = assign({}, rawLocation.params);\n\t\t\tfor (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];\n\t\t\tmatcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) });\n\t\t\tcurrentLocation.params = encodeParams(currentLocation.params);\n\t\t}\n\t\tconst matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n\t\tconst hash = rawLocation.hash || \"\";\n\t\tif (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) warn$1(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n\t\tmatchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n\t\tconst fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n\t\t\thash: encodeHash(hash),\n\t\t\tpath: matchedRoute.path\n\t\t}));\n\t\tconst href = routerHistory.createHref(fullPath);\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation.path != null ? rawLocation.path : rawLocation}\"`);\n\t\t}\n\t\treturn assign({\n\t\t\tfullPath,\n\t\t\thash,\n\t\t\tquery: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n\t\t}, matchedRoute, {\n\t\t\tredirectedFrom: void 0,\n\t\t\thref\n\t\t});\n\t}\n\tfunction locationAsObject(to) {\n\t\treturn typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n\t}\n\tfunction checkCanceledNavigation(to, from) {\n\t\tif (pendingLocation !== to) return createRouterError(8, {\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t}\n\tfunction push(to) {\n\t\treturn pushWithRedirect(to);\n\t}\n\tfunction replace(to) {\n\t\treturn push(assign(locationAsObject(to), { replace: true }));\n\t}\n\tfunction handleRedirectRecord(to, from) {\n\t\tconst lastMatched = to.matched[to.matched.length - 1];\n\t\tif (lastMatched && lastMatched.redirect) {\n\t\t\tconst { redirect } = lastMatched;\n\t\t\tlet newTargetLocation = typeof redirect === \"function\" ? redirect(to, from) : redirect;\n\t\t\tif (typeof newTargetLocation === \"string\") {\n\t\t\t\tnewTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };\n\t\t\t\tnewTargetLocation.params = {};\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && newTargetLocation.path == null && !(\"name\" in newTargetLocation)) {\n\t\t\t\twarn$1(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n\t\t\t\tthrow new Error(\"Invalid redirect\");\n\t\t\t}\n\t\t\treturn assign({\n\t\t\t\tquery: to.query,\n\t\t\t\thash: to.hash,\n\t\t\t\tparams: newTargetLocation.path != null ? {} : to.params\n\t\t\t}, newTargetLocation);\n\t\t}\n\t}\n\tfunction pushWithRedirect(to, redirectedFrom) {\n\t\tconst targetLocation = pendingLocation = resolve(to);\n\t\tconst from = currentRoute.value;\n\t\tconst data = to.state;\n\t\tconst force = to.force;\n\t\tconst replace = to.replace === true;\n\t\tconst shouldRedirect = handleRedirectRecord(targetLocation, from);\n\t\tif (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n\t\t\tstate: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n\t\t\tforce,\n\t\t\treplace\n\t\t}), redirectedFrom || targetLocation);\n\t\tconst toLocation = targetLocation;\n\t\ttoLocation.redirectedFrom = redirectedFrom;\n\t\tlet failure;\n\t\tif (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n\t\t\tfailure = createRouterError(16, {\n\t\t\t\tto: toLocation,\n\t\t\t\tfrom\n\t\t\t});\n\t\t\thandleScroll(from, from, true, false);\n\t\t}\n\t\treturn (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, 2) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure) => {\n\t\t\tif (failure) {\n\t\t\t\tif (isNavigationFailure(failure, 2)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\" && isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) {\n\t\t\t\t\t\twarn$1(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n\t\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Infinite redirect in navigation guard\"));\n\t\t\t\t\t}\n\t\t\t\t\treturn pushWithRedirect(assign({ replace }, locationAsObject(failure.to), {\n\t\t\t\t\t\tstate: typeof failure.to === \"object\" ? assign({}, data, failure.to.state) : data,\n\t\t\t\t\t\tforce\n\t\t\t\t\t}), redirectedFrom || toLocation);\n\t\t\t\t}\n\t\t\t} else failure = finalizeNavigation(toLocation, from, true, replace, data);\n\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\treturn failure;\n\t\t});\n\t}\n\t/**\n\t* Helper to reject and skip all navigation guards if a new navigation happened\n\t* @param to\n\t* @param from\n\t*/\n\tfunction checkCanceledNavigationAndReject(to, from) {\n\t\tconst error = checkCanceledNavigation(to, from);\n\t\treturn error ? Promise.reject(error) : Promise.resolve();\n\t}\n\tfunction runWithContext(fn) {\n\t\tconst app = installedApps.values().next().value;\n\t\treturn app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n\t}\n\tfunction navigate(to, from) {\n\t\tlet guards;\n\t\tconst [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n\t\tguards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n\t\tfor (const record of leavingRecords) record.leaveGuards.forEach((guard) => {\n\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t});\n\t\tconst canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n\t\tguards.push(canceledNavigationCheck);\n\t\treturn runGuardQueue(guards).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n\t\t\tfor (const record of updatingRecords) record.updateGuards.forEach((guard) => {\n\t\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t\t});\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from));\n\t\t\telse guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tto.matched.forEach((record) => record.enterCallbacks = {});\n\t\t\tguards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from, runWithContext);\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).catch((err) => isNavigationFailure(err, 8) ? err : Promise.reject(err));\n\t}\n\tfunction triggerAfterEach(to, from, failure) {\n\t\tafterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n\t}\n\t/**\n\t* - Cleans up any navigation guards\n\t* - Changes the url if necessary\n\t* - Calls the scrollBehavior\n\t*/\n\tfunction finalizeNavigation(toLocation, from, isPush, replace, data) {\n\t\tconst error = checkCanceledNavigation(toLocation, from);\n\t\tif (error) return error;\n\t\tconst isFirstNavigation = from === START_LOCATION_NORMALIZED;\n\t\tconst state = !isBrowser ? {} : history.state;\n\t\tif (isPush) if (replace || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data));\n\t\telse routerHistory.push(toLocation.fullPath, data);\n\t\tcurrentRoute.value = toLocation;\n\t\thandleScroll(toLocation, from, isPush, isFirstNavigation);\n\t\tmarkAsReady();\n\t}\n\tlet removeHistoryListener;\n\tfunction setupListeners() {\n\t\tif (removeHistoryListener) return;\n\t\tremoveHistoryListener = routerHistory.listen((to, _from, info) => {\n\t\t\tif (!router.listening) return;\n\t\t\tconst toLocation = resolve(to);\n\t\t\tconst shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value);\n\t\t\tif (shouldRedirect) {\n\t\t\t\tpushWithRedirect(assign(shouldRedirect, {\n\t\t\t\t\treplace: true,\n\t\t\t\t\tforce: true\n\t\t\t\t}), toLocation).catch(noop);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingLocation = toLocation;\n\t\t\tconst from = currentRoute.value;\n\t\t\tif (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n\t\t\tnavigate(toLocation, from).catch((error) => {\n\t\t\t\tif (isNavigationFailure(error, 12)) return error;\n\t\t\t\tif (isNavigationFailure(error, 2)) {\n\t\t\t\t\tpushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {\n\t\t\t\t\t\tif (isNavigationFailure(failure, 20) && !info.delta && info.type === \"pop\") routerHistory.go(-1, false);\n\t\t\t\t\t}).catch(noop);\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t}\n\t\t\t\tif (info.delta) routerHistory.go(-info.delta, false);\n\t\t\t\treturn triggerError(error, toLocation, from);\n\t\t\t}).then((failure) => {\n\t\t\t\tfailure = failure || finalizeNavigation(toLocation, from, false);\n\t\t\t\tif (failure) {\n\t\t\t\t\tif (info.delta && !isNavigationFailure(failure, 8)) routerHistory.go(-info.delta, false);\n\t\t\t\t\telse if (info.type === \"pop\" && isNavigationFailure(failure, 20)) routerHistory.go(-1, false);\n\t\t\t\t}\n\t\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\t}).catch(noop);\n\t\t});\n\t}\n\tlet readyHandlers = useCallbacks();\n\tlet errorListeners = useCallbacks();\n\tlet ready;\n\t/**\n\t* Trigger errorListeners added via onError and throws the error as well\n\t*\n\t* @param error - error to throw\n\t* @param to - location we were navigating to when the error happened\n\t* @param from - location we were navigating from when the error happened\n\t* @returns the error as a rejected promise\n\t*/\n\tfunction triggerError(error, to, from) {\n\t\tmarkAsReady(error);\n\t\tconst list = errorListeners.list();\n\t\tif (list.length) list.forEach((handler) => handler(error, to, from));\n\t\telse {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"uncaught error during route navigation:\");\n\t\t\tconsole.error(error);\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n\tfunction isReady() {\n\t\tif (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treadyHandlers.add([resolve, reject]);\n\t\t});\n\t}\n\tfunction markAsReady(err) {\n\t\tif (!ready) {\n\t\t\tready = !err;\n\t\t\tsetupListeners();\n\t\t\treadyHandlers.list().forEach(([resolve, reject]) => err ? reject(err) : resolve());\n\t\t\treadyHandlers.reset();\n\t\t}\n\t\treturn err;\n\t}\n\tfunction handleScroll(to, from, isPush, isFirstNavigation) {\n\t\tconst { scrollBehavior } = options;\n\t\tif (!isBrowser || !scrollBehavior) return Promise.resolve();\n\t\tconst scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n\t\treturn nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from));\n\t}\n\tconst go = (delta) => routerHistory.go(delta);\n\tlet started;\n\tconst installedApps = /* @__PURE__ */ new Set();\n\tconst router = {\n\t\tcurrentRoute,\n\t\tlistening: true,\n\t\taddRoute,\n\t\tremoveRoute,\n\t\tclearRoutes: matcher.clearRoutes,\n\t\thasRoute,\n\t\tgetRoutes,\n\t\tresolve,\n\t\toptions,\n\t\tpush,\n\t\treplace,\n\t\tgo,\n\t\tback: () => go(-1),\n\t\tforward: () => go(1),\n\t\tbeforeEach: beforeGuards.add,\n\t\tbeforeResolve: beforeResolveGuards.add,\n\t\tafterEach: afterGuards.add,\n\t\tonError: errorListeners.add,\n\t\tisReady,\n\t\tinstall(app) {\n\t\t\tapp.component(\"RouterLink\", RouterLink);\n\t\t\tapp.component(\"RouterView\", RouterView);\n\t\t\tapp.config.globalProperties.$router = router;\n\t\t\tObject.defineProperty(app.config.globalProperties, \"$route\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => unref(currentRoute)\n\t\t\t});\n\t\t\tif (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n\t\t\t\tstarted = true;\n\t\t\t\tpush(routerHistory.location).catch((err) => {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Unexpected error when starting the router:\", err);\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst reactiveRoute = {};\n\t\t\tfor (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {\n\t\t\t\tget: () => currentRoute.value[key],\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t\tapp.provide(routerKey, router);\n\t\t\tapp.provide(routeLocationKey, shallowReactive(reactiveRoute));\n\t\t\tapp.provide(routerViewLocationKey, currentRoute);\n\t\t\tconst unmountApp = app.unmount;\n\t\t\tinstalledApps.add(app);\n\t\t\tapp.unmount = function() {\n\t\t\t\tinstalledApps.delete(app);\n\t\t\t\tif (installedApps.size < 1) {\n\t\t\t\t\tpendingLocation = START_LOCATION_NORMALIZED;\n\t\t\t\t\tremoveHistoryListener && removeHistoryListener();\n\t\t\t\t\tremoveHistoryListener = null;\n\t\t\t\t\tcurrentRoute.value = START_LOCATION_NORMALIZED;\n\t\t\t\t\tstarted = false;\n\t\t\t\t\tready = false;\n\t\t\t\t}\n\t\t\t\tunmountApp();\n\t\t\t};\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && true) addDevtools(app, router, matcher);\n\t\t}\n\t};\n\tfunction runGuardQueue(guards) {\n\t\treturn guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n\t}\n\treturn router;\n}\n//#endregion\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","global.__VUE_PROD_DEVTOOLS__ = false\nexport * from './dist/vue-router.js'\n","import { KeepAlive, h } from \"vue\";\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nconst interpolatePath = (route, match) => {\n return match.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n};\nexport const generateRouteKey = (routeProps, override) => {\n const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);\n const source = override ?? matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));\n return typeof source === \"function\" ? source(routeProps.route) : source;\n};\nexport const wrapInKeepAlive = (props, children) => {\n return { default: () => import.meta.client && props ? h(KeepAlive, props === true ? {} : props, children) : children };\n};\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","\nif (import.meta.hot) {\n import.meta.hot.accept((mod) => {\n const router = import.meta.hot.data.router\n const generateRoutes = import.meta.hot.data.generateRoutes\n if (!router || !generateRoutes) {\n import.meta.hot.invalidate('[nuxt] Cannot replace routes because there is no active router. Reloading.')\n return\n }\n const addedRoutes = router.getRoutes().filter(r => !r._initial)\n router.clearRoutes()\n const routes = generateRoutes(mod.default || mod)\n function addRoutes (routes) {\n for (const route of routes) {\n router.addRoute(route)\n }\n for (const route of router.getRoutes()) {\n route._initial = true\n }\n for (const route of addedRoutes) {\n router.addRoute(route)\n }\n router.isReady().then(() => {\n // Resolve the current path against the new routes to get updated meta\n const newRoute = router.resolve(router.currentRoute.value.fullPath)\n // Clear old meta values and assign new ones\n for (const key of Object.keys(router.currentRoute.value.meta)) {\n delete router.currentRoute.value.meta[key]\n }\n Object.assign(router.currentRoute.value.meta, newRoute.meta)\n })\n }\n if (routes && 'then' in routes) {\n routes.then(addRoutes)\n } else {\n addRoutes(routes)\n }\n })\n}\n\nexport function handleHotUpdate(_router, _generateRoutes) {\n if (import.meta.hot) {\n import.meta.hot.data ||= {}\n import.meta.hot.data.router = _router\n import.meta.hot.data.generateRoutes = _generateRoutes\n for (const route of _router.getRoutes()) {\n route._initial = true\n }\n }\n}\nimport { default as accountsuf9bCUy96pdO5sDhtrw37BAVSmLjFm_wqAF7eLybYiMMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/accounts.vue?macro=true\";\nimport { default as apps4N_8fM_HAmoSan_tqUVvBfSBVgSnYl__ZGdiSQQbrUQMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/apps.vue?macro=true\";\nimport { default as calltranslateyLuYKm0ZK9L21n5R8uZzUWg2Wz5JWCfqvY_vv13cK8wMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/calltranslate.vue?macro=true\";\nimport { default as codetIaWhqabBnZ9rT9cLF_86EHpOqJs8Du_S5u8tCLN2VcMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/code.vue?macro=true\";\nimport { default as dashboardZNLB5_JiEysWIj_2b5J2hURJ9xLEtnlF8cxz1kh1xgsMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/dashboard.vue?macro=true\";\nimport { default as deviceATlhZZ6PiEtU_HD4qeo7Tbnfw0N2ei8nBzbk1UCWcQAMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/device.vue?macro=true\";\nimport { default as factoryVZatTEN3EjRZOxVm33XY8Gdq71RZ1D_jDUKUf4F_lWIMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/factory.vue?macro=true\";\nimport { default as globalconfignq5luXkq_Ykd2myATDZ7keYzKoRwp_opATj4sH705EcMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/globalconfig.vue?macro=true\";\nimport { default as mcpconfigrFWADY1KKVchc3b_tLzB_4GNdXlzlJnoCP2vK_qS9IgMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/mcpconfig.vue?macro=true\";\nimport { default as meettemplates3Nsj0ut16S4eIXd5Lv9nVQD0XusUnq08ZaalLdE0O7IMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/meettemplates.vue?macro=true\";\nimport { default as productWbWlgO8dvY_vVRFylKRGjH7HyHR9RFTvzFbP8equczwMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/product.vue?macro=true\";\nimport { default as serviceconfig6Gc5qzSDJTYZMnqPqZYds2OIokXbSz4H6XhPAg8iN0EMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/serviceconfig.vue?macro=true\";\nimport { default as statlogrR6XJDIk_e8P5NJMugR6upS2Ifr1zDMQogeCNYwz5MQMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/statlog.vue?macro=true\";\nimport { default as usersfLETUnFtHTvnQYJLMbrQA_IXzpwNp3NUerB3_nZMVvkMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/users.vue?macro=true\";\nimport { default as indexcEvFhP__rFdFTbvBFnPFkHCn7KMBOSKrrLe98tJlrc4Meta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/index.vue?macro=true\";\nexport default [\n {\n name: \"accounts\",\n path: \"/accounts\",\n meta: accountsuf9bCUy96pdO5sDhtrw37BAVSmLjFm_wqAF7eLybYiMMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/accounts.vue\")\n },\n {\n name: \"apps\",\n path: \"/apps\",\n meta: apps4N_8fM_HAmoSan_tqUVvBfSBVgSnYl__ZGdiSQQbrUQMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/apps.vue\")\n },\n {\n name: \"calltranslate\",\n path: \"/calltranslate\",\n meta: calltranslateyLuYKm0ZK9L21n5R8uZzUWg2Wz5JWCfqvY_vv13cK8wMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/calltranslate.vue\")\n },\n {\n name: \"code\",\n path: \"/code\",\n meta: codetIaWhqabBnZ9rT9cLF_86EHpOqJs8Du_S5u8tCLN2VcMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/code.vue\")\n },\n {\n name: \"dashboard\",\n path: \"/dashboard\",\n meta: dashboardZNLB5_JiEysWIj_2b5J2hURJ9xLEtnlF8cxz1kh1xgsMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/dashboard.vue\")\n },\n {\n name: \"device\",\n path: \"/device\",\n meta: deviceATlhZZ6PiEtU_HD4qeo7Tbnfw0N2ei8nBzbk1UCWcQAMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/device.vue\")\n },\n {\n name: \"factory\",\n path: \"/factory\",\n meta: factoryVZatTEN3EjRZOxVm33XY8Gdq71RZ1D_jDUKUf4F_lWIMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/factory.vue\")\n },\n {\n name: \"globalconfig\",\n path: \"/globalconfig\",\n meta: globalconfignq5luXkq_Ykd2myATDZ7keYzKoRwp_opATj4sH705EcMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/globalconfig.vue\")\n },\n {\n name: \"mcpconfig\",\n path: \"/mcpconfig\",\n meta: mcpconfigrFWADY1KKVchc3b_tLzB_4GNdXlzlJnoCP2vK_qS9IgMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/mcpconfig.vue\")\n },\n {\n name: \"meettemplates\",\n path: \"/meettemplates\",\n meta: meettemplates3Nsj0ut16S4eIXd5Lv9nVQD0XusUnq08ZaalLdE0O7IMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/meettemplates.vue\")\n },\n {\n name: \"product\",\n path: \"/product\",\n meta: productWbWlgO8dvY_vVRFylKRGjH7HyHR9RFTvzFbP8equczwMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/product.vue\")\n },\n {\n name: \"serviceconfig\",\n path: \"/serviceconfig\",\n meta: serviceconfig6Gc5qzSDJTYZMnqPqZYds2OIokXbSz4H6XhPAg8iN0EMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/serviceconfig.vue\")\n },\n {\n name: \"statlog\",\n path: \"/statlog\",\n meta: statlogrR6XJDIk_e8P5NJMugR6upS2Ifr1zDMQogeCNYwz5MQMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/statlog.vue\")\n },\n {\n name: \"users\",\n path: \"/users\",\n meta: usersfLETUnFtHTvnQYJLMbrQA_IXzpwNp3NUerB3_nZMVvkMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/users.vue\")\n },\n {\n name: \"index\",\n path: \"/\",\n meta: indexcEvFhP__rFdFTbvBFnPFkHCn7KMBOSKrrLe98tJlrc4Meta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/index.vue\")\n }\n]","/**\n* @vue/shared v3.5.38\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = {};\nconst EMPTY_ARR = [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst 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 camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst 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\";\nconst 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\";\nconst 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\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n 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);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n return String(value);\n}\n\nexports.EMPTY_ARR = EMPTY_ARR;\nexports.EMPTY_OBJ = EMPTY_OBJ;\nexports.NO = NO;\nexports.NOOP = NOOP;\nexports.PatchFlagNames = PatchFlagNames;\nexports.PatchFlags = PatchFlags;\nexports.ShapeFlags = ShapeFlags;\nexports.SlotFlags = SlotFlags;\nexports.camelize = camelize;\nexports.capitalize = capitalize;\nexports.cssVarNameEscapeSymbolsRE = cssVarNameEscapeSymbolsRE;\nexports.def = def;\nexports.escapeHtml = escapeHtml;\nexports.escapeHtmlComment = escapeHtmlComment;\nexports.extend = extend;\nexports.genCacheKey = genCacheKey;\nexports.genPropsAccessExp = genPropsAccessExp;\nexports.generateCodeFrame = generateCodeFrame;\nexports.getEscapedCssVarName = getEscapedCssVarName;\nexports.getGlobalThis = getGlobalThis;\nexports.hasChanged = hasChanged;\nexports.hasOwn = hasOwn;\nexports.hyphenate = hyphenate;\nexports.includeBooleanAttr = includeBooleanAttr;\nexports.invokeArrayFns = invokeArrayFns;\nexports.isArray = isArray;\nexports.isBooleanAttr = isBooleanAttr;\nexports.isBuiltInDirective = isBuiltInDirective;\nexports.isDate = isDate;\nexports.isFunction = isFunction;\nexports.isGloballyAllowed = isGloballyAllowed;\nexports.isGloballyWhitelisted = isGloballyWhitelisted;\nexports.isHTMLTag = isHTMLTag;\nexports.isIntegerKey = isIntegerKey;\nexports.isKnownHtmlAttr = isKnownHtmlAttr;\nexports.isKnownMathMLAttr = isKnownMathMLAttr;\nexports.isKnownSvgAttr = isKnownSvgAttr;\nexports.isMap = isMap;\nexports.isMathMLTag = isMathMLTag;\nexports.isModelListener = isModelListener;\nexports.isObject = isObject;\nexports.isOn = isOn;\nexports.isPlainObject = isPlainObject;\nexports.isPromise = isPromise;\nexports.isRegExp = isRegExp;\nexports.isRenderableAttrValue = isRenderableAttrValue;\nexports.isReservedProp = isReservedProp;\nexports.isSSRSafeAttrName = isSSRSafeAttrName;\nexports.isSVGTag = isSVGTag;\nexports.isSet = isSet;\nexports.isSpecialBooleanAttr = isSpecialBooleanAttr;\nexports.isString = isString;\nexports.isSymbol = isSymbol;\nexports.isVoidTag = isVoidTag;\nexports.looseEqual = looseEqual;\nexports.looseIndexOf = looseIndexOf;\nexports.looseToNumber = looseToNumber;\nexports.makeMap = makeMap;\nexports.normalizeClass = normalizeClass;\nexports.normalizeCssVarValue = normalizeCssVarValue;\nexports.normalizeProps = normalizeProps;\nexports.normalizeStyle = normalizeStyle;\nexports.objectToString = objectToString;\nexports.parseStringStyle = parseStringStyle;\nexports.propsToAttrMap = propsToAttrMap;\nexports.remove = remove;\nexports.slotFlagsText = slotFlagsText;\nexports.stringifyStyle = stringifyStyle;\nexports.toDisplayString = toDisplayString;\nexports.toHandlerKey = toHandlerKey;\nexports.toNumber = toNumber;\nexports.toRawType = toRawType;\nexports.toTypeString = toTypeString;\n","import { Transition, createStaticVNode, h } from \"vue\";\nimport { defu } from \"defu\";\nimport { isString, isPromise, isArray, isObject } from \"@vue/shared\";\nimport { START_LOCATION } from \"#build/pages\";\nexport const _wrapInTransition = (props, children) => {\n return { default: () => import.meta.client && props ? h(Transition, props === true ? {} : props, children) : children.default?.() };\n};\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nfunction generateRouteKey(route) {\n const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n return typeof source === \"function\" ? source(route) : source;\n}\nexport function isChangingPage(to, from) {\n if (to === from || from === START_LOCATION) {\n return false;\n }\n if (generateRouteKey(to) !== generateRouteKey(from)) {\n return true;\n }\n const areComponentsSame = to.matched.every(\n (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default\n );\n if (areComponentsSame) {\n return false;\n }\n return true;\n}\nexport function createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n } else {\n buffer.push(item);\n }\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nexport function vforToArray(source) {\n if (isArray(source)) {\n return source;\n } else if (isString(source)) {\n return source.split(\"\");\n } else if (typeof source === \"number\") {\n if (import.meta.dev && !Number.isInteger(source)) {\n console.warn(`The v-for range expect an integer value but got ${source}.`);\n }\n const array = [];\n for (let i = 0; i < source; i++) {\n array[i] = i;\n }\n return array;\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n return Array.from(\n source,\n (item) => item\n );\n } else {\n const keys = Object.keys(source);\n const array = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n array[i] = source[key];\n }\n return array;\n }\n }\n return [];\n}\nexport function getFragmentHTML(element, withoutSlots = false) {\n if (element) {\n if (element.nodeName === \"#comment\" && element.nodeValue === \"[\") {\n return getFragmentChildren(element, [], withoutSlots);\n }\n if (withoutSlots) {\n const clone = element.cloneNode(true);\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n return [clone.outerHTML];\n }\n return [element.outerHTML];\n }\n}\nfunction getFragmentChildren(element, blocks = [], withoutSlots = false) {\n if (element && element.nodeName) {\n if (isEndFragment(element)) {\n return blocks;\n } else if (!isStartFragment(element)) {\n const clone = element.cloneNode(true);\n if (withoutSlots) {\n clone.querySelectorAll?.(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n }\n blocks.push(clone.outerHTML);\n }\n getFragmentChildren(element.nextSibling, blocks, withoutSlots);\n }\n return blocks;\n}\nexport function elToStaticVNode(el, staticNodeFallback) {\n const fragment = el ? getFragmentHTML(el) : staticNodeFallback ? [staticNodeFallback] : void 0;\n if (fragment) {\n return createStaticVNode(fragment.join(\"\"), fragment.length);\n }\n return h(\"div\");\n}\nexport function isStartFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"[\";\n}\nexport function isEndFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"]\";\n}\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function _mergeTransitionProps(routeProps) {\n const _props = [];\n for (const prop of routeProps) {\n if (!prop) {\n continue;\n }\n _props.push({\n ...prop,\n onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0,\n onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0\n });\n }\n return defu(..._props);\n}\n","import { START_LOCATION } from \"vue-router\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { isChangingPage } from \"#app/components/utils\";\nimport { useRouter } from \"#app/composables/router\";\nexport default {\n scrollBehavior(to, from, savedPosition) {\n const nuxtApp = useNuxtApp();\n const hashScrollBehaviour = useRouter().options?.scrollBehaviorType ?? \"auto\";\n if (to.path.replace(/\\/$/, \"\") === from.path.replace(/\\/$/, \"\")) {\n if (from.hash && !to.hash) {\n return { left: 0, top: 0 };\n }\n if (to.hash) {\n return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior: hashScrollBehaviour };\n }\n return false;\n }\n const routeAllowsScrollToTop = typeof to.meta.scrollToTop === \"function\" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;\n if (routeAllowsScrollToTop === false) {\n return false;\n }\n if (from === START_LOCATION) {\n return _calculatePosition(to, from, savedPosition, hashScrollBehaviour);\n }\n return new Promise((resolve) => {\n const doScroll = () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)));\n };\n nuxtApp.hooks.hookOnce(\"page:loading:end\", () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(doScroll);\n } else {\n doScroll();\n }\n });\n });\n }\n};\nfunction _getHashElementScrollMarginTop(selector) {\n try {\n const elem = document.querySelector(selector);\n if (elem) {\n return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop) || 0);\n }\n } catch {\n }\n return 0;\n}\nfunction _calculatePosition(to, from, savedPosition, defaultHashScrollBehaviour) {\n if (savedPosition) {\n return savedPosition;\n }\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: isChangingPage(to, from) ? defaultHashScrollBehaviour : \"instant\"\n };\n }\n return {\n left: 0,\n top: 0\n };\n}\n","import routerOptions0 from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/router.options.js\";\nconst configRouterOptions = {\n hashMode: false,\n scrollBehaviorType: \"auto\"\n}\nexport const hashMode = false\nexport default {\n...configRouterOptions,\n...routerOptions0,\n}","import { createError } from \"#app/composables/error\";\nimport { defineNuxtRouteMiddleware } from \"#app/composables/router\";\nexport default defineNuxtRouteMiddleware(async (to, from) => {\n if (!to.meta?.validate) {\n return;\n }\n const result = await Promise.resolve(to.meta.validate(to));\n if (result === true) {\n return;\n }\n const error = createError({\n fatal: import.meta.client,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n status: result && (result.status || result.statusCode) || 404,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n });\n if (typeof window !== \"undefined\") {\n window.history.pushState({}, \"\", from.fullPath);\n }\n return error;\n});\n","import { hasProtocol } from \"ufo\";\nimport { defineNuxtRouteMiddleware } from \"../composables/router.js\";\nimport { getRouteRules } from \"../composables/manifest.js\";\nexport default defineNuxtRouteMiddleware((to) => {\n if (import.meta.server || import.meta.test) {\n return;\n }\n const rules = getRouteRules({ path: to.path });\n if (rules.redirect) {\n const path = rules.redirect.includes(\"#\") ? rules.redirect : rules.redirect + to.hash;\n if (hasProtocol(path, { acceptRelative: true })) {\n window.location.href = path;\n return false;\n }\n return path;\n }\n});\n","import validate from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/validate.js\";\nimport manifest_45route_45rule from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/middleware/route-rules.js\";\nexport const globalMiddleware = [\n validate,\n manifest_45route_45rule\n]\nexport const namedMiddleware = {}","import { defineAsyncComponent } from 'vue'\nexport const islandComponents = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})\nexport const pageIslandRoutes = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})","import { isReadonly, reactive, shallowReactive, shallowRef } from \"vue\";\nimport { START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { isSamePath, withoutBase } from \"ufo\";\nimport { toArray } from \"../utils.js\";\nimport { getRouteRules } from \"#app/composables/manifest\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { clearError, createError, isNuxtError, showError, useError } from \"#app/composables/error\";\nimport { navigateTo } from \"#app/composables/router\";\nimport _routes, { handleHotUpdate } from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options.mjs\";\nimport { globalMiddleware, namedMiddleware } from \"#build/middleware\";\nimport { pageIslandRoutes } from \"#build/components.islands.mjs\";\nfunction createCurrentLocation(base, location, renderedPath) {\n const { pathname, search, hash } = location;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n const slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\") {\n pathFromHash = \"/\" + pathFromHash;\n }\n return withoutBase(pathFromHash, \"\");\n }\n const displayedPath = withoutBase(pathname, base);\n const path = !renderedPath || isSamePath(displayedPath, renderedPath) ? displayedPath : renderedPath;\n return path + (path.includes(\"?\") ? \"\" : search) + hash;\n}\nconst plugin = defineNuxtPlugin({\n name: \"nuxt:router\",\n enforce: \"pre\",\n async setup(nuxtApp) {\n let routerBase = useRuntimeConfig().app.baseURL;\n if (hashMode && !routerBase.includes(\"#\")) {\n routerBase += \"#\";\n }\n const history = routerOptions.history?.(routerBase) ?? (import.meta.client ? hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase) : createMemoryHistory(routerBase));\n const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes;\n let startPosition;\n const router = createRouter({\n ...routerOptions,\n scrollBehavior: (to, from, savedPosition) => {\n if (from === START_LOCATION) {\n startPosition = savedPosition;\n return;\n }\n if (routerOptions.scrollBehavior) {\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n if (\"scrollRestoration\" in window.history) {\n const unsub = router.beforeEach(() => {\n unsub();\n window.history.scrollRestoration = \"manual\";\n });\n }\n return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);\n }\n },\n history,\n routes\n });\n if (import.meta.hot) {\n handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2);\n }\n if (import.meta.client && \"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"auto\";\n }\n nuxtApp.vueApp.use(router);\n const previousRoute = shallowRef(router.currentRoute.value);\n router.afterEach((_to, from) => {\n previousRoute.value = from;\n });\n Object.defineProperty(nuxtApp.vueApp.config.globalProperties, \"previousRoute\", {\n get: () => previousRoute.value\n });\n const initialURL = import.meta.server ? nuxtApp.ssrContext.url : createCurrentLocation(routerBase, window.location, nuxtApp.payload.path);\n const _route = shallowRef(router.currentRoute.value);\n const syncCurrentRoute = () => {\n _route.value = router.currentRoute.value;\n };\n router.afterEach((to, from) => {\n const lastTo = to.matched.at(-1)?.components?.default;\n const lastFrom = from.matched.at(-1)?.components?.default;\n if (lastTo === lastFrom) {\n syncCurrentRoute();\n return;\n }\n if (to.matched.length < from.matched.length && to.matched.every((m, i) => m.components?.default === from.matched[i]?.components?.default)) {\n syncCurrentRoute();\n }\n });\n const route = { sync: syncCurrentRoute };\n for (const key in _route.value) {\n Object.defineProperty(route, key, {\n get: () => _route.value[key],\n enumerable: true\n });\n }\n nuxtApp._route = shallowReactive(route);\n nuxtApp._middleware ||= {\n global: [],\n named: {}\n };\n const error = useError();\n const isServerPage = import.meta.server && nuxtApp.ssrContext?.islandContext?.name?.startsWith(\"page_\");\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n router.afterEach(async (to, _from, failure) => {\n delete nuxtApp._processingMiddleware;\n if (import.meta.client && !nuxtApp.isHydrating && error.value) {\n await nuxtApp.runWithContext(clearError);\n }\n if (failure) {\n await nuxtApp.callHook(\"page:loading:end\");\n }\n if (import.meta.server && failure?.type === 4) {\n return;\n }\n if (import.meta.server && to.redirectedFrom && to.fullPath !== initialURL) {\n await nuxtApp.runWithContext(() => navigateTo(to.fullPath || \"/\"));\n }\n });\n }\n try {\n if (import.meta.server) {\n await router.push(initialURL);\n }\n await router.isReady();\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n const resolvedInitialRoute = import.meta.client && initialURL !== router.currentRoute.value.fullPath ? router.resolve(initialURL) : router.currentRoute.value;\n const hasDeferredRoute = import.meta.client && nuxtApp.isHydrating && nuxtApp.payload.prerenderedAt && nuxtApp.payload.path && initialURL !== nuxtApp.payload.path && isSamePath(router.currentRoute.value.path, nuxtApp.payload.path);\n syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && !isServerPage) {\n return { provide: { router } };\n }\n const initialLayout = nuxtApp.payload.state._layout;\n router.beforeEach(async (to, from) => {\n await nuxtApp.callHook(\"page:loading:start\");\n to.meta = reactive(to.meta);\n if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {\n to.meta.layout = initialLayout;\n }\n nuxtApp._processingMiddleware = true;\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);\n for (const component of to.matched) {\n const componentMiddleware = component.meta.middleware;\n if (!componentMiddleware) {\n continue;\n }\n for (const entry of toArray(componentMiddleware)) {\n middlewareEntries.add(entry);\n }\n }\n const routeRules = getRouteRules({ path: to.path });\n if (routeRules.appMiddleware) {\n for (const key in routeRules.appMiddleware) {\n if (routeRules.appMiddleware[key]) {\n middlewareEntries.add(key);\n } else {\n middlewareEntries.delete(key);\n }\n }\n }\n for (const entry of middlewareEntries) {\n const middleware = typeof entry === \"string\" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;\n if (!middleware) {\n if (import.meta.dev) {\n throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map((mw) => `'${mw}'`).join(\", \")}.`);\n }\n throw new Error(`Unknown route middleware: '${entry}'.`);\n }\n try {\n if (import.meta.dev) {\n nuxtApp._processingMiddleware = middleware._path || (typeof entry === \"string\" ? entry : true);\n }\n const result = await nuxtApp.runWithContext(() => middleware(to, from));\n if (import.meta.server || !nuxtApp.payload.serverRendered && nuxtApp.isHydrating) {\n if (result === false || result instanceof Error) {\n const error2 = result || createError({\n status: 404,\n statusText: `Page Not Found: ${initialURL}`\n });\n await nuxtApp.runWithContext(() => showError(error2));\n return false;\n }\n }\n if (result === true) {\n continue;\n }\n if (result === false) {\n return result;\n }\n if (result) {\n if (isNuxtError(result) && result.fatal) {\n await nuxtApp.runWithContext(() => showError(result));\n }\n return result;\n }\n } catch (err) {\n const error2 = createError(err);\n if (error2.fatal) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n return error2;\n }\n }\n }\n });\n if (isServerPage) {\n router.beforeResolve((to) => {\n const expected = pageIslandRoutes[nuxtApp.ssrContext.islandContext.name];\n const actual = to.matched.find((m) => m.components?.default?.__nuxt_island)?.components?.default;\n if (!expected || expected !== actual?.__nuxt_island) {\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: 400,\n statusMessage: \"Invalid island request path\"\n };\n return false;\n }\n });\n }\n router.onError(async () => {\n delete nuxtApp._processingMiddleware;\n await nuxtApp.callHook(\"page:loading:end\");\n });\n router.afterEach((to) => {\n if (to.matched.length === 0 && !error.value) {\n return nuxtApp.runWithContext(() => showError(createError({\n status: 404,\n fatal: false,\n statusText: `Page not found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n })));\n }\n });\n nuxtApp.hooks.hookOnce(\"app:created\", async () => {\n try {\n if (\"name\" in resolvedInitialRoute) {\n resolvedInitialRoute.name = void 0;\n }\n if (hasDeferredRoute) {\n const payloadRoute = router.resolve(nuxtApp.payload.path);\n if (\"name\" in payloadRoute) {\n payloadRoute.name = void 0;\n }\n await router.replace({ ...payloadRoute, force: true });\n nuxtApp.hooks.hookOnce(\"app:suspense:resolve\", async () => {\n await router.replace({ ...resolvedInitialRoute, force: true });\n });\n } else {\n await router.replace({\n ...resolvedInitialRoute,\n force: true\n });\n }\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n });\n return { provide: { router } };\n }\n});\nexport default plugin;\n","import { isReactive, isRef, isShallow, toRaw } from \"vue\";\nimport { definePayloadReducer } from \"../composables/payload.js\";\nimport { isNuxtError } from \"../composables/error.js\";\nimport { defineNuxtPlugin } from \"../nuxt.js\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nimport { isValidIslandKey } from \"./utils.js\";\nconst reducers = [\n [\"NuxtError\", (data) => isNuxtError(data) && data.toJSON()],\n [\"EmptyShallowRef\", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"EmptyRef\", (data) => isRef(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"ShallowRef\", (data) => isRef(data) && isShallow(data) && data.value],\n [\"ShallowReactive\", (data) => isReactive(data) && isShallow(data) && toRaw(data)],\n [\"Ref\", (data) => isRef(data) && data.value],\n [\"Reactive\", (data) => isReactive(data) && toRaw(data)]\n];\nif (componentIslands) {\n reducers.push([\"Island\", (data) => data && data?.__nuxt_island && isValidIslandKey(data.__nuxt_island.key) && data.__nuxt_island]);\n}\nexport default defineNuxtPlugin({\n name: \"nuxt:revive-payload:server\",\n setup() {\n for (const [reducer, fn] of reducers) {\n definePayloadReducer(reducer, fn);\n }\n }\n});\n","import { createCommentVNode, createElementBlock, defineComponent } from \"vue\";\nimport { clientNodePlaceholder } from \"#build/nuxt.config.mjs\";\nexport default defineComponent({\n name: \"ServerPlaceholder\",\n render() {\n return clientNodePlaceholder ? createCommentVNode(\"placeholder\") : createElementBlock(\"div\");\n }\n});\n","import { cloneVNode, createCommentVNode, createElementBlock, defineComponent, getCurrentInstance, h, onMounted, provide, shallowRef } from \"vue\";\nimport { isPromise } from \"@vue/shared\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport ServerPlaceholder from \"./server-placeholder.js\";\nimport { elToStaticVNode } from \"./utils.js\";\nimport { clientNodePlaceholder } from \"#build/nuxt.config.mjs\";\nexport const clientOnlySymbol = Symbol.for(\"nuxt:client-only\");\nconst STATIC_DIV = \"
\";\nfunction isPlaceholderComment(el) {\n return el.nodeName === \"#comment\" && el.nodeValue === \"placeholder\";\n}\nfunction createPlaceholder(el) {\n if (el && !isPlaceholderComment(el)) {\n return elToStaticVNode(el, STATIC_DIV);\n }\n return clientNodePlaceholder ? createCommentVNode(\"placeholder\") : h(\"div\");\n}\nexport default defineComponent({\n name: \"ClientOnly\",\n inheritAttrs: false,\n props: [\"fallback\", \"placeholder\", \"placeholderTag\", \"fallbackTag\"],\n ...import.meta.dev && {\n slots: Object\n },\n setup(props, { slots, attrs }) {\n const mounted = shallowRef(false);\n onMounted(() => {\n mounted.value = true;\n });\n if (import.meta.dev) {\n const nuxtApp = useNuxtApp();\n nuxtApp._isNuxtPageUsed = true;\n nuxtApp._isNuxtLayoutUsed = true;\n }\n const vm = getCurrentInstance();\n if (vm) {\n vm._nuxtClientOnly = true;\n }\n provide(clientOnlySymbol, true);\n return () => {\n if (mounted.value) {\n const vnodes = slots.default?.();\n if (vnodes && vnodes.length === 1) {\n return [cloneVNode(vnodes[0], attrs)];\n }\n return vnodes;\n }\n const slot = slots.fallback || slots.placeholder;\n if (slot) {\n return h(slot);\n }\n const fallbackStr = props.fallback || props.placeholder || \"\";\n const fallbackTag = props.fallbackTag || props.placeholderTag || \"span\";\n return createElementBlock(fallbackTag, attrs, fallbackStr);\n };\n }\n});\nconst cache = /* @__PURE__ */ new WeakMap();\n// @__NO_SIDE_EFFECTS__\nexport function createClientOnly(component) {\n if (import.meta.server) {\n return ServerPlaceholder;\n }\n if (cache.has(component)) {\n return cache.get(component);\n }\n const clone = { ...component };\n if (clone.render) {\n clone.render = (ctx, cache2, $props, $setup, $data, $options) => {\n if ($setup.mounted$ ?? ctx.mounted$) {\n const res = component.render?.bind(ctx)(ctx, cache2, $props, $setup, $data, $options);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return createPlaceholder(ctx._.vnode.el);\n };\n } else {\n const placeholderTemplate = clientNodePlaceholder ? \"\" : \"
\";\n clone.template &&= `\n \n \n `;\n }\n clone.setup = (props, ctx) => {\n const nuxtApp = useNuxtApp();\n const mounted$ = shallowRef(nuxtApp.isHydrating === false);\n const instance = getCurrentInstance();\n if (nuxtApp.isHydrating) {\n const attrs = { ...instance.attrs };\n const directives = extractDirectives(instance);\n for (const key in attrs) {\n delete instance.attrs[key];\n }\n onMounted(() => {\n Object.assign(instance.attrs, attrs);\n instance.vnode.dirs = directives;\n });\n }\n onMounted(() => {\n mounted$.value = true;\n });\n const setupState = component.setup?.(props, ctx) || {};\n if (isPromise(setupState)) {\n return Promise.resolve(setupState).then((setupState2) => {\n if (typeof setupState2 !== \"function\") {\n setupState2 ||= {};\n setupState2.mounted$ = mounted$;\n return setupState2;\n }\n return (...args) => {\n if (mounted$.value || !nuxtApp.isHydrating) {\n const res = setupState2(...args);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return createPlaceholder(instance?.vnode.el);\n };\n });\n } else {\n if (typeof setupState === \"function\") {\n return (...args) => {\n if (mounted$.value) {\n const res = setupState(...args);\n const attrs = clone.inheritAttrs !== false ? ctx.attrs : void 0;\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res, attrs) : h(res, attrs);\n }\n return createPlaceholder(instance?.vnode.el);\n };\n }\n return Object.assign(setupState, { mounted$ });\n }\n };\n cache.set(component, clone);\n return clone;\n}\nfunction extractDirectives(instance) {\n if (!instance || !instance.vnode.dirs) {\n return null;\n }\n const directives = instance.vnode.dirs;\n instance.vnode.dirs = null;\n return directives;\n}\n","import { kebabCase } from \"scule\";\nexport function defineKeyedFunctionFactory(factory) {\n const placeholder = function() {\n if (import.meta.dev) {\n throw new Error(\n `[nuxt:compiler] \\`${factory.name}\\` is a compiler macro that is only usable inside the directories scanned by the Nuxt compiler as an exported function and imported statically. Learn more: \\`https://nuxt.com/docs/4.x/api/composables/${kebabCase(factory.name)}\\``\n );\n }\n throw new Error(`[nuxt] \\`${factory.name}\\` is a compiler macro and cannot be called at runtime.`);\n };\n return Object.defineProperty(placeholder, \"__nuxt_factory\", {\n enumerable: false,\n get: () => factory.factory\n });\n}\n","import { computed, getCurrentInstance, getCurrentScope, inject, isRef, isShallow, nextTick, onBeforeMount, onScopeDispose, onServerPrefetch, onUnmounted, queuePostFlushCb, ref, shallowRef, toRef, toValue, unref, watch } from \"vue\";\nimport { debounce } from \"perfect-debounce\";\nimport { hash } from \"ohash\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { getUserCaller, toArray } from \"../utils.js\";\nimport { clientOnlySymbol } from \"../components/client-only.js\";\nimport { createError } from \"./error.js\";\nimport { onNuxtReady } from \"./ready.js\";\nimport { defineKeyedFunctionFactory } from \"../../compiler/runtime\";\nimport { asyncDataDefaults, granularCachedData, pendingWhenIdle, purgeCachedData } from \"#build/nuxt.config.mjs\";\nexport const createUseAsyncData = defineKeyedFunctionFactory({\n name: \"createUseAsyncData\",\n factory(options = {}) {\n function useAsyncData2(...args) {\n const autoKey = typeof args[args.length - 1] === \"string\" ? args.pop() : void 0;\n if (_isAutoKeyNeeded(args[0], args[1])) {\n args.unshift(autoKey);\n }\n let [_key, _handler, opts = {}] = args;\n let keyChanging = false;\n const isKeyReactive = isRef(_key) || typeof _key === \"function\";\n const key = isKeyReactive ? computed(() => toValue(_key)) : { value: _key };\n if (!key.value || typeof key.value !== \"string\") {\n throw new TypeError(\"[nuxt] [useAsyncData] key must be a non-empty string.\");\n }\n if (typeof _handler !== \"function\") {\n throw new TypeError(\"[nuxt] [useAsyncData] handler must be a function.\");\n }\n const shouldFactoryOptionsOverride = typeof options === \"function\";\n const nuxtApp = useNuxtApp();\n const factoryOptions = shouldFactoryOptionsOverride ? options(opts) : options;\n if (!shouldFactoryOptionsOverride) {\n for (const key2 in factoryOptions) {\n if (factoryOptions[key2] === void 0) {\n continue;\n }\n if (opts[key2] !== void 0) {\n continue;\n }\n opts[key2] = factoryOptions[key2];\n }\n }\n opts.server ??= true;\n opts.default ??= getDefault;\n opts.getCachedData ??= getDefaultCachedData;\n opts.lazy ??= false;\n opts.immediate ??= true;\n opts.deep ??= asyncDataDefaults.deep;\n opts.dedupe ??= \"cancel\";\n if (shouldFactoryOptionsOverride) {\n for (const key2 in factoryOptions) {\n if (factoryOptions[key2] === void 0) {\n continue;\n }\n opts[key2] = factoryOptions[key2];\n }\n }\n const functionName = import.meta.dev ? factoryOptions._functionName || \"useAsyncData\" : \"\";\n const currentData = nuxtApp._asyncData[key.value];\n if (import.meta.dev && currentData) {\n const warnings = [];\n const values = createHash(_handler, opts);\n if (values.handler !== currentData._hash?.handler) {\n warnings.push(`different handler`);\n }\n for (const opt of [\"transform\", \"pick\", \"getCachedData\"]) {\n if (values[opt] !== currentData._hash[opt]) {\n warnings.push(`different \\`${opt}\\` option`);\n }\n }\n if (currentData._default.toString() !== opts.default.toString()) {\n warnings.push(`different \\`default\\` value`);\n }\n if (opts.deep && isShallow(currentData.data)) {\n warnings.push(`mismatching \\`deep\\` option`);\n }\n if (warnings.length) {\n const caller = getUserCaller();\n const explanation = caller ? ` (used at ${caller.source}:${caller.line}:${caller.column})` : \"\";\n console.warn(`[nuxt] [${functionName}] Incompatible options detected for \"${key.value}\"${explanation}:\n${warnings.map((w) => `- ${w}`).join(\"\\n\")}\nYou can use a different key or move the call to a composable to ensure the options are shared across calls.`);\n }\n }\n function createInitialFetch() {\n const initialFetchOptions = { cause: \"initial\", dedupe: opts.dedupe };\n const existing = nuxtApp._asyncData[key.value];\n if (!existing?._init) {\n initialFetchOptions.cachedData = opts.getCachedData(key.value, nuxtApp, { cause: \"initial\" });\n nuxtApp._asyncData[key.value] = buildAsyncData(nuxtApp, key.value, _handler, opts, initialFetchOptions.cachedData);\n nuxtApp._asyncData[key.value]._initialCachedData = initialFetchOptions.cachedData;\n } else if (nuxtApp._asyncDataPromises[key.value]) {\n initialFetchOptions.cachedData = existing._initialCachedData;\n }\n return () => nuxtApp._asyncData[key.value].execute(initialFetchOptions);\n }\n const initialFetch = createInitialFetch();\n const asyncData = nuxtApp._asyncData[key.value];\n asyncData._deps++;\n const fetchOnServer = opts.server !== false && nuxtApp.payload.serverRendered;\n if (import.meta.server && fetchOnServer && opts.immediate) {\n const promise = initialFetch();\n if (getCurrentInstance()) {\n onServerPrefetch(() => promise);\n } else {\n nuxtApp.hook(\"app:created\", async () => {\n await promise;\n });\n }\n }\n if (import.meta.client) {\n let unregister = function(key2) {\n const data = nuxtApp._asyncData[key2];\n if (data?._deps) {\n data._deps--;\n if (data._deps === 0) {\n data?._off();\n }\n }\n };\n const instance = getCurrentInstance();\n if (instance && fetchOnServer && opts.immediate && !instance.sp) {\n instance.sp = [];\n }\n if (import.meta.dev && !nuxtApp.isHydrating && !nuxtApp._processingMiddleware && (!instance || instance?.isMounted)) {\n console.warn(`[nuxt] [${functionName}] Component is already mounted, please use $fetch instead. See https://nuxt.com/docs/4.x/getting-started/data-fetching`);\n }\n if (instance && !instance._nuxtOnBeforeMountCbs) {\n instance._nuxtOnBeforeMountCbs = [];\n const cbs = instance._nuxtOnBeforeMountCbs;\n onBeforeMount(() => {\n cbs.forEach((cb) => {\n cb();\n });\n cbs.splice(0, cbs.length);\n });\n onUnmounted(() => cbs.splice(0, cbs.length));\n }\n const isWithinClientOnly = instance && (instance._nuxtClientOnly || inject(clientOnlySymbol, false));\n if (fetchOnServer && nuxtApp.isHydrating && (asyncData.error.value || asyncData.data.value !== void 0)) {\n if (pendingWhenIdle) {\n asyncData.pending.value = false;\n }\n asyncData.status.value = asyncData.error.value ? \"error\" : \"success\";\n } else if (instance && (!isWithinClientOnly && nuxtApp.payload.serverRendered && nuxtApp.isHydrating || opts.lazy) && opts.immediate) {\n instance._nuxtOnBeforeMountCbs.push(initialFetch);\n } else if (opts.immediate && asyncData.status.value !== \"success\") {\n initialFetch();\n }\n const hasScope = getCurrentScope();\n const noop = () => {\n };\n const unsubKeyWatcher = isKeyReactive ? watch(key, (newKey, oldKey) => {\n if ((newKey || oldKey) && newKey !== oldKey) {\n keyChanging = true;\n const hadData = nuxtApp._asyncData[oldKey]?.data.value !== void 0;\n const wasRunning = nuxtApp._asyncDataPromises[oldKey] !== void 0;\n const initialFetchOptions = { cause: \"initial\", dedupe: opts.dedupe };\n if (!nuxtApp._asyncData[newKey]?._init) {\n let initialValue;\n if (oldKey && hadData) {\n initialValue = nuxtApp._asyncData[oldKey].data.value;\n } else {\n initialValue = opts.getCachedData(newKey, nuxtApp, { cause: \"initial\" });\n initialFetchOptions.cachedData = initialValue;\n }\n nuxtApp._asyncData[newKey] = buildAsyncData(nuxtApp, newKey, _handler, opts, initialValue);\n }\n nuxtApp._asyncData[newKey]._deps++;\n if (oldKey) {\n unregister(oldKey);\n }\n const keyTriggersExecute = opts._keyTriggersExecute !== false;\n if (keyTriggersExecute && (opts.immediate || hadData || wasRunning)) {\n nuxtApp._asyncData[newKey].execute(initialFetchOptions);\n }\n queuePostFlushCb(() => {\n keyChanging = false;\n });\n }\n }, { flush: \"sync\" }) : noop;\n const unsubParamsWatcher = opts.watch ? watch(opts.watch, () => {\n if (keyChanging) {\n return;\n }\n if (nuxtApp._asyncData[key.value]?._execute.isPending()) {\n queuePostFlushCb(() => {\n nuxtApp._asyncData[key.value]?._execute.flush();\n });\n }\n nuxtApp._asyncData[key.value]?._execute({ cause: \"watch\", dedupe: opts.dedupe });\n }) : noop;\n if (hasScope) {\n onScopeDispose(() => {\n unsubKeyWatcher();\n unsubParamsWatcher();\n unregister(key.value);\n });\n }\n }\n const asyncReturn = {\n data: writableComputedRef(() => nuxtApp._asyncData[key.value]?.data),\n pending: writableComputedRef(() => nuxtApp._asyncData[key.value]?.pending),\n status: writableComputedRef(() => nuxtApp._asyncData[key.value]?.status),\n error: writableComputedRef(() => nuxtApp._asyncData[key.value]?.error),\n refresh: (...args2) => {\n if (!nuxtApp._asyncData[key.value]?._init) {\n const initialFetch2 = createInitialFetch();\n return initialFetch2();\n }\n return nuxtApp._asyncData[key.value].execute(...args2);\n },\n execute: (...args2) => asyncReturn.refresh(...args2),\n clear: () => {\n const entry = nuxtApp._asyncData[key.value];\n if (entry?._abortController) {\n try {\n entry._abortController.abort(new DOMException(\"AsyncData aborted by user.\", \"AbortError\"));\n } finally {\n entry._abortController = void 0;\n }\n }\n clearNuxtDataByKey(nuxtApp, key.value);\n }\n };\n const asyncDataPromise = Promise.resolve(nuxtApp._asyncDataPromises[key.value]).then(() => asyncReturn);\n Object.assign(asyncDataPromise, asyncReturn);\n Object.defineProperties(asyncDataPromise, {\n then: { enumerable: true, value: asyncDataPromise.then.bind(asyncDataPromise) },\n catch: { enumerable: true, value: asyncDataPromise.catch.bind(asyncDataPromise) },\n finally: { enumerable: true, value: asyncDataPromise.finally.bind(asyncDataPromise) }\n });\n return asyncDataPromise;\n }\n return useAsyncData2;\n }\n});\nexport const useAsyncData = createUseAsyncData.__nuxt_factory();\nexport const useLazyAsyncData = createUseAsyncData.__nuxt_factory({\n lazy: true,\n // @ts-expect-error private property\n _functionName: \"useLazyAsyncData\"\n});\nfunction writableComputedRef(getter) {\n return computed({\n get() {\n return getter()?.value;\n },\n set(value) {\n const ref2 = getter();\n if (ref2) {\n ref2.value = value;\n }\n }\n });\n}\nfunction _isAutoKeyNeeded(keyOrFetcher, fetcher) {\n if (typeof keyOrFetcher === \"string\") {\n return false;\n }\n if (typeof keyOrFetcher === \"object\" && keyOrFetcher !== null) {\n return false;\n }\n if (typeof keyOrFetcher === \"function\" && typeof fetcher === \"function\") {\n return false;\n }\n return true;\n}\nexport function useNuxtData(key) {\n const nuxtApp = useNuxtApp();\n if (!(key in nuxtApp.payload.data)) {\n nuxtApp.payload.data[key] = void 0;\n }\n if (nuxtApp._asyncData[key]) {\n const data = nuxtApp._asyncData[key];\n data._deps++;\n if (getCurrentScope()) {\n onScopeDispose(() => {\n data._deps--;\n if (data._deps === 0) {\n data?._off();\n }\n });\n }\n }\n return {\n data: computed({\n get() {\n return nuxtApp._asyncData[key]?.data.value ?? nuxtApp.payload.data[key];\n },\n set(value) {\n if (nuxtApp._asyncData[key]) {\n nuxtApp._asyncData[key].data.value = value;\n } else {\n nuxtApp.payload.data[key] = value;\n }\n }\n })\n };\n}\nexport async function refreshNuxtData(keys) {\n if (import.meta.server) {\n return Promise.resolve();\n }\n await new Promise((resolve) => onNuxtReady(resolve));\n const _keys = keys ? toArray(keys) : void 0;\n await useNuxtApp().hooks.callHookParallel(\"app:data:refresh\", _keys);\n}\nexport function clearNuxtData(keys) {\n const nuxtApp = useNuxtApp();\n const _allKeys = Object.keys(nuxtApp.payload.data);\n const _keys = !keys ? _allKeys : typeof keys === \"function\" ? _allKeys.filter(keys) : toArray(keys);\n for (const key of _keys) {\n clearNuxtDataByKey(nuxtApp, key);\n }\n}\nfunction clearNuxtDataByKey(nuxtApp, key) {\n if (key in nuxtApp.payload.data) {\n nuxtApp.payload.data[key] = void 0;\n }\n if (key in nuxtApp.payload._errors) {\n nuxtApp.payload._errors[key] = void 0;\n }\n if (nuxtApp._asyncData[key]) {\n nuxtApp._asyncData[key].data.value = unref(nuxtApp._asyncData[key]._default());\n nuxtApp._asyncData[key].error.value = void 0;\n if (pendingWhenIdle) {\n nuxtApp._asyncData[key].pending.value = false;\n }\n nuxtApp._asyncData[key].status.value = \"idle\";\n nuxtApp._asyncData[key]._initialCachedData = void 0;\n }\n if (key in nuxtApp._asyncDataPromises) {\n nuxtApp._asyncDataPromises[key] = void 0;\n }\n}\nfunction pick(obj, keys) {\n const newObj = {};\n for (const key of keys) {\n newObj[key] = obj[key];\n }\n return newObj;\n}\nfunction buildAsyncData(nuxtApp, key, _handler, options, initialCachedData) {\n nuxtApp.payload._errors[key] ??= void 0;\n const hasCustomGetCachedData = options.getCachedData !== getDefaultCachedData;\n const handler = import.meta.client || !import.meta.prerender || !nuxtApp.ssrContext?.[\"~sharedPrerenderCache\"] ? _handler : (nuxtApp2, options2) => {\n const value = nuxtApp2.ssrContext[\"~sharedPrerenderCache\"].get(key);\n if (value) {\n return value;\n }\n const promise = Promise.resolve().then(() => nuxtApp2.runWithContext(() => _handler(nuxtApp2, options2)));\n nuxtApp2.ssrContext[\"~sharedPrerenderCache\"].set(key, promise);\n return promise;\n };\n const _ref = options.deep ? ref : shallowRef;\n const hasCachedData = initialCachedData !== void 0;\n const unsubRefreshAsyncData = nuxtApp.hook(\"app:data:refresh\", async (keys) => {\n if (!keys || keys.includes(key)) {\n await asyncData.execute({ cause: \"refresh:hook\" });\n }\n });\n const asyncData = {\n data: _ref(hasCachedData ? initialCachedData : options.default()),\n pending: pendingWhenIdle ? shallowRef(!hasCachedData) : computed(() => asyncData.status.value === \"pending\"),\n error: toRef(nuxtApp.payload._errors, key),\n status: shallowRef(\"idle\"),\n execute: (...args) => {\n const [_opts, newValue = void 0] = args;\n const opts = _opts && newValue === void 0 && typeof _opts === \"object\" ? _opts : {};\n if (import.meta.dev && newValue !== void 0 && (!_opts || typeof _opts !== \"object\")) {\n console.warn(`[nuxt] [${options._functionName}] Do not pass \\`execute\\` directly to \\`watch\\`. Instead, use an inline function, such as \\`watch(q, () => execute())\\`.`);\n }\n if (nuxtApp._asyncDataPromises[key]) {\n if ((opts.dedupe ?? options.dedupe) === \"defer\") {\n return nuxtApp._asyncDataPromises[key];\n }\n }\n if (granularCachedData || opts.cause === \"initial\" || nuxtApp.isHydrating) {\n const cachedData = \"cachedData\" in opts ? opts.cachedData : options.getCachedData(key, nuxtApp, { cause: opts.cause ?? \"refresh:manual\" });\n if (cachedData !== void 0) {\n nuxtApp.payload.data[key] = asyncData.data.value = cachedData;\n asyncData.error.value = void 0;\n asyncData.status.value = \"success\";\n return Promise.resolve(cachedData);\n }\n }\n if (pendingWhenIdle) {\n asyncData.pending.value = true;\n }\n if (asyncData._abortController) {\n asyncData._abortController.abort(new DOMException(\"AsyncData request cancelled by deduplication\", \"AbortError\"));\n }\n asyncData._abortController = new AbortController();\n asyncData.status.value = \"pending\";\n const cleanupController = new AbortController();\n const promise = new Promise(\n (resolve, reject) => {\n try {\n const timeout = opts.timeout ?? options.timeout;\n const mergedSignal = mergeAbortSignals([asyncData._abortController?.signal, opts?.signal], cleanupController.signal, timeout);\n if (mergedSignal.aborted) {\n const reason = mergedSignal.reason;\n reject(reason instanceof Error ? reason : new DOMException(String(reason ?? \"Aborted\"), \"AbortError\"));\n return;\n }\n mergedSignal.addEventListener(\"abort\", () => {\n const reason = mergedSignal.reason;\n reject(reason instanceof Error ? reason : new DOMException(String(reason ?? \"Aborted\"), \"AbortError\"));\n }, { once: true, signal: cleanupController.signal });\n return Promise.resolve(handler(nuxtApp, { signal: mergedSignal })).then(resolve, reject);\n } catch (err) {\n reject(err);\n }\n }\n ).then(async (_result) => {\n if (nuxtApp._asyncDataPromises[key] !== promise) {\n return;\n }\n let result = _result;\n if (options.transform) {\n result = await options.transform(_result);\n }\n if (options.pick) {\n result = pick(result, options.pick);\n }\n if (import.meta.dev && import.meta.server && typeof result === \"undefined\") {\n const caller = getUserCaller();\n const explanation = caller ? ` (used at ${caller.source}:${caller.line}:${caller.column})` : \"\";\n console.warn(`[nuxt] \\`${options._functionName || \"useAsyncData\"}${explanation}\\` must return a value (it should not be \\`undefined\\`) or the request may be duplicated on the client side.`);\n }\n nuxtApp.payload.data[key] = result;\n asyncData.data.value = result;\n asyncData.error.value = void 0;\n asyncData.status.value = \"success\";\n }).catch((error) => {\n if (nuxtApp._asyncDataPromises[key] !== promise) {\n return nuxtApp._asyncDataPromises[key];\n }\n if (asyncData._abortController?.signal.aborted) {\n return nuxtApp._asyncDataPromises[key];\n }\n if (typeof DOMException !== \"undefined\" && error instanceof DOMException && error.name === \"AbortError\") {\n asyncData.status.value = \"idle\";\n return nuxtApp._asyncDataPromises[key];\n }\n asyncData.error.value = createError(error);\n asyncData.data.value = unref(options.default());\n asyncData.status.value = \"error\";\n }).finally(() => {\n cleanupController.abort();\n if (nuxtApp._asyncDataPromises[key] === promise) {\n if (pendingWhenIdle) {\n asyncData.pending.value = false;\n }\n delete nuxtApp._asyncDataPromises[key];\n }\n });\n nuxtApp._asyncDataPromises[key] = promise;\n return nuxtApp._asyncDataPromises[key];\n },\n _execute: debounce((...args) => asyncData.execute(...args), 0, { leading: true }),\n _default: options.default,\n _deps: 0,\n _init: true,\n _hash: import.meta.dev ? createHash(_handler, options) : void 0,\n _off: () => {\n unsubRefreshAsyncData();\n if (nuxtApp._asyncData[key]?._init) {\n nuxtApp._asyncData[key]._init = false;\n }\n if (purgeCachedData && !hasCustomGetCachedData) {\n nextTick(() => {\n if (!nuxtApp._asyncData[key]?._init) {\n clearNuxtDataByKey(nuxtApp, key);\n asyncData.execute = () => Promise.resolve();\n }\n });\n }\n }\n };\n return asyncData;\n}\nconst getDefault = () => void 0;\nconst getDefaultCachedData = (key, nuxtApp, ctx) => {\n if (nuxtApp.isHydrating) {\n return nuxtApp.payload.data[key];\n }\n if (ctx.cause !== \"refresh:manual\" && ctx.cause !== \"refresh:hook\") {\n return nuxtApp.static.data[key];\n }\n};\nfunction createHash(_handler, options) {\n return {\n handler: hash(_handler),\n transform: options.transform ? hash(options.transform) : void 0,\n pick: options.pick ? hash(options.pick) : void 0,\n getCachedData: options.getCachedData ? hash(options.getCachedData) : void 0\n };\n}\nfunction mergeAbortSignals(signals, cleanupSignal, timeout) {\n const list = signals.filter((s) => !!s);\n if (typeof timeout === \"number\" && timeout >= 0) {\n const timeoutSignal = AbortSignal.timeout?.(timeout);\n if (timeoutSignal) {\n list.push(timeoutSignal);\n }\n }\n if (AbortSignal.any) {\n return AbortSignal.any(list);\n }\n const controller = new AbortController();\n for (const sig of list) {\n if (sig.aborted) {\n const reason = sig.reason ?? new DOMException(\"Aborted\", \"AbortError\");\n try {\n controller.abort(reason);\n } catch {\n controller.abort();\n }\n return controller.signal;\n }\n }\n const onAbort = () => {\n const abortedSignal = list.find((s) => s.aborted);\n const reason = abortedSignal?.reason ?? new DOMException(\"Aborted\", \"AbortError\");\n try {\n controller.abort(reason);\n } catch {\n controller.abort();\n }\n };\n for (const sig of list) {\n sig.addEventListener?.(\"abort\", onAbort, { once: true, signal: cleanupSignal });\n }\n return controller.signal;\n}\n","import { setResponseStatus as _setResponseStatus, appendHeader, getRequestHeader, getRequestHeaders, getResponseHeader, removeResponseHeader, setResponseHeader } from \"@nuxt/nitro-server/h3\";\nimport { computed, getCurrentInstance, ref } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useHead } from \"./head.js\";\nexport function useRequestEvent(nuxtApp) {\n if (import.meta.client) {\n return;\n }\n nuxtApp ||= useNuxtApp();\n return nuxtApp.ssrContext?.event;\n}\nexport function useRequestHeaders(include) {\n if (import.meta.client) {\n return {};\n }\n const event = useRequestEvent();\n const _headers = event ? getRequestHeaders(event) : {};\n if (!include || !event) {\n return _headers;\n }\n const headers = /* @__PURE__ */ Object.create(null);\n for (const _key of include) {\n const key = _key.toLowerCase();\n const header = _headers[key];\n if (header) {\n headers[key] = header;\n }\n }\n return headers;\n}\nexport function useRequestHeader(header) {\n if (import.meta.client) {\n return void 0;\n }\n const event = useRequestEvent();\n return event ? getRequestHeader(event, header) : void 0;\n}\nexport function useRequestFetch() {\n if (import.meta.client) {\n return globalThis.$fetch;\n }\n return useRequestEvent()?.$fetch || globalThis.$fetch;\n}\nexport function setResponseStatus(arg1, arg2, arg3) {\n if (import.meta.client) {\n return;\n }\n if (arg1 && typeof arg1 !== \"number\") {\n return _setResponseStatus(arg1, arg2, arg3);\n }\n const event = useRequestEvent();\n if (event) {\n return _setResponseStatus(event, arg1, arg2);\n }\n}\nexport function useResponseHeader(header) {\n if (import.meta.client) {\n if (import.meta.dev) {\n return computed({\n get: () => void 0,\n set: () => console.warn(\"[nuxt] Setting response headers is not supported in the browser.\")\n });\n }\n return ref();\n }\n const event = useRequestEvent();\n return computed({\n get() {\n return getResponseHeader(event, header);\n },\n set(newValue) {\n if (!newValue) {\n return removeResponseHeader(event, header);\n }\n return setResponseHeader(event, header, newValue);\n }\n });\n}\nexport function prerenderRoutes(path) {\n if (!import.meta.server || !import.meta.prerender) {\n return;\n }\n const paths = toArray(path);\n appendHeader(useRequestEvent(), \"x-nitro-prerender\", paths.map((p) => encodeURIComponent(p)).join(\", \"));\n}\nconst PREHYDRATE_ATTR_KEY = \"data-prehydrate-id\";\nexport function onPrehydrate(callback, key) {\n if (import.meta.client) {\n return;\n }\n if (typeof callback !== \"string\") {\n throw new TypeError(\"[nuxt] To transform a callback into a string, `onPrehydrate` must be processed by the Nuxt build pipeline. If it is called in a third-party library, make sure to add the library to `build.transpile`.\");\n }\n const vm = getCurrentInstance();\n if (vm && key) {\n vm.attrs[PREHYDRATE_ATTR_KEY] ||= \"\";\n key = \":\" + key + \":\";\n if (!vm.attrs[PREHYDRATE_ATTR_KEY].includes(key)) {\n vm.attrs[PREHYDRATE_ATTR_KEY] += key;\n }\n }\n const code = vm && key ? `document.querySelectorAll('[${PREHYDRATE_ATTR_KEY}*=${JSON.stringify(key)}]').forEach` + callback : callback + \"()\";\n useHead({\n script: [{\n key: vm && key ? key : void 0,\n tagPosition: \"bodyClose\",\n tagPriority: \"critical\",\n innerHTML: code\n }]\n });\n return vm && key ? vm.attrs[PREHYDRATE_ATTR_KEY] : void 0;\n}\n","import { computed, reactive, toValue, watch } from \"vue\";\nimport { hash } from \"ohash\";\nimport { isPlainObject } from \"@vue/shared\";\nimport { useRequestFetch } from \"./ssr.js\";\nimport { useAsyncData } from \"./asyncData.js\";\nimport { defineKeyedFunctionFactory } from \"../../compiler/runtime\";\nimport { alwaysRunFetchOnKeyChange, fetchDefaults } from \"#build/nuxt.config.mjs\";\nfunction generateOptionSegments(opts) {\n const segments = [\n toValue(opts.method)?.toUpperCase() || \"GET\",\n toValue(opts.baseURL)\n ];\n for (const _obj of [opts.query || opts.params]) {\n const obj = toValue(_obj);\n if (!obj) {\n continue;\n }\n const unwrapped = {};\n for (const [key, value] of Object.entries(obj)) {\n unwrapped[toValue(key)] = toValue(value);\n }\n segments.push(unwrapped);\n }\n if (opts.body) {\n const value = toValue(opts.body);\n if (!value) {\n segments.push(hash(value));\n } else if (value instanceof ArrayBuffer) {\n segments.push(hash(Object.fromEntries([...new Uint8Array(value).entries()].map(([k, v]) => [k, v.toString()]))));\n } else if (value instanceof FormData) {\n const entries = [];\n for (const entry of value.entries()) {\n const [key, val] = entry;\n entries.push([key, val instanceof File ? `${val.name}:${val.size}:${val.lastModified}` : val]);\n }\n segments.push(hash(entries));\n } else if (isPlainObject(value)) {\n segments.push(hash(reactive(value)));\n } else {\n try {\n segments.push(hash(value));\n } catch {\n console.warn(\"[useFetch] Failed to hash body\", value);\n }\n }\n }\n return segments;\n}\nexport const createUseFetch = defineKeyedFunctionFactory({\n name: \"createUseFetch\",\n factory(options = {}) {\n function useFetch2(request, arg1, arg2) {\n const [opts = {}, autoKey] = typeof arg1 === \"string\" ? [{}, arg1] : [arg1, arg2];\n const factoryOptions = typeof options === \"function\" ? options(opts) : options;\n const {\n server,\n lazy,\n default: defaultFn,\n transform,\n pick,\n watch: watchSources,\n immediate,\n getCachedData,\n deep,\n dedupe,\n timeout,\n ...fetchOptions\n } = {\n ...typeof options === \"function\" ? {} : factoryOptions,\n ...opts,\n ...typeof options === \"function\" ? factoryOptions : {}\n };\n const _request = computed(() => toValue(request));\n const key = computed(() => toValue(fetchOptions.key) || \"$f\" + hash([autoKey, typeof _request.value === \"string\" ? _request.value : \"\", ...generateOptionSegments(fetchOptions)]));\n if (!fetchOptions.baseURL && typeof _request.value === \"string\" && (_request.value[0] === \"/\" && _request.value[1] === \"/\")) {\n throw new Error('[nuxt] [useFetch] the request URL must not start with \"//\".');\n }\n const _fetchOptions = reactive({\n ...fetchDefaults,\n ...fetchOptions,\n cache: typeof fetchOptions.cache === \"boolean\" ? void 0 : fetchOptions.cache\n });\n const _asyncDataOptions = {\n server,\n lazy,\n default: defaultFn,\n transform,\n pick,\n immediate,\n getCachedData,\n deep,\n dedupe,\n timeout,\n watch: watchSources === false ? [] : [...watchSources || [], _fetchOptions]\n };\n if (import.meta.dev) {\n _asyncDataOptions._functionName ||= factoryOptions._functionName || \"useFetch\";\n }\n if (watchSources === false) {\n ;\n _asyncDataOptions._keyTriggersExecute = false;\n }\n if (alwaysRunFetchOnKeyChange && !immediate) {\n let setImmediate = function() {\n _asyncDataOptions.immediate = true;\n };\n watch(key, setImmediate, { flush: \"sync\", once: true });\n watch([...watchSources || [], _fetchOptions], setImmediate, { flush: \"sync\", once: true });\n }\n const asyncData = useAsyncData(key, (_, { signal }) => {\n let _$fetch = fetchOptions.$fetch || globalThis.$fetch;\n if (import.meta.server && !fetchOptions.$fetch) {\n const isLocalFetch = typeof _request.value === \"string\" && _request.value[0] === \"/\" && (!toValue(fetchOptions.baseURL) || toValue(fetchOptions.baseURL)[0] === \"/\");\n if (isLocalFetch) {\n _$fetch = useRequestFetch();\n }\n }\n return _$fetch(_request.value, { signal, ..._fetchOptions });\n }, _asyncDataOptions);\n return asyncData;\n }\n return useFetch2;\n }\n});\nexport const useFetch = createUseFetch.__nuxt_factory();\nexport const useLazyFetch = createUseFetch.__nuxt_factory({\n lazy: true,\n // @ts-expect-error private property\n _functionName: \"useLazyFetch\"\n});\n","import { createPinia, setActivePinia } from \"pinia\";\nimport { defineNuxtPlugin, useNuxtApp } from \"#app\";\nimport { toRaw } from \"vue\";\nconst plugin = defineNuxtPlugin({\n name: \"pinia\",\n setup(nuxtApp) {\n const pinia = createPinia();\n nuxtApp.vueApp.use(pinia);\n setActivePinia(pinia);\n if (nuxtApp.payload && nuxtApp.payload.pinia) {\n pinia.state.value = nuxtApp.payload.pinia;\n }\n return {\n provide: {\n pinia\n }\n };\n },\n hooks: {\n \"app:rendered\"() {\n const nuxtApp = useNuxtApp();\n nuxtApp.payload.pinia = toRaw(nuxtApp.$pinia).state.value;\n setActivePinia(void 0);\n }\n }\n});\nexport default plugin;\n","\nimport { defineNuxtPlugin } from '#app/nuxt'\nexport default defineNuxtPlugin({\n name: 'nuxt:global-components',\n})\n","import payload_plugin_vfxyM1biN59FP0Nnr5zjaaXnrjmDUAMUDHGB1jIAoxw from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js\";\nimport unhead_onaWNbu_aBWmOMZtU6jpQtjACQlz0S9RZ6v_ogqPSGE from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_MhK3qgJ0WYuBDV9Bc2R15ebVnAkYpW_sO8RSA5WFQ8Q from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_y_Jg9TKMK_pSVgbwS3QYggu2__NI0DEkI7DvOxdnJaM from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport plugin_vue3_vUOR2Yexyy_5GDuyJio1AxmO0eM0omT0mn6x_agTjzA from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js\";\nimport components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8 from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.cache/nuxt/.nuxt/components.plugin.mjs\";\nexport default [\n payload_plugin_vfxyM1biN59FP0Nnr5zjaaXnrjmDUAMUDHGB1jIAoxw,\n unhead_onaWNbu_aBWmOMZtU6jpQtjACQlz0S9RZ6v_ogqPSGE,\n router_MhK3qgJ0WYuBDV9Bc2R15ebVnAkYpW_sO8RSA5WFQ8Q,\n revive_payload_server_y_Jg9TKMK_pSVgbwS3QYggu2__NI0DEkI7DvOxdnJaM,\n plugin_vue3_vUOR2Yexyy_5GDuyJio1AxmO0eM0omT0mn6x_agTjzA,\n components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8\n]","import { defineAsyncComponent } from 'vue'\nexport default {\n auth: defineAsyncComponent(() => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/layouts/auth.vue\").then(m => m.default || m)),\n default: defineAsyncComponent(() => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/layouts/default.vue\").then(m => m.default || m))\n}","import { Suspense, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, shallowReactive, shallowRef, unref } from \"vue\";\nimport { useRoute, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"./utils.js\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"./injections.js\";\nimport { useRoute as useVueRouterRoute } from \"#build/pages\";\nimport layouts from \"#build/layouts\";\nimport { appLayoutTransition as defaultLayoutTransition } from \"#build/nuxt.config.mjs\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nconst LayoutLoader = defineComponent({\n name: \"LayoutLoader\",\n inheritAttrs: false,\n props: {\n name: String,\n layoutProps: Object\n },\n setup(props, context) {\n return () => h(layouts[props.name], props.layoutProps, context.slots);\n }\n});\nconst nuxtLayoutProps = {\n name: {\n type: [String, Boolean, Object],\n default: null\n },\n fallback: {\n type: [String, Object],\n default: null\n }\n};\nexport default defineComponent({\n name: \"NuxtLayout\",\n inheritAttrs: false,\n props: nuxtLayoutProps,\n setup(props, context) {\n const nuxtApp = useNuxtApp();\n const injectedRoute = inject(PageRouteSymbol);\n const shouldUseEagerRoute = !injectedRoute || injectedRoute === useRoute();\n const route = shouldUseEagerRoute ? useVueRouterRoute() : injectedRoute;\n const layout = computed(() => {\n let layout2 = unref(props.name) ?? route?.meta.layout ?? routeRulesMatcher(route?.path).appLayout ?? \"default\";\n if (layout2 && !(layout2 in layouts)) {\n if (import.meta.dev && layout2 !== \"default\") {\n console.warn(`[nuxt] Invalid layout \\`${layout2}\\` selected.`);\n }\n if (props.fallback) {\n layout2 = unref(props.fallback);\n }\n }\n return layout2;\n });\n const layoutRef = shallowRef();\n context.expose({ layoutRef });\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtLayoutUsed = true;\n }\n let lastLayout;\n return () => {\n const hasLayout = !!layout.value && layout.value in layouts;\n const hasTransition = hasLayout && !!(route?.meta.layoutTransition ?? defaultLayoutTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n route?.meta.layoutTransition,\n defaultLayoutTransition,\n {\n onBeforeLeave() {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n },\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n }\n }\n ]);\n const previouslyRenderedLayout = lastLayout;\n lastLayout = layout.value;\n return _wrapInTransition(transitionProps, {\n default: () => h(\n Suspense,\n {\n suspensible: true,\n onResolve: async () => {\n await nextTick(done);\n }\n },\n {\n default: () => h(\n LayoutProvider,\n {\n layoutProps: mergeProps(context.attrs, route.meta.layoutProps ?? {}, { ref: layoutRef }),\n key: layout.value || void 0,\n name: layout.value,\n shouldProvide: !props.name,\n isRenderingNewLayout: (name) => {\n return name !== previouslyRenderedLayout && name === layout.value;\n },\n hasTransition\n },\n context.slots\n )\n }\n )\n }).default();\n };\n }\n});\nconst LayoutProvider = defineComponent({\n name: \"NuxtLayoutProvider\",\n inheritAttrs: false,\n props: {\n name: {\n type: [String, Boolean]\n },\n layoutProps: {\n type: Object\n },\n hasTransition: {\n type: Boolean\n },\n shouldProvide: {\n type: Boolean\n },\n isRenderingNewLayout: {\n type: Function,\n required: true\n }\n },\n setup(props, context) {\n const name = props.name;\n if (props.shouldProvide) {\n provide(LayoutMetaSymbol, {\n // When name=false, always return true so NuxtPage doesn't skip rendering\n isCurrent: (route) => name === false || name === (route.meta.layout ?? routeRulesMatcher(route.path).appLayout ?? \"default\")\n });\n }\n const injectedRoute = inject(PageRouteSymbol);\n const isNotWithinNuxtPage = injectedRoute && injectedRoute === useRoute();\n if (isNotWithinNuxtPage) {\n const vueRouterRoute = useVueRouterRoute();\n const reactiveChildRoute = {};\n for (const _key in vueRouterRoute) {\n const key = _key;\n Object.defineProperty(reactiveChildRoute, key, {\n enumerable: true,\n get: () => {\n return props.isRenderingNewLayout(props.name) ? vueRouterRoute[key] : injectedRoute[key];\n }\n });\n }\n provide(PageRouteSymbol, shallowReactive(reactiveChildRoute));\n }\n let vnode;\n if (import.meta.dev && import.meta.client) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n if (name) {\n console.warn(`[nuxt] \\`${name}\\` layout does not have a single root node and will cause errors when navigating between routes.`);\n } else {\n console.warn(\"[nuxt] `` needs to be passed a single root node in its default slot.\");\n }\n }\n });\n });\n }\n return () => {\n if (!name || typeof name === \"string\" && !(name in layouts)) {\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = context.slots.default?.();\n return vnode;\n }\n return context.slots.default?.();\n }\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n return vnode;\n }\n return h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n };\n }\n});\n","import { defineComponent, h, nextTick, onMounted, provide, shallowReactive } from \"vue\";\nimport { PageRouteSymbol } from \"./injections.js\";\nexport const defineRouteProvider = (name = \"RouteProvider\") => defineComponent({\n name,\n props: {\n route: {\n type: Object,\n required: true\n },\n vnode: Object,\n vnodeRef: Object,\n renderKey: String,\n trackRootNodes: Boolean\n },\n setup(props) {\n const previousKey = props.renderKey;\n const previousRoute = props.route;\n const route = {};\n for (const key in props.route) {\n Object.defineProperty(route, key, {\n get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],\n enumerable: true\n });\n }\n provide(PageRouteSymbol, shallowReactive(route));\n let vnode;\n if (import.meta.dev && import.meta.client && props.trackRootNodes) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n const filename = vnode?.type?.__file;\n console.warn(`[nuxt] \\`${filename}\\` does not have a single root node and will cause errors when navigating between routes.`);\n }\n });\n });\n }\n return () => {\n if (!props.vnode) {\n return props.vnode;\n }\n if (import.meta.dev && import.meta.client) {\n vnode = h(props.vnode, { ref: props.vnodeRef });\n return vnode;\n }\n return h(props.vnode, { ref: props.vnodeRef });\n };\n }\n});\nexport const RouteProvider = defineRouteProvider();\n","import { Fragment, Suspense, defineComponent, h, inject, nextTick, onBeforeUnmount, ref, watch } from \"vue\";\nimport { RouterView } from \"vue-router\";\nimport { generateRouteKey, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"#app/components/utils\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"#app/components/injections\";\nimport { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nconst _routeProviders = import.meta.dev ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new WeakMap();\nexport default defineComponent({\n name: \"NuxtPage\",\n inheritAttrs: false,\n props: {\n name: {\n type: String\n },\n transition: {\n type: [Boolean, Object],\n default: void 0\n },\n keepalive: {\n type: [Boolean, Object],\n default: void 0\n },\n route: {\n type: Object\n },\n pageKey: {\n type: [Function, String],\n default: null\n }\n },\n setup(props, { attrs, slots, expose }) {\n const nuxtApp = useNuxtApp();\n const pageRef = ref();\n const forkRoute = inject(PageRouteSymbol, null);\n let previousPageKey;\n expose({ pageRef });\n const _layoutMeta = inject(LayoutMetaSymbol, null);\n let vnode;\n const done = nuxtApp.deferHydration();\n let isSuspensePending = false;\n let hasResolvedOnce = false;\n let suspenseKey = 0;\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.client && props.pageKey) {\n watch(() => props.pageKey, (next, prev) => {\n if (next !== prev) {\n nuxtApp.callHook(\"page:loading:start\");\n }\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtPageUsed = true;\n }\n let pageLoadingEndHookAlreadyCalled = false;\n if (import.meta.client) {\n const unsub = useRouter().beforeResolve(() => {\n pageLoadingEndHookAlreadyCalled = false;\n });\n onBeforeUnmount(() => {\n unsub();\n done();\n });\n }\n return () => {\n return h(RouterView, { name: props.name, route: props.route, ...attrs }, {\n default: import.meta.server ? (routeProps) => {\n return h(Suspense, { suspensible: true }, {\n default() {\n return h(RouteProvider, {\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n vnodeRef: pageRef\n });\n }\n });\n } : (routeProps) => {\n const isRenderingNewRouteInOldFork = haveParentRoutesRendered(forkRoute, routeProps.route, routeProps.Component);\n const hasSameChildren = forkRoute && forkRoute.matched.length === routeProps.route.matched.length;\n if (!routeProps.Component) {\n if (vnode && !hasSameChildren && !isStaleVNode(vnode)) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !isStaleVNode(vnode) && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if ((hasSameChildren || vnode) && !isStaleVNode(vnode)) {\n return vnode;\n }\n return null;\n }\n const key = generateRouteKey(routeProps, props.pageKey);\n const willRenderAnotherChild = hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component);\n if (!nuxtApp.isHydrating && previousPageKey === key && !willRenderAnotherChild) {\n nextTick(() => {\n if (!pageLoadingEndHookAlreadyCalled) {\n pageLoadingEndHookAlreadyCalled = true;\n nuxtApp.callHook(\"page:loading:end\");\n }\n });\n }\n if (isSuspensePending && previousPageKey !== key && hasResolvedOnce) {\n suspenseKey++;\n }\n previousPageKey = key;\n const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n props.transition,\n routeProps.route.meta.pageTransition,\n defaultPageTransition,\n {\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n nuxtApp.callHook(\"page:transition:finish\", routeProps.Component);\n }\n }\n ]);\n const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? defaultKeepaliveConfig;\n vnode = _wrapInTransition(\n hasTransition && transitionProps,\n wrapInKeepAlive(\n keepaliveConfig,\n h(Suspense, {\n key: suspenseKey,\n suspensible: true,\n onPending: () => {\n isSuspensePending = true;\n if (hasTransition && !nuxtApp[\"~transitionPromise\"]) {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n }\n nuxtApp.callHook(\"page:start\", routeProps.Component);\n },\n onResolve: async () => {\n isSuspensePending = false;\n hasResolvedOnce = true;\n try {\n await nextTick();\n nuxtApp._route.sync?.();\n await nuxtApp.callHook(\"page:finish\", routeProps.Component);\n if (!pageLoadingEndHookAlreadyCalled && !willRenderAnotherChild) {\n pageLoadingEndHookAlreadyCalled = true;\n await nuxtApp.callHook(\"page:loading:end\");\n }\n } finally {\n done();\n }\n }\n }, {\n default: () => {\n const routeProviderProps = {\n key: key || void 0,\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n renderKey: key || void 0,\n trackRootNodes: hasTransition,\n vnodeRef: pageRef\n };\n if (!keepaliveConfig) {\n return h(RouteProvider, routeProviderProps);\n }\n const routerComponentType = routeProps.Component.type;\n const routeProviderKey = import.meta.dev ? routerComponentType.name || routerComponentType.__name : routerComponentType;\n let PageRouteProvider = _routeProviders.get(routeProviderKey);\n if (!PageRouteProvider) {\n PageRouteProvider = defineRouteProvider(routerComponentType.name || routerComponentType.__name);\n _routeProviders.set(routeProviderKey, PageRouteProvider);\n }\n return h(PageRouteProvider, routeProviderProps);\n }\n })\n )\n ).default();\n return vnode;\n }\n });\n };\n }\n});\nfunction haveParentRoutesRendered(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n if (index === -1) {\n return false;\n }\n const newParents = newRoute.matched.slice(0, index).filter((m) => m.components?.default);\n if (!newParents.length) {\n return false;\n }\n const forkParents = fork.matched.filter((m) => m.components?.default);\n return newParents.some((c, i) => c.components?.default !== forkParents[i]?.components?.default) || Component && generateRouteKey({ route: newRoute, Component }) !== generateRouteKey({ route: fork, Component });\n}\nfunction hasChildrenRoutes(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n return index < newRoute.matched.length - 1;\n}\nfunction normalizeSlot(slot, data) {\n const slotContent = slot(data);\n return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);\n}\nfunction isStaleVNode(vnode) {\n return !!vnode && (!!vnode.suspense?.isUnmounted || !!vnode.component?.isUnmounted);\n}\n","\n","\n\n\n","\n\n\n","import { createApp, createSSRApp, nextTick } from \"vue\";\nimport \"#build/fetch.mjs\";\nimport \"#build/global-polyfills.mjs\";\nimport { applyPlugins, createNuxtApp } from \"./nuxt.js\";\nimport { createError } from \"./composables/error.js\";\nimport \"#build/css\";\nimport plugins from \"#build/plugins\";\nimport RootComponent from \"#build/root-component.mjs\";\nimport { appId, appSpaLoaderAttrs, multiApp, spaLoadingTemplateOutside, vueAppRootContainer } from \"#build/nuxt.config.mjs\";\nlet entry;\nif (import.meta.server) {\n entry = async function createNuxtAppServer(ssrContext) {\n const vueApp = createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp, ssrContext });\n try {\n await applyPlugins(nuxt, plugins);\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n } catch (error) {\n await nuxt.hooks.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n if (ssrContext && (ssrContext[\"~renderResponse\"] || ssrContext._renderResponse)) {\n throw new Error(\"skipping render\");\n }\n return vueApp;\n };\n}\nif (import.meta.client) {\n if (import.meta.dev && import.meta.webpackHot) {\n import.meta.webpackHot.accept();\n }\n let vueAppPromise;\n entry = async function initApp() {\n if (vueAppPromise) {\n return vueAppPromise;\n }\n const isSSR = Boolean(\n (multiApp ? window.__NUXT__?.[appId] : window.__NUXT__)?.serverRendered ?? (multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\"))?.dataset.ssr === \"true\"\n );\n const vueApp = isSSR ? createSSRApp(RootComponent) : createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp });\n async function handleVueError(error) {\n await nuxt.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n ;\n handleVueError.__nuxt_default = true;\n vueApp.config.errorHandler = handleVueError;\n nuxt.hook(\"app:suspense:resolve\", () => {\n if (vueApp.config.errorHandler === handleVueError) {\n vueApp.config.errorHandler = void 0;\n }\n });\n if (spaLoadingTemplateOutside && !isSSR && appSpaLoaderAttrs.id) {\n nuxt.hook(\"app:suspense:resolve\", () => {\n document.getElementById(appSpaLoaderAttrs.id)?.remove();\n });\n }\n try {\n await applyPlugins(nuxt, plugins);\n } catch (err) {\n handleVueError(err);\n }\n try {\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n await nuxt.hooks.callHook(\"app:beforeMount\", vueApp);\n vueApp.mount(vueAppRootContainer);\n await nuxt.hooks.callHook(\"app:mounted\", vueApp);\n await nextTick();\n } catch (err) {\n handleVueError(err);\n }\n return vueApp;\n };\n vueAppPromise = entry().catch((error) => {\n console.error(\"Error while mounting app:\", error);\n throw error;\n });\n}\nexport default ((ssrContext) => entry(ssrContext));\n"],"version":3} \ No newline at end of file +{"file":"server.mjs","mappings":"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","names":["plugin","provide","plugins","useRoute","parseURL","encodePath","createH3Error","routeRulesMatcher","parseQuery","hash","stringifyQuery","value","location","re","matcher","name","normalizeSlot","matchedRoute","href","replace","failure","resolve","toArray","accountsuf9bCUy96pdO5sDhtrw37BAVSmLjFm_wqAF7eLybYiMMeta","appconfigMaNwwQRe3all4OpVg4ypcFX_uYs7MhHHxXy6HdSwqzAMeta","apps4N_8fM_HAmoSan_tqUVvBfSBVgSnYl__ZGdiSQQbrUQMeta","calltranslateyLuYKm0ZK9L21n5R8uZzUWg2Wz5JWCfqvY_vv13cK8wMeta","codetIaWhqabBnZ9rT9cLF_86EHpOqJs8Du_S5u8tCLN2VcMeta","dashboardZNLB5_JiEysWIj_2b5J2hURJ9xLEtnlF8cxz1kh1xgsMeta","deviceATlhZZ6PiEtU_HD4qeo7Tbnfw0N2ei8nBzbk1UCWcQAMeta","environments2K1an_2pLlUuq0wZm4vf5M_8qSrfGyBr04Cp4cfHb8EMeta","factoryVZatTEN3EjRZOxVm33XY8Gdq71RZ1D_jDUKUf4F_lWIMeta","globalconfignq5luXkq_Ykd2myATDZ7keYzKoRwp_opATj4sH705EcMeta","mcpconfigrFWADY1KKVchc3b_tLzB_4GNdXlzlJnoCP2vK_qS9IgMeta","meettemplates3Nsj0ut16S4eIXd5Lv9nVQD0XusUnq08ZaalLdE0O7IMeta","productWbWlgO8dvY_vVRFylKRGjH7HyHR9RFTvzFbP8equczwMeta","serviceconfig6Gc5qzSDJTYZMnqPqZYds2OIokXbSz4H6XhPAg8iN0EMeta","statlogrR6XJDIk_e8P5NJMugR6upS2Ifr1zDMQogeCNYwz5MQMeta","systemconfigLbtF1nV2kUjJU1iP8sTLfpqV4d2QGryXpZEovNtPXBYMeta","usersfLETUnFtHTvnQYJLMbrQA_IXzpwNp3NUerB3_nZMVvkMeta","indexcEvFhP__rFdFTbvBFnPFkHCn7KMBOSKrrLe98tJlrc4Meta","isArray","global","isRef","START_LOCATION","__executeAsync","entry","isPlainObject","pick","payload_plugin_vfxyM1biN59FP0Nnr5zjaaXnrjmDUAMUDHGB1jIAoxw","router_MhK3qgJ0WYuBDV9Bc2R15ebVnAkYpW_sO8RSA5WFQ8Q","plugin_vue3_vUOR2Yexyy_5GDuyJio1AxmO0eM0omT0mn6x_agTjzA","useVueRouterRoute","defaultLayoutTransition","_push","_parent","_createVNode","_unref","_ssrRenderComponent","ErrorComponent","RootComponent"],"sources":["../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Ffetch.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fglobal-polyfills.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fnuxt.config.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/nuxt.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/injections.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/utils.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/router.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/error.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froute-rules.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/manifest.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/payload.js","../../../../../.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/island-head.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/plugins/unhead.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/dist/useApi-s_02lHjl.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/dist/devtools-DCoWQoU_.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/dist/vue-router.js","../../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router/vue-router.node.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/utils.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Froutes.mjs","../../../../../.pnpm/@vue+shared@3.5.38/node_modules/@vue/shared/dist/shared.cjs.prod.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/utils.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/router.options.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Frouter.options.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/validate.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/middleware/route-rules.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fmiddleware.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fcomponents.islands.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/plugins/router.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/plugins/revive-payload.server.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/server-placeholder.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/client-only.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/compiler/runtime/index.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/asyncData.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/ssr.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/fetch.js","../../../../../.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fcomponents.plugin.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fplugins.server.mjs","../../../../../../virtual:nuxt:%2FUsers%2Fliwei%2Fwork%2Fgo%2Fyunyan%2Fyunyan-sas%2Fapps%2Fadmin%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Flayouts.mjs","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-layout.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/route-provider.js","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/page.js","../../../../../../app/app.vue","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-error-page.vue","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-root.vue","../../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/entry.js"],"sourcesContent":["import { $fetch } from 'ofetch'\nimport { baseURL } from '#internal/nuxt/paths'\nif (!globalThis.$fetch) {\n globalThis.$fetch = $fetch.create({\n baseURL: baseURL()\n })\n}","\nif (!(\"global\" in globalThis)) {\n globalThis.global = globalThis;\n}","export const appHead = {\"meta\":[{\"charset\":\"utf-8\"},{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],\"link\":[],\"style\":[],\"script\":[],\"noscript\":[],\"title\":\"Yunyan Admin\"}\n\nexport const appBaseURL = \"/\"\n\nexport const appBuildAssetsDir = \"/_nuxt/\"\n\nexport const appCdnURL = \"\"\n\nexport const appLayoutTransition = false\n\nexport const appPageTransition = false\n\nexport const appViewTransition = {\"enabled\":false}\n\nexport const appKeepalive = false\n\nexport const appRootId = \"__nuxt\"\n\nexport const appRootTag = \"div\"\n\nexport const appRootAttrs = {\"id\":\"__nuxt\"}\n\nexport const appTeleportTag = \"div\"\n\nexport const appTeleportId = \"teleports\"\n\nexport const appTeleportAttrs = {\"id\":\"teleports\"}\n\nexport const appSpaLoaderTag = \"div\"\n\nexport const appSpaLoaderAttrs = {\"id\":\"__nuxt-loader\"}\n\nexport const renderJsonPayloads = true\n\nexport const componentIslands = false\n\nexport const payloadExtraction = false\n\nexport const cookieStore = true\n\nexport const appManifest = true\n\nexport const remoteComponentIslands = false\n\nexport const selectiveClient = false\n\nexport const devPagesDir = null\n\nexport const devRootDir = null\n\nexport const devLogs = false\n\nexport const nuxtLinkDefaults = {\"componentName\":\"NuxtLink\",\"prefetch\":true,\"prefetchOn\":{\"visibility\":true}}\n\nexport const asyncDataDefaults = {\"deep\":false}\n\nexport const useStateDefaults = {\"resetOnClear\":false}\n\nexport const fetchDefaults = {}\n\nexport const vueAppRootContainer = '#__nuxt'\n\nexport const viewTransition = false\n\nexport const appId = \"nuxt-app\"\n\nexport const outdatedBuildInterval = 3600000\n\nexport const multiApp = false\n\nexport const chunkErrorEvent = \"vite:preloadError\"\n\nexport const crawlLinks = false\n\nexport const spaLoadingTemplateOutside = true\n\nexport const purgeCachedData = true\n\nexport const granularCachedData = true\n\nexport const pendingWhenIdle = false\n\nexport const alwaysRunFetchOnKeyChange = false\n\nexport const asyncCallHook = true\n\nexport const clientNodePlaceholder = false","import { effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, reactive, shallowReactive } from \"vue\";\nimport { createHooks } from \"hookable\";\nimport { getContext } from \"unctx\";\nimport { appId, asyncCallHook, chunkErrorEvent, multiApp } from \"#build/nuxt.config.mjs\";\nexport function getNuxtAppCtx(id = appId || \"nuxt-app\") {\n return getContext(id, {\n asyncContext: !!__NUXT_ASYNC_CONTEXT__ && import.meta.server\n });\n}\nexport const NuxtPluginIndicator = \"__nuxt_plugin\";\nexport function createNuxtApp(options) {\n let hydratingCount = 0;\n const nuxtApp = {\n _id: options.id || appId || \"nuxt-app\",\n _scope: effectScope(),\n provide: void 0,\n versions: {\n get nuxt() {\n return __NUXT_VERSION__;\n },\n get vue() {\n return nuxtApp.vueApp.version;\n }\n },\n payload: shallowReactive({\n ...options.ssrContext?.payload || {},\n data: shallowReactive({}),\n state: reactive({}),\n once: /* @__PURE__ */ new Set(),\n _errors: shallowReactive({})\n }),\n static: {\n data: {}\n },\n runWithContext(fn) {\n if (nuxtApp._scope.active && !getCurrentScope()) {\n return nuxtApp._scope.run(() => callWithNuxt(nuxtApp, fn));\n }\n return callWithNuxt(nuxtApp, fn);\n },\n isHydrating: import.meta.client,\n deferHydration() {\n if (!nuxtApp.isHydrating) {\n return () => {\n };\n }\n hydratingCount++;\n let called = false;\n return () => {\n if (called) {\n return;\n }\n called = true;\n hydratingCount--;\n if (hydratingCount === 0) {\n nuxtApp.isHydrating = false;\n return nuxtApp.callHook(\"app:suspense:resolve\");\n }\n };\n },\n _asyncDataPromises: {},\n _asyncData: shallowReactive({}),\n _state: shallowReactive({}),\n _payloadRevivers: {},\n ...options\n };\n if (import.meta.server) {\n nuxtApp.payload.serverRendered = true;\n }\n if (import.meta.server && nuxtApp.ssrContext) {\n nuxtApp.payload.path = nuxtApp.ssrContext.url;\n nuxtApp.ssrContext.nuxt = nuxtApp;\n nuxtApp.ssrContext.payload = nuxtApp.payload;\n nuxtApp.ssrContext.config = {\n public: nuxtApp.ssrContext.runtimeConfig.public,\n app: nuxtApp.ssrContext.runtimeConfig.app\n };\n }\n if (import.meta.client) {\n const __NUXT__ = multiApp ? window.__NUXT__?.[nuxtApp._id] : window.__NUXT__;\n if (__NUXT__) {\n for (const key in __NUXT__) {\n switch (key) {\n case \"data\":\n case \"state\":\n case \"_errors\":\n Object.assign(nuxtApp.payload[key], __NUXT__[key]);\n break;\n default:\n nuxtApp.payload[key] = __NUXT__[key];\n }\n }\n }\n }\n nuxtApp.hooks = createHooks();\n nuxtApp.hook = nuxtApp.hooks.hook;\n if (import.meta.server) {\n const contextCaller = async function(hooks, args) {\n for (const hook of hooks) {\n await nuxtApp.runWithContext(() => hook(...args));\n }\n };\n nuxtApp.hooks.callHook = (name, ...args) => nuxtApp.hooks.callHookWith(contextCaller, name, args);\n } else if (asyncCallHook) {\n const _callHook = nuxtApp.hooks.callHook;\n nuxtApp.hooks.callHook = (name, ...args) => Promise.resolve().then(() => _callHook(name, ...args));\n }\n nuxtApp.callHook = nuxtApp.hooks.callHook;\n nuxtApp.provide = (name, value) => {\n const $name = \"$\" + name;\n defineGetter(nuxtApp, $name, value);\n defineGetter(nuxtApp.vueApp.config.globalProperties, $name, value);\n };\n defineGetter(nuxtApp.vueApp, \"$nuxt\", nuxtApp);\n defineGetter(nuxtApp.vueApp.config.globalProperties, \"$nuxt\", nuxtApp);\n if (import.meta.client) {\n if (chunkErrorEvent) {\n window.addEventListener(chunkErrorEvent, (event) => {\n nuxtApp.callHook(\"app:chunkError\", { error: event.payload });\n if (event.payload?.message?.includes(\"Unable to preload CSS\")) {\n event.preventDefault();\n }\n });\n }\n window.useNuxtApp ||= useNuxtApp;\n const unreg = nuxtApp.hook(\"app:error\", (...args) => {\n console.error(\"[nuxt] error caught during app initialization\", ...args);\n });\n nuxtApp.hook(\"app:mounted\", unreg);\n }\n const runtimeConfig = import.meta.server ? options.ssrContext.runtimeConfig : nuxtApp.payload.config;\n nuxtApp.provide(\"config\", import.meta.client && import.meta.dev ? wrappedConfig(runtimeConfig) : runtimeConfig);\n return nuxtApp;\n}\nexport function registerPluginHooks(nuxtApp, plugin) {\n if (plugin.hooks) {\n nuxtApp.hooks.addHooks(plugin.hooks);\n }\n}\nexport async function applyPlugin(nuxtApp, plugin) {\n if (typeof plugin === \"function\") {\n const { provide } = await nuxtApp.runWithContext(() => plugin(nuxtApp)) || {};\n if (provide && typeof provide === \"object\") {\n for (const key in provide) {\n nuxtApp.provide(key, provide[key]);\n }\n }\n }\n}\nexport async function applyPlugins(nuxtApp, plugins) {\n const resolvedPlugins = /* @__PURE__ */ new Set();\n const unresolvedPlugins = [];\n const parallels = [];\n let error = void 0;\n let promiseDepth = 0;\n async function executePlugin(plugin) {\n const unresolvedPluginsForThisPlugin = plugin.dependsOn?.filter((name) => plugins.some((p) => p._name === name) && !resolvedPlugins.has(name)) ?? [];\n if (unresolvedPluginsForThisPlugin.length > 0) {\n unresolvedPlugins.push([new Set(unresolvedPluginsForThisPlugin), plugin]);\n } else {\n const promise = applyPlugin(nuxtApp, plugin).then(async () => {\n if (plugin._name) {\n resolvedPlugins.add(plugin._name);\n await Promise.all(unresolvedPlugins.map(async ([dependsOn, unexecutedPlugin]) => {\n if (dependsOn.has(plugin._name)) {\n dependsOn.delete(plugin._name);\n if (dependsOn.size === 0) {\n promiseDepth++;\n await executePlugin(unexecutedPlugin);\n }\n }\n }));\n }\n }).catch((e) => {\n if (!plugin.parallel && !nuxtApp.payload.error) {\n throw e;\n }\n error ||= e;\n });\n if (plugin.parallel) {\n parallels.push(promise);\n } else {\n await promise;\n }\n }\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n registerPluginHooks(nuxtApp, plugin);\n }\n for (const plugin of plugins) {\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && plugin.env?.islands === false) {\n continue;\n }\n await executePlugin(plugin);\n }\n await Promise.all(parallels);\n if (promiseDepth) {\n for (let i = 0; i < promiseDepth; i++) {\n await Promise.all(parallels);\n }\n }\n if (error) {\n throw nuxtApp.payload.error || error;\n }\n}\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtPlugin(plugin) {\n if (typeof plugin === \"function\") {\n return plugin;\n }\n const _name = plugin._name || plugin.name;\n delete plugin.name;\n return Object.assign(plugin.setup || (() => {\n }), plugin, { [NuxtPluginIndicator]: true, _name });\n}\nexport const definePayloadPlugin = defineNuxtPlugin;\nexport function isNuxtPlugin(plugin) {\n return typeof plugin === \"function\" && NuxtPluginIndicator in plugin;\n}\nexport function callWithNuxt(nuxt, setup, args) {\n const fn = () => args ? setup(...args) : setup();\n const nuxtAppCtx = getNuxtAppCtx(nuxt._id);\n if (import.meta.server) {\n return nuxt.vueApp.runWithContext(() => nuxtAppCtx.callAsync(nuxt, fn));\n } else {\n nuxtAppCtx.set(nuxt);\n return nuxt.vueApp.runWithContext(fn);\n }\n}\nexport function tryUseNuxtApp(id) {\n let nuxtAppInstance;\n if (hasInjectionContext()) {\n nuxtAppInstance = getCurrentInstance()?.appContext.app.$nuxt;\n }\n nuxtAppInstance ||= getNuxtAppCtx(id).tryUse();\n return nuxtAppInstance || null;\n}\nexport function useNuxtApp(id) {\n const nuxtAppInstance = tryUseNuxtApp(id);\n if (!nuxtAppInstance) {\n if (import.meta.dev) {\n throw new Error(\"[nuxt] A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function. This is probably not a Nuxt bug. Find out more at `https://nuxt.com/docs/4.x/guide/concepts/auto-imports#vue-and-nuxt-composables`.\");\n } else {\n throw new Error(\"[nuxt] instance unavailable\");\n }\n }\n return nuxtAppInstance;\n}\n// @__NO_SIDE_EFFECTS__\nexport function useRuntimeConfig(_event) {\n return useNuxtApp().$config;\n}\nfunction defineGetter(obj, key, val) {\n Object.defineProperty(obj, key, { get: () => val });\n}\nexport function defineAppConfig(config) {\n return config;\n}\nconst loggedKeys = /* @__PURE__ */ new Set();\nfunction wrappedConfig(runtimeConfig) {\n if (!import.meta.dev || import.meta.server) {\n return runtimeConfig;\n }\n const keys = [];\n for (const key in runtimeConfig) {\n keys.push(`\\`${key}\\``);\n }\n const lastKey = keys.pop();\n return new Proxy(runtimeConfig, {\n get(target, p, receiver) {\n if (typeof p === \"string\" && p !== \"public\" && !(p in target) && !p.startsWith(\"__v\")) {\n if (!loggedKeys.has(p)) {\n loggedKeys.add(p);\n console.warn(`[nuxt] Could not access \\`${p}\\`. The only available runtime config keys on the client side are ${keys.join(\", \")} and ${lastKey}. See https://nuxt.com/docs/4.x/guide/going-further/runtime-config for more information.`);\n }\n }\n return Reflect.get(target, p, receiver);\n }\n });\n}\n","export const LayoutMetaSymbol = Symbol(\"layout-meta\");\nexport const PageRouteSymbol = Symbol(\"route\");\n","import { captureStackTrace } from \"errx\";\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nconst distURL = import.meta.url.replace(/\\/app\\/.*$/, \"/\");\nexport function getUserTrace() {\n if (!import.meta.dev) {\n return [];\n }\n const trace = captureStackTrace();\n const start = trace.findIndex((entry) => !entry.source.startsWith(distURL));\n const end = trace.toReversed().findIndex((entry) => !entry.source.includes(\"node_modules\") && !entry.source.startsWith(distURL));\n if (start === -1 || end === -1) {\n return [];\n }\n return trace.slice(start, end > 0 ? -end : void 0).map((i) => ({\n ...i,\n source: i.source.replace(/^file:\\/\\//, \"\")\n }));\n}\nexport function getUserCaller() {\n if (!import.meta.dev) {\n return null;\n }\n const { source, line, column } = captureStackTrace().find((entry) => !entry.source.startsWith(distURL)) ?? {};\n if (!source) {\n return null;\n }\n return {\n source: source.replace(/^file:\\/\\//, \"\"),\n line,\n column\n };\n}\n","import { getCurrentInstance, hasInjectionContext, inject, onScopeDispose } from \"vue\";\nimport { sanitizeStatusCode } from \"@nuxt/nitro-server/h3\";\nimport { decodePath, encodePath, hasProtocol, isScriptProtocol, joinURL, parseQuery, parseURL, withQuery } from \"ufo\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { PageRouteSymbol } from \"../components/injections.js\";\nimport { createError, showError } from \"./error.js\";\nimport { getUserTrace } from \"../utils.js\";\nexport const useRouter = () => {\n return useNuxtApp()?.$router;\n};\nexport const useRoute = () => {\n if (import.meta.dev && !getCurrentInstance() && isProcessingMiddleware()) {\n const middleware = useNuxtApp()._processingMiddleware;\n const trace = getUserTrace().map(({ source, line, column }) => `at ${source}:${line}:${column}`).join(\"\\n\");\n console.warn(`[nuxt] \\`useRoute\\` was called within middleware${typeof middleware === \"string\" ? ` (\\`${middleware}\\`)` : \"\"}. This may lead to misleading results. Instead, use the (to, from) arguments passed to the middleware to access the new and old routes. Learn more: https://nuxt.com/docs/4.x/directory-structure/app/middleware#accessing-route-in-middleware` + (\"\\n\" + trace));\n }\n if (hasInjectionContext()) {\n return inject(PageRouteSymbol, useNuxtApp()._route);\n }\n return useNuxtApp()._route;\n};\nexport const onBeforeRouteLeave = (guard) => {\n const unsubscribe = useRouter().beforeEach((to, from, next) => {\n if (to === from) {\n return;\n }\n return guard(to, from, next);\n });\n onScopeDispose(unsubscribe);\n};\nexport const onBeforeRouteUpdate = (guard) => {\n const unsubscribe = useRouter().beforeEach(guard);\n onScopeDispose(unsubscribe);\n};\n// @__NO_SIDE_EFFECTS__\nexport function defineNuxtRouteMiddleware(middleware) {\n return middleware;\n}\nexport const addRouteMiddleware = (name, middleware, options = {}) => {\n const nuxtApp = useNuxtApp();\n const global = options.global || typeof name !== \"string\";\n const mw = typeof name !== \"string\" ? name : middleware;\n if (!mw) {\n console.warn(\"[nuxt] No route middleware passed to `addRouteMiddleware`.\", name);\n return;\n }\n if (global) {\n nuxtApp._middleware.global.push(mw);\n } else {\n nuxtApp._middleware.named[name] = mw;\n }\n};\nconst isProcessingMiddleware = () => {\n try {\n if (useNuxtApp()._processingMiddleware) {\n return true;\n }\n } catch {\n return false;\n }\n return false;\n};\nconst HTML_ATTR_UNSAFE_RE = /[&\"'<>]/g;\nconst HTML_ATTR_ENCODE_MAP = {\n \"&\": \"%26\",\n '\"': \"%22\",\n \"'\": \"%27\",\n \"<\": \"%3C\",\n \">\": \"%3E\"\n};\nfunction encodeForHtmlAttr(value) {\n return value.replace(HTML_ATTR_UNSAFE_RE, (c) => HTML_ATTR_ENCODE_MAP[c]);\n}\nexport const navigateTo = (to, options) => {\n to ||= \"/\";\n const toPath = typeof to === \"string\" ? to : \"path\" in to ? resolveRouteObject(to) : useRouter().resolve(to).href;\n if (import.meta.client && options?.open) {\n const { protocol } = new URL(toPath, window.location.href);\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n const { target = \"_blank\", windowFeatures = {} } = options.open;\n const features = [];\n for (const [feature, value] of Object.entries(windowFeatures)) {\n if (value !== void 0) {\n features.push(`${feature.toLowerCase()}=${value}`);\n }\n }\n open(toPath, target, features.join(\", \"));\n return Promise.resolve();\n }\n const isExternalHost = hasProtocol(toPath, { acceptRelative: true });\n const isExternal = options?.external || isExternalHost;\n if (isExternal) {\n if (!options?.external) {\n throw new Error(\"Navigating to an external URL is not allowed by default. Use `navigateTo(url, { external: true })`.\");\n }\n const { protocol } = new URL(toPath, import.meta.client ? window.location.href : \"http://localhost\");\n if (protocol && isScriptProtocol(protocol)) {\n throw new Error(`Cannot navigate to a URL with '${protocol}' protocol.`);\n }\n }\n const inMiddleware = isProcessingMiddleware();\n if (import.meta.client && !isExternal && inMiddleware) {\n if (options?.replace) {\n if (typeof to === \"string\") {\n const { pathname, search, hash } = parseURL(to);\n return {\n path: pathname,\n ...search && { query: parseQuery(search) },\n ...hash && { hash },\n replace: true\n };\n }\n return { ...to, replace: true };\n }\n return to;\n }\n const router = useRouter();\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (nuxtApp.ssrContext) {\n const fullPath = typeof to === \"string\" || isExternal ? toPath : router.resolve(to).fullPath || \"/\";\n const location2 = isExternal ? toPath : joinURL(useRuntimeConfig().app.baseURL, fullPath);\n const redirect = async function(response) {\n await nuxtApp.callHook(\"app:redirected\");\n const encodedHeader = encodeURL(location2, isExternalHost);\n const encodedLoc = encodeForHtmlAttr(encodedHeader);\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: sanitizeStatusCode(options?.redirectCode || 302, 302),\n body: ``,\n headers: { location: encodedHeader }\n };\n return response;\n };\n if (!isExternal && inMiddleware) {\n router.afterEach((final) => final.fullPath === fullPath ? redirect(false) : void 0);\n return to;\n }\n return redirect(!inMiddleware ? void 0 : (\n /* abort route navigation */\n false\n ));\n }\n }\n if (isExternal) {\n nuxtApp._scope.stop();\n if (options?.replace) {\n location.replace(toPath);\n } else {\n location.href = toPath;\n }\n if (inMiddleware) {\n if (!nuxtApp.isHydrating) {\n return false;\n }\n return new Promise(() => {\n });\n }\n return Promise.resolve();\n }\n const encodedTo = typeof to === \"string\" ? encodeRoutePath(to) : to;\n return options?.replace ? router.replace(encodedTo) : router.push(encodedTo);\n};\nexport const abortNavigation = (err) => {\n if (import.meta.dev && !isProcessingMiddleware()) {\n throw new Error(\"abortNavigation() is only usable inside a route middleware handler.\");\n }\n if (!err) {\n return false;\n }\n err = createError(err);\n if (err.fatal) {\n useNuxtApp().runWithContext(() => showError(err));\n }\n throw err;\n};\nexport const setPageLayout = (layout, props) => {\n const nuxtApp = useNuxtApp();\n if (import.meta.server) {\n if (import.meta.dev && getCurrentInstance() && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout on the server within a component as this will cause hydration errors.\");\n }\n nuxtApp.payload.state._layout = layout;\n nuxtApp.payload.state._layoutProps = props;\n }\n if (import.meta.dev && nuxtApp.isHydrating && nuxtApp.payload.serverRendered && nuxtApp.payload.state._layout !== layout) {\n console.warn(\"[nuxt] `setPageLayout` should not be called to change the layout during hydration as this will cause hydration errors.\");\n }\n const inMiddleware = isProcessingMiddleware();\n if (inMiddleware || import.meta.server || nuxtApp.isHydrating) {\n const unsubscribe = useRouter().beforeResolve((to) => {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n unsubscribe();\n });\n }\n if (!inMiddleware) {\n const route = useRoute();\n route.meta.layout = layout;\n route.meta.layoutProps = props;\n if (import.meta.client) {\n const unsubscribe = useRouter().beforeResolve((to, from) => {\n if (to.path === from.path) {\n to.meta.layout = layout;\n to.meta.layoutProps = props;\n } else {\n unsubscribe();\n }\n });\n onScopeDispose(unsubscribe, true);\n }\n }\n};\nexport function resolveRouteObject(to) {\n return withQuery(to.path || \"\", to.query || {}) + (to.hash || \"\");\n}\nexport function encodeURL(location2, isExternalHost = false) {\n const url = new URL(location2, \"http://localhost\");\n if (!isExternalHost) {\n const pathname = url.pathname.replace(/^\\/{2,}/, \"/\");\n return pathname + url.search + url.hash;\n }\n if (location2.startsWith(\"//\")) {\n return url.toString().replace(url.protocol, \"\");\n }\n return url.toString();\n}\nexport function encodeRoutePath(url) {\n const parsed = parseURL(url);\n return encodePath(decodePath(parsed.pathname)) + parsed.search + parsed.hash;\n}\n","import { createError as createH3Error } from \"@nuxt/nitro-server/h3\";\nimport { toRef } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { useRouter } from \"./router.js\";\nexport const NUXT_ERROR_SIGNATURE = \"__nuxt_error\";\nexport const useError = /* @__NO_SIDE_EFFECTS__ */ () => toRef(useNuxtApp().payload, \"error\");\nexport const showError = (error) => {\n const nuxtError = createError(error);\n try {\n const error2 = /* @__PURE__ */ useError();\n if (import.meta.client) {\n const nuxtApp = useNuxtApp();\n nuxtApp.hooks.callHook(\"app:error\", nuxtError);\n }\n error2.value ||= nuxtError;\n } catch {\n throw nuxtError;\n }\n return nuxtError;\n};\nexport const clearError = async (options = {}) => {\n const nuxtApp = useNuxtApp();\n const error = /* @__PURE__ */ useError();\n nuxtApp.callHook(\"app:error:cleared\", options);\n if (options.redirect) {\n await useRouter().replace(options.redirect);\n }\n error.value = void 0;\n};\nexport const isNuxtError = (error) => !!error && typeof error === \"object\" && NUXT_ERROR_SIGNATURE in error;\nexport const createError = (error) => {\n if (typeof error !== \"string\" && error.statusText) {\n error.message ??= error.statusText;\n }\n const nuxtError = createH3Error(error);\n Object.defineProperty(nuxtError, NUXT_ERROR_SIGNATURE, {\n value: true,\n configurable: false,\n writable: false\n });\n Object.defineProperty(nuxtError, \"status\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusCode,\n configurable: true\n });\n Object.defineProperty(nuxtError, \"statusText\", {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n get: () => nuxtError.statusMessage,\n configurable: true\n });\n return nuxtError;\n};\n","\n import { defu } from 'defu'\n const matcher = (m,p)=>{return [];}\n export default (path) => defu({}, ...matcher('', typeof path === 'string' ? path.toLowerCase() : path).map(r => r.data).reverse())\n ","import { useRuntimeConfig } from \"../nuxt.js\";\nimport { appManifest as isAppManifestEnabled } from \"#build/nuxt.config.mjs\";\nimport { buildAssetsURL } from \"#internal/nuxt/paths\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nlet manifest;\nfunction fetchManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n let _manifest;\n if (import.meta.server) {\n _manifest = import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n \"#app-manifest\"\n );\n } else {\n _manifest = $fetch(buildAssetsURL(`builds/meta/${useRuntimeConfig().app.buildId}.json`), {\n responseType: \"json\"\n }).then((res) => {\n if (!res || typeof res !== \"object\" || !Array.isArray(res.prerendered)) {\n throw new Error(\"[nuxt] Received malformed app manifest. Ensure that `builds/meta/*.json` is served as JSON by your hosting/proxy and not rewritten to an HTML fallback.\");\n }\n return res;\n });\n }\n manifest = _manifest;\n _manifest.catch((e) => {\n if (manifest === _manifest) {\n manifest = void 0;\n }\n console.error(\"[nuxt] Error fetching app manifest.\", e);\n });\n return _manifest;\n}\nexport function getAppManifest() {\n if (!isAppManifestEnabled) {\n throw new Error(\"[nuxt] app manifest should be enabled with `experimental.appManifest`\");\n }\n return manifest || fetchManifest();\n}\nexport function getRouteRules(arg) {\n const path = typeof arg === \"string\" ? arg : arg.path;\n try {\n return routeRulesMatcher(path.toLowerCase());\n } catch (e) {\n console.error(\"[nuxt] Error matching route rules.\", e);\n return {};\n }\n}\n","import { hasProtocol, joinURL } from \"ufo\";\nimport { parse } from \"devalue\";\nimport { getCurrentInstance, onServerPrefetch, reactive } from \"vue\";\nimport { useNuxtApp, useRuntimeConfig } from \"../nuxt.js\";\nimport { useHead } from \"./head.js\";\nimport { useRoute } from \"./router.js\";\nimport { getAppManifest, getRouteRules } from \"./manifest.js\";\nimport { appId, appManifest, multiApp, payloadExtraction, renderJsonPayloads } from \"#build/nuxt.config.mjs\";\nexport async function loadPayload(url, opts = {}) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n if (await shouldLoadPayload(url)) {\n const payloadURL = await _getPayloadURL(url, opts);\n return await _importPayload(payloadURL) || null;\n }\n return null;\n}\nlet linkRelType;\nfunction detectLinkRelType() {\n if (import.meta.server) {\n return \"preload\";\n }\n if (linkRelType) {\n return linkRelType;\n }\n const relList = document.createElement(\"link\").relList;\n linkRelType = relList && relList.supports && relList.supports(\"prefetch\") ? \"prefetch\" : \"preload\";\n return linkRelType;\n}\nexport function preloadPayload(url, opts = {}) {\n const nuxtApp = useNuxtApp();\n const promise = shouldLoadPayload(url).then(async (shouldPreload) => {\n if (!shouldPreload) {\n return;\n }\n const payloadURL = await _getPayloadURL(url, opts);\n const link = renderJsonPayloads ? { rel: detectLinkRelType(), as: \"fetch\", crossorigin: \"anonymous\", href: payloadURL } : { rel: \"modulepreload\", crossorigin: \"\", href: payloadURL };\n if (import.meta.server) {\n nuxtApp.runWithContext(() => useHead({ link: [link] }));\n } else {\n const linkEl = document.createElement(\"link\");\n for (const key of Object.keys(link)) {\n linkEl[key === \"crossorigin\" ? \"crossOrigin\" : key] = link[key];\n }\n document.head.appendChild(linkEl);\n return new Promise((resolve, reject) => {\n linkEl.addEventListener(\"load\", () => resolve());\n linkEl.addEventListener(\"error\", () => reject());\n });\n }\n });\n if (import.meta.server) {\n onServerPrefetch(() => promise);\n }\n return promise;\n}\nconst filename = renderJsonPayloads ? \"_payload.json\" : \"_payload.js\";\nasync function _getPayloadURL(url, opts = {}) {\n const u = new URL(url, \"http://localhost\");\n if (u.host !== \"localhost\" || hasProtocol(u.pathname, { acceptRelative: true })) {\n throw new Error(\"Payload URL must not include hostname: \" + url);\n }\n const config = useRuntimeConfig();\n const hash = opts.hash || (opts.fresh || import.meta.dev ? Date.now() : config.app.buildId);\n const cdnURL = config.app.cdnURL;\n const baseOrCdnURL = cdnURL && await isPrerendered(url) ? cdnURL : config.app.baseURL;\n return joinURL(baseOrCdnURL, u.pathname, filename + (hash ? `?${hash}` : \"\"));\n}\nasync function _importPayload(payloadURL) {\n if (import.meta.server || !payloadExtraction) {\n return null;\n }\n try {\n if (renderJsonPayloads) {\n const res = await fetch(payloadURL, import.meta.dev ? {} : { cache: \"force-cache\" });\n if (!res.ok) {\n if (import.meta.dev) {\n console.warn(`[nuxt] Cannot load payload ${payloadURL}: ${res.status} ${res.statusText}`);\n }\n return null;\n }\n return await parsePayload(await res.text());\n } else {\n return await import(\n /* webpackIgnore: true */\n /* @vite-ignore */\n payloadURL\n ).then((r) => r.default || r);\n }\n } catch (err) {\n console.warn(\"[nuxt] Cannot load payload \", payloadURL, err);\n }\n return null;\n}\nfunction _shouldLoadPrerenderedPayload(rules) {\n if (rules.redirect) {\n return false;\n }\n if (rules.prerender) {\n return true;\n }\n}\nasync function _isPrerenderedInManifest(url) {\n if (!appManifest) {\n return false;\n }\n url = url === \"/\" ? url : url.replace(/\\/$/, \"\");\n try {\n const manifest = await getAppManifest();\n return manifest.prerendered.includes(url);\n } catch {\n return false;\n }\n}\nexport async function shouldLoadPayload(url = useRoute().path) {\n const rules = getRouteRules({ path: url });\n if (rules.ssr === false) {\n return false;\n }\n const res = _shouldLoadPrerenderedPayload(rules);\n if (res !== void 0) {\n return res;\n }\n if (rules.payload) {\n return true;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nexport async function isPrerendered(url = useRoute().path) {\n const res = _shouldLoadPrerenderedPayload(getRouteRules({ path: url }));\n if (res !== void 0) {\n return res;\n }\n const prerendered = await _isPrerenderedInManifest(url);\n return prerendered;\n}\nlet payloadCache = null;\nexport async function getNuxtClientPayload() {\n if (import.meta.server) {\n return null;\n }\n if (payloadCache) {\n return payloadCache;\n }\n const el = multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\");\n if (!el) {\n return {};\n }\n const inlineData = await parsePayload(el.textContent || \"\");\n const externalData = el.dataset.src ? await _importPayload(el.dataset.src) : void 0;\n payloadCache = {\n ...inlineData,\n ...externalData,\n ...multiApp ? window.__NUXT__?.[appId] : window.__NUXT__\n };\n if (payloadCache.config?.public) {\n payloadCache.config.public = reactive(payloadCache.config.public);\n }\n return payloadCache;\n}\nexport async function parsePayload(payload) {\n return await parse(payload, useNuxtApp()._payloadRevivers);\n}\nexport function definePayloadReducer(name, reduce) {\n if (import.meta.server) {\n useNuxtApp().ssrContext[\"~payloadReducers\"][name] = reduce;\n }\n}\nexport function definePayloadReviver(name, revive) {\n if (import.meta.dev && getCurrentInstance()) {\n console.warn(\"[nuxt] [definePayloadReviver] This function must be called in a Nuxt plugin that is `unshift`ed to the beginning of the Nuxt plugins array.\");\n }\n if (import.meta.client) {\n useNuxtApp()._payloadRevivers[name] = revive;\n }\n}\n","import {\n definePayloadPlugin,\n definePayloadReducer,\n definePayloadReviver\n} from \"#imports\";\nimport { shouldHydrate } from \"pinia\";\nconst payloadPlugin = definePayloadPlugin(() => {\n definePayloadReducer(\n \"skipHydrate\",\n // We need to return something truthy to be treated as a match\n (data) => !shouldHydrate(data) && 1\n );\n definePayloadReviver(\"skipHydrate\", (_data) => void 0);\n});\nexport default payloadPlugin;\n","export function freezeHead(head) {\n const realPush = head.push;\n head.push = () => ({ dispose: () => {\n }, patch: () => {\n }, _poll: () => {\n } });\n return () => {\n head.push = realPush;\n };\n}\n","import { createHead as createClientHead, renderDOMHead } from \"@unhead/vue/client\";\nimport { defineNuxtPlugin } from \"#app/nuxt\";\nimport { freezeHead } from \"../island-head.js\";\nimport unheadOptions from \"#build/unhead-options.mjs\";\nexport default defineNuxtPlugin({\n name: \"nuxt:head\",\n enforce: \"pre\",\n setup(nuxtApp) {\n const head = import.meta.server ? nuxtApp.ssrContext.head : createClientHead(unheadOptions);\n if (import.meta.server && nuxtApp.ssrContext.islandContext) {\n const unfreeze = freezeHead(head);\n nuxtApp.hooks.hookOnce(\"app:created\", unfreeze);\n }\n nuxtApp.vueApp.use(head);\n if (import.meta.client) {\n let pauseDOMUpdates = true;\n const syncHead = async () => {\n pauseDOMUpdates = false;\n await renderDOMHead(head);\n };\n head.hooks.hook(\"dom:beforeRender\", (context) => {\n context.shouldRender = !pauseDOMUpdates;\n });\n nuxtApp.hooks.hook(\"page:start\", () => {\n pauseDOMUpdates = true;\n });\n nuxtApp.hooks.hook(\"page:finish\", () => {\n if (!nuxtApp.isHydrating) {\n syncHead();\n }\n });\n nuxtApp.hooks.hook(\"app:error\", syncHead);\n nuxtApp.hooks.hook(\"app:suspense:resolve\", syncHead);\n const originalPush = head.push.bind(head);\n head.push = ((input, options) => {\n const entry = originalPush(input, options);\n const originalDispose = entry.dispose.bind(entry);\n entry.dispose = () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(originalDispose);\n } else {\n originalDispose();\n }\n };\n return entry;\n });\n }\n }\n});\n","/*!\n* vue-router v5.1.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { inject } from \"vue\";\n//#region src/utils/env.ts\nconst isBrowser = typeof document !== \"undefined\";\n//#endregion\n//#region src/utils/index.ts\n/**\n* Identity function that returns the value as is.\n*\n* @param v - the value to return\n*\n* @internal\n*/\nconst identityFn = (v) => v;\n/**\n* Allows differentiating lazy components from functional components and vue-class-component\n* @internal\n*\n* @param component\n*/\nfunction isRouteComponent(component) {\n\treturn typeof component === \"object\" || \"displayName\" in component || \"props\" in component || \"__vccOpts\" in component;\n}\nfunction isESModule(obj) {\n\treturn obj.__esModule || obj[Symbol.toStringTag] === \"Module\" || obj.default && isRouteComponent(obj.default);\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n\tconst newParams = {};\n\tfor (const key in params) {\n\t\tconst value = params[key];\n\t\tnewParams[key] = isArray(value) ? value.map(fn) : fn(value);\n\t}\n\treturn newParams;\n}\nconst noop = () => {};\n/**\n* Typesafe alternative to Array.isArray\n* https://github.com/microsoft/TypeScript/pull/48228\n*\n* @internal\n*/\nconst isArray = Array.isArray;\nfunction mergeOptions(defaults, partialOptions) {\n\tconst options = {};\n\tfor (const key in defaults) options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n\treturn options;\n}\n//#endregion\n//#region src/errors.ts\nconst NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== \"production\" ? \"navigation failure\" : \"\");\n/**\n* Enumeration with all possible types for navigation failures. Can be passed to\n* {@link isNavigationFailure} to check for specific failures.\n*/\nlet NavigationFailureType = /* @__PURE__ */ function(NavigationFailureType) {\n\t/**\n\t* An aborted navigation is a navigation that failed because a navigation\n\t* guard returned `false` or called `next(false)`\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"aborted\"] = 4] = \"aborted\";\n\t/**\n\t* A cancelled navigation is a navigation that failed because a more recent\n\t* navigation finished started (not necessarily finished).\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"cancelled\"] = 8] = \"cancelled\";\n\t/**\n\t* A duplicated navigation is a navigation that failed because it was\n\t* initiated while already being at the exact same location.\n\t*/\n\tNavigationFailureType[NavigationFailureType[\"duplicated\"] = 16] = \"duplicated\";\n\treturn NavigationFailureType;\n}({});\nconst ErrorTypeMessages = {\n\t[1]({ location, currentLocation }) {\n\t\treturn `No match for\\n ${JSON.stringify(location)}${currentLocation ? \"\\nwhile being at\\n\" + JSON.stringify(currentLocation) : \"\"}`;\n\t},\n\t[2]({ from, to }) {\n\t\treturn `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n\t},\n\t[4]({ from, to }) {\n\t\treturn `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n\t},\n\t[8]({ from, to }) {\n\t\treturn `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n\t},\n\t[16]({ from, to: _to }) {\n\t\treturn `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n\t}\n};\n/**\n* Creates a typed NavigationFailure object.\n* @internal\n* @param type - NavigationFailureType\n* @param params - { from, to }\n*/\nfunction createRouterError(type, params) {\n\tif (process.env.NODE_ENV !== \"production\" || false) return assign(new Error(ErrorTypeMessages[type](params)), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n\telse return assign(/* @__PURE__ */ new Error(), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n}\nfunction isNavigationFailure(error, type) {\n\treturn error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type));\n}\nconst propertiesToLog = [\n\t\"params\",\n\t\"query\",\n\t\"hash\"\n];\nfunction stringifyRoute(to) {\n\tif (typeof to === \"string\") return to;\n\tif (to.path != null) return to.path;\n\tconst location = {};\n\tfor (const key of propertiesToLog) if (key in to) location[key] = to[key];\n\treturn JSON.stringify(location, null, 2);\n}\n//#endregion\n//#region src/injectionSymbols.ts\n/**\n* RouteRecord being rendered by the closest ancestor Router View. Used for\n* `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n* Location Matched\n*\n* @internal\n*/\nconst matchedRouteKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location matched\" : \"\");\n/**\n* Allows overriding the router view depth to control which component in\n* `matched` is rendered. rvd stands for Router View Depth\n*\n* @internal\n*/\nconst viewDepthKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view depth\" : \"\");\n/**\n* Allows overriding the router instance returned by `useRouter` in tests. r\n* stands for router\n*\n* @internal\n*/\nconst routerKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router\" : \"\");\n/**\n* Allows overriding the current route returned by `useRoute` in tests. rl\n* stands for route location\n*\n* @internal\n*/\nconst routeLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"route location\" : \"\");\n/**\n* Allows overriding the current route used by router-view. Internally this is\n* used when the `route` prop is passed.\n*\n* @internal\n*/\nconst routerViewLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location\" : \"\");\n//#endregion\n//#region src/useApi.ts\n/**\n* Returns the router instance. Equivalent to using `$router` inside\n* templates.\n*/\nfunction useRouter() {\n\treturn inject(routerKey);\n}\n/**\n* Returns the current route location. Equivalent to using `$route` inside\n* templates.\n*/\nfunction useRoute(_name) {\n\treturn inject(routeLocationKey);\n}\n//#endregion\nexport { mergeOptions as _, routerKey as a, NavigationFailureType as c, applyToParams as d, assign as f, isRouteComponent as g, isESModule as h, routeLocationKey as i, createRouterError as l, isArray as m, useRouter as n, routerViewLocationKey as o, identityFn as p, matchedRouteKey as r, viewDepthKey as s, useRoute as t, isNavigationFailure as u, noop as v, isBrowser as y };\n","/*!\n* vue-router v5.1.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { f as assign, g as isRouteComponent, h as isESModule, l as createRouterError, m as isArray, r as matchedRouteKey, y as isBrowser } from \"./useApi-s_02lHjl.js\";\nimport { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from \"vue\";\nimport { setupDevtoolsPlugin } from \"@vue/devtools-api\";\n//#region src/warning.ts\nfunction warn$1(msg) {\n\tconst args = Array.from(arguments).slice(1);\n\tconsole.warn.apply(console, [\"[Vue Router warn]: \" + msg].concat(args));\n}\n//#endregion\n//#region src/encoding.ts\n/**\n* Encoding Rules (␣ = Space)\n* - Path: ␣ \" < > # ? { }\n* - Query: ␣ \" < > # & =\n* - Hash: ␣ \" < > `\n*\n* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n* defines some extra characters to be encoded. Most browsers do not encode them\n* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n* plus `-._~`. This extra safety should be applied to query by patching the\n* string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n* into a `/` if directly typed in. The _backtick_ (`````) should also be\n* encoded everywhere because some browsers like FF encode it when directly\n* written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n*/\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\n/**\n* NOTE: It's not clear to me if we should encode the + symbol in queries, it\n* seems to be less flexible than not doing so and I can't find out the legacy\n* systems requiring this for regular requests like text/html. In the standard,\n* the encoding of the plus character is only mentioned for\n* application/x-www-form-urlencoded\n* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n* leave the plus character as is in queries. To be more flexible, we allow the\n* plus character on the query, but it can also be manually encoded by the user.\n*\n* Resources:\n* - https://url.spec.whatwg.org/#urlencoded-parsing\n* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n*/\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\n/**\n* Encode characters that need to be encoded on the path, search and hash\n* sections of the URL.\n*\n* @internal\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction commonEncode(text) {\n\treturn text == null ? \"\" : encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\n/**\n* Encode characters that need to be encoded on the hash section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeHash(text) {\n\treturn commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Encode characters that need to be encoded query values on the query\n* section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeQueryValue(text) {\n\treturn commonEncode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Like `encodeQueryValue` but also encodes the `=` character.\n*\n* @param text - string to encode\n*/\nfunction encodeQueryKey(text) {\n\treturn encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodePath(text) {\n\treturn commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL as a\n* param. This function encodes everything {@link encodePath} does plus the\n* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n* string instead.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeParam(text) {\n\treturn encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n\tif (text == null) return null;\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Error decoding \"${text}\". Using original value`);\n\t}\n\treturn \"\" + text;\n}\n//#endregion\n//#region src/location.ts\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\n/**\n* Transforms a URI into a normalized history location\n*\n* @param parseQuery\n* @param location - URI to normalize\n* @param currentLocation - current absolute location. Allows resolving relative\n* paths. Must start with `/`. Defaults to `/`\n* @returns a normalized history location\n*/\nfunction parseURL(parseQuery, location, currentLocation = \"/\") {\n\tlet path, query = {}, searchString = \"\", hash = \"\";\n\tconst hashPos = location.indexOf(\"#\");\n\tlet searchPos = location.indexOf(\"?\");\n\tsearchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;\n\tif (searchPos >= 0) {\n\t\tpath = location.slice(0, searchPos);\n\t\tsearchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length);\n\t\tquery = parseQuery(searchString.slice(1));\n\t}\n\tif (hashPos >= 0) {\n\t\tpath = path || location.slice(0, hashPos);\n\t\thash = location.slice(hashPos, location.length);\n\t}\n\tpath = resolveRelativePath(path != null ? path : location, currentLocation);\n\treturn {\n\t\tfullPath: path + searchString + hash,\n\t\tpath,\n\t\tquery,\n\t\thash: decode(hash)\n\t};\n}\nfunction NEW_stringifyURL(stringifyQuery, path, query, hash = \"\") {\n\tconst searchText = stringifyQuery(query);\n\treturn path + (searchText && \"?\") + searchText + encodeHash(hash);\n}\n/**\n* Stringifies a URL object\n*\n* @param stringifyQuery\n* @param location\n*/\nfunction stringifyURL(stringifyQuery, location) {\n\tconst query = location.query ? stringifyQuery(location.query) : \"\";\n\treturn location.path + (query && \"?\") + query + (location.hash || \"\");\n}\n/**\n* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n*\n* @param pathname - location.pathname\n* @param base - base to strip off\n*/\nfunction stripBase(pathname, base) {\n\tif (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname;\n\treturn pathname.slice(base.length) || \"/\";\n}\n/**\n* Checks if two RouteLocation are equal. This means that both locations are\n* pointing towards the same {@link RouteRecord} and that all `params`, `query`\n* parameters and `hash` are the same\n*\n* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n* @param a - first {@link RouteLocation}\n* @param b - second {@link RouteLocation}\n*/\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n\tconst aLastIndex = a.matched.length - 1;\n\tconst bLastIndex = b.matched.length - 1;\n\treturn aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery(a.query) === stringifyQuery(b.query) && a.hash === b.hash;\n}\n/**\n* Check if two `RouteRecords` are equal. Takes into account aliases: they are\n* considered equal to the `RouteRecord` they are aliasing.\n*\n* @param a - first {@link RouteRecord}\n* @param b - second {@link RouteRecord}\n*/\nfunction isSameRouteRecord(a, b) {\n\treturn (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (var key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;\n\treturn true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n\treturn isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : (a && a.valueOf()) === (b && b.valueOf());\n}\n/**\n* Check if two arrays are the same or if an array with one single entry is the\n* same as another primitive value. Used to check query and parameters\n*\n* @param a - array of values\n* @param b - array of values or a single value\n*/\nfunction isEquivalentArray(a, b) {\n\treturn isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\n/**\n* Resolves a relative path that starts with `.`.\n*\n* @param to - path location we are resolving\n* @param from - currentLocation.path, should start with `/`\n*/\nfunction resolveRelativePath(to, from) {\n\tif (to.startsWith(\"/\")) return to;\n\tif (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n\t\twarn$1(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n\t\treturn to;\n\t}\n\tif (!to) return from;\n\tconst fromSegments = from.split(\"/\");\n\tconst toSegments = to.split(\"/\");\n\tconst lastToSegment = toSegments[toSegments.length - 1];\n\tif (lastToSegment === \"..\" || lastToSegment === \".\") toSegments.push(\"\");\n\tlet position = fromSegments.length - 1;\n\tlet toPosition;\n\tlet segment;\n\tfor (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n\t\tsegment = toSegments[toPosition];\n\t\tif (segment === \".\") continue;\n\t\tif (segment === \"..\") {\n\t\t\tif (position > 1) position--;\n\t\t} else break;\n\t}\n\treturn fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition).join(\"/\");\n}\n/**\n* Initial route location where the router is. Can be used in navigation guards\n* to differentiate the initial navigation.\n*\n* @example\n* ```js\n* import { START_LOCATION } from 'vue-router'\n*\n* router.beforeEach((to, from) => {\n* if (from === START_LOCATION) {\n* // initial navigation\n* }\n* })\n* ```\n*/\nconst START_LOCATION_NORMALIZED = {\n\tpath: \"/\",\n\tname: void 0,\n\tparams: {},\n\tquery: {},\n\thash: \"\",\n\tfullPath: \"/\",\n\tmatched: [],\n\tmeta: {},\n\tredirectedFrom: void 0\n};\n//#endregion\n//#region src/history/common.ts\n/**\n* Normalizes a base by removing any trailing slash and reading the base tag if\n* present.\n*\n* @param base - base to normalize\n*/\nfunction normalizeBase(base) {\n\tif (!base) if (isBrowser) {\n\t\tconst baseEl = document.querySelector(\"base\");\n\t\tbase = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n\t\tbase = base.replace(/^\\w+:\\/\\/[^/]+/, \"\");\n\t} else base = \"/\";\n\tif (base[0] !== \"/\" && base[0] !== \"#\") base = \"/\" + base;\n\treturn removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n\treturn base.replace(BEFORE_HASH_RE, \"#\") + location;\n}\n//#endregion\n//#region src/scrollBehavior.ts\nfunction getElementPosition(el, offset) {\n\tconst docRect = document.documentElement.getBoundingClientRect();\n\tconst elRect = el.getBoundingClientRect();\n\treturn {\n\t\tbehavior: offset.behavior,\n\t\tleft: elRect.left - docRect.left - (offset.left || 0),\n\t\ttop: elRect.top - docRect.top - (offset.top || 0)\n\t};\n}\nconst computeScrollPosition = () => ({\n\tleft: window.scrollX,\n\ttop: window.scrollY\n});\nfunction scrollToPosition(position) {\n\tlet scrollToOptions;\n\tif (\"el\" in position) {\n\t\tconst positionEl = position.el;\n\t\tconst isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n\t\t/**\n\t\t* `id`s can accept pretty much any characters, including CSS combinators\n\t\t* like `>` or `~`. It's still possible to retrieve elements using\n\t\t* `document.getElementById('~')` but it needs to be escaped when using\n\t\t* `document.querySelector('#\\\\~')` for it to be valid. The only\n\t\t* requirements for `id`s are them to be unique on the page and to not be\n\t\t* empty (`id=\"\"`). Because of that, when passing an id selector, it should\n\t\t* be properly escaped for it to work with `querySelector`. We could check\n\t\t* for the id selector to be simple (no CSS combinators `+ >~`) but that\n\t\t* would make things inconsistent since they are valid characters for an\n\t\t* `id` but would need to be escaped when using `querySelector`, breaking\n\t\t* their usage and ending up in no selector returned. Selectors need to be\n\t\t* escaped:\n\t\t*\n\t\t* - `#1-thing` becomes `#\\31 -thing`\n\t\t* - `#with~symbols` becomes `#with\\\\~symbols`\n\t\t*\n\t\t* - More information about the topic can be found at\n\t\t* https://mathiasbynens.be/notes/html5-id-class.\n\t\t* - Practical example: https://mathiasbynens.be/demo/html5-id\n\t\t*/\n\t\tif (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n\t\t\tif (!isIdSelector || !document.getElementById(position.el.slice(1))) try {\n\t\t\t\tconst foundEl = document.querySelector(position.el);\n\t\t\t\tif (isIdSelector && foundEl) {\n\t\t\t\t\twarn$1(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\twarn$1(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n\t\tif (!el) {\n\t\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n\t\t\treturn;\n\t\t}\n\t\tscrollToOptions = getElementPosition(el, position);\n\t} else scrollToOptions = position;\n\tif (\"scrollBehavior\" in document.documentElement.style) window.scrollTo(scrollToOptions);\n\telse window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n}\nfunction getScrollKey(path, delta) {\n\treturn (history.state ? history.state.position - delta : -1) + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n\tscrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n\tconst scroll = scrollPositions.get(key);\n\tscrollPositions.delete(key);\n\treturn scroll;\n}\n/**\n* ScrollBehavior instance used by the router to compute and restore the scroll\n* position when navigating.\n*/\n//#endregion\n//#region src/types/typeGuards.ts\nfunction isRouteLocation(route) {\n\treturn typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n\treturn typeof name === \"string\" || typeof name === \"symbol\";\n}\n//#endregion\n//#region src/query.ts\n/**\n* Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n* version with the leading `?` and without Should work as URLSearchParams\n\n* @internal\n*\n* @param search - search string to parse\n* @returns a query object\n*/\nfunction parseQuery(search) {\n\tconst query = {};\n\tif (search === \"\" || search === \"?\") return query;\n\tconst searchParams = (search[0] === \"?\" ? search.slice(1) : search).split(\"&\");\n\tfor (let i = 0; i < searchParams.length; ++i) {\n\t\tconst searchParam = searchParams[i].replace(PLUS_RE, \" \");\n\t\tconst eqPos = searchParam.indexOf(\"=\");\n\t\tconst key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n\t\tconst value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n\t\tif (key in query) {\n\t\t\tlet currentValue = query[key];\n\t\t\tif (!isArray(currentValue)) currentValue = query[key] = [currentValue];\n\t\t\tcurrentValue.push(value);\n\t\t} else query[key] = value;\n\t}\n\treturn query;\n}\n/**\n* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n* doesn't prepend a `?`\n*\n* @internal\n*\n* @param query - query object to stringify\n* @returns string version of the query without the leading `?`\n*/\nfunction stringifyQuery(query) {\n\tlet search = \"\";\n\tfor (let key in query) {\n\t\tconst value = query[key];\n\t\tkey = encodeQueryKey(key);\n\t\tif (value == null) {\n\t\t\tif (value !== void 0) search += (search.length ? \"&\" : \"\") + key;\n\t\t\tcontinue;\n\t\t}\n\t\t(isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value) => {\n\t\t\tif (value !== void 0) {\n\t\t\t\tsearch += (search.length ? \"&\" : \"\") + key;\n\t\t\t\tif (value != null) search += \"=\" + value;\n\t\t\t}\n\t\t});\n\t}\n\treturn search;\n}\n/**\n* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n* numbers into strings, removing keys with an undefined value and replacing\n* undefined with null in arrays\n*\n* @param query - query object to normalize\n* @returns a normalized query object\n*/\nfunction normalizeQuery(query) {\n\tconst normalizedQuery = {};\n\tfor (const key in query) {\n\t\tconst value = query[key];\n\t\tif (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n\t}\n\treturn normalizedQuery;\n}\n//#endregion\n//#region src/utils/callbacks.ts\n/**\n* Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n*/\nfunction useCallbacks() {\n\tlet handlers = [];\n\tfunction add(handler) {\n\t\thandlers.push(handler);\n\t\treturn () => {\n\t\t\tconst i = handlers.indexOf(handler);\n\t\t\tif (i > -1) handlers.splice(i, 1);\n\t\t};\n\t}\n\tfunction reset() {\n\t\thandlers = [];\n\t}\n\treturn {\n\t\tadd,\n\t\tlist: () => handlers.slice(),\n\t\treset\n\t};\n}\n//#endregion\n//#region src/navigationGuards.ts\nfunction registerGuard(activeRecordRef, name, guard) {\n\tconst record = activeRecordRef.value;\n\tif (!record) {\n\t\tif (process.env.NODE_ENV !== \"production\") warn$1(`No active route record was found when calling \\`${name === \"updateGuards\" ? \"onBeforeRouteUpdate\" : \"onBeforeRouteLeave\"}()\\`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?`);\n\t\treturn;\n\t}\n\tlet currentRecord = record;\n\tconst removeFromList = () => {\n\t\tcurrentRecord[name].delete(guard);\n\t};\n\tonUnmounted(removeFromList);\n\tonDeactivated(removeFromList);\n\tonActivated(() => {\n\t\tconst newRecord = activeRecordRef.value;\n\t\tif (process.env.NODE_ENV !== \"production\" && !newRecord) warn$1(\"No active route record was found when reactivating component with navigation guard. This is likely a bug in vue-router. Please report it.\");\n\t\tif (newRecord) currentRecord = newRecord;\n\t\tcurrentRecord[name].add(guard);\n\t});\n\tcurrentRecord[name].add(guard);\n}\n/**\n* Add a navigation guard that triggers whenever the component for the current\n* location is about to be left. Similar to {@link beforeRouteLeave} but can be\n* used in any component. The guard is removed when the component is unmounted.\n*\n* @param leaveGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteLeave(leaveGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"leaveGuards\", leaveGuard);\n}\n/**\n* Add a navigation guard that triggers whenever the current location is about\n* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n* component. The guard is removed when the component is unmounted.\n*\n* @param updateGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteUpdate(updateGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"updateGuards\", updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {\n\tconst enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n\treturn () => new Promise((resolve, reject) => {\n\t\tconst next = (valid) => {\n\t\t\tif (valid === false) reject(createRouterError(4, {\n\t\t\t\tfrom,\n\t\t\t\tto\n\t\t\t}));\n\t\t\telse if (valid instanceof Error) reject(valid);\n\t\t\telse if (isRouteLocation(valid)) reject(createRouterError(2, {\n\t\t\t\tfrom: to,\n\t\t\t\tto: valid\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tif (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") enterCallbackArray.push(valid);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tconst guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? withDeprecationWarning(canOnlyBeCalledOnce(next, to, from)) : next));\n\t\tlet guardCall = Promise.resolve(guardReturn);\n\t\tif (guard.length < 3) guardCall = guardCall.then(next);\n\t\tif (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n\t\t\tconst message = `The \"next\" callback was never called inside of ${guard.name ? \"\\\"\" + guard.name + \"\\\"\" : \"\"}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n\t\t\tif (typeof guardReturn === \"object\" && \"then\" in guardReturn) guardCall = guardCall.then((resolvedValue) => {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t}\n\t\t\t\treturn resolvedValue;\n\t\t\t});\n\t\t\telse if (guardReturn !== void 0) {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tguardCall.catch((err) => reject(err));\n\t});\n}\n/**\n* Wraps the next callback to warn when it is used. Dev-only: when __DEV__ is\n* false (production builds), this branch is dead code and is stripped from the\n* bundle.\n*\n* @internal\n*/\nfunction withDeprecationWarning(next) {\n\tlet warned = false;\n\treturn function() {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\twarn$1(\"The `next()` callback in navigation guards is deprecated. Return the value instead of calling `next(value)`.\");\n\t\t}\n\t\treturn next.apply(this, arguments);\n\t};\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n\tlet called = 0;\n\treturn function() {\n\t\tif (called++ === 1) warn$1(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n\t\tnext._called = true;\n\t\tif (called === 1) next.apply(null, arguments);\n\t};\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {\n\tconst guards = [];\n\tfor (const record of matched) {\n\t\tif (process.env.NODE_ENV !== \"production\" && !record.components && record.children && !record.children.length) warn$1(`Record with path \"${record.path}\" is either missing a \"component(s)\" or \"children\" property.`);\n\t\tfor (const name in record.components) {\n\t\t\tlet rawComponent = record.components[name];\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is not a valid component. Received \"${String(rawComponent)}\".`);\n\t\t\t\t\tthrow new Error(\"Invalid route component\");\n\t\t\t\t} else if (\"then\" in rawComponent) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a Promise instead of a function that returns a Promise. Did you write \"import('./MyPage.vue')\" instead of \"() => import('./MyPage.vue')\" ? This will break in production if not fixed.`);\n\t\t\t\t\tconst promise = rawComponent;\n\t\t\t\t\trawComponent = () => promise;\n\t\t\t\t} else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) {\n\t\t\t\t\trawComponent.__warnedDefineAsync = true;\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is defined using \"defineAsyncComponent()\". Write \"() => import('./MyPage.vue')\" instead of \"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (guardType !== \"beforeRouteEnter\" && !record.instances[name]) continue;\n\t\t\tif (isRouteComponent(rawComponent)) {\n\t\t\t\tconst guard = (rawComponent.__vccOpts || rawComponent)[guardType];\n\t\t\t\tguard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n\t\t\t} else {\n\t\t\t\tlet componentPromise = rawComponent();\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n\t\t\t\t\tcomponentPromise = Promise.resolve(componentPromise);\n\t\t\t\t}\n\t\t\t\tguards.push(() => componentPromise.then((resolved) => {\n\t\t\t\t\tif (!resolved) throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n\t\t\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\t\t\trecord.mods[name] = resolved;\n\t\t\t\t\trecord.components[name] = resolvedComponent;\n\t\t\t\t\tconst guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];\n\t\t\t\t\treturn guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\treturn guards;\n}\n/**\n* Ensures a route is loaded, so it can be passed as o prop to ``.\n*\n* @param route - resolved route to load\n*/\nfunction loadRouteLocation(route) {\n\treturn route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error(\"Cannot load a route that redirects.\")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => {\n\t\tconst rawComponent = record.components[name];\n\t\tif (typeof rawComponent === \"function\" && !(\"displayName\" in rawComponent)) promises.push(rawComponent().then((resolved) => {\n\t\t\tif (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\trecord.mods[name] = resolved;\n\t\t\trecord.components[name] = resolvedComponent;\n\t\t}));\n\t\treturn promises;\n\t}, [])))).then(() => route);\n}\n/**\n* Split the leaving, updating, and entering records.\n* @internal\n*\n* @param to - Location we are navigating to\n* @param from - Location we are navigating from\n*/\nfunction extractChangingRecords(to, from) {\n\tconst leavingRecords = [];\n\tconst updatingRecords = [];\n\tconst enteringRecords = [];\n\tconst len = Math.max(from.matched.length, to.matched.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tconst recordFrom = from.matched[i];\n\t\tif (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);\n\t\telse leavingRecords.push(recordFrom);\n\t\tconst recordTo = to.matched[i];\n\t\tif (recordTo) {\n\t\t\tif (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);\n\t\t}\n\t}\n\treturn [\n\t\tleavingRecords,\n\t\tupdatingRecords,\n\t\tenteringRecords\n\t];\n}\n//#endregion\n//#region src/devtools.ts\n/**\n* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n*\n* @param routeLocation - routeLocation to format\n* @param tooltip - optional tooltip\n* @returns a copy of the routeLocation\n*/\nfunction formatRouteLocation(routeLocation, tooltip) {\n\tconst copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [\n\t\t\"instances\",\n\t\t\"children\",\n\t\t\"aliasOf\"\n\t])) });\n\treturn { _custom: {\n\t\ttype: null,\n\t\treadOnly: true,\n\t\tdisplay: routeLocation.fullPath,\n\t\ttooltip,\n\t\tvalue: copy\n\t} };\n}\nfunction formatDisplay(display) {\n\treturn { _custom: { display } };\n}\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n\tif (router.__hasDevtools) return;\n\trouter.__hasDevtools = true;\n\tconst id = routerId++;\n\tsetupDevtoolsPlugin({\n\t\tid: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n\t\tlabel: \"Vue Router\",\n\t\tpackageName: \"vue-router\",\n\t\thomepage: \"https://router.vuejs.org\",\n\t\tlogo: \"https://router.vuejs.org/logo.png\",\n\t\tcomponentStateTypes: [\"Routing\"],\n\t\tapp\n\t}, (api) => {\n\t\tapi.on.inspectComponent((payload) => {\n\t\t\tif (payload.instanceData) payload.instanceData.state.push({\n\t\t\t\ttype: \"Routing\",\n\t\t\t\tkey: \"$route\",\n\t\t\t\teditable: false,\n\t\t\t\tvalue: formatRouteLocation(router.currentRoute.value, \"Current Route\")\n\t\t\t});\n\t\t});\n\t\tapi.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n\t\t\tif (componentInstance.__vrv_devtools) {\n\t\t\t\tconst info = componentInstance.__vrv_devtools;\n\t\t\t\tnode.tags.push({\n\t\t\t\t\tlabel: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n\t\t\t\t\ttextColor: 0,\n\t\t\t\t\ttooltip: \"This component is rendered by <router-view>\",\n\t\t\t\t\tbackgroundColor: PINK_500\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (isArray(componentInstance.__vrl_devtools)) {\n\t\t\t\tcomponentInstance.__devtoolsApi = api;\n\t\t\t\tcomponentInstance.__vrl_devtools.forEach((devtoolsData) => {\n\t\t\t\t\tlet label = devtoolsData.route.path;\n\t\t\t\t\tlet backgroundColor = ORANGE_400;\n\t\t\t\t\tlet tooltip = \"\";\n\t\t\t\t\tlet textColor = 0;\n\t\t\t\t\tif (devtoolsData.error) {\n\t\t\t\t\t\tlabel = devtoolsData.error;\n\t\t\t\t\t\tbackgroundColor = RED_100;\n\t\t\t\t\t\ttextColor = RED_700;\n\t\t\t\t\t} else if (devtoolsData.isExactActive) {\n\t\t\t\t\t\tbackgroundColor = LIME_500;\n\t\t\t\t\t\ttooltip = \"This is exactly active\";\n\t\t\t\t\t} else if (devtoolsData.isActive) {\n\t\t\t\t\t\tbackgroundColor = BLUE_600;\n\t\t\t\t\t\ttooltip = \"This link is active\";\n\t\t\t\t\t}\n\t\t\t\t\tnode.tags.push({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\tbackgroundColor\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\twatch(router.currentRoute, () => {\n\t\t\trefreshRoutesView();\n\t\t\tapi.notifyComponentUpdate();\n\t\t\tapi.sendInspectorTree(routerInspectorId);\n\t\t\tapi.sendInspectorState(routerInspectorId);\n\t\t});\n\t\tconst navigationsLayerId = \"router:navigations:\" + id;\n\t\tapi.addTimelineLayer({\n\t\t\tid: navigationsLayerId,\n\t\t\tlabel: `Router${id ? \" \" + id : \"\"} Navigations`,\n\t\t\tcolor: 4237508\n\t\t});\n\t\trouter.onError((error, to) => {\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"Error during Navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tlogType: \"error\",\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata: { error },\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tlet navigationId = 0;\n\t\trouter.beforeEach((to, from) => {\n\t\t\tconst data = {\n\t\t\t\tguard: formatDisplay(\"beforeEach\"),\n\t\t\t\tfrom: formatRouteLocation(from, \"Current Location during this navigation\"),\n\t\t\t\tto: formatRouteLocation(to, \"Target location\")\n\t\t\t};\n\t\t\tObject.defineProperty(to.meta, \"__navigationId\", { value: navigationId++ });\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\ttitle: \"Start of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tdata,\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\trouter.afterEach((to, from, failure) => {\n\t\t\tconst data = { guard: formatDisplay(\"afterEach\") };\n\t\t\tif (failure) {\n\t\t\t\tdata.failure = { _custom: {\n\t\t\t\t\ttype: Error,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tdisplay: failure ? failure.message : \"\",\n\t\t\t\t\ttooltip: \"Navigation Failure\",\n\t\t\t\t\tvalue: failure\n\t\t\t\t} };\n\t\t\t\tdata.status = formatDisplay(\"❌\");\n\t\t\t} else data.status = formatDisplay(\"✅\");\n\t\t\tdata.from = formatRouteLocation(from, \"Current Location during this navigation\");\n\t\t\tdata.to = formatRouteLocation(to, \"Target location\");\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"End of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata,\n\t\t\t\t\tlogType: failure ? \"warning\" : \"default\",\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t/**\n\t\t* Inspector of Existing routes\n\t\t*/\n\t\tconst routerInspectorId = \"router-inspector:\" + id;\n\t\tapi.addInspector({\n\t\t\tid: routerInspectorId,\n\t\t\tlabel: \"Routes\" + (id ? \" \" + id : \"\"),\n\t\t\ticon: \"book\",\n\t\t\ttreeFilterPlaceholder: \"Search routes\"\n\t\t});\n\t\tfunction refreshRoutesView() {\n\t\t\tif (!activeRoutesPayload) return;\n\t\t\tconst payload = activeRoutesPayload;\n\t\t\tlet routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components);\n\t\t\troutes.forEach(resetMatchStateOnRouteRecord);\n\t\t\tif (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase()));\n\t\t\troutes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value));\n\t\t\tpayload.rootNodes = routes.map(formatRouteRecordForInspector);\n\t\t}\n\t\tlet activeRoutesPayload;\n\t\tapi.on.getInspectorTree((payload) => {\n\t\t\tactiveRoutesPayload = payload;\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView();\n\t\t});\n\t\t/**\n\t\t* Display information about the currently selected route record\n\t\t*/\n\t\tapi.on.getInspectorState((payload) => {\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) {\n\t\t\t\tconst route = matcher.getRoutes().find((route) => route.record.__vd_id === payload.nodeId);\n\t\t\t\tif (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) };\n\t\t\t}\n\t\t});\n\t\tapi.sendInspectorTree(routerInspectorId);\n\t\tapi.sendInspectorState(routerInspectorId);\n\t});\n}\nfunction modifierForKey(key) {\n\tif (key.optional) return key.repeatable ? \"*\" : \"?\";\n\telse return key.repeatable ? \"+\" : \"\";\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n\tconst { record } = route;\n\tconst fields = [{\n\t\teditable: false,\n\t\tkey: \"path\",\n\t\tvalue: record.path\n\t}];\n\tif (record.name != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"name\",\n\t\tvalue: record.name\n\t});\n\tfields.push({\n\t\teditable: false,\n\t\tkey: \"regexp\",\n\t\tvalue: route.re\n\t});\n\tif (route.keys.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"keys\",\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n\t\t\ttooltip: \"Param keys\",\n\t\t\tvalue: route.keys\n\t\t} }\n\t});\n\tif (record.redirect != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"redirect\",\n\t\tvalue: record.redirect\n\t});\n\tif (route.alias.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"aliases\",\n\t\tvalue: route.alias.map((alias) => alias.record.path)\n\t});\n\tif (Object.keys(route.record.meta).length) fields.push({\n\t\teditable: false,\n\t\tkey: \"meta\",\n\t\tvalue: route.record.meta\n\t});\n\tfields.push({\n\t\tkey: \"score\",\n\t\teditable: false,\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.score.map((score) => score.join(\", \")).join(\" | \"),\n\t\t\ttooltip: \"Score used to sort routes\",\n\t\t\tvalue: route.score\n\t\t} }\n\t});\n\treturn fields;\n}\n/**\n* Extracted from tailwind palette\n*/\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nconst RED_100 = 16704226;\nconst RED_700 = 12131356;\nfunction formatRouteRecordForInspector(route) {\n\tconst tags = [];\n\tconst { record } = route;\n\tif (record.name != null) tags.push({\n\t\tlabel: String(record.name),\n\t\ttextColor: 0,\n\t\tbackgroundColor: CYAN_400\n\t});\n\tif (record.aliasOf) tags.push({\n\t\tlabel: \"alias\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: ORANGE_400\n\t});\n\tif (route.__vd_match) tags.push({\n\t\tlabel: \"matches\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: PINK_500\n\t});\n\tif (route.__vd_exactActive) tags.push({\n\t\tlabel: \"exact\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: LIME_500\n\t});\n\tif (route.__vd_active) tags.push({\n\t\tlabel: \"active\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: BLUE_600\n\t});\n\tif (record.redirect) tags.push({\n\t\tlabel: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n\t\ttextColor: 16777215,\n\t\tbackgroundColor: DARK\n\t});\n\tlet id = record.__vd_id;\n\tif (id == null) {\n\t\tid = String(routeRecordId++);\n\t\trecord.__vd_id = id;\n\t}\n\treturn {\n\t\tid,\n\t\tlabel: record.path,\n\t\ttags,\n\t\tchildren: route.children.map(formatRouteRecordForInspector)\n\t};\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n\tconst isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n\troute.__vd_exactActive = route.__vd_active = isExactActive;\n\tif (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n\troute.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n\troute.__vd_match = false;\n\troute.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n\tconst found = String(route.re).match(EXTRACT_REGEXP_RE);\n\troute.__vd_match = false;\n\tif (!found || found.length < 3) return false;\n\tif (new RegExp(found[1].replace(/\\$$/, \"\"), found[2]).test(filter)) {\n\t\troute.children.forEach((child) => isRouteMatching(child, filter));\n\t\tif (route.record.path !== \"/\" || filter === \"/\") {\n\t\t\troute.__vd_match = route.re.test(filter);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst path = route.record.path.toLowerCase();\n\tconst decodedPath = decode(path);\n\tif (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter))) return true;\n\tif (decodedPath.startsWith(filter) || path.startsWith(filter)) return true;\n\tif (route.record.name && String(route.record.name).includes(filter)) return true;\n\treturn route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n\tconst ret = {};\n\tfor (const key in obj) if (!keys.includes(key)) ret[key] = obj[key];\n\treturn ret;\n}\n//#endregion\nexport { PLUS_RE as A, isSameRouteLocation as C, resolveRelativePath as D, parseURL as E, warn$1 as F, encodeHash as M, encodeParam as N, stringifyURL as O, encodePath as P, START_LOCATION_NORMALIZED as S, isSameRouteRecord as T, saveScrollPosition as _, loadRouteLocation as a, normalizeBase as b, useCallbacks as c, stringifyQuery as d, isRouteLocation as f, getScrollKey as g, getSavedScrollPosition as h, guardToPromiseFn as i, decode as j, stripBase as k, normalizeQuery as l, computeScrollPosition as m, extractChangingRecords as n, onBeforeRouteLeave as o, isRouteName as p, extractComponentsGuards as r, onBeforeRouteUpdate as s, addDevtools as t, parseQuery as u, scrollToPosition as v, isSameRouteLocationParams as w, NEW_stringifyURL as x, createHref as y };\n","/*!\n* vue-router v5.1.0\n* (c) 2026 Eduardo San Martin Morote\n* @license MIT\n*/\nimport { _ as mergeOptions, a as routerKey, c as NavigationFailureType, d as applyToParams, f as assign, i as routeLocationKey, l as createRouterError, m as isArray, n as useRouter, o as routerViewLocationKey, r as matchedRouteKey, s as viewDepthKey, t as useRoute, u as isNavigationFailure, v as noop, y as isBrowser } from \"./useApi-s_02lHjl.js\";\nimport { C as isSameRouteLocation, E as parseURL, F as warn$1, M as encodeHash, N as encodeParam, O as stringifyURL, S as START_LOCATION_NORMALIZED, T as isSameRouteRecord, _ as saveScrollPosition, a as loadRouteLocation, b as normalizeBase, c as useCallbacks, d as stringifyQuery, f as isRouteLocation, g as getScrollKey, h as getSavedScrollPosition, i as guardToPromiseFn, j as decode, k as stripBase, l as normalizeQuery, m as computeScrollPosition, n as extractChangingRecords, o as onBeforeRouteLeave, p as isRouteName, r as extractComponentsGuards, s as onBeforeRouteUpdate, t as addDevtools, u as parseQuery, v as scrollToPosition, w as isSameRouteLocationParams, y as createHref } from \"./devtools-DCoWQoU_.js\";\nimport { computed, defineComponent, getCurrentInstance, h, inject, nextTick, provide, reactive, ref, shallowReactive, shallowRef, unref, watch, watchEffect } from \"vue\";\n//#region src/history/html5.ts\nlet createBaseLocation = () => location.protocol + \"//\" + location.host;\n/**\n* Creates a normalized history location from a window.location object\n* @param base - The base path\n* @param location - The window.location object\n*/\nfunction createCurrentLocation(base, location) {\n\tconst { pathname, search, hash } = location;\n\tconst hashPos = base.indexOf(\"#\");\n\tif (hashPos > -1) {\n\t\tlet slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n\t\tlet pathFromHash = hash.slice(slicePos);\n\t\tif (pathFromHash[0] !== \"/\") pathFromHash = \"/\" + pathFromHash;\n\t\treturn stripBase(pathFromHash, \"\");\n\t}\n\treturn stripBase(pathname, base) + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n\tlet listeners = [];\n\tlet teardowns = [];\n\tlet pauseState = null;\n\tconst popStateHandler = ({ state }) => {\n\t\tconst to = createCurrentLocation(base, location);\n\t\tconst from = currentLocation.value;\n\t\tconst fromState = historyState.value;\n\t\tlet delta = 0;\n\t\tif (state) {\n\t\t\tcurrentLocation.value = to;\n\t\t\thistoryState.value = state;\n\t\t\tif (pauseState && pauseState === from) {\n\t\t\t\tpauseState = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdelta = fromState ? state.position - fromState.position : 0;\n\t\t} else replace(to);\n\t\tlisteners.forEach((listener) => {\n\t\t\tlistener(currentLocation.value, from, {\n\t\t\t\tdelta,\n\t\t\t\ttype: \"pop\",\n\t\t\t\tdirection: delta ? delta > 0 ? \"forward\" : \"back\" : \"\"\n\t\t\t});\n\t\t});\n\t};\n\tfunction pauseListeners() {\n\t\tpauseState = currentLocation.value;\n\t}\n\tfunction listen(callback) {\n\t\tlisteners.push(callback);\n\t\tconst teardown = () => {\n\t\t\tconst index = listeners.indexOf(callback);\n\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t};\n\t\tteardowns.push(teardown);\n\t\treturn teardown;\n\t}\n\tfunction beforeUnloadListener() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tconst { history } = window;\n\t\t\tif (!history.state) return;\n\t\t\thistory.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), \"\");\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tfor (const teardown of teardowns) teardown();\n\t\tteardowns = [];\n\t\twindow.removeEventListener(\"popstate\", popStateHandler);\n\t\twindow.removeEventListener(\"pagehide\", beforeUnloadListener);\n\t\tdocument.removeEventListener(\"visibilitychange\", beforeUnloadListener);\n\t}\n\twindow.addEventListener(\"popstate\", popStateHandler);\n\twindow.addEventListener(\"pagehide\", beforeUnloadListener);\n\tdocument.addEventListener(\"visibilitychange\", beforeUnloadListener);\n\treturn {\n\t\tpauseListeners,\n\t\tlisten,\n\t\tdestroy\n\t};\n}\n/**\n* Creates a state object\n*/\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n\treturn {\n\t\tback,\n\t\tcurrent,\n\t\tforward,\n\t\treplaced,\n\t\tposition: window.history.length,\n\t\tscroll: computeScroll ? computeScrollPosition() : null\n\t};\n}\nfunction useHistoryStateNavigation(base) {\n\tconst { history, location } = window;\n\tconst currentLocation = { value: createCurrentLocation(base, location) };\n\tconst historyState = { value: history.state };\n\tif (!historyState.value) changeLocation(currentLocation.value, {\n\t\tback: null,\n\t\tcurrent: currentLocation.value,\n\t\tforward: null,\n\t\tposition: history.length - 1,\n\t\treplaced: true,\n\t\tscroll: null\n\t}, true);\n\tfunction changeLocation(to, state, replace) {\n\t\t/**\n\t\t* if a base tag is provided, and we are on a normal domain, we have to\n\t\t* respect the provided `base` attribute because pushState() will use it and\n\t\t* potentially erase anything before the `#` like at\n\t\t* https://github.com/vuejs/router/issues/685 where a base of\n\t\t* `/folder/#` but a base of `/` would erase the `/folder/` section. If\n\t\t* there is no host, the `` tag makes no sense and if there isn't a\n\t\t* base tag we can just use everything after the `#`.\n\t\t*/\n\t\tconst hashIndex = base.indexOf(\"#\");\n\t\tconst url = hashIndex > -1 ? (location.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n\t\ttry {\n\t\t\thistory[replace ? \"replaceState\" : \"pushState\"](state, \"\", url);\n\t\t\thistoryState.value = state;\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Error with push/replace State\", err);\n\t\t\telse console.error(err);\n\t\t\tlocation[replace ? \"replace\" : \"assign\"](url);\n\t\t}\n\t}\n\tfunction replace(to, data) {\n\t\tchangeLocation(to, assign({}, history.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);\n\t\tcurrentLocation.value = to;\n\t}\n\tfunction push(to, data) {\n\t\tconst currentState = assign({}, historyState.value, history.state, {\n\t\t\tforward: to,\n\t\t\tscroll: computeScrollPosition()\n\t\t});\n\t\tif (process.env.NODE_ENV !== \"production\" && !history.state) warn$1(\"history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\nhistory.replaceState(history.state, '', url)\\n\\nYou can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state\");\n\t\tchangeLocation(currentState.current, currentState, true);\n\t\tchangeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);\n\t\tcurrentLocation.value = to;\n\t}\n\treturn {\n\t\tlocation: currentLocation,\n\t\tstate: historyState,\n\t\tpush,\n\t\treplace\n\t};\n}\n/**\n* Creates an HTML5 history. Most common history for single page applications.\n*\n* @param base -\n*/\nfunction createWebHistory(base) {\n\tbase = normalizeBase(base);\n\tconst historyNavigation = useHistoryStateNavigation(base);\n\tconst historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n\tfunction go(delta, triggerListeners = true) {\n\t\tif (!triggerListeners) historyListeners.pauseListeners();\n\t\thistory.go(delta);\n\t}\n\tconst routerHistory = assign({\n\t\tlocation: \"\",\n\t\tbase,\n\t\tgo,\n\t\tcreateHref: createHref.bind(null, base)\n\t}, historyNavigation, historyListeners);\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.location.value\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.state.value\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/history/hash.ts\n/**\n* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n* handle any URL is not possible.\n*\n* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n* calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n* after the `#`).\n*\n* @example\n* ```js\n* // at https://example.com/folder\n* createWebHashHistory() // gives a url of `https://example.com/folder#`\n* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n* // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n* // you should avoid doing this because it changes the original url and breaks copying urls\n* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n*\n* // at file:///usr/etc/folder/index.html\n* // for locations with no `host`, the base is ignored\n* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n* ```\n*/\nfunction createWebHashHistory(base) {\n\tbase = location.host ? base || location.pathname + location.search : \"\";\n\tif (!base.includes(\"#\")) base += \"#\";\n\tif (process.env.NODE_ENV !== \"production\" && !base.endsWith(\"#/\") && !base.endsWith(\"#\")) warn$1(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, \"#\")}\".`);\n\treturn createWebHistory(base);\n}\n//#endregion\n//#region src/history/memory.ts\n/**\n* Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n*\n* @param base - Base applied to all urls, defaults to '/'\n* @returns a history object that can be passed to the router constructor\n*/\nfunction createMemoryHistory(base = \"\") {\n\tlet listeners = [];\n\tlet queue = [[\"\", {}]];\n\tlet position = 0;\n\tbase = normalizeBase(base);\n\tfunction setLocation(location, state = {}) {\n\t\tposition++;\n\t\tif (position !== queue.length) queue.splice(position);\n\t\tqueue.push([location, state]);\n\t}\n\tfunction triggerListeners(to, from, { direction, delta }) {\n\t\tconst info = {\n\t\t\tdirection,\n\t\t\tdelta,\n\t\t\ttype: \"pop\"\n\t\t};\n\t\tfor (const callback of listeners) callback(to, from, info);\n\t}\n\tconst routerHistory = {\n\t\tlocation: \"\",\n\t\tstate: {},\n\t\tbase,\n\t\tcreateHref: createHref.bind(null, base),\n\t\treplace(to, state) {\n\t\t\tqueue.splice(position--, 1);\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tpush(to, state) {\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tlisten(callback) {\n\t\t\tlisteners.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = listeners.indexOf(callback);\n\t\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t\t};\n\t\t},\n\t\tdestroy() {\n\t\t\tlisteners = [];\n\t\t\tqueue = [[\"\", {}]];\n\t\t\tposition = 0;\n\t\t},\n\t\tgo(delta, shouldTrigger = true) {\n\t\t\tconst from = this.location;\n\t\t\tconst direction = delta < 0 ? \"back\" : \"forward\";\n\t\t\tposition = Math.max(0, Math.min(position + delta, queue.length - 1));\n\t\t\tif (shouldTrigger) triggerListeners(this.location, from, {\n\t\t\t\tdirection,\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t};\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][0]\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][1]\n\t});\n\treturn routerHistory;\n}\n//#endregion\n//#region src/matcher/pathTokenizer.ts\nconst ROOT_TOKEN = {\n\ttype: 0,\n\tvalue: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n\tif (!path) return [[]];\n\tif (path === \"/\") return [[ROOT_TOKEN]];\n\tif (!path.startsWith(\"/\")) throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n\tfunction crash(message) {\n\t\tthrow new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n\t}\n\tlet state = 0;\n\tlet previousState = state;\n\tconst tokens = [];\n\tlet segment;\n\tfunction finalizeSegment() {\n\t\tif (segment) tokens.push(segment);\n\t\tsegment = [];\n\t}\n\tlet i = 0;\n\tlet char;\n\tlet buffer = \"\";\n\tlet customRe = \"\";\n\tfunction consumeBuffer() {\n\t\tif (!buffer) return;\n\t\tif (state === 0) segment.push({\n\t\t\ttype: 0,\n\t\t\tvalue: buffer\n\t\t});\n\t\telse if (state === 1 || state === 2 || state === 3) {\n\t\t\tif (segment.length > 1 && (char === \"*\" || char === \"+\")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n\t\t\tsegment.push({\n\t\t\t\ttype: 1,\n\t\t\t\tvalue: buffer,\n\t\t\t\tregexp: customRe,\n\t\t\t\trepeatable: char === \"*\" || char === \"+\",\n\t\t\t\toptional: char === \"*\" || char === \"?\"\n\t\t\t});\n\t\t} else crash(\"Invalid state to consume buffer\");\n\t\tbuffer = \"\";\n\t}\n\tfunction addCharToBuffer() {\n\t\tbuffer += char;\n\t}\n\twhile (i < path.length) {\n\t\tchar = path[i++];\n\t\tswitch (state) {\n\t\t\tcase 0:\n\t\t\t\tif (char === \"\\\\\") {\n\t\t\t\t\tpreviousState = state;\n\t\t\t\t\tstate = 4;\n\t\t\t\t} else if (char === \"/\") {\n\t\t\t\t\tif (buffer) consumeBuffer();\n\t\t\t\t\tfinalizeSegment();\n\t\t\t\t} else if (char === \":\") {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 1;\n\t\t\t\t} else addCharToBuffer();\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\t\taddCharToBuffer();\n\t\t\t\tstate = previousState;\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\tif (char === \"(\") state = 2;\n\t\t\t\telse if (VALID_PARAM_RE.test(char)) addCharToBuffer();\n\t\t\t\telse {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = 0;\n\t\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tif (char === \")\") if (customRe[customRe.length - 1] == \"\\\\\") customRe = customRe.slice(0, -1) + char;\n\t\t\t\telse state = 3;\n\t\t\t\telse customRe += char;\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\tconsumeBuffer();\n\t\t\t\tstate = 0;\n\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\tcustomRe = \"\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcrash(\"Unknown state\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tif (state === 2) crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n\tconsumeBuffer();\n\tfinalizeSegment();\n\treturn tokens;\n}\n//#endregion\n//#region src/matcher/pathParserRanker.ts\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n\tsensitive: false,\n\tstrict: false,\n\tstart: true,\n\tend: true\n};\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n* Creates a path parser from an array of Segments (a segment is an array of Tokens)\n*\n* @param segments - array of segments returned by tokenizePath\n* @param extraOptions - optional options for the regexp\n* @returns a PathParser\n*/\nfunction tokensToParser(segments, extraOptions) {\n\tconst options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n\tconst score = [];\n\tlet pattern = options.start ? \"^\" : \"\";\n\tconst keys = [];\n\tfor (const segment of segments) {\n\t\tconst segmentScores = segment.length ? [] : [90];\n\t\tif (options.strict && !segment.length) pattern += \"/\";\n\t\tfor (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n\t\t\tconst token = segment[tokenIndex];\n\t\t\tlet subSegmentScore = 40 + (options.sensitive ? .25 : 0);\n\t\t\tif (token.type === 0) {\n\t\t\t\tif (!tokenIndex) pattern += \"/\";\n\t\t\t\tpattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n\t\t\t\tsubSegmentScore += 40;\n\t\t\t} else if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional, regexp } = token;\n\t\t\t\tkeys.push({\n\t\t\t\t\tname: value,\n\t\t\t\t\trepeatable,\n\t\t\t\t\toptional\n\t\t\t\t});\n\t\t\t\tconst re = regexp ? regexp : BASE_PARAM_PATTERN;\n\t\t\t\tif (re !== BASE_PARAM_PATTERN) {\n\t\t\t\t\tsubSegmentScore += 10;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tnew RegExp(`(${re})`);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` + err.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n\t\t\t\tif (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n\t\t\t\tif (optional) subPattern += \"?\";\n\t\t\t\tpattern += subPattern;\n\t\t\t\tsubSegmentScore += 20;\n\t\t\t\tif (optional) subSegmentScore += -8;\n\t\t\t\tif (repeatable) subSegmentScore += -20;\n\t\t\t\tif (re === \".*\") subSegmentScore += -50;\n\t\t\t}\n\t\t\tsegmentScores.push(subSegmentScore);\n\t\t}\n\t\tscore.push(segmentScores);\n\t}\n\tif (options.strict && options.end) {\n\t\tconst i = score.length - 1;\n\t\tscore[i][score[i].length - 1] += .7000000000000001;\n\t}\n\tif (!options.strict) pattern += \"/?\";\n\tif (options.end) pattern += \"$\";\n\telse if (options.strict && !pattern.endsWith(\"/\")) pattern += \"(?:/|$)\";\n\tconst re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n\tfunction parse(path) {\n\t\tconst match = path.match(re);\n\t\tconst params = {};\n\t\tif (!match) return null;\n\t\tfor (let i = 1; i < match.length; i++) {\n\t\t\tconst value = match[i] || \"\";\n\t\t\tconst key = keys[i - 1];\n\t\t\tparams[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n\t\t}\n\t\treturn params;\n\t}\n\tfunction stringify(params) {\n\t\tlet path = \"\";\n\t\tlet avoidDuplicatedSlash = false;\n\t\tfor (const segment of segments) {\n\t\t\tif (!avoidDuplicatedSlash || !path.endsWith(\"/\")) path += \"/\";\n\t\t\tavoidDuplicatedSlash = false;\n\t\t\tfor (const token of segment) if (token.type === 0) path += token.value;\n\t\t\telse if (token.type === 1) {\n\t\t\t\tconst { value, repeatable, optional } = token;\n\t\t\t\tconst param = value in params ? params[value] : \"\";\n\t\t\t\tif (isArray(param) && !repeatable) throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n\t\t\t\tconst text = isArray(param) ? param.join(\"/\") : param;\n\t\t\t\tif (!text) if (optional) {\n\t\t\t\t\tif (segment.length < 2) if (path.endsWith(\"/\")) path = path.slice(0, -1);\n\t\t\t\t\telse avoidDuplicatedSlash = true;\n\t\t\t\t} else throw new Error(`Missing required param \"${value}\"`);\n\t\t\t\tpath += text;\n\t\t\t}\n\t\t}\n\t\treturn path || \"/\";\n\t}\n\treturn {\n\t\tre,\n\t\tscore,\n\t\tkeys,\n\t\tparse,\n\t\tstringify\n\t};\n}\n/**\n* Compares an array of numbers as used in PathParser.score and returns a\n* number. This function can be used to `sort` an array\n*\n* @param a - first array of numbers\n* @param b - second array of numbers\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n* should be sorted first\n*/\nfunction compareScoreArray(a, b) {\n\tlet i = 0;\n\twhile (i < a.length && i < b.length) {\n\t\tconst diff = b[i] - a[i];\n\t\tif (diff) return diff;\n\t\ti++;\n\t}\n\tif (a.length < b.length) return a.length === 1 && a[0] === 80 ? -1 : 1;\n\telse if (a.length > b.length) return b.length === 1 && b[0] === 80 ? 1 : -1;\n\treturn 0;\n}\n/**\n* Compare function that can be used with `sort` to sort an array of PathParser\n*\n* @param a - first PathParser\n* @param b - second PathParser\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n*/\nfunction comparePathParserScore(a, b) {\n\tlet i = 0;\n\tconst aScore = a.score;\n\tconst bScore = b.score;\n\twhile (i < aScore.length && i < bScore.length) {\n\t\tconst comp = compareScoreArray(aScore[i], bScore[i]);\n\t\tif (comp) return comp;\n\t\ti++;\n\t}\n\tif (Math.abs(bScore.length - aScore.length) === 1) {\n\t\tif (isLastScoreNegative(aScore)) return 1;\n\t\tif (isLastScoreNegative(bScore)) return -1;\n\t}\n\treturn bScore.length - aScore.length;\n}\n/**\n* This allows detecting splats at the end of a path: /home/:id(.*)*\n*\n* @param score - score to check\n* @returns true if the last entry is negative\n*/\nfunction isLastScoreNegative(score) {\n\tconst last = score[score.length - 1];\n\treturn score.length > 0 && last[last.length - 1] < 0;\n}\nconst PATH_PARSER_OPTIONS_DEFAULTS = {\n\tstrict: false,\n\tend: true,\n\tsensitive: false\n};\n//#endregion\n//#region src/matcher/pathMatcher.ts\nfunction createRouteRecordMatcher(record, parent, options) {\n\tconst parser = tokensToParser(tokenizePath(record.path), options);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst existingKeys = /* @__PURE__ */ new Set();\n\t\tfor (const key of parser.keys) {\n\t\t\tif (existingKeys.has(key.name)) warn$1(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n\t\t\texistingKeys.add(key.name);\n\t\t}\n\t}\n\tconst matcher = assign(parser, {\n\t\trecord,\n\t\tparent,\n\t\tchildren: [],\n\t\talias: []\n\t});\n\tif (parent) {\n\t\tif (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);\n\t}\n\treturn matcher;\n}\n//#endregion\n//#region src/matcher/index.ts\n/**\n* Creates a Router Matcher.\n*\n* @internal\n* @param routes - array of initial routes\n* @param globalOptions - global route options\n*/\nfunction createRouterMatcher(routes, globalOptions) {\n\tconst matchers = [];\n\tconst matcherMap = /* @__PURE__ */ new Map();\n\tglobalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);\n\tfunction getRecordMatcher(name) {\n\t\treturn matcherMap.get(name);\n\t}\n\tfunction addRoute(record, parent, originalRecord) {\n\t\tconst isRootAdd = !originalRecord;\n\t\tconst mainNormalizedRecord = normalizeRouteRecord(record);\n\t\tif (process.env.NODE_ENV !== \"production\") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n\t\tmainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n\t\tconst options = mergeOptions(globalOptions, record);\n\t\tconst normalizedRecords = [mainNormalizedRecord];\n\t\tif (\"alias\" in record) {\n\t\t\tconst aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n\t\t\tfor (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n\t\t\t\tcomponents: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n\t\t\t\tpath: alias,\n\t\t\t\taliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n\t\t\t})));\n\t\t}\n\t\tlet matcher;\n\t\tlet originalMatcher;\n\t\tfor (const normalizedRecord of normalizedRecords) {\n\t\t\tconst { path } = normalizedRecord;\n\t\t\tif (parent && path[0] !== \"/\") {\n\t\t\t\tconst parentPath = parent.record.path;\n\t\t\t\tconst connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n\t\t\t\tnormalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") throw new Error(\"Catch all routes (\\\"*\\\") must now be defined using a param with a custom regexp.\\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.\");\n\t\t\tmatcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\") checkMissingParamsInAbsolutePath(matcher, parent);\n\t\t\tif (originalRecord) {\n\t\t\t\toriginalRecord.alias.push(matcher);\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameParams(originalRecord, matcher);\n\t\t\t} else {\n\t\t\t\toriginalMatcher = originalMatcher || matcher;\n\t\t\t\tif (originalMatcher !== matcher) originalMatcher.alias.push(matcher);\n\t\t\t\tif (isRootAdd && record.name && !isAliasRecord(matcher)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameNameAsAncestor(record, parent);\n\t\t\t\t\tremoveRoute(record.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isMatchable(matcher)) insertMatcher(matcher);\n\t\t\tif (mainNormalizedRecord.children) {\n\t\t\t\tconst children = mainNormalizedRecord.children;\n\t\t\t\tfor (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n\t\t\t}\n\t\t\toriginalRecord = originalRecord || matcher;\n\t\t}\n\t\treturn originalMatcher ? () => {\n\t\t\tremoveRoute(originalMatcher);\n\t\t} : noop;\n\t}\n\tfunction removeRoute(matcherRef) {\n\t\tif (isRouteName(matcherRef)) {\n\t\t\tconst matcher = matcherMap.get(matcherRef);\n\t\t\tif (matcher) {\n\t\t\t\tmatcherMap.delete(matcherRef);\n\t\t\t\tmatchers.splice(matchers.indexOf(matcher), 1);\n\t\t\t\tmatcher.children.forEach(removeRoute);\n\t\t\t\tmatcher.alias.forEach(removeRoute);\n\t\t\t}\n\t\t} else {\n\t\t\tconst index = matchers.indexOf(matcherRef);\n\t\t\tif (index > -1) {\n\t\t\t\tmatchers.splice(index, 1);\n\t\t\t\tif (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);\n\t\t\t\tmatcherRef.children.forEach(removeRoute);\n\t\t\t\tmatcherRef.alias.forEach(removeRoute);\n\t\t\t}\n\t\t}\n\t}\n\tfunction getRoutes() {\n\t\treturn matchers;\n\t}\n\tfunction insertMatcher(matcher) {\n\t\tconst index = findInsertionIndex(matcher, matchers);\n\t\tmatchers.splice(index, 0, matcher);\n\t\tif (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);\n\t}\n\tfunction resolve(location, currentLocation) {\n\t\tlet matcher;\n\t\tlet params = {};\n\t\tlet path;\n\t\tlet name;\n\t\tif (\"name\" in location && location.name) {\n\t\t\tmatcher = matcherMap.get(location.name);\n\t\t\tif (!matcher) throw createRouterError(1, { location });\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconst invalidParams = Object.keys(location.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n\t\t\t\tif (invalidParams.length) {\n\t\t\t\t\tconst isInherited = !matcher.keys.length && invalidParams.some((name) => name in currentLocation.params);\n\t\t\t\t\twarn$1(`Discarded invalid param(s) \"${invalidParams.join(\"\\\", \\\"\")}\" when navigating.` + (isInherited ? ` If you are using a catch-all route with a named redirect, pass an empty \\`params\\` object: \\`redirect: { name: '...', params: {} }\\`.` : \"\") + ` See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location.params && pickParams(location.params, matcher.keys.map((k) => k.name)));\n\t\t\tpath = matcher.stringify(params);\n\t\t} else if (location.path != null) {\n\t\t\tpath = location.path;\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) warn$1(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n\t\t\tmatcher = matchers.find((m) => m.re.test(path));\n\t\t\tif (matcher) {\n\t\t\t\tparams = matcher.parse(path);\n\t\t\t\tname = matcher.record.name;\n\t\t\t\tmatcher.keys.forEach((key) => {\n\t\t\t\t\tif (key.optional && !params[key.name]) delete params[key.name];\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tmatcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));\n\t\t\tif (!matcher) throw createRouterError(1, {\n\t\t\t\tlocation,\n\t\t\t\tcurrentLocation\n\t\t\t});\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign({}, currentLocation.params, location.params);\n\t\t\tpath = matcher.stringify(params);\n\t\t}\n\t\tconst matched = [];\n\t\tlet parentMatcher = matcher;\n\t\twhile (parentMatcher) {\n\t\t\tmatched.unshift(parentMatcher.record);\n\t\t\tparentMatcher = parentMatcher.parent;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tpath,\n\t\t\tparams,\n\t\t\tmatched,\n\t\t\tmeta: mergeMetaFields(matched)\n\t\t};\n\t}\n\troutes.forEach((route) => addRoute(route));\n\tfunction clearRoutes() {\n\t\tmatchers.length = 0;\n\t\tmatcherMap.clear();\n\t}\n\treturn {\n\t\taddRoute,\n\t\tresolve,\n\t\tremoveRoute,\n\t\tclearRoutes,\n\t\tgetRoutes,\n\t\tgetRecordMatcher\n\t};\n}\n/**\n* Picks an object param to contain only specified keys.\n*\n* @param params - params object to pick from\n* @param keys - keys to pick\n*/\nfunction pickParams(params, keys) {\n\tconst newParams = {};\n\tfor (const key of keys) if (key in params) newParams[key] = params[key];\n\treturn newParams;\n}\n/**\n* Normalizes a RouteRecordRaw. Creates a copy\n*\n* @param record\n* @returns the normalized version\n*/\nfunction normalizeRouteRecord(record) {\n\tconst normalized = {\n\t\tpath: record.path,\n\t\tredirect: record.redirect,\n\t\tname: record.name,\n\t\tmeta: record.meta || {},\n\t\taliasOf: record.aliasOf,\n\t\tbeforeEnter: record.beforeEnter,\n\t\tprops: normalizeRecordProps(record),\n\t\tchildren: record.children || [],\n\t\tinstances: {},\n\t\tleaveGuards: /* @__PURE__ */ new Set(),\n\t\tupdateGuards: /* @__PURE__ */ new Set(),\n\t\tenterCallbacks: {},\n\t\tcomponents: \"components\" in record ? record.components || null : record.component && { default: record.component }\n\t};\n\tObject.defineProperty(normalized, \"mods\", { value: {} });\n\treturn normalized;\n}\n/**\n* Normalize the optional `props` in a record to always be an object similar to\n* components. Also accept a boolean for components.\n* @param record\n*/\nfunction normalizeRecordProps(record) {\n\tconst propsObject = {};\n\tconst props = record.props || false;\n\tif (\"component\" in record) propsObject.default = props;\n\telse for (const name in record.components) propsObject[name] = typeof props === \"object\" ? props[name] : props;\n\treturn propsObject;\n}\n/**\n* Checks if a record or any of its parent is an alias\n* @param record\n*/\nfunction isAliasRecord(record) {\n\twhile (record) {\n\t\tif (record.record.aliasOf) return true;\n\t\trecord = record.parent;\n\t}\n\treturn false;\n}\n/**\n* Merge meta fields of an array of records\n*\n* @param matched - array of matched records\n*/\nfunction mergeMetaFields(matched) {\n\treturn matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction isSameParam(a, b) {\n\treturn a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\n/**\n* Check if a path and its alias have the same required params\n*\n* @param a - original record\n* @param b - alias record\n*/\nfunction checkSameParams(a, b) {\n\tfor (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n\tfor (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n}\n/**\n* A route with a name and a child with an empty path without a name should warn when adding the route\n*\n* @param mainNormalizedRecord - RouteRecordNormalized\n* @param parent - RouteRecordMatcher\n*/\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n\tif (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path && mainNormalizedRecord.children.length === 0) warn$1(`The route named \"${String(parent.record.name)}\" has a child without a name, an empty path, and no children. This is probably a mistake: using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to silence the warning.`);\n}\nfunction checkSameNameAsAncestor(record, parent) {\n\tfor (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? \"child\" : \"descendant\"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n\tfor (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) return warn$1(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n}\n/**\n* Performs a binary search to find the correct insertion index for a new matcher.\n*\n* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n*\n* @param matcher - new matcher to be inserted\n* @param matchers - existing matchers\n*/\nfunction findInsertionIndex(matcher, matchers) {\n\tlet lower = 0;\n\tlet upper = matchers.length;\n\twhile (lower !== upper) {\n\t\tconst mid = lower + upper >> 1;\n\t\tif (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;\n\t\telse lower = mid + 1;\n\t}\n\tconst insertionAncestor = getInsertionAncestor(matcher);\n\tif (insertionAncestor) {\n\t\tupper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n\t\tif (process.env.NODE_ENV !== \"production\" && upper < 0) warn$1(`Finding ancestor route \"${insertionAncestor.record.path}\" failed for \"${matcher.record.path}\"`);\n\t}\n\treturn upper;\n}\nfunction getInsertionAncestor(matcher) {\n\tlet ancestor = matcher;\n\twhile (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;\n}\n/**\n* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n* a component, or name, or redirect, are just used to group other routes.\n* @param matcher\n* @param matcher.record record of the matcher\n* @returns\n*/\nfunction isMatchable({ record }) {\n\treturn !!(record.name || record.components && Object.keys(record.components).length || record.redirect);\n}\n//#endregion\n//#region src/RouterLink.ts\n/**\n* Returns the internal behavior of a {@link RouterLink} without the rendering part.\n*\n* @param props - a `to` location and an optional `replace` flag\n*/\nfunction useLink(props) {\n\tconst router = inject(routerKey);\n\tconst currentRoute = inject(routeLocationKey);\n\tlet hasPrevious = false;\n\tlet previousTo = null;\n\tconst route = computed(() => {\n\t\tconst to = unref(props.to);\n\t\tif (process.env.NODE_ENV !== \"production\" && (!hasPrevious || to !== previousTo)) {\n\t\t\tif (!isRouteLocation(to)) if (hasPrevious) warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- previous to:`, previousTo, `\\n- props:`, props);\n\t\t\telse warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- props:`, props);\n\t\t\tpreviousTo = to;\n\t\t\thasPrevious = true;\n\t\t}\n\t\treturn router.resolve(to);\n\t});\n\tconst activeRecordIndex = computed(() => {\n\t\tconst { matched } = route.value;\n\t\tconst { length } = matched;\n\t\tconst routeMatched = matched[length - 1];\n\t\tconst currentMatched = currentRoute.matched;\n\t\tif (!routeMatched || !currentMatched.length) return -1;\n\t\tconst index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n\t\tif (index > -1) return index;\n\t\tconst parentRecordPath = getOriginalPath(matched[length - 2]);\n\t\treturn length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index;\n\t});\n\tconst isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n\tconst isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n\tfunction navigate(e = {}) {\n\t\tif (guardEvent(e)) {\n\t\t\tconst p = router[unref(props.replace) ? \"replace\" : \"push\"](unref(props.to)).catch(noop);\n\t\t\tif (props.viewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document) document.startViewTransition(() => p);\n\t\t\treturn p;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n\t\tconst instance = getCurrentInstance();\n\t\tif (instance) {\n\t\t\tconst linkContextDevtools = {\n\t\t\t\troute: route.value,\n\t\t\t\tisActive: isActive.value,\n\t\t\t\tisExactActive: isExactActive.value,\n\t\t\t\terror: null\n\t\t\t};\n\t\t\tinstance.__vrl_devtools = instance.__vrl_devtools || [];\n\t\t\tinstance.__vrl_devtools.push(linkContextDevtools);\n\t\t\twatchEffect(() => {\n\t\t\t\tlinkContextDevtools.route = route.value;\n\t\t\t\tlinkContextDevtools.isActive = isActive.value;\n\t\t\t\tlinkContextDevtools.isExactActive = isExactActive.value;\n\t\t\t\tlinkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : \"Invalid \\\"to\\\" value\";\n\t\t\t}, { flush: \"post\" });\n\t\t}\n\t}\n\t/**\n\t* NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n\t*/\n\treturn {\n\t\troute,\n\t\thref: computed(() => route.value.href),\n\t\tisActive,\n\t\tisExactActive,\n\t\tnavigate\n\t};\n}\nfunction preferSingleVNode(vnodes) {\n\treturn vnodes.length === 1 ? vnodes[0] : vnodes;\n}\n/**\n* Component to render a link that triggers a navigation on click.\n*/\nconst RouterLink = /* @__PURE__ */ defineComponent({\n\tname: \"RouterLink\",\n\tcompatConfig: { MODE: 3 },\n\tprops: {\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\trequired: true\n\t\t},\n\t\treplace: Boolean,\n\t\tactiveClass: String,\n\t\texactActiveClass: String,\n\t\tcustom: Boolean,\n\t\tariaCurrentValue: {\n\t\t\ttype: String,\n\t\t\tdefault: \"page\"\n\t\t},\n\t\tviewTransition: Boolean\n\t},\n\tuseLink,\n\tsetup(props, { slots }) {\n\t\tconst link = reactive(useLink(props));\n\t\tconst { options } = inject(routerKey);\n\t\tconst elClass = computed(() => ({\n\t\t\t[getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n\t\t\t[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n\t\t}));\n\t\treturn () => {\n\t\t\tconst children = slots.default && preferSingleVNode(slots.default(link));\n\t\t\treturn props.custom ? children : h(\"a\", {\n\t\t\t\t\"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n\t\t\t\thref: link.href,\n\t\t\t\tonClick: link.navigate,\n\t\t\t\tclass: elClass.value\n\t\t\t}, children);\n\t\t};\n\t}\n});\nfunction guardEvent(e) {\n\tif (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n\tif (e.defaultPrevented) return;\n\tif (e.button !== void 0 && e.button !== 0) return;\n\tif (e.currentTarget && e.currentTarget.getAttribute) {\n\t\tconst target = e.currentTarget.getAttribute(\"target\");\n\t\tif (/\\b_blank\\b/i.test(target)) return;\n\t}\n\tif (e.preventDefault) e.preventDefault();\n\treturn true;\n}\nfunction includesParams(outer, inner) {\n\tfor (const key in inner) {\n\t\tconst innerValue = inner[key];\n\t\tconst outerValue = outer[key];\n\t\tif (typeof innerValue === \"string\") {\n\t\t\tif (innerValue !== outerValue) return false;\n\t\t} else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value.valueOf() !== outerValue[i].valueOf())) return false;\n\t}\n\treturn true;\n}\n/**\n* Get the original path value of a record by following its aliasOf\n* @param record\n*/\nfunction getOriginalPath(record) {\n\treturn record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\n/**\n* Utility class to get the active class based on defaults.\n* @param propClass\n* @param globalClass\n* @param defaultClass\n*/\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\n//#endregion\n//#region src/RouterView.ts\nconst RouterViewImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterView\",\n\tinheritAttrs: false,\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: \"default\"\n\t\t},\n\t\troute: Object\n\t},\n\tcompatConfig: { MODE: 3 },\n\tsetup(props, { attrs, slots }) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n\t\tconst injectedRoute = inject(routerViewLocationKey);\n\t\tconst routeToDisplay = computed(() => props.route || injectedRoute.value);\n\t\tconst injectedDepth = inject(viewDepthKey, 0);\n\t\tconst depth = computed(() => {\n\t\t\tlet initialDepth = unref(injectedDepth);\n\t\t\tconst { matched } = routeToDisplay.value;\n\t\t\tlet matchedRoute;\n\t\t\twhile ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;\n\t\t\treturn initialDepth;\n\t\t});\n\t\tconst matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n\t\tprovide(viewDepthKey, computed(() => depth.value + 1));\n\t\tprovide(matchedRouteKey, matchedRouteRef);\n\t\tprovide(routerViewLocationKey, routeToDisplay);\n\t\tconst viewRef = ref();\n\t\twatch(() => [\n\t\t\tviewRef.value,\n\t\t\tmatchedRouteRef.value,\n\t\t\tprops.name\n\t\t], ([instance, to, name], [oldInstance, from, _oldName]) => {\n\t\t\tif (to) {\n\t\t\t\tto.instances[name] = instance;\n\t\t\t\tif (from && from !== to && instance && instance === oldInstance) {\n\t\t\t\t\tif (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards;\n\t\t\t\t\tif (!to.updateGuards.size) to.updateGuards = from.updateGuards;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n\t\t}, { flush: \"post\" });\n\t\treturn () => {\n\t\t\tconst route = routeToDisplay.value;\n\t\t\tconst currentName = props.name;\n\t\t\tconst matchedRoute = matchedRouteRef.value;\n\t\t\tconst ViewComponent = matchedRoute && matchedRoute.components[currentName];\n\t\t\tif (!ViewComponent) return normalizeSlot(slots.default, {\n\t\t\t\tComponent: ViewComponent,\n\t\t\t\troute\n\t\t\t});\n\t\t\tconst routePropsOption = matchedRoute.props[currentName];\n\t\t\tconst routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n\t\t\tconst onVnodeUnmounted = (vnode) => {\n\t\t\t\tif (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;\n\t\t\t};\n\t\t\tconst component = h(ViewComponent, assign({}, routeProps, attrs, {\n\t\t\t\tonVnodeUnmounted,\n\t\t\t\tref: viewRef\n\t\t\t}));\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) {\n\t\t\t\tconst info = {\n\t\t\t\t\tdepth: depth.value,\n\t\t\t\t\tname: matchedRoute.name,\n\t\t\t\t\tpath: matchedRoute.path,\n\t\t\t\t\tmeta: matchedRoute.meta\n\t\t\t\t};\n\t\t\t\t(isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => {\n\t\t\t\t\tinstance.__vrv_devtools = info;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn normalizeSlot(slots.default, {\n\t\t\t\tComponent: component,\n\t\t\t\troute\n\t\t\t}) || component;\n\t\t};\n\t}\n});\nfunction normalizeSlot(slot, data) {\n\tif (!slot) return null;\n\tconst slotContent = slot(data);\n\treturn slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n/**\n* Component to display the current route the user is at.\n*/\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n\tconst instance = getCurrentInstance();\n\tconst parentName = instance.parent && instance.parent.type.name;\n\tconst parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n\tif (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n\t\tconst comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n\t\twarn$1(` can no longer be used directly inside <${comp}>.\\nUse slot props instead:\\n\\n\\n <${comp}>\\n \\n \\n`);\n\t}\n}\n//#endregion\n//#region src/router.ts\n/**\n* Creates a Router instance that can be used by a Vue app.\n*\n* @param options - {@link RouterOptions}\n*/\nfunction createRouter(options) {\n\tconst matcher = createRouterMatcher(options.routes, options);\n\tconst parseQuery$1 = options.parseQuery || parseQuery;\n\tconst stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n\tconst routerHistory = options.history;\n\tif (process.env.NODE_ENV !== \"production\" && !routerHistory) throw new Error(\"Provide the \\\"history\\\" option when calling \\\"createRouter()\\\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history\");\n\tconst beforeGuards = useCallbacks();\n\tconst beforeResolveGuards = useCallbacks();\n\tconst afterGuards = useCallbacks();\n\tconst currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n\tlet pendingLocation = START_LOCATION_NORMALIZED;\n\tif (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) history.scrollRestoration = \"manual\";\n\tconst normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n\tconst encodeParams = applyToParams.bind(null, encodeParam);\n\tconst decodeParams = applyToParams.bind(null, decode);\n\tfunction addRoute(parentOrRoute, route) {\n\t\tlet parent;\n\t\tlet record;\n\t\tif (isRouteName(parentOrRoute)) {\n\t\t\tparent = matcher.getRecordMatcher(parentOrRoute);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !parent) warn$1(`Parent route \"${String(parentOrRoute)}\" not found when adding child route`, route);\n\t\t\trecord = route;\n\t\t} else record = parentOrRoute;\n\t\treturn matcher.addRoute(record, parent);\n\t}\n\tfunction removeRoute(name) {\n\t\tconst recordMatcher = matcher.getRecordMatcher(name);\n\t\tif (recordMatcher) matcher.removeRoute(recordMatcher);\n\t\telse if (process.env.NODE_ENV !== \"production\") warn$1(`Cannot remove non-existent route \"${String(name)}\"`);\n\t}\n\tfunction getRoutes() {\n\t\treturn matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n\t}\n\tfunction hasRoute(name) {\n\t\treturn !!matcher.getRecordMatcher(name);\n\t}\n\tfunction resolve(rawLocation, currentLocation) {\n\t\tcurrentLocation = assign({}, currentLocation || currentRoute.value);\n\t\tif (typeof rawLocation === \"string\") {\n\t\t\tconst locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n\t\t\tconst matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n\t\t\tconst href = routerHistory.createHref(locationNormalized.fullPath);\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation}\"`);\n\t\t\t}\n\t\t\treturn assign(locationNormalized, matchedRoute, {\n\t\t\t\tparams: decodeParams(matchedRoute.params),\n\t\t\t\tredirectedFrom: void 0,\n\t\t\t\thref\n\t\t\t});\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\" && !isRouteLocation(rawLocation)) {\n\t\t\twarn$1(`router.resolve() was passed an invalid location. This will fail in production.\\n- Location:`, rawLocation);\n\t\t\treturn resolve({});\n\t\t}\n\t\tlet matcherLocation;\n\t\tif (rawLocation.path != null) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && Object.keys(rawLocation.params).length) warn$1(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n\t\t\tmatcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });\n\t\t} else {\n\t\t\tconst targetParams = assign({}, rawLocation.params);\n\t\t\tfor (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];\n\t\t\tmatcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) });\n\t\t\tcurrentLocation.params = encodeParams(currentLocation.params);\n\t\t}\n\t\tconst matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n\t\tconst hash = rawLocation.hash || \"\";\n\t\tif (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) warn$1(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n\t\tmatchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n\t\tconst fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n\t\t\thash: encodeHash(hash),\n\t\t\tpath: matchedRoute.path\n\t\t}));\n\t\tconst href = routerHistory.createHref(fullPath);\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation.path != null ? rawLocation.path : rawLocation}\"`);\n\t\t}\n\t\treturn assign({\n\t\t\tfullPath,\n\t\t\thash,\n\t\t\tquery: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n\t\t}, matchedRoute, {\n\t\t\tredirectedFrom: void 0,\n\t\t\thref\n\t\t});\n\t}\n\tfunction locationAsObject(to) {\n\t\treturn typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n\t}\n\tfunction checkCanceledNavigation(to, from) {\n\t\tif (pendingLocation !== to) return createRouterError(8, {\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t}\n\tfunction push(to) {\n\t\treturn pushWithRedirect(to);\n\t}\n\tfunction replace(to) {\n\t\treturn push(assign(locationAsObject(to), { replace: true }));\n\t}\n\tfunction handleRedirectRecord(to, from) {\n\t\tconst lastMatched = to.matched[to.matched.length - 1];\n\t\tif (lastMatched && lastMatched.redirect) {\n\t\t\tconst { redirect } = lastMatched;\n\t\t\tlet newTargetLocation = typeof redirect === \"function\" ? redirect(to, from) : redirect;\n\t\t\tif (typeof newTargetLocation === \"string\") {\n\t\t\t\tnewTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };\n\t\t\t\tnewTargetLocation.params = {};\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && newTargetLocation.path == null && !(\"name\" in newTargetLocation)) {\n\t\t\t\twarn$1(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n\t\t\t\tthrow new Error(\"Invalid redirect\");\n\t\t\t}\n\t\t\treturn assign({\n\t\t\t\tquery: to.query,\n\t\t\t\thash: to.hash,\n\t\t\t\tparams: newTargetLocation.path != null ? {} : to.params\n\t\t\t}, newTargetLocation);\n\t\t}\n\t}\n\tfunction pushWithRedirect(to, redirectedFrom) {\n\t\tconst targetLocation = pendingLocation = resolve(to);\n\t\tconst from = currentRoute.value;\n\t\tconst data = to.state;\n\t\tconst force = to.force;\n\t\tconst replace = to.replace === true;\n\t\tconst shouldRedirect = handleRedirectRecord(targetLocation, from);\n\t\tif (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n\t\t\tstate: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n\t\t\tforce,\n\t\t\treplace\n\t\t}), redirectedFrom || targetLocation);\n\t\tconst toLocation = targetLocation;\n\t\ttoLocation.redirectedFrom = redirectedFrom;\n\t\tlet failure;\n\t\tif (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n\t\t\tfailure = createRouterError(16, {\n\t\t\t\tto: toLocation,\n\t\t\t\tfrom\n\t\t\t});\n\t\t\thandleScroll(from, from, true, false);\n\t\t}\n\t\treturn (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, 2) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure) => {\n\t\t\tif (failure) {\n\t\t\t\tif (isNavigationFailure(failure, 2)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\" && isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) {\n\t\t\t\t\t\twarn$1(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n\t\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Infinite redirect in navigation guard\"));\n\t\t\t\t\t}\n\t\t\t\t\treturn pushWithRedirect(assign({ replace }, locationAsObject(failure.to), {\n\t\t\t\t\t\tstate: typeof failure.to === \"object\" ? assign({}, data, failure.to.state) : data,\n\t\t\t\t\t\tforce\n\t\t\t\t\t}), redirectedFrom || toLocation);\n\t\t\t\t}\n\t\t\t} else failure = finalizeNavigation(toLocation, from, true, replace, data);\n\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\treturn failure;\n\t\t});\n\t}\n\t/**\n\t* Helper to reject and skip all navigation guards if a new navigation happened\n\t* @param to\n\t* @param from\n\t*/\n\tfunction checkCanceledNavigationAndReject(to, from) {\n\t\tconst error = checkCanceledNavigation(to, from);\n\t\treturn error ? Promise.reject(error) : Promise.resolve();\n\t}\n\tfunction runWithContext(fn) {\n\t\tconst app = installedApps.values().next().value;\n\t\treturn app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n\t}\n\tfunction navigate(to, from) {\n\t\tlet guards;\n\t\tconst [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n\t\tguards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n\t\tfor (const record of leavingRecords) record.leaveGuards.forEach((guard) => {\n\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t});\n\t\tconst canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n\t\tguards.push(canceledNavigationCheck);\n\t\treturn runGuardQueue(guards).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n\t\t\tfor (const record of updatingRecords) record.updateGuards.forEach((guard) => {\n\t\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t\t});\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from));\n\t\t\telse guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tto.matched.forEach((record) => record.enterCallbacks = {});\n\t\t\tguards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from, runWithContext);\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).catch((err) => isNavigationFailure(err, 8) ? err : Promise.reject(err));\n\t}\n\tfunction triggerAfterEach(to, from, failure) {\n\t\tafterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n\t}\n\t/**\n\t* - Cleans up any navigation guards\n\t* - Changes the url if necessary\n\t* - Calls the scrollBehavior\n\t*/\n\tfunction finalizeNavigation(toLocation, from, isPush, replace, data) {\n\t\tconst error = checkCanceledNavigation(toLocation, from);\n\t\tif (error) return error;\n\t\tconst isFirstNavigation = from === START_LOCATION_NORMALIZED;\n\t\tconst state = !isBrowser ? {} : history.state;\n\t\tif (isPush) if (replace || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data));\n\t\telse routerHistory.push(toLocation.fullPath, data);\n\t\tcurrentRoute.value = toLocation;\n\t\thandleScroll(toLocation, from, isPush, isFirstNavigation);\n\t\tmarkAsReady();\n\t}\n\tlet removeHistoryListener;\n\tfunction setupListeners() {\n\t\tif (removeHistoryListener) return;\n\t\tremoveHistoryListener = routerHistory.listen((to, _from, info) => {\n\t\t\tif (!router.listening) return;\n\t\t\tconst toLocation = resolve(to);\n\t\t\tconst shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value);\n\t\t\tif (shouldRedirect) {\n\t\t\t\tpushWithRedirect(assign(shouldRedirect, {\n\t\t\t\t\treplace: true,\n\t\t\t\t\tforce: true\n\t\t\t\t}), toLocation).catch(noop);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingLocation = toLocation;\n\t\t\tconst from = currentRoute.value;\n\t\t\tif (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n\t\t\tnavigate(toLocation, from).catch((error) => {\n\t\t\t\tif (isNavigationFailure(error, 12)) return error;\n\t\t\t\tif (isNavigationFailure(error, 2)) {\n\t\t\t\t\tpushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {\n\t\t\t\t\t\tif (isNavigationFailure(failure, 20) && !info.delta && info.type === \"pop\") routerHistory.go(-1, false);\n\t\t\t\t\t}).catch(noop);\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t}\n\t\t\t\tif (info.delta) routerHistory.go(-info.delta, false);\n\t\t\t\treturn triggerError(error, toLocation, from);\n\t\t\t}).then((failure) => {\n\t\t\t\tfailure = failure || finalizeNavigation(toLocation, from, false);\n\t\t\t\tif (failure) {\n\t\t\t\t\tif (info.delta && !isNavigationFailure(failure, 8)) routerHistory.go(-info.delta, false);\n\t\t\t\t\telse if (info.type === \"pop\" && isNavigationFailure(failure, 20)) routerHistory.go(-1, false);\n\t\t\t\t}\n\t\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\t}).catch(noop);\n\t\t});\n\t}\n\tlet readyHandlers = useCallbacks();\n\tlet errorListeners = useCallbacks();\n\tlet ready;\n\t/**\n\t* Trigger errorListeners added via onError and throws the error as well\n\t*\n\t* @param error - error to throw\n\t* @param to - location we were navigating to when the error happened\n\t* @param from - location we were navigating from when the error happened\n\t* @returns the error as a rejected promise\n\t*/\n\tfunction triggerError(error, to, from) {\n\t\tmarkAsReady(error);\n\t\tconst list = errorListeners.list();\n\t\tif (list.length) list.forEach((handler) => handler(error, to, from));\n\t\telse {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"uncaught error during route navigation:\");\n\t\t\tconsole.error(error);\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n\tfunction isReady() {\n\t\tif (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treadyHandlers.add([resolve, reject]);\n\t\t});\n\t}\n\tfunction markAsReady(err) {\n\t\tif (!ready) {\n\t\t\tready = !err;\n\t\t\tsetupListeners();\n\t\t\treadyHandlers.list().forEach(([resolve, reject]) => err ? reject(err) : resolve());\n\t\t\treadyHandlers.reset();\n\t\t}\n\t\treturn err;\n\t}\n\tfunction handleScroll(to, from, isPush, isFirstNavigation) {\n\t\tconst { scrollBehavior } = options;\n\t\tif (!isBrowser || !scrollBehavior) return Promise.resolve();\n\t\tconst scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n\t\treturn nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from));\n\t}\n\tconst go = (delta) => routerHistory.go(delta);\n\tlet started;\n\tconst installedApps = /* @__PURE__ */ new Set();\n\tconst router = {\n\t\tcurrentRoute,\n\t\tlistening: true,\n\t\taddRoute,\n\t\tremoveRoute,\n\t\tclearRoutes: matcher.clearRoutes,\n\t\thasRoute,\n\t\tgetRoutes,\n\t\tresolve,\n\t\toptions,\n\t\tpush,\n\t\treplace,\n\t\tgo,\n\t\tback: () => go(-1),\n\t\tforward: () => go(1),\n\t\tbeforeEach: beforeGuards.add,\n\t\tbeforeResolve: beforeResolveGuards.add,\n\t\tafterEach: afterGuards.add,\n\t\tonError: errorListeners.add,\n\t\tisReady,\n\t\tinstall(app) {\n\t\t\tapp.component(\"RouterLink\", RouterLink);\n\t\t\tapp.component(\"RouterView\", RouterView);\n\t\t\tapp.config.globalProperties.$router = router;\n\t\t\tObject.defineProperty(app.config.globalProperties, \"$route\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => unref(currentRoute)\n\t\t\t});\n\t\t\tif (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n\t\t\t\tstarted = true;\n\t\t\t\tpush(routerHistory.location).catch((err) => {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Unexpected error when starting the router:\", err);\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst reactiveRoute = {};\n\t\t\tfor (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {\n\t\t\t\tget: () => currentRoute.value[key],\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t\tapp.provide(routerKey, router);\n\t\t\tapp.provide(routeLocationKey, shallowReactive(reactiveRoute));\n\t\t\tapp.provide(routerViewLocationKey, currentRoute);\n\t\t\tconst unmountApp = app.unmount;\n\t\t\tinstalledApps.add(app);\n\t\t\tapp.unmount = function() {\n\t\t\t\tinstalledApps.delete(app);\n\t\t\t\tif (installedApps.size < 1) {\n\t\t\t\t\tpendingLocation = START_LOCATION_NORMALIZED;\n\t\t\t\t\tremoveHistoryListener && removeHistoryListener();\n\t\t\t\t\tremoveHistoryListener = null;\n\t\t\t\t\tcurrentRoute.value = START_LOCATION_NORMALIZED;\n\t\t\t\t\tstarted = false;\n\t\t\t\t\tready = false;\n\t\t\t\t}\n\t\t\t\tunmountApp();\n\t\t\t};\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && true) addDevtools(app, router, matcher);\n\t\t}\n\t};\n\tfunction runGuardQueue(guards) {\n\t\treturn guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n\t}\n\treturn router;\n}\n//#endregion\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };\n","global.__VUE_PROD_DEVTOOLS__ = false\nexport * from './dist/vue-router.js'\n","import { KeepAlive, h } from \"vue\";\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nconst interpolatePath = (route, match) => {\n return match.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n};\nexport const generateRouteKey = (routeProps, override) => {\n const matchedRoute = routeProps.route.matched.find((m) => m.components?.default === routeProps.Component.type);\n const source = override ?? matchedRoute?.meta.key ?? (matchedRoute && interpolatePath(routeProps.route, matchedRoute));\n return typeof source === \"function\" ? source(routeProps.route) : source;\n};\nexport const wrapInKeepAlive = (props, children) => {\n return { default: () => import.meta.client && props ? h(KeepAlive, props === true ? {} : props, children) : children };\n};\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n","\nif (import.meta.hot) {\n import.meta.hot.accept((mod) => {\n const router = import.meta.hot.data.router\n const generateRoutes = import.meta.hot.data.generateRoutes\n if (!router || !generateRoutes) {\n import.meta.hot.invalidate('[nuxt] Cannot replace routes because there is no active router. Reloading.')\n return\n }\n const addedRoutes = router.getRoutes().filter(r => !r._initial)\n router.clearRoutes()\n const routes = generateRoutes(mod.default || mod)\n function addRoutes (routes) {\n for (const route of routes) {\n router.addRoute(route)\n }\n for (const route of router.getRoutes()) {\n route._initial = true\n }\n for (const route of addedRoutes) {\n router.addRoute(route)\n }\n router.isReady().then(() => {\n // Resolve the current path against the new routes to get updated meta\n const newRoute = router.resolve(router.currentRoute.value.fullPath)\n // Clear old meta values and assign new ones\n for (const key of Object.keys(router.currentRoute.value.meta)) {\n delete router.currentRoute.value.meta[key]\n }\n Object.assign(router.currentRoute.value.meta, newRoute.meta)\n })\n }\n if (routes && 'then' in routes) {\n routes.then(addRoutes)\n } else {\n addRoutes(routes)\n }\n })\n}\n\nexport function handleHotUpdate(_router, _generateRoutes) {\n if (import.meta.hot) {\n import.meta.hot.data ||= {}\n import.meta.hot.data.router = _router\n import.meta.hot.data.generateRoutes = _generateRoutes\n for (const route of _router.getRoutes()) {\n route._initial = true\n }\n }\n}\nimport { default as accountsuf9bCUy96pdO5sDhtrw37BAVSmLjFm_wqAF7eLybYiMMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/accounts.vue?macro=true\";\nimport { default as appconfigMaNwwQRe3all4OpVg4ypcFX_uYs7MhHHxXy6HdSwqzAMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/appconfig.vue?macro=true\";\nimport { default as apps4N_8fM_HAmoSan_tqUVvBfSBVgSnYl__ZGdiSQQbrUQMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/apps.vue?macro=true\";\nimport { default as calltranslateyLuYKm0ZK9L21n5R8uZzUWg2Wz5JWCfqvY_vv13cK8wMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/calltranslate.vue?macro=true\";\nimport { default as codetIaWhqabBnZ9rT9cLF_86EHpOqJs8Du_S5u8tCLN2VcMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/code.vue?macro=true\";\nimport { default as dashboardZNLB5_JiEysWIj_2b5J2hURJ9xLEtnlF8cxz1kh1xgsMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/dashboard.vue?macro=true\";\nimport { default as deviceATlhZZ6PiEtU_HD4qeo7Tbnfw0N2ei8nBzbk1UCWcQAMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/device.vue?macro=true\";\nimport { default as environments2K1an_2pLlUuq0wZm4vf5M_8qSrfGyBr04Cp4cfHb8EMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/environments.vue?macro=true\";\nimport { default as factoryVZatTEN3EjRZOxVm33XY8Gdq71RZ1D_jDUKUf4F_lWIMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/factory.vue?macro=true\";\nimport { default as globalconfignq5luXkq_Ykd2myATDZ7keYzKoRwp_opATj4sH705EcMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/globalconfig.vue?macro=true\";\nimport { default as mcpconfigrFWADY1KKVchc3b_tLzB_4GNdXlzlJnoCP2vK_qS9IgMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/mcpconfig.vue?macro=true\";\nimport { default as meettemplates3Nsj0ut16S4eIXd5Lv9nVQD0XusUnq08ZaalLdE0O7IMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/meettemplates.vue?macro=true\";\nimport { default as productWbWlgO8dvY_vVRFylKRGjH7HyHR9RFTvzFbP8equczwMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/product.vue?macro=true\";\nimport { default as serviceconfig6Gc5qzSDJTYZMnqPqZYds2OIokXbSz4H6XhPAg8iN0EMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/serviceconfig.vue?macro=true\";\nimport { default as statlogrR6XJDIk_e8P5NJMugR6upS2Ifr1zDMQogeCNYwz5MQMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/statlog.vue?macro=true\";\nimport { default as systemconfigLbtF1nV2kUjJU1iP8sTLfpqV4d2QGryXpZEovNtPXBYMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/systemconfig.vue?macro=true\";\nimport { default as usersfLETUnFtHTvnQYJLMbrQA_IXzpwNp3NUerB3_nZMVvkMeta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/users.vue?macro=true\";\nimport { default as indexcEvFhP__rFdFTbvBFnPFkHCn7KMBOSKrrLe98tJlrc4Meta } from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/index.vue?macro=true\";\nexport default [\n {\n name: \"accounts\",\n path: \"/accounts\",\n meta: accountsuf9bCUy96pdO5sDhtrw37BAVSmLjFm_wqAF7eLybYiMMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/accounts.vue\")\n },\n {\n name: \"appconfig\",\n path: \"/appconfig\",\n meta: appconfigMaNwwQRe3all4OpVg4ypcFX_uYs7MhHHxXy6HdSwqzAMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/appconfig.vue\")\n },\n {\n name: \"apps\",\n path: \"/apps\",\n meta: apps4N_8fM_HAmoSan_tqUVvBfSBVgSnYl__ZGdiSQQbrUQMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/apps.vue\")\n },\n {\n name: \"calltranslate\",\n path: \"/calltranslate\",\n meta: calltranslateyLuYKm0ZK9L21n5R8uZzUWg2Wz5JWCfqvY_vv13cK8wMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/calltranslate.vue\")\n },\n {\n name: \"code\",\n path: \"/code\",\n meta: codetIaWhqabBnZ9rT9cLF_86EHpOqJs8Du_S5u8tCLN2VcMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/code.vue\")\n },\n {\n name: \"dashboard\",\n path: \"/dashboard\",\n meta: dashboardZNLB5_JiEysWIj_2b5J2hURJ9xLEtnlF8cxz1kh1xgsMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/dashboard.vue\")\n },\n {\n name: \"device\",\n path: \"/device\",\n meta: deviceATlhZZ6PiEtU_HD4qeo7Tbnfw0N2ei8nBzbk1UCWcQAMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/device.vue\")\n },\n {\n name: \"environments\",\n path: \"/environments\",\n meta: environments2K1an_2pLlUuq0wZm4vf5M_8qSrfGyBr04Cp4cfHb8EMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/environments.vue\")\n },\n {\n name: \"factory\",\n path: \"/factory\",\n meta: factoryVZatTEN3EjRZOxVm33XY8Gdq71RZ1D_jDUKUf4F_lWIMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/factory.vue\")\n },\n {\n name: \"globalconfig\",\n path: \"/globalconfig\",\n meta: globalconfignq5luXkq_Ykd2myATDZ7keYzKoRwp_opATj4sH705EcMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/globalconfig.vue\")\n },\n {\n name: \"mcpconfig\",\n path: \"/mcpconfig\",\n meta: mcpconfigrFWADY1KKVchc3b_tLzB_4GNdXlzlJnoCP2vK_qS9IgMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/mcpconfig.vue\")\n },\n {\n name: \"meettemplates\",\n path: \"/meettemplates\",\n meta: meettemplates3Nsj0ut16S4eIXd5Lv9nVQD0XusUnq08ZaalLdE0O7IMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/meettemplates.vue\")\n },\n {\n name: \"product\",\n path: \"/product\",\n meta: productWbWlgO8dvY_vVRFylKRGjH7HyHR9RFTvzFbP8equczwMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/product.vue\")\n },\n {\n name: \"serviceconfig\",\n path: \"/serviceconfig\",\n meta: serviceconfig6Gc5qzSDJTYZMnqPqZYds2OIokXbSz4H6XhPAg8iN0EMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/serviceconfig.vue\")\n },\n {\n name: \"statlog\",\n path: \"/statlog\",\n meta: statlogrR6XJDIk_e8P5NJMugR6upS2Ifr1zDMQogeCNYwz5MQMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/statlog.vue\")\n },\n {\n name: \"systemconfig\",\n path: \"/systemconfig\",\n meta: systemconfigLbtF1nV2kUjJU1iP8sTLfpqV4d2QGryXpZEovNtPXBYMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/systemconfig.vue\")\n },\n {\n name: \"users\",\n path: \"/users\",\n meta: usersfLETUnFtHTvnQYJLMbrQA_IXzpwNp3NUerB3_nZMVvkMeta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/users.vue\")\n },\n {\n name: \"index\",\n path: \"/\",\n meta: indexcEvFhP__rFdFTbvBFnPFkHCn7KMBOSKrrLe98tJlrc4Meta || {},\n component: () => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/pages/index.vue\")\n }\n]","/**\n* @vue/shared v3.5.38\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = {};\nconst EMPTY_ARR = [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst 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 camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst 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\";\nconst 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\";\nconst 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\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `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`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n 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);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n return String(value);\n}\n\nexports.EMPTY_ARR = EMPTY_ARR;\nexports.EMPTY_OBJ = EMPTY_OBJ;\nexports.NO = NO;\nexports.NOOP = NOOP;\nexports.PatchFlagNames = PatchFlagNames;\nexports.PatchFlags = PatchFlags;\nexports.ShapeFlags = ShapeFlags;\nexports.SlotFlags = SlotFlags;\nexports.camelize = camelize;\nexports.capitalize = capitalize;\nexports.cssVarNameEscapeSymbolsRE = cssVarNameEscapeSymbolsRE;\nexports.def = def;\nexports.escapeHtml = escapeHtml;\nexports.escapeHtmlComment = escapeHtmlComment;\nexports.extend = extend;\nexports.genCacheKey = genCacheKey;\nexports.genPropsAccessExp = genPropsAccessExp;\nexports.generateCodeFrame = generateCodeFrame;\nexports.getEscapedCssVarName = getEscapedCssVarName;\nexports.getGlobalThis = getGlobalThis;\nexports.hasChanged = hasChanged;\nexports.hasOwn = hasOwn;\nexports.hyphenate = hyphenate;\nexports.includeBooleanAttr = includeBooleanAttr;\nexports.invokeArrayFns = invokeArrayFns;\nexports.isArray = isArray;\nexports.isBooleanAttr = isBooleanAttr;\nexports.isBuiltInDirective = isBuiltInDirective;\nexports.isDate = isDate;\nexports.isFunction = isFunction;\nexports.isGloballyAllowed = isGloballyAllowed;\nexports.isGloballyWhitelisted = isGloballyWhitelisted;\nexports.isHTMLTag = isHTMLTag;\nexports.isIntegerKey = isIntegerKey;\nexports.isKnownHtmlAttr = isKnownHtmlAttr;\nexports.isKnownMathMLAttr = isKnownMathMLAttr;\nexports.isKnownSvgAttr = isKnownSvgAttr;\nexports.isMap = isMap;\nexports.isMathMLTag = isMathMLTag;\nexports.isModelListener = isModelListener;\nexports.isObject = isObject;\nexports.isOn = isOn;\nexports.isPlainObject = isPlainObject;\nexports.isPromise = isPromise;\nexports.isRegExp = isRegExp;\nexports.isRenderableAttrValue = isRenderableAttrValue;\nexports.isReservedProp = isReservedProp;\nexports.isSSRSafeAttrName = isSSRSafeAttrName;\nexports.isSVGTag = isSVGTag;\nexports.isSet = isSet;\nexports.isSpecialBooleanAttr = isSpecialBooleanAttr;\nexports.isString = isString;\nexports.isSymbol = isSymbol;\nexports.isVoidTag = isVoidTag;\nexports.looseEqual = looseEqual;\nexports.looseIndexOf = looseIndexOf;\nexports.looseToNumber = looseToNumber;\nexports.makeMap = makeMap;\nexports.normalizeClass = normalizeClass;\nexports.normalizeCssVarValue = normalizeCssVarValue;\nexports.normalizeProps = normalizeProps;\nexports.normalizeStyle = normalizeStyle;\nexports.objectToString = objectToString;\nexports.parseStringStyle = parseStringStyle;\nexports.propsToAttrMap = propsToAttrMap;\nexports.remove = remove;\nexports.slotFlagsText = slotFlagsText;\nexports.stringifyStyle = stringifyStyle;\nexports.toDisplayString = toDisplayString;\nexports.toHandlerKey = toHandlerKey;\nexports.toNumber = toNumber;\nexports.toRawType = toRawType;\nexports.toTypeString = toTypeString;\n","import { Transition, createStaticVNode, h } from \"vue\";\nimport { defu } from \"defu\";\nimport { isString, isPromise, isArray, isObject } from \"@vue/shared\";\nimport { START_LOCATION } from \"#build/pages\";\nexport const _wrapInTransition = (props, children) => {\n return { default: () => import.meta.client && props ? h(Transition, props === true ? {} : props, children) : children.default?.() };\n};\nconst ROUTE_KEY_PARENTHESES_RE = /(:\\w+)\\([^)]+\\)/g;\nconst ROUTE_KEY_SYMBOLS_RE = /(:\\w+)[?+*]/g;\nconst ROUTE_KEY_NORMAL_RE = /:\\w+/g;\nfunction generateRouteKey(route) {\n const source = route?.meta.key ?? route.path.replace(ROUTE_KEY_PARENTHESES_RE, \"$1\").replace(ROUTE_KEY_SYMBOLS_RE, \"$1\").replace(ROUTE_KEY_NORMAL_RE, (r) => route.params[r.slice(1)]?.toString() || \"\");\n return typeof source === \"function\" ? source(route) : source;\n}\nexport function isChangingPage(to, from) {\n if (to === from || from === START_LOCATION) {\n return false;\n }\n if (generateRouteKey(to) !== generateRouteKey(from)) {\n return true;\n }\n const areComponentsSame = to.matched.every(\n (comp, index) => comp.components && comp.components.default === from.matched[index]?.components?.default\n );\n if (areComponentsSame) {\n return false;\n }\n return true;\n}\nexport function createBuffer() {\n let appendable = false;\n const buffer = [];\n return {\n getBuffer() {\n return buffer;\n },\n push(item) {\n const isStringItem = isString(item);\n if (appendable && isStringItem) {\n buffer[buffer.length - 1] += item;\n } else {\n buffer.push(item);\n }\n appendable = isStringItem;\n if (isPromise(item) || isArray(item) && item.hasAsync) {\n buffer.hasAsync = true;\n }\n }\n };\n}\nexport function vforToArray(source) {\n if (isArray(source)) {\n return source;\n } else if (isString(source)) {\n return source.split(\"\");\n } else if (typeof source === \"number\") {\n if (import.meta.dev && !Number.isInteger(source)) {\n console.warn(`The v-for range expect an integer value but got ${source}.`);\n }\n const array = [];\n for (let i = 0; i < source; i++) {\n array[i] = i;\n }\n return array;\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n return Array.from(\n source,\n (item) => item\n );\n } else {\n const keys = Object.keys(source);\n const array = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n array[i] = source[key];\n }\n return array;\n }\n }\n return [];\n}\nexport function getFragmentHTML(element, withoutSlots = false) {\n if (element) {\n if (element.nodeName === \"#comment\" && element.nodeValue === \"[\") {\n return getFragmentChildren(element, [], withoutSlots);\n }\n if (withoutSlots) {\n const clone = element.cloneNode(true);\n clone.querySelectorAll(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n return [clone.outerHTML];\n }\n return [element.outerHTML];\n }\n}\nfunction getFragmentChildren(element, blocks = [], withoutSlots = false) {\n if (element && element.nodeName) {\n if (isEndFragment(element)) {\n return blocks;\n } else if (!isStartFragment(element)) {\n const clone = element.cloneNode(true);\n if (withoutSlots) {\n clone.querySelectorAll?.(\"[data-island-slot]\").forEach((n) => {\n n.innerHTML = \"\";\n });\n }\n blocks.push(clone.outerHTML);\n }\n getFragmentChildren(element.nextSibling, blocks, withoutSlots);\n }\n return blocks;\n}\nexport function elToStaticVNode(el, staticNodeFallback) {\n const fragment = el ? getFragmentHTML(el) : staticNodeFallback ? [staticNodeFallback] : void 0;\n if (fragment) {\n return createStaticVNode(fragment.join(\"\"), fragment.length);\n }\n return h(\"div\");\n}\nexport function isStartFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"[\";\n}\nexport function isEndFragment(element) {\n return element.nodeName === \"#comment\" && element.nodeValue === \"]\";\n}\nexport function toArray(value) {\n return Array.isArray(value) ? value : [value];\n}\nexport function _mergeTransitionProps(routeProps) {\n const _props = [];\n for (const prop of routeProps) {\n if (!prop) {\n continue;\n }\n _props.push({\n ...prop,\n onAfterLeave: prop.onAfterLeave ? toArray(prop.onAfterLeave) : void 0,\n onBeforeLeave: prop.onBeforeLeave ? toArray(prop.onBeforeLeave) : void 0\n });\n }\n return defu(..._props);\n}\n","import { START_LOCATION } from \"vue-router\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { isChangingPage } from \"#app/components/utils\";\nimport { useRouter } from \"#app/composables/router\";\nexport default {\n scrollBehavior(to, from, savedPosition) {\n const nuxtApp = useNuxtApp();\n const hashScrollBehaviour = useRouter().options?.scrollBehaviorType ?? \"auto\";\n if (to.path.replace(/\\/$/, \"\") === from.path.replace(/\\/$/, \"\")) {\n if (from.hash && !to.hash) {\n return { left: 0, top: 0 };\n }\n if (to.hash) {\n return { el: to.hash, top: _getHashElementScrollMarginTop(to.hash), behavior: hashScrollBehaviour };\n }\n return false;\n }\n const routeAllowsScrollToTop = typeof to.meta.scrollToTop === \"function\" ? to.meta.scrollToTop(to, from) : to.meta.scrollToTop;\n if (routeAllowsScrollToTop === false) {\n return false;\n }\n if (from === START_LOCATION) {\n return _calculatePosition(to, from, savedPosition, hashScrollBehaviour);\n }\n return new Promise((resolve) => {\n const doScroll = () => {\n requestAnimationFrame(() => resolve(_calculatePosition(to, from, savedPosition, hashScrollBehaviour)));\n };\n nuxtApp.hooks.hookOnce(\"page:loading:end\", () => {\n const transitionPromise = nuxtApp[\"~transitionPromise\"];\n if (transitionPromise) {\n transitionPromise.then(doScroll);\n } else {\n doScroll();\n }\n });\n });\n }\n};\nfunction _getHashElementScrollMarginTop(selector) {\n try {\n const elem = document.querySelector(selector);\n if (elem) {\n return (Number.parseFloat(getComputedStyle(elem).scrollMarginTop) || 0) + (Number.parseFloat(getComputedStyle(document.documentElement).scrollPaddingTop) || 0);\n }\n } catch {\n }\n return 0;\n}\nfunction _calculatePosition(to, from, savedPosition, defaultHashScrollBehaviour) {\n if (savedPosition) {\n return savedPosition;\n }\n if (to.hash) {\n return {\n el: to.hash,\n top: _getHashElementScrollMarginTop(to.hash),\n behavior: isChangingPage(to, from) ? defaultHashScrollBehaviour : \"instant\"\n };\n }\n return {\n left: 0,\n top: 0\n };\n}\n","import routerOptions0 from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/router.options.js\";\nconst configRouterOptions = {\n hashMode: false,\n scrollBehaviorType: \"auto\"\n}\nexport const hashMode = false\nexport default {\n...configRouterOptions,\n...routerOptions0,\n}","import { createError } from \"#app/composables/error\";\nimport { defineNuxtRouteMiddleware } from \"#app/composables/router\";\nexport default defineNuxtRouteMiddleware(async (to, from) => {\n if (!to.meta?.validate) {\n return;\n }\n const result = await Promise.resolve(to.meta.validate(to));\n if (result === true) {\n return;\n }\n const error = createError({\n fatal: import.meta.client,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n status: result && (result.status || result.statusCode) || 404,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n statusText: result && (result.statusText || result.statusMessage) || `Page Not Found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n });\n if (typeof window !== \"undefined\") {\n window.history.pushState({}, \"\", from.fullPath);\n }\n return error;\n});\n","import { hasProtocol } from \"ufo\";\nimport { defineNuxtRouteMiddleware } from \"../composables/router.js\";\nimport { getRouteRules } from \"../composables/manifest.js\";\nexport default defineNuxtRouteMiddleware((to) => {\n if (import.meta.server || import.meta.test) {\n return;\n }\n const rules = getRouteRules({ path: to.path });\n if (rules.redirect) {\n const path = rules.redirect.includes(\"#\") ? rules.redirect : rules.redirect + to.hash;\n if (hasProtocol(path, { acceptRelative: true })) {\n window.location.href = path;\n return false;\n }\n return path;\n }\n});\n","import validate from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/validate.js\";\nimport manifest_45route_45rule from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/middleware/route-rules.js\";\nexport const globalMiddleware = [\n validate,\n manifest_45route_45rule\n]\nexport const namedMiddleware = {}","import { defineAsyncComponent } from 'vue'\nexport const islandComponents = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})\nexport const pageIslandRoutes = import.meta.client ? Object.create(null) : Object.assign(Object.create(null), {\n\n})","import { isReadonly, reactive, shallowReactive, shallowRef } from \"vue\";\nimport { START_LOCATION, createMemoryHistory, createRouter, createWebHashHistory, createWebHistory } from \"vue-router\";\nimport { isSamePath, withoutBase } from \"ufo\";\nimport { toArray } from \"../utils.js\";\nimport { getRouteRules } from \"#app/composables/manifest\";\nimport { defineNuxtPlugin, useRuntimeConfig } from \"#app/nuxt\";\nimport { clearError, createError, isNuxtError, showError, useError } from \"#app/composables/error\";\nimport { navigateTo } from \"#app/composables/router\";\nimport _routes, { handleHotUpdate } from \"#build/routes\";\nimport routerOptions, { hashMode } from \"#build/router.options.mjs\";\nimport { globalMiddleware, namedMiddleware } from \"#build/middleware\";\nimport { pageIslandRoutes } from \"#build/components.islands.mjs\";\nfunction createCurrentLocation(base, location, renderedPath) {\n const { pathname, search, hash } = location;\n const hashPos = base.indexOf(\"#\");\n if (hashPos > -1) {\n const slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n let pathFromHash = hash.slice(slicePos);\n if (pathFromHash[0] !== \"/\") {\n pathFromHash = \"/\" + pathFromHash;\n }\n return withoutBase(pathFromHash, \"\");\n }\n const displayedPath = withoutBase(pathname, base);\n const path = !renderedPath || isSamePath(displayedPath, renderedPath) ? displayedPath : renderedPath;\n return path + (path.includes(\"?\") ? \"\" : search) + hash;\n}\nconst plugin = defineNuxtPlugin({\n name: \"nuxt:router\",\n enforce: \"pre\",\n async setup(nuxtApp) {\n let routerBase = useRuntimeConfig().app.baseURL;\n if (hashMode && !routerBase.includes(\"#\")) {\n routerBase += \"#\";\n }\n const history = routerOptions.history?.(routerBase) ?? (import.meta.client ? hashMode ? createWebHashHistory(routerBase) : createWebHistory(routerBase) : createMemoryHistory(routerBase));\n const routes = routerOptions.routes ? await routerOptions.routes(_routes) ?? _routes : _routes;\n let startPosition;\n const router = createRouter({\n ...routerOptions,\n scrollBehavior: (to, from, savedPosition) => {\n if (from === START_LOCATION) {\n startPosition = savedPosition;\n return;\n }\n if (routerOptions.scrollBehavior) {\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n if (\"scrollRestoration\" in window.history) {\n const unsub = router.beforeEach(() => {\n unsub();\n window.history.scrollRestoration = \"manual\";\n });\n }\n return routerOptions.scrollBehavior(to, START_LOCATION, startPosition || savedPosition);\n }\n },\n history,\n routes\n });\n if (import.meta.hot) {\n handleHotUpdate(router, routerOptions.routes ? routerOptions.routes : (routes2) => routes2);\n }\n if (import.meta.client && \"scrollRestoration\" in window.history) {\n window.history.scrollRestoration = \"auto\";\n }\n nuxtApp.vueApp.use(router);\n const previousRoute = shallowRef(router.currentRoute.value);\n router.afterEach((_to, from) => {\n previousRoute.value = from;\n });\n Object.defineProperty(nuxtApp.vueApp.config.globalProperties, \"previousRoute\", {\n get: () => previousRoute.value\n });\n const initialURL = import.meta.server ? nuxtApp.ssrContext.url : createCurrentLocation(routerBase, window.location, nuxtApp.payload.path);\n const _route = shallowRef(router.currentRoute.value);\n const syncCurrentRoute = () => {\n _route.value = router.currentRoute.value;\n };\n router.afterEach((to, from) => {\n const lastTo = to.matched.at(-1)?.components?.default;\n const lastFrom = from.matched.at(-1)?.components?.default;\n if (lastTo === lastFrom) {\n syncCurrentRoute();\n return;\n }\n if (to.matched.length < from.matched.length && to.matched.every((m, i) => m.components?.default === from.matched[i]?.components?.default)) {\n syncCurrentRoute();\n }\n });\n const route = { sync: syncCurrentRoute };\n for (const key in _route.value) {\n Object.defineProperty(route, key, {\n get: () => _route.value[key],\n enumerable: true\n });\n }\n nuxtApp._route = shallowReactive(route);\n nuxtApp._middleware ||= {\n global: [],\n named: {}\n };\n const error = useError();\n const isServerPage = import.meta.server && nuxtApp.ssrContext?.islandContext?.name?.startsWith(\"page_\");\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n router.afterEach(async (to, _from, failure) => {\n delete nuxtApp._processingMiddleware;\n if (import.meta.client && !nuxtApp.isHydrating && error.value) {\n await nuxtApp.runWithContext(clearError);\n }\n if (failure) {\n await nuxtApp.callHook(\"page:loading:end\");\n }\n if (import.meta.server && failure?.type === 4) {\n return;\n }\n if (import.meta.server && to.redirectedFrom && to.fullPath !== initialURL) {\n await nuxtApp.runWithContext(() => navigateTo(to.fullPath || \"/\"));\n }\n });\n }\n try {\n if (import.meta.server) {\n await router.push(initialURL);\n }\n await router.isReady();\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n const resolvedInitialRoute = import.meta.client && initialURL !== router.currentRoute.value.fullPath ? router.resolve(initialURL) : router.currentRoute.value;\n const hasDeferredRoute = import.meta.client && nuxtApp.isHydrating && nuxtApp.payload.prerenderedAt && nuxtApp.payload.path && initialURL !== nuxtApp.payload.path && isSamePath(router.currentRoute.value.path, nuxtApp.payload.path);\n syncCurrentRoute();\n if (import.meta.server && nuxtApp.ssrContext?.islandContext && !isServerPage) {\n return { provide: { router } };\n }\n const initialLayout = nuxtApp.payload.state._layout;\n router.beforeEach(async (to, from) => {\n await nuxtApp.callHook(\"page:loading:start\");\n to.meta = reactive(to.meta);\n if (nuxtApp.isHydrating && initialLayout && !isReadonly(to.meta.layout)) {\n to.meta.layout = initialLayout;\n }\n nuxtApp._processingMiddleware = true;\n if (import.meta.client || !nuxtApp.ssrContext?.islandContext || isServerPage) {\n const middlewareEntries = /* @__PURE__ */ new Set([...globalMiddleware, ...nuxtApp._middleware.global]);\n for (const component of to.matched) {\n const componentMiddleware = component.meta.middleware;\n if (!componentMiddleware) {\n continue;\n }\n for (const entry of toArray(componentMiddleware)) {\n middlewareEntries.add(entry);\n }\n }\n const routeRules = getRouteRules({ path: to.path });\n if (routeRules.appMiddleware) {\n for (const key in routeRules.appMiddleware) {\n if (routeRules.appMiddleware[key]) {\n middlewareEntries.add(key);\n } else {\n middlewareEntries.delete(key);\n }\n }\n }\n for (const entry of middlewareEntries) {\n const middleware = typeof entry === \"string\" ? nuxtApp._middleware.named[entry] || await namedMiddleware[entry]?.().then((r) => r.default || r) : entry;\n if (!middleware) {\n if (import.meta.dev) {\n throw new Error(`Unknown route middleware: '${entry}'. Valid middleware: ${Object.keys(namedMiddleware).map((mw) => `'${mw}'`).join(\", \")}.`);\n }\n throw new Error(`Unknown route middleware: '${entry}'.`);\n }\n try {\n if (import.meta.dev) {\n nuxtApp._processingMiddleware = middleware._path || (typeof entry === \"string\" ? entry : true);\n }\n const result = await nuxtApp.runWithContext(() => middleware(to, from));\n if (import.meta.server || !nuxtApp.payload.serverRendered && nuxtApp.isHydrating) {\n if (result === false || result instanceof Error) {\n const error2 = result || createError({\n status: 404,\n statusText: `Page Not Found: ${initialURL}`\n });\n await nuxtApp.runWithContext(() => showError(error2));\n return false;\n }\n }\n if (result === true) {\n continue;\n }\n if (result === false) {\n return result;\n }\n if (result) {\n if (isNuxtError(result) && result.fatal) {\n await nuxtApp.runWithContext(() => showError(result));\n }\n return result;\n }\n } catch (err) {\n const error2 = createError(err);\n if (error2.fatal) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n return error2;\n }\n }\n }\n });\n if (isServerPage) {\n router.beforeResolve((to) => {\n const expected = pageIslandRoutes[nuxtApp.ssrContext.islandContext.name];\n const actual = to.matched.find((m) => m.components?.default?.__nuxt_island)?.components?.default;\n if (!expected || expected !== actual?.__nuxt_island) {\n nuxtApp.ssrContext[\"~renderResponse\"] = {\n statusCode: 400,\n statusMessage: \"Invalid island request path\"\n };\n return false;\n }\n });\n }\n router.onError(async () => {\n delete nuxtApp._processingMiddleware;\n await nuxtApp.callHook(\"page:loading:end\");\n });\n router.afterEach((to) => {\n if (to.matched.length === 0 && !error.value) {\n return nuxtApp.runWithContext(() => showError(createError({\n status: 404,\n fatal: false,\n statusText: `Page not found: ${to.fullPath}`,\n data: {\n path: to.fullPath\n }\n })));\n }\n });\n nuxtApp.hooks.hookOnce(\"app:created\", async () => {\n try {\n if (\"name\" in resolvedInitialRoute) {\n resolvedInitialRoute.name = void 0;\n }\n if (hasDeferredRoute) {\n const payloadRoute = router.resolve(nuxtApp.payload.path);\n if (\"name\" in payloadRoute) {\n payloadRoute.name = void 0;\n }\n await router.replace({ ...payloadRoute, force: true });\n nuxtApp.hooks.hookOnce(\"app:suspense:resolve\", async () => {\n await router.replace({ ...resolvedInitialRoute, force: true });\n });\n } else {\n await router.replace({\n ...resolvedInitialRoute,\n force: true\n });\n }\n router.options.scrollBehavior = routerOptions.scrollBehavior;\n } catch (error2) {\n await nuxtApp.runWithContext(() => showError(error2));\n }\n });\n return { provide: { router } };\n }\n});\nexport default plugin;\n","import { isReactive, isRef, isShallow, toRaw } from \"vue\";\nimport { definePayloadReducer } from \"../composables/payload.js\";\nimport { isNuxtError } from \"../composables/error.js\";\nimport { defineNuxtPlugin } from \"../nuxt.js\";\nimport { componentIslands } from \"#build/nuxt.config.mjs\";\nimport { isValidIslandKey } from \"./utils.js\";\nconst reducers = [\n [\"NuxtError\", (data) => isNuxtError(data) && data.toJSON()],\n [\"EmptyShallowRef\", (data) => isRef(data) && isShallow(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"EmptyRef\", (data) => isRef(data) && !data.value && (typeof data.value === \"bigint\" ? \"0n\" : JSON.stringify(data.value) || \"_\")],\n [\"ShallowRef\", (data) => isRef(data) && isShallow(data) && data.value],\n [\"ShallowReactive\", (data) => isReactive(data) && isShallow(data) && toRaw(data)],\n [\"Ref\", (data) => isRef(data) && data.value],\n [\"Reactive\", (data) => isReactive(data) && toRaw(data)]\n];\nif (componentIslands) {\n reducers.push([\"Island\", (data) => data && data?.__nuxt_island && isValidIslandKey(data.__nuxt_island.key) && data.__nuxt_island]);\n}\nexport default defineNuxtPlugin({\n name: \"nuxt:revive-payload:server\",\n setup() {\n for (const [reducer, fn] of reducers) {\n definePayloadReducer(reducer, fn);\n }\n }\n});\n","import { createCommentVNode, createElementBlock, defineComponent } from \"vue\";\nimport { clientNodePlaceholder } from \"#build/nuxt.config.mjs\";\nexport default defineComponent({\n name: \"ServerPlaceholder\",\n render() {\n return clientNodePlaceholder ? createCommentVNode(\"placeholder\") : createElementBlock(\"div\");\n }\n});\n","import { cloneVNode, createCommentVNode, createElementBlock, defineComponent, getCurrentInstance, h, onMounted, provide, shallowRef } from \"vue\";\nimport { isPromise } from \"@vue/shared\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport ServerPlaceholder from \"./server-placeholder.js\";\nimport { elToStaticVNode } from \"./utils.js\";\nimport { clientNodePlaceholder } from \"#build/nuxt.config.mjs\";\nexport const clientOnlySymbol = Symbol.for(\"nuxt:client-only\");\nconst STATIC_DIV = \"
\";\nfunction isPlaceholderComment(el) {\n return el.nodeName === \"#comment\" && el.nodeValue === \"placeholder\";\n}\nfunction createPlaceholder(el) {\n if (el && !isPlaceholderComment(el)) {\n return elToStaticVNode(el, STATIC_DIV);\n }\n return clientNodePlaceholder ? createCommentVNode(\"placeholder\") : h(\"div\");\n}\nexport default defineComponent({\n name: \"ClientOnly\",\n inheritAttrs: false,\n props: [\"fallback\", \"placeholder\", \"placeholderTag\", \"fallbackTag\"],\n ...import.meta.dev && {\n slots: Object\n },\n setup(props, { slots, attrs }) {\n const mounted = shallowRef(false);\n onMounted(() => {\n mounted.value = true;\n });\n if (import.meta.dev) {\n const nuxtApp = useNuxtApp();\n nuxtApp._isNuxtPageUsed = true;\n nuxtApp._isNuxtLayoutUsed = true;\n }\n const vm = getCurrentInstance();\n if (vm) {\n vm._nuxtClientOnly = true;\n }\n provide(clientOnlySymbol, true);\n return () => {\n if (mounted.value) {\n const vnodes = slots.default?.();\n if (vnodes && vnodes.length === 1) {\n return [cloneVNode(vnodes[0], attrs)];\n }\n return vnodes;\n }\n const slot = slots.fallback || slots.placeholder;\n if (slot) {\n return h(slot);\n }\n const fallbackStr = props.fallback || props.placeholder || \"\";\n const fallbackTag = props.fallbackTag || props.placeholderTag || \"span\";\n return createElementBlock(fallbackTag, attrs, fallbackStr);\n };\n }\n});\nconst cache = /* @__PURE__ */ new WeakMap();\n// @__NO_SIDE_EFFECTS__\nexport function createClientOnly(component) {\n if (import.meta.server) {\n return ServerPlaceholder;\n }\n if (cache.has(component)) {\n return cache.get(component);\n }\n const clone = { ...component };\n if (clone.render) {\n clone.render = (ctx, cache2, $props, $setup, $data, $options) => {\n if ($setup.mounted$ ?? ctx.mounted$) {\n const res = component.render?.bind(ctx)(ctx, cache2, $props, $setup, $data, $options);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return createPlaceholder(ctx._.vnode.el);\n };\n } else {\n const placeholderTemplate = clientNodePlaceholder ? \"\" : \"
\";\n clone.template &&= `\n \n \n `;\n }\n clone.setup = (props, ctx) => {\n const nuxtApp = useNuxtApp();\n const mounted$ = shallowRef(nuxtApp.isHydrating === false);\n const instance = getCurrentInstance();\n if (nuxtApp.isHydrating) {\n const attrs = { ...instance.attrs };\n const directives = extractDirectives(instance);\n for (const key in attrs) {\n delete instance.attrs[key];\n }\n onMounted(() => {\n Object.assign(instance.attrs, attrs);\n instance.vnode.dirs = directives;\n });\n }\n onMounted(() => {\n mounted$.value = true;\n });\n const setupState = component.setup?.(props, ctx) || {};\n if (isPromise(setupState)) {\n return Promise.resolve(setupState).then((setupState2) => {\n if (typeof setupState2 !== \"function\") {\n setupState2 ||= {};\n setupState2.mounted$ = mounted$;\n return setupState2;\n }\n return (...args) => {\n if (mounted$.value || !nuxtApp.isHydrating) {\n const res = setupState2(...args);\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res) : h(res);\n }\n return createPlaceholder(instance?.vnode.el);\n };\n });\n } else {\n if (typeof setupState === \"function\") {\n return (...args) => {\n if (mounted$.value) {\n const res = setupState(...args);\n const attrs = clone.inheritAttrs !== false ? ctx.attrs : void 0;\n return res.children === null || typeof res.children === \"string\" ? cloneVNode(res, attrs) : h(res, attrs);\n }\n return createPlaceholder(instance?.vnode.el);\n };\n }\n return Object.assign(setupState, { mounted$ });\n }\n };\n cache.set(component, clone);\n return clone;\n}\nfunction extractDirectives(instance) {\n if (!instance || !instance.vnode.dirs) {\n return null;\n }\n const directives = instance.vnode.dirs;\n instance.vnode.dirs = null;\n return directives;\n}\n","import { kebabCase } from \"scule\";\nexport function defineKeyedFunctionFactory(factory) {\n const placeholder = function() {\n if (import.meta.dev) {\n throw new Error(\n `[nuxt:compiler] \\`${factory.name}\\` is a compiler macro that is only usable inside the directories scanned by the Nuxt compiler as an exported function and imported statically. Learn more: \\`https://nuxt.com/docs/4.x/api/composables/${kebabCase(factory.name)}\\``\n );\n }\n throw new Error(`[nuxt] \\`${factory.name}\\` is a compiler macro and cannot be called at runtime.`);\n };\n return Object.defineProperty(placeholder, \"__nuxt_factory\", {\n enumerable: false,\n get: () => factory.factory\n });\n}\n","import { computed, getCurrentInstance, getCurrentScope, inject, isRef, isShallow, nextTick, onBeforeMount, onScopeDispose, onServerPrefetch, onUnmounted, queuePostFlushCb, ref, shallowRef, toRef, toValue, unref, watch } from \"vue\";\nimport { debounce } from \"perfect-debounce\";\nimport { hash } from \"ohash\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { getUserCaller, toArray } from \"../utils.js\";\nimport { clientOnlySymbol } from \"../components/client-only.js\";\nimport { createError } from \"./error.js\";\nimport { onNuxtReady } from \"./ready.js\";\nimport { defineKeyedFunctionFactory } from \"../../compiler/runtime\";\nimport { asyncDataDefaults, granularCachedData, pendingWhenIdle, purgeCachedData } from \"#build/nuxt.config.mjs\";\nexport const createUseAsyncData = defineKeyedFunctionFactory({\n name: \"createUseAsyncData\",\n factory(options = {}) {\n function useAsyncData2(...args) {\n const autoKey = typeof args[args.length - 1] === \"string\" ? args.pop() : void 0;\n if (_isAutoKeyNeeded(args[0], args[1])) {\n args.unshift(autoKey);\n }\n let [_key, _handler, opts = {}] = args;\n let keyChanging = false;\n const isKeyReactive = isRef(_key) || typeof _key === \"function\";\n const key = isKeyReactive ? computed(() => toValue(_key)) : { value: _key };\n if (!key.value || typeof key.value !== \"string\") {\n throw new TypeError(\"[nuxt] [useAsyncData] key must be a non-empty string.\");\n }\n if (typeof _handler !== \"function\") {\n throw new TypeError(\"[nuxt] [useAsyncData] handler must be a function.\");\n }\n const shouldFactoryOptionsOverride = typeof options === \"function\";\n const nuxtApp = useNuxtApp();\n const factoryOptions = shouldFactoryOptionsOverride ? options(opts) : options;\n if (!shouldFactoryOptionsOverride) {\n for (const key2 in factoryOptions) {\n if (factoryOptions[key2] === void 0) {\n continue;\n }\n if (opts[key2] !== void 0) {\n continue;\n }\n opts[key2] = factoryOptions[key2];\n }\n }\n opts.server ??= true;\n opts.default ??= getDefault;\n opts.getCachedData ??= getDefaultCachedData;\n opts.lazy ??= false;\n opts.immediate ??= true;\n opts.deep ??= asyncDataDefaults.deep;\n opts.dedupe ??= \"cancel\";\n if (shouldFactoryOptionsOverride) {\n for (const key2 in factoryOptions) {\n if (factoryOptions[key2] === void 0) {\n continue;\n }\n opts[key2] = factoryOptions[key2];\n }\n }\n const functionName = import.meta.dev ? factoryOptions._functionName || \"useAsyncData\" : \"\";\n const currentData = nuxtApp._asyncData[key.value];\n if (import.meta.dev && currentData) {\n const warnings = [];\n const values = createHash(_handler, opts);\n if (values.handler !== currentData._hash?.handler) {\n warnings.push(`different handler`);\n }\n for (const opt of [\"transform\", \"pick\", \"getCachedData\"]) {\n if (values[opt] !== currentData._hash[opt]) {\n warnings.push(`different \\`${opt}\\` option`);\n }\n }\n if (currentData._default.toString() !== opts.default.toString()) {\n warnings.push(`different \\`default\\` value`);\n }\n if (opts.deep && isShallow(currentData.data)) {\n warnings.push(`mismatching \\`deep\\` option`);\n }\n if (warnings.length) {\n const caller = getUserCaller();\n const explanation = caller ? ` (used at ${caller.source}:${caller.line}:${caller.column})` : \"\";\n console.warn(`[nuxt] [${functionName}] Incompatible options detected for \"${key.value}\"${explanation}:\n${warnings.map((w) => `- ${w}`).join(\"\\n\")}\nYou can use a different key or move the call to a composable to ensure the options are shared across calls.`);\n }\n }\n function createInitialFetch() {\n const initialFetchOptions = { cause: \"initial\", dedupe: opts.dedupe };\n const existing = nuxtApp._asyncData[key.value];\n if (!existing?._init) {\n initialFetchOptions.cachedData = opts.getCachedData(key.value, nuxtApp, { cause: \"initial\" });\n nuxtApp._asyncData[key.value] = buildAsyncData(nuxtApp, key.value, _handler, opts, initialFetchOptions.cachedData);\n nuxtApp._asyncData[key.value]._initialCachedData = initialFetchOptions.cachedData;\n } else if (nuxtApp._asyncDataPromises[key.value]) {\n initialFetchOptions.cachedData = existing._initialCachedData;\n }\n return () => nuxtApp._asyncData[key.value].execute(initialFetchOptions);\n }\n const initialFetch = createInitialFetch();\n const asyncData = nuxtApp._asyncData[key.value];\n asyncData._deps++;\n const fetchOnServer = opts.server !== false && nuxtApp.payload.serverRendered;\n if (import.meta.server && fetchOnServer && opts.immediate) {\n const promise = initialFetch();\n if (getCurrentInstance()) {\n onServerPrefetch(() => promise);\n } else {\n nuxtApp.hook(\"app:created\", async () => {\n await promise;\n });\n }\n }\n if (import.meta.client) {\n let unregister = function(key2) {\n const data = nuxtApp._asyncData[key2];\n if (data?._deps) {\n data._deps--;\n if (data._deps === 0) {\n data?._off();\n }\n }\n };\n const instance = getCurrentInstance();\n if (instance && fetchOnServer && opts.immediate && !instance.sp) {\n instance.sp = [];\n }\n if (import.meta.dev && !nuxtApp.isHydrating && !nuxtApp._processingMiddleware && (!instance || instance?.isMounted)) {\n console.warn(`[nuxt] [${functionName}] Component is already mounted, please use $fetch instead. See https://nuxt.com/docs/4.x/getting-started/data-fetching`);\n }\n if (instance && !instance._nuxtOnBeforeMountCbs) {\n instance._nuxtOnBeforeMountCbs = [];\n const cbs = instance._nuxtOnBeforeMountCbs;\n onBeforeMount(() => {\n cbs.forEach((cb) => {\n cb();\n });\n cbs.splice(0, cbs.length);\n });\n onUnmounted(() => cbs.splice(0, cbs.length));\n }\n const isWithinClientOnly = instance && (instance._nuxtClientOnly || inject(clientOnlySymbol, false));\n if (fetchOnServer && nuxtApp.isHydrating && (asyncData.error.value || asyncData.data.value !== void 0)) {\n if (pendingWhenIdle) {\n asyncData.pending.value = false;\n }\n asyncData.status.value = asyncData.error.value ? \"error\" : \"success\";\n } else if (instance && (!isWithinClientOnly && nuxtApp.payload.serverRendered && nuxtApp.isHydrating || opts.lazy) && opts.immediate) {\n instance._nuxtOnBeforeMountCbs.push(initialFetch);\n } else if (opts.immediate && asyncData.status.value !== \"success\") {\n initialFetch();\n }\n const hasScope = getCurrentScope();\n const noop = () => {\n };\n const unsubKeyWatcher = isKeyReactive ? watch(key, (newKey, oldKey) => {\n if ((newKey || oldKey) && newKey !== oldKey) {\n keyChanging = true;\n const hadData = nuxtApp._asyncData[oldKey]?.data.value !== void 0;\n const wasRunning = nuxtApp._asyncDataPromises[oldKey] !== void 0;\n const initialFetchOptions = { cause: \"initial\", dedupe: opts.dedupe };\n if (!nuxtApp._asyncData[newKey]?._init) {\n let initialValue;\n if (oldKey && hadData) {\n initialValue = nuxtApp._asyncData[oldKey].data.value;\n } else {\n initialValue = opts.getCachedData(newKey, nuxtApp, { cause: \"initial\" });\n initialFetchOptions.cachedData = initialValue;\n }\n nuxtApp._asyncData[newKey] = buildAsyncData(nuxtApp, newKey, _handler, opts, initialValue);\n }\n nuxtApp._asyncData[newKey]._deps++;\n if (oldKey) {\n unregister(oldKey);\n }\n const keyTriggersExecute = opts._keyTriggersExecute !== false;\n if (keyTriggersExecute && (opts.immediate || hadData || wasRunning)) {\n nuxtApp._asyncData[newKey].execute(initialFetchOptions);\n }\n queuePostFlushCb(() => {\n keyChanging = false;\n });\n }\n }, { flush: \"sync\" }) : noop;\n const unsubParamsWatcher = opts.watch ? watch(opts.watch, () => {\n if (keyChanging) {\n return;\n }\n if (nuxtApp._asyncData[key.value]?._execute.isPending()) {\n queuePostFlushCb(() => {\n nuxtApp._asyncData[key.value]?._execute.flush();\n });\n }\n nuxtApp._asyncData[key.value]?._execute({ cause: \"watch\", dedupe: opts.dedupe });\n }) : noop;\n if (hasScope) {\n onScopeDispose(() => {\n unsubKeyWatcher();\n unsubParamsWatcher();\n unregister(key.value);\n });\n }\n }\n const asyncReturn = {\n data: writableComputedRef(() => nuxtApp._asyncData[key.value]?.data),\n pending: writableComputedRef(() => nuxtApp._asyncData[key.value]?.pending),\n status: writableComputedRef(() => nuxtApp._asyncData[key.value]?.status),\n error: writableComputedRef(() => nuxtApp._asyncData[key.value]?.error),\n refresh: (...args2) => {\n if (!nuxtApp._asyncData[key.value]?._init) {\n const initialFetch2 = createInitialFetch();\n return initialFetch2();\n }\n return nuxtApp._asyncData[key.value].execute(...args2);\n },\n execute: (...args2) => asyncReturn.refresh(...args2),\n clear: () => {\n const entry = nuxtApp._asyncData[key.value];\n if (entry?._abortController) {\n try {\n entry._abortController.abort(new DOMException(\"AsyncData aborted by user.\", \"AbortError\"));\n } finally {\n entry._abortController = void 0;\n }\n }\n clearNuxtDataByKey(nuxtApp, key.value);\n }\n };\n const asyncDataPromise = Promise.resolve(nuxtApp._asyncDataPromises[key.value]).then(() => asyncReturn);\n Object.assign(asyncDataPromise, asyncReturn);\n Object.defineProperties(asyncDataPromise, {\n then: { enumerable: true, value: asyncDataPromise.then.bind(asyncDataPromise) },\n catch: { enumerable: true, value: asyncDataPromise.catch.bind(asyncDataPromise) },\n finally: { enumerable: true, value: asyncDataPromise.finally.bind(asyncDataPromise) }\n });\n return asyncDataPromise;\n }\n return useAsyncData2;\n }\n});\nexport const useAsyncData = createUseAsyncData.__nuxt_factory();\nexport const useLazyAsyncData = createUseAsyncData.__nuxt_factory({\n lazy: true,\n // @ts-expect-error private property\n _functionName: \"useLazyAsyncData\"\n});\nfunction writableComputedRef(getter) {\n return computed({\n get() {\n return getter()?.value;\n },\n set(value) {\n const ref2 = getter();\n if (ref2) {\n ref2.value = value;\n }\n }\n });\n}\nfunction _isAutoKeyNeeded(keyOrFetcher, fetcher) {\n if (typeof keyOrFetcher === \"string\") {\n return false;\n }\n if (typeof keyOrFetcher === \"object\" && keyOrFetcher !== null) {\n return false;\n }\n if (typeof keyOrFetcher === \"function\" && typeof fetcher === \"function\") {\n return false;\n }\n return true;\n}\nexport function useNuxtData(key) {\n const nuxtApp = useNuxtApp();\n if (!(key in nuxtApp.payload.data)) {\n nuxtApp.payload.data[key] = void 0;\n }\n if (nuxtApp._asyncData[key]) {\n const data = nuxtApp._asyncData[key];\n data._deps++;\n if (getCurrentScope()) {\n onScopeDispose(() => {\n data._deps--;\n if (data._deps === 0) {\n data?._off();\n }\n });\n }\n }\n return {\n data: computed({\n get() {\n return nuxtApp._asyncData[key]?.data.value ?? nuxtApp.payload.data[key];\n },\n set(value) {\n if (nuxtApp._asyncData[key]) {\n nuxtApp._asyncData[key].data.value = value;\n } else {\n nuxtApp.payload.data[key] = value;\n }\n }\n })\n };\n}\nexport async function refreshNuxtData(keys) {\n if (import.meta.server) {\n return Promise.resolve();\n }\n await new Promise((resolve) => onNuxtReady(resolve));\n const _keys = keys ? toArray(keys) : void 0;\n await useNuxtApp().hooks.callHookParallel(\"app:data:refresh\", _keys);\n}\nexport function clearNuxtData(keys) {\n const nuxtApp = useNuxtApp();\n const _allKeys = Object.keys(nuxtApp.payload.data);\n const _keys = !keys ? _allKeys : typeof keys === \"function\" ? _allKeys.filter(keys) : toArray(keys);\n for (const key of _keys) {\n clearNuxtDataByKey(nuxtApp, key);\n }\n}\nfunction clearNuxtDataByKey(nuxtApp, key) {\n if (key in nuxtApp.payload.data) {\n nuxtApp.payload.data[key] = void 0;\n }\n if (key in nuxtApp.payload._errors) {\n nuxtApp.payload._errors[key] = void 0;\n }\n if (nuxtApp._asyncData[key]) {\n nuxtApp._asyncData[key].data.value = unref(nuxtApp._asyncData[key]._default());\n nuxtApp._asyncData[key].error.value = void 0;\n if (pendingWhenIdle) {\n nuxtApp._asyncData[key].pending.value = false;\n }\n nuxtApp._asyncData[key].status.value = \"idle\";\n nuxtApp._asyncData[key]._initialCachedData = void 0;\n }\n if (key in nuxtApp._asyncDataPromises) {\n nuxtApp._asyncDataPromises[key] = void 0;\n }\n}\nfunction pick(obj, keys) {\n const newObj = {};\n for (const key of keys) {\n newObj[key] = obj[key];\n }\n return newObj;\n}\nfunction buildAsyncData(nuxtApp, key, _handler, options, initialCachedData) {\n nuxtApp.payload._errors[key] ??= void 0;\n const hasCustomGetCachedData = options.getCachedData !== getDefaultCachedData;\n const handler = import.meta.client || !import.meta.prerender || !nuxtApp.ssrContext?.[\"~sharedPrerenderCache\"] ? _handler : (nuxtApp2, options2) => {\n const value = nuxtApp2.ssrContext[\"~sharedPrerenderCache\"].get(key);\n if (value) {\n return value;\n }\n const promise = Promise.resolve().then(() => nuxtApp2.runWithContext(() => _handler(nuxtApp2, options2)));\n nuxtApp2.ssrContext[\"~sharedPrerenderCache\"].set(key, promise);\n return promise;\n };\n const _ref = options.deep ? ref : shallowRef;\n const hasCachedData = initialCachedData !== void 0;\n const unsubRefreshAsyncData = nuxtApp.hook(\"app:data:refresh\", async (keys) => {\n if (!keys || keys.includes(key)) {\n await asyncData.execute({ cause: \"refresh:hook\" });\n }\n });\n const asyncData = {\n data: _ref(hasCachedData ? initialCachedData : options.default()),\n pending: pendingWhenIdle ? shallowRef(!hasCachedData) : computed(() => asyncData.status.value === \"pending\"),\n error: toRef(nuxtApp.payload._errors, key),\n status: shallowRef(\"idle\"),\n execute: (...args) => {\n const [_opts, newValue = void 0] = args;\n const opts = _opts && newValue === void 0 && typeof _opts === \"object\" ? _opts : {};\n if (import.meta.dev && newValue !== void 0 && (!_opts || typeof _opts !== \"object\")) {\n console.warn(`[nuxt] [${options._functionName}] Do not pass \\`execute\\` directly to \\`watch\\`. Instead, use an inline function, such as \\`watch(q, () => execute())\\`.`);\n }\n if (nuxtApp._asyncDataPromises[key]) {\n if ((opts.dedupe ?? options.dedupe) === \"defer\") {\n return nuxtApp._asyncDataPromises[key];\n }\n }\n if (granularCachedData || opts.cause === \"initial\" || nuxtApp.isHydrating) {\n const cachedData = \"cachedData\" in opts ? opts.cachedData : options.getCachedData(key, nuxtApp, { cause: opts.cause ?? \"refresh:manual\" });\n if (cachedData !== void 0) {\n nuxtApp.payload.data[key] = asyncData.data.value = cachedData;\n asyncData.error.value = void 0;\n asyncData.status.value = \"success\";\n return Promise.resolve(cachedData);\n }\n }\n if (pendingWhenIdle) {\n asyncData.pending.value = true;\n }\n if (asyncData._abortController) {\n asyncData._abortController.abort(new DOMException(\"AsyncData request cancelled by deduplication\", \"AbortError\"));\n }\n asyncData._abortController = new AbortController();\n asyncData.status.value = \"pending\";\n const cleanupController = new AbortController();\n const promise = new Promise(\n (resolve, reject) => {\n try {\n const timeout = opts.timeout ?? options.timeout;\n const mergedSignal = mergeAbortSignals([asyncData._abortController?.signal, opts?.signal], cleanupController.signal, timeout);\n if (mergedSignal.aborted) {\n const reason = mergedSignal.reason;\n reject(reason instanceof Error ? reason : new DOMException(String(reason ?? \"Aborted\"), \"AbortError\"));\n return;\n }\n mergedSignal.addEventListener(\"abort\", () => {\n const reason = mergedSignal.reason;\n reject(reason instanceof Error ? reason : new DOMException(String(reason ?? \"Aborted\"), \"AbortError\"));\n }, { once: true, signal: cleanupController.signal });\n return Promise.resolve(handler(nuxtApp, { signal: mergedSignal })).then(resolve, reject);\n } catch (err) {\n reject(err);\n }\n }\n ).then(async (_result) => {\n if (nuxtApp._asyncDataPromises[key] !== promise) {\n return;\n }\n let result = _result;\n if (options.transform) {\n result = await options.transform(_result);\n }\n if (options.pick) {\n result = pick(result, options.pick);\n }\n if (import.meta.dev && import.meta.server && typeof result === \"undefined\") {\n const caller = getUserCaller();\n const explanation = caller ? ` (used at ${caller.source}:${caller.line}:${caller.column})` : \"\";\n console.warn(`[nuxt] \\`${options._functionName || \"useAsyncData\"}${explanation}\\` must return a value (it should not be \\`undefined\\`) or the request may be duplicated on the client side.`);\n }\n nuxtApp.payload.data[key] = result;\n asyncData.data.value = result;\n asyncData.error.value = void 0;\n asyncData.status.value = \"success\";\n }).catch((error) => {\n if (nuxtApp._asyncDataPromises[key] !== promise) {\n return nuxtApp._asyncDataPromises[key];\n }\n if (asyncData._abortController?.signal.aborted) {\n return nuxtApp._asyncDataPromises[key];\n }\n if (typeof DOMException !== \"undefined\" && error instanceof DOMException && error.name === \"AbortError\") {\n asyncData.status.value = \"idle\";\n return nuxtApp._asyncDataPromises[key];\n }\n asyncData.error.value = createError(error);\n asyncData.data.value = unref(options.default());\n asyncData.status.value = \"error\";\n }).finally(() => {\n cleanupController.abort();\n if (nuxtApp._asyncDataPromises[key] === promise) {\n if (pendingWhenIdle) {\n asyncData.pending.value = false;\n }\n delete nuxtApp._asyncDataPromises[key];\n }\n });\n nuxtApp._asyncDataPromises[key] = promise;\n return nuxtApp._asyncDataPromises[key];\n },\n _execute: debounce((...args) => asyncData.execute(...args), 0, { leading: true }),\n _default: options.default,\n _deps: 0,\n _init: true,\n _hash: import.meta.dev ? createHash(_handler, options) : void 0,\n _off: () => {\n unsubRefreshAsyncData();\n if (nuxtApp._asyncData[key]?._init) {\n nuxtApp._asyncData[key]._init = false;\n }\n if (purgeCachedData && !hasCustomGetCachedData) {\n nextTick(() => {\n if (!nuxtApp._asyncData[key]?._init) {\n clearNuxtDataByKey(nuxtApp, key);\n asyncData.execute = () => Promise.resolve();\n }\n });\n }\n }\n };\n return asyncData;\n}\nconst getDefault = () => void 0;\nconst getDefaultCachedData = (key, nuxtApp, ctx) => {\n if (nuxtApp.isHydrating) {\n return nuxtApp.payload.data[key];\n }\n if (ctx.cause !== \"refresh:manual\" && ctx.cause !== \"refresh:hook\") {\n return nuxtApp.static.data[key];\n }\n};\nfunction createHash(_handler, options) {\n return {\n handler: hash(_handler),\n transform: options.transform ? hash(options.transform) : void 0,\n pick: options.pick ? hash(options.pick) : void 0,\n getCachedData: options.getCachedData ? hash(options.getCachedData) : void 0\n };\n}\nfunction mergeAbortSignals(signals, cleanupSignal, timeout) {\n const list = signals.filter((s) => !!s);\n if (typeof timeout === \"number\" && timeout >= 0) {\n const timeoutSignal = AbortSignal.timeout?.(timeout);\n if (timeoutSignal) {\n list.push(timeoutSignal);\n }\n }\n if (AbortSignal.any) {\n return AbortSignal.any(list);\n }\n const controller = new AbortController();\n for (const sig of list) {\n if (sig.aborted) {\n const reason = sig.reason ?? new DOMException(\"Aborted\", \"AbortError\");\n try {\n controller.abort(reason);\n } catch {\n controller.abort();\n }\n return controller.signal;\n }\n }\n const onAbort = () => {\n const abortedSignal = list.find((s) => s.aborted);\n const reason = abortedSignal?.reason ?? new DOMException(\"Aborted\", \"AbortError\");\n try {\n controller.abort(reason);\n } catch {\n controller.abort();\n }\n };\n for (const sig of list) {\n sig.addEventListener?.(\"abort\", onAbort, { once: true, signal: cleanupSignal });\n }\n return controller.signal;\n}\n","import { setResponseStatus as _setResponseStatus, appendHeader, getRequestHeader, getRequestHeaders, getResponseHeader, removeResponseHeader, setResponseHeader } from \"@nuxt/nitro-server/h3\";\nimport { computed, getCurrentInstance, ref } from \"vue\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { toArray } from \"../utils.js\";\nimport { useHead } from \"./head.js\";\nexport function useRequestEvent(nuxtApp) {\n if (import.meta.client) {\n return;\n }\n nuxtApp ||= useNuxtApp();\n return nuxtApp.ssrContext?.event;\n}\nexport function useRequestHeaders(include) {\n if (import.meta.client) {\n return {};\n }\n const event = useRequestEvent();\n const _headers = event ? getRequestHeaders(event) : {};\n if (!include || !event) {\n return _headers;\n }\n const headers = /* @__PURE__ */ Object.create(null);\n for (const _key of include) {\n const key = _key.toLowerCase();\n const header = _headers[key];\n if (header) {\n headers[key] = header;\n }\n }\n return headers;\n}\nexport function useRequestHeader(header) {\n if (import.meta.client) {\n return void 0;\n }\n const event = useRequestEvent();\n return event ? getRequestHeader(event, header) : void 0;\n}\nexport function useRequestFetch() {\n if (import.meta.client) {\n return globalThis.$fetch;\n }\n return useRequestEvent()?.$fetch || globalThis.$fetch;\n}\nexport function setResponseStatus(arg1, arg2, arg3) {\n if (import.meta.client) {\n return;\n }\n if (arg1 && typeof arg1 !== \"number\") {\n return _setResponseStatus(arg1, arg2, arg3);\n }\n const event = useRequestEvent();\n if (event) {\n return _setResponseStatus(event, arg1, arg2);\n }\n}\nexport function useResponseHeader(header) {\n if (import.meta.client) {\n if (import.meta.dev) {\n return computed({\n get: () => void 0,\n set: () => console.warn(\"[nuxt] Setting response headers is not supported in the browser.\")\n });\n }\n return ref();\n }\n const event = useRequestEvent();\n return computed({\n get() {\n return getResponseHeader(event, header);\n },\n set(newValue) {\n if (!newValue) {\n return removeResponseHeader(event, header);\n }\n return setResponseHeader(event, header, newValue);\n }\n });\n}\nexport function prerenderRoutes(path) {\n if (!import.meta.server || !import.meta.prerender) {\n return;\n }\n const paths = toArray(path);\n appendHeader(useRequestEvent(), \"x-nitro-prerender\", paths.map((p) => encodeURIComponent(p)).join(\", \"));\n}\nconst PREHYDRATE_ATTR_KEY = \"data-prehydrate-id\";\nexport function onPrehydrate(callback, key) {\n if (import.meta.client) {\n return;\n }\n if (typeof callback !== \"string\") {\n throw new TypeError(\"[nuxt] To transform a callback into a string, `onPrehydrate` must be processed by the Nuxt build pipeline. If it is called in a third-party library, make sure to add the library to `build.transpile`.\");\n }\n const vm = getCurrentInstance();\n if (vm && key) {\n vm.attrs[PREHYDRATE_ATTR_KEY] ||= \"\";\n key = \":\" + key + \":\";\n if (!vm.attrs[PREHYDRATE_ATTR_KEY].includes(key)) {\n vm.attrs[PREHYDRATE_ATTR_KEY] += key;\n }\n }\n const code = vm && key ? `document.querySelectorAll('[${PREHYDRATE_ATTR_KEY}*=${JSON.stringify(key)}]').forEach` + callback : callback + \"()\";\n useHead({\n script: [{\n key: vm && key ? key : void 0,\n tagPosition: \"bodyClose\",\n tagPriority: \"critical\",\n innerHTML: code\n }]\n });\n return vm && key ? vm.attrs[PREHYDRATE_ATTR_KEY] : void 0;\n}\n","import { computed, reactive, toValue, watch } from \"vue\";\nimport { hash } from \"ohash\";\nimport { isPlainObject } from \"@vue/shared\";\nimport { useRequestFetch } from \"./ssr.js\";\nimport { useAsyncData } from \"./asyncData.js\";\nimport { defineKeyedFunctionFactory } from \"../../compiler/runtime\";\nimport { alwaysRunFetchOnKeyChange, fetchDefaults } from \"#build/nuxt.config.mjs\";\nfunction generateOptionSegments(opts) {\n const segments = [\n toValue(opts.method)?.toUpperCase() || \"GET\",\n toValue(opts.baseURL)\n ];\n for (const _obj of [opts.query || opts.params]) {\n const obj = toValue(_obj);\n if (!obj) {\n continue;\n }\n const unwrapped = {};\n for (const [key, value] of Object.entries(obj)) {\n unwrapped[toValue(key)] = toValue(value);\n }\n segments.push(unwrapped);\n }\n if (opts.body) {\n const value = toValue(opts.body);\n if (!value) {\n segments.push(hash(value));\n } else if (value instanceof ArrayBuffer) {\n segments.push(hash(Object.fromEntries([...new Uint8Array(value).entries()].map(([k, v]) => [k, v.toString()]))));\n } else if (value instanceof FormData) {\n const entries = [];\n for (const entry of value.entries()) {\n const [key, val] = entry;\n entries.push([key, val instanceof File ? `${val.name}:${val.size}:${val.lastModified}` : val]);\n }\n segments.push(hash(entries));\n } else if (isPlainObject(value)) {\n segments.push(hash(reactive(value)));\n } else {\n try {\n segments.push(hash(value));\n } catch {\n console.warn(\"[useFetch] Failed to hash body\", value);\n }\n }\n }\n return segments;\n}\nexport const createUseFetch = defineKeyedFunctionFactory({\n name: \"createUseFetch\",\n factory(options = {}) {\n function useFetch2(request, arg1, arg2) {\n const [opts = {}, autoKey] = typeof arg1 === \"string\" ? [{}, arg1] : [arg1, arg2];\n const factoryOptions = typeof options === \"function\" ? options(opts) : options;\n const {\n server,\n lazy,\n default: defaultFn,\n transform,\n pick,\n watch: watchSources,\n immediate,\n getCachedData,\n deep,\n dedupe,\n timeout,\n ...fetchOptions\n } = {\n ...typeof options === \"function\" ? {} : factoryOptions,\n ...opts,\n ...typeof options === \"function\" ? factoryOptions : {}\n };\n const _request = computed(() => toValue(request));\n const key = computed(() => toValue(fetchOptions.key) || \"$f\" + hash([autoKey, typeof _request.value === \"string\" ? _request.value : \"\", ...generateOptionSegments(fetchOptions)]));\n if (!fetchOptions.baseURL && typeof _request.value === \"string\" && (_request.value[0] === \"/\" && _request.value[1] === \"/\")) {\n throw new Error('[nuxt] [useFetch] the request URL must not start with \"//\".');\n }\n const _fetchOptions = reactive({\n ...fetchDefaults,\n ...fetchOptions,\n cache: typeof fetchOptions.cache === \"boolean\" ? void 0 : fetchOptions.cache\n });\n const _asyncDataOptions = {\n server,\n lazy,\n default: defaultFn,\n transform,\n pick,\n immediate,\n getCachedData,\n deep,\n dedupe,\n timeout,\n watch: watchSources === false ? [] : [...watchSources || [], _fetchOptions]\n };\n if (import.meta.dev) {\n _asyncDataOptions._functionName ||= factoryOptions._functionName || \"useFetch\";\n }\n if (watchSources === false) {\n ;\n _asyncDataOptions._keyTriggersExecute = false;\n }\n if (alwaysRunFetchOnKeyChange && !immediate) {\n let setImmediate = function() {\n _asyncDataOptions.immediate = true;\n };\n watch(key, setImmediate, { flush: \"sync\", once: true });\n watch([...watchSources || [], _fetchOptions], setImmediate, { flush: \"sync\", once: true });\n }\n const asyncData = useAsyncData(key, (_, { signal }) => {\n let _$fetch = fetchOptions.$fetch || globalThis.$fetch;\n if (import.meta.server && !fetchOptions.$fetch) {\n const isLocalFetch = typeof _request.value === \"string\" && _request.value[0] === \"/\" && (!toValue(fetchOptions.baseURL) || toValue(fetchOptions.baseURL)[0] === \"/\");\n if (isLocalFetch) {\n _$fetch = useRequestFetch();\n }\n }\n return _$fetch(_request.value, { signal, ..._fetchOptions });\n }, _asyncDataOptions);\n return asyncData;\n }\n return useFetch2;\n }\n});\nexport const useFetch = createUseFetch.__nuxt_factory();\nexport const useLazyFetch = createUseFetch.__nuxt_factory({\n lazy: true,\n // @ts-expect-error private property\n _functionName: \"useLazyFetch\"\n});\n","import { createPinia, setActivePinia } from \"pinia\";\nimport { defineNuxtPlugin, useNuxtApp } from \"#app\";\nimport { toRaw } from \"vue\";\nconst plugin = defineNuxtPlugin({\n name: \"pinia\",\n setup(nuxtApp) {\n const pinia = createPinia();\n nuxtApp.vueApp.use(pinia);\n setActivePinia(pinia);\n if (nuxtApp.payload && nuxtApp.payload.pinia) {\n pinia.state.value = nuxtApp.payload.pinia;\n }\n return {\n provide: {\n pinia\n }\n };\n },\n hooks: {\n \"app:rendered\"() {\n const nuxtApp = useNuxtApp();\n nuxtApp.payload.pinia = toRaw(nuxtApp.$pinia).state.value;\n setActivePinia(void 0);\n }\n }\n});\nexport default plugin;\n","\nimport { defineNuxtPlugin } from '#app/nuxt'\nexport default defineNuxtPlugin({\n name: 'nuxt:global-components',\n})\n","import payload_plugin_vfxyM1biN59FP0Nnr5zjaaXnrjmDUAMUDHGB1jIAoxw from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/payload-plugin.js\";\nimport unhead_onaWNbu_aBWmOMZtU6jpQtjACQlz0S9RZ6v_ogqPSGE from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/plugins/unhead.js\";\nimport router_MhK3qgJ0WYuBDV9Bc2R15ebVnAkYpW_sO8RSA5WFQ8Q from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/pages/runtime/plugins/router.js\";\nimport revive_payload_server_y_Jg9TKMK_pSVgbwS3QYggu2__NI0DEkI7DvOxdnJaM from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/plugins/revive-payload.server.js\";\nimport plugin_vue3_vUOR2Yexyy_5GDuyJio1AxmO0eM0omT0mn6x_agTjzA from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/plugin.vue3.js\";\nimport components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8 from \"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/node_modules/.cache/nuxt/.nuxt/components.plugin.mjs\";\nexport default [\n payload_plugin_vfxyM1biN59FP0Nnr5zjaaXnrjmDUAMUDHGB1jIAoxw,\n unhead_onaWNbu_aBWmOMZtU6jpQtjACQlz0S9RZ6v_ogqPSGE,\n router_MhK3qgJ0WYuBDV9Bc2R15ebVnAkYpW_sO8RSA5WFQ8Q,\n revive_payload_server_y_Jg9TKMK_pSVgbwS3QYggu2__NI0DEkI7DvOxdnJaM,\n plugin_vue3_vUOR2Yexyy_5GDuyJio1AxmO0eM0omT0mn6x_agTjzA,\n components_plugin_4kY4pyzJIYX99vmMAAIorFf3CnAaptHitJgf7JxiED8\n]","import { defineAsyncComponent } from 'vue'\nexport default {\n auth: defineAsyncComponent(() => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/layouts/auth.vue\").then(m => m.default || m)),\n default: defineAsyncComponent(() => import(\"/Users/liwei/work/go/yunyan/yunyan-sas/apps/admin/app/layouts/default.vue\").then(m => m.default || m))\n}","import { Suspense, computed, defineComponent, h, inject, mergeProps, nextTick, onMounted, provide, shallowReactive, shallowRef, unref } from \"vue\";\nimport { useRoute, useRouter } from \"../composables/router.js\";\nimport { useNuxtApp } from \"../nuxt.js\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"./utils.js\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"./injections.js\";\nimport { useRoute as useVueRouterRoute } from \"#build/pages\";\nimport layouts from \"#build/layouts\";\nimport { appLayoutTransition as defaultLayoutTransition } from \"#build/nuxt.config.mjs\";\nimport _routeRulesMatcher from \"#build/route-rules.mjs\";\nconst routeRulesMatcher = _routeRulesMatcher;\nconst LayoutLoader = defineComponent({\n name: \"LayoutLoader\",\n inheritAttrs: false,\n props: {\n name: String,\n layoutProps: Object\n },\n setup(props, context) {\n return () => h(layouts[props.name], props.layoutProps, context.slots);\n }\n});\nconst nuxtLayoutProps = {\n name: {\n type: [String, Boolean, Object],\n default: null\n },\n fallback: {\n type: [String, Object],\n default: null\n }\n};\nexport default defineComponent({\n name: \"NuxtLayout\",\n inheritAttrs: false,\n props: nuxtLayoutProps,\n setup(props, context) {\n const nuxtApp = useNuxtApp();\n const injectedRoute = inject(PageRouteSymbol);\n const shouldUseEagerRoute = !injectedRoute || injectedRoute === useRoute();\n const route = shouldUseEagerRoute ? useVueRouterRoute() : injectedRoute;\n const layout = computed(() => {\n let layout2 = unref(props.name) ?? route?.meta.layout ?? routeRulesMatcher(route?.path).appLayout ?? \"default\";\n if (layout2 && !(layout2 in layouts)) {\n if (import.meta.dev && layout2 !== \"default\") {\n console.warn(`[nuxt] Invalid layout \\`${layout2}\\` selected.`);\n }\n if (props.fallback) {\n layout2 = unref(props.fallback);\n }\n }\n return layout2;\n });\n const layoutRef = shallowRef();\n context.expose({ layoutRef });\n const done = nuxtApp.deferHydration();\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtLayoutUsed = true;\n }\n let lastLayout;\n return () => {\n const hasLayout = !!layout.value && layout.value in layouts;\n const hasTransition = hasLayout && !!(route?.meta.layoutTransition ?? defaultLayoutTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n route?.meta.layoutTransition,\n defaultLayoutTransition,\n {\n onBeforeLeave() {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n },\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n }\n }\n ]);\n const previouslyRenderedLayout = lastLayout;\n lastLayout = layout.value;\n return _wrapInTransition(transitionProps, {\n default: () => h(\n Suspense,\n {\n suspensible: true,\n onResolve: async () => {\n await nextTick(done);\n }\n },\n {\n default: () => h(\n LayoutProvider,\n {\n layoutProps: mergeProps(context.attrs, route.meta.layoutProps ?? {}, { ref: layoutRef }),\n key: layout.value || void 0,\n name: layout.value,\n shouldProvide: !props.name,\n isRenderingNewLayout: (name) => {\n return name !== previouslyRenderedLayout && name === layout.value;\n },\n hasTransition\n },\n context.slots\n )\n }\n )\n }).default();\n };\n }\n});\nconst LayoutProvider = defineComponent({\n name: \"NuxtLayoutProvider\",\n inheritAttrs: false,\n props: {\n name: {\n type: [String, Boolean]\n },\n layoutProps: {\n type: Object\n },\n hasTransition: {\n type: Boolean\n },\n shouldProvide: {\n type: Boolean\n },\n isRenderingNewLayout: {\n type: Function,\n required: true\n }\n },\n setup(props, context) {\n const name = props.name;\n if (props.shouldProvide) {\n provide(LayoutMetaSymbol, {\n // When name=false, always return true so NuxtPage doesn't skip rendering\n isCurrent: (route) => name === false || name === (route.meta.layout ?? routeRulesMatcher(route.path).appLayout ?? \"default\")\n });\n }\n const injectedRoute = inject(PageRouteSymbol);\n const isNotWithinNuxtPage = injectedRoute && injectedRoute === useRoute();\n if (isNotWithinNuxtPage) {\n const vueRouterRoute = useVueRouterRoute();\n const reactiveChildRoute = {};\n for (const _key in vueRouterRoute) {\n const key = _key;\n Object.defineProperty(reactiveChildRoute, key, {\n enumerable: true,\n get: () => {\n return props.isRenderingNewLayout(props.name) ? vueRouterRoute[key] : injectedRoute[key];\n }\n });\n }\n provide(PageRouteSymbol, shallowReactive(reactiveChildRoute));\n }\n let vnode;\n if (import.meta.dev && import.meta.client) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n if (name) {\n console.warn(`[nuxt] \\`${name}\\` layout does not have a single root node and will cause errors when navigating between routes.`);\n } else {\n console.warn(\"[nuxt] `` needs to be passed a single root node in its default slot.\");\n }\n }\n });\n });\n }\n return () => {\n if (!name || typeof name === \"string\" && !(name in layouts)) {\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = context.slots.default?.();\n return vnode;\n }\n return context.slots.default?.();\n }\n if (import.meta.dev && import.meta.client && props.hasTransition) {\n vnode = h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n return vnode;\n }\n return h(\n LayoutLoader,\n { key: name, layoutProps: props.layoutProps, name },\n context.slots\n );\n };\n }\n});\n","import { defineComponent, h, nextTick, onMounted, provide, shallowReactive } from \"vue\";\nimport { PageRouteSymbol } from \"./injections.js\";\nexport const defineRouteProvider = (name = \"RouteProvider\") => defineComponent({\n name,\n props: {\n route: {\n type: Object,\n required: true\n },\n vnode: Object,\n vnodeRef: Object,\n renderKey: String,\n trackRootNodes: Boolean\n },\n setup(props) {\n const previousKey = props.renderKey;\n const previousRoute = props.route;\n const route = {};\n for (const key in props.route) {\n Object.defineProperty(route, key, {\n get: () => previousKey === props.renderKey ? props.route[key] : previousRoute[key],\n enumerable: true\n });\n }\n provide(PageRouteSymbol, shallowReactive(route));\n let vnode;\n if (import.meta.dev && import.meta.client && props.trackRootNodes) {\n onMounted(() => {\n nextTick(() => {\n if ([\"#comment\", \"#text\"].includes(vnode?.el?.nodeName)) {\n const filename = vnode?.type?.__file;\n console.warn(`[nuxt] \\`${filename}\\` does not have a single root node and will cause errors when navigating between routes.`);\n }\n });\n });\n }\n return () => {\n if (!props.vnode) {\n return props.vnode;\n }\n if (import.meta.dev && import.meta.client) {\n vnode = h(props.vnode, { ref: props.vnodeRef });\n return vnode;\n }\n return h(props.vnode, { ref: props.vnodeRef });\n };\n }\n});\nexport const RouteProvider = defineRouteProvider();\n","import { Fragment, Suspense, defineComponent, h, inject, nextTick, onBeforeUnmount, ref, watch } from \"vue\";\nimport { RouterView } from \"vue-router\";\nimport { generateRouteKey, wrapInKeepAlive } from \"./utils.js\";\nimport { RouteProvider, defineRouteProvider } from \"#app/components/route-provider\";\nimport { useNuxtApp } from \"#app/nuxt\";\nimport { useRouter } from \"#app/composables/router\";\nimport { _mergeTransitionProps, _wrapInTransition } from \"#app/components/utils\";\nimport { LayoutMetaSymbol, PageRouteSymbol } from \"#app/components/injections\";\nimport { appKeepalive as defaultKeepaliveConfig, appPageTransition as defaultPageTransition } from \"#build/nuxt.config.mjs\";\nconst _routeProviders = import.meta.dev ? /* @__PURE__ */ new Map() : /* @__PURE__ */ new WeakMap();\nexport default defineComponent({\n name: \"NuxtPage\",\n inheritAttrs: false,\n props: {\n name: {\n type: String\n },\n transition: {\n type: [Boolean, Object],\n default: void 0\n },\n keepalive: {\n type: [Boolean, Object],\n default: void 0\n },\n route: {\n type: Object\n },\n pageKey: {\n type: [Function, String],\n default: null\n }\n },\n setup(props, { attrs, slots, expose }) {\n const nuxtApp = useNuxtApp();\n const pageRef = ref();\n const forkRoute = inject(PageRouteSymbol, null);\n let previousPageKey;\n expose({ pageRef });\n const _layoutMeta = inject(LayoutMetaSymbol, null);\n let vnode;\n const done = nuxtApp.deferHydration();\n let isSuspensePending = false;\n let hasResolvedOnce = false;\n let suspenseKey = 0;\n if (import.meta.client && nuxtApp.isHydrating) {\n const removeErrorHook = nuxtApp.hooks.hookOnce(\"app:error\", done);\n const removeGuard = useRouter().beforeEach(() => {\n removeErrorHook();\n removeGuard();\n });\n }\n if (import.meta.client && props.pageKey) {\n watch(() => props.pageKey, (next, prev) => {\n if (next !== prev) {\n nuxtApp.callHook(\"page:loading:start\");\n }\n });\n }\n if (import.meta.dev) {\n nuxtApp._isNuxtPageUsed = true;\n }\n let pageLoadingEndHookAlreadyCalled = false;\n if (import.meta.client) {\n const unsub = useRouter().beforeResolve(() => {\n pageLoadingEndHookAlreadyCalled = false;\n });\n onBeforeUnmount(() => {\n unsub();\n done();\n });\n }\n return () => {\n return h(RouterView, { name: props.name, route: props.route, ...attrs }, {\n default: import.meta.server ? (routeProps) => {\n return h(Suspense, { suspensible: true }, {\n default() {\n return h(RouteProvider, {\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n vnodeRef: pageRef\n });\n }\n });\n } : (routeProps) => {\n const isRenderingNewRouteInOldFork = haveParentRoutesRendered(forkRoute, routeProps.route, routeProps.Component);\n const hasSameChildren = forkRoute && forkRoute.matched.length === routeProps.route.matched.length;\n if (!routeProps.Component) {\n if (vnode && !hasSameChildren && !isStaleVNode(vnode)) {\n return vnode;\n }\n done();\n return;\n }\n if (vnode && _layoutMeta && !isStaleVNode(vnode) && !_layoutMeta.isCurrent(routeProps.route)) {\n return vnode;\n }\n if (isRenderingNewRouteInOldFork && forkRoute && (!_layoutMeta || _layoutMeta?.isCurrent(forkRoute))) {\n if ((hasSameChildren || vnode) && !isStaleVNode(vnode)) {\n return vnode;\n }\n return null;\n }\n const key = generateRouteKey(routeProps, props.pageKey);\n const willRenderAnotherChild = hasChildrenRoutes(forkRoute, routeProps.route, routeProps.Component);\n if (!nuxtApp.isHydrating && previousPageKey === key && !willRenderAnotherChild) {\n nextTick(() => {\n if (!pageLoadingEndHookAlreadyCalled) {\n pageLoadingEndHookAlreadyCalled = true;\n nuxtApp.callHook(\"page:loading:end\");\n }\n });\n }\n if (isSuspensePending && previousPageKey !== key && hasResolvedOnce) {\n suspenseKey++;\n }\n previousPageKey = key;\n const hasTransition = !!(props.transition ?? routeProps.route.meta.pageTransition ?? defaultPageTransition);\n const transitionProps = hasTransition && _mergeTransitionProps([\n props.transition,\n routeProps.route.meta.pageTransition,\n defaultPageTransition,\n {\n onAfterLeave() {\n nuxtApp[\"~transitionFinish\"]?.();\n delete nuxtApp[\"~transitionFinish\"];\n delete nuxtApp[\"~transitionPromise\"];\n nuxtApp.callHook(\"page:transition:finish\", routeProps.Component);\n }\n }\n ]);\n const keepaliveConfig = props.keepalive ?? routeProps.route.meta.keepalive ?? defaultKeepaliveConfig;\n vnode = _wrapInTransition(\n hasTransition && transitionProps,\n wrapInKeepAlive(\n keepaliveConfig,\n h(Suspense, {\n key: suspenseKey,\n suspensible: true,\n onPending: () => {\n isSuspensePending = true;\n if (hasTransition && !nuxtApp[\"~transitionPromise\"]) {\n nuxtApp[\"~transitionPromise\"] = new Promise((resolve) => {\n nuxtApp[\"~transitionFinish\"] = resolve;\n });\n }\n nuxtApp.callHook(\"page:start\", routeProps.Component);\n },\n onResolve: async () => {\n isSuspensePending = false;\n hasResolvedOnce = true;\n try {\n await nextTick();\n nuxtApp._route.sync?.();\n await nuxtApp.callHook(\"page:finish\", routeProps.Component);\n if (!pageLoadingEndHookAlreadyCalled && !willRenderAnotherChild) {\n pageLoadingEndHookAlreadyCalled = true;\n await nuxtApp.callHook(\"page:loading:end\");\n }\n } finally {\n done();\n }\n }\n }, {\n default: () => {\n const routeProviderProps = {\n key: key || void 0,\n vnode: slots.default ? normalizeSlot(slots.default, routeProps) : routeProps.Component,\n route: routeProps.route,\n renderKey: key || void 0,\n trackRootNodes: hasTransition,\n vnodeRef: pageRef\n };\n if (!keepaliveConfig) {\n return h(RouteProvider, routeProviderProps);\n }\n const routerComponentType = routeProps.Component.type;\n const routeProviderKey = import.meta.dev ? routerComponentType.name || routerComponentType.__name : routerComponentType;\n let PageRouteProvider = _routeProviders.get(routeProviderKey);\n if (!PageRouteProvider) {\n PageRouteProvider = defineRouteProvider(routerComponentType.name || routerComponentType.__name);\n _routeProviders.set(routeProviderKey, PageRouteProvider);\n }\n return h(PageRouteProvider, routeProviderProps);\n }\n })\n )\n ).default();\n return vnode;\n }\n });\n };\n }\n});\nfunction haveParentRoutesRendered(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n if (index === -1) {\n return false;\n }\n const newParents = newRoute.matched.slice(0, index).filter((m) => m.components?.default);\n if (!newParents.length) {\n return false;\n }\n const forkParents = fork.matched.filter((m) => m.components?.default);\n return newParents.some((c, i) => c.components?.default !== forkParents[i]?.components?.default) || Component && generateRouteKey({ route: newRoute, Component }) !== generateRouteKey({ route: fork, Component });\n}\nfunction hasChildrenRoutes(fork, newRoute, Component) {\n if (!fork) {\n return false;\n }\n const index = newRoute.matched.findIndex((m) => m.components?.default === Component?.type);\n return index < newRoute.matched.length - 1;\n}\nfunction normalizeSlot(slot, data) {\n const slotContent = slot(data);\n return slotContent.length === 1 ? h(slotContent[0]) : h(Fragment, void 0, slotContent);\n}\nfunction isStaleVNode(vnode) {\n return !!vnode && (!!vnode.suspense?.isUnmounted || !!vnode.component?.isUnmounted);\n}\n","\n","\n\n\n","\n\n\n","import { createApp, createSSRApp, nextTick } from \"vue\";\nimport \"#build/fetch.mjs\";\nimport \"#build/global-polyfills.mjs\";\nimport { applyPlugins, createNuxtApp } from \"./nuxt.js\";\nimport { createError } from \"./composables/error.js\";\nimport \"#build/css\";\nimport plugins from \"#build/plugins\";\nimport RootComponent from \"#build/root-component.mjs\";\nimport { appId, appSpaLoaderAttrs, multiApp, spaLoadingTemplateOutside, vueAppRootContainer } from \"#build/nuxt.config.mjs\";\nlet entry;\nif (import.meta.server) {\n entry = async function createNuxtAppServer(ssrContext) {\n const vueApp = createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp, ssrContext });\n try {\n await applyPlugins(nuxt, plugins);\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n } catch (error) {\n await nuxt.hooks.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n if (ssrContext && (ssrContext[\"~renderResponse\"] || ssrContext._renderResponse)) {\n throw new Error(\"skipping render\");\n }\n return vueApp;\n };\n}\nif (import.meta.client) {\n if (import.meta.dev && import.meta.webpackHot) {\n import.meta.webpackHot.accept();\n }\n let vueAppPromise;\n entry = async function initApp() {\n if (vueAppPromise) {\n return vueAppPromise;\n }\n const isSSR = Boolean(\n (multiApp ? window.__NUXT__?.[appId] : window.__NUXT__)?.serverRendered ?? (multiApp ? document.querySelector(`[data-nuxt-data=\"${appId}\"]`) : document.getElementById(\"__NUXT_DATA__\"))?.dataset.ssr === \"true\"\n );\n const vueApp = isSSR ? createSSRApp(RootComponent) : createApp(RootComponent);\n const nuxt = createNuxtApp({ vueApp });\n async function handleVueError(error) {\n await nuxt.callHook(\"app:error\", error);\n nuxt.payload.error ||= createError(error);\n }\n ;\n handleVueError.__nuxt_default = true;\n vueApp.config.errorHandler = handleVueError;\n nuxt.hook(\"app:suspense:resolve\", () => {\n if (vueApp.config.errorHandler === handleVueError) {\n vueApp.config.errorHandler = void 0;\n }\n });\n if (spaLoadingTemplateOutside && !isSSR && appSpaLoaderAttrs.id) {\n nuxt.hook(\"app:suspense:resolve\", () => {\n document.getElementById(appSpaLoaderAttrs.id)?.remove();\n });\n }\n try {\n await applyPlugins(nuxt, plugins);\n } catch (err) {\n handleVueError(err);\n }\n try {\n await nuxt.hooks.callHook(\"app:created\", vueApp);\n await nuxt.hooks.callHook(\"app:beforeMount\", vueApp);\n vueApp.mount(vueAppRootContainer);\n await nuxt.hooks.callHook(\"app:mounted\", vueApp);\n await nextTick();\n } catch (err) {\n handleVueError(err);\n }\n return vueApp;\n };\n vueAppPromise = entry().catch((error) => {\n console.error(\"Error while mounting app:\", error);\n throw error;\n });\n}\nexport default ((ssrContext) => entry(ssrContext));\n"],"version":3} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/styles.mjs b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/styles.mjs index e90d6195..a68d6efe 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/styles.mjs +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/dist/server/styles.mjs @@ -2,10 +2,16 @@ const interopDefault = r => r.default || r || [] export default { "../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-404.vue": () => import('./_nuxt/error-404-styles.Dw8OeZuk.mjs').then(interopDefault), "../node_modules/.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/error-500.vue": () => import('./_nuxt/error-500-styles.CsxdYB__.mjs').then(interopDefault), + "pages/appconfig.vue": () => import('./_nuxt/appconfig-styles.C960WaXM.mjs').then(interopDefault), "pages/accounts.vue": () => import('./_nuxt/accounts-styles.DcThijbg.mjs').then(interopDefault), - "pages/dashboard.vue": () => import('./_nuxt/dashboard-styles.YHe4qmhV.mjs').then(interopDefault), + "pages/apps.vue": () => import('./_nuxt/apps-styles._bNp0Sh6.mjs').then(interopDefault), "pages/calltranslate.vue": () => import('./_nuxt/calltranslate-styles.hpAJUqsK.mjs').then(interopDefault), - "pages/serviceconfig.vue": () => import('./_nuxt/serviceconfig-styles.BE2TPkT0.mjs').then(interopDefault), + "pages/systemconfig.vue": () => import('./_nuxt/systemconfig-styles.DgvtwCbS.mjs').then(interopDefault), + "pages/serviceconfig.vue": () => import('./_nuxt/serviceconfig-styles.BhKw9izr.mjs').then(interopDefault), "pages/statlog.vue": () => import('./_nuxt/statlog-styles.CjrRv6cK.mjs').then(interopDefault), - "pages/index.vue": () => import('./_nuxt/index-styles.DNbAzSQY.mjs').then(interopDefault) + "pages/dashboard.vue": () => import('./_nuxt/dashboard-styles.CGuiyPm5.mjs').then(interopDefault), + "components/LangSelect.vue": () => import('./_nuxt/LangSelect-styles.C7_U3Izz.mjs').then(interopDefault), + "pages/index.vue": () => import('./_nuxt/index-styles.DNbAzSQY.mjs').then(interopDefault), + "layouts/default.vue": () => import('./_nuxt/default-styles.BZwnP0YX.mjs').then(interopDefault), + "components/AppLoading.vue": () => import('./_nuxt/default-styles.BZwnP0YX.mjs').then(interopDefault) } \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/imports.d.ts b/apps/admin/node_modules/.cache/nuxt/.nuxt/imports.d.ts index 00776a29..06cce7ac 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/imports.d.ts +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/imports.d.ts @@ -32,6 +32,8 @@ export { setInterval } from '#app/compat/interval'; export { definePageMeta, PageMeta } from '#app/composables/pages'; export { defineLazyHydrationComponent } from '#app/composables/lazy-hydration'; export { useApi } from '../../../../app/composables/useApi'; +export { LANG_OPTIONS, langName, LangOption } from '../../../../app/composables/useLangOptions'; +export { useLoading } from '../../../../app/composables/useLoading'; export { useToast, ToastType, Toast } from '../../../../app/composables/useToast'; export { IDENTITY_LABELS, useAuthStore } from '../../../../app/stores/auth'; export { defineStore, acceptHMRUpdate, usePinia, storeToRefs } from '../../../.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/composables'; \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/manifest/latest.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/manifest/latest.json index 9f5a4338..c277d2a6 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/manifest/latest.json +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/manifest/latest.json @@ -1 +1 @@ -{"id":"ec4737f4-4bc1-4016-bf94-c7164a1b5e0d","timestamp":1782351561646} \ No newline at end of file +{"id":"1539df2f-ed1e-4567-85ef-b3b4ac8648ab","timestamp":1782995062558} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/manifest/meta/1539df2f-ed1e-4567-85ef-b3b4ac8648ab.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/manifest/meta/1539df2f-ed1e-4567-85ef-b3b4ac8648ab.json new file mode 100644 index 00000000..c477c809 --- /dev/null +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/manifest/meta/1539df2f-ed1e-4567-85ef-b3b4ac8648ab.json @@ -0,0 +1 @@ +{"id":"1539df2f-ed1e-4567-85ef-b3b4ac8648ab","timestamp":1782995062558,"prerendered":[]} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/manifest/meta/ec4737f4-4bc1-4016-bf94-c7164a1b5e0d.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/manifest/meta/ec4737f4-4bc1-4016-bf94-c7164a1b5e0d.json deleted file mode 100644 index a49352d4..00000000 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/manifest/meta/ec4737f4-4bc1-4016-bf94-c7164a1b5e0d.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"ec4737f4-4bc1-4016-bf94-c7164a1b5e0d","timestamp":1782351561646,"prerendered":[]} \ No newline at end of file diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/nuxt.d.ts b/apps/admin/node_modules/.cache/nuxt/.nuxt/nuxt.d.ts index 6630865a..500d4261 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/nuxt.d.ts +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/nuxt.d.ts @@ -1,5 +1,5 @@ -/// /// +/// /// /// /// diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/nuxt.node.d.ts b/apps/admin/node_modules/.cache/nuxt/.nuxt/nuxt.node.d.ts index 584c7387..99ff57a0 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/nuxt.node.d.ts +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/nuxt.node.d.ts @@ -1,5 +1,5 @@ -/// /// +/// /// /// /// diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/tailwind/postcss.mjs b/apps/admin/node_modules/.cache/nuxt/.nuxt/tailwind/postcss.mjs index 03c090e0..d5fd6784 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/tailwind/postcss.mjs +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/tailwind/postcss.mjs @@ -1,4 +1,4 @@ -// generated by the @nuxtjs/tailwindcss module at 6/25/2026, 9:39:21 AM +// generated by the @nuxtjs/tailwindcss module at 7/2/2026, 8:24:22 PM import "@nuxtjs/tailwindcss/config-ctx" import configMerger from "@nuxtjs/tailwindcss/merger"; diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/tsconfig.app.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/tsconfig.app.json index d86515fa..6071a181 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/tsconfig.app.json +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/tsconfig.app.json @@ -107,7 +107,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/ec4737f4-4bc1-4016-bf94-c7164a1b5e0d.json" + "./manifest/meta/1539df2f-ed1e-4567-85ef-b3b4ac8648ab.json" ], "#components": [ "./components" diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/tsconfig.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/tsconfig.json index d62425f3..2cc32212 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/tsconfig.json +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/tsconfig.json @@ -107,7 +107,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/ec4737f4-4bc1-4016-bf94-c7164a1b5e0d.json" + "./manifest/meta/1539df2f-ed1e-4567-85ef-b3b4ac8648ab.json" ], "#components": [ "./components" diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/tsconfig.shared.json b/apps/admin/node_modules/.cache/nuxt/.nuxt/tsconfig.shared.json index 864c79e5..45028d06 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/tsconfig.shared.json +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/tsconfig.shared.json @@ -107,7 +107,7 @@ "./imports" ], "#app-manifest": [ - "./manifest/meta/ec4737f4-4bc1-4016-bf94-c7164a1b5e0d.json" + "./manifest/meta/1539df2f-ed1e-4567-85ef-b3b4ac8648ab.json" ], "#build": [ "." diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/types/components.d.ts b/apps/admin/node_modules/.cache/nuxt/.nuxt/types/components.d.ts index 9b7decd6..72269225 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/types/components.d.ts +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/types/components.d.ts @@ -14,7 +14,9 @@ type HydrationStrategies = { type LazyComponent = DefineComponent void }> & T interface _GlobalComponents { + AppLoading: typeof import("../../../../../app/components/AppLoading.vue")['default'] AppToast: typeof import("../../../../../app/components/AppToast.vue")['default'] + LangSelect: typeof import("../../../../../app/components/LangSelect.vue")['default'] NuxtWelcome: typeof import("../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/welcome.vue")['default'] NuxtLayout: typeof import("../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-layout")['default'] NuxtErrorBoundary: typeof import("../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-error-boundary.vue")['default'] @@ -39,7 +41,9 @@ interface _GlobalComponents { Html: typeof import("../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/components")['Html'] Body: typeof import("../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/head/runtime/components")['Body'] NuxtIsland: typeof import("../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/components/nuxt-island")['default'] + LazyAppLoading: LazyComponent LazyAppToast: LazyComponent + LazyLangSelect: LazyComponent LazyNuxtWelcome: LazyComponent LazyNuxtLayout: LazyComponent LazyNuxtErrorBoundary: LazyComponent diff --git a/apps/admin/node_modules/.cache/nuxt/.nuxt/types/imports.d.ts b/apps/admin/node_modules/.cache/nuxt/.nuxt/types/imports.d.ts index cb3bf433..07ab3638 100644 --- a/apps/admin/node_modules/.cache/nuxt/.nuxt/types/imports.d.ts +++ b/apps/admin/node_modules/.cache/nuxt/.nuxt/types/imports.d.ts @@ -2,6 +2,7 @@ export {} declare global { const IDENTITY_LABELS: typeof import('../../../../../app/stores/auth').IDENTITY_LABELS + const LANG_OPTIONS: typeof import('../../../../../app/composables/useLangOptions').LANG_OPTIONS const abortNavigation: typeof import('../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/router').abortNavigation const acceptHMRUpdate: typeof import('../../../../.pnpm/@pinia+nuxt@0.11.3_magicast@0.5.3_pinia@3.0.4_typescript@5.9.3_vue@3.5.38_typescript@5.9.3__/node_modules/@pinia/nuxt/dist/runtime/composables').acceptHMRUpdate const addRouteMiddleware: typeof import('../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/router').addRouteMiddleware @@ -47,6 +48,7 @@ declare global { const isShallow: typeof import('vue').isShallow const isVue2: typeof import('../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/compat/vue-demi').isVue2 const isVue3: typeof import('../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/compat/vue-demi').isVue3 + const langName: typeof import('../../../../../app/composables/useLangOptions').langName const loadPayload: typeof import('../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/payload').loadPayload const markRaw: typeof import('vue').markRaw const navigateTo: typeof import('../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/router').navigateTo @@ -118,6 +120,7 @@ declare global { const useLazyAsyncData: typeof import('../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/asyncData').useLazyAsyncData const useLazyFetch: typeof import('../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/fetch').useLazyFetch const useLink: typeof import('../../../../.pnpm/vue-router@5.1.0_@vue+compiler-sfc@3.5.38_esbuild@0.28.1_pinia@3.0.4_typescript@5.9.3_v_e9d2979651266ddc95cb9659efaeda1e/node_modules/vue-router').useLink + const useLoading: typeof import('../../../../../app/composables/useLoading').useLoading const useLoadingIndicator: typeof import('../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/loading-indicator').useLoadingIndicator const useModel: typeof import('vue').useModel const useNuxtApp: typeof import('../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/nuxt').useNuxtApp @@ -208,6 +211,9 @@ declare global { export type { PageMeta } from '../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/pages' import('../../../../.pnpm/nuxt@4.4.8_@babel+plugin-syntax-jsx@7.29.7_@babel+core@7.29.7__@babel+plugin-syntax-typ_25b4a4016600149c0331b87503aafc6b/node_modules/nuxt/dist/app/composables/pages') // @ts-ignore + export type { LangOption } from '../../../../../app/composables/useLangOptions' + import('../../../../../app/composables/useLangOptions') + // @ts-ignore export type { ToastType, Toast } from '../../../../../app/composables/useToast' import('../../../../../app/composables/useToast') } @@ -216,6 +222,7 @@ import { UnwrapRef } from 'vue' declare module 'vue' { interface ComponentCustomProperties { readonly IDENTITY_LABELS: UnwrapRef + readonly LANG_OPTIONS: UnwrapRef readonly abortNavigation: UnwrapRef readonly acceptHMRUpdate: UnwrapRef readonly addRouteMiddleware: UnwrapRef @@ -261,6 +268,7 @@ declare module 'vue' { readonly isShallow: UnwrapRef readonly isVue2: UnwrapRef readonly isVue3: UnwrapRef + readonly langName: UnwrapRef readonly loadPayload: UnwrapRef readonly markRaw: UnwrapRef readonly navigateTo: UnwrapRef @@ -332,6 +340,7 @@ declare module 'vue' { readonly useLazyAsyncData: UnwrapRef readonly useLazyFetch: UnwrapRef readonly useLink: UnwrapRef + readonly useLoading: UnwrapRef readonly useLoadingIndicator: UnwrapRef readonly useModel: UnwrapRef readonly useNuxtApp: UnwrapRef diff --git a/apps/services/comm/const.go b/apps/services/comm/const.go index ffe7ffd6..d84a4272 100644 --- a/apps/services/comm/const.go +++ b/apps/services/comm/const.go @@ -50,6 +50,13 @@ const ( TableMcp = "mcp" //Mcp服务 TableAppConfig = "config" //App自有配置(音乐、OSS等) TableGlobalConfig = "global_config" //全局第三方服务配置(AI、翻译等,按区域) + TableAppServiceConfig = "app_service_config" //应用×服务的基础设施/运行配置(DSN/Redis/NATS/COS…;启动 seed 自文件、后台可改),存 console 共享库 + TableAppModuleConfig = "app_module_config" //应用业务功能配置(登录/短信/邮件/支付…),存"应用业务库"(随部署)、非公共库,密钥字段 AES 加密 + // 按应用分离的「第三方服务配置 / Agent 配置」新表(app_name=''为全局默认,'X'为应用X覆盖)。 + // 独立于老的 third_svc_config / agent 表,避免影响现有服务接口;均存 console 共享库(postgres)。 + TableSvcConfig = "svc_config" //第三方服务配置(按应用;旧 third_svc_config 迁入其全局作用域) + TableSvcRegionOverride = "svc_region_override" //第三方服务区域字段覆盖(按应用;旧 third_svc_region_override 迁入) + TableAgentConfig = "agent_config" //yunyan 自管 Agent 配置(按应用;旧 console agent 表迁入) TableAdmin = "adnim" //后台用户表 TableEchomeetTemplate = "echomeet_template" //模板表 TableEchomeetRecord = "echomeet_record" //会议记录表 @@ -81,11 +88,14 @@ const ( TableStatsGlobalDay = "stats_global_day" //平台每日统计表(应用×产品×区域×日) TableProductStat = "product_stat" //产品激活/绑定统计表(重建统计时全量扫描 userdevice 落库) TableFactoryPublicCode = "factory_public_code" //厂家公码表(一厂家多码,新用户扫码领奖,user.isgiveaway 判重) - TableAppRegistry = "app_registry" //应用注册表(console 独立库,存各应用地址/双DSN/Redis/前缀/NATS事件通道) + TableAppProduct = "app_product" //应用/产品表(console 主库,SaaS 里一个应用名如 Voitrans,下挂多条区域部署=app_registry) + TableAppRegistry = "app_registry" //应用注册表(console 独立库,一行=一个区域部署;product_id 归属应用、status existing/pending) + TableAppEnvironment = "app_environment" //部署环境/区域表(console 主库,存 SSH 部署目标/镜像仓库/区域基础设施;密钥字段 AES-GCM 加密) TableConsoleAccount = "console_account" //后台账号表(console 独立库,存账号/bcrypt密码/角色) - TableThirdSvcConfig = "third_svc_config" //依赖服务配置表(JSONB 字段定义 + 默认值,移植自 deep_server) - TableThirdSvcRegionOverride = "third_svc_region_override" //依赖服务区域字段覆盖表(每服务×区域一行,JSONB map) + TableThirdSvcConfig = "third_svc_config" //第三方服务配置表(JSONB 字段定义 + 默认值,移植自 deep_server) + TableThirdSvcRegionOverride = "third_svc_region_override" //第三方服务区域字段覆盖表(每服务×区域一行,JSONB:值覆盖/区域专属字段/停用字段) + TableThirdSvcTemplate = "third_svc_template" //第三方服务商字段模板表(数据驱动,启动 seed 内置常见服务商) TableCallTranslatePair = "call_translate_pair" //通话翻译语言对配置表(区域×语言对×服务编排) ) diff --git a/apps/services/comm/crypto.go b/apps/services/comm/crypto.go new file mode 100644 index 00000000..24260039 --- /dev/null +++ b/apps/services/comm/crypto.go @@ -0,0 +1,75 @@ +package comm + +import ( + "crypto/aes" + "crypto/cipher" + cryptorand "crypto/rand" + "encoding/base64" + "fmt" + "io" +) + +// AES-256-GCM 字段加密:console 后台与业务服务共用的单一实现。 +// +// 「应用的服务配置」(app_service_config) 由 console 前端写、业务服务启动时读/回写,两端读写同一张加密表, +// 故加密算法必须完全一致——统一收敛到本文件(console 的 svcEncrypt/svcDecrypt、业务侧 seed 均委托这里), +// 避免各处复制导致密文格式漂移。密钥由 ${FIELD_ENCRYPT_KEY} 注入,console 与业务服务必须配同一值。 + +// EncMask 加密字段返回前端时的脱敏占位符;更新时前端回传该占位/空串则保留原密文。 +const EncMask = "[encrypted]" + +// normAESKey 把任意长度的密钥规整为 32 字节(AES-256):不足补零、超长截断。 +func normAESKey(key string) []byte { + k := make([]byte, 32) + copy(k, []byte(key)) + return k +} + +// Encrypt 用 AES-256-GCM 加密明文,返回 base64(nonce‖ciphertext)。空明文返回空串。 +func Encrypt(key, plaintext string) (string, error) { + if plaintext == "" { + return "", nil + } + block, err := aes.NewCipher(normAESKey(key)) + if err != nil { + return "", err + } + gcm, err := cipher.NewGCM(block) + if err != nil { + return "", err + } + nonce := make([]byte, gcm.NonceSize()) + if _, err = io.ReadFull(cryptorand.Reader, nonce); err != nil { + return "", err + } + ct := gcm.Seal(nonce, nonce, []byte(plaintext), nil) + return base64.StdEncoding.EncodeToString(ct), nil +} + +// Decrypt 解密 Encrypt 产出的密文,返回明文。 +func Decrypt(key, ciphertext string) (string, error) { + if ciphertext == "" { + return "", nil + } + raw, err := base64.StdEncoding.DecodeString(ciphertext) + if err != nil { + return "", fmt.Errorf("base64 解码失败: %w", err) + } + block, err := aes.NewCipher(normAESKey(key)) + if err != nil { + return "", err + } + gcm, err := cipher.NewGCM(block) + if err != nil { + return "", err + } + ns := gcm.NonceSize() + if len(raw) < ns { + return "", fmt.Errorf("密文过短") + } + plain, err := gcm.Open(nil, raw[:ns], raw[ns:], nil) + if err != nil { + return "", fmt.Errorf("GCM 解密失败: %w", err) + } + return string(plain), nil +} diff --git a/apps/services/comm/moduleconfig.go b/apps/services/comm/moduleconfig.go new file mode 100644 index 00000000..2d08a4b4 --- /dev/null +++ b/apps/services/comm/moduleconfig.go @@ -0,0 +1,242 @@ +package comm + +import "yunyan/lego/sys/mysql" + +// 应用「业务功能配置」托管(登录 / 短信 / 邮件 / 支付…)。 +// +// 与「基础设施/运行配置」([[app_service_config]],存 console 公共库、按微服务分区)不同: +// 这些是应用的**独立业务配置**(微信/Google 登录、短信、邮件、微信/支付宝/苹果/Google 支付), +// 存到**应用自己的业务库**(随部署,每个区域部署各一套),不进公共库。 +// +// 数据模型:一行 = 某业务模块的一个字段(module + key → value)。 +// 密钥字段(AppSecret、支付商户密钥/证书、SMTP 密码…)以 AES-256-GCM 密文落库(comm.Encrypt, +// 密钥 ${FIELD_ENCRYPT_KEY}),console 与业务服务必须配同一把 key;返回前端脱敏为 EncMask。 +// +// 字段清单由 ModuleCatalog 数据驱动(哪些字段、类型、是否密钥、UI 分组), +// console 后台据此渲染表单、判定加密;业务服务据 SysKey 把库值覆盖回 GetSettings().Sys[key](后置)。 + +// AppModuleConfig 一行 = 应用业务库里某业务模块的一个配置项。存应用业务库(mysql/pg,随部署)。 +type AppModuleConfig struct { + Id uint64 `gorm:"primaryKey;autoIncrement;column:id" json:"id"` + Module string `gorm:"column:module;size:32;uniqueIndex:uidx_modcfg" json:"module"` // 模块键 wechat_login/sms/wechatpay… + Key string `gorm:"column:key;size:64;uniqueIndex:uidx_modcfg" json:"key"` // 字段键 AppID/AppSecret… + Value string `gorm:"column:value;type:text" json:"value"` // 值(密钥字段存 AES-GCM 密文) + Encrypted bool `gorm:"column:encrypted" json:"encrypted"` // 是否密钥字段(前端脱敏、落库加密) + Createtime int64 `gorm:"column:createtime" json:"createtime"` + Updatetime int64 `gorm:"column:updatetime" json:"updatetime"` +} + +func (AppModuleConfig) TableName() string { return TableAppModuleConfig } + +// ModuleFieldOption select 类型字段的一个选项。 +type ModuleFieldOption struct { + Value string `json:"value"` + Label string `json:"label"` +} + +// ModuleField 一个模块的一个配置字段的元数据(驱动前端表单 + 后端密钥判定)。 +type ModuleField struct { + Key string `json:"key"` + Label string `json:"label"` + Type string `json:"type"` // text|password|textarea|bool|select + Secret bool `json:"secret"` + Required bool `json:"required"` + Placeholder string `json:"placeholder,omitempty"` + Desc string `json:"desc,omitempty"` + Options []ModuleFieldOption `json:"options,omitempty"` +} + +// ModuleDef 一个业务模块(如"微信登录")的定义。 +type ModuleDef struct { + Module string `json:"module"` // 存库键 + Name string `json:"name"` // 展示名 + Group string `json:"group"` // UI 分组:登录 / 通知 / 支付 + SysKey string `json:"sys_key"` // 业务服务 GetSettings().Sys[key](业务消费用) + Desc string `json:"desc,omitempty"` + Fields []ModuleField `json:"fields"` +} + +// 分组名。 +const ( + ModuleGroupAuth = "登录" + ModuleGroupNotify = "通知" + ModuleGroupPay = "支付" +) + +// ModuleCatalog 业务功能配置字段目录(字段依据现有 sys/* 各 options.go 的结构体,见调研)。 +var ModuleCatalog = []ModuleDef{ + { + Module: "wechat_login", Name: "微信登录", Group: ModuleGroupAuth, SysKey: "wechat_auth", + Desc: "微信开放平台 App/公众号登录", + Fields: []ModuleField{ + {Key: "AppID", Label: "AppID", Type: "text", Required: true}, + {Key: "AppSecret", Label: "AppSecret", Type: "password", Secret: true, Required: true}, + }, + }, + { + Module: "google_login", Name: "Google 登录", Group: ModuleGroupAuth, SysKey: "google_auth", + Desc: "Firebase Admin SDK 校验 Google/Firebase 身份令牌", + Fields: []ModuleField{ + {Key: "ApiKeyFile", Label: "Firebase 服务账号密钥", Type: "textarea", Secret: true, Required: true, + Desc: "直接粘贴服务账号 JSON 内容(推荐,配置全在库);或填服务器上的文件路径"}, + }, + }, + { + Module: "sms", Name: "短信服务", Group: ModuleGroupNotify, SysKey: "sms", + Desc: "腾讯云短信", + Fields: []ModuleField{ + {Key: "AppId", Label: "短信 SDK AppID", Type: "text", Required: true}, + {Key: "SecretId", Label: "SecretId", Type: "text", Required: true}, + {Key: "SecretKey", Label: "SecretKey", Type: "password", Secret: true, Required: true}, + {Key: "SignName", Label: "短信签名", Type: "text", Required: true}, + {Key: "Template1", Label: "国内模板 ID", Type: "text"}, + {Key: "Template2", Label: "国际模板 ID", Type: "text"}, + }, + }, + { + Module: "email", Name: "邮件服务", Group: ModuleGroupNotify, SysKey: "email", + Desc: "SMTP 发信(验证码等)", + Fields: []ModuleField{ + {Key: "EmailType", Label: "邮箱类型", Type: "select", Required: true, Options: []ModuleFieldOption{ + {Value: "0", Label: "QQ 邮箱"}, {Value: "1", Label: "腾讯企业邮箱"}, {Value: "2", Label: "Gmail"}, + }}, + {Key: "FromEmail", Label: "发件人邮箱", Type: "text", Required: true}, + {Key: "FromName", Label: "发件人昵称", Type: "text"}, + {Key: "Password", Label: "SMTP 密码/授权码", Type: "password", Secret: true, Required: true}, + }, + }, + { + Module: "wechatpay", Name: "微信支付", Group: ModuleGroupPay, SysKey: "wechatpay", + Fields: []ModuleField{ + {Key: "AppID", Label: "AppID", Type: "text", Required: true}, + {Key: "MchID", Label: "商户号", Type: "text", Required: true}, + {Key: "ApiV3Key", Label: "APIv3 密钥", Type: "password", Secret: true, Required: true}, + {Key: "PrivateKeyPath", Label: "商户私钥", Type: "textarea", Secret: true, Required: true, + Desc: "直接粘贴商户私钥 PEM 内容(推荐,配置全在库);或填 .pem 文件路径"}, + {Key: "CertSerialNo", Label: "证书序列号", Type: "text", Required: true}, + }, + }, + { + Module: "alipay", Name: "支付宝", Group: ModuleGroupPay, SysKey: "alipay", + Fields: []ModuleField{ + {Key: "AppID", Label: "应用 AppID", Type: "text", Required: true}, + {Key: "PrivateKey", Label: "应用私钥", Type: "textarea", Secret: true, Required: true, Desc: "PKCS8 格式"}, + {Key: "PublicKey", Label: "支付宝公钥", Type: "textarea", Required: true}, + }, + }, + { + Module: "appleiap", Name: "苹果支付", Group: ModuleGroupPay, SysKey: "appleiap", + Desc: "App Store 内购/订阅校验", + Fields: []ModuleField{ + {Key: "AppStoreBundleID", Label: "Bundle ID", Type: "text", Required: true}, + {Key: "SharedSecret", Label: "共享密钥", Type: "password", Secret: true, Desc: "legacy verifyReceipt 用"}, + {Key: "AppStoreIssuerID", Label: "Issuer ID", Type: "text"}, + {Key: "AppStoreKeyID", Label: "Key ID", Type: "text"}, + {Key: "AppStorePrivateKeyPEM", Label: "App Store API 密钥(.p8)", Type: "textarea", Secret: true, + Desc: "ECDSA P-256 私钥 PEM 内容"}, + {Key: "UseSandbox", Label: "强制沙盒环境", Type: "bool"}, + }, + }, + { + Module: "googleiap", Name: "Google 支付", Group: ModuleGroupPay, SysKey: "googleiap", + Desc: "Google Play 内购/订阅校验", + Fields: []ModuleField{ + {Key: "ServiceAccountJSON", Label: "服务账号 JSON", Type: "textarea", Secret: true, Required: true, + Desc: "Google 服务账号 JSON 内容"}, + {Key: "ServiceAccountJSONPath", Label: "服务账号 JSON 路径", Type: "text", + Desc: "可选:本地文件路径(内容优先)"}, + }, + }, +} + +// FindModuleDef 按 module 键取模块定义(找不到返回 nil)。 +func FindModuleDef(module string) *ModuleDef { + for i := range ModuleCatalog { + if ModuleCatalog[i].Module == module { + return &ModuleCatalog[i] + } + } + return nil +} + +// ModuleFieldIsSecret 判断某模块某字段是否为密钥字段(落库加密、前端脱敏)。 +// 以目录定义为准;目录里没有的键回退到通用命名规则 IsSecretField,防止漏加密。 +func ModuleFieldIsSecret(module, key string) bool { + if def := FindModuleDef(module); def != nil { + for _, f := range def.Fields { + if f.Key == key { + return f.Secret + } + } + } + return IsSecretField(key) +} + +// LoadOrSeedModuleConfig 「库优先,无则读 yaml 回写」——业务服务(home)启动时用。 +// +// db 已连上的**应用业务库**(mysql/pg,本服务自己的库;整表即属本应用,无需 app_name/region 过滤)。 +// encKey ${FIELD_ENCRYPT_KEY},须与 console 一致;密钥字段解密/加密用。 +// sys GetSettings().Sys(map 引用);对每个模块,库有则把库值覆盖回 Sys[SysKey] 再供随后 OnInit 用。 +// +// 按模块粒度处理:某模块在库里有行 → 覆盖 Sys(改配置需重启才生效);库里无该模块 → 把当前 yaml 值 seed 进库 +// (source 语义由存在与否表达;密钥字段加密落库),Sys 保持 yaml 原值不动。best-effort:seed 单条失败即返回错误由调用方降级。 +func LoadOrSeedModuleConfig(db mysql.ISys, encKey string, sys map[string]map[string]interface{}) error { + if db == nil { + return nil + } + if err := db.CreateTable(TableAppModuleConfig, &AppModuleConfig{}); err != nil { + return err + } + rows := make([]*AppModuleConfig, 0) + if err := db.Find(TableAppModuleConfig, &rows, ""); err != nil { + return err + } + byModule := make(map[string][]*AppModuleConfig) + for _, r := range rows { + byModule[r.Module] = append(byModule[r.Module], r) + } + + for i := range ModuleCatalog { + def := &ModuleCatalog[i] + if existing := byModule[def.Module]; len(existing) > 0 { + // 库有:覆盖 Sys[SysKey](密钥解密、按 yaml 原值类型还原)。 + sec := sys[def.SysKey] + if sec == nil { + sec = map[string]interface{}{} + sys[def.SysKey] = sec + } + for _, r := range existing { + val := r.Value + if r.Encrypted && val != "" { + if plain, e := Decrypt(encKey, val); e == nil { + val = plain + } + } + sec[r.Key] = coerceVal(val, sec[r.Key]) + } + continue + } + // 库无该模块:把当前 yaml 值 seed 进库(仅 seed yaml 里确有的字段;yaml 无此段则跳过)。 + sec := sys[def.SysKey] + if sec == nil { + continue + } + for _, f := range def.Fields { + v, ok := sec[f.Key] + if !ok { + continue + } + val := stringifyVal(v) + if f.Secret && val != "" { + if ct, e := Encrypt(encKey, val); e == nil { + val = ct + } + } + row := &AppModuleConfig{Module: def.Module, Key: f.Key, Value: val, Encrypted: f.Secret} + if e := db.Insert(TableAppModuleConfig, row); e != nil { + return e + } + } + } + return nil +} diff --git a/apps/services/comm/nats.go b/apps/services/comm/nats.go index 747f1f37..a638448f 100644 --- a/apps/services/comm/nats.go +++ b/apps/services/comm/nats.go @@ -34,6 +34,9 @@ const ( ConfigKindTemplate = "template" // 会议公共模板(echomeet 模块重载) ConfigKindThirdSvc = "third_svc" // 依赖服务配置(业务侧重载字段缓存) ConfigKindCallTranslate = "call_translate" // 通话翻译配置(translate 模块重载) + ConfigKindServiceConfig = "service_config" // 应用×服务基础设施/运行配置(后台改后广播;DSN 等多需重启才生效) + ConfigKindAgent = "agent" // yunyan 自管 Agent 配置(后台改后广播;下发客户端) + ConfigKindModuleConfig = "module_config" // 应用业务功能配置(登录/短信/邮件/支付;存业务库,后台改后广播、业务侧重载) ) // ConfigChangedEvent console→业务 的「配置已变更」广播事件。 diff --git a/apps/services/comm/svcruntime.go b/apps/services/comm/svcruntime.go new file mode 100644 index 00000000..6fc8814f --- /dev/null +++ b/apps/services/comm/svcruntime.go @@ -0,0 +1,176 @@ +package comm + +import ( + "encoding/json" + "fmt" + "reflect" + "strconv" + "strings" + + "yunyan/lego/sys/postgres" +) + +// 应用×服务的「基础设施/运行配置」托管。 +// +// 目标:业务服务启动时—— +// 1. 先用本地 yaml/env 连上 console 共享库(postgres); +// 2. 若库中没有本(应用,区域,服务)的配置,则把当前文件里的基础设施配置(DSN/Redis/NATS/COS…) seed 进库(source=file), +// 这样 console「应用的服务配置」页立刻能看到默认值; +// 3. 若库中已有,则以库为准,覆盖内存里的 Sys 配置(后台改过的值生效),再继续初始化 mysql/redis/cos 等。 +// +// 注意:postgres 自身是 bootstrap(要先连它才能读配置),故它不纳入托管;其覆盖也不会在本次启动生效。 +// 密钥字段(DSN/密码/secret/token)以 AES-256-GCM 密文落库(comm.Encrypt,密钥 ${FIELD_ENCRYPT_KEY}), +// console 与业务服务必须配同一把 key。 + +// svcRuntimeSections 纳入托管的 Sys 子系统(基础设施/运行配置)。postgres/log/lgid 等 bootstrap 不含。 +var svcRuntimeSections = []string{"mysql", "redis", "nats", "cos", "email", "translate"} + +// AppServiceConfig 一行 = 某应用×区域×服务 的一个配置项(扁平化点号无关,直接存 section+key)。 +// 存 console 共享库(postgres.GetSys()),与 global_config 同库;console 前端读写、业务服务启动 seed/读取。 +type AppServiceConfig struct { + Id uint64 `gorm:"primaryKey;autoIncrement;column:id" json:"id"` + AppName string `gorm:"column:app_name;size:64;uniqueIndex:uidx_svcconf" json:"app_name"` // 应用名(app_registry.app_name) + Region string `gorm:"column:region;size:32;uniqueIndex:uidx_svcconf" json:"region"` // 区域(app_registry.region),可空 + Service string `gorm:"column:service;size:32;uniqueIndex:uidx_svcconf" json:"service"` // 服务类型 api/gateway/home… + Section string `gorm:"column:section;size:32;uniqueIndex:uidx_svcconf" json:"section"` // 配置分区 mysql/redis/nats/cos… + Key string `gorm:"column:key;size:64;uniqueIndex:uidx_svcconf" json:"key"` // 配置键 Dsn/Addr/Password… + Value string `gorm:"column:value;type:text" json:"value"` // 值(密钥字段存 AES-GCM 密文;非标量存 JSON) + Encrypted bool `gorm:"column:encrypted" json:"encrypted"` // 是否密钥字段(前端脱敏、落库加密) + Source string `gorm:"column:source;size:16" json:"source"` // file=启动 seed 自文件 / db=后台改过 + Description string `gorm:"column:description;size:255" json:"description"` + Sort int32 `gorm:"column:sort" json:"sort"` + Createtime int64 `gorm:"column:createtime" json:"createtime"` + Updatetime int64 `gorm:"column:updatetime" json:"updatetime"` +} + +func (AppServiceConfig) TableName() string { return TableAppServiceConfig } + +// IsSecretField 判断某配置键是否为需加密/脱敏的密钥字段(DSN 含库密码,一并算密钥)。 +func IsSecretField(key string) bool { + k := strings.ToLower(key) + return strings.Contains(k, "password") || strings.Contains(k, "pwd") || + strings.Contains(k, "secret") || strings.Contains(k, "token") || + strings.Contains(k, "privatekey") || k == "dsn" +} + +// stringifyVal 把任意配置值转为可落库的字符串:标量用 fmt,容器(list/map)用 JSON。 +func stringifyVal(v interface{}) string { + switch v.(type) { + case string: + return v.(string) + case bool, int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, float32, float64: + return fmt.Sprint(v) + default: + if b, err := json.Marshal(v); err == nil { + return string(b) + } + return fmt.Sprint(v) + } +} + +// coerceVal 把库里的字符串按内存中原值 orig 的类型还原,供覆盖 Sys map 用。orig 为 nil 时按字符串处理。 +func coerceVal(s string, orig interface{}) interface{} { + if orig == nil { + // 库里有、文件里没有的键:尝试当 JSON,否则原样字符串。 + var any interface{} + if json.Unmarshal([]byte(s), &any) == nil { + switch any.(type) { + case []interface{}, map[string]interface{}: + return any + } + } + return s + } + switch orig.(type) { + case string: + return s + case bool: + if b, err := strconv.ParseBool(s); err == nil { + return b + } + case int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64: + if n, err := strconv.ParseInt(s, 10, 64); err == nil { + return int(n) + } + case float32, float64: + if f, err := strconv.ParseFloat(s, 64); err == nil { + return f + } + default: + // list/map:反序列化回同结构(失败则保留原值)。 + nv := reflect.New(reflect.TypeOf(orig)).Interface() + if json.Unmarshal([]byte(s), nv) == nil { + return reflect.ValueOf(nv).Elem().Interface() + } + } + return orig +} + +// LoadOrSeedServiceConfig 「库优先,无则读文件回写」。返回 seeded=true 表示本次是首次 seed。 +// +// encKey ${FIELD_ENCRYPT_KEY},与 console 一致;用于密钥字段加解密。 +// app 应用名(空则直接跳过,返回 false,nil——未接入托管的服务不产生孤儿数据)。 +// region 区域(可空)。service 服务类型(如 "api")。 +// sys GetSettings().Sys(map 引用),有覆盖时就地改写其内容,供随后 OnInit 使用。 +func LoadOrSeedServiceConfig(encKey, app, region, service string, sys map[string]map[string]interface{}) (seeded bool, err error) { + if strings.TrimSpace(app) == "" { + return false, nil + } + if err = postgres.CreateTable(TableAppServiceConfig, &AppServiceConfig{}); err != nil { + return false, err + } + rows := make([]*AppServiceConfig, 0) + if err = postgres.Find(TableAppServiceConfig, &rows, + "app_name=? AND region=? AND service=?", app, region, service); err != nil { + return false, err + } + + // 库已有:以库为准,覆盖内存 Sys(postgres 分区跳过——它是 bootstrap,本次已连)。 + if len(rows) > 0 { + for _, r := range rows { + if r.Section == "postgres" { + continue + } + sec := sys[r.Section] + if sec == nil { + sec = map[string]interface{}{} + sys[r.Section] = sec + } + val := r.Value + if r.Encrypted { + if plain, e := Decrypt(encKey, r.Value); e == nil { + val = plain + } + } + sec[r.Key] = coerceVal(val, sec[r.Key]) + } + return false, nil + } + + // 库为空:把当前文件里的基础设施配置 seed 进库(source=file)。 + for _, section := range svcRuntimeSections { + kv := sys[section] + if kv == nil { + continue + } + var sort int32 + for k, v := range kv { + enc := IsSecretField(k) + val := stringifyVal(v) + if enc && val != "" { + if ct, e := Encrypt(encKey, val); e == nil { + val = ct + } + } + row := &AppServiceConfig{ + AppName: app, Region: region, Service: service, + Section: section, Key: k, Value: val, Encrypted: enc, Source: "file", Sort: sort, + } + if e := postgres.Insert(TableAppServiceConfig, row); e != nil { + return false, e + } + sort++ + } + } + return true, nil +} diff --git a/apps/services/dump.rdb b/apps/services/dump.rdb index 3f86b71a027af31b44c85990e8e1cd8d677d2993..cae1d742f851f53c9973cf9e15c937cddd1a19a3 100644 GIT binary patch delta 642 zcmYL^Z7dXU9Dwilzr#74U08~%%V?LEoDZS?a&r-e|>YK>;A$yRH%TS-~#S_<8_K0JFqK6{qlvf%~REEB~YPb^yHpRUvt zgp_DX9ycG<#d!)Ae+Z@Rz~S)3Sf1o1$kS>nDho?bsf&irpJAB58zmb{1zP8Iaw)<& z9?;A;kXFFuqMOi&XWb0A#~slu)YDV4qqcQLU#M@Uw@GEM9F4)3#bD+xs`5v(E!O=ZiRLw@}=I)@>&0 z7AF8**uKKUu>d0m+9~t5Q0C4MAfPCR-lRTJ{YLLU3jF;hDMl~q#QI#*owz*(MW~#SaURadk z|Fq;%$36A9gFFIn9S#skHY97DXi3OBK*y|gn$PjD$Ew$WT(vHY#8uybz8+f!s<=4~ zv{7dRTF86mPUaLxMy&^u8S%1bxpbo3!pO5`$%%em^yks;%NC$5^{JUyW%O7N z>zw!bo=~HtB6G>RElxjlDi+abW78r_ezCa>%di^xfq&q!=j+um!alrWHCmq{kEQsR zxV)^eAhNWuv{#T}Unv*Ge;HKTw}e7T`{4tOZV9b`6ReAViyDPEHjAeQaU#$G2@|4J z>cq;~JQ`$nY?L~wU-kkh-FF?sw+aU}$rFIe{p%PF1pWk^6X?dipnE7)y7ACF#79aO zO#~+a<^=N;7xGnvX^Y(0y^zQ7g*-_YM}lt;3HlP+6Yl#QT(GlXfr&FN#hX6!L5Dt) zF!0BX!T@ndQIM94%C}+99yvB7iLpxUFNxC|j0U}))5XxzC4GR7a0gC?xzHWqM0JFV z)@vlpx98h5e&;`~i;bDaRamXrFOy|+#yHNv>5Y1=k<(&&)H$q*cH*Zf2VT=UQLg1_ zIX5iER#Pnom}>B;8F7W#L3ztIGfathV&@76y^bGelx`6-^d#0&_9`n#CO-};FM&WH zQrNQ(cL9x*&SdnaW&r5u*-YkTzAX^+B}QZ9`U)`M#uM}Kbe%VP zcni+4de5ElH&Pd)@)qg2SgkJPNW+Z;59nf5G90Z|W2(y!$1n_e>toXF9THN`20uoY z+8K4KuuMlBC0;7VAOxa z4fJ&N6QJIcVn(jx8b({!+y$D?hcde6*v}~Wd^=Eg{WSXHLO)PO<^xbon&1B$ZL#ex zv+XK0<>%(_C^T))&EIF+TNy|*8%6<3F4g0^#@~3R$%W&W+em#S9&oU^1@oFqsH`Q6 kVdKRC8oIg+Fy;Cw>}cb0c3Uewzy1=$3hVdc;ml|DKbVpwUH||9 diff --git a/apps/services/log/console.log b/apps/services/log/console.log index 4893656f..0a13db8a 100644 --- a/apps/services/log/console.log +++ b/apps/services/log/console.log @@ -1,21 +1,15 @@ -2026/06/29 10:01:35.232 INFO sys log Init success ! -2026/06/29 10:01:35.234 INFO sys event Init success ! -2026/06/29 10:01:36.883 INFO console: sys.postgres(主库)初始化成功 -2026/06/29 10:01:36.888 INFO console: sys.redis 初始化成功 -2026/06/29 10:01:36.904 INFO console: sys.nats 初始化成功 -2026/06/29 10:01:36.904 INFO console: sys.cos 初始化成功 -2026/06/29 10:01:36.904 INFO 服务[console-d90t3vs4kvnsr2d9sdcg] 初始化完成! -2026/06/29 10:01:36.904 INFO 服务[console-d90t3vs4kvnsr2d9sdcg:1.0.0.0] 启动完成! -2026/06/29 10:01:40.884 INFO console.stat: 订阅前 JetStream 流 STATS 当前消息数=0 subjects=[stats.event] -2026/06/29 10:01:40.888 INFO console.stat: 统计快照消费已启动 subject=stats.event stream=STATS durable=console-stats -2026/06/29 10:01:40.888 INFO console: HTTP 服务监听 :8080(静态目录 ./consoleweb) -2026/06/29 10:01:40.888 DEBUG 启动模块【console】 -2026/06/29 23:27:46.394 ERROR console/model_device_cache.go:76 [module.console] deviceCache refreshFactorys load err:failed to connect to `user=postgres.zqwfawlmlxjpgqlyigii database=postgres`: hostname resolving error: lookup aws-1-us-west-2.pooler.supabase.com: no such host -2026/06/29 23:44:06.400 ERROR console/model_device_cache.go:105 [module.console] deviceCache refreshProducts load err:failed to connect to `user=postgres.zqwfawlmlxjpgqlyigii database=postgres`: hostname resolving error: lookup aws-1-us-west-2.pooler.supabase.com: no such host -2026/06/29 23:56:46.411 ERROR console/model_device_cache.go:148 [module.console] deviceCache refreshProductVersions load err:failed to connect to `user=postgres.zqwfawlmlxjpgqlyigii database=postgres`: hostname resolving error: lookup aws-1-us-west-2.pooler.supabase.com: no such host -2026/06/30 03:18:09.111 ERROR console/model_device_cache.go:76 [module.console] deviceCache refreshFactorys load err:failed to connect to `user=postgres.zqwfawlmlxjpgqlyigii database=postgres`: hostname resolving error: lookup aws-1-us-west-2.pooler.supabase.com: no such host -2026/06/30 03:18:39.119 ERROR console/model_device_cache.go:105 [module.console] deviceCache refreshProducts load err:failed to connect to `user=postgres.zqwfawlmlxjpgqlyigii database=postgres`: hostname resolving error: lookup aws-1-us-west-2.pooler.supabase.com: no such host -2026/06/30 03:19:09.123 ERROR console/model_device_cache.go:148 [module.console] deviceCache refreshProductVersions load err:failed to connect to `user=postgres.zqwfawlmlxjpgqlyigii database=postgres`: hostname resolving error: lookup aws-1-us-west-2.pooler.supabase.com: no such host -2026/06/30 07:05:56.071 ERROR console/model_device_cache.go:76 [module.console] deviceCache refreshFactorys load err:failed to connect to `user=postgres.zqwfawlmlxjpgqlyigii database=postgres`: hostname resolving error: lookup aws-1-us-west-2.pooler.supabase.com: no such host -2026/06/30 07:06:26.079 ERROR console/model_device_cache.go:105 [module.console] deviceCache refreshProducts load err:failed to connect to `user=postgres.zqwfawlmlxjpgqlyigii database=postgres`: hostname resolving error: lookup aws-1-us-west-2.pooler.supabase.com: no such host -2026/06/30 07:39:03.753 ERROR console/model_device_cache.go:148 [module.console] deviceCache refreshProductVersions load err:failed to connect to `user=postgres.zqwfawlmlxjpgqlyigii database=postgres`: hostname resolving error: lookup aws-1-us-west-2.pooler.supabase.com: no such host +2026/07/02 09:53:31.754 INFO sys log Init success ! +2026/07/02 09:53:31.755 INFO sys event Init success ! +2026/07/02 09:53:34.039 INFO console: sys.postgres(主库)初始化成功 +2026/07/02 09:53:34.043 INFO console: sys.redis 初始化成功 +2026/07/02 09:53:34.049 INFO console: sys.nats 初始化成功 +2026/07/02 09:53:34.049 INFO console: sys.cos 初始化成功 +2026/07/02 09:53:34.049 INFO 服务[console-d92s96s4kvnttov4g2c0] 初始化完成! +2026/07/02 09:53:34.049 INFO 服务[console-d92s96s4kvnttov4g2c0:1.0.0.0] 启动完成! +2026/07/02 09:53:46.732 INFO console.stat: 订阅前 JetStream 流 STATS 当前消息数=0 subjects=[stats.event] +2026/07/02 09:53:46.735 INFO console.stat: 统计快照消费已启动 subject=stats.event stream=STATS durable=console-stats +2026/07/02 09:53:46.735 INFO console: HTTP 服务监听 :8080(静态目录 ./consoleweb) +2026/07/02 09:53:46.735 DEBUG 启动模块【console】 +2026/07/02 21:05:59.822 ERROR cbase/servicebase.go:147 服务[console-d92s96s4kvnttov4g2c0] 关闭 signal = terminated + +2026/07/02 21:05:59.825 INFO 服务【console-d92s96s4kvnttov4g2c0】关闭成功 diff --git a/apps/services/modules/console/api_agent.go b/apps/services/modules/console/api_agent.go new file mode 100644 index 00000000..5db621d3 --- /dev/null +++ b/apps/services/modules/console/api_agent.go @@ -0,0 +1,201 @@ +package console + +import ( + "strconv" + "strings" + "time" + + "yunyan/comm" + "yunyan/lego/sys/postgres" + "yunyan/pb" + + "github.com/gin-gonic/gin" +) + +// ============================ Agent 配置域 (agent) ============================ +// +// yunyan 自管 agents 的管理端 CRUD,存 console 主库(postgres.GetSys())。 +// agent 编排引用第三方服务(ThirdSvcConfig)的 id;保存时按 Type 校验必需的服务引用「存在且类别匹配」。 +// 配置「下发客户端」由后续阶段的下发接口 + modules/agents 改造承接。 + +// agentSvcRef 一个待校验的服务引用(哪个位置、引用的 svcId、期望的服务类别)。 +type agentSvcRef struct { + label string + svcId string + cat int32 +} + +// collectAgentSvcRefs 按 agent 类型收集其应校验的服务引用集合。 +func collectAgentSvcRefs(a *AgentConfig) []agentSvcRef { + switch a.Type { + case AgentTypeChat: + return []agentSvcRef{ + {"STT 语音识别", a.SttSvcId, svcCatSTT}, + {"LLM 大语言", a.LlmSvcId, svcCatLLM}, + {"TTS 语音合成", a.TtsSvcId, svcCatTTS}, + } + case AgentTypeTranslate: + return []agentSvcRef{ + {"STT 语音识别", a.SttSvcId, svcCatSTT}, + {"MT 机器翻译", a.MtSvcId, svcCatMT}, + {"TTS 语音合成", a.TtsSvcId, svcCatTTS}, + } + case AgentTypeStsChat: + return []agentSvcRef{{"STS 端到端对话", a.StsSvcId, svcCatSTS}} + case AgentTypeAstTranslate: + return []agentSvcRef{{"AST 端到端翻译", a.AstSvcId, svcCatAST}} + } + return nil +} + +// svcHasCategory 判断 ThirdSvcConfig.Categories("1,2,3") 是否包含目标类别。 +func svcHasCategory(categories string, cat int32) bool { + want := strconv.Itoa(int(cat)) + for _, s := range strings.Split(categories, ",") { + if strings.TrimSpace(s) == want { + return true + } + } + return false +} + +// validateAgentSvcRefs 校验 agent 引用的服务:必填、存在、类别匹配。返回错误说明(空串=通过)。 +// 引用在 agent 自己的应用作用域内解析,未命中回退全局(app_name='')——与运行时「应用优先、无则全局」一致。 +func validateAgentSvcRefs(a *AgentConfig) string { + refs := collectAgentSvcRefs(a) + if len(refs) == 0 { + return "未知的智能体类型: " + a.Type + } + for _, r := range refs { + if strings.TrimSpace(r.svcId) == "" { + return r.label + " 必选" + } + cfg := &ThirdSvcConfig{} + err := postgres.FindOne(comm.TableSvcConfig, cfg, "app_name=? AND id=?", a.AppName, r.svcId) + if err != nil && a.AppName != "" { // 应用作用域未命中 → 回退全局 + err = postgres.FindOne(comm.TableSvcConfig, cfg, "app_name=? AND id=?", "", r.svcId) + } + if err != nil { + return r.label + " 引用的服务不存在: " + r.svcId + } + if !svcHasCategory(cfg.Categories, r.cat) { + return r.label + " 引用的服务类别不匹配: " + r.svcId + } + } + return "" +} + +// ============================== Agent CRUD ============================== + +// getAgents 列出某作用域(app_name)下全部 agent 配置。app_name='' 为全局默认。 +func (this *serverComp) getAgents(c *gin.Context) { + var req struct { + AppName string `json:"app_name"` + } + _ = c.ShouldBindJSON(&req) + items := make([]*AgentConfig, 0) + if err := postgres.Find(comm.TableAgentConfig, &items, "app_name=?", req.AppName); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + writeOK(c, gin.H{"items": items}) +} + +// getAgent 取单个 agent 配置(按 app_name+id)。 +func (this *serverComp) getAgent(c *gin.Context) { + var req struct { + AppName string `json:"app_name"` + Id string `json:"id"` + } + if err := c.ShouldBindJSON(&req); err != nil || strings.TrimSpace(req.Id) == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "id 必填") + return + } + m := &AgentConfig{} + if err := postgres.FindOne(comm.TableAgentConfig, m, "app_name=? AND id=?", req.AppName, req.Id); err != nil { + writeErr(c, pb.ErrorCode_DBError, "智能体不存在: "+req.Id) + return + } + writeOK(c, gin.H{"agent": m}) +} + +// addAgent 新增 agent 配置(作用域内 app_name+id 唯一)。 +func (this *serverComp) addAgent(c *gin.Context) { + var m AgentConfig + if err := c.ShouldBindJSON(&m); err != nil { + writeErr(c, pb.ErrorCode_ReqParameterError, err.Error()) + return + } + if strings.TrimSpace(m.Id) == "" || strings.TrimSpace(m.Name) == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "智能体ID 和 名称 必填") + return + } + exist := &AgentConfig{} + if err := postgres.FindOne(comm.TableAgentConfig, exist, "app_name=? AND id=?", m.AppName, m.Id); err == nil { + writeErr(c, pb.ErrorCode_ReqParameterError, "智能体ID 已存在: "+m.Id) + return + } + if msg := validateAgentSvcRefs(&m); msg != "" { + writeErr(c, pb.ErrorCode_ReqParameterError, msg) + return + } + m.RowId = 0 // 代理主键由库自增回填 + now := time.Now().UnixMilli() + m.Createtime = now + m.Updatetime = now + if err := postgres.Insert(comm.TableAgentConfig, &m); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + broadcastConfigChanged(comm.ConfigKindAgent, "add", 0) + writeOK(c, &m) +} + +// updateAgent 更新 agent 配置(按 app_name+id)。 +func (this *serverComp) updateAgent(c *gin.Context) { + var m AgentConfig + if err := c.ShouldBindJSON(&m); err != nil { + writeErr(c, pb.ErrorCode_ReqParameterError, err.Error()) + return + } + if strings.TrimSpace(m.Id) == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "智能体ID 必填") + return + } + old := &AgentConfig{} + if err := postgres.FindOne(comm.TableAgentConfig, old, "app_name=? AND id=?", m.AppName, m.Id); err != nil { + writeErr(c, pb.ErrorCode_DBError, "智能体不存在: "+m.Id) + return + } + if msg := validateAgentSvcRefs(&m); msg != "" { + writeErr(c, pb.ErrorCode_ReqParameterError, msg) + return + } + m.RowId = old.RowId // 按代理主键更新本行 + m.Createtime = old.Createtime + m.Updatetime = time.Now().UnixMilli() + if err := postgres.Save(comm.TableAgentConfig, &m); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + broadcastConfigChanged(comm.ConfigKindAgent, "update", 0) + writeOK(c, &m) +} + +// delAgent 删除 agent 配置(按 app_name+id)。 +func (this *serverComp) delAgent(c *gin.Context) { + var req struct { + AppName string `json:"app_name"` + Id string `json:"id"` + } + if err := c.ShouldBindJSON(&req); err != nil || strings.TrimSpace(req.Id) == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "id 必填") + return + } + if err := postgres.Delete(comm.TableAgentConfig, "app_name=? AND id=?", req.AppName, req.Id); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + broadcastConfigChanged(comm.ConfigKindAgent, "delete", 0) + writeOK(c, gin.H{"id": req.Id}) +} diff --git a/apps/services/modules/console/api_config.go b/apps/services/modules/console/api_config.go index 3cf0a83d..3eedb5d7 100644 --- a/apps/services/modules/console/api_config.go +++ b/apps/services/modules/console/api_config.go @@ -55,19 +55,79 @@ func ensureConfigTables() error { if err := pg.CreateTable(comm.TableEchomeetTemplate, &pb.DBEchoMeetTemplate{}); err != nil { return err } - // 依赖服务配置 / 通话翻译配置(移植自 deep_server,本地 struct,存同一主库)。 - if err := pg.CreateTable(comm.TableThirdSvcConfig, &ThirdSvcConfig{}); err != nil { + // 服务商字段模板(全局 schema 预设,不按应用分离)——保持原表。 + if err := pg.CreateTable(comm.TableThirdSvcTemplate, &ThirdSvcTemplate{}); err != nil { return err } - if err := pg.CreateTable(comm.TableThirdSvcRegionOverride, &SvcRegionOverride{}); err != nil { - return err + // 老表缺 provider 列会让 seedSvcTemplates 的 Insert 静默失败,故幂等补列(须在 seed 前)。 + if res := postgres.Exec("ALTER TABLE " + comm.TableThirdSvcTemplate + " ADD COLUMN IF NOT EXISTS provider varchar(64) DEFAULT ''"); res.Error != nil { + return res.Error } + // 通话翻译配置——保持原表。 if err := pg.CreateTable(comm.TableCallTranslatePair, &CallTranslatePair{}); err != nil { return err } + // 按应用分离的新表(app_name=''为全局默认,'X'为应用X覆盖):第三方服务配置 / 区域覆盖 / Agent 配置。 + // 独立于老的 third_svc_config / third_svc_region_override / agent 表,避免影响现有服务接口。 + if err := pg.CreateTable(comm.TableSvcConfig, &ThirdSvcConfig{}); err != nil { + return err + } + if err := pg.CreateTable(comm.TableSvcRegionOverride, &SvcRegionOverride{}); err != nil { + return err + } + if err := pg.CreateTable(comm.TableAgentConfig, &AgentConfig{}); err != nil { + return err + } + // 一次性迁移:老表数据 → 新表 app_name='' 全局作用域(新表为空且老表存在时)。 + migrateLegacyConfigToScoped() + // 幂等 seed 内置服务商模板(仅补缺失项,不覆盖用户改动)。 + seedSvcTemplates() return nil } +// pgTableExists 判断 console 主库(public schema)是否存在某表。 +func pgTableExists(name string) bool { + var reg *string + postgres.Raw("SELECT to_regclass(?)", "public."+name).Scan(®) + return reg != nil +} + +// pgTableEmpty 判断某表是否为空(不存在按空处理)。 +func pgTableEmpty(name string) bool { + if !pgTableExists(name) { + return true + } + var n int64 + postgres.Table(name).Count(&n) + return n == 0 +} + +// migrateLegacyConfigToScoped 把老的全局配置表数据迁入按应用分离的新表(app_name='')。 +// 仅当新表为空且老表存在时执行(幂等:迁过一次后新表非空即跳过)。best-effort:单表失败仅告警,不阻断启动。 +func migrateLegacyConfigToScoped() { + migs := []struct{ newT, oldT, sql string }{ + {comm.TableSvcConfig, comm.TableThirdSvcConfig, + `INSERT INTO ` + comm.TableSvcConfig + ` (app_name,id,name,provider,categories,description,enable,fields,createtime,updatetime) ` + + `SELECT '',id,name,provider,categories,description,enable,fields,createtime,updatetime FROM ` + comm.TableThirdSvcConfig}, + {comm.TableSvcRegionOverride, comm.TableThirdSvcRegionOverride, + `INSERT INTO ` + comm.TableSvcRegionOverride + ` (app_name,svc_id,region,overrides,extra_fields,disabled_keys,updatetime) ` + + `SELECT '',svc_id,region,overrides,extra_fields,disabled_keys,updatetime FROM ` + comm.TableThirdSvcRegionOverride}, + {comm.TableAgentConfig, comm.TableAgent, + `INSERT INTO ` + comm.TableAgentConfig + ` (app_name,id,name,type,description,avatar_url,enable,stt_svc_id,llm_svc_id,tts_svc_id,mt_svc_id,sts_svc_id,ast_svc_id,system_prompt,gender,greeting_enabled,greeting_text,support_langs,default_lang,voice_map,sort,createtime,updatetime) ` + + `SELECT '',id,name,type,description,avatar_url,enable,stt_svc_id,llm_svc_id,tts_svc_id,mt_svc_id,sts_svc_id,ast_svc_id,system_prompt,gender,greeting_enabled,greeting_text,support_langs,default_lang,voice_map,sort,createtime,updatetime FROM ` + comm.TableAgent}, + } + for _, m := range migs { + if !pgTableEmpty(m.newT) || !pgTableExists(m.oldT) { + continue + } + if res := postgres.Exec(m.sql); res.Error != nil { + log.Warnf("console: 迁移 %s → %s 失败(可忽略,可后台重录): %v", m.oldT, m.newT, res.Error) + } else if res.RowsAffected > 0 { + log.Infof("console: 已迁移 %d 行 %s → %s (全局作用域 app_name='')", res.RowsAffected, m.oldT, m.newT) + } + } +} + // ---------------------------- 全局环境配置 (global_config) ---------------------------- // getGlobalConfigs 列出全局第三方服务配置;region>0 时按区域过滤,否则全量。 diff --git a/apps/services/modules/console/api_environment.go b/apps/services/modules/console/api_environment.go new file mode 100644 index 00000000..2c72d351 --- /dev/null +++ b/apps/services/modules/console/api_environment.go @@ -0,0 +1,283 @@ +package console + +import ( + "fmt" + "net" + "strings" + "time" + + "yunyan/pb" + + "github.com/gin-gonic/gin" + "golang.org/x/crypto/ssh" +) + +// ============================ 部署环境域 (environment) ============================ +// +// 环境 = 一个部署目标/区域(上海/日本/新加坡…),一行存在 console 主库(postgres.GetSys())。 +// 本期只做「CRUD + 连通性测试」;远程部署执行留待下一期(字段已备齐,见 model_environment.go)。 +// +// 密钥字段一律 AES-256-GCM 加密落库(复用 api_svcconfig.go 的 svcEncrypt/svcDecrypt), +// 返回前端前脱敏为 envEncMask;更新/测试时前端回传占位符则保留/解密旧密文。 + +const envEncMask = "[encrypted]" + +// envSecretPtrs 节点里所有需要加密存储/脱敏返回的密钥字段指针(顺序与 fillEnvSecretsForTest 一致)。 +func envSecretPtrs(m *AppEnvironment) []*string { + return []*string{&m.SshPrivateKey, &m.RegistryPass, &m.RedisPwd} +} + +// maskEnvSecrets 返回前端前脱敏:非空密文 → envEncMask,绝不明文下发。 +func maskEnvSecrets(m *AppEnvironment) { + for _, p := range envSecretPtrs(m) { + if *p != "" { + *p = envEncMask + } + } +} + +// encryptEnvSecrets 新增时把密钥字段就地加密(占位/空 → 空串,新增无旧密文可保留)。 +func (this *serverComp) encryptEnvSecrets(m *AppEnvironment) error { + key := this.options.EncryptKey + for _, p := range envSecretPtrs(m) { + if *p == "" || *p == envEncMask { + *p = "" + continue + } + ct, err := svcEncrypt(key, *p) + if err != nil { + return err + } + *p = ct + } + return nil +} + +// mergeEnvSecrets 更新时逐个密钥字段:前端传占位/空 → 保留 old 的旧密文;否则用新明文加密覆盖。 +func (this *serverComp) mergeEnvSecrets(in, old *AppEnvironment) error { + key := this.options.EncryptKey + inPtrs, oldPtrs := envSecretPtrs(in), envSecretPtrs(old) + for i := range inPtrs { + if *inPtrs[i] == "" || *inPtrs[i] == envEncMask { + *inPtrs[i] = *oldPtrs[i] + continue + } + ct, err := svcEncrypt(key, *inPtrs[i]) + if err != nil { + return err + } + *inPtrs[i] = ct + } + return nil +} + +// fillEnvSecretsForTest 测试既有环境时,前端传占位/空的密钥字段回填为解密后的旧明文,供拨测使用。 +func (this *serverComp) fillEnvSecretsForTest(req *AppEnvironment) { + if req.Id == 0 { + return + } + old, err := this.module.model.getEnv(req.Id) + if err != nil { + return + } + key := this.options.EncryptKey + inPtrs, oldPtrs := envSecretPtrs(req), envSecretPtrs(old) + for i := range inPtrs { + if *inPtrs[i] == "" || *inPtrs[i] == envEncMask { + if plain, e := svcDecrypt(key, *oldPtrs[i]); e == nil { + *inPtrs[i] = plain + } + } + } +} + +// ============================== 环境 CRUD ============================== + +func (this *serverComp) envList(c *gin.Context) { + models, err := this.module.model.listEnvs() + if err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + for _, m := range models { + maskEnvSecrets(m) // 密钥不下发前端 + } + writeOK(c, models) +} + +func (this *serverComp) envAdd(c *gin.Context) { + var model AppEnvironment + if err := c.ShouldBindJSON(&model); err != nil { + writeErr(c, pb.ErrorCode_ReqParameterError, err.Error()) + return + } + if strings.TrimSpace(model.Name) == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "名称必填") + return + } + if model.SshPort == 0 { + model.SshPort = 22 + } + if err := this.encryptEnvSecrets(&model); err != nil { + writeErr(c, pb.ErrorCode_SystemError, "加密失败: "+err.Error()) + return + } + model.Id = 0 + now := time.Now().Unix() + model.Createtime = now + model.Updatetime = now + if err := this.module.model.addEnv(&model); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + maskEnvSecrets(&model) + writeOK(c, &model) +} + +func (this *serverComp) envUpdate(c *gin.Context) { + var in AppEnvironment + if err := c.ShouldBindJSON(&in); err != nil { + writeErr(c, pb.ErrorCode_ReqParameterError, err.Error()) + return + } + if in.Id == 0 { + writeErr(c, pb.ErrorCode_ReqParameterError, "id 必填") + return + } + old, err := this.module.model.getEnv(in.Id) + if err != nil { + writeErr(c, pb.ErrorCode_DBError, "环境不存在: "+err.Error()) + return + } + if in.SshPort == 0 { + in.SshPort = 22 + } + if err := this.mergeEnvSecrets(&in, old); err != nil { + writeErr(c, pb.ErrorCode_SystemError, "加密失败: "+err.Error()) + return + } + in.Createtime = old.Createtime // 建时间不可改 + in.Updatetime = time.Now().Unix() + if err := this.module.model.saveEnv(&in); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + maskEnvSecrets(&in) + writeOK(c, &in) +} + +func (this *serverComp) envDel(c *gin.Context) { + var req struct { + Id uint32 `json:"id"` + } + if err := c.ShouldBindJSON(&req); err != nil || req.Id == 0 { + writeErr(c, pb.ErrorCode_ReqParameterError, "id 必填") + return + } + // 引用完整性:环境下仍有应用关联则拒删,避免应用悬空。 + apps, err := this.module.model.listApps() + if err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + for _, a := range apps { + if a.EnvId == req.Id { + writeErr(c, pb.ErrorCode_ReqParameterError, "该环境下仍有应用("+a.Name+")关联,请先解绑或删除应用") + return + } + } + if err := this.module.model.delEnv(req.Id); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + writeOK(c, gin.H{"id": req.Id}) +} + +// envTest 环境连通性自检:SSH 握手 + 各基础设施拨测,逐项返回。 +// SSH 通即 ok=true(视为可部署);基础设施项仅展示、不硬阻断保存。 +func (this *serverComp) envTest(c *gin.Context) { + var req AppEnvironment + _ = c.ShouldBindJSON(&req) + this.fillEnvSecretsForTest(&req) // 编辑既有节点时回填解密后的旧密钥 + sshOk, sshMsg := testSSHReachable(req.SshHost, req.SshPort, req.SshUser, req.SshPrivateKey) + etcdOk, etcdMsg := testTCPReachable(req.EtcdServers) + redisOk, redisMsg := testTCPReachable(req.RedisAddr) + natsOk, natsMsg := testTCPReachable(req.NatsUrl) + writeOK(c, gin.H{ + "ok": sshOk, + "ssh_ok": sshOk, + "ssh_msg": sshMsg, + "etcd_ok": etcdOk, + "etcd_msg": etcdMsg, + "redis_ok": redisOk, + "redis_msg": redisMsg, + "nats_ok": natsOk, + "nats_msg": natsMsg, + }) +} + +// ============================== 拨测工具 ============================== + +// testSSHReachable 用私钥拨测部署目标:仅验证 host/port/user/私钥能完成握手(本期不执行任何命令)。 +func testSSHReachable(host string, port int, user, privateKeyPEM string) (bool, string) { + host = strings.TrimSpace(host) + if host == "" { + return false, "SSH host 为空" + } + if port == 0 { + port = 22 + } + if strings.TrimSpace(privateKeyPEM) == "" { + return false, "SSH 私钥为空" + } + signer, err := ssh.ParsePrivateKey([]byte(privateKeyPEM)) + if err != nil { + return false, "私钥解析失败: " + err.Error() + } + cfg := &ssh.ClientConfig{ + User: user, + Auth: []ssh.AuthMethod{ssh.PublicKeys(signer)}, + HostKeyCallback: ssh.InsecureIgnoreHostKey(), // 内网部署目标,本期仅拨测不校验 host key + Timeout: 5 * time.Second, + } + cli, err := ssh.Dial("tcp", fmt.Sprintf("%s:%d", host, port), cfg) + if err != nil { + return false, "SSH 连接失败: " + err.Error() + } + _ = cli.Close() + return true, "SSH 握手成功" +} + +// testTCPReachable 通用 TCP 拨测(etcd/redis/nats):取地址串里第一个 host:port,5s 超时。 +func testTCPReachable(addr string) (bool, string) { + hp := firstHostPort(addr) + if hp == "" { + return false, "地址为空" + } + conn, err := net.DialTimeout("tcp", hp, 5*time.Second) + if err != nil { + return false, "不可达: " + err.Error() + } + _ = conn.Close() + return true, "可达" +} + +// firstHostPort 从可能含 scheme / 逗号分隔多地址 / 路径的串里取第一个 host:port。 +// +// nats://a:4222 → a:4222 ; "e1:2379,e2:2379" → e1:2379 ; redis:6379 → redis:6379 +func firstHostPort(addr string) string { + addr = strings.TrimSpace(addr) + if addr == "" { + return "" + } + if i := strings.Index(addr, "://"); i >= 0 { + addr = addr[i+3:] + } + if i := strings.IndexAny(addr, ",;"); i >= 0 { + addr = addr[:i] + } + if i := strings.IndexAny(addr, "/?"); i >= 0 { + addr = addr[:i] + } + return strings.TrimSpace(addr) +} diff --git a/apps/services/modules/console/api_moduleconfig.go b/apps/services/modules/console/api_moduleconfig.go new file mode 100644 index 00000000..d85f42fa --- /dev/null +++ b/apps/services/modules/console/api_moduleconfig.go @@ -0,0 +1,173 @@ +package console + +import ( + "strings" + "time" + + "yunyan/comm" + "yunyan/pb" + + "github.com/gin-gonic/gin" +) + +// ============================ 应用业务功能配置 (modulecfg) ============================ +// +// 「应用服务配置」页(admin appconfig.vue)下半部分的后端:读写**应用业务库**里的 app_module_config 表 +// (登录/短信/邮件/支付…)。与基础设施配置(svcconf, 存 console 公共库)分属两个配置域。 +// +// 业务库连接按部署 appId 从 registry 动态取(与 analyze/重置设备码同机制); +// 密钥字段(是否密钥以 comm.ModuleCatalog 为准)AES-GCM 加密落库、返回前端脱敏为 comm.EncMask。 + +// moduleCfgCatalog 返回业务功能配置的字段目录(前端据此渲染各模块表单、分组)。与选中应用无关。 +func (this *serverComp) moduleCfgCatalog(c *gin.Context) { + writeOK(c, gin.H{"modules": comm.ModuleCatalog}) +} + +// moduleCfgList 列出某部署业务库里的配置项;module 为空则返回全部(用于标记哪些模块已配置)。密钥脱敏。 +func (this *serverComp) moduleCfgList(c *gin.Context) { + var req struct { + AppId uint32 `json:"app_id"` + Module string `json:"module"` + } + _ = c.ShouldBindJSON(&req) + if req.AppId == 0 { + writeErr(c, pb.ErrorCode_ReqParameterError, "app_id 必填") + return + } + db, err := this.module.registry.getServiceDB(req.AppId) + if err != nil { + writeErr(c, pb.ErrorCode_DBError, "连接应用业务库失败: "+err.Error()) + return + } + if err := ensureModuleConfigTable(db); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + rows, err := listModuleConfig(db, strings.TrimSpace(req.Module)) + if err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + for _, m := range rows { + if m.Encrypted && m.Value != "" { + m.Value = comm.EncMask + } + } + writeOK(c, gin.H{"items": rows}) +} + +// moduleCfgSave 保存某模块的配置到应用业务库:逐字段 upsert。 +// 是否密钥以目录为准(不信前端);密钥字段回传占位/空则保留原密文,否则加密新明文;目录外的键忽略。 +func (this *serverComp) moduleCfgSave(c *gin.Context) { + var req struct { + AppId uint32 `json:"app_id"` + Module string `json:"module"` + Items []struct { + Key string `json:"key"` + Value string `json:"value"` + } `json:"items"` + } + if err := c.ShouldBindJSON(&req); err != nil { + writeErr(c, pb.ErrorCode_ReqParameterError, err.Error()) + return + } + req.Module = strings.TrimSpace(req.Module) + if req.AppId == 0 || req.Module == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "app_id 与 module 必填") + return + } + def := comm.FindModuleDef(req.Module) + if def == nil { + writeErr(c, pb.ErrorCode_ReqParameterError, "未知模块: "+req.Module) + return + } + // 目录内合法字段集,过滤前端多传的键。 + allowed := make(map[string]bool, len(def.Fields)) + for _, f := range def.Fields { + allowed[f.Key] = true + } + + db, err := this.module.registry.getServiceDB(req.AppId) + if err != nil { + writeErr(c, pb.ErrorCode_DBError, "连接应用业务库失败: "+err.Error()) + return + } + if err := ensureModuleConfigTable(db); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + + encKey := this.options.EncryptKey + now := time.Now().Unix() + saved := 0 + for _, it := range req.Items { + key := strings.TrimSpace(it.Key) + if key == "" || !allowed[key] { + continue + } + old, e := getModuleConfigItem(db, req.Module, key) + if e != nil { + writeErr(c, pb.ErrorCode_DBError, e.Error()) + return + } + secret := comm.ModuleFieldIsSecret(req.Module, key) + value := it.Value + if secret { + // 占位/空 → 保留原密文;否则加密新明文。 + if value == "" || value == comm.EncMask { + if old != nil { + value = old.Value + } else { + value = "" + } + } else { + ct, ee := comm.Encrypt(encKey, value) + if ee != nil { + writeErr(c, pb.ErrorCode_SystemError, "加密失败: "+ee.Error()) + return + } + value = ct + } + } + row := &comm.AppModuleConfig{ + Module: req.Module, Key: key, Value: value, Encrypted: secret, Updatetime: now, + } + if old != nil { + row.Id, row.Createtime = old.Id, old.Createtime + } else { + row.Createtime = now + } + if e := upsertModuleConfigItem(db, row); e != nil { + writeErr(c, pb.ErrorCode_DBError, e.Error()) + return + } + saved++ + } + broadcastConfigChanged(comm.ConfigKindModuleConfig, "update", 0) + writeOK(c, gin.H{"saved": saved}) +} + +// moduleCfgDel 清空某模块在业务库里的全部配置。 +func (this *serverComp) moduleCfgDel(c *gin.Context) { + var req struct { + AppId uint32 `json:"app_id"` + Module string `json:"module"` + } + _ = c.ShouldBindJSON(&req) + req.Module = strings.TrimSpace(req.Module) + if req.AppId == 0 || req.Module == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "app_id 与 module 必填") + return + } + db, err := this.module.registry.getServiceDB(req.AppId) + if err != nil { + writeErr(c, pb.ErrorCode_DBError, "连接应用业务库失败: "+err.Error()) + return + } + if err := delModuleConfig(db, req.Module); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + broadcastConfigChanged(comm.ConfigKindModuleConfig, "delete", 0) + writeOK(c, gin.H{"deleted": req.Module}) +} diff --git a/apps/services/modules/console/api_product.go b/apps/services/modules/console/api_product.go new file mode 100644 index 00000000..f8bacbdb --- /dev/null +++ b/apps/services/modules/console/api_product.go @@ -0,0 +1,125 @@ +package console + +import ( + "strings" + "time" + + "yunyan/comm" + "yunyan/lego/sys/postgres" + "yunyan/pb" + + "github.com/gin-gonic/gin" +) + +// ============================ 应用/产品域 (product) ============================ +// +// 应用(产品) = SaaS 里的一个应用名(Voitrans/Lumi/…),下挂多条区域部署(app_registry,按应用名 app_name 关联)。 +// 「应用管理」列表按应用名分组:一行一个应用,展开看它在各区域/环境的部署。 + +func (this *serverComp) productsList(c *gin.Context) { + models, err := this.module.model.listProducts() + if err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + writeOK(c, models) +} + +func (this *serverComp) productsAdd(c *gin.Context) { + var model AppProduct + if err := c.ShouldBindJSON(&model); err != nil { + writeErr(c, pb.ErrorCode_ReqParameterError, err.Error()) + return + } + model.Name = strings.TrimSpace(model.Name) + if model.Name == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "应用名必填") + return + } + if exist, _ := this.module.model.getProductByName(model.Name); exist != nil && exist.Id != 0 { + writeErr(c, pb.ErrorCode_ReqParameterError, "应用名已存在: "+model.Name) + return + } + model.Id = 0 + now := time.Now().Unix() + model.Createtime = now + model.Updatetime = now + if err := this.module.model.addProduct(&model); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + writeOK(c, &model) +} + +func (this *serverComp) productsUpdate(c *gin.Context) { + var model AppProduct + if err := c.ShouldBindJSON(&model); err != nil { + writeErr(c, pb.ErrorCode_ReqParameterError, err.Error()) + return + } + if model.Id == 0 { + writeErr(c, pb.ErrorCode_ReqParameterError, "id 必填") + return + } + model.Name = strings.TrimSpace(model.Name) + if model.Name == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "应用名必填") + return + } + // 判重:同名但非本行则拒绝。 + if exist, _ := this.module.model.getProductByName(model.Name); exist != nil && exist.Id != 0 && exist.Id != model.Id { + writeErr(c, pb.ErrorCode_ReqParameterError, "应用名已存在: "+model.Name) + return + } + old, err := this.module.model.getProduct(model.Id) + if err != nil { + writeErr(c, pb.ErrorCode_DBError, "应用不存在: "+err.Error()) + return + } + model.Createtime = old.Createtime + model.Updatetime = time.Now().Unix() + if err := this.module.model.saveProduct(&model); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + // 应用名即关联键:改名时级联把其名下部署的 app_name 一并更新,避免部署掉进「未分组」。 + if old.Name != model.Name { + if res := postgres.Exec("UPDATE "+comm.TableAppRegistry+" SET app_name=? WHERE app_name=?", model.Name, old.Name); res.Error != nil { + writeErr(c, pb.ErrorCode_DBError, "级联更新部署归属失败: "+res.Error.Error()) + return + } + } + writeOK(c, &model) +} + +func (this *serverComp) productsDel(c *gin.Context) { + var req struct { + Id uint32 `json:"id"` + } + if err := c.ShouldBindJSON(&req); err != nil || req.Id == 0 { + writeErr(c, pb.ErrorCode_ReqParameterError, "id 必填") + return + } + // 引用完整性:应用下仍有区域部署(按应用名匹配)则拒删。 + p, err := this.module.model.getProduct(req.Id) + if err != nil { + writeErr(c, pb.ErrorCode_DBError, "应用不存在: "+err.Error()) + return + } + apps, err := this.module.model.listApps() + if err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + for _, a := range apps { + if a.AppName == p.Name { + writeErr(c, pb.ErrorCode_ReqParameterError, "该应用下仍有区域部署,请先删除其部署") + return + } + } + if err := this.module.model.delProduct(req.Id); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + writeOK(c, gin.H{"id": req.Id}) +} diff --git a/apps/services/modules/console/api_svcconfig.go b/apps/services/modules/console/api_svcconfig.go index 6067e5f4..1bf04629 100644 --- a/apps/services/modules/console/api_svcconfig.go +++ b/apps/services/modules/console/api_svcconfig.go @@ -1,12 +1,6 @@ package console import ( - "crypto/aes" - "crypto/cipher" - cryptorand "crypto/rand" - "encoding/base64" - "fmt" - "io" "strings" "time" @@ -17,7 +11,7 @@ import ( "github.com/gin-gonic/gin" ) -// ============================ 依赖服务配置域 (svcconfig) ============================ +// ============================ 第三方服务配置域 (svcconfig) ============================ // // 移植自 deep_server modules/console/api_svcconfig.go,适配 yunyan-sas 的 postgres 封装与本地 struct。 // 数据存 console 主库(postgres.GetSys()),与 globalconfig/mcp/会议模板同库。 @@ -25,65 +19,32 @@ import ( // 返回前端时脱敏为 "[encrypted]"。区域覆盖:默认值 + 各区域覆盖,缺失字段继承默认值。 // ============================== AES-256-GCM 字段加密 ============================== +// +// 算法实现统一收敛到 comm.Encrypt/Decrypt(console 与业务服务读写同一张加密表,密文格式必须一致)。 +// 这里保留 svcEncrypt/svcDecrypt 薄封装,避免改动本包内大量既有调用点。 // svcEncrypt 用 AES-256-GCM 加密明文,返回 base64(nonce‖ciphertext)。空明文返回空串。 func svcEncrypt(key, plaintext string) (string, error) { - if plaintext == "" { - return "", nil - } - block, err := aes.NewCipher(normAESKey(key)) - if err != nil { - return "", err - } - gcm, err := cipher.NewGCM(block) - if err != nil { - return "", err - } - nonce := make([]byte, gcm.NonceSize()) - if _, err = io.ReadFull(cryptorand.Reader, nonce); err != nil { - return "", err - } - ct := gcm.Seal(nonce, nonce, []byte(plaintext), nil) - return base64.StdEncoding.EncodeToString(ct), nil + return comm.Encrypt(key, plaintext) } // svcDecrypt 解密 svcEncrypt 产出的密文,返回明文。供业务侧内部调用(不暴露给 console 前端)。 func svcDecrypt(key, ciphertext string) (string, error) { - if ciphertext == "" { - return "", nil - } - raw, err := base64.StdEncoding.DecodeString(ciphertext) - if err != nil { - return "", fmt.Errorf("base64 解码失败: %w", err) - } - block, err := aes.NewCipher(normAESKey(key)) - if err != nil { - return "", err - } - gcm, err := cipher.NewGCM(block) - if err != nil { - return "", err - } - ns := gcm.NonceSize() - if len(raw) < ns { - return "", fmt.Errorf("密文过短") - } - plain, err := gcm.Open(nil, raw[:ns], raw[ns:], nil) - if err != nil { - return "", fmt.Errorf("GCM 解密失败: %w", err) - } - return string(plain), nil -} - -// normAESKey 把任意字符串规整为 32 字节 AES-256 密钥(不足补零,超出截断)。 -func normAESKey(key string) []byte { - k := make([]byte, 32) - copy(k, []byte(key)) - return k + return comm.Decrypt(key, ciphertext) } // ============================== 脱敏工具 ============================== +// fieldExists 判断字段列表中是否存在指定 key。 +func fieldExists(fields []SvcField, key string) bool { + for _, f := range fields { + if f.Key == key { + return true + } + } + return false +} + // maskSvcFields 把返回给前端的字段列表中 encrypted=true 的 def_value 替换为 "[encrypted]"。 func maskSvcFields(fields []SvcField) { for i := range fields { @@ -117,12 +78,16 @@ func encryptFieldsSlice(key string, fields []SvcField, oldMap map[string]string) return nil } -// ============================== 依赖服务配置 CRUD ============================== +// ============================== 第三方服务配置 CRUD ============================== -// getSvcConfigs 列出全部依赖服务,加密字段值脱敏。 +// getSvcConfigs 列出某作用域(app_name)下全部第三方服务,加密字段值脱敏。app_name='' 为全局默认。 func (this *serverComp) getSvcConfigs(c *gin.Context) { + var req struct { + AppName string `json:"app_name"` + } + _ = c.ShouldBindJSON(&req) items := make([]*ThirdSvcConfig, 0) - if err := postgres.Find(comm.TableThirdSvcConfig, &items, ""); err != nil { + if err := postgres.Find(comm.TableSvcConfig, &items, "app_name=?", req.AppName); err != nil { writeErr(c, pb.ErrorCode_DBError, err.Error()) return } @@ -143,9 +108,9 @@ func (this *serverComp) addSvcConfig(c *gin.Context) { writeErr(c, pb.ErrorCode_ReqParameterError, "服务ID 和 名称 必填") return } - // 主键重复检查 + // 作用域内(app_name,id)唯一检查 exist := &ThirdSvcConfig{} - if err := postgres.FindOne(comm.TableThirdSvcConfig, exist, "id=?", m.Id); err == nil { + if err := postgres.FindOne(comm.TableSvcConfig, exist, "app_name=? AND id=?", m.AppName, m.Id); err == nil { writeErr(c, pb.ErrorCode_ReqParameterError, "服务ID 已存在: "+m.Id) return } @@ -154,10 +119,11 @@ func (this *serverComp) addSvcConfig(c *gin.Context) { writeErr(c, pb.ErrorCode_SystemError, "字段加密失败: "+err.Error()) return } + m.RowId = 0 // 代理主键由库自增回填 now := time.Now().UnixMilli() m.Createtime = now m.Updatetime = now - if err := postgres.Insert(comm.TableThirdSvcConfig, &m); err != nil { + if err := postgres.Insert(comm.TableSvcConfig, &m); err != nil { writeErr(c, pb.ErrorCode_DBError, err.Error()) return } @@ -177,9 +143,9 @@ func (this *serverComp) updateSvcConfig(c *gin.Context) { writeErr(c, pb.ErrorCode_ReqParameterError, "服务ID 必填") return } - // 读旧记录,取已存储的加密字段密文 + // 读旧记录(同作用域),取代理主键 + 已存储的加密字段密文 old := &ThirdSvcConfig{} - if err := postgres.FindOne(comm.TableThirdSvcConfig, old, "id=?", m.Id); err != nil { + if err := postgres.FindOne(comm.TableSvcConfig, old, "app_name=? AND id=?", m.AppName, m.Id); err != nil { writeErr(c, pb.ErrorCode_DBError, "服务不存在: "+m.Id) return } @@ -191,9 +157,10 @@ func (this *serverComp) updateSvcConfig(c *gin.Context) { writeErr(c, pb.ErrorCode_SystemError, "字段加密失败: "+err.Error()) return } + m.RowId = old.RowId // 按代理主键更新本行 m.Createtime = old.Createtime m.Updatetime = time.Now().UnixMilli() - if err := postgres.Save(comm.TableThirdSvcConfig, &m); err != nil { + if err := postgres.Save(comm.TableSvcConfig, &m); err != nil { writeErr(c, pb.ErrorCode_DBError, err.Error()) return } @@ -202,56 +169,73 @@ func (this *serverComp) updateSvcConfig(c *gin.Context) { writeOK(c, &m) } -// delSvcConfig 删除服务及其所有区域覆盖。 +// delSvcConfig 删除某作用域下的服务及其所有区域覆盖。 func (this *serverComp) delSvcConfig(c *gin.Context) { var req struct { - Id string `json:"id"` + AppName string `json:"app_name"` + Id string `json:"id"` } if err := c.ShouldBindJSON(&req); err != nil || strings.TrimSpace(req.Id) == "" { writeErr(c, pb.ErrorCode_ReqParameterError, "id 必填") return } - if err := postgres.Delete(comm.TableThirdSvcConfig, "id=?", req.Id); err != nil { + if err := postgres.Delete(comm.TableSvcConfig, "app_name=? AND id=?", req.AppName, req.Id); err != nil { writeErr(c, pb.ErrorCode_DBError, err.Error()) return } - _ = postgres.Delete(comm.TableThirdSvcRegionOverride, "svc_id=?", req.Id) + _ = postgres.Delete(comm.TableSvcRegionOverride, "app_name=? AND svc_id=?", req.AppName, req.Id) broadcastConfigChanged(comm.ConfigKindThirdSvc, "delete", 0) writeOK(c, gin.H{"id": req.Id}) } // ============================== 区域字段覆盖 ============================== -// svcRegionFieldView 是返回给前端的合并视图(字段定义 + 有效值 + 是否被覆盖)。 +// svcRegionFieldView 是返回给前端的合并视图(字段定义 + 有效值 + 覆盖/停用/区域专属标记)。 type svcRegionFieldView struct { Key string `json:"key"` Description string `json:"description"` + Type string `json:"type"` // 字段类型:langs/lang 供前端渲染语言选择器(同 SvcField.Type) Encrypted bool `json:"encrypted"` - IsOverridden bool `json:"is_overridden"` - Value string `json:"value"` // 加密字段显示 [encrypted] + IsOverridden bool `json:"is_overridden"` // 默认字段:本区域是否有值覆盖 + Disabled bool `json:"disabled"` // 默认字段:本区域是否被标记为“不适用” + RegionOnly bool `json:"region_only"` // 是否为本区域专属新增字段(非默认字段集) + Value string `json:"value"` // 加密字段显示 [encrypted] } -// getSvcRegionOverride 返回某服务在指定区域的字段有效值(覆盖优先,否则默认值,加密字段脱敏)。 +// sliceContains 判断字符串切片是否包含目标。 +func sliceContains(s []string, target string) bool { + for _, v := range s { + if v == target { + return true + } + } + return false +} + +// getSvcRegionOverride 返回某服务在指定区域的字段有效视图: +// 默认字段(带 disabled 标记,值取 override→default)∪ 本区域专属字段(region_only),加密字段脱敏。 func (this *serverComp) getSvcRegionOverride(c *gin.Context) { var req struct { - SvcId string `json:"svc_id"` - Region int32 `json:"region"` + AppName string `json:"app_name"` + SvcId string `json:"svc_id"` + Region int32 `json:"region"` } if err := c.ShouldBindJSON(&req); err != nil || req.SvcId == "" || req.Region == 0 { writeErr(c, pb.ErrorCode_ReqParameterError, "svc_id 和 region 必填") return } cfg := &ThirdSvcConfig{} - if err := postgres.FindOne(comm.TableThirdSvcConfig, cfg, "id=?", req.SvcId); err != nil { + if err := postgres.FindOne(comm.TableSvcConfig, cfg, "app_name=? AND id=?", req.AppName, req.SvcId); err != nil { writeErr(c, pb.ErrorCode_DBError, "服务不存在: "+req.SvcId) return } ovr := &SvcRegionOverride{} - _ = postgres.FindOne(comm.TableThirdSvcRegionOverride, ovr, "svc_id=? AND region=?", req.SvcId, req.Region) + _ = postgres.FindOne(comm.TableSvcRegionOverride, ovr, "app_name=? AND svc_id=? AND region=?", req.AppName, req.SvcId, req.Region) if ovr.Overrides == nil { ovr.Overrides = make(map[string]string) } - views := make([]*svcRegionFieldView, 0, len(cfg.Fields)) + views := make([]*svcRegionFieldView, 0, len(cfg.Fields)+len(ovr.ExtraFields)) + // 默认字段 for _, f := range cfg.Fields { val, overridden := ovr.Overrides[f.Key] if !overridden { @@ -261,21 +245,37 @@ func (this *serverComp) getSvcRegionOverride(c *gin.Context) { val = "[encrypted]" } views = append(views, &svcRegionFieldView{ - Key: f.Key, Description: f.Description, - Encrypted: f.Encrypted, IsOverridden: overridden, Value: val, + Key: f.Key, Description: f.Description, Type: f.Type, + Encrypted: f.Encrypted, IsOverridden: overridden, + Disabled: sliceContains(ovr.DisabledKeys, f.Key), Value: val, + }) + } + // 本区域专属字段(值存在 ExtraFields[i].DefValue,加密字段脱敏) + for _, f := range ovr.ExtraFields { + val := f.DefValue + if f.Encrypted && val != "" { + val = "[encrypted]" + } + views = append(views, &svcRegionFieldView{ + Key: f.Key, Description: f.Description, Type: f.Type, + Encrypted: f.Encrypted, RegionOnly: true, Value: val, }) } writeOK(c, gin.H{"svc_id": req.SvcId, "region": req.Region, "override_id": ovr.Id, "fields": views}) } -// saveSvcRegionOverride 保存(upsert)某服务在指定区域的字段覆盖。 -// overrides map 中加密字段:空值/占位符保留原密文,非空重新加密;非加密字段直接存。 -// 空值表示继承(不写入 newOverrides,即删除该字段覆盖)。 +// saveSvcRegionOverride 保存(upsert)某服务在指定区域的字段分叉。 +// - overrides:默认字段的值覆盖。加密字段空值/占位保留原密文;非加密字段空值表示继承(不写入)。 +// - extra_fields:本区域专属字段。加密字段空值/占位保留原密文(复用 encryptFieldsSlice)。 +// - disabled_keys:本区域不适用的默认字段 key(仅保留确实存在于默认字段集的 key)。 func (this *serverComp) saveSvcRegionOverride(c *gin.Context) { var req struct { - SvcId string `json:"svc_id"` - Region int32 `json:"region"` - Overrides map[string]string `json:"overrides"` + AppName string `json:"app_name"` + SvcId string `json:"svc_id"` + Region int32 `json:"region"` + Overrides map[string]string `json:"overrides"` + ExtraFields []SvcField `json:"extra_fields"` + DisabledKeys []string `json:"disabled_keys"` } if err := c.ShouldBindJSON(&req); err != nil || req.SvcId == "" || req.Region == 0 { writeErr(c, pb.ErrorCode_ReqParameterError, "svc_id 和 region 必填") @@ -284,9 +284,9 @@ func (this *serverComp) saveSvcRegionOverride(c *gin.Context) { if req.Overrides == nil { req.Overrides = make(map[string]string) } - // 读服务字段定义,确定哪些字段需要加密 + // 读服务字段定义(同作用域),确定哪些字段需要加密、哪些是合法的默认字段 key cfg := &ThirdSvcConfig{} - if err := postgres.FindOne(comm.TableThirdSvcConfig, cfg, "id=?", req.SvcId); err != nil { + if err := postgres.FindOne(comm.TableSvcConfig, cfg, "app_name=? AND id=?", req.AppName, req.SvcId); err != nil { writeErr(c, pb.ErrorCode_DBError, "服务不存在: "+req.SvcId) return } @@ -296,9 +296,9 @@ func (this *serverComp) saveSvcRegionOverride(c *gin.Context) { encFields[f.Key] = true } } - // 读旧覆盖,用于保留旧密文 + // 读旧覆盖(同作用域),用于保留旧密文(默认字段覆盖 + 区域专属字段) old := &SvcRegionOverride{} - _ = postgres.FindOne(comm.TableThirdSvcRegionOverride, old, "svc_id=? AND region=?", req.SvcId, req.Region) + _ = postgres.FindOne(comm.TableSvcRegionOverride, old, "app_name=? AND svc_id=? AND region=?", req.AppName, req.SvcId, req.Region) if old.Overrides == nil { old.Overrides = make(map[string]string) } @@ -326,16 +326,42 @@ func (this *serverComp) saveSvcRegionOverride(c *gin.Context) { } } } + // 区域专属字段:DefValue 存该区域的值,加密字段空值/占位保留旧密文(按 key 匹配旧 ExtraFields) + oldExtraMap := make(map[string]string, len(old.ExtraFields)) + for _, f := range old.ExtraFields { + oldExtraMap[f.Key] = f.DefValue + } + extraFields := make([]SvcField, 0, len(req.ExtraFields)) + for _, f := range req.ExtraFields { + if strings.TrimSpace(f.Key) == "" { + continue + } + extraFields = append(extraFields, f) + } + if err := encryptFieldsSlice(key, extraFields, oldExtraMap); err != nil { + writeErr(c, pb.ErrorCode_SystemError, "区域专属字段加密失败: "+err.Error()) + return + } + // 停用字段:仅保留确实存在于默认字段集的 key,去重 + disabled := make([]string, 0, len(req.DisabledKeys)) + seenDisabled := make(map[string]bool, len(req.DisabledKeys)) + for _, k := range req.DisabledKeys { + if fieldExists(cfg.Fields, k) && !seenDisabled[k] { + seenDisabled[k] = true + disabled = append(disabled, k) + } + } ovr := &SvcRegionOverride{ - Id: old.Id, SvcId: req.SvcId, + Id: old.Id, AppName: req.AppName, SvcId: req.SvcId, Region: req.Region, Overrides: newOverrides, + ExtraFields: extraFields, DisabledKeys: disabled, Updatetime: time.Now().UnixMilli(), } var err error if ovr.Id == 0 { - err = postgres.Insert(comm.TableThirdSvcRegionOverride, ovr) + err = postgres.Insert(comm.TableSvcRegionOverride, ovr) } else { - err = postgres.Save(comm.TableThirdSvcRegionOverride, ovr) + err = postgres.Save(comm.TableSvcRegionOverride, ovr) } if err != nil { writeErr(c, pb.ErrorCode_DBError, err.Error()) @@ -349,6 +375,7 @@ func (this *serverComp) saveSvcRegionOverride(c *gin.Context) { // src_region=0 时使用字段 def_value;>0 时使用该区域的覆盖值。 func (this *serverComp) syncSvcToRegions(c *gin.Context) { var req struct { + AppName string `json:"app_name"` SvcId string `json:"svc_id"` SrcRegion int32 `json:"src_region"` TargetRegions []int32 `json:"target_regions"` @@ -361,11 +388,13 @@ func (this *serverComp) syncSvcToRegions(c *gin.Context) { writeOK(c, gin.H{"synced": 0}) return } - // 确定同步源 overrides map + // 确定同步源:默认字段值覆盖 + 区域专属字段 + 停用字段(同作用域) var srcOverrides map[string]string + var srcExtra []SvcField + var srcDisabled []string if req.SrcRegion == 0 { cfg := &ThirdSvcConfig{} - if err := postgres.FindOne(comm.TableThirdSvcConfig, cfg, "id=?", req.SvcId); err != nil { + if err := postgres.FindOne(comm.TableSvcConfig, cfg, "app_name=? AND id=?", req.AppName, req.SvcId); err != nil { writeErr(c, pb.ErrorCode_DBError, "服务不存在: "+req.SvcId) return } @@ -375,26 +404,30 @@ func (this *serverComp) syncSvcToRegions(c *gin.Context) { } } else { src := &SvcRegionOverride{} - if err := postgres.FindOne(comm.TableThirdSvcRegionOverride, src, "svc_id=? AND region=?", req.SvcId, req.SrcRegion); err != nil { + if err := postgres.FindOne(comm.TableSvcRegionOverride, src, "app_name=? AND svc_id=? AND region=?", req.AppName, req.SvcId, req.SrcRegion); err != nil { writeErr(c, pb.ErrorCode_DBError, "源区域覆盖不存在") return } srcOverrides = src.Overrides + srcExtra = src.ExtraFields + srcDisabled = src.DisabledKeys } now := time.Now().UnixMilli() synced := 0 for _, tgt := range req.TargetRegions { old := &SvcRegionOverride{} - _ = postgres.FindOne(comm.TableThirdSvcRegionOverride, old, "svc_id=? AND region=?", req.SvcId, tgt) + _ = postgres.FindOne(comm.TableSvcRegionOverride, old, "app_name=? AND svc_id=? AND region=?", req.AppName, req.SvcId, tgt) ovr := &SvcRegionOverride{ - Id: old.Id, SvcId: req.SvcId, - Region: tgt, Overrides: srcOverrides, Updatetime: now, + Id: old.Id, AppName: req.AppName, SvcId: req.SvcId, + Region: tgt, Overrides: srcOverrides, + ExtraFields: srcExtra, DisabledKeys: srcDisabled, + Updatetime: now, } var err error if ovr.Id == 0 { - err = postgres.Insert(comm.TableThirdSvcRegionOverride, ovr) + err = postgres.Insert(comm.TableSvcRegionOverride, ovr) } else { - err = postgres.Save(comm.TableThirdSvcRegionOverride, ovr) + err = postgres.Save(comm.TableSvcRegionOverride, ovr) } if err == nil { synced++ diff --git a/apps/services/modules/console/api_svcruntime.go b/apps/services/modules/console/api_svcruntime.go new file mode 100644 index 00000000..5637232f --- /dev/null +++ b/apps/services/modules/console/api_svcruntime.go @@ -0,0 +1,185 @@ +package console + +import ( + "strings" + "time" + + "yunyan/comm" + "yunyan/pb" + + "github.com/gin-gonic/gin" +) + +// ============================ 应用×服务 基础设施/运行配置 (svcruntime) ============================ +// +// 「应用的服务配置」页(admin appconfig.vue)的后端:读写 app_service_config 表。 +// 数据由业务服务启动时按「库优先,无则读文件回写」seed(见 comm.LoadOrSeedServiceConfig), +// console 这里提供后台查看/修改。密钥字段(DSN/密码/secret/token)返回前端脱敏为 comm.EncMask, +// 保存时前端回传占位/空则保留原密文,否则用新明文加密覆盖。 + +// maskSvcRuntime 返回前端前脱敏加密项的值。 +func maskSvcRuntime(m *comm.AppServiceConfig) { + if m.Encrypted && m.Value != "" { + m.Value = comm.EncMask + } +} + +// svcRuntimeList 列出某(应用,区域,服务)的配置项(密钥脱敏)。 +func (this *serverComp) svcRuntimeList(c *gin.Context) { + var req struct { + AppName string `json:"app_name"` + Region string `json:"region"` + Service string `json:"service"` + } + _ = c.ShouldBindJSON(&req) + if strings.TrimSpace(req.AppName) == "" || strings.TrimSpace(req.Service) == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "app_name 与 service 必填") + return + } + items, err := this.module.model.listSvcRuntime(req.AppName, req.Region, req.Service) + if err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + for _, m := range items { + maskSvcRuntime(m) + } + writeOK(c, gin.H{"items": items}) +} + +// svcRuntimeServices 列出某(应用,区域)下已有配置的服务类型,供前端标记哪些服务已上报默认配置。 +func (this *serverComp) svcRuntimeServices(c *gin.Context) { + var req struct { + AppName string `json:"app_name"` + Region string `json:"region"` + } + _ = c.ShouldBindJSON(&req) + if strings.TrimSpace(req.AppName) == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "app_name 必填") + return + } + services, err := this.module.model.listSvcRuntimeServices(req.AppName, req.Region) + if err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + writeOK(c, gin.H{"services": services}) +} + +// svcRuntimeSave 逐项 upsert(id>0 更新、否则新增),保存即标 source=db,末尾广播配置变更。 +func (this *serverComp) svcRuntimeSave(c *gin.Context) { + var req struct { + AppName string `json:"app_name"` + Region string `json:"region"` + Service string `json:"service"` + Items []*comm.AppServiceConfig `json:"items"` + } + if err := c.ShouldBindJSON(&req); err != nil { + writeErr(c, pb.ErrorCode_ReqParameterError, err.Error()) + return + } + if strings.TrimSpace(req.AppName) == "" || strings.TrimSpace(req.Service) == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "app_name 与 service 必填") + return + } + key := this.options.EncryptKey + now := time.Now().Unix() + for _, it := range req.Items { + if strings.TrimSpace(it.Key) == "" || strings.TrimSpace(it.Section) == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "配置项 section/key 必填") + return + } + // 归属三键以外层为准,防止前端串改到别的应用/服务。 + it.AppName, it.Region, it.Service = req.AppName, req.Region, req.Service + it.Source = "db" + it.Updatetime = now + // 加密字段:占位/空 → 保留原密文;否则加密新明文。 + if it.Encrypted { + if it.Value == "" || it.Value == comm.EncMask { + if it.Id != 0 { + if old, e := this.module.model.getSvcRuntimeItem(it.Id); e == nil { + it.Value = old.Value + } + } else { + it.Value = "" + } + } else { + ct, e := comm.Encrypt(key, it.Value) + if e != nil { + writeErr(c, pb.ErrorCode_SystemError, "加密失败: "+e.Error()) + return + } + it.Value = ct + } + } + if it.Id != 0 { + old, e := this.module.model.getSvcRuntimeItem(it.Id) + if e == nil { + it.Createtime = old.Createtime + } + if e := this.module.model.saveSvcRuntimeItem(it); e != nil { + writeErr(c, pb.ErrorCode_DBError, e.Error()) + return + } + } else { + it.Createtime = now + if e := this.module.model.addSvcRuntimeItem(it); e != nil { + writeErr(c, pb.ErrorCode_DBError, e.Error()) + return + } + } + } + broadcastConfigChanged(comm.ConfigKindServiceConfig, "update", 0) + writeOK(c, gin.H{"saved": len(req.Items)}) +} + +// svcRuntimeDel 按 id 批量删除配置项。 +func (this *serverComp) svcRuntimeDel(c *gin.Context) { + var req struct { + Ids []uint64 `json:"ids"` + } + _ = c.ShouldBindJSON(&req) + if len(req.Ids) == 0 { + writeErr(c, pb.ErrorCode_ReqParameterError, "ids 必填") + return + } + if err := this.module.model.delSvcRuntimeItems(req.Ids); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + broadcastConfigChanged(comm.ConfigKindServiceConfig, "delete", 0) + writeOK(c, gin.H{"deleted": len(req.Ids)}) +} + +// appsBindEnv 轻量「绑定/切换部署环境」:只改某部署行的 env_id,不走完整表单+连通性复检。 +// 用于给历史部署行(env_id=0)快速绑定环境,或在应用服务配置页切换环境。 +func (this *serverComp) appsBindEnv(c *gin.Context) { + var req struct { + Id uint32 `json:"id"` + EnvId uint32 `json:"env_id"` + } + if err := c.ShouldBindJSON(&req); err != nil || req.Id == 0 { + writeErr(c, pb.ErrorCode_ReqParameterError, "id 必填") + return + } + model, err := this.module.model.getApp(req.Id) + if err != nil { + writeErr(c, pb.ErrorCode_DBError, "部署不存在: "+err.Error()) + return + } + // env_id>0 时校验目标环境存在(0=解绑,允许)。 + if req.EnvId != 0 { + if _, e := this.module.model.getEnv(req.EnvId); e != nil { + writeErr(c, pb.ErrorCode_ReqParameterError, "目标环境不存在") + return + } + } + model.EnvId = req.EnvId + model.Updatetime = time.Now().Unix() + if err := this.module.model.saveApp(model); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + this.module.registry.invalidate(model.Id) // 配置变了,失效连接缓存 + writeOK(c, model) +} diff --git a/apps/services/modules/console/api_svctemplate.go b/apps/services/modules/console/api_svctemplate.go new file mode 100644 index 00000000..fe11a8ba --- /dev/null +++ b/apps/services/modules/console/api_svctemplate.go @@ -0,0 +1,265 @@ +package console + +import ( + "sort" + "strings" + "time" + + "yunyan/comm" + "yunyan/lego/sys/log" + "yunyan/lego/sys/postgres" + "yunyan/pb" + + "github.com/gin-gonic/gin" +) + +// ============================ 第三方服务商模板域 (svctemplate) ============================ +// +// 数据驱动模板:管理员在「第三方服务配置」新增服务时选一个模板,自动带出字段(可再增删)。 +// 模板存 console 主库(postgres.GetSys()),启动时幂等 seed 内置常见服务商(见 seedSvcTemplates)。 +// 模板字段只作 schema 预设,不存真实密钥、不加密。 + +// ============================== 模板 CRUD ============================== + +// getSvcTemplates 列出全部服务商模板;category>0 时按类别过滤,按 (category, sort, id) 排序返回。 +func (this *serverComp) getSvcTemplates(c *gin.Context) { + var req struct { + Category int32 `json:"category"` + } + _ = c.ShouldBindJSON(&req) + items := make([]*ThirdSvcTemplate, 0) + var err error + if req.Category > 0 { + err = postgres.Find(comm.TableThirdSvcTemplate, &items, "category=?", req.Category) + } else { + err = postgres.Find(comm.TableThirdSvcTemplate, &items, "") + } + if err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + sort.SliceStable(items, func(i, j int) bool { + if items[i].Category != items[j].Category { + return items[i].Category < items[j].Category + } + if items[i].Sort != items[j].Sort { + return items[i].Sort < items[j].Sort + } + return items[i].Id < items[j].Id + }) + writeOK(c, gin.H{"items": items}) +} + +// addSvcTemplate 新增自定义服务商模板(Builtin=false)。 +func (this *serverComp) addSvcTemplate(c *gin.Context) { + var m ThirdSvcTemplate + if err := c.ShouldBindJSON(&m); err != nil { + writeErr(c, pb.ErrorCode_ReqParameterError, err.Error()) + return + } + if strings.TrimSpace(m.Id) == "" || strings.TrimSpace(m.Name) == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "模板ID 和 名称 必填") + return + } + exist := &ThirdSvcTemplate{} + if err := postgres.FindOne(comm.TableThirdSvcTemplate, exist, "id=?", m.Id); err == nil { + writeErr(c, pb.ErrorCode_ReqParameterError, "模板ID 已存在: "+m.Id) + return + } + m.Builtin = false + now := time.Now().UnixMilli() + m.Createtime = now + m.Updatetime = now + if err := postgres.Insert(comm.TableThirdSvcTemplate, &m); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + writeOK(c, &m) +} + +// updateSvcTemplate 更新服务商模板(按 id)。保留旧记录的 Builtin/Createtime。 +func (this *serverComp) updateSvcTemplate(c *gin.Context) { + var m ThirdSvcTemplate + if err := c.ShouldBindJSON(&m); err != nil { + writeErr(c, pb.ErrorCode_ReqParameterError, err.Error()) + return + } + if strings.TrimSpace(m.Id) == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "模板ID 必填") + return + } + old := &ThirdSvcTemplate{} + if err := postgres.FindOne(comm.TableThirdSvcTemplate, old, "id=?", m.Id); err != nil { + writeErr(c, pb.ErrorCode_DBError, "模板不存在: "+m.Id) + return + } + m.Builtin = old.Builtin + m.Createtime = old.Createtime + m.Updatetime = time.Now().UnixMilli() + if err := postgres.Save(comm.TableThirdSvcTemplate, &m); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + writeOK(c, &m) +} + +// delSvcTemplate 删除服务商模板(按 id)。删除 builtin 允许,但下次启动会被 seed 重新补回。 +func (this *serverComp) delSvcTemplate(c *gin.Context) { + var req struct { + Id string `json:"id"` + } + if err := c.ShouldBindJSON(&req); err != nil || strings.TrimSpace(req.Id) == "" { + writeErr(c, pb.ErrorCode_ReqParameterError, "id 必填") + return + } + if err := postgres.Delete(comm.TableThirdSvcTemplate, "id=?", req.Id); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + writeOK(c, gin.H{"id": req.Id}) +} + +// ============================== 内置模板 seed ============================== + +// 服务类别常量(与 admin 前端 SCAT / serviceconfig.vue 一致)。每个服务实例只归属其中一种。 +const ( + svcCatSTT int32 = 1 // 语音识别 + svcCatTTS int32 = 2 // 语音合成 + svcCatMT int32 = 3 // 机器翻译 + svcCatAST int32 = 4 // 端到端语音翻译 + svcCatLLM int32 = 5 // 大语言模型 + svcCatStorage int32 = 6 // 对象存储 + svcCatSTS int32 = 7 // 端到端语音对话 +) + +// sf 构造一个模板字段(sort 由调用顺序在 tpl 内自动填)。 +func sf(key, desc string, encrypted bool) SvcField { + return SvcField{Key: key, Description: desc, Encrypted: encrypted} +} + +// tpl 构造一个内置模板(Builtin=true,字段 sort 按传入顺序自动编号)。 +func tpl(id, provider, name string, category, order int32, fields ...SvcField) ThirdSvcTemplate { + for i := range fields { + fields[i].Sort = int32(i) + } + return ThirdSvcTemplate{ + Id: id, Provider: provider, Name: name, + Category: category, Sort: order, Fields: fields, Builtin: true, + } +} + +// audioOutputCats 需要输出音频、须配置「支持语言 + 默认语言」的服务类别(TTS/AST/STS)。 +var audioOutputCats = map[int32]bool{svcCatTTS: true, svcCatAST: true, svcCatSTS: true} + +// builtinSvcTemplates 内置服务商模板清单(参考 polychat-agent 的服务商与字段归纳,可后续增改)。 +func builtinSvcTemplates() []ThirdSvcTemplate { + list := []ThirdSvcTemplate{ + // STT 语音识别 + tpl("stt_azure", "azure", "微软 Azure STT", svcCatSTT, 0, + sf("subscription_key", "订阅密钥", true), sf("region", "区域/终结点,如 eastus", false), sf("language", "语言代码,如 zh-CN", false)), + tpl("stt_openai", "openai", "OpenAI Whisper", svcCatSTT, 1, + sf("api_key", "API Key", true), sf("model", "模型,如 whisper-1", false), sf("language", "语言代码", false)), + tpl("stt_volcengine", "volcengine", "火山引擎 STT", svcCatSTT, 2, + sf("appid", "应用 AppID", false), sf("token", "访问 Token", true), sf("cluster", "集群标识", false)), + tpl("stt_alibaba", "alibaba", "阿里云 STT", svcCatSTT, 3, + sf("access_key_id", "AccessKey ID", true), sf("access_key_secret", "AccessKey Secret", true), sf("app_key", "项目 AppKey", false)), + + // TTS 语音合成 + tpl("tts_azure", "azure", "微软 Azure TTS", svcCatTTS, 0, + sf("subscription_key", "订阅密钥", true), sf("region", "区域/终结点,如 eastus", false), sf("voice_name", "音色,如 zh-CN-XiaoxiaoNeural", false), sf("rate", "语速,-50%~+50%", false), sf("pitch", "音调,-50Hz~+50Hz", false)), + tpl("tts_openai", "openai", "OpenAI TTS", svcCatTTS, 1, + sf("api_key", "API Key", true), sf("model", "模型,如 tts-1", false), sf("voice", "音色,如 alloy", false)), + tpl("tts_volcengine", "volcengine", "火山引擎 TTS", svcCatTTS, 2, + sf("appid", "应用 AppID", false), sf("token", "访问 Token", true), sf("cluster", "集群标识", false)), + tpl("tts_alibaba", "alibaba", "阿里云 TTS", svcCatTTS, 3, + sf("access_key_id", "AccessKey ID", true), sf("access_key_secret", "AccessKey Secret", true)), + tpl("tts_elevenlabs", "elevenlabs", "ElevenLabs TTS", svcCatTTS, 4, + sf("api_key", "API Key", true), sf("voice_id", "音色 ID", false)), + + // MT 机器翻译 + tpl("mt_azure", "azure", "微软 Azure 翻译", svcCatMT, 0, + sf("subscription_key", "订阅密钥", true), sf("region", "区域,如 eastasia", false)), + tpl("mt_google", "google", "Google 翻译", svcCatMT, 1, + sf("api_key", "API Key", true)), + tpl("mt_doubao", "doubao", "豆包(火山)翻译", svcCatMT, 2, + sf("api_key", "API Key", true)), + tpl("mt_alibaba", "alibaba", "阿里云 翻译", svcCatMT, 3, + sf("access_key_id", "AccessKey ID", true), sf("access_key_secret", "AccessKey Secret", true)), + + // AST 端到端语音翻译 + tpl("ast_azure", "azure", "微软 Azure AST", svcCatAST, 0, + sf("subscription_key", "订阅密钥", true), sf("region", "区域,如 eastus", false)), + tpl("ast_volcengine", "volcengine", "火山引擎 AST", svcCatAST, 1, + sf("appid", "应用 AppID", false), sf("token", "访问 Token", true), sf("cluster", "集群标识", false)), + tpl("ast_alibaba", "alibaba", "阿里云 AST", svcCatAST, 2, + sf("access_key_id", "AccessKey ID", true), sf("access_key_secret", "AccessKey Secret", true)), + + // LLM 大语言模型 + tpl("llm_openai", "openai", "OpenAI", svcCatLLM, 0, + sf("api_key", "API Key", true), sf("model", "模型,如 gpt-4o", false), sf("base_url", "接口地址(可选)", false), sf("temperature", "生成温度 0~2", false), sf("max_tokens", "最大输出 Token", false)), + tpl("llm_doubao", "doubao", "豆包(火山引擎)", svcCatLLM, 1, + sf("api_key", "API Key", true), sf("endpoint_id", "推理接入点 ID", false), sf("base_url", "接口地址", false)), + tpl("llm_anthropic", "anthropic", "Anthropic Claude", svcCatLLM, 2, + sf("api_key", "API Key", true), sf("model", "模型,如 claude-sonnet-4", false)), + tpl("llm_deepseek", "deepseek", "DeepSeek", svcCatLLM, 3, + sf("api_key", "API Key", true), sf("model", "模型,如 deepseek-chat", false), sf("base_url", "接口地址", false)), + tpl("llm_qwen", "qwen", "通义千问(阿里)", svcCatLLM, 4, + sf("api_key", "API Key", true), sf("model", "模型,如 qwen-max", false)), + + // STS 端到端语音对话 + tpl("sts_volcengine", "volcengine", "火山引擎 STS", svcCatSTS, 0, + sf("appid", "应用 AppID", false), sf("token", "访问 Token", true), sf("cluster", "集群标识", false)), + tpl("sts_doubao", "doubao", "豆包(火山)STS", svcCatSTS, 1, + sf("appid", "应用 AppID", false), sf("token", "访问 Token", true), sf("cluster", "集群标识", false)), + tpl("sts_azure", "azure", "微软 Azure STS", svcCatSTS, 2, + sf("subscription_key", "订阅密钥", true), sf("region", "区域,如 eastus", false)), + tpl("sts_google", "google", "Google STS", svcCatSTS, 3, + sf("api_key", "API Key", true)), + + // 存储 对象存储 + tpl("storage_aliyun_oss", "aliyun_oss", "阿里云 OSS", svcCatStorage, 0, + sf("access_key_id", "AccessKey ID", true), sf("access_key_secret", "AccessKey Secret", true), sf("bucket", "存储桶", false), sf("endpoint", "地域节点 Endpoint", false)), + tpl("storage_tencent_cos", "tencent_cos", "腾讯云 COS", svcCatStorage, 1, + sf("secret_id", "SecretId", true), sf("secret_key", "SecretKey", true), sf("bucket", "存储桶", false), sf("region", "地域,如 ap-guangzhou", false)), + } + // 语音输出类服务(TTS/AST/STS)统一前置「支持语言 + 默认语言」两字段: + // languages(langs) 存逗号分隔 BCP-47(如 zh-CN,en-US),default_lang(lang) 存单个码。 + // 不绑定单一语言,音色/语速等仍由各服务商自有字段决定,运行时按请求语言选择。 + for i := range list { + if !audioOutputCats[list[i].Category] { + continue + } + langFields := []SvcField{ + {Key: "languages", Description: "支持的语言(可多选)", Type: "langs"}, + {Key: "default_lang", Description: "默认语言", Type: "lang"}, + } + list[i].Fields = append(langFields, list[i].Fields...) + for j := range list[i].Fields { + list[i].Fields[j].Sort = int32(j) + } + } + return list +} + +// seedSvcTemplates 幂等 seed 内置模板:仅当同 id 不存在时插入,不覆盖用户已改动的记录。 +// 在 ensureConfigTables 之后调用(启动一次)。 +func seedSvcTemplates() { + now := time.Now().UnixMilli() + inserted := 0 + for _, t := range builtinSvcTemplates() { + exist := &ThirdSvcTemplate{} + if err := postgres.FindOne(comm.TableThirdSvcTemplate, exist, "id=?", t.Id); err == nil { + continue // 已存在,跳过(保留用户改动) + } + t.Createtime = now + t.Updatetime = now + if err := postgres.Insert(comm.TableThirdSvcTemplate, &t); err != nil { + log.Warn("console: 内置服务商模板 seed 失败", log.Field{Key: "id", Value: t.Id}, log.Field{Key: "err", Value: err.Error()}) + continue + } + inserted++ + } + if inserted > 0 { + log.Info("console: 内置服务商模板 seed 完成", log.Field{Key: "inserted", Value: inserted}) + } +} diff --git a/apps/services/modules/console/conntest.go b/apps/services/modules/console/conntest.go index 621e0630..14113287 100644 --- a/apps/services/modules/console/conntest.go +++ b/apps/services/modules/console/conntest.go @@ -35,6 +35,27 @@ func (this *serverComp) appsTest(c *gin.Context) { }) } +// checkDeployment 部署行(app_registry)落库前校验,按 Status 分流;返回非空=不通过原因。 +// 会就地把空 Status 规整为 "existing"。 +// - existing:把已部署的应用区域加进来 → 复检地址可达 + 业务库可连(checkAppConn)。 +// - pending :选一个部署目标环境待部署 → 只需选中环境(EnvId),允许 DSN/地址暂空(部署后回填)。 +func checkDeployment(m *AppRegistry) string { + if m.Status == "" { + m.Status = "existing" + } + switch m.Status { + case "pending": + if m.EnvId == 0 { + return "部署目标环境必填" + } + return "" + case "existing": + return checkAppConn(m) + default: + return "未知的部署状态: " + m.Status + } +} + // checkAppConn 保存前服务端复检:应用地址可达 + 业务库可连,任一不过返回原因;空串表示通过。 // 与前端「测试连接」同一套逻辑,防止绕过前端直接调接口写入不可用的注册项。 func checkAppConn(m *AppRegistry) string { diff --git a/apps/services/modules/console/deploy_exec.go b/apps/services/modules/console/deploy_exec.go new file mode 100644 index 00000000..03abe6ec --- /dev/null +++ b/apps/services/modules/console/deploy_exec.go @@ -0,0 +1,227 @@ +package console + +import ( + "bytes" + "encoding/json" + "fmt" + "strings" + "sync" + "time" + + "github.com/gin-gonic/gin" + "golang.org/x/crypto/ssh" +) + +// ============================ 部署执行域 (deploy) ============================ +// +// 「升级」= 把一个已有部署更新到新镜像并重启:SSH 到该部署绑定的部署环境(app_environment) → +// 进部署目录(app_registry.deploy_dir) → docker login → docker compose pull → up -d 重启 → 清理旧镜像。 +// 与本地 prod-deploy.sh 的远程块同一套动作,只是凭据从环境节点解密取、输出 NDJSON 流式回显。 +// +// 前提:服务器上的 docker-compose.yml / .env / confs 由用户自行维护(console 不上传真实配置, +// 与 deploy.sh 约定一致)。tag 取前端传入 > 部署行 image_tag > latest;前端显式传了则回写部署行。 + +// appsUpgrade 远程升级一个部署(NDJSON 流:type=log 每行日志 / done 完成 / error 失败)。 +func (this *serverComp) appsUpgrade(c *gin.Context) { + var req struct { + Id uint32 `json:"id"` + Tag string `json:"tag"` + } + _ = c.ShouldBindJSON(&req) + + c.Header("Content-Type", "application/x-ndjson; charset=utf-8") + c.Header("Cache-Control", "no-cache") + c.Header("X-Accel-Buffering", "no") + enc := json.NewEncoder(c.Writer) + var emitMu sync.Mutex + emit := func(v interface{}) { + emitMu.Lock() + _ = enc.Encode(v) // Encode 自带换行 → NDJSON + c.Writer.Flush() + emitMu.Unlock() + } + logln := func(s string) { emit(gin.H{"type": "log", "line": s}) } + fail := func(msg string) { emit(gin.H{"type": "error", "msg": msg}) } + + if req.Id == 0 { + fail("id 必填") + return + } + // 并发保护:同一部署同一时刻只允许一个升级在跑(docker compose up 并发会互相拉起/删容器)。 + if _, busy := this.deploying.LoadOrStore(req.Id, true); busy { + fail("该部署正在升级中,请等当前升级完成后再试") + return + } + defer this.deploying.Delete(req.Id) + + dep, err := this.module.model.getApp(req.Id) + if err != nil { + fail("部署不存在: " + err.Error()) + return + } + if dep.EnvId == 0 { + fail("该部署未绑定部署环境,请先在「编辑部署」里选择环境节点") + return + } + deployDir := strings.TrimSpace(dep.DeployDir) + if deployDir == "" { + fail("该部署未填「部署目录」,请先在「编辑部署」里填写远端目录(deploy_dir)") + return + } + env, err := this.module.model.getEnv(dep.EnvId) + if err != nil { + fail("部署环境不存在: " + err.Error()) + return + } + + key := this.options.EncryptKey + sshKey, _ := svcDecrypt(key, env.SshPrivateKey) + regPass, _ := svcDecrypt(key, env.RegistryPass) + if strings.TrimSpace(sshKey) == "" { + fail("部署环境未配置 SSH 私钥,无法登录目标服务器") + return + } + + // tag:前端传入 > 部署行 image_tag > latest;前端显式传了新值则回写部署行(best-effort)。 + tag := strings.TrimSpace(req.Tag) + if tag == "" { + tag = strings.TrimSpace(dep.ImageTag) + } + if tag == "" { + tag = "latest" + } + if strings.TrimSpace(req.Tag) != "" && strings.TrimSpace(req.Tag) != dep.ImageTag { + dep.ImageTag = strings.TrimSpace(req.Tag) + dep.Updatetime = time.Now().Unix() + _ = this.module.model.saveApp(dep) + } + + sshPort := env.SshPort + if sshPort == 0 { + sshPort = 22 + } + // 容器名候选(up 冲突时删同名容器重试用):优先镜像名、其次部署名。best-effort,对不上则忽略。 + container := strings.TrimSpace(dep.ImageName) + if container == "" { + container = strings.TrimSpace(dep.Name) + } + + logln(fmt.Sprintf("目标:%s@%s:%d 目录:%s", env.SshUser, env.SshHost, sshPort, deployDir)) + if strings.TrimSpace(env.Registry) != "" { + logln(fmt.Sprintf("镜像仓库:%s TAG:%s", env.Registry, tag)) + } else { + logln(fmt.Sprintf("TAG:%s", tag)) + } + logln("─────────── 开始远程部署 ───────────") + + args := []string{deployDir, tag, env.Registry, env.RegistryUser, regPass, env.DockerNetwork, container} + if err := sshRunStreaming(env.SshHost, sshPort, env.SshUser, sshKey, deployScript, args, logln); err != nil { + fail("部署失败:" + err.Error()) + return + } + emit(gin.H{"type": "done", "msg": "部署完成"}) +} + +// deployScript 远端执行的 bash(bash -s 从 stdin 读、位置参数 $1..$7 = DIR TAG REG REG_USER REG_PASS NET CONTAINER)。 +// 与 prod-deploy.sh 远程块一致:进目录→login→pull→up -d(冲突删同名容器重试)→prune。 +const deployScript = `set -e +DIR="$1"; TAG="$2"; REG="$3"; REG_USER="$4"; REG_PASS="$5"; NET="$6"; CONTAINER="$7" +[ -n "$DIR" ] || { echo "✗ 部署目录为空"; exit 1; } +cd "$DIR" 2>/dev/null || { echo "✗ 无法进入部署目录: $DIR"; exit 1; } +[ -f docker-compose.yml ] || { echo "✗ 目录下缺少 docker-compose.yml(请先在服务器维护好 compose/.env/confs)"; exit 1; } +[ -f .env ] || echo "⚠ 目录下未发现 .env(若 compose 依赖 .env,请先在服务器创建)" +if docker compose version >/dev/null 2>&1; then DC="docker compose"; else DC="docker-compose"; fi +echo "compose 命令: $DC" +if [ -n "$REG" ] && [ -n "$REG_USER" ]; then + echo ">>> docker login $REG" + echo "$REG_PASS" | docker login "$REG" -u "$REG_USER" --password-stdin +fi +if [ -n "$NET" ]; then docker network inspect "$NET" >/dev/null 2>&1 || { echo ">>> 创建 docker 网络 $NET"; docker network create "$NET"; }; fi +echo ">>> 拉取镜像 (REGISTRY=$REG TAG=$TAG $DC pull)" +REGISTRY="$REG" TAG="$TAG" $DC pull +echo ">>> 重启容器 (REGISTRY=$REG TAG=$TAG $DC up -d)" +REGISTRY="$REG" TAG="$TAG" $DC up -d || { + if [ -n "$CONTAINER" ]; then + echo ">>> up 失败,尝试删除同名容器 $CONTAINER 后重试" + docker rm -f "$CONTAINER" 2>/dev/null || true + REGISTRY="$REG" TAG="$TAG" $DC up -d + else + exit 1 + fi +} +docker image prune -f >/dev/null 2>&1 || true +echo "✓ 部署完成: $DIR (TAG=$TAG)" +` + +// sshRunStreaming SSH 到目标机执行脚本,stdout/stderr 合并按行实时回调 logln。返回远端退出错误(非 0 即失败)。 +func sshRunStreaming(host string, port int, user, privateKeyPEM, script string, args []string, logln func(string)) error { + signer, err := ssh.ParsePrivateKey([]byte(privateKeyPEM)) + if err != nil { + return fmt.Errorf("SSH 私钥解析失败: %w", err) + } + cfg := &ssh.ClientConfig{ + User: user, + Auth: []ssh.AuthMethod{ssh.PublicKeys(signer)}, + HostKeyCallback: ssh.InsecureIgnoreHostKey(), // 内网部署目标,不校验 host key(与 envTest 一致) + Timeout: 15 * time.Second, + } + cli, err := ssh.Dial("tcp", fmt.Sprintf("%s:%d", host, port), cfg) + if err != nil { + return fmt.Errorf("SSH 连接失败: %w", err) + } + defer cli.Close() + session, err := cli.NewSession() + if err != nil { + return fmt.Errorf("SSH 会话创建失败: %w", err) + } + defer session.Close() + + w := &sshLineWriter{emit: logln} + session.Stdout = w + session.Stderr = w + session.Stdin = strings.NewReader(script) + + quoted := make([]string, len(args)) + for i, a := range args { + quoted[i] = shQuote(a) + } + runErr := session.Run("bash -s -- " + strings.Join(quoted, " ")) + w.flush() + return runErr +} + +// shQuote 单引号包裹并转义,安全地把参数拼进远端 shell 命令行。 +func shQuote(s string) string { + return "'" + strings.ReplaceAll(s, "'", `'\''`) + "'" +} + +// sshLineWriter 把 SSH 输出按行切分实时回调(stdout/stderr 共用一个 writer,用锁串行化)。 +type sshLineWriter struct { + mu sync.Mutex + buf []byte + emit func(string) +} + +func (w *sshLineWriter) Write(p []byte) (int, error) { + w.mu.Lock() + defer w.mu.Unlock() + w.buf = append(w.buf, p...) + for { + i := bytes.IndexByte(w.buf, '\n') + if i < 0 { + break + } + w.emit(strings.TrimRight(string(w.buf[:i]), "\r")) + w.buf = w.buf[i+1:] + } + return len(p), nil +} + +func (w *sshLineWriter) flush() { + w.mu.Lock() + defer w.mu.Unlock() + if len(w.buf) > 0 { + w.emit(strings.TrimRight(string(w.buf), "\r")) + w.buf = nil + } +} diff --git a/apps/services/modules/console/model_agent.go b/apps/services/modules/console/model_agent.go new file mode 100644 index 00000000..ff3f21ce --- /dev/null +++ b/apps/services/modules/console/model_agent.go @@ -0,0 +1,63 @@ +package console + +// yunyan 自管 Agent 配置数据模型(表:agent)。 +// +// 不同于 modules/agents 旧实现(仅代理转发 polychat 的 /open/v1),这是 yunyan 自己的一套 agents: +// 在 console 编排已配置的第三方服务(ThirdSvcConfig),配置最终「下发客户端」,由客户端调各服务完成 +// 对话/翻译等能力。借鉴 polychat-agent 的「agent 通过 service_id 引用 service」配置模型,精简为 +// 「服务编排 + 系统提示词 + 语言/性别/开场白 + 音色覆盖」,MCP/指令/Hook/变量等后续按需再加。 +// +// 四种类型引用的服务(均引用 ThirdSvcConfig.Id): +// chat 对话: SttSvcId + LlmSvcId + TtsSvcId +// translate 翻译: SttSvcId + MtSvcId + TtsSvcId +// sts-chat 端到端对话: StsSvcId +// ast-translate 端到端翻译: AstSvcId + +// Agent 类型取值(与前端一致)。 +const ( + AgentTypeChat = "chat" + AgentTypeTranslate = "translate" + AgentTypeStsChat = "sts-chat" + AgentTypeAstTranslate = "ast-translate" +) + +// AgentVoice 音色覆盖项(语言+性别 → 具体音色名,覆盖所引用 TTS 服务的默认音色)。 +type AgentVoice struct { + Language string `json:"language"` // BCP-47,如 zh-CN + Gender int32 `json:"gender"` // 1 男 2 女(0 不限) + Voice string `json:"voice"` // provider 特定音色名,如 zh-CN-XiaoxiaoNeural +} + +// AgentConfig console 自管的 agent 配置(表:agent_config,按应用分离)。一行 = 某应用作用域下一个可下发客户端的智能体。 +// voice_map 借助 gorm serializer:json 存 jsonb 列;support_langs 逗号分隔 BCP-47(同第三方服务 languages 约定)。 +// +// 按应用分离:AppName=''为全局默认、'X'为应用X覆盖;业务字符串 Id 改用代理主键 RowId + 唯一索引(app_name,id)。 +// 引用的第三方服务(SttSvcId 等)在同一应用作用域内解析、无则回退全局。 +type AgentConfig struct { + RowId uint64 `gorm:"primaryKey;autoIncrement;column:row_id" json:"row_id"` + AppName string `gorm:"column:app_name;size:64;uniqueIndex:uidx_agent_config,priority:1" json:"app_name"` // ''=全局默认 + Id string `gorm:"column:id;size:64;uniqueIndex:uidx_agent_config,priority:2" json:"id"` + Name string `gorm:"column:name;size:64" json:"name"` + Type string `gorm:"column:type;size:32" json:"type"` // chat|translate|sts-chat|ast-translate + Description string `gorm:"column:description" json:"description"` + AvatarUrl string `gorm:"column:avatar_url" json:"avatar_url"` + Enable bool `gorm:"column:enable" json:"enable"` + // 服务编排:均引用 ThirdSvcConfig.Id,按 Type 用其中若干(见文件头映射)。 + SttSvcId string `gorm:"column:stt_svc_id;size:64" json:"stt_svc_id"` + LlmSvcId string `gorm:"column:llm_svc_id;size:64" json:"llm_svc_id"` + TtsSvcId string `gorm:"column:tts_svc_id;size:64" json:"tts_svc_id"` + MtSvcId string `gorm:"column:mt_svc_id;size:64" json:"mt_svc_id"` + StsSvcId string `gorm:"column:sts_svc_id;size:64" json:"sts_svc_id"` + AstSvcId string `gorm:"column:ast_svc_id;size:64" json:"ast_svc_id"` + // 逻辑配置 + SystemPrompt string `gorm:"column:system_prompt" json:"system_prompt"` + Gender int32 `gorm:"column:gender" json:"gender"` // 0 未定 1 男 2 女 + GreetingEnabled bool `gorm:"column:greeting_enabled" json:"greeting_enabled"` + GreetingText string `gorm:"column:greeting_text" json:"greeting_text"` + SupportLangs string `gorm:"column:support_langs;size:255" json:"support_langs"` // 逗号分隔 BCP-47 + DefaultLang string `gorm:"column:default_lang;size:32" json:"default_lang"` + VoiceMap []AgentVoice `gorm:"column:voice_map;type:jsonb;serializer:json" json:"voice_map"` + Sort int32 `gorm:"column:sort" json:"sort"` + Createtime int64 `gorm:"column:createtime" json:"createtime"` + Updatetime int64 `gorm:"column:updatetime" json:"updatetime"` +} diff --git a/apps/services/modules/console/model_environment.go b/apps/services/modules/console/model_environment.go new file mode 100644 index 00000000..73c9a4ea --- /dev/null +++ b/apps/services/modules/console/model_environment.go @@ -0,0 +1,80 @@ +package console + +import ( + "yunyan/comm" + "yunyan/lego/sys/postgres" +) + +// AppEnvironment 部署环境/节点:一行 = 一台部署服务器(如 上海/日本/新加坡节点)。 +// 存 console 主库(postgres.GetSys(),即 supabase 单库),与 app_registry 同库。 +// +// 只放「节点级、该服务器上各应用共用」的东西:SSH 登录、私有镜像仓库、Docker 网络、共享集群服务(etcd/nats/redis 地址)。 +// **应用维度的部署配置(部署目录 deploy_dir、业务库 DSN、镜像名/tag、redis 库号 等)不放这里**, +// 而是在「部署某应用到该节点」时填、存到 app_registry 部署行——见 model_registry.go 的 DeployDir/ImageName/ImageTag/ServiceDsn。 +// +// 密钥字段(SshPrivateKey / RegistryPass / RedisPwd)以 AES-256-GCM 密文落库 +// (复用 api_svcconfig.go 的 svcEncrypt/svcDecrypt,密钥 this.options.EncryptKey),返回前端前脱敏为 "[encrypted]"。 +type AppEnvironment struct { + Id uint32 `gorm:"primaryKey;autoIncrement;column:id" json:"id"` + Name string `gorm:"column:name;size:64" json:"name"` // 显示名,如 "上海生产" + Code string `gorm:"column:code;size:32;index" json:"code"` // 区域码,对齐 prod-deploy.sh REGIONS:shanghai/japan/singapore + Remark string `gorm:"column:remark;size:255" json:"remark"` + Enabled bool `gorm:"column:enabled" json:"enabled"` // 是否启用(停用的不在应用「部署到目标环境」下拉展示) + + // ── SSH 部署目标(登录该服务器;节点级)── + SshHost string `gorm:"column:ssh_host;size:128" json:"ssh_host"` // DEPLOY_HOST,远端 IP + SshPort int `gorm:"column:ssh_port" json:"ssh_port"` // DEPLOY_PORT,默认 22 + SshUser string `gorm:"column:ssh_user;size:64" json:"ssh_user"` // DEPLOY_USER,如 root + SshPrivateKey string `gorm:"column:ssh_private_key;type:text" json:"ssh_private_key"` // DEPLOY_KEY 私钥内容(PEM)【加密】 + + // ── 私有镜像仓库 + Docker 网络(节点级共享;镜像名/tag 是应用维度,放部署行)── + Registry string `gorm:"column:registry;size:255" json:"registry"` // 如 docker-registry.ideapsound.com + RegistryUser string `gorm:"column:registry_user;size:64" json:"registry_user"` // + RegistryPass string `gorm:"column:registry_pass;size:255" json:"registry_pass"` // 【加密】 + DockerNetwork string `gorm:"column:docker_network;size:64" json:"docker_network"` // 如 1panel-network + + // ── 节点共享集群服务(该服务器上各应用共用的地址;各应用自己的 DB/库号在部署行)── + EtcdServers string `gorm:"column:etcd_servers;size:255" json:"etcd_servers"` // ETCD_SERVERS,如 etcd:2379 + RedisAddr string `gorm:"column:redis_addr;size:255" json:"redis_addr"` // REDIS_ADDR(共享 redis 服务器;库号按应用分,放部署行) + RedisPwd string `gorm:"column:redis_pwd;size:255" json:"redis_pwd"` // 【加密】 + NatsUrl string `gorm:"column:nats_url;size:255" json:"nats_url"` // NATS_URL,如 nats://nats:4222 + + Createtime int64 `gorm:"column:createtime" json:"createtime"` + Updatetime int64 `gorm:"column:updatetime" json:"updatetime"` +} + +func (AppEnvironment) TableName() string { return comm.TableAppEnvironment } + +// ---- 环境表 CRUD(走 console 主库 postgres,与 app_registry 同库同套 helper)---- + +// listEnvs 返回全部环境(按 id 升序)。 +func (this *modelComp) listEnvs() (models []*AppEnvironment, err error) { + models = make([]*AppEnvironment, 0) + err = postgres.Find(comm.TableAppEnvironment, &models, "") + return +} + +// getEnv 按 id 取环境。 +func (this *modelComp) getEnv(id uint32) (model *AppEnvironment, err error) { + model = &AppEnvironment{} + err = postgres.FindOne(comm.TableAppEnvironment, model, "id=?", id) + return +} + +// addEnv 新增环境(Insert 后 model.Id 被回填)。 +func (this *modelComp) addEnv(model *AppEnvironment) (err error) { + err = postgres.Insert(comm.TableAppEnvironment, model) + return +} + +// saveEnv 更新环境。 +func (this *modelComp) saveEnv(model *AppEnvironment) (err error) { + err = postgres.Save(comm.TableAppEnvironment, model) + return +} + +// delEnv 删除环境。 +func (this *modelComp) delEnv(id uint32) (err error) { + err = postgres.Delete(comm.TableAppEnvironment, "id=?", id) + return +} diff --git a/apps/services/modules/console/model_moduleconfig.go b/apps/services/modules/console/model_moduleconfig.go new file mode 100644 index 00000000..3a65db46 --- /dev/null +++ b/apps/services/modules/console/model_moduleconfig.go @@ -0,0 +1,51 @@ +package console + +import ( + "yunyan/comm" + "yunyan/lego/sys/mysql" +) + +// 应用「业务功能配置」(app_module_config) 的数据访问:直接落到**应用业务库**(由 registry 按 appId 取的连接), +// 不进 console 公共库。db 句柄可能是 mysql 或 postgres(openDriver 已按 DSN 前缀选驱动,均实现 mysql.ISys)。 + +// ensureModuleConfigTable 幂等在业务库建表(首次访问时调用)。 +func ensureModuleConfigTable(db mysql.ISys) error { + return db.CreateTable(comm.TableAppModuleConfig, &comm.AppModuleConfig{}) +} + +// listModuleConfig 列出业务库里的配置项;module 非空则只列该模块,空则全部(按 module+key 稳定排序)。 +func listModuleConfig(db mysql.ISys, module string) (rows []*comm.AppModuleConfig, err error) { + rows = make([]*comm.AppModuleConfig, 0) + if module != "" { + err = db.Find(comm.TableAppModuleConfig, &rows, "module=?", module) + } else { + err = db.Find(comm.TableAppModuleConfig, &rows, "") + } + return +} + +// getModuleConfigItem 按 (module,key) 取一项(更新时保留旧密文/建时间)。不存在返回 (nil,nil)。 +func getModuleConfigItem(db mysql.ISys, module, key string) (*comm.AppModuleConfig, error) { + m := &comm.AppModuleConfig{} + err := db.FindOne(comm.TableAppModuleConfig, m, "module=? AND key=?", module, key) + if err == mysql.ErrNoDocuments { + return nil, nil + } + if err != nil { + return nil, err + } + return m, nil +} + +// upsertModuleConfigItem 按 (module,key) upsert:存在则带 Id 更新,否则新增。 +func upsertModuleConfigItem(db mysql.ISys, m *comm.AppModuleConfig) error { + if m.Id != 0 { + return db.Save(comm.TableAppModuleConfig, m) + } + return db.Insert(comm.TableAppModuleConfig, m) +} + +// delModuleConfig 删除某模块的全部配置项。 +func delModuleConfig(db mysql.ISys, module string) error { + return db.Delete(comm.TableAppModuleConfig, "module=?", module) +} diff --git a/apps/services/modules/console/model_product.go b/apps/services/modules/console/model_product.go new file mode 100644 index 00000000..84ac187b --- /dev/null +++ b/apps/services/modules/console/model_product.go @@ -0,0 +1,63 @@ +package console + +import ( + "yunyan/comm" + "yunyan/lego/sys/postgres" +) + +// AppProduct 应用/产品:SaaS 里的一个应用名(如 Voitrans / Lumi / EchoMeet)。 +// 存 console 主库(postgres.GetSys())。一个 AppProduct 下挂多条区域部署(app_registry,按应用名 app_name 关联): +// - 现有部署(existing):直接把已部署的应用区域加进来(填 base_url/service_dsn)。 +// - 待部署(pending):选一个部署目标环境(app_environment),记录关联、状态 pending,DSN 部署后回填。 +type AppProduct struct { + Id uint32 `gorm:"primaryKey;autoIncrement;column:id" json:"id"` + Name string `gorm:"column:name;size:64;uniqueIndex" json:"name"` // 应用名,如 Voitrans(账号作用域 Account.Apps 按名绑定) + ImageName string `gorm:"column:image_name;size:128" json:"image_name"` // 该应用默认镜像名(部署时用,可空,被环境/部署行覆盖) + Remark string `gorm:"column:remark;size:255" json:"remark"` + Enabled bool `gorm:"column:enabled" json:"enabled"` + Createtime int64 `gorm:"column:createtime" json:"createtime"` + Updatetime int64 `gorm:"column:updatetime" json:"updatetime"` +} + +func (AppProduct) TableName() string { return comm.TableAppProduct } + +// ---- 应用/产品表 CRUD(console 主库 postgres)---- + +// listProducts 返回全部应用(按 id 升序)。 +func (this *modelComp) listProducts() (models []*AppProduct, err error) { + models = make([]*AppProduct, 0) + err = postgres.Find(comm.TableAppProduct, &models, "") + return +} + +// getProduct 按 id 取应用。 +func (this *modelComp) getProduct(id uint32) (model *AppProduct, err error) { + model = &AppProduct{} + err = postgres.FindOne(comm.TableAppProduct, model, "id=?", id) + return +} + +// getProductByName 按名称取应用(新增时判重)。 +func (this *modelComp) getProductByName(name string) (model *AppProduct, err error) { + model = &AppProduct{} + err = postgres.FindOne(comm.TableAppProduct, model, "name=?", name) + return +} + +// addProduct 新增应用(Insert 后 model.Id 被回填)。 +func (this *modelComp) addProduct(model *AppProduct) (err error) { + err = postgres.Insert(comm.TableAppProduct, model) + return +} + +// saveProduct 更新应用。 +func (this *modelComp) saveProduct(model *AppProduct) (err error) { + err = postgres.Save(comm.TableAppProduct, model) + return +} + +// delProduct 删除应用。 +func (this *modelComp) delProduct(id uint32) (err error) { + err = postgres.Delete(comm.TableAppProduct, "id=?", id) + return +} diff --git a/apps/services/modules/console/model_registry.go b/apps/services/modules/console/model_registry.go index 6ae1f431..d739e429 100644 --- a/apps/services/modules/console/model_registry.go +++ b/apps/services/modules/console/model_registry.go @@ -29,8 +29,16 @@ type AppRegistry struct { NatsStream string `gorm:"column:nats_stream;size:64" json:"nats_stream"` Enabled bool `gorm:"column:enabled" json:"enabled"` // 是否启用(停用的不在切换器展示) Remark string `gorm:"column:remark;size:255" json:"remark"` - Createtime int64 `gorm:"column:createtime" json:"createtime"` - Updatetime int64 `gorm:"column:updatetime" json:"updatetime"` + // AppName 归属的应用名(= app_product.name,空=未分组)。用应用名直接关联——名称唯一即应用ID,不再套整型外键。 + AppName string `gorm:"column:app_name;size:64;index" json:"app_name"` + Status string `gorm:"column:status;size:16" json:"status"` // existing=已接入现有 / pending=待部署(选了目标环境尚未部署) + // EnvId 关联的部署环境(app_environment.id,0=未关联);下面三个是下一期远程部署的应用维度覆盖(本期只存不用)。 + EnvId uint32 `gorm:"column:env_id;index" json:"env_id"` // 所属部署环境 → app_environment.id + DeployDir string `gorm:"column:deploy_dir;size:255" json:"deploy_dir"` // 覆盖 env.DeployDir(对应 APPS 行远端目录) + ImageName string `gorm:"column:image_name;size:128" json:"image_name"` // 覆盖 env.ImageName(共用镜像时留空) + ImageTag string `gorm:"column:image_tag;size:64" json:"image_tag"` // 覆盖 env.ImageTag + Createtime int64 `gorm:"column:createtime" json:"createtime"` + Updatetime int64 `gorm:"column:updatetime" json:"updatetime"` } func (AppRegistry) TableName() string { return comm.TableAppRegistry } @@ -47,6 +55,21 @@ func (this *modelComp) Init(service core.IService, module core.IModule, comp cor if err = postgres.CreateTable(comm.TableAppRegistry, &AppRegistry{}); err != nil { this.module.Errorln(err) } + // app_registry 新增的关联/部署列:CreateTable 对已存在表跳过 AutoMigrate,故显式幂等补列。 + if err = this.ensureRegistryColumns(); err != nil { + this.module.Errorln(err) + } + // 应用/产品表 + 部署环境表(新表,首次 CreateTable 会正常建)。 + if err = postgres.CreateTable(comm.TableAppProduct, &AppProduct{}); err != nil { + this.module.Errorln(err) + } + if err = postgres.CreateTable(comm.TableAppEnvironment, &AppEnvironment{}); err != nil { + this.module.Errorln(err) + } + // 应用×服务的基础设施/运行配置表(业务服务启动 seed、console 后台读写;新表 CreateTable 幂等)。 + if err = postgres.CreateTable(comm.TableAppServiceConfig, &comm.AppServiceConfig{}); err != nil { + this.module.Errorln(err) + } if err = this.ensureAccountTable(); err != nil { this.module.Errorln(err) } @@ -104,3 +127,22 @@ func (this *modelComp) delApp(id uint32) (err error) { err = postgres.Delete(comm.TableAppRegistry, "id=?", id) return } + +// ensureRegistryColumns 给已存在的 app_registry 幂等补充「环境关联 + 部署覆盖」列。 +// CreateTable 对已存在表跳过 AutoMigrate(见 lego/sys/postgres),故新列须显式 ALTER(IF NOT EXISTS 幂等)。 +func (this *modelComp) ensureRegistryColumns() error { + stmts := []string{ + "ALTER TABLE " + comm.TableAppRegistry + " ADD COLUMN IF NOT EXISTS app_name varchar(64) DEFAULT ''", + "ALTER TABLE " + comm.TableAppRegistry + " ADD COLUMN IF NOT EXISTS status varchar(16) DEFAULT 'existing'", + "ALTER TABLE " + comm.TableAppRegistry + " ADD COLUMN IF NOT EXISTS env_id bigint DEFAULT 0", + "ALTER TABLE " + comm.TableAppRegistry + " ADD COLUMN IF NOT EXISTS deploy_dir varchar(255) DEFAULT ''", + "ALTER TABLE " + comm.TableAppRegistry + " ADD COLUMN IF NOT EXISTS image_name varchar(128) DEFAULT ''", + "ALTER TABLE " + comm.TableAppRegistry + " ADD COLUMN IF NOT EXISTS image_tag varchar(64) DEFAULT ''", + } + for _, sql := range stmts { + if res := postgres.Exec(sql); res.Error != nil { + return res.Error + } + } + return nil +} diff --git a/apps/services/modules/console/model_svcconfig.go b/apps/services/modules/console/model_svcconfig.go index e50cd84d..d90a9d3a 100644 --- a/apps/services/modules/console/model_svcconfig.go +++ b/apps/services/modules/console/model_svcconfig.go @@ -1,6 +1,6 @@ package console -// 依赖服务配置(svcconfig) 与 通话翻译配置(calltranslate) 的本地数据模型。 +// 第三方服务配置(svcconfig) 与 通话翻译配置(calltranslate) 的本地数据模型。 // // yunyan-sas 的 pb 没有这些定义且禁止改 proto,故在 console 模块用本地 Go struct + gorm/json tag 定义。 // 字段移植自 deep_server 的 db.proto(DBThirdSvcConfig / ThirdSvcFieldItem / DBThirdSvcRegionOverride / @@ -10,22 +10,30 @@ package console // gorm v1.26 AutoMigrate + 读写自动 Marshal/Unmarshal,无需手动处理。 // region / mode 直接用 int32(与前端 JSON 一致),不依赖 pb 的 Region/TranslateMode 枚举。 -// SvcField 依赖服务的自定义字段项(内嵌于 ThirdSvcConfig.fields jsonb 列)。 +// SvcField 第三方服务的自定义字段项(内嵌于 ThirdSvcConfig.fields jsonb 列,也复用于模板/区域专属字段)。 // 加密字段:DefValue 存 AES-GCM 密文;API 对加密字段只返回 "[encrypted]" 占位, // 更新时若传空串/占位符则保留原密文不变。 type SvcField struct { Key string `json:"key"` // 字段名,同服务内唯一,如 secret_key Description string `json:"description"` // 字段用途描述,前端展示 + Type string `json:"type"` // 字段类型:空/text 普通文本;langs 支持语言多选(值=逗号分隔 BCP-47);lang 单选默认语言。旧数据为空即 text,向后兼容 Encrypted bool `json:"encrypted"` // 是否加密存储 - DefValue string `json:"def_value"` // 默认值(全区域共用;加密字段存 AES-GCM 密文) + DefValue string `json:"def_value"` // 默认值(全区域共用;加密字段存 AES-GCM 密文;langs 存 "zh-CN,en-US",lang 存单个码) Sort int32 `json:"sort"` // 展示排序,越小越靠前 } -// ThirdSvcConfig 依赖服务配置(表:third_svc_config)。每行 = 一个第三方服务(如火山引擎/阿里云)。 +// ThirdSvcConfig 第三方服务配置(表:svc_config,按应用分离)。每行 = 某应用作用域下的一个第三方服务(如火山引擎/阿里云)。 // categories 存逗号分隔的 ServiceCategory 枚举值,如 "1,2,3"。 +// Provider 记录该服务由哪个服务商模板创建(如 azure/openai),仅供前端展示/分组,可为空。 +// +// 按应用分离:AppName=''为全局默认、'X'为应用X的覆盖;解析时应用有则用应用的、无则回退全局。 +// 业务字符串 Id 不再全局唯一,改用代理主键 RowId + 唯一索引(app_name,id),同一 id 可在全局与各应用并存。 type ThirdSvcConfig struct { - Id string `gorm:"column:id;size:64;primaryKey" json:"id"` + RowId uint64 `gorm:"primaryKey;autoIncrement;column:row_id" json:"row_id"` + AppName string `gorm:"column:app_name;size:64;uniqueIndex:uidx_svc_config,priority:1" json:"app_name"` // ''=全局默认 + Id string `gorm:"column:id;size:64;uniqueIndex:uidx_svc_config,priority:2" json:"id"` Name string `gorm:"column:name;size:64" json:"name"` + Provider string `gorm:"column:provider;size:64" json:"provider"` Categories string `gorm:"column:categories;size:64" json:"categories"` Description string `gorm:"column:description" json:"description"` Enable bool `gorm:"column:enable" json:"enable"` @@ -34,15 +42,21 @@ type ThirdSvcConfig struct { Updatetime int64 `gorm:"column:updatetime" json:"updatetime"` } -// SvcRegionOverride 依赖服务区域字段覆盖(表:third_svc_region_override)。 -// 每行 = 一个服务 × 一个区域的覆盖集合(仅存有差异的字段)。 -// 某字段 key 不在 Overrides 中则继承 ThirdSvcConfig.fields 内对应字段的 DefValue。 +// SvcRegionOverride 第三方服务区域字段覆盖(表:third_svc_region_override)。 +// 每行 = 一个服务 × 一个区域的分叉集合,支持三种差异(均向后兼容:旧行新字段为 nil,行为不变): +// - Overrides:默认字段的“值覆盖”。某字段 key 不在其中则继承 ThirdSvcConfig.fields 对应字段的 DefValue。 +// - ExtraFields:本区域“专属新增字段”(默认字段集里没有的),DefValue 存该区域的值(加密字段存 AES-GCM 密文)。 +// - DisabledKeys:本区域“不适用”的默认字段 key(如阿里国内/国外、微软不同区域节点字段不一致)。 +// 按应用分离:AppName 进唯一索引首位,(app_name,svc_id,region) 唯一;svc_id 引用同作用域下的 ThirdSvcConfig.Id。 type SvcRegionOverride struct { - Id uint64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"` - SvcId string `gorm:"column:svc_id;size:64;uniqueIndex:uidx_svc_region" json:"svc_id"` - Region int32 `gorm:"column:region;uniqueIndex:uidx_svc_region" json:"region"` - Overrides map[string]string `gorm:"column:overrides;type:jsonb;serializer:json" json:"overrides"` - Updatetime int64 `gorm:"column:updatetime" json:"updatetime"` + Id uint64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"` + AppName string `gorm:"column:app_name;size:64;uniqueIndex:uidx_svc_region,priority:1" json:"app_name"` // ''=全局默认 + SvcId string `gorm:"column:svc_id;size:64;uniqueIndex:uidx_svc_region,priority:2" json:"svc_id"` + Region int32 `gorm:"column:region;uniqueIndex:uidx_svc_region,priority:3" json:"region"` + Overrides map[string]string `gorm:"column:overrides;type:jsonb;serializer:json" json:"overrides"` + ExtraFields []SvcField `gorm:"column:extra_fields;type:jsonb;serializer:json" json:"extra_fields"` + DisabledKeys []string `gorm:"column:disabled_keys;type:jsonb;serializer:json" json:"disabled_keys"` + Updatetime int64 `gorm:"column:updatetime" json:"updatetime"` } // CallTranslatePair 通话翻译语言对配置(表:call_translate_pair)。 diff --git a/apps/services/modules/console/model_svcruntime.go b/apps/services/modules/console/model_svcruntime.go new file mode 100644 index 00000000..7277b2ab --- /dev/null +++ b/apps/services/modules/console/model_svcruntime.go @@ -0,0 +1,53 @@ +package console + +import ( + "yunyan/comm" + "yunyan/lego/sys/postgres" +) + +// 应用×服务的「基础设施/运行配置」(app_service_config) 在 console 侧的 CRUD。 +// 表结构与 seed/读取逻辑在 comm.AppServiceConfig / comm.LoadOrSeedServiceConfig(业务服务启动时用), +// 本文件只做 console 后台的增查改删:列出某(应用,区域,服务)的配置项、按 id 批量删、逐项 upsert。 + +// listSvcRuntime 列出某(应用,区域,服务)的全部配置项(按 section+sort 稳定排序)。 +func (this *modelComp) listSvcRuntime(app, region, service string) (models []*comm.AppServiceConfig, err error) { + models = make([]*comm.AppServiceConfig, 0) + err = postgres.Table(comm.TableAppServiceConfig). + Where("app_name=? AND region=? AND service=?", app, region, service). + Order("section ASC, sort ASC, key ASC"). + Find(&models).Error + return +} + +// listSvcRuntimeServices 列出某(应用,区域)下已有配置的服务类型(去重),供前端标记哪些服务已上报。 +func (this *modelComp) listSvcRuntimeServices(app, region string) (services []string, err error) { + services = make([]string, 0) + err = postgres.Table(comm.TableAppServiceConfig). + Where("app_name=? AND region=?", app, region). + Distinct("service"). + Order("service ASC"). + Pluck("service", &services).Error + return +} + +// getSvcRuntimeItem 按主键取一项(更新时保留旧密文/建时间用)。 +func (this *modelComp) getSvcRuntimeItem(id uint64) (model *comm.AppServiceConfig, err error) { + model = &comm.AppServiceConfig{} + err = postgres.FindOne(comm.TableAppServiceConfig, model, "id=?", id) + return +} + +// addSvcRuntimeItem 新增一项。 +func (this *modelComp) addSvcRuntimeItem(model *comm.AppServiceConfig) (err error) { + return postgres.Insert(comm.TableAppServiceConfig, model) +} + +// saveSvcRuntimeItem 更新一项(全字段保存)。 +func (this *modelComp) saveSvcRuntimeItem(model *comm.AppServiceConfig) (err error) { + return postgres.Save(comm.TableAppServiceConfig, model) +} + +// delSvcRuntimeItems 按 id 批量删除。 +func (this *modelComp) delSvcRuntimeItems(ids []uint64) (err error) { + return postgres.Delete(comm.TableAppServiceConfig, "id IN ?", ids) +} diff --git a/apps/services/modules/console/model_svctemplate.go b/apps/services/modules/console/model_svctemplate.go new file mode 100644 index 00000000..8906e3d7 --- /dev/null +++ b/apps/services/modules/console/model_svctemplate.go @@ -0,0 +1,25 @@ +package console + +// 第三方服务商字段模板(svctemplate) 的本地数据模型。 +// +// 模板是「字段 schema 预设」:管理员在「第三方服务配置」新增服务时选一个服务商模板, +// 即自动带出该服务商需要的字段(可再手动增删)。参考 polychat-agent 的 (service_type, provider) +// 注册表,但改为数据驱动——模板作为可编辑的库表数据,启动时 seed 内置常见服务商, +// 新增服务商无需改代码。 +// +// 注意:模板字段的 DefValue 只作「字段提示/默认占位」,不存真实密钥、不加密; +// Encrypted 仅是 schema 标记,会随字段拷贝到服务实例,真正的加密发生在服务实例(ThirdSvcConfig)层。 + +// ThirdSvcTemplate 服务商字段模板(表:third_svc_template)。一行 = 一个 (类别, 服务商) 预设。 +type ThirdSvcTemplate struct { + Id string `gorm:"column:id;size:64;primaryKey" json:"id"` // 稳定 id,如 tts_azure + Category int32 `gorm:"column:category" json:"category"` // 单一服务类别(1STT/2TTS/3MT/4AST/5LLM/6存储) + Provider string `gorm:"column:provider;size:64" json:"provider"` // 服务商标识:azure/openai/volcengine/alibaba... + Name string `gorm:"column:name;size:64" json:"name"` // 展示名,如「微软 Azure TTS」 + Description string `gorm:"column:description" json:"description"` + Fields []SvcField `gorm:"column:fields;type:jsonb;serializer:json" json:"fields"` // 字段 schema(复用 SvcField) + Builtin bool `gorm:"column:builtin" json:"builtin"` // 是否 seed 内置(前端区分/删后可被重新补回) + Sort int32 `gorm:"column:sort" json:"sort"` // 展示排序,越小越靠前 + Createtime int64 `gorm:"column:createtime" json:"createtime"` + Updatetime int64 `gorm:"column:updatetime" json:"updatetime"` +} diff --git a/apps/services/modules/console/server.go b/apps/services/modules/console/server.go index 76b827ef..883c726e 100644 --- a/apps/services/modules/console/server.go +++ b/apps/services/modules/console/server.go @@ -32,6 +32,9 @@ type serverComp struct { // analyzing 记录正在跑历史分析的 app_id(值无意义),防止同一应用并发分析—— // analyzeAppHistory 含 DELETE+重写,并发会互相清表,必须串行。重复点击直接拒绝。 analyzing sync.Map + // deploying 记录正在升级/部署的部署 id(值无意义),防止同一部署并发 SSH 部署—— + // docker compose up 并发会互相拉起/删容器,必须串行。重复点击直接拒绝。 + deploying sync.Map } func (this *serverComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, opt core.IModuleOptions) (err error) { @@ -88,12 +91,36 @@ func (this *serverComp) routes(eng *gin.Engine) { // 应用注册表 CRUD + 配置事件:超管 + 管理员(代理商/运营不能改应用接入)。 apps := mgr.Group("", this.requireIdentity(pb.Identity_Admin, pb.Identity_Manager)) + // 应用/产品(按应用名分组的父层):超管 + 管理员。 + apps.POST("/products/list", this.productsList) + apps.POST("/products/add", this.productsAdd) + apps.POST("/products/update", this.productsUpdate) + apps.POST("/products/del", this.productsDel) apps.POST("/apps/list", this.appsList) apps.POST("/apps/test", this.appsTest) apps.POST("/apps/analyze", this.appsAnalyze) + apps.POST("/apps/upgrade", this.appsUpgrade) // 远程升级:SSH 到部署环境 → docker login/pull/up 重启(NDJSON 流式回显) apps.POST("/apps/add", this.appsAdd) apps.POST("/apps/update", this.appsUpdate) apps.POST("/apps/del", this.appsDel) + apps.POST("/apps/assign", this.appsAssign) + apps.POST("/apps/bindenv", this.appsBindEnv) + // 应用×服务 基础设施/运行配置:应用服务配置页读写(默认值由业务服务启动 seed)。 + apps.POST("/svcconf/list", this.svcRuntimeList) + apps.POST("/svcconf/services", this.svcRuntimeServices) + apps.POST("/svcconf/save", this.svcRuntimeSave) + apps.POST("/svcconf/del", this.svcRuntimeDel) + // 应用业务功能配置(登录/短信/邮件/支付…):读写应用业务库(app_module_config),非公共库。 + apps.POST("/modulecfg/catalog", this.moduleCfgCatalog) + apps.POST("/modulecfg/list", this.moduleCfgList) + apps.POST("/modulecfg/save", this.moduleCfgSave) + apps.POST("/modulecfg/del", this.moduleCfgDel) + // 部署环境(区域)管理:与应用注册同权限(超管 + 管理员)。 + apps.POST("/envs/list", this.envList) + apps.POST("/envs/test", this.envTest) + apps.POST("/envs/add", this.envAdd) + apps.POST("/envs/update", this.envUpdate) + apps.POST("/envs/del", this.envDel) apps.POST("/config/notify", this.configNotify) // 给代理账号充值/调整资源点余额:超管 + 管理员(与赠送给代理同义)。 apps.POST("/accounts/topup", this.accountsTopup) @@ -281,7 +308,7 @@ func (this *serverComp) handleWeb(c *gin.Context) { case "api_delmeettemplate": this.delMeetTemplate(c) return - // 依赖服务配置(svcconfig):第三方服务字段定义/默认值 + 区域覆盖 + 多区域同步,存 console 主库,与选中应用无关。 + // 第三方服务配置(svcconfig):服务字段定义/默认值 + 区域字段分叉(值覆盖/专属字段/停用字段) + 多区域同步,存 console 主库,与选中应用无关。 case "api_getsvcconfigs": this.getSvcConfigs(c) return @@ -303,6 +330,35 @@ func (this *serverComp) handleWeb(c *gin.Context) { case "api_syncsvctoregins": this.syncSvcToRegions(c) return + // 第三方服务商模板(svctemplate):数据驱动的字段 schema 预设,新增服务时选模板自动带出字段。 + case "api_getsvctemplates": + this.getSvcTemplates(c) + return + case "api_addsvctemplate": + this.addSvcTemplate(c) + return + case "api_updatesvctemplate": + this.updateSvcTemplate(c) + return + case "api_delsvctemplate": + this.delSvcTemplate(c) + return + // yunyan 自管 Agent 配置(agent):编排第三方服务(引用 svc id),配置下发客户端;存 console 主库,与选中应用无关。 + case "api_getagents": + this.getAgents(c) + return + case "api_getagent": + this.getAgent(c) + return + case "api_addagent": + this.addAgent(c) + return + case "api_updateagent": + this.updateAgent(c) + return + case "api_delagent": + this.delAgent(c) + return // 通话翻译配置(calltranslate):区域×语言对×服务编排,存 console 主库,与选中应用无关。 case "api_getcalltranslatepairs": this.getCallTranslatePairs(c) @@ -1080,7 +1136,7 @@ func (this *serverComp) appsAdd(c *gin.Context) { writeErr(c, pb.ErrorCode_ReqParameterError, err.Error()) return } - if msg := checkAppConn(&model); msg != "" { + if msg := checkDeployment(&model); msg != "" { writeErr(c, pb.ErrorCode_ReqParameterError, msg) return } @@ -1105,7 +1161,7 @@ func (this *serverComp) appsUpdate(c *gin.Context) { writeErr(c, pb.ErrorCode_ReqParameterError, "id 必填") return } - if msg := checkAppConn(&model); msg != "" { + if msg := checkDeployment(&model); msg != "" { writeErr(c, pb.ErrorCode_ReqParameterError, msg) return } @@ -1134,6 +1190,31 @@ func (this *serverComp) appsDel(c *gin.Context) { writeOK(c, gin.H{"id": req.Id}) } +// appsAssign 轻量「归类」:只把某部署行的 app_name 改成目标应用(空=移回未分组),不做连通性复检。 +// 用于把历史部署行归到应用名下,避免走完整表单+测试连接。 +func (this *serverComp) appsAssign(c *gin.Context) { + var req struct { + Id uint32 `json:"id"` + AppName string `json:"app_name"` + } + if err := c.ShouldBindJSON(&req); err != nil || req.Id == 0 { + writeErr(c, pb.ErrorCode_ReqParameterError, "id 必填") + return + } + model, err := this.module.model.getApp(req.Id) + if err != nil { + writeErr(c, pb.ErrorCode_DBError, "部署不存在: "+err.Error()) + return + } + model.AppName = req.AppName + model.Updatetime = time.Now().Unix() + if err := this.module.model.saveApp(model); err != nil { + writeErr(c, pb.ErrorCode_DBError, err.Error()) + return + } + writeOK(c, model) +} + // ============================ 配置事件下发 ============================ func (this *serverComp) configNotify(c *gin.Context) { diff --git a/apps/services/services/api/main.go b/apps/services/services/api/main.go index 099d03cd..40a08262 100644 --- a/apps/services/services/api/main.go +++ b/apps/services/services/api/main.go @@ -11,6 +11,7 @@ import ( "yunyan/sys/tencentyun/cos" "flag" "fmt" + "os" "yunyan/lego/base/rpcx" "yunyan/lego/core" @@ -57,18 +58,31 @@ type Service struct { func (this *Service) InitSys() { this.ServiceBase.InitSys() pools.Add(comm.Pool_UserSession, func() comm.IUserSession { return comm.NewUserSession() }) + //公共库(PostgreSQL/Supabase,含只读副本)——先连,它是「服务配置托管」的 bootstrap(要先连它才能读库配置)。 + if err := postgres.OnInit(this.GetSettings().Sys["postgres"]); err != nil { + panic(fmt.Sprintf("init sys.postgres err: %s", err.Error())) + } else { + log.Infof("init sys.postgres success!") + } + // 服务配置托管:库优先、无则读文件回写(seed)。应用标识由部署 .env 注入(APP_NAME/APP_REGION), + // FIELD_ENCRYPT_KEY 需与 console 一致。未配 APP_NAME 则跳过、保持纯文件配置(不产生孤儿数据)。 + // 命中库配置时就地覆盖 Sys(mysql/redis/cos…),随后各 OnInit 使用被覆盖后的值。 + appName, region, encKey := os.Getenv("APP_NAME"), os.Getenv("APP_REGION"), os.Getenv("FIELD_ENCRYPT_KEY") + if seeded, err := comm.LoadOrSeedServiceConfig(encKey, appName, region, "api", this.GetSettings().Sys); err != nil { + log.Warnf("init service config 托管失败(降级为纯文件配置): %s", err.Error()) + } else if appName != "" { + if seeded { + log.Infof("init service config: 首次 seed 文件配置 → console 共享库 (app=%s region=%s)", appName, region) + } else { + log.Infof("init service config: 已从 console 共享库加载并覆盖文件配置 (app=%s region=%s)", appName, region) + } + } //业务库(MySQL) if err := mysql.OnInit(this.GetSettings().Sys["mysql"]); err != nil { panic(fmt.Sprintf("init sys.mysql err: %s", err.Error())) } else { log.Infof("init sys.mysql success!") } - //公共库(PostgreSQL/Supabase,含只读副本) - if err := postgres.OnInit(this.GetSettings().Sys["postgres"]); err != nil { - panic(fmt.Sprintf("init sys.postgres err: %s", err.Error())) - } else { - log.Infof("init sys.postgres success!") - } //Redis if err := redissys.OnInit(this.GetSettings().Sys["redis"]); err != nil { panic(fmt.Sprintf("init sys.redis err: %s", err.Error())) diff --git a/apps/services/services/home/main.go b/apps/services/services/home/main.go index 792b956d..3a178c6c 100644 --- a/apps/services/services/home/main.go +++ b/apps/services/services/home/main.go @@ -34,6 +34,7 @@ import ( "yunyan/sys/websearch/bochasearch" "flag" "fmt" + "os" _ "time/tzdata" // 内嵌时区库:保证 analyze 统计时区(默认 Asia/Shanghai)在缺 tzdata 的容器也可解析 "yunyan/lego/base/rpcx" @@ -114,6 +115,14 @@ func (this *Service) InitSys() { } else { log.Infof("init sys.mysql success!") } + // 业务功能配置托管:连上业务库后、各业务 sys(sms/wechat_auth/email/pay…) OnInit 之前, + // 从业务库 app_module_config 读值覆盖 Sys(库空则把当前 yaml seed 进库)。 + // FIELD_ENCRYPT_KEY 须与 console 一致;改配置需重启生效。失败则降级用 yaml 默认、不阻断启动。 + if err := comm.LoadOrSeedModuleConfig(mysql.GetSys(), os.Getenv("FIELD_ENCRYPT_KEY"), this.GetSettings().Sys); err != nil { + log.Errorf("load module config err (回退 yaml 默认): %s", err.Error()) + } else { + log.Infof("load module config success!") + } //公共库(PostgreSQL/Supabase,含只读副本) if err := postgres.OnInit(this.GetSettings().Sys["postgres"]); err != nil { panic(fmt.Sprintf("init sys.postgres err: %s", err.Error())) @@ -196,12 +205,6 @@ func (this *Service) InitSys() { log.Infof("init sys.email success!") } - if err := cos.OnInit(this.GetSettings().Sys["cos"]); err != nil { - panic(fmt.Sprintf("init sys.cos err: %s", err.Error())) - } else { - log.Infof("init sys.cos success!") - } - if err := wechat.OnInit(this.GetSettings().Sys["wechatpay"]); err != nil { panic(fmt.Sprintf("init sys.wechatpay err: %s", err.Error())) } else { @@ -229,11 +232,6 @@ func (this *Service) InitSys() { } else { log.Infof("init sys.googleiap success!") } - if err := googleiap.OnInit(this.GetSettings().Sys["googleiap"]); err != nil { - panic(fmt.Sprintf("init sys.googleiap err: %s", err.Error())) - } else { - log.Infof("init sys.googleiap success!") - } if err := doubao.OnInit(this.GetSettings().Sys["doubao"]); err != nil { panic(fmt.Sprintf("init sys.doubao err: %s", err.Error())) } else { diff --git a/apps/services/sys/auth/google/auth.go b/apps/services/sys/auth/google/auth.go index 7db11a1e..0b49fccf 100644 --- a/apps/services/sys/auth/google/auth.go +++ b/apps/services/sys/auth/google/auth.go @@ -3,6 +3,7 @@ package google_auth import ( "context" "fmt" + "strings" firebase "firebase.google.com/go/v4" "firebase.google.com/go/v4/auth" @@ -39,8 +40,13 @@ type Google struct { // - info: 校验成功后返回的 Token 信息 // - err: 校验失败或邮箱未验证时返回错误 func (this *Google) Auth(ctx context.Context, idToken string) (info *auth.Token, err error) { - // 指定服务账号密钥路径 - opt := option.WithCredentialsFile(this.options.ApiKeyFile) + // 服务账号密钥:以 { 开头视为直接内嵌的 JSON 内容(推荐,配置全在库/env),否则当作文件路径。 + var opt option.ClientOption + if cred := strings.TrimSpace(this.options.ApiKeyFile); strings.HasPrefix(cred, "{") { + opt = option.WithCredentialsJSON([]byte(this.options.ApiKeyFile)) + } else { + opt = option.WithCredentialsFile(this.options.ApiKeyFile) + } // 初始化 Firebase App app, err := firebase.NewApp(ctx, nil, opt) if err != nil { diff --git a/apps/services/sys/pay/wechat/wechat.go b/apps/services/sys/pay/wechat/wechat.go index b298945d..59de635a 100644 --- a/apps/services/sys/pay/wechat/wechat.go +++ b/apps/services/sys/pay/wechat/wechat.go @@ -4,11 +4,13 @@ import ( "context" "crypto/aes" "crypto/cipher" + "crypto/rsa" "yunyan/lego/sys/log" "encoding/base64" "encoding/json" "fmt" "math/rand" + "strings" "time" "github.com/wechatpay-apiv3/wechatpay-go/core" @@ -22,7 +24,13 @@ func newSys(options Options) (sys *WeChat, err error) { options: options, } - privateKey, err := utils.LoadPrivateKeyWithPath(options.PrivateKeyPath) + // 商户私钥:含 "-----BEGIN" 视为直接内嵌的 PEM 内容(推荐,配置全在库),否则当作 .pem 文件路径。 + var privateKey *rsa.PrivateKey + if strings.Contains(options.PrivateKeyPath, "-----BEGIN") { + privateKey, err = utils.LoadPrivateKey(options.PrivateKeyPath) + } else { + privateKey, err = utils.LoadPrivateKeyWithPath(options.PrivateKeyPath) + } if err != nil { log.Fatalf("加载商户私钥失败: %v", err) }