[cleanup] 删除 server-status-web 相关文件以清理项目
@ -1 +0,0 @@
|
|||||||
VITE_API_ROOT=https://status.liteyuki.icu
|
|
@ -1 +0,0 @@
|
|||||||
VITE_API_ROOT=""
|
|
24
server-status-web/.gitignore
vendored
@ -1,24 +0,0 @@
|
|||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
pnpm-debug.log*
|
|
||||||
lerna-debug.log*
|
|
||||||
|
|
||||||
node_modules
|
|
||||||
dist
|
|
||||||
dist-ssr
|
|
||||||
*.local
|
|
||||||
|
|
||||||
# Editor directories and files
|
|
||||||
.vscode/*
|
|
||||||
!.vscode/extensions.json
|
|
||||||
.idea
|
|
||||||
.DS_Store
|
|
||||||
*.suo
|
|
||||||
*.ntvs*
|
|
||||||
*.njsproj
|
|
||||||
*.sln
|
|
||||||
*.sw?
|
|
@ -1,21 +0,0 @@
|
|||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2024 Snowykami
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
@ -1,3 +0,0 @@
|
|||||||
# 服务器监控面板前端源码
|
|
||||||
|
|
||||||
![]
|
|
@ -1,15 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8"/>
|
|
||||||
<link rel="icon" type="image/svg+xml" href="/icon.svg"/>
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
|
||||||
<title>Server Status</title>
|
|
||||||
<link href="https://fonts.font.im/css?family=Josefin+Sans:400,400i,600,600i,700,700i" rel="stylesheet">
|
|
||||||
<link href="https://fonts.font.im/css?family=Quattrocento+Sans:400,400i,700,700i" rel="stylesheet">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="app"></div>
|
|
||||||
<script type="module" src="/src/main.ts"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
727
server-status-web/package-lock.json
generated
@ -1,727 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "server-status",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"lockfileVersion": 3,
|
|
||||||
"requires": true,
|
|
||||||
"packages": {
|
|
||||||
"": {
|
|
||||||
"name": "server-status",
|
|
||||||
"version": "0.0.0",
|
|
||||||
"dependencies": {
|
|
||||||
"echarts": "^5.5.1",
|
|
||||||
"html2canvas": "^1.4.1",
|
|
||||||
"pnpm": "^9.12.0",
|
|
||||||
"vue": "^3.4.37",
|
|
||||||
"vue-router": "^4.4.5"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@types/node": "^22.7.4",
|
|
||||||
"@vitejs/plugin-vue": "^5.1.2",
|
|
||||||
"sax": "^1.4.1",
|
|
||||||
"typescript": "^5.5.3",
|
|
||||||
"vite": "^5.4.1",
|
|
||||||
"vue-tsc": "^2.0.29"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@babel/helper-string-parser": {
|
|
||||||
"version": "7.25.7",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@babel/helper-validator-identifier": {
|
|
||||||
"version": "7.25.7",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@babel/parser": {
|
|
||||||
"version": "7.25.7",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/types": "^7.25.7"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"parser": "bin/babel-parser.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@babel/types": {
|
|
||||||
"version": "7.25.7",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/helper-string-parser": "^7.25.7",
|
|
||||||
"@babel/helper-validator-identifier": "^7.25.7",
|
|
||||||
"to-fast-properties": "^2.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.9.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@esbuild/linux-x64": {
|
|
||||||
"version": "0.21.5",
|
|
||||||
"cpu": [
|
|
||||||
"x64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"linux"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=12"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@jridgewell/sourcemap-codec": {
|
|
||||||
"version": "1.5.0",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
|
||||||
"version": "4.24.0",
|
|
||||||
"cpu": [
|
|
||||||
"x64"
|
|
||||||
],
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"linux"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"node_modules/@types/estree": {
|
|
||||||
"version": "1.0.6",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/@types/node": {
|
|
||||||
"version": "22.7.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.4.tgz",
|
|
||||||
"integrity": "sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"undici-types": "~6.19.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vitejs/plugin-vue": {
|
|
||||||
"version": "5.1.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz",
|
|
||||||
"integrity": "sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": "^18.0.0 || >=20.0.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"vite": "^5.0.0",
|
|
||||||
"vue": "^3.2.25"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@volar/language-core": {
|
|
||||||
"version": "2.4.5",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@volar/source-map": "2.4.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@volar/source-map": {
|
|
||||||
"version": "2.4.5",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/@volar/typescript": {
|
|
||||||
"version": "2.4.5",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@volar/language-core": "2.4.5",
|
|
||||||
"path-browserify": "^1.0.1",
|
|
||||||
"vscode-uri": "^3.0.8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vue/compiler-core": {
|
|
||||||
"version": "3.5.11",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/parser": "^7.25.3",
|
|
||||||
"@vue/shared": "3.5.11",
|
|
||||||
"entities": "^4.5.0",
|
|
||||||
"estree-walker": "^2.0.2",
|
|
||||||
"source-map-js": "^1.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vue/compiler-dom": {
|
|
||||||
"version": "3.5.11",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@vue/compiler-core": "3.5.11",
|
|
||||||
"@vue/shared": "3.5.11"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vue/compiler-sfc": {
|
|
||||||
"version": "3.5.11",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/parser": "^7.25.3",
|
|
||||||
"@vue/compiler-core": "3.5.11",
|
|
||||||
"@vue/compiler-dom": "3.5.11",
|
|
||||||
"@vue/compiler-ssr": "3.5.11",
|
|
||||||
"@vue/shared": "3.5.11",
|
|
||||||
"estree-walker": "^2.0.2",
|
|
||||||
"magic-string": "^0.30.11",
|
|
||||||
"postcss": "^8.4.47",
|
|
||||||
"source-map-js": "^1.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vue/compiler-ssr": {
|
|
||||||
"version": "3.5.11",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@vue/compiler-dom": "3.5.11",
|
|
||||||
"@vue/shared": "3.5.11"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vue/compiler-vue2": {
|
|
||||||
"version": "2.7.16",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"de-indent": "^1.0.2",
|
|
||||||
"he": "^1.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vue/devtools-api": {
|
|
||||||
"version": "6.6.4",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/@vue/language-core": {
|
|
||||||
"version": "2.1.6",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@volar/language-core": "~2.4.1",
|
|
||||||
"@vue/compiler-dom": "^3.4.0",
|
|
||||||
"@vue/compiler-vue2": "^2.7.16",
|
|
||||||
"@vue/shared": "^3.4.0",
|
|
||||||
"computeds": "^0.0.1",
|
|
||||||
"minimatch": "^9.0.3",
|
|
||||||
"muggle-string": "^0.4.1",
|
|
||||||
"path-browserify": "^1.0.1"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"typescript": "*"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"typescript": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vue/reactivity": {
|
|
||||||
"version": "3.5.11",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@vue/shared": "3.5.11"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vue/runtime-core": {
|
|
||||||
"version": "3.5.11",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@vue/reactivity": "3.5.11",
|
|
||||||
"@vue/shared": "3.5.11"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vue/runtime-dom": {
|
|
||||||
"version": "3.5.11",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@vue/reactivity": "3.5.11",
|
|
||||||
"@vue/runtime-core": "3.5.11",
|
|
||||||
"@vue/shared": "3.5.11",
|
|
||||||
"csstype": "^3.1.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vue/server-renderer": {
|
|
||||||
"version": "3.5.11",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@vue/compiler-ssr": "3.5.11",
|
|
||||||
"@vue/shared": "3.5.11"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"vue": "3.5.11"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@vue/shared": {
|
|
||||||
"version": "3.5.11",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/balanced-match": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/base64-arraybuffer": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.6.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/brace-expansion": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"balanced-match": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/computeds": {
|
|
||||||
"version": "0.0.1",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/css-line-break": {
|
|
||||||
"version": "2.1.0",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"utrie": "^1.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/csstype": {
|
|
||||||
"version": "3.1.3",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/de-indent": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/echarts": {
|
|
||||||
"version": "5.5.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/echarts/-/echarts-5.5.1.tgz",
|
|
||||||
"integrity": "sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==",
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"dependencies": {
|
|
||||||
"tslib": "2.3.0",
|
|
||||||
"zrender": "5.6.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/entities": {
|
|
||||||
"version": "4.5.0",
|
|
||||||
"license": "BSD-2-Clause",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.12"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/fb55/entities?sponsor=1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/esbuild": {
|
|
||||||
"version": "0.21.5",
|
|
||||||
"dev": true,
|
|
||||||
"hasInstallScript": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"bin": {
|
|
||||||
"esbuild": "bin/esbuild"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=12"
|
|
||||||
},
|
|
||||||
"optionalDependencies": {
|
|
||||||
"@esbuild/aix-ppc64": "0.21.5",
|
|
||||||
"@esbuild/android-arm": "0.21.5",
|
|
||||||
"@esbuild/android-arm64": "0.21.5",
|
|
||||||
"@esbuild/android-x64": "0.21.5",
|
|
||||||
"@esbuild/darwin-arm64": "0.21.5",
|
|
||||||
"@esbuild/darwin-x64": "0.21.5",
|
|
||||||
"@esbuild/freebsd-arm64": "0.21.5",
|
|
||||||
"@esbuild/freebsd-x64": "0.21.5",
|
|
||||||
"@esbuild/linux-arm": "0.21.5",
|
|
||||||
"@esbuild/linux-arm64": "0.21.5",
|
|
||||||
"@esbuild/linux-ia32": "0.21.5",
|
|
||||||
"@esbuild/linux-loong64": "0.21.5",
|
|
||||||
"@esbuild/linux-mips64el": "0.21.5",
|
|
||||||
"@esbuild/linux-ppc64": "0.21.5",
|
|
||||||
"@esbuild/linux-riscv64": "0.21.5",
|
|
||||||
"@esbuild/linux-s390x": "0.21.5",
|
|
||||||
"@esbuild/linux-x64": "0.21.5",
|
|
||||||
"@esbuild/netbsd-x64": "0.21.5",
|
|
||||||
"@esbuild/openbsd-x64": "0.21.5",
|
|
||||||
"@esbuild/sunos-x64": "0.21.5",
|
|
||||||
"@esbuild/win32-arm64": "0.21.5",
|
|
||||||
"@esbuild/win32-ia32": "0.21.5",
|
|
||||||
"@esbuild/win32-x64": "0.21.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/estree-walker": {
|
|
||||||
"version": "2.0.2",
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/fsevents": {
|
|
||||||
"version": "2.3.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
|
||||||
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
|
||||||
"dev": true,
|
|
||||||
"hasInstallScript": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"optional": true,
|
|
||||||
"os": [
|
|
||||||
"darwin"
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/he": {
|
|
||||||
"version": "1.2.0",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"bin": {
|
|
||||||
"he": "bin/he"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/html2canvas": {
|
|
||||||
"version": "1.4.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz",
|
|
||||||
"integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"css-line-break": "^2.1.0",
|
|
||||||
"text-segmentation": "^1.0.3"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/magic-string": {
|
|
||||||
"version": "0.30.11",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@jridgewell/sourcemap-codec": "^1.5.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/minimatch": {
|
|
||||||
"version": "9.0.5",
|
|
||||||
"dev": true,
|
|
||||||
"license": "ISC",
|
|
||||||
"dependencies": {
|
|
||||||
"brace-expansion": "^2.0.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=16 || 14 >=14.17"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/isaacs"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/muggle-string": {
|
|
||||||
"version": "0.4.1",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/nanoid": {
|
|
||||||
"version": "3.3.7",
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/ai"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"bin": {
|
|
||||||
"nanoid": "bin/nanoid.cjs"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/path-browserify": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/picocolors": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"license": "ISC"
|
|
||||||
},
|
|
||||||
"node_modules/pnpm": {
|
|
||||||
"version": "9.12.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pnpm/-/pnpm-9.12.0.tgz",
|
|
||||||
"integrity": "sha512-Sr9yUITXvLr71yi/x77mHy95H5d/2HVCs1edyyNQTRcNRjN5ReTGZIXNEtWIoMDlcO2cR358zdhQfPBfP5Lqyg==",
|
|
||||||
"license": "MIT",
|
|
||||||
"bin": {
|
|
||||||
"pnpm": "bin/pnpm.cjs",
|
|
||||||
"pnpx": "bin/pnpx.cjs"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.12"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://opencollective.com/pnpm"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/postcss": {
|
|
||||||
"version": "8.4.47",
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/postcss/"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "tidelift",
|
|
||||||
"url": "https://tidelift.com/funding/github/npm/postcss"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/ai"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"nanoid": "^3.3.7",
|
|
||||||
"picocolors": "^1.1.0",
|
|
||||||
"source-map-js": "^1.2.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "^10 || ^12 || >=14"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/rollup": {
|
|
||||||
"version": "4.24.0",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@types/estree": "1.0.6"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"rollup": "dist/bin/rollup"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=18.0.0",
|
|
||||||
"npm": ">=8.0.0"
|
|
||||||
},
|
|
||||||
"optionalDependencies": {
|
|
||||||
"@rollup/rollup-android-arm-eabi": "4.24.0",
|
|
||||||
"@rollup/rollup-android-arm64": "4.24.0",
|
|
||||||
"@rollup/rollup-darwin-arm64": "4.24.0",
|
|
||||||
"@rollup/rollup-darwin-x64": "4.24.0",
|
|
||||||
"@rollup/rollup-linux-arm-gnueabihf": "4.24.0",
|
|
||||||
"@rollup/rollup-linux-arm-musleabihf": "4.24.0",
|
|
||||||
"@rollup/rollup-linux-arm64-gnu": "4.24.0",
|
|
||||||
"@rollup/rollup-linux-arm64-musl": "4.24.0",
|
|
||||||
"@rollup/rollup-linux-powerpc64le-gnu": "4.24.0",
|
|
||||||
"@rollup/rollup-linux-riscv64-gnu": "4.24.0",
|
|
||||||
"@rollup/rollup-linux-s390x-gnu": "4.24.0",
|
|
||||||
"@rollup/rollup-linux-x64-gnu": "4.24.0",
|
|
||||||
"@rollup/rollup-linux-x64-musl": "4.24.0",
|
|
||||||
"@rollup/rollup-win32-arm64-msvc": "4.24.0",
|
|
||||||
"@rollup/rollup-win32-ia32-msvc": "4.24.0",
|
|
||||||
"@rollup/rollup-win32-x64-msvc": "4.24.0",
|
|
||||||
"fsevents": "~2.3.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/sax": {
|
|
||||||
"version": "1.4.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
|
|
||||||
"integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "ISC"
|
|
||||||
},
|
|
||||||
"node_modules/semver": {
|
|
||||||
"version": "7.6.3",
|
|
||||||
"dev": true,
|
|
||||||
"license": "ISC",
|
|
||||||
"bin": {
|
|
||||||
"semver": "bin/semver.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/source-map-js": {
|
|
||||||
"version": "1.2.1",
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/text-segmentation": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"utrie": "^1.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/to-fast-properties": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=4"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tslib": {
|
|
||||||
"version": "2.3.0",
|
|
||||||
"license": "0BSD"
|
|
||||||
},
|
|
||||||
"node_modules/typescript": {
|
|
||||||
"version": "5.6.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.2.tgz",
|
|
||||||
"integrity": "sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==",
|
|
||||||
"devOptional": true,
|
|
||||||
"license": "Apache-2.0",
|
|
||||||
"bin": {
|
|
||||||
"tsc": "bin/tsc",
|
|
||||||
"tsserver": "bin/tsserver"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=14.17"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/undici-types": {
|
|
||||||
"version": "6.19.8",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/utrie": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"base64-arraybuffer": "^1.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/vite": {
|
|
||||||
"version": "5.4.8",
|
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz",
|
|
||||||
"integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"esbuild": "^0.21.3",
|
|
||||||
"postcss": "^8.4.43",
|
|
||||||
"rollup": "^4.20.0"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"vite": "bin/vite.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "^18.0.0 || >=20.0.0"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/vitejs/vite?sponsor=1"
|
|
||||||
},
|
|
||||||
"optionalDependencies": {
|
|
||||||
"fsevents": "~2.3.3"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@types/node": "^18.0.0 || >=20.0.0",
|
|
||||||
"less": "*",
|
|
||||||
"lightningcss": "^1.21.0",
|
|
||||||
"sass": "*",
|
|
||||||
"sass-embedded": "*",
|
|
||||||
"stylus": "*",
|
|
||||||
"sugarss": "*",
|
|
||||||
"terser": "^5.4.0"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"@types/node": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"less": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"lightningcss": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"sass": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"sass-embedded": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"stylus": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"sugarss": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"terser": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/vscode-uri": {
|
|
||||||
"version": "3.0.8",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/vue": {
|
|
||||||
"version": "3.5.11",
|
|
||||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.5.11.tgz",
|
|
||||||
"integrity": "sha512-/8Wurrd9J3lb72FTQS7gRMNQD4nztTtKPmuDuPuhqXmmpD6+skVjAeahNpVzsuky6Sy9gy7wn8UadqPtt9SQIg==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@vue/compiler-dom": "3.5.11",
|
|
||||||
"@vue/compiler-sfc": "3.5.11",
|
|
||||||
"@vue/runtime-dom": "3.5.11",
|
|
||||||
"@vue/server-renderer": "3.5.11",
|
|
||||||
"@vue/shared": "3.5.11"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"typescript": "*"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"typescript": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/vue-router": {
|
|
||||||
"version": "4.4.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.5.tgz",
|
|
||||||
"integrity": "sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@vue/devtools-api": "^6.6.4"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/posva"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"vue": "^3.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/vue-tsc": {
|
|
||||||
"version": "2.1.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.6.tgz",
|
|
||||||
"integrity": "sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"@volar/typescript": "~2.4.1",
|
|
||||||
"@vue/language-core": "2.1.6",
|
|
||||||
"semver": "^7.5.4"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"vue-tsc": "bin/vue-tsc.js"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"typescript": ">=5.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/zrender": {
|
|
||||||
"version": "5.6.0",
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"dependencies": {
|
|
||||||
"tslib": "2.3.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "server-status",
|
|
||||||
"private": true,
|
|
||||||
"version": "0.0.0",
|
|
||||||
"type": "module",
|
|
||||||
"scripts": {
|
|
||||||
"dev": "vite --mode dev --host",
|
|
||||||
"build": "vue-tsc -b && vite build --mode prod",
|
|
||||||
"preview": "vite preview"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"echarts": "^5.5.1",
|
|
||||||
"html2canvas": "^1.4.1",
|
|
||||||
"pnpm": "^9.12.0",
|
|
||||||
"vue": "^3.4.37",
|
|
||||||
"vue-router": "^4.4.5"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@types/node": "^22.7.4",
|
|
||||||
"@vitejs/plugin-vue": "^5.1.2",
|
|
||||||
"sax": "^1.4.1",
|
|
||||||
"typescript": "^5.5.3",
|
|
||||||
"vite": "^5.4.1",
|
|
||||||
"vue-tsc": "^2.0.29"
|
|
||||||
}
|
|
||||||
}
|
|
833
server-status-web/pnpm-lock.yaml
generated
@ -1,833 +0,0 @@
|
|||||||
lockfileVersion: '6.0'
|
|
||||||
|
|
||||||
settings:
|
|
||||||
autoInstallPeers: true
|
|
||||||
excludeLinksFromLockfile: false
|
|
||||||
|
|
||||||
dependencies:
|
|
||||||
echarts:
|
|
||||||
specifier: ^5.5.1
|
|
||||||
version: 5.5.1
|
|
||||||
html2canvas:
|
|
||||||
specifier: ^1.4.1
|
|
||||||
version: 1.4.1
|
|
||||||
vue:
|
|
||||||
specifier: ^3.4.37
|
|
||||||
version: 3.5.10(typescript@5.6.2)
|
|
||||||
vue-router:
|
|
||||||
specifier: ^4.4.5
|
|
||||||
version: 4.4.5(vue@3.5.10)
|
|
||||||
|
|
||||||
devDependencies:
|
|
||||||
'@types/node':
|
|
||||||
specifier: ^22.7.4
|
|
||||||
version: 22.7.4
|
|
||||||
'@vitejs/plugin-vue':
|
|
||||||
specifier: ^5.1.2
|
|
||||||
version: 5.1.4(vite@5.4.8)(vue@3.5.10)
|
|
||||||
sax:
|
|
||||||
specifier: ^1.4.1
|
|
||||||
version: 1.4.1
|
|
||||||
typescript:
|
|
||||||
specifier: ^5.5.3
|
|
||||||
version: 5.6.2
|
|
||||||
vite:
|
|
||||||
specifier: ^5.4.1
|
|
||||||
version: 5.4.8(@types/node@22.7.4)
|
|
||||||
vue-tsc:
|
|
||||||
specifier: ^2.0.29
|
|
||||||
version: 2.1.6(typescript@5.6.2)
|
|
||||||
|
|
||||||
packages:
|
|
||||||
|
|
||||||
/@babel/helper-string-parser@7.24.8:
|
|
||||||
resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
|
|
||||||
/@babel/helper-validator-identifier@7.24.7:
|
|
||||||
resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
|
|
||||||
/@babel/parser@7.25.6:
|
|
||||||
resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==}
|
|
||||||
engines: {node: '>=6.0.0'}
|
|
||||||
hasBin: true
|
|
||||||
dependencies:
|
|
||||||
'@babel/types': 7.25.6
|
|
||||||
|
|
||||||
/@babel/types@7.25.6:
|
|
||||||
resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dependencies:
|
|
||||||
'@babel/helper-string-parser': 7.24.8
|
|
||||||
'@babel/helper-validator-identifier': 7.24.7
|
|
||||||
to-fast-properties: 2.0.0
|
|
||||||
|
|
||||||
/@esbuild/aix-ppc64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [ppc64]
|
|
||||||
os: [aix]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/android-arm64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [android]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/android-arm@0.21.5:
|
|
||||||
resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm]
|
|
||||||
os: [android]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/android-x64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [android]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/darwin-arm64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [darwin]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/darwin-x64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [darwin]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/freebsd-arm64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [freebsd]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/freebsd-x64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [freebsd]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/linux-arm64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/linux-arm@0.21.5:
|
|
||||||
resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/linux-ia32@0.21.5:
|
|
||||||
resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [ia32]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/linux-loong64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [loong64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/linux-mips64el@0.21.5:
|
|
||||||
resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [mips64el]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/linux-ppc64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [ppc64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/linux-riscv64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [riscv64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/linux-s390x@0.21.5:
|
|
||||||
resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [s390x]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/linux-x64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [linux]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/netbsd-x64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [netbsd]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/openbsd-x64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [openbsd]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/sunos-x64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [sunos]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/win32-arm64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [win32]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/win32-ia32@0.21.5:
|
|
||||||
resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [ia32]
|
|
||||||
os: [win32]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@esbuild/win32-x64@0.21.5:
|
|
||||||
resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [win32]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@jridgewell/sourcemap-codec@1.5.0:
|
|
||||||
resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
|
|
||||||
|
|
||||||
/@rollup/rollup-android-arm-eabi@4.23.0:
|
|
||||||
resolution: {integrity: sha512-8OR+Ok3SGEMsAZispLx8jruuXw0HVF16k+ub2eNXKHDmdxL4cf9NlNpAzhlOhNyXzKDEJuFeq0nZm+XlNb1IFw==}
|
|
||||||
cpu: [arm]
|
|
||||||
os: [android]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-android-arm64@4.23.0:
|
|
||||||
resolution: {integrity: sha512-rEFtX1nP8gqmLmPZsXRMoLVNB5JBwOzIAk/XAcEPuKrPa2nPJ+DuGGpfQUR0XjRm8KjHfTZLpWbKXkA5BoFL3w==}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [android]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-darwin-arm64@4.23.0:
|
|
||||||
resolution: {integrity: sha512-ZbqlMkJRMMPeapfaU4drYHns7Q5MIxjM/QeOO62qQZGPh9XWziap+NF9fsqPHT0KzEL6HaPspC7sOwpgyA3J9g==}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [darwin]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-darwin-x64@4.23.0:
|
|
||||||
resolution: {integrity: sha512-PfmgQp78xx5rBCgn2oYPQ1rQTtOaQCna0kRaBlc5w7RlA3TDGGo7m3XaptgitUZ54US9915i7KeVPHoy3/W8tA==}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [darwin]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-linux-arm-gnueabihf@4.23.0:
|
|
||||||
resolution: {integrity: sha512-WAeZfAAPus56eQgBioezXRRzArAjWJGjNo/M+BHZygUcs9EePIuGI1Wfc6U/Ki+tMW17FFGvhCfYnfcKPh18SA==}
|
|
||||||
cpu: [arm]
|
|
||||||
os: [linux]
|
|
||||||
libc: [glibc]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-linux-arm-musleabihf@4.23.0:
|
|
||||||
resolution: {integrity: sha512-v7PGcp1O5XKZxKX8phTXtmJDVpE20Ub1eF6w9iMmI3qrrPak6yR9/5eeq7ziLMrMTjppkkskXyxnmm00HdtXjA==}
|
|
||||||
cpu: [arm]
|
|
||||||
os: [linux]
|
|
||||||
libc: [musl]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-linux-arm64-gnu@4.23.0:
|
|
||||||
resolution: {integrity: sha512-nAbWsDZ9UkU6xQiXEyXBNHAKbzSAi95H3gTStJq9UGiS1v+YVXwRHcQOQEF/3CHuhX5BVhShKoeOf6Q/1M+Zhg==}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [linux]
|
|
||||||
libc: [glibc]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-linux-arm64-musl@4.23.0:
|
|
||||||
resolution: {integrity: sha512-5QT/Di5FbGNPaVw8hHO1wETunwkPuZBIu6W+5GNArlKHD9fkMHy7vS8zGHJk38oObXfWdsuLMogD4sBySLJ54g==}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [linux]
|
|
||||||
libc: [musl]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-linux-powerpc64le-gnu@4.23.0:
|
|
||||||
resolution: {integrity: sha512-Sefl6vPyn5axzCsO13r1sHLcmPuiSOrKIImnq34CBurntcJ+lkQgAaTt/9JkgGmaZJ+OkaHmAJl4Bfd0DmdtOQ==}
|
|
||||||
cpu: [ppc64]
|
|
||||||
os: [linux]
|
|
||||||
libc: [glibc]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-linux-riscv64-gnu@4.23.0:
|
|
||||||
resolution: {integrity: sha512-o4QI2KU/QbP7ZExMse6ULotdV3oJUYMrdx3rBZCgUF3ur3gJPfe8Fuasn6tia16c5kZBBw0aTmaUygad6VB/hQ==}
|
|
||||||
cpu: [riscv64]
|
|
||||||
os: [linux]
|
|
||||||
libc: [glibc]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-linux-s390x-gnu@4.23.0:
|
|
||||||
resolution: {integrity: sha512-+bxqx+V/D4FGrpXzPGKp/SEZIZ8cIW3K7wOtcJAoCrmXvzRtmdUhYNbgd+RztLzfDEfA2WtKj5F4tcbNPuqgeg==}
|
|
||||||
cpu: [s390x]
|
|
||||||
os: [linux]
|
|
||||||
libc: [glibc]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-linux-x64-gnu@4.23.0:
|
|
||||||
resolution: {integrity: sha512-I/eXsdVoCKtSgK9OwyQKPAfricWKUMNCwJKtatRYMmDo5N859tbO3UsBw5kT3dU1n6ZcM1JDzPRSGhAUkxfLxw==}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [linux]
|
|
||||||
libc: [glibc]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-linux-x64-musl@4.23.0:
|
|
||||||
resolution: {integrity: sha512-4ZoDZy5ShLbbe1KPSafbFh1vbl0asTVfkABC7eWqIs01+66ncM82YJxV2VtV3YVJTqq2P8HMx3DCoRSWB/N3rw==}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [linux]
|
|
||||||
libc: [musl]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-win32-arm64-msvc@4.23.0:
|
|
||||||
resolution: {integrity: sha512-+5Ky8dhft4STaOEbZu3/NU4QIyYssKO+r1cD3FzuusA0vO5gso15on7qGzKdNXnc1gOrsgCqZjRw1w+zL4y4hQ==}
|
|
||||||
cpu: [arm64]
|
|
||||||
os: [win32]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-win32-ia32-msvc@4.23.0:
|
|
||||||
resolution: {integrity: sha512-0SPJk4cPZQhq9qA1UhIRumSE3+JJIBBjtlGl5PNC///BoaByckNZd53rOYD0glpTkYFBQSt7AkMeLVPfx65+BQ==}
|
|
||||||
cpu: [ia32]
|
|
||||||
os: [win32]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@rollup/rollup-win32-x64-msvc@4.23.0:
|
|
||||||
resolution: {integrity: sha512-lqCK5GQC8fNo0+JvTSxcG7YB1UKYp8yrNLhsArlvPWN+16ovSZgoehlVHg6X0sSWPUkpjRBR5TuR12ZugowZ4g==}
|
|
||||||
cpu: [x64]
|
|
||||||
os: [win32]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/@types/estree@1.0.6:
|
|
||||||
resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@types/node@22.7.4:
|
|
||||||
resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==}
|
|
||||||
dependencies:
|
|
||||||
undici-types: 6.19.8
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@vitejs/plugin-vue@5.1.4(vite@5.4.8)(vue@3.5.10):
|
|
||||||
resolution: {integrity: sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==}
|
|
||||||
engines: {node: ^18.0.0 || >=20.0.0}
|
|
||||||
peerDependencies:
|
|
||||||
vite: ^5.0.0
|
|
||||||
vue: ^3.2.25
|
|
||||||
dependencies:
|
|
||||||
vite: 5.4.8(@types/node@22.7.4)
|
|
||||||
vue: 3.5.10(typescript@5.6.2)
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@volar/language-core@2.4.5:
|
|
||||||
resolution: {integrity: sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==}
|
|
||||||
dependencies:
|
|
||||||
'@volar/source-map': 2.4.5
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@volar/source-map@2.4.5:
|
|
||||||
resolution: {integrity: sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@volar/typescript@2.4.5:
|
|
||||||
resolution: {integrity: sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==}
|
|
||||||
dependencies:
|
|
||||||
'@volar/language-core': 2.4.5
|
|
||||||
path-browserify: 1.0.1
|
|
||||||
vscode-uri: 3.0.8
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@vue/compiler-core@3.5.10:
|
|
||||||
resolution: {integrity: sha512-iXWlk+Cg/ag7gLvY0SfVucU8Kh2CjysYZjhhP70w9qI4MvSox4frrP+vDGvtQuzIcgD8+sxM6lZvCtdxGunTAA==}
|
|
||||||
dependencies:
|
|
||||||
'@babel/parser': 7.25.6
|
|
||||||
'@vue/shared': 3.5.10
|
|
||||||
entities: 4.5.0
|
|
||||||
estree-walker: 2.0.2
|
|
||||||
source-map-js: 1.2.1
|
|
||||||
|
|
||||||
/@vue/compiler-dom@3.5.10:
|
|
||||||
resolution: {integrity: sha512-DyxHC6qPcktwYGKOIy3XqnHRrrXyWR2u91AjP+nLkADko380srsC2DC3s7Y1Rk6YfOlxOlvEQKa9XXmLI+W4ZA==}
|
|
||||||
dependencies:
|
|
||||||
'@vue/compiler-core': 3.5.10
|
|
||||||
'@vue/shared': 3.5.10
|
|
||||||
|
|
||||||
/@vue/compiler-sfc@3.5.10:
|
|
||||||
resolution: {integrity: sha512-to8E1BgpakV7224ZCm8gz1ZRSyjNCAWEplwFMWKlzCdP9DkMKhRRwt0WkCjY7jkzi/Vz3xgbpeig5Pnbly4Tow==}
|
|
||||||
dependencies:
|
|
||||||
'@babel/parser': 7.25.6
|
|
||||||
'@vue/compiler-core': 3.5.10
|
|
||||||
'@vue/compiler-dom': 3.5.10
|
|
||||||
'@vue/compiler-ssr': 3.5.10
|
|
||||||
'@vue/shared': 3.5.10
|
|
||||||
estree-walker: 2.0.2
|
|
||||||
magic-string: 0.30.11
|
|
||||||
postcss: 8.4.47
|
|
||||||
source-map-js: 1.2.1
|
|
||||||
|
|
||||||
/@vue/compiler-ssr@3.5.10:
|
|
||||||
resolution: {integrity: sha512-hxP4Y3KImqdtyUKXDRSxKSRkSm1H9fCvhojEYrnaoWhE4w/y8vwWhnosJoPPe2AXm5sU7CSbYYAgkt2ZPhDz+A==}
|
|
||||||
dependencies:
|
|
||||||
'@vue/compiler-dom': 3.5.10
|
|
||||||
'@vue/shared': 3.5.10
|
|
||||||
|
|
||||||
/@vue/compiler-vue2@2.7.16:
|
|
||||||
resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==}
|
|
||||||
dependencies:
|
|
||||||
de-indent: 1.0.2
|
|
||||||
he: 1.2.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@vue/devtools-api@6.6.4:
|
|
||||||
resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@vue/language-core@2.1.6(typescript@5.6.2):
|
|
||||||
resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==}
|
|
||||||
peerDependencies:
|
|
||||||
typescript: '*'
|
|
||||||
peerDependenciesMeta:
|
|
||||||
typescript:
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
'@volar/language-core': 2.4.5
|
|
||||||
'@vue/compiler-dom': 3.5.10
|
|
||||||
'@vue/compiler-vue2': 2.7.16
|
|
||||||
'@vue/shared': 3.5.10
|
|
||||||
computeds: 0.0.1
|
|
||||||
minimatch: 9.0.5
|
|
||||||
muggle-string: 0.4.1
|
|
||||||
path-browserify: 1.0.1
|
|
||||||
typescript: 5.6.2
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@vue/reactivity@3.5.10:
|
|
||||||
resolution: {integrity: sha512-kW08v06F6xPSHhid9DJ9YjOGmwNDOsJJQk0ax21wKaUYzzuJGEuoKNU2Ujux8FLMrP7CFJJKsHhXN9l2WOVi2g==}
|
|
||||||
dependencies:
|
|
||||||
'@vue/shared': 3.5.10
|
|
||||||
|
|
||||||
/@vue/runtime-core@3.5.10:
|
|
||||||
resolution: {integrity: sha512-9Q86I5Qq3swSkFfzrZ+iqEy7Vla325M7S7xc1NwKnRm/qoi1Dauz0rT6mTMmscqx4qz0EDJ1wjB+A36k7rl8mA==}
|
|
||||||
dependencies:
|
|
||||||
'@vue/reactivity': 3.5.10
|
|
||||||
'@vue/shared': 3.5.10
|
|
||||||
|
|
||||||
/@vue/runtime-dom@3.5.10:
|
|
||||||
resolution: {integrity: sha512-t3x7ht5qF8ZRi1H4fZqFzyY2j+GTMTDxRheT+i8M9Ph0oepUxoadmbwlFwMoW7RYCpNQLpP2Yx3feKs+fyBdpA==}
|
|
||||||
dependencies:
|
|
||||||
'@vue/reactivity': 3.5.10
|
|
||||||
'@vue/runtime-core': 3.5.10
|
|
||||||
'@vue/shared': 3.5.10
|
|
||||||
csstype: 3.1.3
|
|
||||||
|
|
||||||
/@vue/server-renderer@3.5.10(vue@3.5.10):
|
|
||||||
resolution: {integrity: sha512-IVE97tt2kGKwHNq9yVO0xdh1IvYfZCShvDSy46JIh5OQxP1/EXSpoDqetVmyIzL7CYOWnnmMkVqd7YK2QSWkdw==}
|
|
||||||
peerDependencies:
|
|
||||||
vue: 3.5.10
|
|
||||||
dependencies:
|
|
||||||
'@vue/compiler-ssr': 3.5.10
|
|
||||||
'@vue/shared': 3.5.10
|
|
||||||
vue: 3.5.10(typescript@5.6.2)
|
|
||||||
|
|
||||||
/@vue/shared@3.5.10:
|
|
||||||
resolution: {integrity: sha512-VkkBhU97Ki+XJ0xvl4C9YJsIZ2uIlQ7HqPpZOS3m9VCvmROPaChZU6DexdMJqvz9tbgG+4EtFVrSuailUq5KGQ==}
|
|
||||||
|
|
||||||
/balanced-match@1.0.2:
|
|
||||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/base64-arraybuffer@1.0.2:
|
|
||||||
resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==}
|
|
||||||
engines: {node: '>= 0.6.0'}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/brace-expansion@2.0.1:
|
|
||||||
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
|
|
||||||
dependencies:
|
|
||||||
balanced-match: 1.0.2
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/computeds@0.0.1:
|
|
||||||
resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/css-line-break@2.1.0:
|
|
||||||
resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==}
|
|
||||||
dependencies:
|
|
||||||
utrie: 1.0.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/csstype@3.1.3:
|
|
||||||
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
|
|
||||||
|
|
||||||
/de-indent@1.0.2:
|
|
||||||
resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/echarts@5.5.1:
|
|
||||||
resolution: {integrity: sha512-Fce8upazaAXUVUVsjgV6mBnGuqgO+JNDlcgF79Dksy4+wgGpQB2lmYoO4TSweFg/mZITdpGHomw/cNBJZj1icA==}
|
|
||||||
dependencies:
|
|
||||||
tslib: 2.3.0
|
|
||||||
zrender: 5.6.0
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/entities@4.5.0:
|
|
||||||
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
|
|
||||||
engines: {node: '>=0.12'}
|
|
||||||
|
|
||||||
/esbuild@0.21.5:
|
|
||||||
resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
|
|
||||||
engines: {node: '>=12'}
|
|
||||||
hasBin: true
|
|
||||||
requiresBuild: true
|
|
||||||
optionalDependencies:
|
|
||||||
'@esbuild/aix-ppc64': 0.21.5
|
|
||||||
'@esbuild/android-arm': 0.21.5
|
|
||||||
'@esbuild/android-arm64': 0.21.5
|
|
||||||
'@esbuild/android-x64': 0.21.5
|
|
||||||
'@esbuild/darwin-arm64': 0.21.5
|
|
||||||
'@esbuild/darwin-x64': 0.21.5
|
|
||||||
'@esbuild/freebsd-arm64': 0.21.5
|
|
||||||
'@esbuild/freebsd-x64': 0.21.5
|
|
||||||
'@esbuild/linux-arm': 0.21.5
|
|
||||||
'@esbuild/linux-arm64': 0.21.5
|
|
||||||
'@esbuild/linux-ia32': 0.21.5
|
|
||||||
'@esbuild/linux-loong64': 0.21.5
|
|
||||||
'@esbuild/linux-mips64el': 0.21.5
|
|
||||||
'@esbuild/linux-ppc64': 0.21.5
|
|
||||||
'@esbuild/linux-riscv64': 0.21.5
|
|
||||||
'@esbuild/linux-s390x': 0.21.5
|
|
||||||
'@esbuild/linux-x64': 0.21.5
|
|
||||||
'@esbuild/netbsd-x64': 0.21.5
|
|
||||||
'@esbuild/openbsd-x64': 0.21.5
|
|
||||||
'@esbuild/sunos-x64': 0.21.5
|
|
||||||
'@esbuild/win32-arm64': 0.21.5
|
|
||||||
'@esbuild/win32-ia32': 0.21.5
|
|
||||||
'@esbuild/win32-x64': 0.21.5
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/estree-walker@2.0.2:
|
|
||||||
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
|
|
||||||
|
|
||||||
/fsevents@2.3.3:
|
|
||||||
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
|
|
||||||
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
|
|
||||||
os: [darwin]
|
|
||||||
requiresBuild: true
|
|
||||||
dev: true
|
|
||||||
optional: true
|
|
||||||
|
|
||||||
/he@1.2.0:
|
|
||||||
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
|
|
||||||
hasBin: true
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/html2canvas@1.4.1:
|
|
||||||
resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==}
|
|
||||||
engines: {node: '>=8.0.0'}
|
|
||||||
dependencies:
|
|
||||||
css-line-break: 2.1.0
|
|
||||||
text-segmentation: 1.0.3
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/magic-string@0.30.11:
|
|
||||||
resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
|
|
||||||
dependencies:
|
|
||||||
'@jridgewell/sourcemap-codec': 1.5.0
|
|
||||||
|
|
||||||
/minimatch@9.0.5:
|
|
||||||
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
|
|
||||||
engines: {node: '>=16 || 14 >=14.17'}
|
|
||||||
dependencies:
|
|
||||||
brace-expansion: 2.0.1
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/muggle-string@0.4.1:
|
|
||||||
resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/nanoid@3.3.7:
|
|
||||||
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
|
|
||||||
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
/path-browserify@1.0.1:
|
|
||||||
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/picocolors@1.1.0:
|
|
||||||
resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==}
|
|
||||||
|
|
||||||
/postcss@8.4.47:
|
|
||||||
resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
|
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
|
||||||
dependencies:
|
|
||||||
nanoid: 3.3.7
|
|
||||||
picocolors: 1.1.0
|
|
||||||
source-map-js: 1.2.1
|
|
||||||
|
|
||||||
/rollup@4.23.0:
|
|
||||||
resolution: {integrity: sha512-vXB4IT9/KLDrS2WRXmY22sVB2wTsTwkpxjB8Q3mnakTENcYw3FRmfdYDy/acNmls+lHmDazgrRjK/yQ6hQAtwA==}
|
|
||||||
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
|
|
||||||
hasBin: true
|
|
||||||
dependencies:
|
|
||||||
'@types/estree': 1.0.6
|
|
||||||
optionalDependencies:
|
|
||||||
'@rollup/rollup-android-arm-eabi': 4.23.0
|
|
||||||
'@rollup/rollup-android-arm64': 4.23.0
|
|
||||||
'@rollup/rollup-darwin-arm64': 4.23.0
|
|
||||||
'@rollup/rollup-darwin-x64': 4.23.0
|
|
||||||
'@rollup/rollup-linux-arm-gnueabihf': 4.23.0
|
|
||||||
'@rollup/rollup-linux-arm-musleabihf': 4.23.0
|
|
||||||
'@rollup/rollup-linux-arm64-gnu': 4.23.0
|
|
||||||
'@rollup/rollup-linux-arm64-musl': 4.23.0
|
|
||||||
'@rollup/rollup-linux-powerpc64le-gnu': 4.23.0
|
|
||||||
'@rollup/rollup-linux-riscv64-gnu': 4.23.0
|
|
||||||
'@rollup/rollup-linux-s390x-gnu': 4.23.0
|
|
||||||
'@rollup/rollup-linux-x64-gnu': 4.23.0
|
|
||||||
'@rollup/rollup-linux-x64-musl': 4.23.0
|
|
||||||
'@rollup/rollup-win32-arm64-msvc': 4.23.0
|
|
||||||
'@rollup/rollup-win32-ia32-msvc': 4.23.0
|
|
||||||
'@rollup/rollup-win32-x64-msvc': 4.23.0
|
|
||||||
fsevents: 2.3.3
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/sax@1.4.1:
|
|
||||||
resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/semver@7.6.3:
|
|
||||||
resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
|
|
||||||
engines: {node: '>=10'}
|
|
||||||
hasBin: true
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/source-map-js@1.2.1:
|
|
||||||
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
|
|
||||||
engines: {node: '>=0.10.0'}
|
|
||||||
|
|
||||||
/text-segmentation@1.0.3:
|
|
||||||
resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==}
|
|
||||||
dependencies:
|
|
||||||
utrie: 1.0.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/to-fast-properties@2.0.0:
|
|
||||||
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
|
|
||||||
engines: {node: '>=4'}
|
|
||||||
|
|
||||||
/tslib@2.3.0:
|
|
||||||
resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/typescript@5.6.2:
|
|
||||||
resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==}
|
|
||||||
engines: {node: '>=14.17'}
|
|
||||||
hasBin: true
|
|
||||||
|
|
||||||
/undici-types@6.19.8:
|
|
||||||
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/utrie@1.0.2:
|
|
||||||
resolution: {integrity: sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==}
|
|
||||||
dependencies:
|
|
||||||
base64-arraybuffer: 1.0.2
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/vite@5.4.8(@types/node@22.7.4):
|
|
||||||
resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==}
|
|
||||||
engines: {node: ^18.0.0 || >=20.0.0}
|
|
||||||
hasBin: true
|
|
||||||
peerDependencies:
|
|
||||||
'@types/node': ^18.0.0 || >=20.0.0
|
|
||||||
less: '*'
|
|
||||||
lightningcss: ^1.21.0
|
|
||||||
sass: '*'
|
|
||||||
sass-embedded: '*'
|
|
||||||
stylus: '*'
|
|
||||||
sugarss: '*'
|
|
||||||
terser: ^5.4.0
|
|
||||||
peerDependenciesMeta:
|
|
||||||
'@types/node':
|
|
||||||
optional: true
|
|
||||||
less:
|
|
||||||
optional: true
|
|
||||||
lightningcss:
|
|
||||||
optional: true
|
|
||||||
sass:
|
|
||||||
optional: true
|
|
||||||
sass-embedded:
|
|
||||||
optional: true
|
|
||||||
stylus:
|
|
||||||
optional: true
|
|
||||||
sugarss:
|
|
||||||
optional: true
|
|
||||||
terser:
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
'@types/node': 22.7.4
|
|
||||||
esbuild: 0.21.5
|
|
||||||
postcss: 8.4.47
|
|
||||||
rollup: 4.23.0
|
|
||||||
optionalDependencies:
|
|
||||||
fsevents: 2.3.3
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/vscode-uri@3.0.8:
|
|
||||||
resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/vue-router@4.4.5(vue@3.5.10):
|
|
||||||
resolution: {integrity: sha512-4fKZygS8cH1yCyuabAXGUAsyi1b2/o/OKgu/RUb+znIYOxPRxdkytJEx+0wGcpBE1pX6vUgh5jwWOKRGvuA/7Q==}
|
|
||||||
peerDependencies:
|
|
||||||
vue: ^3.2.0
|
|
||||||
dependencies:
|
|
||||||
'@vue/devtools-api': 6.6.4
|
|
||||||
vue: 3.5.10(typescript@5.6.2)
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/vue-tsc@2.1.6(typescript@5.6.2):
|
|
||||||
resolution: {integrity: sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==}
|
|
||||||
hasBin: true
|
|
||||||
peerDependencies:
|
|
||||||
typescript: '>=5.0.0'
|
|
||||||
dependencies:
|
|
||||||
'@volar/typescript': 2.4.5
|
|
||||||
'@vue/language-core': 2.1.6(typescript@5.6.2)
|
|
||||||
semver: 7.6.3
|
|
||||||
typescript: 5.6.2
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/vue@3.5.10(typescript@5.6.2):
|
|
||||||
resolution: {integrity: sha512-Vy2kmJwHPlouC/tSnIgXVg03SG+9wSqT1xu1Vehc+ChsXsRd7jLkKgMltVEFOzUdBr3uFwBCG+41LJtfAcBRng==}
|
|
||||||
peerDependencies:
|
|
||||||
typescript: '*'
|
|
||||||
peerDependenciesMeta:
|
|
||||||
typescript:
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
'@vue/compiler-dom': 3.5.10
|
|
||||||
'@vue/compiler-sfc': 3.5.10
|
|
||||||
'@vue/runtime-dom': 3.5.10
|
|
||||||
'@vue/server-renderer': 3.5.10(vue@3.5.10)
|
|
||||||
'@vue/shared': 3.5.10
|
|
||||||
typescript: 5.6.2
|
|
||||||
|
|
||||||
/zrender@5.6.0:
|
|
||||||
resolution: {integrity: sha512-uzgraf4njmmHAbEUxMJ8Oxg+P3fT04O+9p7gY+wJRVxo8Ge+KmYv0WJev945EH4wFuc4OY2NLXz46FZrWS9xJg==}
|
|
||||||
dependencies:
|
|
||||||
tslib: 2.3.0
|
|
||||||
dev: false
|
|
@ -1 +0,0 @@
|
|||||||
http://127.0.0.1:8088
|
|
@ -1 +0,0 @@
|
|||||||
<svg t="1727822038069" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4294" width="500" height="500"><path d="M131.437714 1024h761.124572v-72.704H131.437714V1024z m792.868572-1024H99.766857C44.617143 0 0 44.836571 0 99.913143v604.745143C0 759.734857 44.763429 804.571429 99.693714 804.571429h824.612572C979.236571 804.571429 1024 759.734857 1024 704.658286V99.913143C1024 44.763429 979.382857 0 924.306286 0z m49.371428 475.428571H682.057143L572.854857 297.398857 357.595429 590.043429 243.126857 475.428571H71.972571v-72.704h201.289143l76.068572 76.068572 228.790857-311.222857L722.651429 402.724571h251.172571V475.428571z" p-id="4295" fill="#a2d8f4"></path></svg>
|
|
Before Width: | Height: | Size: 710 B |
@ -1 +0,0 @@
|
|||||||
<svg t="1728071238053" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8448" width="500" height="500"><path d="M973.180137 514.739063L509.228934 50.787861c-11.980201-12.082596-28.260987-18.840658-45.258537-18.738263H96.065593c-35.326234 0-63.9968 28.670566-63.996801 63.9968v368.007199c0 16.99755 6.655667 33.278336 18.738263 45.258537l463.951203 463.951203c24.984351 24.984351 65.532723 24.984351 90.517074 0l368.0072-368.0072c24.881956-24.984351 24.881956-65.532723-0.102395-90.517074zM271.979997 335.957602c-44.132193 0-79.970401-35.838208-79.970402-79.970401s35.838208-79.970401 79.970402-79.970402c44.132193 0 79.970401 35.838208 79.970401 79.970402 0.102395 44.132193-35.735813 79.970401-79.970401 79.970401z" fill="#2c2c2c" p-id="8449"></path><path d="M901.298931 469.275736L469.294931 901.279736l80.072796 79.970401h31.947203l399.954402-399.954402v-31.947202z" fill="#2c2c2c" p-id="8450"></path><path d="M112.039194 335.957602H31.966398c-8.80596 0.20479-15.768812 7.577221-15.564022 16.383181 0.20479 8.498775 7.065247 15.359232 15.564022 15.564022h79.970401c8.80596-0.20479 15.768812-7.577221 15.564022-16.383181-0.102395-8.498775-6.962852-15.359232-15.461627-15.564022zM511.993596 480.027199H383.999996c-8.80596 0.20479-15.768812 7.577221-15.564022 16.38318 0.20479 8.498775 7.065247 15.359232 15.564022 15.564022h127.9936c8.80596 0.20479 16.178391-6.758062 16.383181-15.564022s-6.758062-16.178391-15.564022-16.38318c-0.307185-0.102395-0.511974-0.102395-0.819159 0z m63.9968-127.993601h-15.973601c-8.80596 0-15.973601 7.167642-15.973601 15.973602s7.167642 15.973601 15.973601 15.973601h15.973601c8.80596 0 15.973601-7.167642 15.973602-15.973601s-7.167642-15.973601-15.973602-15.973602z m15.973602-208.066396h-96.046398c-8.80596 0-15.973601 7.167642-15.973601 15.973601s7.167642 15.973601 15.973601 15.973601h96.046398c8.80596 0 15.973601-7.167642 15.973601-15.973601s-7.167642-15.973601-15.973601-15.973601z m-383.980801-48.023199h-32.049598c-8.80596 0.20479-15.768812 7.577221-15.564022 16.383181 0.20479 8.498775 7.065247 15.359232 15.564022 15.564021H207.880802c8.80596 0.20479 16.178391-6.758062 16.383181-15.564021 0.20479-8.80596-6.758062-16.178391-15.564022-16.383181h-0.716764zM383.999996 719.938403h-79.970402c-8.80596 0-15.973601 7.167642-15.973601 15.973601s7.167642 15.973601 15.973601 15.973602H383.999996c8.80596 0 15.973601-7.167642 15.973601-15.973602s-7.167642-15.973601-15.973601-15.973601z m352.033598 79.970402h-79.970401c-8.80596 0-15.973601 7.167642-15.973602 15.973601s7.167642 15.973601 15.973602 15.973601h79.970401c8.80596 0 15.973601-7.167642 15.973601-15.973601s-7.167642-15.973601-15.973601-15.973601z m-64.099195-143.967202h48.023199c8.80596 0.20479 16.178391-6.758062 16.383181-15.564022s-6.758062-16.178391-15.564022-16.383181H671.934399c-8.80596-0.20479-16.178391 6.758062-16.383181 15.564022s6.758062 16.178391 15.564022 16.383181h0.819159z" fill="#2c2c2c" p-id="8451"></path><path d="M995.809405 492.109795L531.858203 28.158592C513.939099 10.137093 489.466723 0 463.970397 0H96.065593C43.025045 0 0.019195 43.00585 0.019195 96.046398v368.007199c0 25.496325 10.137093 49.866307 28.158592 67.887806l463.951202 463.951202c37.476526 37.476526 98.299085 37.476526 135.775612 0l368.007199-368.007199c37.374131-37.476526 37.374131-98.299085-0.102395-135.775611zM470.011695 883.258237L73.436324 486.580471c-6.041298-5.938903-9.420329-14.130493-9.420329-22.629269V96.046398c0-17.714314 14.335283-31.947203 31.947203-31.947203h368.007199c8.498775 0 16.587971 3.379031 22.629269 9.420329L883.277432 469.9925 470.011695 883.258237zM950.550868 582.626869L582.646064 950.531673c-12.492175 12.492175-32.766362 12.492175-45.258538 0l-44.644167-44.644167 413.163342-413.265737 44.644167 44.644168c12.59457 12.59457 12.59457 32.868757 0 45.360932zM271.979997 159.940803c-53.040548 0-95.944003 43.00585-95.944003 96.046398s43.00585 95.944003 96.046398 95.944002 95.944003-43.00585 95.944003-96.046397c0-52.938153-43.00585-95.944003-96.046398-95.944003z m0 160.043198c-35.326234 0-63.9968-28.670566-63.9968-63.9968s28.670566-63.9968 63.9968-63.996801 63.9968 28.670566 63.9968 63.996801-28.670566 63.9968-63.9968 63.9968z" fill="#2c2c2c" p-id="8452"></path></svg>
|
|
Before Width: | Height: | Size: 4.1 KiB |
@ -1 +0,0 @@
|
|||||||
<svg t="1727943332955" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4336" width="500" height="500"><path d="M731.546 588.952C782.032 501.857 806 432.632 806 384c0-162.372-131.628-294-294-294S218 221.628 218 384c0 48.633 23.968 117.857 74.454 204.952C341.914 674.28 415.131 773.963 512 887.432c96.869-113.469 170.085-213.153 219.546-298.48zM549.64 981.52a50 50 0 0 1-4.727 4.727c-20.788 18.177-52.375 16.06-70.553-4.727C243.453 717.45 128 518.277 128 384 128 171.923 299.923 0 512 0s384 171.923 384 384c0 134.277-115.453 333.45-346.36 597.519zM512 544c88.366 0 160-71.634 160-160s-71.634-160-160-160-160 71.634-160 160 71.634 160 160 160z m0-90c-38.66 0-70-31.34-70-70s31.34-70 70-70 70 31.34 70 70-31.34 70-70 70z" p-id="4337"></path></svg>
|
|
Before Width: | Height: | Size: 787 B |
@ -1 +0,0 @@
|
|||||||
<svg t="1728073281593" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9684" width="500" height="500"><path d="M981.333333 789.333333h-106.666666V256c0-59.733333-46.933333-106.666667-106.666667-106.666667H234.666667V42.666667c0-25.6-17.066667-42.666667-42.666667-42.666667s-42.666667 17.066667-42.666667 42.666667v106.666666H42.666667c-25.6 0-42.666667 17.066667-42.666667 42.666667s17.066667 42.666667 42.666667 42.666667h106.666666V768c0 59.733333 46.933333 106.666667 106.666667 106.666667h533.333333V981.333333c0 25.6 17.066667 42.666667 42.666667 42.666667s42.666667-17.066667 42.666667-42.666667v-106.666666H981.333333c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667z m-213.333333-554.666666c12.8 0 21.333333 8.533333 21.333333 21.333333v341.333333l-145.066666-140.8c-17.066667-17.066667-42.666667-17.066667-59.733334 0l-140.8 145.066667L384 541.866667c-17.066667-17.066667-38.4-17.066667-55.466667-4.266667l-89.6 72.533333V234.666667H768z m-512 554.666666c-12.8 0-21.333333-8.533333-21.333333-21.333333v-42.666667l115.2-93.866666 64 64c8.533333 8.533333 17.066667 12.8 29.866666 12.8s21.333333-4.266667 29.866667-12.8l140.8-145.066667 174.933333 166.4v72.533333H256z" p-id="9685"></path><path d="M384 482.133333c51.2 0 93.866667-42.666667 93.866667-93.866666s-42.666667-93.866667-93.866667-93.866667-93.866667 38.4-93.866667 89.6 42.666667 98.133333 93.866667 98.133333z m0-128c17.066667 0 34.133333 12.8 34.133333 34.133334s-17.066667 29.866667-34.133333 29.866666-34.133333-17.066667-34.133333-34.133333 17.066667-29.866667 34.133333-29.866667z" p-id="9686"></path></svg>
|
|
Before Width: | Height: | Size: 1.6 KiB |
@ -1 +0,0 @@
|
|||||||
<svg t="1728061797541" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16315" width="500" height="500"><path d="M378.327044 615.997446v-103.014401l-74.168321 74.260481c7.9872 5.56032 15.52384 10.1376 22.60992 13.84448 7.08608 3.72736 13.7216 6.6048 19.89632 8.78592 6.17472 2.2016 11.90912 3.6864 17.182721 4.66944 5.2736 0.96256 10.10688 1.39264 14.47936 1.45408m379.217924-8.56064c0.13312 0.1024 0.86016 0.7168 2.19136 1.56672 1.3312 0.86016 3.29728 1.9456 5.89824 3.03104 2.59072 1.08544 5.8368 2.1504 9.74848 2.94912 3.91168 0.79872 8.4992 1.3312 13.7728 1.3312 4.4032 0 9.2672-0.39936 14.592-1.32096 5.3248-0.93184 11.12064-2.4064 17.36704-4.58752a152.053762 152.053762 0 0 0 20.16256-8.82688 213.575682 213.575682 0 0 0 22.947841-14.0288L807.936008 532.418565 621.383686 345.169923l-81.858561 81.879041-110.417921-113.868801L151.982082 587.161606a213.391362 213.391362 0 0 0 22.91712 14.0288c7.17824 3.74784 13.89568 6.63552 20.14208 8.82688 6.2464 2.17088 12.032 3.65568 17.3568 4.57728 5.3248 0.93184 10.17856 1.3312 14.58176 1.3312a68.505601 68.505601 0 0 0 13.76256-1.3312c3.91168-0.79872 7.15776-1.87392 9.758721-2.94912 2.59072-1.08544 4.54656-2.18112 5.888-3.03104 1.3312-0.84992 2.05824-1.46432 2.19136-1.57696l125.102081-125.102081 44.73856-42.905601 123.883522 123.893762 43.27424 44.50304c0.13312 0.1024 0.86016 0.7168 2.19136 1.56672 1.34144 0.86016 3.29728 1.9456 5.89824 3.03104 2.59072 1.08544 5.8368 2.1504 9.74848 2.94912 3.91168 0.79872 8.4992 1.3312 13.78304 1.3312 4.4032 0 9.2672-0.39936 14.592-1.32096 5.3248-0.93184 11.1104-2.4064 17.367041-4.58752a152.371202 152.371202 0 0 0 20.15232-8.82688 213.575682 213.575682 0 0 0 22.9376-14.0288l-99.399681-97.341441 18.50368-18.50368 86.026241 86.016001 50.176001 49.7152m-1.0752-518.860805L1000.85761 512.000005 756.480008 935.424009h-488.960005L23.1424 512.000005 267.520003 88.576001z" p-id="16316"></path><path d="M603.985926 491.376645l-65.095681-64.972801 4.62848-4.6592 65.556481 64.839681z" p-id="16317"></path></svg>
|
|
Before Width: | Height: | Size: 2.0 KiB |
@ -1 +0,0 @@
|
|||||||
<svg t="1727945382740" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9321" width="500" height="500"><path d="M373.279603 324.241914c36.285052 30.618137 94.83984 62.536026 145.66011 82.450213-43.715629-31.725925-87.219299-67.485078-130.642985-114.288116 36.145079-77.077241 79.304815-183.536856 123.800295-292.208049 72.546109 185.360507 207.760218 464.315093 388.897534 795.28372-49.210577-27.020826-93.79804-42.40588-139.833225-54.293604 15.257079 8.708333 51.320173 28.388564 74.459743 44.207535 36.553001 24.989215 70.382523 52.315983 102.194431 78.482972 28.394563 52.210003 57.137059 105.499799 86.189497 159.729415-144.484334-83.657981-284.891449-151.425005-399.923423-172.356997 37.658789-208.902-109.738987-332.1504-193.482952-199.181861-32.245826 51.196197-40.966156 135.548045-25.675084 198.228044C259.485393 878.301823 117.18464 956.696812 0.20104 1023.608c136.259909-246.906722 274.02353-497.202796 373.078563-699.366086z" p-id="9322"></path></svg>
|
|
Before Width: | Height: | Size: 1006 B |
@ -1 +0,0 @@
|
|||||||
<svg t="1728061341331" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="8375" width="500" height="500"><path d="M928.768 750.592c-1.536 4.096-21.504 74.24-70.656 145.92-43.008 62.464-87.04 124.928-156.672 125.952-68.608 1.024-90.624-40.96-168.96-40.96s-102.912 39.936-167.936 41.984c-67.072 2.56-118.784-68.096-161.792-130.048C115.2 767.488 47.616 534.528 138.24 378.88c44.544-77.824 124.928-127.488 211.968-129.024 65.536-1.024 128.512 44.544 168.448 44.544 40.96 0 116.736-55.296 196.608-47.104 33.28 1.536 126.976 13.824 186.88 101.376-4.608 3.072-111.616 66.56-110.592 195.072 1.024 155.136 135.68 206.336 137.216 206.848m-266.24-586.24C698.368 120.32 722.432 59.904 715.776 0c-51.2 2.048-114.176 34.304-151.04 77.824-32.768 37.888-61.952 99.328-53.76 158.72 56.832 3.072 115.712-30.208 151.552-72.192" p-id="8376"></path></svg>
|
|
Before Width: | Height: | Size: 875 B |
Before Width: | Height: | Size: 5.6 KiB |
@ -1 +0,0 @@
|
|||||||
<svg t="1728061738726" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15126" width="500" height="500"><path d="M687.07344 29.713441c-73.564437-26.878698-148.888788-34.142346-222.069244-27.294678-84.827891 6.687676-126.201887 32.926405-123.738006 28.190634-138.713281 49.501602-255.987601 156.024443-310.256972 305.361209-96.667318 265.971117 40.286049 560.10087 305.809187 656.960179 265.715129 96.859308 559.364906-40.318047 656.096221-306.289164 96.731315-265.939119-40.222052-560.068872-305.873184-656.896182zM354.321558 944.837114a455.337945 455.337945 0 0 1-81.628046-39.710076l1.983903 1.119946c123.738006 9.50354 285.266182-18.975081 394.188907-120.922143 0 0 207.605944-165.879965 57.373221-438.122779 0 0 24.222827 109.722685-6.655678 199.958315 0 0-29.438574 122.746054-160.280236 158.360329-192.726665 52.509457-412.300029-82.332012-504.135581-147.736844-6.911665-67.164747-0.767963-136.537386 23.902842-204.278105 36.478233-100.347139 105.08291-178.679345 188.886851-231.252799-20.894988 146.5849-4.351789 281.586361 19.455058 338.127622 31.966452 75.804328 87.451764 164.248044 195.830514 175.575496 108.37875 11.391448 168.087858-90.01164 168.087858-90.01164 55.645305-84.475908 64.348883-205.782032 63.484925-208.72589-0.863958-2.975856-14.815282-10.975468-14.815282-10.975468-37.406188 151.416666-99.0992 201.974217-99.0992 201.974216-97.275288 93.915451-166.167951 28.798605-166.167951 28.798606-74.076412-79.580145-22.174926-208.853884-22.174926-208.853884 29.022594-88.059735 113.498502-216.917493 209.269863-282.450319 15.967227 3.935809 31.99845 6.39969 47.773686 12.127413a458.857774 458.857774 0 0 1 151.96064 92.443522l-0.319985-0.287986c-70.012609 25.566762-183.063133 79.580145-183.063133 79.580145-179.223319 75.516342-191.350731 189.686812-191.350731 189.686812-18.559101 117.658301 74.844375 67.836714 74.844375 67.836714 96.091346-46.813732 143.321058-192.662668 143.321057-192.662667-29.982548-5.727723-53.629402 3.423834-53.629402 3.423834-38.366142 94.715412-116.602352 133.625528-116.602352 133.625527-30.814507 16.287211-37.98216-12.511394-37.98216-12.511394-5.215747-21.598954 22.270921-25.246777 22.270921-25.246777 42.653934-16.607196 69.916613-61.405026 76.124313-79.708139 6.143702-18.335112 17.567149-19.807041 17.567149-19.807041a530.086324 530.086324 0 0 1 109.402701-22.622904l2.335887-0.191991c72.540486-8.927568 183.575108 25.694755 183.575108 25.694756 24.926793 10.015515 48.797636 17.503152 70.012608 23.518861 40.702028 101.723073 47.133717 217.493465 6.81567 328.528087-87.003786 239.348407-351.37498 362.830425-590.531396 275.698645z" p-id="15127"></path></svg>
|
|
Before Width: | Height: | Size: 2.6 KiB |
@ -1 +0,0 @@
|
|||||||
<svg t="1728061671403" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="14056" width="500" height="500"><path d="M512 0C229.282909 0 0 229.282909 0 512s229.282909 512 512 512 512-229.282909 512-512S794.717091 0 512 0z m-0.930909 48.826182h0.093091a3.258182 3.258182 0 0 0 0.837818 0c211.688727 0 390.237091 142.056727 445.44 335.918545a805.934545 805.934545 0 0 1-196.096 255.813818c-39.424 34.117818-82.525091 64.372364-129.861818 85.736728-47.383273 21.317818-99.421091 33.466182-151.133091 30.533818a260.654545 260.654545 0 0 1-105.704727-29.463273 850.664727 850.664727 0 0 0 236.357818-191.767273c44.497455-51.944727 83.362909-111.243636 98.443636-178.408727 7.68-33.605818 8.843636-68.887273 1.861818-102.725818a189.858909 189.858909 0 0 0-46.498909-91.461818 186.786909 186.786909 0 0 0-86.341818-51.106909 225.745455 225.745455 0 0 0-100.212364-3.630546c-66.234182 12.148364-125.346909 50.548364-172.450909 98.117818-83.176727 83.781818-134.516364 202.007273-125.067636 320 4.747636 58.973091 24.389818 116.875636 58.274909 165.422546 6.656 9.541818 14.056727 18.525091 21.736727 27.182545a755.339636 755.339636 0 0 1-143.639272 34.397091A462.941091 462.941091 0 0 1 511.069091 48.826182z m3.258182 94.021818c0.186182-0.046545 0.744727 0.093091 0.558545 0.046545 32.209455 0 64.558545 9.821091 90.112 29.184a148.945455 148.945455 0 0 1 49.710546 69.352728 191.767273 191.767273 0 0 1 8.936727 86.016c-6.656 57.856-35.84 111.150545-71.354182 157.928727-63.022545 82.757818-146.897455 149.085091-240.128 195.490909-8.843636 4.421818-17.966545 8.704-27.089454 12.753455a238.033455 238.033455 0 0 1-48.872728-60.276364c-27.461818-48.593455-36.491636-106.309818-31.185454-162.071273 5.399273-55.808 24.482909-109.661091 50.362182-159.650909 29.928727-57.902545 70.562909-112.546909 127.162181-143.825454a192.698182 192.698182 0 0 1 91.834182-24.994909z m457.541818 316.974545c1.954909 17.082182 3.304727 34.397091 3.304727 51.991273 0 255.860364-207.220364 463.266909-463.127273 463.266909a461.591273 461.591273 0 0 1-353.28-164.305454 844.241455 844.241455 0 0 0 147.549091-49.338182c21.457455 16.104727 45.009455 29.509818 70.144 39.098182 74.007273 28.392727 157.882182 24.203636 232.541091-1.629091 74.612364-25.832727 140.613818-72.098909 198.097455-125.905455a850.106182 850.106182 0 0 0 164.770909-213.178182z" p-id="14057"></path></svg>
|
|
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 10 KiB |
@ -1 +0,0 @@
|
|||||||
<svg t="1727944988493" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4321" width="500" height="500"><path d="M567.612524 736.945941c-81.946878 38.109618-158.134117 37.725642-209.330917 34.013874-61.052184-4.415724-110.137116-21.11868-131.735766-35.741766a29.086182 29.086182 0 1 0-32.605962 48.15699c34.685832 23.486532 96.057996 40.95744 160.14999 45.565152 10.87932 0.767952 22.782576 1.27992 35.645773 1.27992 55.772514 0 126.616086-5.311668 202.419348-40.573464a29.11818 29.11818 0 0 0-24.542466-52.732704z m323.275795-43.101306c2.783826-252.656209 28.766202-730.162365-454.947565-691.572777C-41.629398 40.701456 84.986688 545.213924 77.883132 714.163365 71.579526 803.533779 41.91738 912.80695 0 1024h129.079933c13.27917-47.133054 23.03856-93.722142 27.230298-138.135367 7.775514 5.43966 16.094994 10.687332 24.990438 15.711019 14.463096 8.511468 26.87832 19.83876 40.029498 31.83801 30.750078 28.030248 65.5959 59.772264 133.719642 63.740016 4.575714 0.255984 9.183426 0.383976 13.663146 0.383976 68.891694 0 115.99275-30.142116 153.878383-54.364602 18.142866-11.615274 33.821886-21.630648 48.572964-26.462346 41.91738-13.11918 78.523092-34.301856 105.881383-61.244173a180.468721 180.468721 0 0 0 11.967252-12.95919c15.231048 55.868508 36.125742 118.744578 59.292294 181.492657H1023.936004c-66.171864-102.23361-134.423599-202.355353-133.047685-330.155365zM124.088244 556.381226v-0.031998c-4.735704-82.458846 34.71783-151.830511 88.122493-154.934316s100.537716 61.212174 105.305418 143.67102v0.031998c0.255984 4.447722 0.351978 8.831448 0.383976 13.215174a206.707081 206.707081 0 0 0-45.885132 17.630898l-0.15999-1.823886v-0.031998c-4.575714-46.813074-29.566152-82.138866-55.83651-78.939066s-43.869258 43.741266-39.293544 90.55434v0.031998c1.983876 20.414724 7.871508 38.621586 16.030998 52.444722-2.047872 1.5999-7.775514 5.823636-14.3991 10.655335l-18.302856 13.43916c-19.870758-26.07837-33.501906-63.580026-35.933755-105.881383z m541.118181 203.827261c-1.887882 43.581276-58.908318 84.570714-111.577027 101.049684l-0.287982 0.095994c-21.886632 7.103556-41.43741 19.614774-62.108118 32.829948-34.71783 22.23861-70.651584 45.213174-122.520343 45.213175-3.391788 0-6.87957-0.095994-10.335354-0.287982-47.51703-2.783826-69.723642-23.03856-97.881882-48.668959-14.847072-13.535154-30.174114-27.51828-49.980876-39.133554l-0.415974-0.255984c-42.71733-24.094494-69.211674-54.07662-70.907568-80.186988-0.831948-12.991188 4.927692-24.222486 17.182926-33.405912 26.622336-19.966752 44.47722-33.021936 56.284482-41.661396 13.11918-9.5994 17.054934-12.47922 19.99875-15.263046 2.111868-1.983876 4.351728-4.191738 6.815574-6.55959 24.446472-23.774514 65.371914-63.548028 128.15199-63.548029 38.3976 0 80.890944 14.783076 126.168115 43.901257 21.310668 13.887132 39.869508 20.286732 63.388038 28.382226 16.15899 5.567652 34.461846 11.903256 58.972314 22.3986l0.383976 0.15999c22.87857 9.407412 49.884882 26.55834 48.668959 54.940566z m-12.607212-102.3936a188.020249 188.020249 0 0 0-13.759141-6.271608 806.765577 806.765577 0 0 0-54.524592-20.990689 133.367665 133.367665 0 0 0 13.631148-57.244422v-0.031998c1.11993-52.380726-25.27842-94.906068-59.004312-94.970064s-61.948128 42.301356-63.068058 94.682082v0.031998l-0.031998 5.11968a293.805637 293.805637 0 0 0-61.148178-20.766702 350.890069 350.890069 0 0 1-0.255984-5.91963v-0.063996c-1.951878-95.418036 56.604462-174.389101 130.743828-176.404975s135.831511 73.691394 137.751391 169.109431v0.063996c0.863946 43.133304-10.655334 82.87482-30.366102 113.656897z" fill="#5D5D5D" p-id="4322"></path></svg>
|
|
Before Width: | Height: | Size: 3.5 KiB |
@ -1 +0,0 @@
|
|||||||
<svg t="1728061281077" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6300" width="500" height="500"><path d="M0 0v1024h288V288h368V0H0z m368 368V1024h288V368h-288zM736 0v1024H1024V0h-288z" p-id="6301"></path></svg>
|
|
Before Width: | Height: | Size: 260 B |
@ -1 +0,0 @@
|
|||||||
<svg t="1728061313768" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7370" width="500" height="500"><path d="M0 72.234667v178.901333h77.994667c54.442667 0 64.085333 36.906667 64.085333 87.808l0.426667 316.245333c0 163.84 146.773333 296.576 327.68 296.576h446.464c57.258667 0 107.349333-35.413333 107.349333-89.941333V371.456c0-163.84-146.773333-296.533333-327.808-296.533333h-187.946667v-0.554667L0 72.234667z m244.181333 109.482666h89.685334V632.32c0 60.288 41.984 107.093333 91.264 107.093333l305.92 1.28c63.829333 0 113.536-43.093333 113.536-94.122666l-0.512-239.232a51.2 51.2 0 0 0-16.469334-38.826667 52.224 52.224 0 0 0-39.125333-16.384c-15.957333 0-27.733333 5.12-39.168 16.384a51.2 51.2 0 0 0-16.469333 38.826667v204.714666h-94.848V407.381333c0-15.530667-5.290667-27.648-16.597334-38.826666a51.541333 51.541333 0 0 0-39.125333-16.384c-15.616 0-27.605333 5.12-38.997333 16.384-11.306667 11.178667-16.64 23.296-16.64 38.826666v204.714667H431.786667V407.381333c0-40.533333 15.36-76.458667 44.458666-105.216a146.986667 146.986667 0 0 1 106.026667-43.605333 146.346667 146.346667 0 0 1 102.954667 41.386667 147.114667 147.114667 0 0 1 103.253333-41.386667c40.704 0 76.928 14.848 106.026667 43.605333a144.426667 144.426667 0 0 1 44.416 105.216l0.384 255.616c-4.48 42.837333-22.997333 80.810667-54.613334 112.512h-0.085333a186.325333 186.325333 0 0 1-135.424 56.064H408.490667v-1.621333c-41.642667-4.394667-78.762667-22.144-109.653334-51.925333-36.053333-35.2-54.656-78.762667-54.656-128.426667V181.76z" p-id="7371"></path></svg>
|
|
Before Width: | Height: | Size: 1.5 KiB |
@ -1 +0,0 @@
|
|||||||
<svg t="1727945411894" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10356" width="500" height="500"><path d="M510.72 1.792C229.156571 1.792 0.841143 230.070857 0.841143 511.634286s228.278857 509.878857 509.878857 509.878857c281.563429 0 509.842286-228.278857 509.842286-509.878857S792.283429 1.792 510.72 1.792z m2.450286 70.619429c242.614857 0 439.442286 196.681143 439.442285 439.259428 0 242.614857-196.864 439.259429-439.442285 439.259429-130.998857 0-248.539429-57.417143-329.033143-148.370286 33.097143-25.673143 88.429714-19.419429 156.598857-11.666286 32.658286 3.730286 69.924571 7.972571 108.361143 8.813715 107.410286 0.621714 222.976-18.980571 294.290286-50.139429 46.116571-20.224 75.629714-33.536 94.098285-50.322286 6.656-5.449143 10.130286-14.592 13.714286-24.027428l2.450286-6.4c2.998857-7.643429 7.277714-24.064 9.216-33.060572 0.841143-3.913143 1.28-8.155429-1.499429-10.313143l-9.947428 1.865143c-31.305143 18.761143-109.494857 54.491429-182.710858 55.954286-90.770286 1.901714-273.700571-91.392-292.754285-101.229714l-1.865143-2.267429-37.741714-89.563428c131.657143 86.710857 240.822857 134.692571 324.498285 142.153142 93.037714 8.265143 165.595429-42.532571 196.608-64.219428 6.070857-4.132571 10.678857-7.387429 12.580572-8.082286l2.048-3.401143c-5.156571-32.694857-53.942857-190.902857-90.697143-228.937143-10.203429-10.422857-18.285714-20.553143-34.742857-30.244571-133.010286-77.531429-448.877714-124.233143-463.652572-126.390857l-2.450285 0.768-0.950858 2.048-1.316571 72.850286a1864.155429 1864.155429 0 0 0-92.598857-27.794286c62.829714-77.714286 159.085714-146.688 327.533714-146.688z m116.077714 232.484571a135.643429 135.643429 0 0 1 137.289143 139.885714 134.326857 134.326857 0 0 1-42.825143 93.878857 134.107429 134.107429 0 0 1-96.877714 36.425143 135.899429 135.899429 0 0 1-130.523429-139.885714 133.924571 133.924571 0 0 1 43.008-94.098286 133.376 133.376 0 0 1 89.965714-36.242285z m-3.584 39.789714a93.257143 93.257143 0 0 0-58.221714 25.161143 93.366857 93.366857 0 0 0-29.842286 65.536 94.573714 94.573714 0 0 0 90.88 97.645714c25.234286 0.768 49.152-8.045714 67.584-25.161142a93.842286 93.842286 0 0 0 29.878857-65.718858 94.464 94.464 0 0 0-91.062857-97.462857 96.804571 96.804571 0 0 0-9.216 0z m24.795429 47.140572c23.076571 0 41.691429 12.544 41.691428 27.977143 0 15.36-18.614857 27.977143-41.691428 27.977142-23.149714 0-41.874286-12.653714-41.874286-27.977142 0-15.433143 18.724571-27.977143 41.874286-27.977143z" p-id="10357"></path></svg>
|
|
Before Width: | Height: | Size: 2.5 KiB |
@ -1 +0,0 @@
|
|||||||
<svg t="1728061127184" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5302" width="500" height="500"><path d="M683.050667 571.136c67.285333 0 164.693333-13.909333 164.693333-93.952a75.306667 75.306667 0 0 0-1.706667-18.389333l-40.106666-174.08c-9.216-38.314667-17.322667-55.68-84.565334-89.301334-52.181333-26.666667-165.888-70.741333-199.509333-70.741333-31.274667 0-40.405333 40.362667-77.738667 40.362667-35.925333 0-62.592-30.122667-96.213333-30.122667-32.298667 0-53.333333 21.973333-69.546667 67.242667 0 0-45.226667 127.573333-51.072 146.090666a34.56 34.56 0 0 0-1.194666 10.453334c0 49.578667 195.285333 212.224 456.96 212.224m174.976-61.226667c9.301333 44.032 9.301333 48.64 9.301333 54.485333 0 75.306667-84.650667 117.12-195.968 117.12-251.52 0.170667-471.893333-147.242667-471.893333-244.650666a99.242667 99.242667 0 0 1 8.106666-39.466667C117.162667 401.706667 0 417.877333 0 521.258667c0 169.344 401.28 378.069333 718.976 378.069333 243.626667 0 305.024-110.165333 305.024-197.12 0-68.48-59.178667-146.133333-165.845333-192.512" p-id="5303"></path></svg>
|
|
Before Width: | Height: | Size: 1.1 KiB |
@ -1 +0,0 @@
|
|||||||
<svg t="1727945603402" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11437" width="500" height="500"><path d="M512 0c282.581333 0 512 229.418667 512 512s-229.418667 512-512 512S0 794.581333 0 512 229.418667 0 512 0z m139.904 754.346667a68.352 68.352 0 1 0 68.309333 118.4 68.352 68.352 0 0 0-68.309333-118.4z m-139.904-42.666667a199.04 199.04 0 0 1-84.096-18.56L380.416 778.24c39.68 19.584 84.394667 30.762667 131.584 30.762667a294.826667 294.826667 0 0 0 79.36-10.922667 95.573333 95.573333 0 0 1 46.72-67.712 95.744 95.744 0 0 1 81.92-6.656 295.765333 295.765333 0 0 0 88.32-192.64l-97.493333-1.408A199.637333 199.637333 0 0 1 512 711.68zM312.32 512a199.68 199.68 0 0 1 84.906667-163.413333L347.306667 264.917333a297.344 297.344 0 0 0-122.922667 172.16 94.72 94.72 0 0 1 35.413333 74.24c0 30.037333-13.824 56.277333-35.413333 74.197334a297.386667 297.386667 0 0 0 122.922667 172.117333l49.92-83.84A195.626667 195.626667 0 0 1 312.32 512z m-148.48-68.352a68.352 68.352 0 1 0 0 136.661333 68.352 68.352 0 0 0 0-136.661333zM512 312.32a199.637333 199.637333 0 0 1 198.826667 181.973333l97.493333-1.450666a296.490667 296.490667 0 0 0-88.32-192.682667A95.829333 95.829333 0 0 1 591.36 225.706667 303.957333 303.957333 0 0 0 512 215.04c-47.36 0-91.946667 11.093333-131.584 30.72l47.488 85.12A198.954667 198.954667 0 0 1 512 312.32z m139.904-42.709333a68.394667 68.394667 0 0 0 93.397333-24.96 68.437333 68.437333 0 0 0-118.485333-68.309334 68.266667 68.266667 0 0 0 25.088 93.269334z" fill="" p-id="11438"></path></svg>
|
|
Before Width: | Height: | Size: 1.5 KiB |
@ -1 +0,0 @@
|
|||||||
<svg t="1727945032638" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5297" width="500" height="500"><path d="M426.285714 574.857143v372L36.571429 893.142857v-318.285714h389.714285z m0-424.571429v376.571429H36.571429V204z m561.142857 424.571429v449.142857l-518.285714-71.428571v-377.714286h518.285714z m0-501.714286v453.714286H469.142857V144.571429z" p-id="5298"></path></svg>
|
|
Before Width: | Height: | Size: 421 B |
@ -1 +0,0 @@
|
|||||||
<svg t="1728061563073" class="icon" viewBox="0 0 1159 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10221" width="500" height="500"><path d="M304.867307 54.334925L237.629153 172.197198h614.90728l-66.461779-117.862273H304.867307zM154.42175 318.439431L63.649866 478.714677l84.564649 150.250054h32.649079l461.489694-310.5253H154.42175z m750.094168 0L442.964189 628.964731h498.857174L1026.128473 480.006128l-90.901593-161.566697h-30.709083zM230.842927 775.208844l72.926553 129.175156h481.207347l73.704807-129.175156H230.841047z" p-id="10222"></path></svg>
|
|
Before Width: | Height: | Size: 566 B |
@ -1 +0,0 @@
|
|||||||
<svg t="1727943359403" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6236" width="500" height="500"><path d="M423.844408 284.113794c-39.870006 0-72.156392 31.870406-72.156392 71.05778 0 39.25137 32.275719 71.05778 72.156392 71.05778 39.838008 0 72.124394-31.80641 72.124394-71.05778C495.968802 315.984201 463.693082 284.113794 423.844408 284.113794zM676.237121 624.651434l20.372314-20.062997c22.558872-22.185558 22.558872-58.183758 0-80.369315l-35.25157-34.686266c11.370098-19.433695 20.244321-40.307318 26.494675-62.439545l38.056764 0c31.870406 0 57.746446-25.438728 57.746446-56.807827l0-28.435911c0-31.369099-25.876039-56.871823-57.746446-56.871823l-37.619452 0c-5.941036-21.812242-14.495275-42.621869-25.556055-61.938236l33.875639-33.310334c22.558872-22.249555 22.558872-58.247755 0-80.369315l-20.372314-20.126994c-22.558872-22.185558-59.122377-22.185558-81.617252 0l-33.246338 32.681033c-20.276319-11.626086-42.216556-20.681633-65.40473-26.931986l0-38.184758C495.968802 25.438728 470.124761 0 438.254354 0l-28.841225 0c-31.870406 0-57.714447 25.438728-57.714447 56.807827l0 38.184758c-23.188174 6.250354-45.117744 15.316567-65.436728 26.931986l-33.182341-32.681033c-22.526874-22.185558-59.090378-22.185558-81.617252 0l-20.404313 20.126994c-22.526874 22.121561-22.526874 58.119761 0 80.369315l33.875639 33.310334c-11.028782 19.316367-19.593687 40.125994-25.534723 61.938236l-37.65145 0C89.834441 284.988418 64.022399 310.480476 64.022399 341.86024l0 28.435911c0 31.369099 25.812042 56.807827 57.714447 56.807827l38.088763 0c6.186358 22.121561 15.092578 42.995183 26.441345 62.439545l-35.219572 34.686266c-22.526874 22.185558-22.526874 58.183758 0 80.369315l20.404313 20.062997c22.526874 22.185558 59.090378 22.185558 81.617252 0l35.432895-34.878256c19.689683 10.996783 40.872623 19.625686 63.186174 25.556055l0 36.435511c0 31.369099 25.844041 56.807827 57.714447 56.807827l28.841225 0c31.870406 0 57.714447-25.438728 57.714447-56.807827l0-36.435511c22.34555-5.941036 43.496492-14.559272 63.154175-25.556055l35.496892 34.878256C617.114744 646.847658 653.678249 646.847658 676.237121 624.651434zM423.844408 513.222339c-87.654284 0-158.744063-70.001833-158.744063-156.237521 0-86.374348 71.089779-156.301518 158.744063-156.301518s158.712064 69.937836 158.712064 156.301518C582.556472 443.231171 511.498692 513.222339 423.844408 513.222339zM931.979001 818.519074l-18.249755 0c-2.879856-10.623469-6.996983-20.681633-12.372714-30.057164l16.372514-16.19119c10.996783-10.751462 10.996783-28.19059 0-38.995383l-9.876839-9.748846c-10.932786-10.751462-28.627902-10.751462-39.624686 0l-16.063197 15.871206c-9.812842-5.621052-20.500308-10.058164-31.689083-13.066014l0-18.495075c0-15.25257-12.564705-27.561289-27.9986-27.561289l-14.004633 0c-15.497892 0-27.9986 12.308718-27.9986 27.561289l0 18.495075c-11.25277 2.997183-21.876239 7.434295-31.753079 13.066014l-16.127194-15.871206c-10.879456-10.751462-28.627902-10.751462-39.560689 0l-9.940836 9.748846c-10.879456 10.815459-10.879456 28.243921 0 38.995383l16.436511 16.19119c-5.311734 9.375531-9.439528 19.433695-12.372714 30.057164L638.926987 818.519074c-15.433895 0-27.9986 12.308718-27.9986 27.561289l0 13.748646c0 15.25257 12.564705 27.561289 27.9986 27.561289l18.495075 0c2.997183 10.751462 7.316967 20.873623 12.810026 30.313151l-17.119144 16.809827c-10.879456 10.751462-10.879456 28.19059 0 38.995383l9.940836 9.684849c10.932786 10.815459 28.681233 10.815459 39.560689 0l17.247138-16.873823c9.503525 5.311734 19.753679 9.503525 30.622469 12.372714l0 17.684449c0 15.188574 12.500708 27.561289 27.9986 27.561289l14.004633 0c15.433895 0 27.9986-12.372714 27.9986-27.561289l0-17.684449c10.751462-2.879856 21.065614-7.06098 30.622469-12.372714l17.119144 16.873823c10.996783 10.815459 28.681233 10.815459 39.624686 0l9.876839-9.684849c10.996783-10.815459 10.996783-28.243921 0-38.995383l-17.065814-16.809827c5.503725-9.439528 9.812842-19.561689 12.810026-30.313151l18.495075 0c15.497892 0 27.9986-12.308718 27.9986-27.561289l0-13.748646C959.977601 830.838458 947.476893 818.519074 931.979001 818.519074zM785.490325 929.20154c-42.557872 0-76.998817-33.939636-76.998817-75.80421s34.440945-75.80421 76.998817-75.80421c42.493875 0 76.998817 33.939636 76.998817 75.80421S827.984201 929.20154 785.490325 929.20154zM785.490325 818.081763c-19.369699 0-34.995583 15.433895-34.995583 34.440945 0 19.06038 15.625886 34.440945 34.995583 34.440945 19.316367 0 34.995583-15.369899 34.995583-34.440945C820.485909 833.515657 804.796027 818.081763 785.490325 818.081763z" fill="#272636" p-id="6237"></path></svg>
|
|
Before Width: | Height: | Size: 4.5 KiB |
@ -1 +0,0 @@
|
|||||||
<svg t="1728070867266" class="icon" viewBox="0 0 1075 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2481" width="500" height="500"><path d="M486.58043 972.367932h-22.899578A489.640506 489.640506 0 0 1 0.720514 509.407595a482.619409 482.619409 0 0 1 134.048946-358.616034A482.511392 482.511392 0 0 1 486.58043 0.216034a486.940084 486.940084 0 0 1 486.075949 486.075949c0 13.286076-0.540084 26.896203-1.72827 40.398312a281.924051 281.924051 0 0 0-49.687763-53.144303A418.025316 418.025316 0 0 0 644.285071 102.075949v21.603376a108.016878 108.016878 0 0 1-110.933333 104.020253 108.016878 108.016878 0 0 0-110.933333 104.020253 54.008439 54.008439 0 0 1-55.412659 51.740085 108.016878 108.016878 0 0 0-110.933333 103.696202h291.64557a278.791561 278.791561 0 0 0-87.277637 203.719831 280.843882 280.843882 0 0 0 171.422784 259.240507 485.211814 485.211814 0 0 1-145.2827 22.251476zM93.93908 409.383966a42.234599 42.234599 0 0 0-42.450633 43.206751v0.972152A417.269198 417.269198 0 0 0 409.78043 870.616034v-64.810127a43.206751 43.206751 0 0 0-29.920675-41.370464 104.236287 104.236287 0 0 1-72.479325-100.779747v-34.349367a44.502954 44.502954 0 0 0-12.421941-30.892827L123.751738 422.562025a41.046414 41.046414 0 0 0-29.596624-12.854008z" p-id="2482"></path><path d="M768.072413 460.908017a256 256 0 1 0 256 256 256.216034 256.216034 0 0 0-256-256M742.472413 1024A332.691983 332.691983 0 1 1 1075.164396 691.308017a333.124051 333.124051 0 0 1-332.691983 332.691983" p-id="2483"></path><path d="M881.706168 819.308017a43.206751 43.206751 0 0 1-21.603375-5.832912l-142.798312-82.848945V548.293671a40.398312 40.398312 0 0 1 80.364557 0v143.122363l105.964557 61.56962a34.025316 34.025316 0 0 1 11.989873 49.903797 41.370464 41.370464 0 0 1-33.809283 16.526583" p-id="2484"></path></svg>
|
|
Before Width: | Height: | Size: 1.8 KiB |
@ -1,37 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
// import Nav from './components/Nav.vue'
|
|
||||||
console.log('App.vue')
|
|
||||||
const year = new Date().getFullYear()
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<h1 style="text-align: center">Server Status</h1>
|
|
||||||
<router-view/>
|
|
||||||
<footer>
|
|
||||||
<a href="https://github.com/snowykami/server-status-server">Server status dashboard</a><br>
|
|
||||||
© Copyright 2024-{{year}} <a href="https://sfkm.me" target="_blank">Snowykami</a> All Rights Reserved
|
|
||||||
</footer>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.logo {
|
|
||||||
height: 6em;
|
|
||||||
padding: 1.5em;
|
|
||||||
will-change: filter;
|
|
||||||
transition: filter 300ms;
|
|
||||||
}
|
|
||||||
.logo:hover {
|
|
||||||
filter: drop-shadow(0 0 2em #646cffaa);
|
|
||||||
}
|
|
||||||
.logo.vue:hover {
|
|
||||||
filter: drop-shadow(0 0 2em #42b883aa);
|
|
||||||
}
|
|
||||||
footer {
|
|
||||||
text-align: center;
|
|
||||||
padding: 1em;
|
|
||||||
color: #666;
|
|
||||||
}
|
|
||||||
a {
|
|
||||||
color: #36a7ec;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,56 +0,0 @@
|
|||||||
/// <reference types="node" />
|
|
||||||
export interface Status {
|
|
||||||
meta: {
|
|
||||||
id: string; // 服务器ID,用于标识服务器
|
|
||||||
name: string;
|
|
||||||
os: {
|
|
||||||
name: string;
|
|
||||||
version: string;
|
|
||||||
release: string;
|
|
||||||
machine: string;
|
|
||||||
};
|
|
||||||
labels: string[]; // 服务器标签
|
|
||||||
location: string; // Chongqing, China
|
|
||||||
uptime: number; // uptime in seconds
|
|
||||||
link: string | null; // 链接或是nil
|
|
||||||
observed_at: number; // unix timestamp
|
|
||||||
start_time: number; // unix timestamp
|
|
||||||
timezone: string; // Asia/Shanghai
|
|
||||||
};
|
|
||||||
hardware: {
|
|
||||||
mem: {
|
|
||||||
total: number;
|
|
||||||
used: number;
|
|
||||||
};
|
|
||||||
swap: {
|
|
||||||
total: number;
|
|
||||||
used: number;
|
|
||||||
};
|
|
||||||
cpu: {
|
|
||||||
cores: number;
|
|
||||||
logics: number;
|
|
||||||
percent: number; // 0-100
|
|
||||||
};
|
|
||||||
disks: {
|
|
||||||
[key: string]: {
|
|
||||||
used: number;
|
|
||||||
total: number;
|
|
||||||
mountpoint: string;
|
|
||||||
fstype: string;
|
|
||||||
device: string;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
net: {
|
|
||||||
up: number;
|
|
||||||
down: number;
|
|
||||||
type: string; // IPv4 or IPv6 or IPv4/6
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
const apiRoot = import.meta.env.VITE_API_ROOT
|
|
||||||
|
|
||||||
export async function getStatuses(): Promise<Record<string, Status>> {
|
|
||||||
const response = await fetch(`${apiRoot}/api/status`)
|
|
||||||
return response.json()
|
|
||||||
}
|
|
@ -1,123 +0,0 @@
|
|||||||
export const onlineTimeout = 30
|
|
||||||
|
|
||||||
export function getReleaseInfo(name: string, release: string): { name: string, icon: string } {
|
|
||||||
if (name.toLowerCase() == 'windows') {
|
|
||||||
return {name: 'Windows', icon: '/svg/system-windows.svg'}
|
|
||||||
} else if (name.toLowerCase() == 'darwin') {
|
|
||||||
return {name: 'macOS', icon: '/svg/system-darwin.svg'}
|
|
||||||
} else {
|
|
||||||
const map: Record<string, { name: string, icon: string }> = {
|
|
||||||
'alpine': {name: 'Alpine Linux', icon: '/svg/system-alpine.svg'},
|
|
||||||
'arch': {name: 'Arch Linux', icon: '/svg/system-archlinux.svg'},
|
|
||||||
'centos': {name: 'CentOS', icon: '/svg/system-centos.svg'},
|
|
||||||
'debian': {name: 'Debian', icon: '/svg/system-debian.svg'},
|
|
||||||
'deepin': {name: 'Deepin', icon: '/svg/system-deepin.svg'},
|
|
||||||
'elementary': {name: 'elementary OS', icon: '/svg/system-elementary.svg'},
|
|
||||||
'fedora': {name: 'Fedora', icon: '/svg/system-fedora.svg'},
|
|
||||||
'kali': {name: 'Kali Linux', icon: '/svg/system-kali.svg'},
|
|
||||||
'manjaro': {name: 'Manjaro', icon: '/svg/system-manjaro.svg'},
|
|
||||||
'opensuse': {name: 'openSUSE', icon: '/svg/system-opensuse.svg'},
|
|
||||||
'redhat': {name: 'Red Hat', icon: '/svg/system-redhat.svg'},
|
|
||||||
'suse': {name: 'SUSE', icon: '/svg/system-opensuse.svg'}, // SUSE Linux Enterprise Server
|
|
||||||
'ubuntu': {name: 'Ubuntu', icon: '/svg/system-ubuntu.svg'},
|
|
||||||
'zorin': {name: 'Zorin OS', icon: '/svg/system-zorin.svg'},
|
|
||||||
}
|
|
||||||
release = release.toLowerCase()
|
|
||||||
for (const key in map) {
|
|
||||||
if (release.includes(key)) {
|
|
||||||
return map[key]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return {name: name, icon: '/svg/system-linux.svg'}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function formatSizeByUnit(bytes: number, unit: string | null = null, suffix: string | null = null): string {
|
|
||||||
// 若指定单位,则格式化为指定单位对应的大小字符串加上单位
|
|
||||||
// 若未指定单位,则选择1-1024之间的最大单位,格式化为该单位对应的大小字符串加上单位
|
|
||||||
if (bytes == 0) {
|
|
||||||
return '0'
|
|
||||||
}
|
|
||||||
if (bytes < 1024) {
|
|
||||||
return bytes.toFixed(0) + (suffix ? suffix : '')
|
|
||||||
}
|
|
||||||
const units = ['', 'K', 'M', 'G', 'T', 'P', 'E']
|
|
||||||
let i = unit ? units.indexOf(unit) : Math.floor(Math.log2(bytes) / 10)
|
|
||||||
return (bytes / Math.pow(1024, i)).toFixed(1) + (suffix ? (units[i] + suffix) : '')
|
|
||||||
}
|
|
||||||
|
|
||||||
export function formatSizeToNumAndUnit(bytes: number): { num: number, unit: string } {
|
|
||||||
const units = ['', 'K', 'M', 'G', 'T', 'P', 'E']
|
|
||||||
let i = Math.floor(Math.log2(bytes) / 10)
|
|
||||||
return {num: (bytes / Math.pow(1024, i)), unit: units[i]}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function format2Size(num1: number, num2: number, suffix: string | null = 'iB'): string {
|
|
||||||
// const n1, unit = formatSizeToNumAndUnit(num1)
|
|
||||||
// const n2 = formatSizeWithUnit(num2, unit)
|
|
||||||
// return `${n1}/${n2}`
|
|
||||||
// const r1 = formatSizeToNumAndUnit(num1)
|
|
||||||
// let n2 = formatSizeWithUnit(num2, r1.unit)
|
|
||||||
// return `${r1.num.toFixed(2)}/${n2}`
|
|
||||||
const r2 = formatSizeToNumAndUnit(num2)
|
|
||||||
const n1 = formatSizeByUnit(num1, r2.unit)
|
|
||||||
return `${n1}/${r2.num.toFixed(1)}${r2.unit}${suffix}`
|
|
||||||
}
|
|
||||||
|
|
||||||
export function formatDate(timestamp: number, timeOnly: boolean = false) {
|
|
||||||
const d = new Date(timestamp * 1000)
|
|
||||||
const date = d.toLocaleDateString()
|
|
||||||
const time = d.toLocaleTimeString()
|
|
||||||
return timeOnly ? time : `${date} ${time}`
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getBaseColor(percent: number, disable: boolean = false) {
|
|
||||||
// 0~60: green, 60~80: yellow, 80~90: orange, 90~100: red
|
|
||||||
if (disable) {
|
|
||||||
return '#9ca3af'
|
|
||||||
}
|
|
||||||
if (percent < 60) {
|
|
||||||
return '#22c55e'
|
|
||||||
} else if (percent < 80) {
|
|
||||||
return '#eab308'
|
|
||||||
} else if (percent < 90) {
|
|
||||||
return '#f97316'
|
|
||||||
} else {
|
|
||||||
return '#ef4444'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
export function getBlankColor(percent: number, disable: boolean = false) {
|
|
||||||
if (disable) {
|
|
||||||
return '#e5e7eb'
|
|
||||||
}
|
|
||||||
if (percent < 60) {
|
|
||||||
return '#bbf7d0'
|
|
||||||
} else if (percent < 80) {
|
|
||||||
return '#fef08a'
|
|
||||||
} else if (percent < 90) {
|
|
||||||
return '#fed7aa'
|
|
||||||
} else {
|
|
||||||
return '#fecaca'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 1727998501
|
|
||||||
|
|
||||||
export function formatUptime(uptime: number): string {
|
|
||||||
const seconds = uptime;
|
|
||||||
const d = Math.floor(seconds / 86400);
|
|
||||||
const h = Math.floor((seconds % 86400) / 3600).toString().padStart(2, '0');
|
|
||||||
const m = Math.floor((seconds % 3600) / 60).toString().padStart(2, '0');
|
|
||||||
const s = Math.floor(seconds % 60).toString().padStart(2, '0');
|
|
||||||
return `${d}:${h}:${m}:${s}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function formatDuration(duration: number): string {
|
|
||||||
const d = Math.floor(duration / 86400);
|
|
||||||
const h = Math.floor((duration % 86400) / 3600);
|
|
||||||
const m = Math.floor((duration % 3600) / 60);
|
|
||||||
const s = Math.floor(duration % 60);
|
|
||||||
return d > 0 ? `${d}d` : h > 0 ? `${h}h` : m > 0 ? `${m}m` : `${s}s`;
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="37.07" height="36" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 198"><path fill="#41B883" d="M204.8 0H256L128 220.8L0 0h97.92L128 51.2L157.44 0h47.36Z"></path><path fill="#41B883" d="m0 0l128 220.8L256 0h-51.2L128 132.48L50.56 0H0Z"></path><path fill="#35495E" d="M50.56 0L128 133.12L204.8 0h-47.36L128 51.2L97.92 0H50.56Z"></path></svg>
|
|
Before Width: | Height: | Size: 496 B |
@ -1,90 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
import {format2Size, getBaseColor, getBlankColor} from '../api/utils.ts';
|
|
||||||
|
|
||||||
const props = defineProps<{
|
|
||||||
mountpoint: string;
|
|
||||||
device: string;
|
|
||||||
used: number;
|
|
||||||
total: number;
|
|
||||||
fstype: string;
|
|
||||||
}>();
|
|
||||||
|
|
||||||
const colorUsed = getBaseColor(props.used / props.total * 100);
|
|
||||||
const colorBlank = getBlankColor(props.used / props.total * 100);
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
|
|
||||||
<div class="disk">
|
|
||||||
<div class="hover-text">
|
|
||||||
<div class="left-text">
|
|
||||||
<span class="disk-text">{{ props.mountpoint }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="right-text">
|
|
||||||
<span class="disk-text">{{ format2Size(props.used, props.total) }} [{{ props.fstype }}]</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="progress-bar" style="display: flex; align-items: center">
|
|
||||||
<div class="disk-total" :style="{ backgroundColor: colorBlank }" style="margin-right: 0.5rem;">
|
|
||||||
<div class="disk-used"
|
|
||||||
:style="{ width: props.used / props.total * 100 + '%', backgroundColor: colorUsed }"></div>
|
|
||||||
</div>
|
|
||||||
<div style="color: var(--text-color-2)">
|
|
||||||
<div class="percentage" style="text-align: right">{{ (props.used / props.total * 100).toFixed(1) }}%</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
|
|
||||||
.disk {
|
|
||||||
margin-top: 0.75rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.disk-total {
|
|
||||||
height: 0.618rem;
|
|
||||||
width: 90%;
|
|
||||||
border-radius: 1rem;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: flex-start;
|
|
||||||
overflow: hidden; /* Ensure the used part doesn't overflow */
|
|
||||||
}
|
|
||||||
|
|
||||||
.disk-used {
|
|
||||||
height: 100%;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
clip-path: inset(0 0 0 0 round 1rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
.hover-text {
|
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.left-text {
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.right-text {
|
|
||||||
display: flex;
|
|
||||||
justify-content: flex-end;
|
|
||||||
}
|
|
||||||
|
|
||||||
.disk-text {
|
|
||||||
font-size: 16px;
|
|
||||||
color: var(--text-color-2);
|
|
||||||
}
|
|
||||||
|
|
||||||
.percentage{
|
|
||||||
font-size: 14px;
|
|
||||||
color: var(--text-color-2);
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,41 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
import { ref } from 'vue'
|
|
||||||
|
|
||||||
defineProps<{ msg: string }>()
|
|
||||||
|
|
||||||
const count = ref(0)
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<h1>{{ msg }}</h1>
|
|
||||||
|
|
||||||
<div class="card">
|
|
||||||
<button type="button" @click="count++">count is {{ count }}</button>
|
|
||||||
<p>
|
|
||||||
Edit
|
|
||||||
<code>components/HelloWorld.vue</code> to test HMR
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Check out
|
|
||||||
<a href="https://vuejs.org/guide/quick-start.html#local" target="_blank"
|
|
||||||
>create-vue</a
|
|
||||||
>, the official Vue + Vite starter
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
Learn more about IDE Support for Vue in the
|
|
||||||
<a
|
|
||||||
href="https://vuejs.org/guide/scaling-up/tooling.html#ide-support"
|
|
||||||
target="_blank"
|
|
||||||
>Vue Docs Scaling up Guide</a
|
|
||||||
>.
|
|
||||||
</p>
|
|
||||||
<p class="read-the-docs">Click on the Vite and Vue logos to learn more</p>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.read-the-docs {
|
|
||||||
color: #888;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,548 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
import {Status} from "../api";
|
|
||||||
import {computed, onMounted, ref, watch} from "vue";
|
|
||||||
import * as echarts from "echarts";
|
|
||||||
import {
|
|
||||||
format2Size,
|
|
||||||
formatDate, formatDuration,
|
|
||||||
formatSizeByUnit,
|
|
||||||
formatUptime,
|
|
||||||
getBaseColor,
|
|
||||||
getBlankColor,
|
|
||||||
getReleaseInfo,
|
|
||||||
onlineTimeout
|
|
||||||
} from "../api/utils.ts";
|
|
||||||
|
|
||||||
import OutlineAnime from "./OutlineAnime.vue";
|
|
||||||
import Disk from "./Disk.vue";
|
|
||||||
import html2canvas from "html2canvas";
|
|
||||||
|
|
||||||
const props = defineProps<{
|
|
||||||
status: Status
|
|
||||||
}>()
|
|
||||||
|
|
||||||
const status = computed(
|
|
||||||
() => props.status
|
|
||||||
)
|
|
||||||
|
|
||||||
const uptime = ref(formatUptime(status.value.meta.uptime))
|
|
||||||
const cpuChartRef = ref(null);
|
|
||||||
const memoryChartRef = ref(null);
|
|
||||||
const swapChartRef = ref(null);
|
|
||||||
|
|
||||||
// 网络
|
|
||||||
const netChartRef = ref(null);
|
|
||||||
let netStats: [number, number, number][] = []
|
|
||||||
const isOnline = ref(true)
|
|
||||||
const statusColor = computed(
|
|
||||||
() => isOnline.value ? '#22c55e' : '#ff4d4f'
|
|
||||||
)
|
|
||||||
const statusColor2 = computed(
|
|
||||||
() => isOnline.value ? '#80ffb0' : '#fd8182'
|
|
||||||
)
|
|
||||||
const deltaTime = ref('0')
|
|
||||||
const os = computed(() => {
|
|
||||||
return getReleaseInfo(status.value.meta.os.name, status.value.meta.os.version)
|
|
||||||
})
|
|
||||||
|
|
||||||
const memDetail = computed(() => {
|
|
||||||
return format2Size(status.value.hardware.mem.used, status.value.hardware.mem.total)
|
|
||||||
})
|
|
||||||
|
|
||||||
const swapDetail = computed(() => {
|
|
||||||
return status.value.hardware.swap.total > 0 ? format2Size(status.value.hardware.swap.used, status.value.hardware.swap.total) : 'N/A'
|
|
||||||
})
|
|
||||||
|
|
||||||
const gradientStyle = computed(() => {
|
|
||||||
return {
|
|
||||||
borderColor: `linear-gradient(90deg, ${statusColor.value}, ${statusColor2.value})`
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
const hoverBorderColor = computed(() => {
|
|
||||||
return statusColor.value
|
|
||||||
})
|
|
||||||
|
|
||||||
const fontFam = 'Josefin Sans'
|
|
||||||
|
|
||||||
function onMountedFunc() {
|
|
||||||
const cpuChart = echarts.init(cpuChartRef.value);
|
|
||||||
const memoryChart = echarts.init(memoryChartRef.value);
|
|
||||||
const swapChart = echarts.init(swapChartRef.value);
|
|
||||||
const netChart = echarts.init(netChartRef.value);
|
|
||||||
|
|
||||||
// style
|
|
||||||
const titleStyle = {
|
|
||||||
color: 'rgba(0, 0, 0, 0.8)',
|
|
||||||
fontSize: 18,
|
|
||||||
}
|
|
||||||
const radius = ['65%', '80%']
|
|
||||||
const netColor = ['#a2d8f4', '#0194e3'] // Tx Rx
|
|
||||||
const pieLabelPosition = 'center'
|
|
||||||
const emphasis = {
|
|
||||||
label: {
|
|
||||||
show: true,
|
|
||||||
fontSize: 15,
|
|
||||||
fontFamily: fontFam,
|
|
||||||
position: ['50%', '20%'] // 设置标签位置为圆环外部
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新时间
|
|
||||||
setInterval(() => {
|
|
||||||
if (isOnline.value) {
|
|
||||||
const deltaTime = (Date.now()) / 1000 - status.value.meta.observed_at
|
|
||||||
uptime.value = formatUptime(status.value.meta.uptime + deltaTime)
|
|
||||||
}
|
|
||||||
}, 1000)
|
|
||||||
|
|
||||||
function update() {
|
|
||||||
const timeDiff = (Date.now()) / 1000 - status.value.meta.observed_at
|
|
||||||
deltaTime.value = formatDuration(timeDiff)
|
|
||||||
// 判断该时间与上一个时间不同才push
|
|
||||||
if (netStats.length === 0 || netStats[netStats.length - 1][0] !== status.value.meta.observed_at) {
|
|
||||||
netStats.push([status.value.meta.observed_at, status.value.hardware.net.up, status.value.hardware.net.down]) // 时间 上行 下行
|
|
||||||
}
|
|
||||||
|
|
||||||
if (netStats.length > 20) {
|
|
||||||
netStats.shift()
|
|
||||||
}
|
|
||||||
|
|
||||||
isOnline.value = timeDiff <= onlineTimeout;
|
|
||||||
cpuChart.setOption(
|
|
||||||
{
|
|
||||||
color: [
|
|
||||||
getBaseColor(status.value.hardware.cpu.percent),
|
|
||||||
getBlankColor(status.value.hardware.cpu.percent)
|
|
||||||
],
|
|
||||||
title: {
|
|
||||||
text: status.value.hardware.cpu.percent + '%',
|
|
||||||
left: 'center',
|
|
||||||
top: 'center',
|
|
||||||
textStyle: titleStyle,
|
|
||||||
},
|
|
||||||
textStyle: {
|
|
||||||
fontFamily: fontFam
|
|
||||||
},
|
|
||||||
series: [
|
|
||||||
{
|
|
||||||
type: 'pie',
|
|
||||||
radius: radius,
|
|
||||||
avoidLabelOverlap: false,
|
|
||||||
label: {
|
|
||||||
show: false,
|
|
||||||
position: pieLabelPosition
|
|
||||||
},
|
|
||||||
emphasis: emphasis,
|
|
||||||
labelLine: {
|
|
||||||
show: false
|
|
||||||
},
|
|
||||||
data: computed(
|
|
||||||
() => [
|
|
||||||
{value: status.value.hardware.cpu.percent, name: 'Used'},
|
|
||||||
{value: 100 - status.value.hardware.cpu.percent, name: 'Free'}
|
|
||||||
]
|
|
||||||
).value
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
)
|
|
||||||
memoryChart.setOption(
|
|
||||||
{
|
|
||||||
color: [
|
|
||||||
getBaseColor(status.value.hardware.mem.used / status.value.hardware.mem.total * 100),
|
|
||||||
getBlankColor(status.value.hardware.mem.used / status.value.hardware.mem.total * 100)
|
|
||||||
],
|
|
||||||
title: {
|
|
||||||
text: `${(status.value.hardware.mem.used / status.value.hardware.mem.total * 100).toFixed(1)}%`,
|
|
||||||
left: 'center',
|
|
||||||
top: 'center',
|
|
||||||
textStyle: titleStyle
|
|
||||||
},
|
|
||||||
textStyle: {
|
|
||||||
fontFamily: fontFam
|
|
||||||
},
|
|
||||||
series: [
|
|
||||||
{
|
|
||||||
type: 'pie',
|
|
||||||
radius: radius,
|
|
||||||
avoidLabelOverlap: false,
|
|
||||||
label: {
|
|
||||||
show: false,
|
|
||||||
position: pieLabelPosition
|
|
||||||
},
|
|
||||||
emphasis: emphasis,
|
|
||||||
labelLine: {
|
|
||||||
show: false
|
|
||||||
},
|
|
||||||
data: [
|
|
||||||
{value: status.value.hardware.mem.used, name: 'Used'},
|
|
||||||
{value: status.value.hardware.mem.total - status.value.hardware.mem.used, name: 'Free'}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
)
|
|
||||||
swapChart.setOption(
|
|
||||||
{
|
|
||||||
color: [
|
|
||||||
getBaseColor(status.value.hardware.swap.used / status.value.hardware.swap.total * 100, status.value.hardware.swap.total <= 0),
|
|
||||||
getBlankColor(status.value.hardware.swap.used / status.value.hardware.swap.total * 100, status.value.hardware.swap.total <= 0)
|
|
||||||
],
|
|
||||||
title: {
|
|
||||||
text: status.value.hardware.swap.total > 0 ? `${(status.value.hardware.swap.used / status.value.hardware.swap.total * 100).toFixed(1)}%` : 'N/A',
|
|
||||||
left: 'center',
|
|
||||||
top: 'center',
|
|
||||||
textStyle: titleStyle,
|
|
||||||
},
|
|
||||||
textStyle: {
|
|
||||||
fontFamily: fontFam
|
|
||||||
},
|
|
||||||
series: [
|
|
||||||
{
|
|
||||||
type: 'pie',
|
|
||||||
radius: radius,
|
|
||||||
avoidLabelOverlap: false,
|
|
||||||
label: {
|
|
||||||
show: false,
|
|
||||||
position: pieLabelPosition
|
|
||||||
},
|
|
||||||
emphasis: emphasis,
|
|
||||||
labelLine: {
|
|
||||||
show: false
|
|
||||||
},
|
|
||||||
data: [
|
|
||||||
{value: status.value.hardware.swap.total > 0 ? status.value.hardware.swap.used : 0, name: 'Used'},
|
|
||||||
{
|
|
||||||
value: status.value.hardware.swap.total > 0 ? status.value.hardware.swap.total - status.value.hardware.swap.used : 100,
|
|
||||||
name: 'Free'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
netChart.setOption(
|
|
||||||
{
|
|
||||||
color: netColor,
|
|
||||||
title: {
|
|
||||||
textStyle: titleStyle
|
|
||||||
},
|
|
||||||
textStyle: {
|
|
||||||
fontFamily: fontFam
|
|
||||||
},
|
|
||||||
tooltip: {
|
|
||||||
trigger: 'axis',
|
|
||||||
axisPointer: {
|
|
||||||
type: 'cross',
|
|
||||||
label: {
|
|
||||||
backgroundColor: '#0f7bc5',
|
|
||||||
borderRadius: 50,
|
|
||||||
formatter: function (params: any) {
|
|
||||||
if (params.axisDimension === 'y') {
|
|
||||||
return formatSizeByUnit(params.value * 8, null, 'bps');
|
|
||||||
} else {
|
|
||||||
return formatDate(params.value, true);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}
|
|
||||||
},
|
|
||||||
formatter: function (params: any) {
|
|
||||||
let result = formatDate(params[0].name, true) + '<br/>';
|
|
||||||
params.forEach(function (item: any) {
|
|
||||||
result += item.marker + (item.seriesName == 'Tx' ? '↑' : '↓') + ': ' + formatSizeByUnit(item.value * 8, null, 'bps') + '<br/>';
|
|
||||||
});
|
|
||||||
return result;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
toolbox: {
|
|
||||||
feature: {}
|
|
||||||
},
|
|
||||||
grid: {
|
|
||||||
top: '25%',
|
|
||||||
left: '3%',
|
|
||||||
right: '4%',
|
|
||||||
bottom: '3%',
|
|
||||||
containLabel: true
|
|
||||||
},
|
|
||||||
xAxis: [
|
|
||||||
{
|
|
||||||
type: 'category',
|
|
||||||
boundaryGap: false,
|
|
||||||
data: netStats.map(item => item[0]),
|
|
||||||
axisLabel: {
|
|
||||||
formatter: function (value: number) {
|
|
||||||
return formatDate(value, true)
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
yAxis: [
|
|
||||||
{
|
|
||||||
type: 'value',
|
|
||||||
axisLabel: {
|
|
||||||
formatter: function (value: number) {
|
|
||||||
return formatSizeByUnit(value * 8, null, 'b')
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
series: [
|
|
||||||
{
|
|
||||||
name: 'Tx',
|
|
||||||
type: 'line',
|
|
||||||
stack: 'Total',
|
|
||||||
areaStyle: {},
|
|
||||||
emphasis: {
|
|
||||||
focus: 'series',
|
|
||||||
},
|
|
||||||
data: netStats.map(item => item[1]),
|
|
||||||
showSymbol: false,
|
|
||||||
lineStyle: {
|
|
||||||
type: 'dashed'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Rx',
|
|
||||||
type: 'line',
|
|
||||||
stack: 'Total',
|
|
||||||
areaStyle: {},
|
|
||||||
emphasis: {
|
|
||||||
focus: 'series'
|
|
||||||
},
|
|
||||||
data: netStats.map(item => item[2]),
|
|
||||||
showSymbol: false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
update()
|
|
||||||
watch(
|
|
||||||
() => status.value,
|
|
||||||
() => {
|
|
||||||
update()
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// link.download = `screenshot-${status.value.meta.id}-${formatDate(Date.now(), false)}.svg`;
|
|
||||||
|
|
||||||
function downloadScreenshot() {
|
|
||||||
const hostElement = document.querySelector(".host#" + status.value.meta.id);
|
|
||||||
if (hostElement) {
|
|
||||||
html2canvas(<HTMLElement>hostElement, {scale: 2}).then((canvas) => {
|
|
||||||
const dataURL = canvas.toDataURL("image/png");
|
|
||||||
const link = document.createElement("a");
|
|
||||||
link.href = dataURL;
|
|
||||||
link.download = `screenshot-${status.value.meta.id}-${formatDate(Date.now(), false)}.png`;
|
|
||||||
link.click();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onMounted(
|
|
||||||
() => {
|
|
||||||
onMountedFunc()
|
|
||||||
}
|
|
||||||
)
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<div class="host" :style="[gradientStyle, { '--hover-border-color': hoverBorderColor }]" :id="status.meta.id">
|
|
||||||
<!-- 主机名-->
|
|
||||||
<div class="host-name">{{ status.meta.name }}</div>
|
|
||||||
<div class="meta-1" style="display: flex; justify-content: space-between">
|
|
||||||
<div class="meta1-left" style="display: flex; justify-content: flex-start; align-items: center">
|
|
||||||
<OutlineAnime class="outline-anime" :color="statusColor" :spreadColor="statusColor2" :is-online="isOnline"/>
|
|
||||||
<div class="uptime time-tag" style="margin-right: 5px"
|
|
||||||
:style="{backgroundColor: statusColor2, borderColor: statusColor}">{{ uptime }}
|
|
||||||
</div>
|
|
||||||
<div class="offline-time time-tag" v-if="!isOnline">
|
|
||||||
Offline for {{ deltaTime }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="meta1-right" style="display: flex; justify-content: flex-end; align-items: center">
|
|
||||||
<img @click="downloadScreenshot" src="/svg/screenshots.svg" alt="download" style="width: 20px; height: 20px">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="meta-2">
|
|
||||||
<div class="section">
|
|
||||||
<img class="icon" :src="os.icon" alt="system">
|
|
||||||
<span class="meta2-text">{{ os.name }} {{ status.meta.os.release }} · {{ status.meta.os.machine }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="section">
|
|
||||||
<img class="icon" src="/svg/timezone.svg" alt="location">
|
|
||||||
<span class="meta2-text">{{ status.meta.location }} · {{ status.meta.timezone }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="labels section" style="display: flex">
|
|
||||||
<img class="icon" src="/svg/label.svg" alt="labels">
|
|
||||||
<span><span class="label meta2-text" v-for="label in status.meta.labels" :key="label">{{ label }}</span></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<div class="section-name">
|
|
||||||
Hardware
|
|
||||||
</div>
|
|
||||||
<div class="charts-container" style="display: flex; justify-content: space-between">
|
|
||||||
<div class="cpu-info hw-info">
|
|
||||||
<div class="chart" ref="cpuChartRef"></div>
|
|
||||||
<div class="hw-title">CPU</div>
|
|
||||||
<div class="hw-detail">{{ status.hardware.cpu.cores }}C {{ status.hardware.cpu.logics }}T</div>
|
|
||||||
</div>
|
|
||||||
<div class="memory-info hw-info">
|
|
||||||
<div class="chart" ref="memoryChartRef"></div>
|
|
||||||
<div class="hw-title">Mem</div>
|
|
||||||
<div class="hw-detail">{{ memDetail }}</div>
|
|
||||||
</div>
|
|
||||||
<div class="swap-info hw-info">
|
|
||||||
<div class="chart" ref="swapChartRef"></div>
|
|
||||||
<div class="hw-title">Swap</div>
|
|
||||||
<div class="hw-detail">{{ swapDetail }}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<!-- -->
|
|
||||||
<div class="net">
|
|
||||||
<div class="section-name">
|
|
||||||
Network
|
|
||||||
</div>
|
|
||||||
<div class="net-chart" ref="netChartRef"></div>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<!-- -->
|
|
||||||
<div class="disks">
|
|
||||||
<div class="section-name">
|
|
||||||
Storage
|
|
||||||
</div>
|
|
||||||
<Disk v-for="disk in status.hardware.disks" :key="disk.mountpoint" :mountpoint="disk.mountpoint"
|
|
||||||
:device="disk.device" :used="disk.used" :total="disk.total" :fstype="disk.fstype"/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
|
|
||||||
:root {
|
|
||||||
|
|
||||||
--liteyuki-color-1: #d0e9ff;
|
|
||||||
--liteyuki-color-2: #a2d8f4;
|
|
||||||
--hover-border-color: #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
.host {
|
|
||||||
padding: 1rem;
|
|
||||||
border: 2px solid #ccc;
|
|
||||||
border-radius: 20px;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: space-between;
|
|
||||||
transition: border-color 0.3s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
.host:hover {
|
|
||||||
border-color: var(--hover-border-color); /* Change border color on hover */
|
|
||||||
}
|
|
||||||
|
|
||||||
.meta-1 {
|
|
||||||
.outline-anime {
|
|
||||||
margin-right: 0.5em;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.host-name {
|
|
||||||
text-align: center;
|
|
||||||
font-size: 1.5rem;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.meta-2 {
|
|
||||||
margin-top: 0.5em;
|
|
||||||
|
|
||||||
.meta2-text {
|
|
||||||
font-size: 0.9rem;
|
|
||||||
color: var(--text-color-2);
|
|
||||||
}
|
|
||||||
|
|
||||||
.section {
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
justify-content: flex-start;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.labels {
|
|
||||||
margin-top: 0.5em;
|
|
||||||
|
|
||||||
.label {
|
|
||||||
padding: 0.05rem 0.5rem;
|
|
||||||
border: 1px dashed;
|
|
||||||
border-color: var(--text-color-1);
|
|
||||||
border-radius: 50px;
|
|
||||||
margin-right: 0.5rem;
|
|
||||||
background-color: #dfdfdf;
|
|
||||||
color: var(--text-color-1);
|
|
||||||
font-size: 0.8rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.icon {
|
|
||||||
margin-right: 0.618rem;
|
|
||||||
height: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section {
|
|
||||||
display: flex;
|
|
||||||
margin-right: 10px;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.time-tag {
|
|
||||||
padding: 0 0.5rem;
|
|
||||||
font-size: 0.8rem;
|
|
||||||
border-radius: 50px;
|
|
||||||
border: 1px dashed;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.charts-container {
|
|
||||||
|
|
||||||
.hw-info {
|
|
||||||
width: 30%;
|
|
||||||
align-items: center;
|
|
||||||
|
|
||||||
.chart {
|
|
||||||
width: 100%;
|
|
||||||
aspect-ratio: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hw-title {
|
|
||||||
text-align: center;
|
|
||||||
font-size: 0.9rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hw-detail {
|
|
||||||
text-align: center;
|
|
||||||
font-size: 0.7rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.section-name {
|
|
||||||
text-align: center;
|
|
||||||
font-size: 1rem;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
.net {
|
|
||||||
.net-chart {
|
|
||||||
width: 100%;
|
|
||||||
aspect-ratio: 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
@ -1,48 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
import router from "../router/index.ts"
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<!-- 三部分 左 点击侧栏, 中 logo, 右 语言-->
|
|
||||||
<div class="navbar">
|
|
||||||
<div class="navbar-left">
|
|
||||||
</div>
|
|
||||||
<div class="navbar-center">
|
|
||||||
</div>
|
|
||||||
<div class="navbar-right">
|
|
||||||
<div v-for="route in router.getRoutes()">
|
|
||||||
<router-link :to="route.path" :key="route.name">
|
|
||||||
{{ route.name }}
|
|
||||||
</router-link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.navbar {
|
|
||||||
z-index: 3;
|
|
||||||
display: flex;
|
|
||||||
justify-content: space-between;
|
|
||||||
align-items: center;
|
|
||||||
padding: 0 20px;
|
|
||||||
height: 80px;
|
|
||||||
background-color: #d0e9ff;
|
|
||||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-left img {
|
|
||||||
height: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-left,
|
|
||||||
.navbar-right {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-center img {
|
|
||||||
height: 80px;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
|
@ -1,53 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="online-status">
|
|
||||||
<div class="dot" :style="{ backgroundColor: props.color }"></div>
|
|
||||||
<div class="pulse" v-if="isOnline" :style="{ backgroundColor: props.spreadColor }"></div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup lang="ts">
|
|
||||||
import { defineProps } from 'vue';
|
|
||||||
|
|
||||||
const props = defineProps<{
|
|
||||||
color: string;
|
|
||||||
spreadColor: string;
|
|
||||||
isOnline: boolean;
|
|
||||||
}>();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
.online-status {
|
|
||||||
position: relative;
|
|
||||||
width: 15px;
|
|
||||||
height: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.dot {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
border-radius: 50%;
|
|
||||||
z-index: 1; /* Ensure the base color layer is on top */
|
|
||||||
}
|
|
||||||
|
|
||||||
.pulse {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
border-radius: 50%;
|
|
||||||
animation: pulse 1.5s infinite;
|
|
||||||
z-index: 0; /* Ensure the radar layer is below the base color layer */
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes pulse {
|
|
||||||
0% {
|
|
||||||
transform: scale(1);
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
transform: scale(2);
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,10 +0,0 @@
|
|||||||
import { createApp } from 'vue'
|
|
||||||
import './style.css'
|
|
||||||
import App from './App.vue'
|
|
||||||
import router from "./router";
|
|
||||||
|
|
||||||
// createApp(App).use(router).mount('#app')
|
|
||||||
|
|
||||||
const app = createApp(App)
|
|
||||||
app.use(router)
|
|
||||||
app.mount('#app')
|
|
@ -1,23 +0,0 @@
|
|||||||
import {createRouter, createWebHistory} from "vue-router"
|
|
||||||
import Home from "../views/Home.vue"
|
|
||||||
import Test from "../views/Test.vue"
|
|
||||||
|
|
||||||
const routes = [
|
|
||||||
{
|
|
||||||
path: '/',
|
|
||||||
name: '主页',
|
|
||||||
component: Home
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: '/test',
|
|
||||||
name: '测试',
|
|
||||||
component: Test
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
const router = createRouter({
|
|
||||||
history: createWebHistory("/"),
|
|
||||||
routes
|
|
||||||
})
|
|
||||||
|
|
||||||
export default router
|
|
@ -1,89 +0,0 @@
|
|||||||
:root {
|
|
||||||
font-family: 'Josefin Sans', sans-serif;
|
|
||||||
line-height: 1.5;
|
|
||||||
font-weight: 400;
|
|
||||||
|
|
||||||
color-scheme: light dark;
|
|
||||||
color: #000;
|
|
||||||
background-color: #fff;
|
|
||||||
|
|
||||||
font-synthesis: none;
|
|
||||||
text-rendering: optimizeLegibility;
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
-moz-osx-font-smoothing: grayscale;
|
|
||||||
--text-color-1: #000;
|
|
||||||
--text-color-2: #5f5f5f;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
.dark {
|
|
||||||
color: #fff;
|
|
||||||
background-color: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
font-weight: 500;
|
|
||||||
color: #646cff;
|
|
||||||
text-decoration: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover {
|
|
||||||
color: #535bf2;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*body {*/
|
|
||||||
/* margin: 0;*/
|
|
||||||
/* display: flex;*/
|
|
||||||
/* place-items: center;*/
|
|
||||||
/* min-width: 320px;*/
|
|
||||||
/* min-height: 100vh;*/
|
|
||||||
/*}*/
|
|
||||||
|
|
||||||
/*h1 {*/
|
|
||||||
/* font-size: 3.2em;*/
|
|
||||||
/* line-height: 1.1;*/
|
|
||||||
/*}*/
|
|
||||||
|
|
||||||
/*button {*/
|
|
||||||
/* border-radius: 8px;*/
|
|
||||||
/* border: 1px solid transparent;*/
|
|
||||||
/* padding: 0.6em 1.2em;*/
|
|
||||||
/* font-size: 1em;*/
|
|
||||||
/* font-weight: 500;*/
|
|
||||||
/* font-family: inherit;*/
|
|
||||||
/* background-color: #1a1a1a;*/
|
|
||||||
/* cursor: pointer;*/
|
|
||||||
/* transition: border-color 0.25s;*/
|
|
||||||
/*}*/
|
|
||||||
/*button:hover {*/
|
|
||||||
/* border-color: #646cff;*/
|
|
||||||
/*}*/
|
|
||||||
/*button:focus,*/
|
|
||||||
/*button:focus-visible {*/
|
|
||||||
/* outline: 4px auto -webkit-focus-ring-color;*/
|
|
||||||
/*}*/
|
|
||||||
|
|
||||||
/*.card {*/
|
|
||||||
/* padding: 2em;*/
|
|
||||||
/*}*/
|
|
||||||
|
|
||||||
/*#app {*/
|
|
||||||
/* max-width: 1280px;*/
|
|
||||||
/* margin: 0 auto;*/
|
|
||||||
/* padding: 2rem;*/
|
|
||||||
/* text-align: center;*/
|
|
||||||
/*}*/
|
|
||||||
|
|
||||||
/*@media (prefers-color-scheme: light) {*/
|
|
||||||
/* :root {*/
|
|
||||||
/* color: #213547;*/
|
|
||||||
/* background-color: #ffffff;*/
|
|
||||||
/* }*/
|
|
||||||
/* a:hover {*/
|
|
||||||
/* color: #747bff;*/
|
|
||||||
/* }*/
|
|
||||||
/* button {*/
|
|
||||||
/* background-color: #f9f9f9;*/
|
|
||||||
/* }*/
|
|
||||||
/*}*/
|
|
@ -1,160 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
import { computed, onMounted, onUnmounted, Ref, ref } from "vue";
|
|
||||||
import { getStatuses, Status } from "../api";
|
|
||||||
import Host from "../components/Host.vue";
|
|
||||||
import { onlineTimeout } from "../api/utils.ts";
|
|
||||||
|
|
||||||
const statuses: Ref<Record<string, Status>> = ref({});
|
|
||||||
const offline = ref(0);
|
|
||||||
const showOptions = ref(false);
|
|
||||||
const selectedOption = ref('');
|
|
||||||
const sortedKey = ref('name');
|
|
||||||
const reverse = ref(false);
|
|
||||||
|
|
||||||
const toggleOptions = () => {
|
|
||||||
showOptions.value = !showOptions.value;
|
|
||||||
};
|
|
||||||
|
|
||||||
const selectOption = (option: string) => {
|
|
||||||
selectedOption.value = option;
|
|
||||||
sortedKey.value = option;
|
|
||||||
};
|
|
||||||
|
|
||||||
const onlineNum = computed(() => {
|
|
||||||
const nowTimestamp = Date.now() / 1000;
|
|
||||||
let online = 0;
|
|
||||||
for (const status of Object.values(statuses.value)) {
|
|
||||||
if (nowTimestamp - status.meta.observed_at < onlineTimeout) {
|
|
||||||
online++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
offline.value = Object.values(statuses.value).length - online;
|
|
||||||
return online;
|
|
||||||
});
|
|
||||||
|
|
||||||
function sortByName(statusMap: Record<string, Status>) {
|
|
||||||
return Object.fromEntries(
|
|
||||||
Object.entries(statusMap).sort((a, b) => a[1].meta.name.localeCompare(b[1].meta.name))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
function sortByUpTime(statusMap: Record<string, Status>) {
|
|
||||||
return Object.fromEntries(
|
|
||||||
Object.entries(statusMap).sort((a, b) => a[1].meta.uptime - b[1].meta.uptime)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateSort(statusMap: Record<string, Status>) {
|
|
||||||
let sortedMap = statusMap;
|
|
||||||
if (sortedKey.value === 'name') {
|
|
||||||
sortedMap = sortByName(statusMap);
|
|
||||||
} else if (sortedKey.value === 'uptime') {
|
|
||||||
sortedMap = sortByUpTime(statusMap);
|
|
||||||
} else if (sortedKey.value === 'memory') {
|
|
||||||
sortedMap = Object.fromEntries(
|
|
||||||
Object.entries(statusMap).sort((a, b) => a[1].hardware.mem.total - b[1].hardware.mem.total)
|
|
||||||
);
|
|
||||||
} else if (sortedKey.value === 'network') {
|
|
||||||
sortedMap = Object.fromEntries(
|
|
||||||
Object.entries(statusMap).sort((a, b) => a[1].hardware.net.down + a[1].hardware.net.up - b[1].hardware.net.down - b[1].hardware.net.up)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (reverse.value) {
|
|
||||||
sortedMap = Object.fromEntries(Object.entries(sortedMap).reverse());
|
|
||||||
}
|
|
||||||
return sortedMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
const timer = setInterval(async () => {
|
|
||||||
statuses.value = updateSort(await getStatuses());
|
|
||||||
}, 1000);
|
|
||||||
|
|
||||||
onMounted(async () => {
|
|
||||||
statuses.value = updateSort(await getStatuses());
|
|
||||||
});
|
|
||||||
|
|
||||||
onUnmounted(() => {
|
|
||||||
clearInterval(timer);
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<div class="overview">
|
|
||||||
<h2>Overview: {{ onlineNum }} Online {{ offline }} Offline</h2>
|
|
||||||
</div>
|
|
||||||
<div class="tabs" style="display: flex">
|
|
||||||
<button class="button-a" @click="toggleOptions">Sort by</button>
|
|
||||||
<transition name="slide-fade">
|
|
||||||
<div v-if="showOptions" class="options">
|
|
||||||
<button :class="{ selected: selectedOption === 'name' }" @click="() => selectOption('name')">Name</button>
|
|
||||||
<button :class="{ selected: selectedOption === 'uptime' }" @click="() => selectOption('uptime')">Uptime</button>
|
|
||||||
<button :class="{ selected: selectedOption === 'memory' }" @click="() => selectOption('memory')">Memory</button>
|
|
||||||
<button :class="{ selected: selectedOption === 'network' }" @click="() => selectOption('network')">Network</button>
|
|
||||||
<!-- <button :class="{ selected: selectedOption === 'cpu' }" @click="() => selectOption('cpu')">CPU Percent</button>-->
|
|
||||||
<button :class="{ selected: reverse }" @click="() => reverse= !reverse" id="reverse-button">Reverse</button>
|
|
||||||
</div>
|
|
||||||
</transition>
|
|
||||||
</div>
|
|
||||||
<div class="grid-container">
|
|
||||||
<Host class="grid-item" v-for="(status, id) in statuses" :key="id" :status="status" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
|
|
||||||
.tabs{
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.button-a{
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
margin: 10px 10px 0 0;
|
|
||||||
padding: 0.5rem 0.5rem;
|
|
||||||
border-radius: 50px;
|
|
||||||
border: none;
|
|
||||||
background: #36a7ec;
|
|
||||||
|
|
||||||
}
|
|
||||||
#reverse-button {
|
|
||||||
background: #05c860;
|
|
||||||
}
|
|
||||||
#reverse-button.selected {
|
|
||||||
background: #ff6347;
|
|
||||||
}
|
|
||||||
|
|
||||||
button.selected {
|
|
||||||
background: #ff6347; /* Selected button background color */
|
|
||||||
}
|
|
||||||
|
|
||||||
.overview {
|
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.grid-container {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
|
|
||||||
gap: 20px;
|
|
||||||
padding: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.options {
|
|
||||||
display: flex;
|
|
||||||
gap: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slide-fade-enter-active, .slide-fade-leave-active {
|
|
||||||
transition: all 0.5s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slide-fade-enter-from, .slide-fade-leave-to {
|
|
||||||
transform: translateX(-100%);
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,11 +0,0 @@
|
|||||||
<script setup lang="ts">
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
Test
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
|
|
||||||
</style>
|
|
1
server-status-web/src/vite-env.d.ts
vendored
@ -1 +0,0 @@
|
|||||||
/// <reference types="vite/client" />
|
|
@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "ES2020",
|
|
||||||
"useDefineForClassFields": true,
|
|
||||||
"module": "ESNext",
|
|
||||||
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
||||||
"skipLibCheck": true,
|
|
||||||
|
|
||||||
/* Bundler mode */
|
|
||||||
"moduleResolution": "bundler",
|
|
||||||
"allowImportingTsExtensions": true,
|
|
||||||
"isolatedModules": true,
|
|
||||||
"moduleDetection": "force",
|
|
||||||
"noEmit": true,
|
|
||||||
"jsx": "preserve",
|
|
||||||
|
|
||||||
/* Linting */
|
|
||||||
"strict": true,
|
|
||||||
"noUnusedLocals": true,
|
|
||||||
"noUnusedParameters": true,
|
|
||||||
"noFallthroughCasesInSwitch": true
|
|
||||||
},
|
|
||||||
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
{"root":["./src/main.ts","./src/vite-env.d.ts","./src/api/index.ts","./src/api/node.ts","./src/api/utils.ts","./src/router/index.ts","./src/App.vue","./src/components/Disk.vue","./src/components/HelloWorld.vue","./src/components/Host.vue","./src/components/Nav.vue","./src/components/OutlineAnime.vue","./src/views/Home.vue","./src/views/Test.vue"],"version":"5.6.2"}
|
|
@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"files": [],
|
|
||||||
"references": [
|
|
||||||
{
|
|
||||||
"path": "./tsconfig.app.json"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "./tsconfig.node.json"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"compilerOptions": {
|
|
||||||
"target": "ES2022",
|
|
||||||
"lib": ["ES2023"],
|
|
||||||
"module": "ESNext",
|
|
||||||
"skipLibCheck": true,
|
|
||||||
|
|
||||||
/* Bundler mode */
|
|
||||||
"moduleResolution": "bundler",
|
|
||||||
"allowImportingTsExtensions": true,
|
|
||||||
"isolatedModules": true,
|
|
||||||
"moduleDetection": "force",
|
|
||||||
"noEmit": true,
|
|
||||||
|
|
||||||
/* Linting */
|
|
||||||
"strict": true,
|
|
||||||
"noUnusedLocals": true,
|
|
||||||
"noUnusedParameters": true,
|
|
||||||
"noFallthroughCasesInSwitch": true
|
|
||||||
},
|
|
||||||
"include": ["vite.config.ts"]
|
|
||||||
}
|
|
@ -1 +0,0 @@
|
|||||||
{"root":["./vite.config.ts"],"version":"5.6.2"}
|
|
@ -1,7 +0,0 @@
|
|||||||
import {defineConfig} from 'vite'
|
|
||||||
import vue from '@vitejs/plugin-vue'
|
|
||||||
|
|
||||||
// https://vitejs.dev/config/
|
|
||||||
export default defineConfig({
|
|
||||||
plugins: [vue()],
|
|
||||||
})
|
|