From 5fd4b38b6a146e90368c4dbbf8aeef96dcb0d172 Mon Sep 17 00:00:00 2001 From: liuzhiyuan <> Date: Wed, 30 Jul 2025 18:07:47 +0800 Subject: [PATCH] =?UTF-8?q?init:=20=E5=88=9D=E5=A7=8B=E5=8C=96=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/.gitignore | 1 + web/README.md | 5 + web/index.html | 13 + web/package.json | 25 + web/pnpm-lock.yaml | 1597 +++++++++++++++++ web/public/vite.svg | 1 + web/src/App.vue | 362 ++++ web/src/assets/images/header-center-in@1x.png | Bin 0 -> 17401 bytes web/src/assets/images/header-center-out.png | Bin 0 -> 4752 bytes web/src/assets/images/header-left@1x.png | Bin 0 -> 4868 bytes web/src/assets/images/header-right@1x.png | Bin 0 -> 4566 bytes web/src/assets/images/header-tab-bg@1x.png | Bin 0 -> 10044 bytes web/src/assets/images/l-lx@1x.png | Bin 0 -> 354 bytes web/src/assets/images/r-lx@1x.png | Bin 0 -> 362 bytes web/src/assets/images/st-home@1x.png | Bin 0 -> 996 bytes web/src/assets/styles/main.scss | 46 + web/src/assets/vue.svg | 1 + web/src/components/AlarmTrend.vue | 172 ++ web/src/components/AlgorithmStats.vue | 152 ++ web/src/components/CameraStats.vue | 126 ++ web/src/components/DashboardHeader.vue | 281 +++ web/src/components/EventHotSpots.vue | 167 ++ web/src/components/MainKPI.vue | 223 +++ web/src/components/alarm/AlarmItem.vue | 74 + web/src/components/alarm/AlarmManagement.vue | 534 ++++++ web/src/components/alarm/NoticeItem.vue | 35 + .../components/algorithm/AlgorithmCard.vue | 102 ++ .../components/algorithm/AlgorithmCenter.vue | 95 + web/src/components/device/AddDeviceDialog.vue | 150 ++ .../components/device/DeviceManagement.vue | 666 +++++++ web/src/components/device/EventEditor.vue | 343 ++++ web/src/components/event/EventCenter.vue | 457 +++++ web/src/components/monitor/MonitorDetail.vue | 98 + .../components/monitor/MonitorThumbnail.vue | 56 + web/src/main.js | 16 + web/src/style.css | 79 + web/vite.config.js | 24 + 37 files changed, 5901 insertions(+) create mode 100644 web/.gitignore create mode 100644 web/README.md create mode 100644 web/index.html create mode 100644 web/package.json create mode 100644 web/pnpm-lock.yaml create mode 100644 web/public/vite.svg create mode 100644 web/src/App.vue create mode 100644 web/src/assets/images/header-center-in@1x.png create mode 100644 web/src/assets/images/header-center-out.png create mode 100644 web/src/assets/images/header-left@1x.png create mode 100644 web/src/assets/images/header-right@1x.png create mode 100644 web/src/assets/images/header-tab-bg@1x.png create mode 100644 web/src/assets/images/l-lx@1x.png create mode 100644 web/src/assets/images/r-lx@1x.png create mode 100644 web/src/assets/images/st-home@1x.png create mode 100644 web/src/assets/styles/main.scss create mode 100644 web/src/assets/vue.svg create mode 100644 web/src/components/AlarmTrend.vue create mode 100644 web/src/components/AlgorithmStats.vue create mode 100644 web/src/components/CameraStats.vue create mode 100644 web/src/components/DashboardHeader.vue create mode 100644 web/src/components/EventHotSpots.vue create mode 100644 web/src/components/MainKPI.vue create mode 100644 web/src/components/alarm/AlarmItem.vue create mode 100644 web/src/components/alarm/AlarmManagement.vue create mode 100644 web/src/components/alarm/NoticeItem.vue create mode 100644 web/src/components/algorithm/AlgorithmCard.vue create mode 100644 web/src/components/algorithm/AlgorithmCenter.vue create mode 100644 web/src/components/device/AddDeviceDialog.vue create mode 100644 web/src/components/device/DeviceManagement.vue create mode 100644 web/src/components/device/EventEditor.vue create mode 100644 web/src/components/event/EventCenter.vue create mode 100644 web/src/components/monitor/MonitorDetail.vue create mode 100644 web/src/components/monitor/MonitorThumbnail.vue create mode 100644 web/src/main.js create mode 100644 web/src/style.css create mode 100644 web/vite.config.js diff --git a/web/.gitignore b/web/.gitignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/web/.gitignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/web/README.md b/web/README.md new file mode 100644 index 0000000..1511959 --- /dev/null +++ b/web/README.md @@ -0,0 +1,5 @@ +# Vue 3 + Vite + +This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 ` + + diff --git a/web/package.json b/web/package.json new file mode 100644 index 0000000..2af4ff2 --- /dev/null +++ b/web/package.json @@ -0,0 +1,25 @@ +{ + "name": "analytics-dashboard", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "@element-plus/icons-vue": "^2.3.1", + "@kjgl77/datav-vue3": "^1.7.4", + "echarts": "^5.6.0", + "echarts-liquidfill": "^3.1.0", + "element-plus": "^2.10.4", + "vue": "^3.5.17" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.0", + "sass": "^1.89.2", + "sass-embedded": "^1.89.2", + "vite": "^7.0.4" + } +} diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml new file mode 100644 index 0000000..43e9cae --- /dev/null +++ b/web/pnpm-lock.yaml @@ -0,0 +1,1597 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@element-plus/icons-vue': + specifier: ^2.3.1 + version: 2.3.1(vue@3.5.18) + '@kjgl77/datav-vue3': + specifier: ^1.7.4 + version: 1.7.4(vue@3.5.18) + echarts: + specifier: ^5.6.0 + version: 5.6.0 + echarts-liquidfill: + specifier: ^3.1.0 + version: 3.1.0(echarts@5.6.0) + element-plus: + specifier: ^2.10.4 + version: 2.10.4(vue@3.5.18) + vue: + specifier: ^3.5.17 + version: 3.5.18 + devDependencies: + '@vitejs/plugin-vue': + specifier: ^6.0.0 + version: 6.0.1(vite@7.0.6(sass-embedded@1.89.2)(sass@1.89.2))(vue@3.5.18) + sass: + specifier: ^1.89.2 + version: 1.89.2 + sass-embedded: + specifier: ^1.89.2 + version: 1.89.2 + vite: + specifier: ^7.0.4 + version: 7.0.6(sass-embedded@1.89.2)(sass@1.89.2) + +packages: + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.28.0': + resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/runtime@7.28.2': + resolution: {integrity: sha512-KHp2IflsnGywDjBWDkR9iEqiWSpc8GIi0lgTT3mOElT0PP1tG26P4tmFI2YvAdzgq9RGyoHZQEIEdZy6Ec5xCA==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.28.2': + resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} + engines: {node: '>=6.9.0'} + + '@bufbuild/protobuf@2.6.2': + resolution: {integrity: sha512-vLu7SRY84CV/Dd+NUdgtidn2hS5hSMUC1vDBY0VcviTdgRYkU43vIz3vIFbmx14cX1r+mM7WjzE5Fl1fGEM0RQ==} + + '@ctrl/tinycolor@3.6.1': + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + engines: {node: '>=10'} + + '@element-plus/icons-vue@2.3.1': + resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==} + peerDependencies: + vue: ^3.2.0 + + '@esbuild/aix-ppc64@0.25.8': + resolution: {integrity: sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.25.8': + resolution: {integrity: sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.25.8': + resolution: {integrity: sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.25.8': + resolution: {integrity: sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.25.8': + resolution: {integrity: sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.8': + resolution: {integrity: sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.25.8': + resolution: {integrity: sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.8': + resolution: {integrity: sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.25.8': + resolution: {integrity: sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.25.8': + resolution: {integrity: sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.25.8': + resolution: {integrity: sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.25.8': + resolution: {integrity: sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.25.8': + resolution: {integrity: sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.25.8': + resolution: {integrity: sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.8': + resolution: {integrity: sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.25.8': + resolution: {integrity: sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.25.8': + resolution: {integrity: sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.8': + resolution: {integrity: sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.8': + resolution: {integrity: sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.8': + resolution: {integrity: sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.8': + resolution: {integrity: sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.25.8': + resolution: {integrity: sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.25.8': + resolution: {integrity: sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.8': + resolution: {integrity: sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.25.8': + resolution: {integrity: sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.8': + resolution: {integrity: sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@floating-ui/core@1.7.2': + resolution: {integrity: sha512-wNB5ooIKHQc+Kui96jE/n69rHFWAVoxn5CAzL1Xdd8FG03cgY3MLO+GF9U3W737fYDSgPWA6MReKhBQBop6Pcw==} + + '@floating-ui/dom@1.7.2': + resolution: {integrity: sha512-7cfaOQuCS27HD7DX+6ib2OrnW+b4ZBwDNnCcT0uTyidcmyWb03FnQqJybDBoCnpdxwBSfA94UAYlRCt7mV+TbA==} + + '@floating-ui/utils@0.2.10': + resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + + '@jiaminghi/bezier-curve@0.0.9': + resolution: {integrity: sha512-u9xJPOEl6Dri2E9FfmJoGxYQY7vYJkURNX04Vj64tdi535tPrpkuf9Sm0lNr3QTKdHQh0DdNRsaa62FLQNQEEw==} + + '@jiaminghi/c-render@0.4.3': + resolution: {integrity: sha512-FJfzj5hGj7MLqqqI2D7vEzHKbQ1Ynnn7PJKgzsjXaZpJzTqs2Yw5OSeZnm6l7Qj7jyPAP53lFvEQNH4o4j6s+Q==} + + '@jiaminghi/charts@0.2.18': + resolution: {integrity: sha512-K+HXaOOeWG9OOY1VG6M4mBreeeIAPhb9X+khG651AbnwEwL6G2UtcAQ8GWCq6GzhczcLwwhIhuaHqRygwHC0sA==} + + '@jiaminghi/color@1.1.3': + resolution: {integrity: sha512-ZY3hdorgODk4OSTbxyXBPxAxHPIVf9rPlKJyK1C1db46a50J0reFKpAvfZG8zMG3lvM60IR7Qawgcu4ZDO3+Hg==} + + '@jiaminghi/transition@1.1.11': + resolution: {integrity: sha512-owBggipoHMikDHHDW5Gc7RZYlVuvxHADiU4bxfjBVkHDAmmck+fCkm46n2JzC3j33hWvP9nSCAeh37t6stgWeg==} + + '@jridgewell/sourcemap-codec@1.5.4': + resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} + + '@kjgl77/datav-vue3@1.7.4': + resolution: {integrity: sha512-zYVTVKkklUxwtiNKS1qPBilm4rTW+WItfp0zVpaRAI8wgXkLSPbDR9xPq2+UcU/Jft7/DVdMfBp709E2ResuPQ==} + + '@parcel/watcher-android-arm64@2.5.1': + resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.1': + resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.1': + resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.1': + resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.1': + resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-arm-musl@2.5.1': + resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + libc: [musl] + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-arm64-musl@2.5.1': + resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@parcel/watcher-linux-x64-glibc@2.5.1': + resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-x64-musl@2.5.1': + resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@parcel/watcher-win32-arm64@2.5.1': + resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.1': + resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.1': + resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.1': + resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} + engines: {node: '>= 10.0.0'} + + '@rolldown/pluginutils@1.0.0-beta.29': + resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} + + '@rollup/rollup-android-arm-eabi@4.46.0': + resolution: {integrity: sha512-9f3nSTFI2ivfxc7/tHBHcJ8pRnp8ROrELvsVprlQPVvcZ+j5zztYd+PTJGpyIOAdTvNwNrpCXswKSeoQcyGjMQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.46.0': + resolution: {integrity: sha512-tFZSEhqJ8Yrpe50TzOdeoYi72gi/jsnT7y8Qrozf3cNu28WX+s6I3XzEPUAqoaT9SAS8Xz9AzGTFlxxCH/w20w==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.46.0': + resolution: {integrity: sha512-+DikIIs+p6yU2hF51UaWG8BnHbq90X0QIOt5zqSKSZxY+G3qqdLih214e9InJal21af2PuuxkDectetGfbVPJw==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.46.0': + resolution: {integrity: sha512-5a+NofhdEB/WimSlFMskbFQn1vqz1FWryYpA99trmZGO6qEmiS0IsX6w4B3d91U878Q2ZQdiaFF1gxX4P147og==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.46.0': + resolution: {integrity: sha512-igr/RlKPS3OCy4jD3XBmAmo3UAcNZkJSubRsw1JeM8bAbwf15k/3eMZXD91bnjheijJiOJcga3kfCLKjV8IXNg==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.46.0': + resolution: {integrity: sha512-MdigWzPSHlQzB1xZ+MdFDWTAH+kcn7UxjEBoOKuaso7z1DRlnAnrknB1mTtNOQ+GdPI8xgExAGwHeqQjntR0Cg==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.46.0': + resolution: {integrity: sha512-dmZseE0ZwA/4yy1+BwFrDqFTjjNg24GO9xSrb1weVbt6AFkhp5pz1gVS7IMtfIvoWy8yp6q/zN0bKnefRUImvQ==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.46.0': + resolution: {integrity: sha512-fzhfn6p9Cfm3W8UrWKIa4l7Wfjs/KGdgaswMBBE3KY3Ta43jg2XsPrAtfezHpsRk0Nx+TFuS3hZk/To2N5kFPQ==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.46.0': + resolution: {integrity: sha512-vVDD+iPDPmJQ5nAQ5Tifq3ywdv60FartglFI8VOCK+hcU9aoG0qlQTsDJP97O5yiTaTqlneZWoARMcVC5nyUoQ==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.46.0': + resolution: {integrity: sha512-0d0jx08fzDHCzXqrtCMEEyxKU0SvJrWmUjUDE2/KDQ2UDJql0tfiwYvEx1oHELClKO8CNdE+AGJj+RqXscZpdQ==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loongarch64-gnu@4.46.0': + resolution: {integrity: sha512-XBYu9oW9eKJadWn8M7hkTZsD4yG+RrsTrVEgyKwb4L72cpJjRbRboTG9Lg9fec8MxJp/cfTHAocg4mnismQR8A==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-gnu@4.46.0': + resolution: {integrity: sha512-wJaRvcT17PoOK6Ggcfo3nouFlybHvARBS4jzT0PC/lg17fIJHcDS2fZz3sD+iA4nRlho2zE6OGbU0HvwATdokQ==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-gnu@4.46.0': + resolution: {integrity: sha512-GZ5bkMFteAGkcmh8x0Ok4LSa+L62Ez0tMsHPX6JtR0wl4Xc3bQcrFHDiR5DGLEDFtGrXih4Nd/UDaFqs968/wA==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.46.0': + resolution: {integrity: sha512-7CjPw6FflFsVOUfWOrVrREiV3IYXG4RzZ1ZQUaT3BtSK8YXN6x286o+sruPZJESIaPebYuFowmg54ZdrkVBYog==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.46.0': + resolution: {integrity: sha512-nmvnl0ZiuysltcB/cKjUh40Rx4FbSyueERDsl2FLvLYr6pCgSsvGr3SocUT84svSpmloS7f1DRWqtRha74Gi1w==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.46.0': + resolution: {integrity: sha512-Cv+moII5C8RM6gZbR3cb21o6rquVDZrN2o81maROg1LFzBz2dZUwIQSxFA8GtGZ/F2KtsqQ2z3eFPBb6akvQNg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.46.0': + resolution: {integrity: sha512-PHcMG8DZTM9RCIjp8QIfN0VYtX0TtBPnWOTRurFhoCDoi9zptUZL2k7pCs+5rgut7JAiUsYy+huyhVKPcmxoog==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-win32-arm64-msvc@4.46.0': + resolution: {integrity: sha512-1SI/Rd47e8aQJeFWMDg16ET+fjvCcD/CzeaRmIEPmb05hx+3cCcwIF4ebUag4yTt/D1peE+Mgp0+Po3M358cAA==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.46.0': + resolution: {integrity: sha512-JwOCYxmumFDfDhx4kNyz6kTVK3gWzBIvVdMNzQMRDubcoGRDniOOmo6DDNP42qwZx3Bp9/6vWJ+kNzNqXoHmeA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.46.0': + resolution: {integrity: sha512-IPMIfrfkG1GaEXi+JSsQEx8x9b4b+hRZXO7KYc2pKio3zO2/VDXDs6B9Ts/nnO+25Fk1tdAVtUn60HKKPPzDig==} + cpu: [x64] + os: [win32] + + '@sxzz/popperjs-es@2.11.7': + resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/lodash-es@4.17.12': + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + + '@types/lodash@4.17.20': + resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==} + + '@types/web-bluetooth@0.0.16': + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + + '@types/web-bluetooth@0.0.20': + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + + '@vitejs/plugin-vue@6.0.1': + resolution: {integrity: sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==} + engines: {node: ^20.19.0 || >=22.12.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 || ^7.0.0 + vue: ^3.2.25 + + '@vue/compiler-core@3.5.18': + resolution: {integrity: sha512-3slwjQrrV1TO8MoXgy3aynDQ7lslj5UqDxuHnrzHtpON5CBinhWjJETciPngpin/T3OuW3tXUf86tEurusnztw==} + + '@vue/compiler-dom@3.5.18': + resolution: {integrity: sha512-RMbU6NTU70++B1JyVJbNbeFkK+A+Q7y9XKE2EM4NLGm2WFR8x9MbAtWxPPLdm0wUkuZv9trpwfSlL6tjdIa1+A==} + + '@vue/compiler-sfc@3.5.18': + resolution: {integrity: sha512-5aBjvGqsWs+MoxswZPoTB9nSDb3dhd1x30xrrltKujlCxo48j8HGDNj3QPhF4VIS0VQDUrA1xUfp2hEa+FNyXA==} + + '@vue/compiler-ssr@3.5.18': + resolution: {integrity: sha512-xM16Ak7rSWHkM3m22NlmcdIM+K4BMyFARAfV9hYFl+SFuRzrZ3uGMNW05kA5pmeMa0X9X963Kgou7ufdbpOP9g==} + + '@vue/reactivity@3.5.18': + resolution: {integrity: sha512-x0vPO5Imw+3sChLM5Y+B6G1zPjwdOri9e8V21NnTnlEvkxatHEH5B5KEAJcjuzQ7BsjGrKtfzuQ5eQwXh8HXBg==} + + '@vue/runtime-core@3.5.18': + resolution: {integrity: sha512-DUpHa1HpeOQEt6+3nheUfqVXRog2kivkXHUhoqJiKR33SO4x+a5uNOMkV487WPerQkL0vUuRvq/7JhRgLW3S+w==} + + '@vue/runtime-dom@3.5.18': + resolution: {integrity: sha512-YwDj71iV05j4RnzZnZtGaXwPoUWeRsqinblgVJwR8XTXYZ9D5PbahHQgsbmzUvCWNF6x7siQ89HgnX5eWkr3mw==} + + '@vue/server-renderer@3.5.18': + resolution: {integrity: sha512-PvIHLUoWgSbDG7zLHqSqaCoZvHi6NNmfVFOqO+OnwvqMz/tqQr3FuGWS8ufluNddk7ZLBJYMrjcw1c6XzR12mA==} + peerDependencies: + vue: 3.5.18 + + '@vue/shared@3.5.18': + resolution: {integrity: sha512-cZy8Dq+uuIXbxCZpuLd2GJdeSO/lIzIspC2WtkqIpje5QyFbvLaI5wZtdUjLHjGZrlVX6GilejatWwVYYRc8tA==} + + '@vueuse/core@10.11.1': + resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==} + + '@vueuse/core@9.13.0': + resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + + '@vueuse/metadata@10.11.1': + resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==} + + '@vueuse/metadata@9.13.0': + resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + + '@vueuse/shared@10.11.1': + resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==} + + '@vueuse/shared@9.13.0': + resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} + + async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + buffer-builder@0.2.0: + resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + colorjs.io@0.5.2: + resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + + echarts-liquidfill@3.1.0: + resolution: {integrity: sha512-5Dlqs/jTsdTUAsd+K5LPLLTgrbbNORUSBQyk8PSy1Mg2zgHDWm83FmvA4s0ooNepCJojFYRITTQ4GU1UUSKYLw==} + peerDependencies: + echarts: ^5.0.1 + + echarts@5.6.0: + resolution: {integrity: sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==} + + element-plus@2.10.4: + resolution: {integrity: sha512-UD4elWHrCnp1xlPhbXmVcaKFLCRaRAY6WWRwemGfGW3ceIjXm9fSYc9RNH3AiOEA6Ds1p9ZvhCs76CR9J8Vd+A==} + peerDependencies: + vue: ^3.2.0 + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + esbuild@0.25.8: + resolution: {integrity: sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==} + engines: {node: '>=18'} + hasBin: true + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + immutable@5.1.3: + resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash-unified@1.0.3: + resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==} + peerDependencies: + '@types/lodash-es': '*' + lodash: '*' + lodash-es: '*' + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + normalize-wheel-es@1.2.0: + resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + rollup@4.46.0: + resolution: {integrity: sha512-ONmkT3Ud3IfW15nl7l4qAZko5/2iZ5ALVBDh02ZSZ5IGVLJSYkRcRa3iB58VyEIyoofs9m2xdVrm+lTi97+3pw==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + + sass-embedded-android-arm64@1.89.2: + resolution: {integrity: sha512-+pq7a7AUpItNyPu61sRlP6G2A8pSPpyazASb+8AK2pVlFayCSPAEgpwpCE9A2/Xj86xJZeMizzKUHxM2CBCUxA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [android] + + sass-embedded-android-arm@1.89.2: + resolution: {integrity: sha512-oHAPTboBHRZlDBhyRB6dvDKh4KvFs+DZibDHXbkSI6dBZxMTT+Yb2ivocHnctVGucKTLQeT7+OM5DjWHyynL/A==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [android] + + sass-embedded-android-riscv64@1.89.2: + resolution: {integrity: sha512-HfJJWp/S6XSYvlGAqNdakeEMPOdhBkj2s2lN6SHnON54rahKem+z9pUbCriUJfM65Z90lakdGuOfidY61R9TYg==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [android] + + sass-embedded-android-x64@1.89.2: + resolution: {integrity: sha512-BGPzq53VH5z5HN8de6jfMqJjnRe1E6sfnCWFd4pK+CAiuM7iw5Fx6BQZu3ikfI1l2GY0y6pRXzsVLdp/j4EKEA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [android] + + sass-embedded-darwin-arm64@1.89.2: + resolution: {integrity: sha512-UCm3RL/tzMpG7DsubARsvGUNXC5pgfQvP+RRFJo9XPIi6elopY5B6H4m9dRYDpHA+scjVthdiDwkPYr9+S/KGw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + + sass-embedded-darwin-x64@1.89.2: + resolution: {integrity: sha512-D9WxtDY5VYtMApXRuhQK9VkPHB8R79NIIR6xxVlN2MIdEid/TZWi1MHNweieETXhWGrKhRKglwnHxxyKdJYMnA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + + sass-embedded-linux-arm64@1.89.2: + resolution: {integrity: sha512-2N4WW5LLsbtrWUJ7iTpjvhajGIbmDR18ZzYRywHdMLpfdPApuHPMDF5CYzHbS+LLx2UAx7CFKBnj5LLjY6eFgQ==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + sass-embedded-linux-arm@1.89.2: + resolution: {integrity: sha512-leP0t5U4r95dc90o8TCWfxNXwMAsQhpWxTkdtySDpngoqtTy3miMd7EYNYd1znI0FN1CBaUvbdCMbnbPwygDlA==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + sass-embedded-linux-musl-arm64@1.89.2: + resolution: {integrity: sha512-nTyuaBX6U1A/cG7WJh0pKD1gY8hbg1m2SnzsyoFG+exQ0lBX/lwTLHq3nyhF+0atv7YYhYKbmfz+sjPP8CZ9lw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + sass-embedded-linux-musl-arm@1.89.2: + resolution: {integrity: sha512-Z6gG2FiVEEdxYHRi2sS5VIYBmp17351bWtOCUZ/thBM66+e70yiN6Eyqjz80DjL8haRUegNQgy9ZJqsLAAmr9g==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + sass-embedded-linux-musl-riscv64@1.89.2: + resolution: {integrity: sha512-N6oul+qALO0SwGY8JW7H/Vs0oZIMrRMBM4GqX3AjM/6y8JsJRxkAwnfd0fDyK+aICMFarDqQonQNIx99gdTZqw==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + + sass-embedded-linux-musl-x64@1.89.2: + resolution: {integrity: sha512-K+FmWcdj/uyP8GiG9foxOCPfb5OAZG0uSVq80DKgVSC0U44AdGjvAvVZkrgFEcZ6cCqlNC2JfYmslB5iqdL7tg==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + sass-embedded-linux-riscv64@1.89.2: + resolution: {integrity: sha512-g9nTbnD/3yhOaskeqeBQETbtfDQWRgsjHok6bn7DdAuwBsyrR3JlSFyqKc46pn9Xxd9SQQZU8AzM4IR+sY0A0w==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + + sass-embedded-linux-x64@1.89.2: + resolution: {integrity: sha512-Ax7dKvzncyQzIl4r7012KCMBvJzOz4uwSNoyoM5IV6y5I1f5hEwI25+U4WfuTqdkv42taCMgpjZbh9ERr6JVMQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + sass-embedded-win32-arm64@1.89.2: + resolution: {integrity: sha512-j96iJni50ZUsfD6tRxDQE2QSYQ2WrfHxeiyAXf41Kw0V4w5KYR/Sf6rCZQLMTUOHnD16qTMVpQi20LQSqf4WGg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + + sass-embedded-win32-x64@1.89.2: + resolution: {integrity: sha512-cS2j5ljdkQsb4PaORiClaVYynE9OAPZG/XjbOMxpQmjRIf7UroY4PEIH+Waf+y47PfXFX9SyxhYuw2NIKGbEng==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + + sass-embedded@1.89.2: + resolution: {integrity: sha512-Ack2K8rc57kCFcYlf3HXpZEJFNUX8xd8DILldksREmYXQkRHI879yy8q4mRDJgrojkySMZqmmmW1NxrFxMsYaA==} + engines: {node: '>=16.0.0'} + hasBin: true + + sass@1.89.2: + resolution: {integrity: sha512-xCmtksBKd/jdJ9Bt9p7nPKiuqrlBMBuuGkQlkhZjjQk3Ty48lv93k5Dq6OPkKt4XwxDJ7tvlfrTa1MPA9bf+QA==} + engines: {node: '>=14.0.0'} + hasBin: true + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + sync-child-process@1.0.2: + resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==} + engines: {node: '>=16.0.0'} + + sync-message-port@1.1.3: + resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==} + engines: {node: '>=16.0.0'} + + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + tslib@2.3.0: + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} + + varint@6.0.0: + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + + vite@7.0.6: + resolution: {integrity: sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vue-demi@0.14.10: + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue@3.5.18: + resolution: {integrity: sha512-7W4Y4ZbMiQ3SEo+m9lnoNpV9xG7QVMLa+/0RFwwiAVkeYoyGXqWE85jabU4pllJNUzqfLShJ5YLptewhCWUgNA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + zrender@5.6.1: + resolution: {integrity: sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==} + +snapshots: + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.27.1': {} + + '@babel/parser@7.28.0': + dependencies: + '@babel/types': 7.28.2 + + '@babel/runtime@7.28.2': {} + + '@babel/types@7.28.2': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@bufbuild/protobuf@2.6.2': {} + + '@ctrl/tinycolor@3.6.1': {} + + '@element-plus/icons-vue@2.3.1(vue@3.5.18)': + dependencies: + vue: 3.5.18 + + '@esbuild/aix-ppc64@0.25.8': + optional: true + + '@esbuild/android-arm64@0.25.8': + optional: true + + '@esbuild/android-arm@0.25.8': + optional: true + + '@esbuild/android-x64@0.25.8': + optional: true + + '@esbuild/darwin-arm64@0.25.8': + optional: true + + '@esbuild/darwin-x64@0.25.8': + optional: true + + '@esbuild/freebsd-arm64@0.25.8': + optional: true + + '@esbuild/freebsd-x64@0.25.8': + optional: true + + '@esbuild/linux-arm64@0.25.8': + optional: true + + '@esbuild/linux-arm@0.25.8': + optional: true + + '@esbuild/linux-ia32@0.25.8': + optional: true + + '@esbuild/linux-loong64@0.25.8': + optional: true + + '@esbuild/linux-mips64el@0.25.8': + optional: true + + '@esbuild/linux-ppc64@0.25.8': + optional: true + + '@esbuild/linux-riscv64@0.25.8': + optional: true + + '@esbuild/linux-s390x@0.25.8': + optional: true + + '@esbuild/linux-x64@0.25.8': + optional: true + + '@esbuild/netbsd-arm64@0.25.8': + optional: true + + '@esbuild/netbsd-x64@0.25.8': + optional: true + + '@esbuild/openbsd-arm64@0.25.8': + optional: true + + '@esbuild/openbsd-x64@0.25.8': + optional: true + + '@esbuild/openharmony-arm64@0.25.8': + optional: true + + '@esbuild/sunos-x64@0.25.8': + optional: true + + '@esbuild/win32-arm64@0.25.8': + optional: true + + '@esbuild/win32-ia32@0.25.8': + optional: true + + '@esbuild/win32-x64@0.25.8': + optional: true + + '@floating-ui/core@1.7.2': + dependencies: + '@floating-ui/utils': 0.2.10 + + '@floating-ui/dom@1.7.2': + dependencies: + '@floating-ui/core': 1.7.2 + '@floating-ui/utils': 0.2.10 + + '@floating-ui/utils@0.2.10': {} + + '@jiaminghi/bezier-curve@0.0.9': + dependencies: + '@babel/runtime': 7.28.2 + + '@jiaminghi/c-render@0.4.3': + dependencies: + '@babel/runtime': 7.28.2 + '@jiaminghi/bezier-curve': 0.0.9 + '@jiaminghi/color': 1.1.3 + '@jiaminghi/transition': 1.1.11 + + '@jiaminghi/charts@0.2.18': + dependencies: + '@babel/runtime': 7.28.2 + '@jiaminghi/c-render': 0.4.3 + + '@jiaminghi/color@1.1.3': {} + + '@jiaminghi/transition@1.1.11': + dependencies: + '@babel/runtime': 7.28.2 + + '@jridgewell/sourcemap-codec@1.5.4': {} + + '@kjgl77/datav-vue3@1.7.4(vue@3.5.18)': + dependencies: + '@jiaminghi/c-render': 0.4.3 + '@jiaminghi/charts': 0.2.18 + '@jiaminghi/color': 1.1.3 + '@vueuse/core': 10.11.1(vue@3.5.18) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@parcel/watcher-android-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.1': + optional: true + + '@parcel/watcher-darwin-x64@2.5.1': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.1': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.1': + optional: true + + '@parcel/watcher-win32-arm64@2.5.1': + optional: true + + '@parcel/watcher-win32-ia32@2.5.1': + optional: true + + '@parcel/watcher-win32-x64@2.5.1': + optional: true + + '@parcel/watcher@2.5.1': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.1 + '@parcel/watcher-darwin-arm64': 2.5.1 + '@parcel/watcher-darwin-x64': 2.5.1 + '@parcel/watcher-freebsd-x64': 2.5.1 + '@parcel/watcher-linux-arm-glibc': 2.5.1 + '@parcel/watcher-linux-arm-musl': 2.5.1 + '@parcel/watcher-linux-arm64-glibc': 2.5.1 + '@parcel/watcher-linux-arm64-musl': 2.5.1 + '@parcel/watcher-linux-x64-glibc': 2.5.1 + '@parcel/watcher-linux-x64-musl': 2.5.1 + '@parcel/watcher-win32-arm64': 2.5.1 + '@parcel/watcher-win32-ia32': 2.5.1 + '@parcel/watcher-win32-x64': 2.5.1 + optional: true + + '@rolldown/pluginutils@1.0.0-beta.29': {} + + '@rollup/rollup-android-arm-eabi@4.46.0': + optional: true + + '@rollup/rollup-android-arm64@4.46.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.46.0': + optional: true + + '@rollup/rollup-darwin-x64@4.46.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.46.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.46.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.46.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.46.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.46.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.46.0': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.46.0': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.46.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.46.0': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.46.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.46.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.46.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.46.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.46.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.46.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.46.0': + optional: true + + '@sxzz/popperjs-es@2.11.7': {} + + '@types/estree@1.0.8': {} + + '@types/lodash-es@4.17.12': + dependencies: + '@types/lodash': 4.17.20 + + '@types/lodash@4.17.20': {} + + '@types/web-bluetooth@0.0.16': {} + + '@types/web-bluetooth@0.0.20': {} + + '@vitejs/plugin-vue@6.0.1(vite@7.0.6(sass-embedded@1.89.2)(sass@1.89.2))(vue@3.5.18)': + dependencies: + '@rolldown/pluginutils': 1.0.0-beta.29 + vite: 7.0.6(sass-embedded@1.89.2)(sass@1.89.2) + vue: 3.5.18 + + '@vue/compiler-core@3.5.18': + dependencies: + '@babel/parser': 7.28.0 + '@vue/shared': 3.5.18 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.18': + dependencies: + '@vue/compiler-core': 3.5.18 + '@vue/shared': 3.5.18 + + '@vue/compiler-sfc@3.5.18': + dependencies: + '@babel/parser': 7.28.0 + '@vue/compiler-core': 3.5.18 + '@vue/compiler-dom': 3.5.18 + '@vue/compiler-ssr': 3.5.18 + '@vue/shared': 3.5.18 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.5.6 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.18': + dependencies: + '@vue/compiler-dom': 3.5.18 + '@vue/shared': 3.5.18 + + '@vue/reactivity@3.5.18': + dependencies: + '@vue/shared': 3.5.18 + + '@vue/runtime-core@3.5.18': + dependencies: + '@vue/reactivity': 3.5.18 + '@vue/shared': 3.5.18 + + '@vue/runtime-dom@3.5.18': + dependencies: + '@vue/reactivity': 3.5.18 + '@vue/runtime-core': 3.5.18 + '@vue/shared': 3.5.18 + csstype: 3.1.3 + + '@vue/server-renderer@3.5.18(vue@3.5.18)': + dependencies: + '@vue/compiler-ssr': 3.5.18 + '@vue/shared': 3.5.18 + vue: 3.5.18 + + '@vue/shared@3.5.18': {} + + '@vueuse/core@10.11.1(vue@3.5.18)': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.11.1 + '@vueuse/shared': 10.11.1(vue@3.5.18) + vue-demi: 0.14.10(vue@3.5.18) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/core@9.13.0(vue@3.5.18)': + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.13.0 + '@vueuse/shared': 9.13.0(vue@3.5.18) + vue-demi: 0.14.10(vue@3.5.18) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@10.11.1': {} + + '@vueuse/metadata@9.13.0': {} + + '@vueuse/shared@10.11.1(vue@3.5.18)': + dependencies: + vue-demi: 0.14.10(vue@3.5.18) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/shared@9.13.0(vue@3.5.18)': + dependencies: + vue-demi: 0.14.10(vue@3.5.18) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + async-validator@4.2.5: {} + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + optional: true + + buffer-builder@0.2.0: {} + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + colorjs.io@0.5.2: {} + + csstype@3.1.3: {} + + dayjs@1.11.13: {} + + detect-libc@1.0.3: + optional: true + + echarts-liquidfill@3.1.0(echarts@5.6.0): + dependencies: + echarts: 5.6.0 + + echarts@5.6.0: + dependencies: + tslib: 2.3.0 + zrender: 5.6.1 + + element-plus@2.10.4(vue@3.5.18): + dependencies: + '@ctrl/tinycolor': 3.6.1 + '@element-plus/icons-vue': 2.3.1(vue@3.5.18) + '@floating-ui/dom': 1.7.2 + '@popperjs/core': '@sxzz/popperjs-es@2.11.7' + '@types/lodash': 4.17.20 + '@types/lodash-es': 4.17.12 + '@vueuse/core': 9.13.0(vue@3.5.18) + async-validator: 4.2.5 + dayjs: 1.11.13 + escape-html: 1.0.3 + lodash: 4.17.21 + lodash-es: 4.17.21 + lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21) + memoize-one: 6.0.0 + normalize-wheel-es: 1.2.0 + vue: 3.5.18 + transitivePeerDependencies: + - '@vue/composition-api' + + entities@4.5.0: {} + + esbuild@0.25.8: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.8 + '@esbuild/android-arm': 0.25.8 + '@esbuild/android-arm64': 0.25.8 + '@esbuild/android-x64': 0.25.8 + '@esbuild/darwin-arm64': 0.25.8 + '@esbuild/darwin-x64': 0.25.8 + '@esbuild/freebsd-arm64': 0.25.8 + '@esbuild/freebsd-x64': 0.25.8 + '@esbuild/linux-arm': 0.25.8 + '@esbuild/linux-arm64': 0.25.8 + '@esbuild/linux-ia32': 0.25.8 + '@esbuild/linux-loong64': 0.25.8 + '@esbuild/linux-mips64el': 0.25.8 + '@esbuild/linux-ppc64': 0.25.8 + '@esbuild/linux-riscv64': 0.25.8 + '@esbuild/linux-s390x': 0.25.8 + '@esbuild/linux-x64': 0.25.8 + '@esbuild/netbsd-arm64': 0.25.8 + '@esbuild/netbsd-x64': 0.25.8 + '@esbuild/openbsd-arm64': 0.25.8 + '@esbuild/openbsd-x64': 0.25.8 + '@esbuild/openharmony-arm64': 0.25.8 + '@esbuild/sunos-x64': 0.25.8 + '@esbuild/win32-arm64': 0.25.8 + '@esbuild/win32-ia32': 0.25.8 + '@esbuild/win32-x64': 0.25.8 + + escape-html@1.0.3: {} + + estree-walker@2.0.2: {} + + fdir@6.4.6(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + optional: true + + fsevents@2.3.3: + optional: true + + has-flag@4.0.0: {} + + immutable@5.1.3: {} + + is-extglob@2.1.1: + optional: true + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + optional: true + + is-number@7.0.0: + optional: true + + lodash-es@4.17.21: {} + + lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21): + dependencies: + '@types/lodash-es': 4.17.12 + lodash: 4.17.21 + lodash-es: 4.17.21 + + lodash@4.17.21: {} + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.4 + + memoize-one@6.0.0: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + optional: true + + nanoid@3.3.11: {} + + node-addon-api@7.1.1: + optional: true + + normalize-wheel-es@1.2.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: + optional: true + + picomatch@4.0.3: {} + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + readdirp@4.1.2: {} + + rollup@4.46.0: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.46.0 + '@rollup/rollup-android-arm64': 4.46.0 + '@rollup/rollup-darwin-arm64': 4.46.0 + '@rollup/rollup-darwin-x64': 4.46.0 + '@rollup/rollup-freebsd-arm64': 4.46.0 + '@rollup/rollup-freebsd-x64': 4.46.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.46.0 + '@rollup/rollup-linux-arm-musleabihf': 4.46.0 + '@rollup/rollup-linux-arm64-gnu': 4.46.0 + '@rollup/rollup-linux-arm64-musl': 4.46.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.46.0 + '@rollup/rollup-linux-ppc64-gnu': 4.46.0 + '@rollup/rollup-linux-riscv64-gnu': 4.46.0 + '@rollup/rollup-linux-riscv64-musl': 4.46.0 + '@rollup/rollup-linux-s390x-gnu': 4.46.0 + '@rollup/rollup-linux-x64-gnu': 4.46.0 + '@rollup/rollup-linux-x64-musl': 4.46.0 + '@rollup/rollup-win32-arm64-msvc': 4.46.0 + '@rollup/rollup-win32-ia32-msvc': 4.46.0 + '@rollup/rollup-win32-x64-msvc': 4.46.0 + fsevents: 2.3.3 + + rxjs@7.8.2: + dependencies: + tslib: 2.3.0 + + sass-embedded-android-arm64@1.89.2: + optional: true + + sass-embedded-android-arm@1.89.2: + optional: true + + sass-embedded-android-riscv64@1.89.2: + optional: true + + sass-embedded-android-x64@1.89.2: + optional: true + + sass-embedded-darwin-arm64@1.89.2: + optional: true + + sass-embedded-darwin-x64@1.89.2: + optional: true + + sass-embedded-linux-arm64@1.89.2: + optional: true + + sass-embedded-linux-arm@1.89.2: + optional: true + + sass-embedded-linux-musl-arm64@1.89.2: + optional: true + + sass-embedded-linux-musl-arm@1.89.2: + optional: true + + sass-embedded-linux-musl-riscv64@1.89.2: + optional: true + + sass-embedded-linux-musl-x64@1.89.2: + optional: true + + sass-embedded-linux-riscv64@1.89.2: + optional: true + + sass-embedded-linux-x64@1.89.2: + optional: true + + sass-embedded-win32-arm64@1.89.2: + optional: true + + sass-embedded-win32-x64@1.89.2: + optional: true + + sass-embedded@1.89.2: + dependencies: + '@bufbuild/protobuf': 2.6.2 + buffer-builder: 0.2.0 + colorjs.io: 0.5.2 + immutable: 5.1.3 + rxjs: 7.8.2 + supports-color: 8.1.1 + sync-child-process: 1.0.2 + varint: 6.0.0 + optionalDependencies: + sass-embedded-android-arm: 1.89.2 + sass-embedded-android-arm64: 1.89.2 + sass-embedded-android-riscv64: 1.89.2 + sass-embedded-android-x64: 1.89.2 + sass-embedded-darwin-arm64: 1.89.2 + sass-embedded-darwin-x64: 1.89.2 + sass-embedded-linux-arm: 1.89.2 + sass-embedded-linux-arm64: 1.89.2 + sass-embedded-linux-musl-arm: 1.89.2 + sass-embedded-linux-musl-arm64: 1.89.2 + sass-embedded-linux-musl-riscv64: 1.89.2 + sass-embedded-linux-musl-x64: 1.89.2 + sass-embedded-linux-riscv64: 1.89.2 + sass-embedded-linux-x64: 1.89.2 + sass-embedded-win32-arm64: 1.89.2 + sass-embedded-win32-x64: 1.89.2 + + sass@1.89.2: + dependencies: + chokidar: 4.0.3 + immutable: 5.1.3 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.5.1 + + source-map-js@1.2.1: {} + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + sync-child-process@1.0.2: + dependencies: + sync-message-port: 1.1.3 + + sync-message-port@1.1.3: {} + + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.6(picomatch@4.0.3) + picomatch: 4.0.3 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + optional: true + + tslib@2.3.0: {} + + varint@6.0.0: {} + + vite@7.0.6(sass-embedded@1.89.2)(sass@1.89.2): + dependencies: + esbuild: 0.25.8 + fdir: 6.4.6(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.46.0 + tinyglobby: 0.2.14 + optionalDependencies: + fsevents: 2.3.3 + sass: 1.89.2 + sass-embedded: 1.89.2 + + vue-demi@0.14.10(vue@3.5.18): + dependencies: + vue: 3.5.18 + + vue@3.5.18: + dependencies: + '@vue/compiler-dom': 3.5.18 + '@vue/compiler-sfc': 3.5.18 + '@vue/runtime-dom': 3.5.18 + '@vue/server-renderer': 3.5.18(vue@3.5.18) + '@vue/shared': 3.5.18 + + zrender@5.6.1: + dependencies: + tslib: 2.3.0 diff --git a/web/public/vite.svg b/web/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/web/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web/src/App.vue b/web/src/App.vue new file mode 100644 index 0000000..9288dd4 --- /dev/null +++ b/web/src/App.vue @@ -0,0 +1,362 @@ + + + + + \ No newline at end of file diff --git a/web/src/assets/images/header-center-in@1x.png b/web/src/assets/images/header-center-in@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..f2f1826a29606942476324e9460869a0c8a1b408 GIT binary patch literal 17401 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 Q`^ChdsjdetP`e-WKjIq5MgRZ+ literal 0 HcmV?d00001 diff --git a/web/src/assets/images/header-left@1x.png b/web/src/assets/images/header-left@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dbb2663635eb6a18f28331d02e2132565e336ce0 GIT binary patch literal 4868 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 OVlXkds$X{5G3I|{;riqN literal 0 HcmV?d00001 diff --git a/web/src/assets/images/header-right@1x.png b/web/src/assets/images/header-right@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..f6af63db99083850bf8d552c8d71933aa3105e8e GIT binary patch literal 4566 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 BXy5<< literal 0 HcmV?d00001 diff --git a/web/src/assets/images/header-tab-bg@1x.png b/web/src/assets/images/header-tab-bg@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..3c6369d45100a2cdeee30eb354362d3af851c193 GIT binary patch literal 10044 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 literal 0 HcmV?d00001 diff --git a/web/src/assets/images/l-lx@1x.png b/web/src/assets/images/l-lx@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..f666c9d433ca650247cfedda7c8dabe1965dbf26 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^svtH88<5mXTpj_W7>k44ofy`glX(eb%XqpthIn|N z?X%Tq36y9(e>3Ub9|`Nn^LzX>!bDsgfyiW$;7K zmLE6nR=y9(tDgVdmj5Hayz^|O^_fi17tWhHeS@5cX!Thxi;a9H55i8h#1>C^oymA8 zu~~8TrU*5gigw>Xz3WCDwy(bi^c{+s`02;x)xBMNu5r9+;ft*Nc2VPx$BuPX;R7gwB(mhK9K^O$!nLsoac6N5wX0Ncbv$M0a5kW){5hMsAg4jqbL<`YE zv=A*6JM&Mxi$5lNMMif0z>g%iIatWHH#7GXFEN6T&NPzzQ=5&cna^ z15y6?Q!RpMIb#%@aAp(k{oF1@`5SxFg1R0y83hJhTEm^M?I4s3Pqa1P1zHfMBEfE~ z;ilUTM!9e`(_F>Dfaw@83HN!zwV_b{_*2dDPx&o=HSOR9Hvtm{EvSRUF2@@7`%yO+qX1CBZ-<@y=+FFTGe`462n|5 zfqi31UTp`iEwHSwwUo{Rc&t)AzU!noR0gnJ4c?h}uS^Kwn#gp~;`vtLS_ZRSZ4z}H zKo5Xh6bGCX$7;=QyXqG;3}7LENs3#Y6i>AR*EHCE$?*K}AizCwf~#T34Wp~++iox< za$i(P>41|m2Qxp*G7NnKU|C%1LrKfnyPpi30c;8^?`u&gjRII72R$Dqm@fT;+l|bh zco++eQdIJ_@xF0`%oHr%oDXhZu$O<*ax)PHe>$=_bjqZ$by8TGK%|H@M-smTZs;NY z2oxSCxG7%uOHg9^t7mwn5nMyCysLEqHA-L!fRNx`C&@#$r{`3;k!ABY8rKN+IZ6It zd)g!DAOJ(abyLg~Qam@;<~hM^S6f6K17HHUDKS$_aXg;?3_xPOa>UO|6km5zJdt&^ zo{TK92tYt_TY0`-oLOM`(=vmV;l~8GSK1P;AY?k3#IK$oeh6@9lRz_;=}6Kt-ts&= z1w&^cERU^m)VyT8S=h*+cEdEV0ar^VDy3Uj*@SbwVulM4OiXB`#{BKE0pq>B%;`4F zdU=LZyj~4F1(v_46`}NP%}Gv}myB&#g(t%>GXIKpX=d!ZY#2=AB7O^2hQ|nQsaD1y zUo5QR?EeLj*hH_rkS z*;lv77tI|e(B6Cu&l3r;lKFe#tr=b=;PtZn!a-{pr&G$ z`{G}J8k-j{#uLUvc(rKpz%<3GD{W8D3;OP!(#!}>@C7Hy@8`UguVRK!(Fgi1-gp0`bz35)>W*X&z`)m zHGx#OH_hrv(?kZTk(C~Y#nLzhr&AfjR+z*I)IsOCiCl^IW StEH*{0000