diff --git a/.gitignore b/.gitignore index 4b7c8707953847c9b01c76273fff3604a969aea9..7fdc56522ff9d8dae6814047c94e207696a685c5 100755 --- a/.gitignore +++ b/.gitignore @@ -28,7 +28,7 @@ coverage *.sw? .env .env.development -package-lock.json +*-lock.* *.tsbuildinfo @@ -39,4 +39,3 @@ package-lock.json .gitee/ .npmrc -.pnpm-lock.yaml diff --git a/.prettierrc.json b/.prettierrc.json index a54eff92e87fbce476cb4030be64a16a1bd43d26..81ccd1f2f2fdde6aafa93592434c7fe814b2af26 100755 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,7 +1,14 @@ { - "arrowParens": "avoid", - "printWidth": 120, - "semi": true, - "singleQuote": true, - "tabWidth": 2 -} + "semi": true, + "singleQuote": true, + "quoteProps": "as-needed", + "trailingComma": "all", + "bracketSpacing": true, + "jsxBracketSameLine": true, + "arrowParens": "always", + "requirePragma": false, + "insertPragma": false, + "proseWrap": "preserve", + "htmlWhitespaceSensitivity": "ignore", + "embeddedLanguageFormatting": "auto" +} \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile index aad76e2d93e67728eedc9cf947451cf1326b52f7..5795d701a2d74c98eecf45b9e08db9e836bfdb80 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,26 +1,30 @@ node { properties([ parameters([ - string(name: "REPO", defaultValue: "web-dev", description: "当前项目名"), - string(name: "REG", defaultValue: "", description: "Docker镜像地址"), - string(name: "SSH_HOST", defaultValue: "", description: "SSH主机名") + string(name: "REPO", defaultValue: "web-dev", description: "当前项目名") ]) ]) - + echo "拉取代码仓库" checkout scm def BUILD = sh(script: 'git rev-parse --short HEAD', returnStdout: true).trim() + def reg = "" + withCredentials([string(credentialsId: "reg_host", variable: "REG_HOST")]) { + reg = "${REG_HOST}" + } echo "构建当前分支Docker Image镜像" - docker.withRegistry("https://${params.REG}", "dockerAuth") { - def image = docker.build("${params.REG}/${params.REPO}:${BUILD}", "-f ./deploy/prod/Dockerfile .") + docker.withRegistry("https://${reg}", "dockerAuth") { + def image = docker.build("${reg}/${params.REPO}:${BUILD}", "-f ./deploy/prod/Dockerfile .") image.push() } def remote = [:] remote.name = "machine" - remote.host = "${params.SSH_HOST}" + withCredentials([string(credentialsId: "ssh_host", variable: "HOST")]) { + remote.host = "${HOST}" + } withCredentials([usernamePassword(credentialsId: "ssh", usernameVariable: 'sshUser', passwordVariable: 'sshPass')]) { remote.user = sshUser remote.password = sshPass @@ -28,10 +32,10 @@ node { remote.allowAnyHosts = true echo "清除构建缓存" - sshCommand remote: remote, command: "sh -c \"docker rmi ${params.REG}/${params.REPO}:${BUILD} || true\";" + sshCommand remote: remote, command: "sh -c \"docker rmi ${reg}/${params.REPO}:${BUILD} || true\";" sshCommand remote: remote, command: "sh -c \"docker image prune -f || true\";"; sshCommand remote: remote, command: "sh -c \"docker builder prune -f || true\";"; echo "重新部署" - sshCommand remote: remote, command: "sh -c \"kubectl -n euler-copilot set image deployment/web-deploy web=${params.REG}/${params.REPO}:${BUILD}\";" + sshCommand remote: remote, command: "sh -c \"kubectl -n euler-copilot set image deployment/web-deploy web=${reg}/${params.REPO}:${BUILD}\";" } diff --git a/deploy/prod/Dockerfile b/deploy/prod/Dockerfile index 30cdccdba093498438b710bfc026f5698fe8874b..a01ebb90a62710c90e3ec406fdda8013ca01fcaf 100644 --- a/deploy/prod/Dockerfile +++ b/deploy/prod/Dockerfile @@ -1,14 +1,13 @@ -FROM node:18.18.2-alpine +FROM node:18.20.6-alpine WORKDIR /opt/eulerCopilot-web COPY . . -RUN sed -i 's/qa-robot-openeuler/euler-copilot-master/g' .env && \ - npm install pnpm -g --registry=https://registry.npmmirror.com && \ +RUN npm install pnpm -g --registry=https://registry.npmmirror.com && \ pnpm install --registry=https://registry.npmmirror.com && \ pnpm run build -FROM openeuler/openeuler:22.03-lts-sp1 +FROM hub.oepkgs.net/openeuler/openeuler:22.03-lts-sp4 ENV TZ Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \ @@ -43,7 +42,7 @@ RUN sed -i 's/umask 002/umask 027/g' /etc/bashrc && \ find /var/log/nginx -type f -exec chmod 400 {} + RUN yum remove -y gdb-gdbserver && \ - sh -c "find /usr /etc \( -name *yum* -o -name *dnf* -o -name *vi* -o -name *sqlite* -o -name *python* \) -exec rm -rf {} + || true" && \ + sh -c "find /usr /etc \( -name *yum* -o -name *dnf* -o -name *sqlite* -o -name *python* \) -exec rm -rf {} + || true" && \ sh -c "find /usr /etc \( -name ps -o -name top \) -exec rm -rf {} + || true" EXPOSE 8080 diff --git a/deploy/prod/nginx.conf.tmpl b/deploy/prod/nginx.conf.tmpl index d3025d349a9ee5e34dc501f6ab335de3f0c91208..138aacdeb405561d0e11434c8e9c6f015f664da0 100644 --- a/deploy/prod/nginx.conf.tmpl +++ b/deploy/prod/nginx.conf.tmpl @@ -67,13 +67,10 @@ http { add_header X-Content-Type-Options nosniff; add_header Referrer-Policy "no-referrer"; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; always"; + add_header Cache-Control "no-cache"; add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: base64;"; - add_header Cache-Control "no-cache,no-store,must-revalidate"; - add_header X-Accel-Buffering no; - add_header Pragma no-cache; - add_header Expires 0; - - limit_conn limitperip 10; + + limit_conn limitperip 50; ${SSL_SETTINGS} @@ -93,7 +90,7 @@ http { location / { - limit_req zone=ratelimit burst=5 nodelay; + limit_req zone=ratelimit burst=50 nodelay; root /usr/share/nginx/html; try_files $uri $uri/ /index.html; if (!-e $request_filename){ @@ -102,14 +99,14 @@ http { } location /copilot { - limit_req zone=ratelimit burst=5 nodelay; + limit_req zone=ratelimit burst=50 nodelay; alias /usr/share/nginx/html; index index.html; try_files $uri $uri/ /index.html; } location /login { - limit_req zone=ratelimit burst=5 nodelay; + limit_req zone=ratelimit burst=50 nodelay; root /usr/share/nginx/html; try_files $uri $uri/ /index.html; } @@ -121,17 +118,13 @@ http { location /api/ { proxy_set_header X-Forwarded-For $http_x_real_ip; - add_header X-XSS-Protection "1; mode=block"; - add_header X-Content-Type-Options nosniff; - add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"; add_header Cache-Control "no-cache,no-store,must-revalidate"; add_header X-Accel-Buffering no; - add_header Pragma no-cache; - add_header Expires 0; proxy_buffering off; proxy_intercept_errors on; + error_page 404 /404.html; - limit_req zone=ratelimit burst=5 nodelay; + limit_req zone=ratelimit burst=15 nodelay; proxy_read_timeout 500s; proxy_connect_timeout 500s; diff --git a/env.d.ts b/env.d.ts index fe3b51289196b4bdb1f96367a6d7b7201a711f8d..ad8d6d5a42450984ab946b880909b2956d9d1a92 100644 --- a/env.d.ts +++ b/env.d.ts @@ -9,7 +9,7 @@ // See the Mulan PSL v2 for more details. /// declare interface Window { - onHtmlEventDispatch: (); + onHtmlEventDispatch: any; } declare interface ImportMetaEnv { diff --git a/eslint.config.js b/eslint.config.js index 2d403f63a75454cd8fa6a4ae3db3da10088cf149..26ecd885b0f9f1eb2fec2eb741b576c7dfa2858f 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,15 +1,24 @@ -import globals from "globals"; -import pluginJs from "@eslint/js"; -import tseslint from "typescript-eslint"; -import pluginVue from "eslint-plugin-vue"; - +import globals from 'globals'; +import pluginJs from '@eslint/js'; +import tseslint from 'typescript-eslint'; +import pluginVue from 'eslint-plugin-vue'; /** @type {import('eslint').Linter.Config[]} */ export default [ - {files: ["**/*.{js,mjs,cjs,ts,vue}"]}, - {languageOptions: { globals: globals.browser }}, + { files: ['**/*.{js,mjs,cjs,ts,vue}'] }, + { + ignores: [ + '**/node_modules/**', // 忽略 node_modules 目录 + '**/dist/**', // 忽略 dist 目录 + '**/.git/**', + ], + }, + { languageOptions: { globals: globals.browser } }, pluginJs.configs.recommended, ...tseslint.configs.recommended, - ...pluginVue.configs["flat/essential"], - {files: ["**/*.vue"], languageOptions: {parserOptions: {parser: tseslint.parser}}}, -]; \ No newline at end of file + ...pluginVue.configs['flat/essential'], + { + files: ['**/*.vue'], + languageOptions: { parserOptions: { parser: tseslint.parser } }, + }, +]; diff --git a/lib/opendesign-icons-1.0.5.tgz b/lib/opendesign-icons-1.0.5.tgz new file mode 100644 index 0000000000000000000000000000000000000000..02d29585d0cba04c5739090ec792170c5c003a73 Binary files /dev/null and b/lib/opendesign-icons-1.0.5.tgz differ diff --git a/lib/opendesign2-2.0.11.tgz b/lib/opendesign2-2.0.11.tgz deleted file mode 100644 index d11dc18e426343687bb9e278be323cb20b058db0..0000000000000000000000000000000000000000 Binary files a/lib/opendesign2-2.0.11.tgz and /dev/null differ diff --git a/lib/opendesign2-2.0.23.tgz b/lib/opendesign2-2.0.23.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a12e32b1605bcd942c2fdef4fd8f1bc420bc6d9b Binary files /dev/null and b/lib/opendesign2-2.0.23.tgz differ diff --git a/package.json b/package.json index ab59e9f77ac5ff860e9c895619f6400e22cf0b4d..9793cbbbdf13ae73172c353a58dc8928574acb96 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,9 @@ "build": "vite build", "build:micro": "vite build --mode micro", "preview": "vite preview", - "lint": "eslint . --fix --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-path .gitignore", - "format": "prettier --write src/" + "lint": "eslint . --fix", + "format": "prettier --write src/", + "type-check": "tsc --noEmit" }, "engines": { "node": ">= 18.18.2" @@ -20,16 +21,24 @@ "@babel/plugin-transform-runtime": "^7.25.9", "@babel/preset-env": "^7.26.0", "@codemirror/lang-json": "^6.0.1", + "@codemirror/lang-yaml": "^6.1.2", "@codemirror/theme-one-dark": "^6.1.2", - "@computing/opendesign2": "file:lib\\opendesign2-2.0.11.tgz", + "@computing/opendesign-icons": "file:lib\\opendesign-icons-1.0.5.tgz", + "@computing/opendesign2": "file:lib\\opendesign2-2.0.23.tgz", + "@dagrejs/dagre": "1.1.2", + "@element-plus/icons-vue": "^2.3.1", + "@microsoft/fetch-event-source": "^2.0.1", "axios": "1.7.9", "babel-loader": "^9.2.1", "codemirror": "^6.0.1", "dayjs": "1.11.9", "echarts": "^5.5.1", - "element-plus": "2.3.12", + "element-plus": "^2.8.3", "highlight.js": "11.10.0", + "js-yaml": "^4.1.0", "marked": "4.3", + "monaco-editor": "^0.52.2", + "monaco-yaml": "^5.3.1", "pinia": "2.1.6", "sass": "1.62.0", "typescript": "4.9.5", @@ -39,10 +48,7 @@ "vue-echarts": "^7.0.3", "vue-i18n": "^9.14.0", "vue-router": "4.2.4", - "xss": "1.0.14", - "xterm": "4.17.0", - "xterm-addon-attach": "0.5.0", - "xterm-addon-fit": "0.6.0" + "xss": "1.0.14" }, "devDependencies": { "@eslint/js": "9.16.0", @@ -50,11 +56,20 @@ "@typescript-eslint/eslint-plugin": "8.17.0", "@typescript-eslint/parser": "8.17.0", "@vitejs/plugin-vue": "5.2.1", + "@vitejs/plugin-vue-jsx": "^3.1.0", + "@vue-flow/background": "^1.3.0", + "@vue-flow/controls": "^1.1.2", + "@vue-flow/core": "^1.38.5", + "@vue-flow/minimap": "^1.5.0", + "@vue-flow/node-resizer": "^1.4.0", + "@vue-flow/node-toolbar": "^1.1.0", "eslint": "9.16.0", "eslint-plugin-vue": "9.32.0", "globals": "15.13.0", + "mitt": "^3.0.1", "prettier": "3.4.2", "typescript-eslint": "8.17.0", + "uuid": "^11.0.5", "vite-plugin-qiankun": "1.0.15" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e679b7e8e98b1bf0cfd49af040600f086463247e..81834dc4bcd7200cea6c6373c59e614d43cfa6bf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,12 +20,27 @@ importers: '@codemirror/lang-json': specifier: ^6.0.1 version: 6.0.1 + '@codemirror/lang-yaml': + specifier: ^6.1.2 + version: 6.1.2(@codemirror/view@6.35.2) '@codemirror/theme-one-dark': specifier: ^6.1.2 version: 6.1.2 + '@computing/opendesign-icons': + specifier: file:lib\opendesign-icons-1.0.5.tgz + version: file:lib/opendesign-icons-1.0.5.tgz '@computing/opendesign2': - specifier: file:lib\opendesign2-2.0.11.tgz - version: file:lib/opendesign2-2.0.11.tgz(element-plus@2.3.12(vue@3.3.4)) + specifier: file:lib\opendesign2-2.0.23.tgz + version: file:lib/opendesign2-2.0.23.tgz(element-plus@2.9.8(vue@3.3.4)) + '@dagrejs/dagre': + specifier: 1.1.2 + version: 1.1.2 + '@element-plus/icons-vue': + specifier: ^2.3.1 + version: 2.3.1(vue@3.3.4) + '@microsoft/fetch-event-source': + specifier: ^2.0.1 + version: 2.0.1 axios: specifier: 1.7.9 version: 1.7.9 @@ -42,14 +57,23 @@ importers: specifier: ^5.5.1 version: 5.5.1 element-plus: - specifier: 2.3.12 - version: 2.3.12(vue@3.3.4) + specifier: ^2.8.3 + version: 2.9.8(vue@3.3.4) highlight.js: specifier: 11.10.0 version: 11.10.0 + js-yaml: + specifier: ^4.1.0 + version: 4.1.0 marked: specifier: '4.3' version: 4.3.0 + monaco-editor: + specifier: ^0.52.2 + version: 0.52.2 + monaco-yaml: + specifier: ^5.3.1 + version: 5.3.1(monaco-editor@0.52.2) pinia: specifier: 2.1.6 version: 2.1.6(typescript@4.9.5)(vue@3.3.4) @@ -80,15 +104,6 @@ importers: xss: specifier: 1.0.14 version: 1.0.14 - xterm: - specifier: 4.17.0 - version: 4.17.0 - xterm-addon-attach: - specifier: 0.5.0 - version: 0.5.0(xterm@4.17.0) - xterm-addon-fit: - specifier: 0.6.0 - version: 0.6.0(xterm@4.17.0) devDependencies: '@eslint/js': specifier: 9.16.0 @@ -105,6 +120,27 @@ importers: '@vitejs/plugin-vue': specifier: 5.2.1 version: 5.2.1(vite@5.4.11(@types/node@18.19.67)(sass@1.62.0)(terser@5.37.0))(vue@3.3.4) + '@vitejs/plugin-vue-jsx': + specifier: ^3.1.0 + version: 3.1.0(vite@5.4.11(@types/node@18.19.67)(sass@1.62.0)(terser@5.37.0))(vue@3.3.4) + '@vue-flow/background': + specifier: ^1.3.0 + version: 1.3.2(@vue-flow/core@1.42.1(vue@3.3.4))(vue@3.3.4) + '@vue-flow/controls': + specifier: ^1.1.2 + version: 1.1.2(@vue-flow/core@1.42.1(vue@3.3.4))(vue@3.3.4) + '@vue-flow/core': + specifier: ^1.38.5 + version: 1.42.1(vue@3.3.4) + '@vue-flow/minimap': + specifier: ^1.5.0 + version: 1.5.2(@vue-flow/core@1.42.1(vue@3.3.4))(vue@3.3.4) + '@vue-flow/node-resizer': + specifier: ^1.4.0 + version: 1.4.0(@vue-flow/core@1.42.1(vue@3.3.4))(vue@3.3.4) + '@vue-flow/node-toolbar': + specifier: ^1.1.0 + version: 1.1.0(@vue-flow/core@1.42.1(vue@3.3.4)) eslint: specifier: 9.16.0 version: 9.16.0 @@ -114,12 +150,18 @@ importers: globals: specifier: 15.13.0 version: 15.13.0 + mitt: + specifier: ^3.0.1 + version: 3.0.1 prettier: specifier: 3.4.2 version: 3.4.2 typescript-eslint: specifier: 8.17.0 version: 8.17.0(eslint@9.16.0)(typescript@4.9.5) + uuid: + specifier: ^11.0.5 + version: 11.1.0 vite-plugin-qiankun: specifier: 1.0.15 version: 1.0.15(typescript@4.9.5)(vite@5.4.11(@types/node@18.19.67)(sass@1.62.0)(terser@5.37.0)) @@ -146,6 +188,10 @@ packages: resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} engines: {node: '>=6.9.0'} + '@babel/generator@7.27.0': + resolution: {integrity: sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.25.9': resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} @@ -160,6 +206,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.27.0': + resolution: {integrity: sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.26.3': resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==} engines: {node: '>=6.9.0'} @@ -193,6 +245,10 @@ packages: resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.26.5': + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} + engines: {node: '>=6.9.0'} + '@babel/helper-remap-async-to-generator@7.25.9': resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} engines: {node: '>=6.9.0'} @@ -205,6 +261,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.26.5': + resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} @@ -247,6 +309,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.27.0': + resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} @@ -295,6 +362,18 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.25.9': + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -583,6 +662,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typescript@7.27.0': + resolution: {integrity: sha512-fRGGjO2UEGPjvEcyAZXRXAS8AfdaQoq7HnxAbJoAoW10B9xOKesmmndJv+Sym2a+9FHWZ9KbyyLCe9s0Sn5jtg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-escapes@7.25.9': resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} engines: {node: '>=6.9.0'} @@ -626,10 +711,18 @@ packages: resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} + '@babel/template@7.27.0': + resolution: {integrity: sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.26.4': resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.27.0': + resolution: {integrity: sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==} + engines: {node: '>=6.9.0'} + '@babel/types@7.25.6': resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} @@ -638,6 +731,10 @@ packages: resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} engines: {node: '>=6.9.0'} + '@babel/types@7.27.0': + resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} + engines: {node: '>=6.9.0'} + '@codemirror/autocomplete@6.18.3': resolution: {integrity: sha512-1dNIOmiM0z4BIBwxmxEfA1yoxh1MF/6KPBbh20a5vphGV0ictKlgQsbJs6D6SkR6iJpGbpwRsa6PFMNlg9T9pQ==} peerDependencies: @@ -652,6 +749,9 @@ packages: '@codemirror/lang-json@6.0.1': resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} + '@codemirror/lang-yaml@6.1.2': + resolution: {integrity: sha512-dxrfG8w5Ce/QbT7YID7mWZFKhdhsaTNOYjOkSIMt1qmC4VQnXSDSYVHHHn8k6kJUfIhtLo8t1JJgltlxWdsITw==} + '@codemirror/language@6.10.6': resolution: {integrity: sha512-KrsbdCnxEztLVbB5PycWXFxas4EOyk/fPAfruSOnDDppevQgid2XZ+KbJ9u+fDikP/e7MW7HPBTvTb8JlZK9vA==} @@ -670,16 +770,27 @@ packages: '@codemirror/view@6.35.2': resolution: {integrity: sha512-u04R04XFCYCNaHoNRr37WUUAfnxKPwPdqV+370NiO6i85qB1J/qCD/WbbMJsyJfRWhXIJXAe2BG/oTzAggqv4A==} - '@computing/opendesign2@file:lib/opendesign2-2.0.11.tgz': - resolution: {integrity: sha512-/VMvfeygSenedb7zHH3SvUgQqH5RgC1w9p0/XkDVRVYSge4Nv9PkwTxdf/HHlqs8LeH1WQwKNRJWU9/+n4vaTw==, tarball: file:lib/opendesign2-2.0.11.tgz} - version: 2.0.11 + '@computing/opendesign-icons@file:lib/opendesign-icons-1.0.5.tgz': + resolution: {integrity: sha512-rLm+KRWNgTAIyiPpw+PEHzlAvLfFjWcU/z1bYQtA4oOSUANYF1ZPcil3jK9qTLI/HJNvvSJ/U+21F0f+yGEzAg==, tarball: file:lib/opendesign-icons-1.0.5.tgz} + version: 1.0.5 + + '@computing/opendesign2@file:lib/opendesign2-2.0.23.tgz': + resolution: {integrity: sha512-lkI3Rc5B+LvPU+2nGf4Nw6vcMpnTGlSX/1NcCD7gaN3Hp2bczIRIgrPXt9uhQRU0rhq3/BqCR9D9FiDYZ5n32Q==, tarball: file:lib/opendesign2-2.0.23.tgz} + version: 2.0.23 peerDependencies: - element-plus: '>=2.2.34' + element-plus: '>=2.6.0' '@ctrl/tinycolor@3.6.1': resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} engines: {node: '>=10'} + '@dagrejs/dagre@1.1.2': + resolution: {integrity: sha512-F09dphqvHsbe/6C2t2unbmpr5q41BNPEfJCdn8Z7aEBpVSy/zFQ/b4SWsweQjWNsYMDvE2ffNUN8X0CeFsEGNw==} + + '@dagrejs/graphlib@2.2.2': + resolution: {integrity: sha512-CbyGpCDKsiTg/wuk79S7Muoj8mghDGAESWGxcSyhHX5jD35vYMBZochYVFzlHxynpE9unpu6O+4ZuhrLxASsOg==} + engines: {node: '>17.0.0'} + '@element-plus/icons-vue@2.3.1': resolution: {integrity: sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==} peerDependencies: @@ -931,6 +1042,12 @@ packages: '@lezer/lr@1.4.2': resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} + '@lezer/yaml@1.0.3': + resolution: {integrity: sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==} + + '@microsoft/fetch-event-source@2.0.1': + resolution: {integrity: sha512-W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1075,6 +1192,9 @@ packages: '@types/web-bluetooth@0.0.16': resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + '@types/web-bluetooth@0.0.20': + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + '@typescript-eslint/eslint-plugin@8.17.0': resolution: {integrity: sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1137,6 +1257,13 @@ packages: resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@vitejs/plugin-vue-jsx@3.1.0': + resolution: {integrity: sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 || ^5.0.0 + vue: ^3.0.0 + '@vitejs/plugin-vue@5.2.1': resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==} engines: {node: ^18.0.0 || >=20.0.0} @@ -1144,18 +1271,80 @@ packages: vite: ^5.0.0 || ^6.0.0 vue: ^3.2.25 + '@vue-flow/background@1.3.2': + resolution: {integrity: sha512-eJPhDcLj1wEo45bBoqTXw1uhl0yK2RaQGnEINqvvBsAFKh/camHJd5NPmOdS1w+M9lggc9igUewxaEd3iCQX2w==} + peerDependencies: + '@vue-flow/core': ^1.23.0 + vue: ^3.3.0 + + '@vue-flow/controls@1.1.2': + resolution: {integrity: sha512-6dtl/JnwDBNau5h3pDBdOCK6tdxiVAOL3cyruRL61gItwq5E97Hmjmj2BIIqX2p7gU1ENg3z80Z4zlu58fGlsg==} + peerDependencies: + '@vue-flow/core': ^1.23.0 + vue: ^3.3.0 + + '@vue-flow/core@1.42.1': + resolution: {integrity: sha512-QzzTxMAXfOeETKc+N3XMp5XpiPxKBHK5kq98avgTsE6MXyeU2E8EkANwwgSB/hvJ/k36RjU0Y7BOwCHiqiI1tw==} + peerDependencies: + vue: ^3.3.0 + + '@vue-flow/minimap@1.5.2': + resolution: {integrity: sha512-XNSpWwwXfCWqJilc2eCW+3ry3r9vhF8HmUw5wrAsUTHiss4R9k5uZLABo7c3T3VdcVRJ8pTfUJ9vjpzb8H+FKg==} + peerDependencies: + '@vue-flow/core': ^1.23.0 + vue: ^3.3.0 + + '@vue-flow/node-resizer@1.4.0': + resolution: {integrity: sha512-S52MRcSpd6asza8Cl0bKM2sHGrbq7vBydKHDuPdoTD+cvjNX6XF4LSiPZOuzExePI6b+O6dg2EZ1378oOLGFpA==} + peerDependencies: + '@vue-flow/core': ^1.23.0 + vue: ^3.3.0 + + '@vue-flow/node-toolbar@1.1.0': + resolution: {integrity: sha512-6RVDHgY+x8m1cXPaEkqPa/RMR90AC1hPHYBK/QVh8k6lJnFPgwJ9PSiYoC4amsUiDK0mF0Py+PlztLJY1ty+4A==} + peerDependencies: + '@vue-flow/core': ^1.12.2 + + '@vue/babel-helper-vue-transform-on@1.4.0': + resolution: {integrity: sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==} + + '@vue/babel-plugin-jsx@1.4.0': + resolution: {integrity: sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + peerDependenciesMeta: + '@babel/core': + optional: true + + '@vue/babel-plugin-resolve-type@1.4.0': + resolution: {integrity: sha512-4xqDRRbQQEWHQyjlYSgZsWj44KfiF6D+ktCuXyZ8EnVDYV3pztmXJDf1HveAjUAXxAnR8daCQT51RneWWxtTyQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@vue/compiler-core@3.3.4': resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} + '@vue/compiler-core@3.5.13': + resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + '@vue/compiler-dom@3.3.4': resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} + '@vue/compiler-dom@3.5.13': + resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + '@vue/compiler-sfc@3.3.4': resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} + '@vue/compiler-sfc@3.5.13': + resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + '@vue/compiler-ssr@3.3.4': resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} + '@vue/compiler-ssr@3.5.13': + resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + '@vue/devtools-api@6.6.3': resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} @@ -1179,12 +1368,24 @@ packages: '@vue/shared@3.3.4': resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} + '@vue/shared@3.5.13': + resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + + '@vueuse/core@10.11.1': + resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==} + '@vueuse/core@9.13.0': resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + '@vueuse/metadata@10.11.1': + resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==} + '@vueuse/metadata@9.13.0': resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + '@vueuse/shared@10.11.1': + resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==} + '@vueuse/shared@9.13.0': resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} @@ -1423,6 +1624,47 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + + d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + d3-transition@3.0.1: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + + d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + dayjs@1.11.9: resolution: {integrity: sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==} @@ -1461,8 +1703,8 @@ packages: electron-to-chromium@1.5.71: resolution: {integrity: sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==} - element-plus@2.3.12: - resolution: {integrity: sha512-fAWpbKCyt+l1dsqSNPOs/F/dBN4Wp5CGAyxbiS5zqDwI4q3QPM+LxLU2h3GUHMIBtMGCvmsG98j5HPMkTKkvcA==} + element-plus@2.9.8: + resolution: {integrity: sha512-srViUaUdfblBKGMeuEPiXxxKlH5aUmKqEwmhb/At9Sj91DbU6od/jYN1955cTnzt3wTSA7GfnZF7UiRX9sdRHg==} peerDependencies: vue: ^3.2.0 @@ -1764,6 +2006,9 @@ packages: engines: {node: '>=6'} hasBin: true + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -1842,9 +2087,39 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + monaco-editor@0.52.2: + resolution: {integrity: sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==} + + monaco-languageserver-types@0.4.0: + resolution: {integrity: sha512-QQ3BZiU5LYkJElGncSNb5AKoJ/LCs6YBMCJMAz9EA7v+JaOdn3kx2cXpPTcZfKA5AEsR0vc97sAw+5mdNhVBmw==} + + monaco-marker-data-provider@1.2.4: + resolution: {integrity: sha512-4DsPgsAqpTyUDs3humXRBPUJoihTv+L6v9aupQWD80X2YXaCXUd11mWYeSCYHuPgdUmjFaNWCEOjQ6ewf/QA1Q==} + + monaco-types@0.1.0: + resolution: {integrity: sha512-aWK7SN9hAqNYi0WosPoMjenMeXJjwCxDibOqWffyQ/qXdzB/86xshGQobRferfmNz7BSNQ8GB0MD0oby9/5fTQ==} + + monaco-worker-manager@2.0.1: + resolution: {integrity: sha512-kdPL0yvg5qjhKPNVjJoym331PY/5JC11aPJXtCZNwWRvBr6jhkIamvYAyiY5P1AWFmNOy0aRDRoMdZfa71h8kg==} + peerDependencies: + monaco-editor: '>=0.30.0' + + monaco-yaml@5.3.1: + resolution: {integrity: sha512-1MN8i1Tnc8d8RugQGqv5jp+Ce2xtNhrnbm0ZZbe5ceExj9C2PkKZfHJhY9kbdUS4G7xSVwKlVdMTmLlStepOtw==} + peerDependencies: + monaco-editor: '>=0.36' + ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -1902,6 +2177,9 @@ packages: parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -1951,6 +2229,10 @@ packages: resolution: {integrity: sha512-gJAQVYbh5R3gYm33FijzCZj7CHyQ3hWMgJMprLUlIYqCwTeZhBQ19wp0e9mA25BUbEvY5+EXuuaAjqQsrBxQBQ==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -2068,6 +2350,10 @@ packages: resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} @@ -2194,6 +2480,10 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + uuid@11.1.0: + resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} + hasBin: true + vite-plugin-qiankun@1.0.15: resolution: {integrity: sha512-0QB0Wr8Eu/LGcuJAfuNXDb7BAFDszo3GCxq4bzgXdSFAlK425u1/UGMxaDEBVA1uPFrLsZPzig83Ufdfl6J45A==} peerDependencies: @@ -2231,6 +2521,22 @@ packages: terser: optional: true + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-uri@3.1.0: + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + vue-codemirror@6.1.1: resolution: {integrity: sha512-rTAYo44owd282yVxKtJtnOi7ERAcXTeviwoPXjIc6K/IQYUsoDkzPvw/JDFtSP6T7Cz/2g3EHaEyeyaQCKoDMg==} peerDependencies: @@ -2336,25 +2642,14 @@ packages: engines: {node: '>= 0.10.0'} hasBin: true - xterm-addon-attach@0.5.0: - resolution: {integrity: sha512-L6ThPjF/fVt+gJS2+2h2rEEAXNxIRmCU8/RCM6rYR08K9GtPiHmYcnpRT7WNJf31yFLpWVA8dKcItfP3C0ZKlA==} - deprecated: This package is now deprecated. Move to @xterm/addon-attach instead. - peerDependencies: - xterm: ^4.0.0 - - xterm-addon-fit@0.6.0: - resolution: {integrity: sha512-9/7A+1KEjkFam0yxTaHfuk9LEvvTSBi0PZmEkzJqgafXPEXL9pCMAVV7rB09sX6ATRDXAdBpQhZkhKj7CGvYeg==} - deprecated: This package is now deprecated. Move to @xterm/addon-fit instead. - peerDependencies: - xterm: ^5.0.0 - - xterm@4.17.0: - resolution: {integrity: sha512-WGXlIHvLvZKtwMdFaL6kUwp+c9abd2Pcakp/GmuefBuOtGCu9fP9tBDPKyL/A17N+5tt44EYk3YsBbvkPBubMw==} - deprecated: This package is now deprecated. Move to @xterm/xterm instead. - yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yaml@2.7.1: + resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==} + engines: {node: '>= 14'} + hasBin: true + yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} @@ -2409,6 +2704,14 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.0.2 + '@babel/generator@7.27.0': + dependencies: + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + '@babel/helper-annotate-as-pure@7.25.9': dependencies: '@babel/types': 7.26.3 @@ -2434,6 +2737,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-create-class-features-plugin@7.27.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.27.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -2481,6 +2797,8 @@ snapshots: '@babel/helper-plugin-utils@7.25.9': {} + '@babel/helper-plugin-utils@7.26.5': {} + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -2499,6 +2817,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.27.0 + transitivePeerDependencies: + - supports-color + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: '@babel/traverse': 7.26.4 @@ -2537,6 +2864,10 @@ snapshots: dependencies: '@babel/types': 7.26.3 + '@babel/parser@7.27.0': + dependencies: + '@babel/types': 7.27.0 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -2586,6 +2917,16 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -2900,6 +3241,17 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-typescript@7.27.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.27.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -3015,6 +3367,12 @@ snapshots: '@babel/parser': 7.26.3 '@babel/types': 7.26.3 + '@babel/template@7.27.0': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.27.0 + '@babel/types': 7.27.0 + '@babel/traverse@7.26.4': dependencies: '@babel/code-frame': 7.26.2 @@ -3027,6 +3385,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.27.0': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.27.0 + '@babel/parser': 7.27.0 + '@babel/template': 7.27.0 + '@babel/types': 7.27.0 + debug: 4.3.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.25.6': dependencies: '@babel/helper-string-parser': 7.24.8 @@ -3038,6 +3408,11 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.27.0': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@codemirror/autocomplete@6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.2)(@lezer/common@1.2.3)': dependencies: '@codemirror/language': 6.10.6 @@ -3057,6 +3432,18 @@ snapshots: '@codemirror/language': 6.10.6 '@lezer/json': 1.0.2 + '@codemirror/lang-yaml@6.1.2(@codemirror/view@6.35.2)': + dependencies: + '@codemirror/autocomplete': 6.18.3(@codemirror/language@6.10.6)(@codemirror/state@6.4.1)(@codemirror/view@6.35.2)(@lezer/common@1.2.3) + '@codemirror/language': 6.10.6 + '@codemirror/state': 6.4.1 + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + '@lezer/yaml': 1.0.3 + transitivePeerDependencies: + - '@codemirror/view' + '@codemirror/language@6.10.6': dependencies: '@codemirror/state': 6.4.1 @@ -3093,12 +3480,20 @@ snapshots: style-mod: 4.1.2 w3c-keyname: 2.2.8 - '@computing/opendesign2@file:lib/opendesign2-2.0.11.tgz(element-plus@2.3.12(vue@3.3.4))': + '@computing/opendesign-icons@file:lib/opendesign-icons-1.0.5.tgz': {} + + '@computing/opendesign2@file:lib/opendesign2-2.0.23.tgz(element-plus@2.9.8(vue@3.3.4))': dependencies: - element-plus: 2.3.12(vue@3.3.4) + element-plus: 2.9.8(vue@3.3.4) '@ctrl/tinycolor@3.6.1': {} + '@dagrejs/dagre@1.1.2': + dependencies: + '@dagrejs/graphlib': 2.2.2 + + '@dagrejs/graphlib@2.2.2': {} + '@element-plus/icons-vue@2.3.1(vue@3.3.4)': dependencies: vue: 3.3.4 @@ -3287,6 +3682,14 @@ snapshots: dependencies: '@lezer/common': 1.2.3 + '@lezer/yaml@1.0.3': + dependencies: + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + + '@microsoft/fetch-event-source@2.0.1': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3384,6 +3787,8 @@ snapshots: '@types/web-bluetooth@0.0.16': {} + '@types/web-bluetooth@0.0.20': {} + '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@4.9.5))(eslint@9.16.0)(typescript@4.9.5)': dependencies: '@eslint-community/regexpp': 4.12.1 @@ -3466,11 +3871,88 @@ snapshots: '@typescript-eslint/types': 8.17.0 eslint-visitor-keys: 4.2.0 + '@vitejs/plugin-vue-jsx@3.1.0(vite@5.4.11(@types/node@18.19.67)(sass@1.62.0)(terser@5.37.0))(vue@3.3.4)': + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-transform-typescript': 7.27.0(@babel/core@7.26.0) + '@vue/babel-plugin-jsx': 1.4.0(@babel/core@7.26.0) + vite: 5.4.11(@types/node@18.19.67)(sass@1.62.0)(terser@5.37.0) + vue: 3.3.4 + transitivePeerDependencies: + - supports-color + '@vitejs/plugin-vue@5.2.1(vite@5.4.11(@types/node@18.19.67)(sass@1.62.0)(terser@5.37.0))(vue@3.3.4)': dependencies: vite: 5.4.11(@types/node@18.19.67)(sass@1.62.0)(terser@5.37.0) vue: 3.3.4 + '@vue-flow/background@1.3.2(@vue-flow/core@1.42.1(vue@3.3.4))(vue@3.3.4)': + dependencies: + '@vue-flow/core': 1.42.1(vue@3.3.4) + vue: 3.3.4 + + '@vue-flow/controls@1.1.2(@vue-flow/core@1.42.1(vue@3.3.4))(vue@3.3.4)': + dependencies: + '@vue-flow/core': 1.42.1(vue@3.3.4) + vue: 3.3.4 + + '@vue-flow/core@1.42.1(vue@3.3.4)': + dependencies: + '@vueuse/core': 10.11.1(vue@3.3.4) + d3-drag: 3.0.0 + d3-selection: 3.0.0 + d3-zoom: 3.0.0 + vue: 3.3.4 + transitivePeerDependencies: + - '@vue/composition-api' + + '@vue-flow/minimap@1.5.2(@vue-flow/core@1.42.1(vue@3.3.4))(vue@3.3.4)': + dependencies: + '@vue-flow/core': 1.42.1(vue@3.3.4) + d3-selection: 3.0.0 + d3-zoom: 3.0.0 + vue: 3.3.4 + + '@vue-flow/node-resizer@1.4.0(@vue-flow/core@1.42.1(vue@3.3.4))(vue@3.3.4)': + dependencies: + '@vue-flow/core': 1.42.1(vue@3.3.4) + d3-drag: 3.0.0 + d3-selection: 3.0.0 + vue: 3.3.4 + + '@vue-flow/node-toolbar@1.1.0(@vue-flow/core@1.42.1(vue@3.3.4))': + dependencies: + '@vue-flow/core': 1.42.1(vue@3.3.4) + + '@vue/babel-helper-vue-transform-on@1.4.0': {} + + '@vue/babel-plugin-jsx@1.4.0(@babel/core@7.26.0)': + dependencies: + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/template': 7.27.0 + '@babel/traverse': 7.27.0 + '@babel/types': 7.27.0 + '@vue/babel-helper-vue-transform-on': 1.4.0 + '@vue/babel-plugin-resolve-type': 1.4.0(@babel/core@7.26.0) + '@vue/shared': 3.5.13 + optionalDependencies: + '@babel/core': 7.26.0 + transitivePeerDependencies: + - supports-color + + '@vue/babel-plugin-resolve-type@1.4.0(@babel/core@7.26.0)': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/parser': 7.27.0 + '@vue/compiler-sfc': 3.5.13 + transitivePeerDependencies: + - supports-color + '@vue/compiler-core@3.3.4': dependencies: '@babel/parser': 7.25.6 @@ -3478,11 +3960,24 @@ snapshots: estree-walker: 2.0.2 source-map-js: 1.2.0 + '@vue/compiler-core@3.5.13': + dependencies: + '@babel/parser': 7.27.0 + '@vue/shared': 3.5.13 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.0 + '@vue/compiler-dom@3.3.4': dependencies: '@vue/compiler-core': 3.3.4 '@vue/shared': 3.3.4 + '@vue/compiler-dom@3.5.13': + dependencies: + '@vue/compiler-core': 3.5.13 + '@vue/shared': 3.5.13 + '@vue/compiler-sfc@3.3.4': dependencies: '@babel/parser': 7.25.6 @@ -3496,11 +3991,28 @@ snapshots: postcss: 8.4.43 source-map-js: 1.2.0 + '@vue/compiler-sfc@3.5.13': + dependencies: + '@babel/parser': 7.27.0 + '@vue/compiler-core': 3.5.13 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + estree-walker: 2.0.2 + magic-string: 0.30.11 + postcss: 8.5.3 + source-map-js: 1.2.0 + '@vue/compiler-ssr@3.3.4': dependencies: '@vue/compiler-dom': 3.3.4 '@vue/shared': 3.3.4 + '@vue/compiler-ssr@3.5.13': + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/shared': 3.5.13 + '@vue/devtools-api@6.6.3': {} '@vue/reactivity-transform@3.3.4': @@ -3534,6 +4046,18 @@ snapshots: '@vue/shared@3.3.4': {} + '@vue/shared@3.5.13': {} + + '@vueuse/core@10.11.1(vue@3.3.4)': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.11.1 + '@vueuse/shared': 10.11.1(vue@3.3.4) + vue-demi: 0.14.10(vue@3.3.4) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + '@vueuse/core@9.13.0(vue@3.3.4)': dependencies: '@types/web-bluetooth': 0.0.16 @@ -3544,8 +4068,17 @@ snapshots: - '@vue/composition-api' - vue + '@vueuse/metadata@10.11.1': {} + '@vueuse/metadata@9.13.0': {} + '@vueuse/shared@10.11.1(vue@3.3.4)': + dependencies: + vue-demi: 0.14.10(vue@3.3.4) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + '@vueuse/shared@9.13.0(vue@3.3.4)': dependencies: vue-demi: 0.14.10(vue@3.3.4) @@ -3852,6 +4385,44 @@ snapshots: csstype@3.1.3: {} + d3-color@3.1.0: {} + + d3-dispatch@3.0.1: {} + + d3-drag@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + + d3-ease@3.0.1: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-selection@3.0.0: {} + + d3-timer@3.0.1: {} + + d3-transition@3.0.1(d3-selection@3.0.0): + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 + + d3-zoom@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + dayjs@1.11.13: {} + dayjs@1.11.9: {} debug@4.3.6: @@ -3887,7 +4458,7 @@ snapshots: electron-to-chromium@1.5.71: {} - element-plus@2.3.12(vue@3.3.4): + element-plus@2.9.8(vue@3.3.4): dependencies: '@ctrl/tinycolor': 3.6.1 '@element-plus/icons-vue': 2.3.1(vue@3.3.4) @@ -3897,7 +4468,7 @@ snapshots: '@types/lodash-es': 4.17.12 '@vueuse/core': 9.13.0(vue@3.3.4) async-validator: 4.2.5 - dayjs: 1.11.9 + dayjs: 1.11.13 escape-html: 1.0.3 lodash: 4.17.21 lodash-es: 4.17.21 @@ -4219,6 +4790,8 @@ snapshots: json5@2.2.3: {} + jsonc-parser@3.3.1: {} + keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -4287,8 +4860,45 @@ snapshots: dependencies: brace-expansion: 2.0.1 + mitt@3.0.1: {} + + monaco-editor@0.52.2: {} + + monaco-languageserver-types@0.4.0: + dependencies: + monaco-types: 0.1.0 + vscode-languageserver-protocol: 3.17.5 + vscode-uri: 3.1.0 + + monaco-marker-data-provider@1.2.4: + dependencies: + monaco-types: 0.1.0 + + monaco-types@0.1.0: {} + + monaco-worker-manager@2.0.1(monaco-editor@0.52.2): + dependencies: + monaco-editor: 0.52.2 + + monaco-yaml@5.3.1(monaco-editor@0.52.2): + dependencies: + jsonc-parser: 3.3.1 + monaco-editor: 0.52.2 + monaco-languageserver-types: 0.4.0 + monaco-marker-data-provider: 1.2.4 + monaco-types: 0.1.0 + monaco-worker-manager: 2.0.1(monaco-editor@0.52.2) + path-browserify: 1.0.1 + prettier: 3.4.2 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.1.0 + yaml: 2.7.1 + ms@2.1.2: {} + nanoid@3.3.11: {} + nanoid@3.3.7: {} natural-compare@1.4.0: {} @@ -4347,6 +4957,8 @@ snapshots: dependencies: entities: 4.5.0 + path-browserify@1.0.1: {} + path-exists@4.0.0: {} path-exists@5.0.0: {} @@ -4384,6 +4996,12 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 + postcss@8.5.3: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + prelude-ls@1.2.1: {} prettier@3.4.2: {} @@ -4509,6 +5127,8 @@ snapshots: source-map-js@1.2.0: {} + source-map-js@1.2.1: {} + source-map-support@0.5.21: dependencies: buffer-from: 1.1.2 @@ -4606,6 +5226,8 @@ snapshots: util-deprecate@1.0.2: {} + uuid@11.1.0: {} + vite-plugin-qiankun@1.0.15(typescript@4.9.5)(vite@5.4.11(@types/node@18.19.67)(sass@1.62.0)(terser@5.37.0)): dependencies: cheerio: 1.0.0 @@ -4623,6 +5245,19 @@ snapshots: sass: 1.62.0 terser: 5.37.0 + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-uri@3.1.0: {} + vue-codemirror@6.1.1(codemirror@6.0.1(@lezer/common@1.2.3))(vue@3.3.4): dependencies: '@codemirror/commands': 6.7.1 @@ -4741,18 +5376,10 @@ snapshots: commander: 2.20.3 cssfilter: 0.0.10 - xterm-addon-attach@0.5.0(xterm@4.17.0): - dependencies: - xterm: 4.17.0 - - xterm-addon-fit@0.6.0(xterm@4.17.0): - dependencies: - xterm: 4.17.0 - - xterm@4.17.0: {} - yallist@3.1.1: {} + yaml@2.7.1: {} + yocto-queue@0.1.0: {} yocto-queue@1.1.1: {} diff --git a/shims-vue.d.ts b/shims-vue.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..6769564efcc807143034f9476c05edcfecafdeef --- /dev/null +++ b/shims-vue.d.ts @@ -0,0 +1,5 @@ +declare module '*.vue' { + import type { DefineComponent } from 'vue'; + const component: DefineComponent<{}, {}, any>; + export default component; + } \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 592032d84e77869d0bd1a7675c5b2f5078a8a299..46439d73c66da38b75e8c2b033614a79667d42d3 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,12 +1,12 @@ - - diff --git a/src/apis/appCenter/appCenterService.ts b/src/apis/appCenter/appCenterService.ts new file mode 100644 index 0000000000000000000000000000000000000000..9ec8328b2c16aa7d3e272635b07cd7b3cd58e073 --- /dev/null +++ b/src/apis/appCenter/appCenterService.ts @@ -0,0 +1,91 @@ +// Copyright (c) Huawei Technologies Co., Ltd. 2023-2024. All rights reserved. +import { post, get, del, put } from 'src/apis/server'; +import type { FcResponse } from 'src/apis/server'; +import { QueryAppListParamsType, CreateOrUpdateAppParamsType } from './type'; +/** + * 获取应用列表 + * @param params + * @returns + */ +export const queryAppList = ( + params: QueryAppListParamsType, +): Promise<[any, FcResponse | undefined]> => { + return get('/api/app', params); +}; + +/** + * 创建应用/更新应用 + * @param params + * @returns + */ +export const createOrUpdateApp = ( + params: CreateOrUpdateAppParamsType, +): Promise<[any, FcResponse | undefined]> => { + return post('/api/app', params); +}; + +/** + * 获取应用数据 + * @param params + * @returns + */ +export const querySingleAppData = (params: { + id: string; +}): Promise<[any, FcResponse | undefined]> => { + return get(`/api/app/${params.id}`); +}; + +/** + * 删除应用 + * @param params + * @returns + */ +export const deleteSingleAppData = (params: { + id: string; +}): Promise<[any, FcResponse | undefined]> => { + return del(`/api/app/${params.id}`, params); +}; + +/** + * 发布应用 + * @param params + * @returns + */ +export const releaseSingleAppData = (params: { + id: string; +}): Promise<[any, FcResponse | undefined]> => { + return post(`/api/app/${params.id}`, params); +}; + +/** + * 更改应用收藏状态 + * @param params + * @returns + */ +export const changeSingleAppCollect = (params: { + id: string; + favorited: boolean; +}): Promise<[any, FcResponse | undefined]> => { + return put(`/api/app/${params.id}`, { favorited: params.favorited }); +}; + +/** + * 获取 + * @param params + * @returns + */ +export const getPartAppConfgUser = (): Promise< + [any, FcResponse | undefined] +> => { + return get('/api/user'); +}; + +export const appCenterApi = { + queryAppList, + createOrUpdateApp, + querySingleAppData, + deleteSingleAppData, + releaseSingleAppData, + changeSingleAppCollect, + getPartAppConfgUser, +}; diff --git a/src/apis/appCenter/index.ts b/src/apis/appCenter/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..95d1ce017d353e0157bca4a5084afd72ec08da1a --- /dev/null +++ b/src/apis/appCenter/index.ts @@ -0,0 +1,2 @@ +// Copyright (c) Huawei Technologies Co., Ltd. 2023-2024. All rights reserved. +export * from './appCenterService'; diff --git a/src/apis/appCenter/type.ts b/src/apis/appCenter/type.ts new file mode 100644 index 0000000000000000000000000000000000000000..ae30e0e98fe59bce2e0b1a64189e4f8feadd0cdd --- /dev/null +++ b/src/apis/appCenter/type.ts @@ -0,0 +1,115 @@ +export interface QueryAppListParamsType { + /** + * 筛选“我创建的”应用 + */ + createdByMe?: boolean; + /** + * 筛选“我收藏的”应用 + */ + favorited?: boolean; + /** + * 搜索关键字 + */ + keyword?: string; + /** + * 页码 + */ + page?: number; + /** + * 每页数量 + */ + pageSize?: number; + /** + * 搜索类型:全部字段或仅按名称/简介/作者字段;若不填,则视为 'all' + */ + searchType?: SearchType; + [property: string]: any; +} + +/** + * 搜索类型:全部字段或仅按名称/简介/作者字段;若不填,则视为 'all' + */ +export enum SearchType { + All = 'all', + Author = 'author', + Description = 'description', + Name = 'name', +} + +/** + * CreateAppRequest, 创建/更新应用请求数据结构 + */ +export interface CreateOrUpdateAppParamsType { + /** + * 应用ID + */ + appId?: string; + /** + * 应用简介 + */ + description?: string; + /** + * 对话轮次(1~10) + */ + dialogRounds?: number; + /** + * 图标 + */ + icon?: string; + /** + * 相关链接(URL列表,最多5项) + */ + links?: AppLink[]; + /** + * 应用名称 + */ + name?: string; + /** + * 权限配置 + */ + permission?: AppPermissionData; + /** + * 推荐问题(列表,最多3项) + */ + recommendedQuestions?: string[]; + /** + * 工作流(列表,每个元素为工作流ID) + */ + workflows?: string[]; + [property: string]: any; +} + +/** + * AppLink, 应用链接数据结构 + */ +export interface AppLink { + /** + * 链接标题 + */ + title?: string; + /** + * 链接地址 + */ + url: string; + [property: string]: any; +} + +/** + * 权限配置 + * + * AppPermissionData, 应用权限配置数据结构 + */ +export interface AppPermissionData { + /** + * 附加人员名单(如果可见性为部分人可见) + */ + authorizedUsers?: string[]; + visibility: Visibility; + [property: string]: any; +} + +export enum Visibility { + Private = 'private', + Protected = 'protected', + Public = 'public', +} diff --git a/src/apis/index.ts b/src/apis/index.ts index 19a573e034895d973d36b35b987cdff891879f3a..859159858c830cb67fa914f44b013681c1771c3f 100644 --- a/src/apis/index.ts +++ b/src/apis/index.ts @@ -7,7 +7,17 @@ // IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR // PURPOSE. // See the Mulan PSL v2 for more details. -import { accountApi, sessionApi, externalApi, apiKeyApi, knowledgeApi } from './paths'; +import { + accountApi, + sessionApi, + externalApi, + apiKeyApi, + knowledgeApi, + appApi, + apiApi, +} from './paths'; +import { workFlowApi } from './workFlow'; +import { appCenterApi } from './appCenter'; export const api = { ...accountApi, @@ -15,4 +25,8 @@ export const api = { ...externalApi, ...apiKeyApi, ...knowledgeApi, + ...appCenterApi, + ...workFlowApi, + ...appApi, + ...apiApi, }; diff --git a/src/apis/paths/account.ts b/src/apis/paths/account.ts index e14d2ca7dc971d77a0b5d8b372f04e5f7f1fc8bb..6ff6b4c230bfba8c2004ba9390adbb4e4583a534 100644 --- a/src/apis/paths/account.ts +++ b/src/apis/paths/account.ts @@ -19,13 +19,13 @@ export const authorizeUser = (): Promise< any, ( | FcResponse<{ - user_sub: string; - username: string; - organization: string; - revision_number: string | null; - }> + user_sub: string; + username: string; + organization: string; + revision_number: string | null; + }> | undefined - ) + ), ] > => { return get('/api/auth/user'); @@ -35,7 +35,9 @@ export const authorizeUser = (): Promise< * 退出登录 * @returns */ -export const authorizeLogout = (): Promise<[any, FcResponse | undefined]> => { +export const authorizeLogout = (): Promise< + [any, FcResponse | undefined] +> => { return get('/api/auth/logout'); }; @@ -44,20 +46,19 @@ export const authorizeLogout = (): Promise<[any, FcResponse | undefined * @returns */ export const login = ( - code: string + code: string, ): Promise< [ any, ( | FcResponse<{ - csrf_token: string; - }> + csrf_token: string; + }> | undefined - ) + ), ] > => { return get('/api/auth/login', { code }); - }; /** @@ -72,10 +73,10 @@ export const userLogin = ( any, ( | FcResponse<{ - csrf_token: string; - }> + csrf_token: string; + }> | undefined - ) + ), ] > => { return get('/api/auth/login', { passwd, account }); @@ -90,10 +91,10 @@ export const refreshToken = (): Promise< any, ( | FcResponse<{ - csrf_token: string; - }> + csrf_token: string; + }> | undefined - ) + ), ] > => { return get('/api/auth/refresh_token'); @@ -105,29 +106,30 @@ export const refreshToken = (): Promise< * @returns */ export const updateRevision = ( - revisionNumber: number | string + revisionNumber: number | string, ): Promise< [ any, ( | FcResponse<{ - user_sub: string; - username: string; - organization: string; - revision_number: string | null; - }> + user_sub: string; + username: string; + organization: string; + revision_number: string | null; + }> | undefined - ) + ), ] > => { - return post('/api/auth/update_revision_number', { revision_num: revisionNumber }); + return post('/api/auth/update_revision_number', { + revision_num: revisionNumber, + }); }; - function queryAuthUrl(action: string) { return get<{ url: string; - }>('/api/auth/redirect',{action}); + }>('/api/auth/redirect', { action }); } export const accountApi = { @@ -137,5 +139,5 @@ export const accountApi = { userLogin, refreshToken, updateRevision, - queryAuthUrl + queryAuthUrl, }; diff --git a/src/apis/paths/api.ts b/src/apis/paths/api.ts new file mode 100644 index 0000000000000000000000000000000000000000..8538d5dcf1975fed1ddb6797bdae9121c46bc0da --- /dev/null +++ b/src/apis/paths/api.ts @@ -0,0 +1,71 @@ +// Copyright (c) Huawei Technologies Co., Ltd. 2023-2024. All rights reserved. +import { post, get, del, put } from 'src/apis/server'; +import type { FcResponse } from 'src/apis/server'; +import { QueryApiListParamsType, CreateOrUpdateApiParamsType } from './type'; +/** + * 获取语义接口列表 + * @param params + * @returns + */ +// 导出一个函数queryApiList,用于查询API列表 +export const queryApiList = ( + params: QueryApiListParamsType, +): Promise<[any, FcResponse | undefined]> => { + // 调用get函数,传入/api/service路径和params参数,返回一个Promise对象 + return get('/api/service', params); +}; + +/** + * 创建语义接口/更新语义接口 + * @param params + * @returns + */ +export const createOrUpdateApi = ( + params: CreateOrUpdateApiParamsType, +): Promise<[any, FcResponse | undefined]> => { + return post('/api/service', params); +}; + +/** + * 获取指定语义接口数据 + * @param params + * @returns + */ +export const querySingleApiData = (params: { + serviceId: string; + edit?: boolean; +}): Promise<[any, FcResponse | undefined]> => { + return get(`/api/service/${params.serviceId}`, { edit: params.edit }); +}; + +/** + * 删除语义接口 + * @param params + * @returns + */ +export const deleteSingleApiData = (params: { + serviceId: string; +}): Promise<[any, FcResponse | undefined]> => { + return del(`/api/service/${params.serviceId}`, params); +}; + +/** + * 更改语义接口收藏状态 + * @param params + * @returns + */ +export const changeSingleApiCollect = (params: { + serviceId: string; + favorited: boolean; +}): Promise<[any, FcResponse | undefined]> => { + return put(`/api/service/${params.serviceId}`, { + favorited: params.favorited, + }); +}; +export const apiApi = { + queryApiList, + createOrUpdateApi, + querySingleApiData, + deleteSingleApiData, + changeSingleApiCollect, +}; diff --git a/src/apis/paths/apikey.ts b/src/apis/paths/apikey.ts index aa26beefd0f5b3fb139934ae60d070ddbe7a45a7..3848437900e7ba0429072e64cb88e7495d548d82 100644 --- a/src/apis/paths/apikey.ts +++ b/src/apis/paths/apikey.ts @@ -14,16 +14,9 @@ import type { FcResponse } from 'src/apis/server'; * 验证用户信息 * @returns */ -export const getApiKey = (): Promise< - [ - any, - ( - | FcResponse<{ - }> - | undefined - ) - ] -> => { +export const getApiKey = (): Promise<[any, FcResponse<{ + api_key: string; +}> | undefined]> => { return get('/api/auth/key'); }; @@ -34,21 +27,9 @@ export const getApiKey = (): Promise< export const changeApiKey = (params: { action: string; query?: string; -} - ): Promise< - [ - any, - ( - | FcResponse<{ - }> - | undefined - ) - ] - > => { - return post('/api/auth/key', params,params); - }; - - +}): Promise<[any, FcResponse | undefined]> => { + return post('/api/auth/key', params, params); +}; export const apiKeyApi = { getApiKey, diff --git a/src/apis/paths/app.ts b/src/apis/paths/app.ts new file mode 100644 index 0000000000000000000000000000000000000000..3a87663be2ee3a4f15d8da921df5acb2f1bd7ada --- /dev/null +++ b/src/apis/paths/app.ts @@ -0,0 +1,29 @@ +// Copyright (c) Huawei Technologies Co., Ltd. 2023-2024. All rights reserved. +// licensed under the Mulan PSL v2. +// You can use this software according to the terms and conditions of the Mulan PSL v2. +// You may obtain a copy of Mulan PSL v2 at: +// http://license.coscl.org.cn/MulanPSL2 +// THIS SOFTWARE IS PROVIDED ON AN 'AS IS' BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR +// PURPOSE. +// See the Mulan PSL v2 for more details. +import { get } from 'src/apis/server'; +import type { FcResponse } from 'src/apis/server'; +import { Application } from './type'; + +type App = { + applications: Application[]; +}; +/** + * 获取最近 top5 应用 + * @returns + */ +export const getTopFiveApp = ( + count: number, +): Promise<[any, FcResponse | undefined]> => { + return get('/api/app/recent', { count }); +}; + +export const appApi = { + getTopFiveApp, +}; diff --git a/src/apis/paths/conversation.ts b/src/apis/paths/conversation.ts index dc946a04dd20b928aa58a48c7ec2a61f1ee79eb6..1f5bba1b691b711b77bbe60c4c3d8db6a5e7a3b1 100644 --- a/src/apis/paths/conversation.ts +++ b/src/apis/paths/conversation.ts @@ -18,15 +18,7 @@ const BASE_URL = '/api/conversation'; * @returns */ export const stopGeneration = (): Promise< - [ - any, - ( - | FcResponse<{ - // conversation_id: string; - }> - | undefined - ) - ] + [any, FcResponse | undefined] > => { return post(`/api/stop`); }; @@ -36,13 +28,7 @@ export const stopGeneration = (): Promise< * @returns */ export const getSessionRecord = (): Promise< - [ - any, - ( - | FcResponse - | undefined - ) - ] + [any, FcResponse | undefined] > => { return get(BASE_URL); }; @@ -56,46 +42,57 @@ export const createSession = (): Promise< any, ( | FcResponse<{ - conversation_id: string; + conversationId: string; }> | undefined - ) + ), ] > => { return post(BASE_URL); }; + +/** + * 创建工作流debug会话 + * @param params + * @returns + */ +export const createSessionDebug = (params: any): Promise<[any, any]> => { + return post(`/api/conversation?debug=${params.debug}`); +}; /** * 更新会话标题 * @param params * { - * conversation_id:(number)会话id + * conversationId:(number)会话id * title:(string)会话标题 * } * @returns */ -export const updateSession = ( - params: { - conversation_id: string, - title: string, - }, -): Promise< +export const updateSession = (params: { + conversationId: string; + title: string; +}): Promise< [ any, ( | FcResponse< Array<{ - conversation_id: string; + conversationId: string; }> > | undefined - ) + ), ] > => { - return put(BASE_URL, { - title: params.title, - }, { - conversation_id: params.conversation_id, - }); + return put( + BASE_URL, + { + title: params.title, + }, + { + conversationId: params.conversationId, + }, + ); }; /** @@ -104,53 +101,65 @@ export const updateSession = ( * @returns */ export const deleteSession = (data: { - conversation_list: string[]; -}): Promise<[any, FcResponse> | undefined]> => { + conversationList: string[]; +}): Promise< + [any, FcResponse> | undefined] +> => { return del(`${BASE_URL}`, data); }; /** * 获取会话历史对话记录 - * @param conversation_id + * @param conversationId * GET /api/record/eccb08c3-0621-4602-a4d2-4eaada892557 */ export const getHistoryConversation = ( - conversation_id: string -): Promise< - [ - any, - ( - | FcResponse - | undefined - ) - ] -> => { - // return get('/api/record', { conversation_id: conversation_id }); - return get('/api/record/'+ conversation_id); + conversationId: string, +): Promise<[any, FcResponse | undefined]> => { + // return get('/api/record', { conversationId: conversationId }); + return get('/api/record/' + conversationId); // 修改 chat 格式 - }; /** - * 评论对话 + * 点踩 * @param params * @returns */ export const commentConversation = (params: { + type: string; qaRecordId: string; - isLike: number; + comment: string; dislikeReason?: string; reasonLink?: string; reasonDescription?: string; + groupId: string | undefined; }): Promise<[any, FcResponse> | undefined]> => { - const { qaRecordId, isLike, dislikeReason, reasonLink, reasonDescription } = params; - return post(`/api/comment`, { - record_id: qaRecordId, - is_like: isLike, - dislike_reason: dislikeReason, - reason_link: reasonLink, - reason_description: reasonDescription, - }); + const { + qaRecordId, + comment, + dislikeReason, + reasonLink, + reasonDescription, + groupId, + type, + } = params; + if (type === 'disliked') { + return post(`/api/comment`, { + record_id: qaRecordId, + comment: comment, + group_id: groupId, + dislike_reason: dislikeReason, + reason_link: reasonLink, + reason_description: reasonDescription, + }); + } else { + return post(`/api/comment`, { + record_id: qaRecordId, + group_id: groupId, + comment: comment, + }); + } }; export const getRecognitionMode = (): Promise< @@ -162,11 +171,11 @@ export const getRecognitionMode = (): Promise< id: string; name: string; description: string; - auth:any; + auth: any; }> > | undefined - ) + ), ] > => { return get('/api/plugin'); @@ -184,7 +193,7 @@ export enum UploadStatus { export const getUploadFiles = ( sessionId: string, used = true, - unused = true + unused = true, ): Promise< [ any, @@ -195,12 +204,16 @@ export const getUploadFiles = ( name: string; type: string; size: number; - status: UploadStatus.USED | UploadStatus.UNUSED | UploadStatus.RESOLVING | UploadStatus.RESOLVEFAIL; + status: + | UploadStatus.USED + | UploadStatus.UNUSED + | UploadStatus.RESOLVING + | UploadStatus.RESOLVEFAIL; created_at: number; }>; }> | undefined - ) + ), ] > => { return get(`/api/document/${sessionId}`, { used, unused }); @@ -208,7 +221,7 @@ export const getUploadFiles = ( export const uploadFiles = ( formData, - sessionId + sessionId, ): Promise< [ any, @@ -217,22 +230,28 @@ export const uploadFiles = ( documents: Array; }> | undefined - ) + ), ] > => { - return post(`/api/document/${sessionId}`, formData, {}, { - 'Content-Type': 'multipart/form-data', - }); + return post( + `/api/document/${sessionId}`, + formData, + {}, + { + 'Content-Type': 'multipart/form-data', + }, + ); }; export const deleteUploadedFile = ( - documentId: any + documentId: any, ): Promise<[any, FcResponse | undefined]> => { return del(`/api/document/${documentId}`); }; export const sessionApi = { createSession, + createSessionDebug, updateSession, deleteSession, getSessionRecord, diff --git a/src/apis/paths/external.ts b/src/apis/paths/external.ts index cde11a662bcf4be05214679830d692624b55b237..d46588efafc0d15f9a2aa62dd08fae334c3e30be 100644 --- a/src/apis/paths/external.ts +++ b/src/apis/paths/external.ts @@ -37,5 +37,6 @@ export const report = (params: { }; export const externalApi = { - feedback,report + feedback, + report, }; diff --git a/src/apis/paths/index.ts b/src/apis/paths/index.ts index 191ea5850e339b1aff339f92e0092d6a30b7c781..17d6d4b602720cb8515517f3cf0fd2e1ef654a94 100644 --- a/src/apis/paths/index.ts +++ b/src/apis/paths/index.ts @@ -12,4 +12,5 @@ export * from './conversation'; export * from './external'; export * from './apikey'; export * from './knowledge'; - +export * from './app'; +export * from './api'; diff --git a/src/apis/paths/knowledge.ts b/src/apis/paths/knowledge.ts index 1a3421840fc8fd28fd3053a93b888e8dbca0f93d..8016773ede2a22bcf8dadc39e4fcfb7978d8633d 100644 --- a/src/apis/paths/knowledge.ts +++ b/src/apis/paths/knowledge.ts @@ -10,45 +10,16 @@ import { get, post } from 'src/apis/server'; import type { FcResponse } from 'src/apis/server'; -/** - * 验证用户信息 - * @returns - */ -export const getKnowledgeList = (): Promise< - [ - any, - ( - | FcResponse<{ - }> - | undefined - ) - ] -> => { - return get('/api/knowledge'); -}; - /** * USER登录 * @returns */ export const updateKnowledgeList = (params: { - kb_id: string; - }): Promise< - [ - any, - ( - | FcResponse<{ - }> - | undefined - ) - ] - > => { - return post('/api/knowledge', params); - }; - - + kb_id: string; +}): Promise<[any, FcResponse<{}> | undefined]> => { + return post('/api/knowledge', params); +}; export const knowledgeApi = { - getKnowledgeList, - updateKnowledgeList, + updateKnowledgeList, }; diff --git a/src/apis/paths/type.ts b/src/apis/paths/type.ts index 443fc2937c67d8f511008bc5f400badc938f2053..7dc6443d41855aefbb4114e7477fc34a40507f65 100644 --- a/src/apis/paths/type.ts +++ b/src/apis/paths/type.ts @@ -1,89 +1,205 @@ // 定义文件信息的接口 export interface File { - id: string; - name: string; - type: string; - size: number; + id: string; + name: string; + type: string; + size: number; } // 定义流程步骤的接口 export interface Step { - step_name: string; - step_status: string; - input: { - cve_id: string; - isFixed: boolean; - }; - output: { - code: number; - data: any[]; // 可以根据具体情况细化这个类型 - }; + step_name: string; + step_status: string; + input: { + cve_id: string; + isFixed: boolean; + }; + output: { + code: number; + data: any[]; // 可以根据具体情况细化这个类型 + }; } // 定义流程信息的接口 export interface Flow { - plugin_id: string; - flow_id: string; - steps: Step[]; + appId: string; + flowId: string; + steps: Step[]; } // 定义内容信息的接口 export interface Content { - question: string; - answer: string; - data: any; // 可以根据具体情况细化这个类型 + question: string; + answer: string; + data: any; // 可以根据具体情况细化这个类型 } -// 定义元数据信息的接口 +/** + * 定义元数据信息的接口 + * + * @property {number} inputTokens - 输入的token数量,表示prompt的token数量。 + * @property {number} outputTokens - 输出的token数量,表示大模型生成的token数量。 + * @property {number} timeCost - 运行时间,单位为秒,最多保留两位小数。 + */ export interface Metadata { - input_tokens: number; - output_tokens: number; - time: number; + inputTokens: number; + outputTokens: number; + timeCost: number; } // 定义问答对数据结构 export interface ConversationRecord { - id: string; - group_id: string; - conversation_id: string; - task_id: string; - files: File[]; - flow: Flow; - content: Content; - metadata: Metadata; + id: string; + groupId: string; + conversationId: string; + files: File[]; + flow: Flow; + content: Content; + metadata: Metadata; + comment: string; + created_at: string; } // 定义对话内问答列表数据结构 export interface ConversationRecordList { - records: ConversationRecord[]; + records: ConversationRecord[]; } /* 推荐问题的格式 - * "plugin_id": "aops-apollo", //推荐项关联的插件ID,若不关联则为空 - * "flow_id": "query_cve_info", //推荐项关联的工作流ID,若不关联则为空 + * "appId": "aops-apollo", //推荐项关联的插件ID,若不关联则为空 + * "flowId": "query_cve_info", //推荐项关联的工作流ID,若不关联则为空 * "flow_description": "查询机器192.168.10.1的CVE信息", //推荐项关联的工作流描述,若不关联则为空 * "question": "查询机器192.168.10.1的CVE信息", //推荐问题的内容 */ -export interface Suggest { - plugin_id: string, - flow_id: string, - flow_description: string, - question: string, +export interface Suggestion { + flowName: string; + flowId: string; + flowDescription: string; + question: string; } /* * 问答列表内项的数据结构 */ export interface ConversationListItem { - conversation_id: string, - created_time: string, - doc_count: number, - title: string, + conversationId: string; + createdTime: string; + docCount: number; + title: string; } /* * 问答列表数据结构 */ export interface ConversationList { - conversations: Array; + conversations: Array; +} + +/* + * 语义接口数据结构 + */ +export interface Application { + appId: string; + name: string; +} + +/* + * 语义接口数据结构 + */ +export interface ApiMessage { + apiId: string; + name: string; + type: string; + path: string; + description: string; +} + +/* + * 语义接口数据结构 + */ +export interface Service { + serviceId: string; + name: string; + icon: string; + author: string; + description: string; + favorite: boolean; +} + +export interface QueryApiListParamsType { + /** + * 筛选“我创建的”语义接口 + */ + createdByMe?: boolean; + /** + * 筛选“我收藏的”语义接口 + */ + favorited?: boolean; + /** + * 搜索关键字 + */ + keyword?: string; + /** + * 页码 + */ + page?: number; + /** + * 每页数量 + */ + pageSize?: number; + /** + * 搜索类型:全部字段或仅按名称/简介/作者字段;若不填,则视为 'all' + */ + searchType?: SearchType; + [property: string]: any; +} + +/** + * 搜索类型:全部字段或仅按名称/简介/作者字段;若不填,则视为 'all' + */ +export enum SearchType { + All = 'all', + Author = 'author', + Description = 'description', + Name = 'name', +} + +/** + * CreateAppRequest, 创建/更新语义接口请求数据结构 + */ +export interface CreateOrUpdateApiParamsType { + /** + * 语义接口ID + */ + serviceId?: string; + /** + * 语义接口yaml 文件(json 格式) + */ + data?: string; + /** + * 对话轮次(1~10) + */ + [property: string]: any; +} + +/** + * serviceApiData, 获取语义接口返回数据结构 + */ +export interface serviceApiData { + /** + * 语义接口名称 + */ + name?: string; + /** + * 语义接口path + */ + path?: string; + /** + * 语义接口描述 + */ + description?: string; + /** + * 对话轮次(1~10) + */ + [property: string]: any; } diff --git a/src/apis/server.ts b/src/apis/server.ts index f09729e07fd93d6812e912d7df4f90de1e19c59c..7ad9bbfbce21937b45709246e94abd4883fe827d 100644 --- a/src/apis/server.ts +++ b/src/apis/server.ts @@ -7,10 +7,17 @@ // IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR // PURPOSE. // See the Mulan PSL v2 for more details. -import axios from "axios"; - -import { handleChangeRequestHeader, handleStatusError } from "./tools"; -import type { AxiosResponse, InternalAxiosRequestConfig, AxiosError, AxiosHeaders } from "axios"; +import axios from 'axios'; +import { IconError } from '@computing/opendesign-icons'; +import { handleChangeRequestHeader, handleStatusError } from './tools'; +import type { + AxiosResponse, + InternalAxiosRequestConfig, + AxiosError, + AxiosHeaders, +} from 'axios'; +import { ElMessage } from 'element-plus'; +import { successMsg } from 'src/components/Message'; export interface FcResponse { error: string; @@ -37,27 +44,50 @@ export const server = axios.create({ // request interceptor server.interceptors.request.use( ( - config: InternalAxiosRequestConfig - ): InternalAxiosRequestConfig | Promise> => { + config: InternalAxiosRequestConfig, + ): + | InternalAxiosRequestConfig + | Promise> => { return handleChangeRequestHeader(config); }, (error) => { return Promise.reject(error); - } + }, ); // response interceptor server.interceptors.response.use( (response: AxiosResponse): AxiosResponse | Promise => { if (response.status !== 200) { + ElMessage({ + showClose: true, + message: response.statusText, + icon: IconError, + customClass: 'o-message--error', + duration: 3000, + }); return Promise.reject(new Error(response.statusText)); } - return Promise.resolve(response); }, async (error: AxiosError) => { + if (error.status !== 401 && error.status !== 403 && error.status !== 409) { + ElMessage({ + showClose: true, + message: + ((error as any)?.response?.data?.message as string) || error.message, + icon: IconError, + customClass: 'o-message--error', + duration: 3000, + }); + } + if (error.status === 409) { + // 处理错误码为409的情况 + successMsg('已是最新对话'); + return Promise.reject(error as any); + } return await handleStatusError(error); - } + }, ); /** @@ -68,7 +98,7 @@ server.interceptors.response.use( */ export const get = async ( url: string, - params: IAnyObj = {} + params: IAnyObj = {}, ): Promise<[IError, FcResponse | undefined]> => { try { const result = await server.get(url, { params: params }); @@ -89,10 +119,13 @@ export const post = async ( url: string, data: IAnyObj = {}, params: IAnyObj = {}, - headers: IAnyObj = {} + headers: IAnyObj = {}, ): Promise<[IError, FcResponse | undefined]> => { try { - const result = await server.post(url, data, { params: params, headers: headers as AxiosHeaders }); + const result = await server.post(url, data, { + params: params, + headers: headers as AxiosHeaders, + }); return [null, result.data as FcResponse]; } catch (error) { return [error as IError, undefined]; @@ -109,7 +142,7 @@ export const post = async ( export const put = async ( url: string, data: IAnyObj = {}, - params: IAnyObj = {} + params: IAnyObj = {}, ): Promise<[IError, FcResponse | undefined]> => { try { const result = await server.put(url, data, { params: params }); @@ -128,7 +161,7 @@ export const put = async ( export const del = async ( url: string, data: IAnyObj = {}, - params: IAnyObj = {} + params: IAnyObj = {}, ): Promise<[IError, FcResponse | undefined]> => { try { const result = await server.delete(url, { data: data, params: params }); diff --git a/src/apis/tools.ts b/src/apis/tools.ts index 2f81d36650529eb4dd054fc517e6a53e431f8fd0..ad08b016a804ea3cbf9beacb3dd8ee7a403cca9e 100644 --- a/src/apis/tools.ts +++ b/src/apis/tools.ts @@ -8,24 +8,36 @@ // PURPOSE. // See the Mulan PSL v2 for more details. import { ElNotification, ElMessageBox } from 'element-plus'; -import { CALLBACK_URL, LOGOUT_CALLBACK_URL } from 'src/views/dialogue/constants'; +import { + CALLBACK_URL, + LOGOUT_CALLBACK_URL, +} from 'src/views/dialogue/constants'; import { useAccountStore } from 'src/store'; -import { qiankunWindow } from 'vite-plugin-qiankun/dist/helper' +import { qiankunWindow } from 'vite-plugin-qiankun/dist/helper'; -import type { AxiosError, AxiosResponse, InternalAxiosRequestConfig } from 'axios'; +import type { + AxiosError, + AxiosResponse, + InternalAxiosRequestConfig, +} from 'axios'; import { storeToRefs } from 'pinia'; -import i18n from 'src/i18n' +import i18n from 'src/i18n'; +import { errorMsg } from 'src/components/Message'; function getCookie(name: string) { - let matches = document.cookie.match(new RegExp( - "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" - )); + const matches = document.cookie.match( + new RegExp( + '(?:^|; )' + + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + + '=([^;]*)', + ), + ); return matches ? decodeURIComponent(matches[1]) : undefined; } // 修改请求头 export const handleChangeRequestHeader = ( - config: InternalAxiosRequestConfig + config: InternalAxiosRequestConfig, ): InternalAxiosRequestConfig => { if (config.headers['Content-Type'] !== 'multipart/form-data') { config.headers['Content-Type'] = 'application/json; charset=UTF-8'; @@ -37,46 +49,50 @@ export const handleChangeRequestHeader = ( return config; }; - export const handleAuthorize = async (errStatus: number): Promise => { const type = import.meta.env.VITE_USER_TYPE; - const store = useAccountStore() + const store = useAccountStore(); const { userinfo } = storeToRefs(store); userinfo.value.organization = type; - if ((errStatus === 401 || errStatus === 403)) { + if (errStatus === 401 || errStatus === 403) { if (qiankunWindow.__POWERED_BY_QIANKUN__) { - const url = await store.getAuthUrl('login') + const url = await store.getAuthUrl('login'); if (url) { - const redirectUrl = qiankunWindow.__POWERED_BY_QIANKUN__ ? `${url}&redirect_index=${location.href}` : url - if (redirectUrl) - window.location.href = redirectUrl + const redirectUrl = qiankunWindow.__POWERED_BY_QIANKUN__ + ? `${url}&redirect_index=${location.href}` + : url; + if (redirectUrl) window.location.href = redirectUrl; } } else { - ElMessageBox.confirm(i18n.global.t('Login.unauthorized'), i18n.global.t('history.confirmation_message1'), { - confirmButtonText: i18n.global.t('Login.login'), - showClose: false, - showCancelButton: false, - autofocus: false, - closeOnClickModal: false, - closeOnPressEscape: false, - }).then(async () => { - const url = await store.getAuthUrl('login') + ElMessageBox.confirm( + i18n.global.t('Login.unauthorized'), + i18n.global.t('history.confirmation_message1'), + { + confirmButtonText: i18n.global.t('Login.login'), + showClose: false, + showCancelButton: false, + autofocus: false, + closeOnClickModal: false, + closeOnPressEscape: false, + }, + ).then(async () => { + const url = await store.getAuthUrl('login'); if (url) { - const redirectUrl = qiankunWindow.__POWERED_BY_QIANKUN__ ? `${url}&redirect_index=${location.href}` : url - if (redirectUrl) - window.location.href = redirectUrl + const redirectUrl = qiankunWindow.__POWERED_BY_QIANKUN__ + ? `${url}&redirect_index=${location.href}` + : url; + if (redirectUrl) window.location.href = redirectUrl; } - } - ); + }); } - } if (errStatus === 460) { window.open(LOGOUT_CALLBACK_URL, '_self'); + } else { + // errorMsg(`${errStatus} is error`); } }; - export const handleNetworkError = (errStatus: number): void => { let errMessage: string; if (errStatus) { @@ -130,9 +146,15 @@ export const handleNetworkError = (errStatus: number): void => { export const handleGeneralError = ( errno: number, errorLabel: string = 'Fail', - errMessage: string = 'request error' + errMessage: string = 'request error', ): boolean => { - if (Number(errno) !== 200 && Number(errno) !== 401 && Number(errno) !== 403 && Number(errno) !== 302 && Number(errno) !== 2001) { + if ( + Number(errno) !== 200 && + Number(errno) !== 401 && + Number(errno) !== 403 && + Number(errno) !== 302 && + Number(errno) !== 2001 + ) { ElNotification.error({ title: errorLabel, message: errMessage, @@ -142,17 +164,14 @@ export const handleGeneralError = ( return true; }; - - - /** * 处理状态码错误 */ export const handleStatusError = async ( - error: AxiosError + error: AxiosError, ): Promise[] | undefined> => { if (!error.response) { - // 如果没有响应,可能是网络问题或其他非HTTP错误,直接返回错误 + // 如果没有响应,可能是网络问题或其他非HTTP错误,直接返回错误 return Promise.reject(error); } @@ -163,12 +182,12 @@ export const handleStatusError = async ( return; } const originalRequest = error.config; - if (originalRequest.url === '/api/auth/refresh_token') { + if (originalRequest && originalRequest.url === '/api/auth/refresh_token') { // 长token过期,需要重新登录 handleAuthorize(status); return Promise.reject(error.response); } - if (originalRequest.url === '/api/auth/user') { + if (originalRequest && originalRequest.url === '/api/auth/user') { handleAuthorize(status); return; } @@ -180,4 +199,4 @@ export const handleStatusError = async ( // return server(originalRequest); } return Promise.reject(error.response); -}; \ No newline at end of file +}; diff --git a/src/apis/workFlow/index.ts b/src/apis/workFlow/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..fba2fe856dd1d995c5960174fd10a8865ea7a46b --- /dev/null +++ b/src/apis/workFlow/index.ts @@ -0,0 +1,2 @@ +// Copyright (c) Huawei Technologies Co., Ltd. 2023-2024. All rights reserved. +export * from './workFlowService'; diff --git a/src/apis/workFlow/type.ts b/src/apis/workFlow/type.ts new file mode 100644 index 0000000000000000000000000000000000000000..6769ea7832adac0b5084ef382a6289b631a53ad9 --- /dev/null +++ b/src/apis/workFlow/type.ts @@ -0,0 +1,161 @@ +export interface CreateOrUpdateFlowParamsType { + appId: string; + flowId: string; + topologyCheck?: boolean; + [property: string]: any; +} + +/** + * Flow + */ +export interface CreateOrUpdataFlowBodyType { + /** + * 流创建时间 + */ + createdAt: string; + /** + * 流的介绍 + */ + description: string; + edges: Edge[]; + editable: string; + /** + * 流是否启用 + */ + enable: boolean; + /** + * 流id + */ + flowId?: string; + /** + * 流的名称 + */ + name: string; + nodes: Node[]; + [property: string]: any; +} + +/** + * Edge + */ +export interface Edge { + /** + * 边对应的分支id + */ + branchId: string; + /** + * 边创建的时间 + */ + createdAt?: string; + /** + * 边的id + */ + edgeId: string; + /** + * 源节点的id + */ + sourceNode: string; + /** + * 目标节点的id + */ + targetNode: string; + /** + * 边的类型 + */ + type: string; + [property: string]: any; +} + +/** + * Node + */ +export interface Node { + /** + * 节点对应apiId + */ + apiId: string; + /** + * 节点创建时间 + */ + createdAt?: string; + /** + * 节点的伴生节点(例如for的begin和end) + */ + dependency?: Dependency; + /** + * 节点介绍 + */ + description: string; + /** + * 节点是否可被编辑/删除 + */ + editable: boolean; + /** + * 节点是否被启用 + */ + enable: boolean; + /** + * 节点名称 + */ + name: string; + /** + * 节点id + */ + nodeId: string; + parameters?: Parameters; + /** + * 节点的位置 + */ + position: Position; + serviceId: string; + type: string; + [property: string]: any; +} + +/** + * 节点的伴生节点(例如for的begin和end) + * + * Dependency + */ +export interface Dependency { + nodeId: string; + type: string; + [property: string]: any; +} + +export interface Parameters { + /** + * 节点类型为choice时才存在这个变量 + */ + choices?: Choice[]; + [property: string]: any; +} + +/** + * choice + */ +export interface Choice { + /** + * ID 编号 + */ + branch: string; + description: string; + [property: string]: any; +} + +/** + * 节点的位置 + * + * Position + */ +export interface Position { + /** + * 前端显示相对位置的x坐标 + */ + x: number; + /** + * 前端显示相对位置的y坐标 + */ + y: number; + [property: string]: any; +} diff --git a/src/apis/workFlow/workFlowService.ts b/src/apis/workFlow/workFlowService.ts new file mode 100644 index 0000000000000000000000000000000000000000..d6b6a39fdcd5aa989d926834a050b611c2ea6a47 --- /dev/null +++ b/src/apis/workFlow/workFlowService.ts @@ -0,0 +1,73 @@ +// Copyright (c) Huawei Technologies Co., Ltd. 2023-2024. All rights reserved. +import { post, get, del, put } from 'src/apis/server'; +import type { FcResponse } from 'src/apis/server'; +import { + CreateOrUpdateFlowParamsType, + CreateOrUpdataFlowBodyType, +} from './type'; +/** + * 获取所有服务 + * @param params + * @returns + */ +export const queryAllFlowService = (params: { + page: number; + pageSize: number; +}): Promise<[any, FcResponse | undefined]> => { + return get('/api/flow/service'); +}; + +/** + * 获取服务下的所有节点的元数据 + * @param params + * @returns + */ +export const querySingleFlowServiceNode = (params: { + serviceId: string; +}): Promise<[any, FcResponse | undefined]> => { + return get('/api/flow/service/node', params); +}; + +/** + * 获取工作流拓扑结构 + * @param params + * @returns + */ +export const querySingleFlowTopology = (params: { + appId: string; + flowId: string; +}): Promise<[any, FcResponse | undefined]> => { + return get('/api/flow', params); +}; + +/** + * 创建/修改工作流拓扑结构 + * @param params + * @returns + */ +export const createOrUpdateFlowTopology = ( + params: CreateOrUpdateFlowParamsType, + data: CreateOrUpdataFlowBodyType, +): Promise<[any, FcResponse | undefined]> => { + return put('/api/flow', data, params); +}; + +/** + * 删除工作流拓扑结构 + * @param params + * @returns + */ +export const delFlowTopology = (params: { + appId: string; + flowId: string; +}): Promise<[any, FcResponse | undefined]> => { + return del(`/api/flow?appId=${params.appId}&flowId=${params.flowId}`); +}; + +export const workFlowApi = { + queryAllFlowService, + querySingleFlowServiceNode, + querySingleFlowTopology, + delFlowTopology, + createOrUpdateFlowTopology, +}; diff --git a/src/assets/base.css b/src/assets/base.css index 8a1816f5ffa1d6bb08dd46a0a85ff65e8e1617ce..7a28f6d6456a32801c78a86df46177843d16e039 100644 --- a/src/assets/base.css +++ b/src/assets/base.css @@ -1,12 +1,13 @@ @font-face { - font-family: 'HarmonyOS_Sans_SC_Medium'; - src: url('./fonts/HarmonyOS_Sans_SC_Medium.ttf'); + font-family: 'HarmonyOS_Sans_SC_Regular'; + src: url('./fonts/HarmonyOS_Sans_SC_Regular.woff2'); font-weight: normal; font-style: normal; } * { - font-family: HarmonyOS_Sans_SC_Medium, 'Helvetica Neue', Helvetica, 'PingFang SC', - 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif; + font-family: HarmonyOS_Sans_SC_Regular, 'Helvetica Neue', Helvetica, + 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', '微软雅黑', Arial, + sans-serif; } *, @@ -27,11 +28,29 @@ svg:focus { outline: none; } +html { + overflow: hidden; +} + body { + min-width: 1366px; min-height: 100vh; - transition: color 0.5s, background-color 0.5s; - font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, - Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + transition: + color 0.5s, + background-color 0.5s; + font-family: + Inter, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + Oxygen, + Ubuntu, + Cantarell, + 'Fira Sans', + 'Droid Sans', + 'Helvetica Neue', + sans-serif; font-size: 15px; text-rendering: optimizeLegibility; background-color: #f5f5f6; diff --git a/src/assets/color.js b/src/assets/color.js index 5a19ae43380f1936b2efe643f5859b3d6af21110..1b1248f953e530adda2f0a69afc004f23d4a6035 100644 --- a/src/assets/color.js +++ b/src/assets/color.js @@ -1,15 +1,14 @@ const color = [ - "#0062DC", - "#2DB47C", - "#EC4F83", - "#3DB6FC", - "#6D47F5", - "#3DCFD4", - "#BD45E8", - "#81BA06", - "#FF5432", - "#9EA8B9", - ]; - - export default color; - \ No newline at end of file + '#0062DC', + '#2DB47C', + '#EC4F83', + '#3DB6FC', + '#6D47F5', + '#3DCFD4', + '#BD45E8', + '#81BA06', + '#FF5432', + '#9EA8B9', +]; + +export default color; diff --git a/src/assets/fonts/HarmonyOS_Sans_SC_Medium.ttf b/src/assets/fonts/HarmonyOS_Sans_SC_Medium.ttf deleted file mode 100644 index 6d8eab7f749328780ec0843ac557cfbf36e5e1e6..0000000000000000000000000000000000000000 Binary files a/src/assets/fonts/HarmonyOS_Sans_SC_Medium.ttf and /dev/null differ diff --git a/src/assets/fonts/HarmonyOS_Sans_SC_Regular.woff2 b/src/assets/fonts/HarmonyOS_Sans_SC_Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7316e76af047fa9bdd6920c341b343a6e705bb40 Binary files /dev/null and b/src/assets/fonts/HarmonyOS_Sans_SC_Regular.woff2 differ diff --git a/src/assets/images/application_cases.png b/src/assets/images/application_cases.png deleted file mode 100644 index 1475af31c6c20c0b9e96b8969132822e16907953..0000000000000000000000000000000000000000 Binary files a/src/assets/images/application_cases.png and /dev/null differ diff --git a/src/assets/images/cancel.svg b/src/assets/images/cancel.svg deleted file mode 100644 index 89f0b0487b15d6680e10a2987fbc3e839cf82c6a..0000000000000000000000000000000000000000 --- a/src/assets/images/cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/images/command_generation.png b/src/assets/images/command_generation.png deleted file mode 100644 index d4a6698fcedf0827eaa78ac255ae5b0f9f3dc704..0000000000000000000000000000000000000000 Binary files a/src/assets/images/command_generation.png and /dev/null differ diff --git a/src/assets/images/confirm.svg b/src/assets/images/confirm.svg deleted file mode 100644 index 7fe8ed84cdf609336d38dfff1f334732e4584240..0000000000000000000000000000000000000000 --- a/src/assets/images/confirm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/images/corpus.svg b/src/assets/images/corpus.svg deleted file mode 100644 index d69a8716da4bb9e78b5e6f1fecc871a104958d81..0000000000000000000000000000000000000000 --- a/src/assets/images/corpus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/images/dark_application_case.svg b/src/assets/images/dark_application_case.svg deleted file mode 100644 index c24652e130dcb1246648db39bca2b8570c2d42ae..0000000000000000000000000000000000000000 --- a/src/assets/images/dark_application_case.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - Created with Pixso. - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/images/dark_background.png b/src/assets/images/dark_background.png deleted file mode 100644 index 7f69af52de289f60769523385b1528fc75e69ee5..0000000000000000000000000000000000000000 Binary files a/src/assets/images/dark_background.png and /dev/null differ diff --git a/src/assets/images/dark_command_generation.png b/src/assets/images/dark_command_generation.png deleted file mode 100644 index 8a3a9bd9f8a6d510d102a033b8f53634a4a824af..0000000000000000000000000000000000000000 Binary files a/src/assets/images/dark_command_generation.png and /dev/null differ diff --git a/src/assets/images/dark_command_generation.svg b/src/assets/images/dark_command_generation.svg deleted file mode 100644 index 44ac9cb4728f3bd0286369b11e14291a2f7bfe89..0000000000000000000000000000000000000000 --- a/src/assets/images/dark_command_generation.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - Created with Pixso. - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/images/dark_expand_knowledge.svg b/src/assets/images/dark_expand_knowledge.svg deleted file mode 100644 index f7204d99677f649796e0eff5a09f9004a1233cac..0000000000000000000000000000000000000000 --- a/src/assets/images/dark_expand_knowledge.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - Created with Pixso. - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/images/dark_expertise.svg b/src/assets/images/dark_expertise.svg deleted file mode 100644 index e86074fdc157d332bfd3aec7d331c6ddd442efb5..0000000000000000000000000000000000000000 --- a/src/assets/images/dark_expertise.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - Created with Pixso. - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/images/dark_general_knowledge.svg b/src/assets/images/dark_general_knowledge.svg deleted file mode 100644 index 8530a956b7b4e3d6e52ca2d4d6ff5cd147248b4e..0000000000000000000000000000000000000000 --- a/src/assets/images/dark_general_knowledge.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - Created with Pixso. - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/images/dark_no_flow.png b/src/assets/images/dark_no_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..dde2b5816a9a0c7cb81166ea8da52b0ca6c776e2 Binary files /dev/null and b/src/assets/images/dark_no_flow.png differ diff --git a/src/assets/images/dark_send.png b/src/assets/images/dark_send.png deleted file mode 100644 index 1555c7b40210a99dcd49af2bc83c049a9efefcb8..0000000000000000000000000000000000000000 Binary files a/src/assets/images/dark_send.png and /dev/null differ diff --git a/src/assets/images/dark_shell.png b/src/assets/images/dark_shell.png deleted file mode 100644 index d9b94d8980c7ba8c884398143589bf4116286bd6..0000000000000000000000000000000000000000 Binary files a/src/assets/images/dark_shell.png and /dev/null differ diff --git a/src/assets/images/dark_sider-active.png b/src/assets/images/dark_sider-active.png deleted file mode 100644 index 64ef9312b39a1e3ea2aba289d0c6b3fce225cdd9..0000000000000000000000000000000000000000 Binary files a/src/assets/images/dark_sider-active.png and /dev/null differ diff --git a/src/assets/images/dark_sider-hover.png b/src/assets/images/dark_sider-hover.png deleted file mode 100644 index 7f3a468d523d611b155d35885f906b25d5021789..0000000000000000000000000000000000000000 Binary files a/src/assets/images/dark_sider-hover.png and /dev/null differ diff --git a/src/assets/images/dark_sider.png b/src/assets/images/dark_sider.png deleted file mode 100644 index bf498d4b7d53361e44b6799d12337f073c6f0128..0000000000000000000000000000000000000000 Binary files a/src/assets/images/dark_sider.png and /dev/null differ diff --git a/src/assets/images/dark_user.png b/src/assets/images/dark_user.png deleted file mode 100644 index 8d72185116ade40e9c0605b4a460f3326c548069..0000000000000000000000000000000000000000 Binary files a/src/assets/images/dark_user.png and /dev/null differ diff --git a/src/assets/images/edit.svg b/src/assets/images/edit.svg deleted file mode 100644 index 1bed46a421af200542a22cb89099ee6a77562417..0000000000000000000000000000000000000000 --- a/src/assets/images/edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/images/euler_copilot.png b/src/assets/images/euler_copilot.png deleted file mode 100644 index 8d905d7cc85a7183aad65cd13c54006cff832c39..0000000000000000000000000000000000000000 Binary files a/src/assets/images/euler_copilot.png and /dev/null differ diff --git a/src/assets/images/expanded_knowledge.png b/src/assets/images/expanded_knowledge.png deleted file mode 100644 index 2d808c88351ad677b147454e95993f67da120dd1..0000000000000000000000000000000000000000 Binary files a/src/assets/images/expanded_knowledge.png and /dev/null differ diff --git a/src/assets/images/expertise.png b/src/assets/images/expertise.png deleted file mode 100644 index ae238cd57d4f15e596c8f8ff055d8736bd6cf061..0000000000000000000000000000000000000000 Binary files a/src/assets/images/expertise.png and /dev/null differ diff --git a/src/assets/images/general_knowledge.png b/src/assets/images/general_knowledge.png deleted file mode 100644 index c96ca2f7dd6384cb7c59cc411ad7c69bd095a666..0000000000000000000000000000000000000000 Binary files a/src/assets/images/general_knowledge.png and /dev/null differ diff --git a/src/assets/images/light_application_case.svg b/src/assets/images/light_application_case.svg deleted file mode 100644 index c528728c48295b482e04f8bdf38821434667157b..0000000000000000000000000000000000000000 --- a/src/assets/images/light_application_case.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - Created with Pixso. - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/images/light_background.png b/src/assets/images/light_background.png deleted file mode 100644 index 4a9604232d850f1a6fdebe18c2cf589171e679ef..0000000000000000000000000000000000000000 Binary files a/src/assets/images/light_background.png and /dev/null differ diff --git a/src/assets/images/light_command_generation.png b/src/assets/images/light_command_generation.png deleted file mode 100644 index c68478a296111238e0c8942139315852d268785c..0000000000000000000000000000000000000000 Binary files a/src/assets/images/light_command_generation.png and /dev/null differ diff --git a/src/assets/images/light_command_generation.svg b/src/assets/images/light_command_generation.svg deleted file mode 100644 index 6ff305e02f19940fca4b7cc8a3e28b51ffde686b..0000000000000000000000000000000000000000 --- a/src/assets/images/light_command_generation.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - Created with Pixso. - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/images/light_expand_knowledge.svg b/src/assets/images/light_expand_knowledge.svg deleted file mode 100644 index f8943637eb559c99d9bbdfdf5c59b11500c2a12b..0000000000000000000000000000000000000000 --- a/src/assets/images/light_expand_knowledge.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - Created with Pixso. - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/images/light_expertise.svg b/src/assets/images/light_expertise.svg deleted file mode 100644 index 5759373d0c724fe8b3e7c77a37f732a36fc11c63..0000000000000000000000000000000000000000 --- a/src/assets/images/light_expertise.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - Created with Pixso. - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/images/light_general_knowledge.svg b/src/assets/images/light_general_knowledge.svg deleted file mode 100644 index 6e0aae8ec7288330612b8439f2fc9c858565405b..0000000000000000000000000000000000000000 --- a/src/assets/images/light_general_knowledge.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - Created with Pixso. - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/images/light_no_flow.png b/src/assets/images/light_no_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..efafb14f68f3b835427e9ef9ac93ce5cc7796bbd Binary files /dev/null and b/src/assets/images/light_no_flow.png differ diff --git a/src/assets/images/light_send.png b/src/assets/images/light_send.png deleted file mode 100644 index c859a286bababe80b778382a5a925f69580bb697..0000000000000000000000000000000000000000 Binary files a/src/assets/images/light_send.png and /dev/null differ diff --git a/src/assets/images/light_shell.png b/src/assets/images/light_shell.png deleted file mode 100644 index 90d036a5be7d4249d71a975bd10f7d9380167eb1..0000000000000000000000000000000000000000 Binary files a/src/assets/images/light_shell.png and /dev/null differ diff --git a/src/assets/images/light_sider-active.png b/src/assets/images/light_sider-active.png deleted file mode 100644 index 2f4ae479b60854b779ac02fab34672723ffc98d5..0000000000000000000000000000000000000000 Binary files a/src/assets/images/light_sider-active.png and /dev/null differ diff --git a/src/assets/images/light_sider-hover.png b/src/assets/images/light_sider-hover.png deleted file mode 100644 index 7084444a11950199db449bdbbbba9c2ea1ef06cd..0000000000000000000000000000000000000000 Binary files a/src/assets/images/light_sider-hover.png and /dev/null differ diff --git a/src/assets/images/light_sider.png b/src/assets/images/light_sider.png deleted file mode 100644 index 8748d6981b9b91879ed19d0585bc3fe7fd4c1c2e..0000000000000000000000000000000000000000 Binary files a/src/assets/images/light_sider.png and /dev/null differ diff --git a/src/assets/images/light_user.png b/src/assets/images/light_user.png deleted file mode 100644 index 4593adfc4cb6d54e156de64035f94ca3c2ae0962..0000000000000000000000000000000000000000 Binary files a/src/assets/images/light_user.png and /dev/null differ diff --git a/src/assets/images/logoText.png b/src/assets/images/logoText.png deleted file mode 100644 index 6f12e302f59509e15dc12460a080253d5011ac6c..0000000000000000000000000000000000000000 Binary files a/src/assets/images/logoText.png and /dev/null differ diff --git a/src/assets/images/oepkg.png b/src/assets/images/oepkg.png deleted file mode 100644 index b3c924accce7efa1c7af847f7cd6adaea484a716..0000000000000000000000000000000000000000 Binary files a/src/assets/images/oepkg.png and /dev/null differ diff --git a/src/assets/images/pkgship.png b/src/assets/images/pkgship.png deleted file mode 100644 index 5a0cdbb1f7f2fbaf44bc5c6ad5b6623a21c35f27..0000000000000000000000000000000000000000 Binary files a/src/assets/images/pkgship.png and /dev/null differ diff --git a/src/assets/images/robot.png b/src/assets/images/robot.png deleted file mode 100644 index 30070d7d9e6420ec9bc6d1f6042fe560d3a3666c..0000000000000000000000000000000000000000 Binary files a/src/assets/images/robot.png and /dev/null differ diff --git a/src/assets/images/send_disable.png b/src/assets/images/send_disable.png deleted file mode 100644 index 913e57b6710c4d717f8a18761ef03455531d9d8b..0000000000000000000000000000000000000000 Binary files a/src/assets/images/send_disable.png and /dev/null differ diff --git a/src/assets/styles/codePreview.scss b/src/assets/styles/codePreview.scss index 7783c926014df6f2ea6c2095522f09685e598ff1..609ff33a7e8162700264ae895ca436c5674836dd 100644 --- a/src/assets/styles/codePreview.scss +++ b/src/assets/styles/codePreview.scss @@ -1,10 +1,9 @@ #markdown-preview { - - .hljs{ + .hljs { color: var(--o-text-color-secondary); } //markdown text size - p{ + p { font-size: 16px; font-weight: 400; } @@ -88,8 +87,19 @@ align-items: center; border-radius: 8px 8px 0 0; padding: 8px 12px 0 12px; - font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, - Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + font-family: + Inter, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + Oxygen, + Ubuntu, + Cantarell, + 'Fira Sans', + 'Droid Sans', + 'Helvetica Neue', + sans-serif; .pre-copy { cursor: pointer; svg { @@ -115,7 +125,7 @@ ol { margin-left: 16px; - li{ + li { list-style-type: decimal; cursor: default; margin-left: 12px; diff --git a/src/assets/styles/element/index.scss b/src/assets/styles/element/index.scss index c6b7bd8c3cc9d3d56409e56d4ab3e91815012c96..02d71a9c2be4d014865878912f88f2fdebaf9018 100644 --- a/src/assets/styles/element/index.scss +++ b/src/assets/styles/element/index.scss @@ -2,7 +2,6 @@ --el-color-primary: #0077ff; } - .euler-copilot-message-box { background-color: #fefefe; border-radius: 4px; @@ -14,64 +13,87 @@ .el-message-box { width: 432px !important; - height: 184px !important; + height: 184px !important; } -.el-button:not(.is-disabled){ +.el-button:not(.is-disabled) { // background-color: white !important; color: var(--o-button-color) !important; border-color: var(--o-button-border-color) !important; } -.el-button:not(.is-disabled):focus{ +.el-button:not(.is-disabled):focus { // background-color: white !important; - color:var(--o-button-color) !important; + color: var(--o-button-color) !important; border-color: var(--o-button-border-color) !important; } -.el-button:not(.is-disabled):active{ +.el-button:not(.is-disabled):active { // background-color: white !important; - color: #6395FD !important; - border-color: #6395FD !important; + color: #6395fd !important; + border-color: #6395fd !important; } -.el-button:not(.is-disabled):hover{ +.el-button:not(.is-disabled):hover { // background-color: white !important; - color: #7AA5FF !important; - border-color: #7AA5FF !important; + color: #7aa5ff !important; + border-color: #7aa5ff !important; } - - - -.el-button--primary:not(.is-disabled){ - background-color: #6395FD !important; +.el-button--primary:not(.is-disabled) { + background-color: #6395fd !important; color: white !important; - border-color: #6395FD !important; + border-color: #6395fd !important; } -.el-button--primary:not(.is-disabled):focus{ - background-color: #6395FD !important; +.el-button--primary:not(.is-disabled):focus { + background-color: #6395fd !important; color: white !important; - border-color: #6395FD !important; + border-color: #6395fd !important; } -.el-button--primary:not(.is-disabled):active{ - background-color: #6395FD !important; +.el-button--primary:not(.is-disabled):active { + background-color: #6395fd !important; color: white !important; - border-color: #6395FD !important; + border-color: #6395fd !important; } -.el-button--primary:not(.is-disabled):hover{ - background-color: #7AA5FF !important; +.el-button--primary:not(.is-disabled):hover { + background-color: #7aa5ff !important; color: white !important; - border-color: #7AA5FF !important; + border-color: #7aa5ff !important; } -.el-message{ - --o-message-border-radius:8px !important; +.el-message { + --o-message-border-radius: 8px !important; } -.exit-button{ +.exit-button { margin-left: 0px !important; -} \ No newline at end of file +} + +.o-message--error { + width: 544px; + background-color: var(--o-message-bg-color_error) !important; + border-color: var(--o-message-border-color_error) !important; + .el-message__content { + flex: 1; + } + .el-icon { + position: relative !important; + top: unset !important; + } +} + +.o-message--success { + width: 544px; + background-color: #c2e7c7 !important; + border-color: #24ab36 !important; + .el-message__content { + flex: 1; + } + .el-icon { + position: relative !important; + top: unset !important; + } +} diff --git a/src/assets/styles/main.scss b/src/assets/styles/main.scss index e303235f640e44854e38bc80b1ccf81862473ca9..30b5ed186e0b3915fc3ea5fc1fba8f2015905b1a 100644 --- a/src/assets/styles/main.scss +++ b/src/assets/styles/main.scss @@ -1,3 +1,8 @@ @import './codePreview.scss'; @import './message.scss'; -@import './theme.scss' \ No newline at end of file +@import './theme.scss'; + +// 全局重写tooltip样式 +.el-popper { + max-width: 376px !important; +} \ No newline at end of file diff --git a/src/assets/styles/message.scss b/src/assets/styles/message.scss index 9874697ee866f69a74117cdad9bc8c8a5d692602..54a8670e99400e86d3ceeee0e5caac147347b21b 100644 --- a/src/assets/styles/message.scss +++ b/src/assets/styles/message.scss @@ -1,40 +1,38 @@ +.el-message { + width: 30%; + border-radius: 5px; +} -.el-message{ - width: 30%; - border-radius: 5px; - } - - .el-message--success{ - background-color: #C2E7C7; +.el-message--success { + background-color: #c2e7c7; + color: #000; + border-color: #24ab36; + border-radius: 10px; + .el-message__content { color: #000; - border-color: #24AB36; - border-radius: 10px; - .el-message__content{ - color: #000; - font-size: 12px; - - } + font-size: 12px; + } +} + +.el-message--warning { + background-color: #f9ecb8; + border-color: #ebaf00; + img { + width: 16px; + height: 16px; } - - .el-message--warning{ - background-color: #F9ECB8; - border-color: #EBAF00; - img{ - width: 16px; - height: 16px; - } - .el-message__content{ - color: #000; - font-size: 12px; - } + .el-message__content { + color: #000; + font-size: 12px; } - - .el-message--error{ - background-color: #F7C1C1; +} + +.el-message--error { + background-color: #f7c1c1; + color: #000; + border-color: #e42121; + .el-message__content { color: #000; - border-color: #E42121; - .el-message__content{ - color: #000; - font-size: 12px; - } - } \ No newline at end of file + font-size: 12px; + } +} diff --git a/src/assets/styles/theme.scss b/src/assets/styles/theme.scss index 7a4a6dc17388f4effaed9a9ae6baad78cd16ae38..91a6522b4e9ce869584d26304345b7350ce351ae 100644 --- a/src/assets/styles/theme.scss +++ b/src/assets/styles/theme.scss @@ -1,8 +1,6 @@ body[theme='dark'] { - --o-bg-image: url('../../assets/images/dark_background.png'); - --o-shell-image: url('../../assets/images/dark_shell.png'); - --o-sider: url('../../assets/images/dark_sider.png'); - --o-sider-hover: url('../../assets/images/dark_sider-hover.png'); + --o-bg-image: url('../../assets/svgs/dark_background.svg'); + --no-work-flow: url('../../assets/images/dark_no_flow.png'); --o-button-color: #576372; --o-button-border-color: #576372; --o-button-disable-color: #626d7c; @@ -10,15 +8,73 @@ body[theme='dark'] { --o-button-disable-border: #626d7c; --o-time-text: #3e4551; --o-bash-bg: #2a2f37; - --o-flow-code-bg: rgb(42,47,55); - --o-flow-code-border: rgb(62,69,81); + --o-flow-code-bg: rgb(42, 47, 55); + --o-flow-code-border: rgb(62, 69, 81); + --flow-canvas-bg: rgb(24, 27, 32); + --flow-instance-hover-color: #1f2329; + --flow-instance-shadow: 0 4px 16px 0 rgba(253, 254, 255, 0.1); + --flow-nodeBox-shadow: 0 8px 16px 0 rgba(253, 254, 255, 0.1); + // 工作流节点背景色 + --flow-bg-color: #343a43; + --o-bash-box-shadow: 0 4px 16px 0 rgba(255, 255, 255, 0.1); + // 工作流开始节点结束背景渐变色 + --flow-startEnd-bg: linear-gradient(rgba(132, 149, 253, 0.3), + rgba(104, 113, 129, 0.15), + rgba(52, 58, 67, 0)); + --flow-system-bg: linear-gradient(rgba(113, 225, 229, 0.3), + rgba(97, 119, 121, 0.15), + rgba(52, 58, 67, 0)); + --flow-apos-apollo-bg: linear-gradient(rgba(137, 212, 255, 0.3), + rgba(103, 111, 130, 0.15), + rgba(52, 58, 67, 0)); + --flow-euler-copilot-tune-bg: linear-gradient(rgba(156, 237, 203, 0.3), + rgba(101, 125, 110, 0.15), + rgba(52, 58, 67, 0)); + --flow-other-node-bg: linear-gradient(rgba(252, 154, 186, 0.3), + rgba(117, 99, 110, 0.15), + rgba(52, 58, 67, 0)); + --flow-node-default-over-color: #25303e; + --flow-node-boder-default-over: #314265; + --flow-node-success-over-color: #1f312a; + --flow-node-error-over-color: #332127; + --flow-branch-node-error-node-cover-color: #602c27; + --flow-branch-node-success-node-cover-color: #295336; + --o-think-border: #8d98aa; + --o-think-header-bg: #2a2f37; + --o-think-header-text: #e4e8ee; + --el-drawer-bg-color: #000000; + --el-bg-color: #1f2329; + --question-bg: linear-gradient(0deg, + rgb(47, 57, 66), + rgb(32, 35, 37) 33.232%, + rgb(41, 43, 55) 85.699%); + --el-collapse-header-bg: rgb(42, 47, 55); + --el-collapse-border: rgb(62, 69, 81, 0.5); + --el-collapse-content-bg: rgb(42, 47, 55, 0.5); + --applist-hover: #313741; + --flow-running-bg: linear-gradient( + 127.95deg, + rgb(39, 39, 76) -1.967%, + rgba(28, 57, 81, 0.929) 98.202% + ); + --o-api-description: rgb(211, 220, 233); + --el-drawer-padding-primary: 24px; + // 这里是不同种类的debug图标 + --flow-debug-default: url('../../assets/svgs/dark_debug.svg'); + --flow-debug-hover: url('../../assets/svgs/dark_debug_hover.svg'); + --flow-debug-active: url('../../assets/svgs/dark_debug_active.svg'); + --flow-debug-dis: url('../../assets/svgs/dark_debug_dis.svg'); + // 这里是不同种类的展开收起图标 + --expand-fold-default: url('../../assets/svgs/dark_expand_fold.svg'); + --expand-fold-hover: url('../../assets/svgs/dark_expand_fold_hover.svg'); + --expand-fold-active: url('../../assets/svgs/dark_expand_fold_active.svg'); + --o-scrollbar-thumb: #536372; + --o-apiBox-bg: rgb(253, 254, 255); } body[theme='light'] { - --o-bg-image: url('../../assets/images/light_background.png'); - --o-shell-image: url('../../assets/images/light_shell.png'); - --o-sider: url('../../assets/images/light_sider.png'); - --o-sider-hover: url('../../assets/images/light_sider-hover.png'); + --o-bg-image: url('../../assets/svgs/light_background.webp'); + --no-work-flow: url('../../assets/images/light_no_flow.png'); --o-button-color: #c3cedf; --o-button-border-color: #d3dce9; --o-button-disable-color: #bfc7d7; @@ -26,6 +82,78 @@ body[theme='light'] { --o-button-disable-border: #ebedf3; --o-time-text: #dfe5ef; --o-bash-bg: #f4f6fa; - --o-flow-code-bg: rgb(244,256,258); - --o-flow-code-border: rgb(223,229,239); + --o-flow-code-bg: rgb(244, 256, 258); + --o-flow-code-border: rgb(223, 229, 239); + --flow-canvas-bg: rgba(235, 239, 246); + --flow-instance-hover-color: #fdfeff; + --flow-instance-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.1); + --flow-nodeBox-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.1); + // 工作流节点背景色 + --flow-bg-color: #fdfeff; + --o-bash-box-shadow: 0 4px 16px 0 rgba(0, 0, 0, 0.1); + // 工作流开始节点结束背景渐变色 + --flow-startEnd-bg: linear-gradient(rgba(133, 148, 253, 0.3), + rgba(210, 231, 252, 0.15), + rgba(255, 255, 255, 0)); + --flow-system-bg: linear-gradient(rgba(156, 237, 203, 0.3), + rgba(240, 253, 244, 0.15), + rgba(255, 255, 255, 0)); + --flow-apos-apollo-bg: linear-gradient(rgba(137, 212, 255, 0.3), + rgba(230, 237, 255, 0.15), + rgba(255, 255, 255, 0)); + --flow-euler-copilot-tune-bg: linear-gradient(rgba(156, 237, 203, 0.3), + rgba(240, 253, 248, 0.15), + rgba(255, 255, 255, 0)); + --flow-other-node-bg: linear-gradient(rgba(252, 154, 186, 0.3), + rgba(253, 240, 248, 0.15), + rgba(255, 255, 255, 0)); + --flow-node-boder-default-over: #c7d6f5; + --flow-node-success-over-color: #e6f6e9; + --flow-node-error-over-color: #f8e7e7; + --o-think-border: #ccc; + --o-think-header-bg: #f8f8f8; + --o-think-header-text: #8d98aa; + --flow-branch-node-error-node-cover-color: #edb3b3; + --flow-branch-node-success-node-cover-color: #b3dbb8; + --el-collapse-header-bg: rgb(244, 246, 250); + --el-collapse-border: rgb(223, 229, 239); + --el-collapse-content-bg: rgb(244, 246, 250, 0.5); + --question-bg: linear-gradient(177.93deg, rgba(255, 255, 255, 0) -40.031%, rgba(255, 255, 255, 0.35) 1.263%, rgba(255, 255, 255)36.178%), linear-gradient(270deg, rgb(227, 242, 255, 0.5), rgb(195, 227, 255, 0.5) 33.232%, rgb(197, 203, 249, 0.5) 85.699%); + --question-shadow: rgba(221, 225, 240, 0.5); + --applist-hover: #f3f4f6; + --flow-running-bg: linear-gradient( + 127.95deg, + rgba(109, 117, 250, 0.2) -1.967%, + rgba(90, 179, 255, 0.2) 98.202% + ); + --o-api-description: rgb(78, 88, 101); + // 这里是不同种类的debug图标 + --flow-debug-default: url('../../assets/svgs/light_debug.svg'); + --flow-debug-hover: url('../../assets/svgs/light_debug_hover.svg'); + --flow-debug-active: url('../../assets/svgs/light_debug_active.svg'); + --flow-debug-dis: url('../../assets/svgs/light_debug_dis.svg'); + // 这里是不同种类的展开收起图标 + --expand-fold-default: url('../../assets/svgs/light_expand_fold.svg'); + --expand-fold-hover: url('../../assets/svgs/light_expand_fold_hover.svg'); + --expand-fold-active: url('../../assets/svgs/light_expand_fold_active.svg'); + --o-scrollbar-thumb: #c3cedf; + --o-apiBox-bg: rgb(253, 254, 255); } + +body { + + // 这里替换下拉框的选中颜色,无论亮暗都是一致 + .el-select-dropdown__item.is-selected { + background-color: #6395fd !important; + font-weight: normal !important; + } + --el-drawer-padding-primary: 24px; + // 悬浮优先级高于选中 + .el-select-dropdown__item:hover { + background-color: #7aa5ff !important; + } + .el-select-dropdown__footer { + border-top: none !important; + cursor: pointer; + } +} \ No newline at end of file diff --git a/src/assets/svgs/API.svg b/src/assets/svgs/API.svg new file mode 100644 index 0000000000000000000000000000000000000000..86b2eb2faba23146e82999b5a74c9a23b63be71e --- /dev/null +++ b/src/assets/svgs/API.svg @@ -0,0 +1,17 @@ + + + Created with Pixso. + + + + + + + + + + + + + + diff --git a/src/assets/svgs/LLM.svg b/src/assets/svgs/LLM.svg new file mode 100644 index 0000000000000000000000000000000000000000..3a06a0041aec405a364dd83500440c3f8ae54ddf --- /dev/null +++ b/src/assets/svgs/LLM.svg @@ -0,0 +1,10 @@ + + + Created with Pixso. + + + + + + + diff --git a/src/assets/svgs/against_active.svg b/src/assets/svgs/against_active.svg index 585e786f83a40ae67fa6e57dd4be488bc12f45dd..db629ff0870d5c52d9a38a9b0c9db4d405e73eac 100644 --- a/src/assets/svgs/against_active.svg +++ b/src/assets/svgs/against_active.svg @@ -5,11 +5,5 @@ - - - - - - - + diff --git a/src/assets/svgs/app_upload.svg b/src/assets/svgs/app_upload.svg new file mode 100644 index 0000000000000000000000000000000000000000..a06500856810a3ecf1b2f1f35bdd981353d7c539 --- /dev/null +++ b/src/assets/svgs/app_upload.svg @@ -0,0 +1,41 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/app_upload_hover.svg b/src/assets/svgs/app_upload_hover.svg new file mode 100644 index 0000000000000000000000000000000000000000..e8b8ee998d156e857335bbc3eab2266ea9d7255e --- /dev/null +++ b/src/assets/svgs/app_upload_hover.svg @@ -0,0 +1,33 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/blank.svg b/src/assets/svgs/blank.svg deleted file mode 100644 index 2f326bc59b4d74e0d2b404e75a331afeb8f7c930..0000000000000000000000000000000000000000 --- a/src/assets/svgs/blank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/svgs/condition.svg b/src/assets/svgs/condition.svg new file mode 100644 index 0000000000000000000000000000000000000000..fd61c693c07987ef6e0f953e5a95a74093a50951 --- /dev/null +++ b/src/assets/svgs/condition.svg @@ -0,0 +1,16 @@ + + + Created with Pixso. + + + + + + + + + + + + + diff --git a/src/assets/svgs/dark_against.svg b/src/assets/svgs/dark_against.svg index 26f7835ef840d68d5f40c8334b57558189a0f47b..2518b9f01148193a8fd8487a6b5a165eb877085b 100644 --- a/src/assets/svgs/dark_against.svg +++ b/src/assets/svgs/dark_against.svg @@ -5,10 +5,10 @@ - - - + + + - + diff --git a/src/assets/svgs/dark_background.svg b/src/assets/svgs/dark_background.svg new file mode 100644 index 0000000000000000000000000000000000000000..1b52816d1490f99fbd7d092736dc998ea2956e53 --- /dev/null +++ b/src/assets/svgs/dark_background.svg @@ -0,0 +1,252 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/dark_copy.svg b/src/assets/svgs/dark_copy.svg index d125b6a9e9a0a0a545129ff9ad365e7fab8ff6a1..6094fe8a311f71a9db82bbf212576a6bf0b7c6c7 100644 --- a/src/assets/svgs/dark_copy.svg +++ b/src/assets/svgs/dark_copy.svg @@ -3,9 +3,9 @@ Created with Pixso. - + - + diff --git a/src/assets/svgs/dark_debug.svg b/src/assets/svgs/dark_debug.svg new file mode 100644 index 0000000000000000000000000000000000000000..e79dd3137b4d03098e83841bd833717769432811 --- /dev/null +++ b/src/assets/svgs/dark_debug.svg @@ -0,0 +1,29 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/dark_debug_active.svg b/src/assets/svgs/dark_debug_active.svg new file mode 100644 index 0000000000000000000000000000000000000000..a40989e722bb8af7a5cd4429d4f9d2ac21e646de --- /dev/null +++ b/src/assets/svgs/dark_debug_active.svg @@ -0,0 +1,29 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/dark_debug_dis.svg b/src/assets/svgs/dark_debug_dis.svg new file mode 100644 index 0000000000000000000000000000000000000000..b6e7a3a93eb10f2d15335cae11f8e2209909b0b1 --- /dev/null +++ b/src/assets/svgs/dark_debug_dis.svg @@ -0,0 +1,30 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/dark_debug_hover.svg b/src/assets/svgs/dark_debug_hover.svg new file mode 100644 index 0000000000000000000000000000000000000000..2f164b039cac6ed6f7f204e2120062da9473227b --- /dev/null +++ b/src/assets/svgs/dark_debug_hover.svg @@ -0,0 +1,29 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/dark_delete_active.svg b/src/assets/svgs/dark_delete_active.svg new file mode 100644 index 0000000000000000000000000000000000000000..d050eb2b1c770eac2dcc96e68dadaa4effb44106 --- /dev/null +++ b/src/assets/svgs/dark_delete_active.svg @@ -0,0 +1,8 @@ + + + Created with Pixso. + + + + + diff --git a/src/assets/svgs/dark_editor_active.svg b/src/assets/svgs/dark_editor_active.svg new file mode 100644 index 0000000000000000000000000000000000000000..e0b50e3182dcc01b09740b15c4501f6b44771e4f --- /dev/null +++ b/src/assets/svgs/dark_editor_active.svg @@ -0,0 +1,14 @@ + + + Created with Pixso. + + + + + + + + + + + diff --git a/src/assets/svgs/dark_expand_fold.svg b/src/assets/svgs/dark_expand_fold.svg new file mode 100644 index 0000000000000000000000000000000000000000..ebbaade56119fcc2cf8820e146a7c093dfc5bc10 --- /dev/null +++ b/src/assets/svgs/dark_expand_fold.svg @@ -0,0 +1,8 @@ + + + Created with Pixso. + + + + + diff --git a/src/assets/svgs/dark_expand_fold_active.svg b/src/assets/svgs/dark_expand_fold_active.svg new file mode 100644 index 0000000000000000000000000000000000000000..01a864530b7a7a7f2ff7033541b4e8d7c4ebd219 --- /dev/null +++ b/src/assets/svgs/dark_expand_fold_active.svg @@ -0,0 +1,8 @@ + + + Created with Pixso. + + + + + diff --git a/src/assets/svgs/dark_expand_fold_hover.svg b/src/assets/svgs/dark_expand_fold_hover.svg new file mode 100644 index 0000000000000000000000000000000000000000..cff7499aeb91158fb6a6caee506053606e189698 --- /dev/null +++ b/src/assets/svgs/dark_expand_fold_hover.svg @@ -0,0 +1,8 @@ + + + Created with Pixso. + + + + + diff --git a/src/assets/svgs/dark_support.svg b/src/assets/svgs/dark_support.svg index c4a96c4bc7357e598cef2f5abce811f29cbabefe..5d83eab48ffe357320fe7004900f8e7cc78237dd 100644 --- a/src/assets/svgs/dark_support.svg +++ b/src/assets/svgs/dark_support.svg @@ -3,9 +3,9 @@ Created with Pixso. - + - + diff --git a/src/assets/svgs/dark_user.svg b/src/assets/svgs/dark_user.svg new file mode 100644 index 0000000000000000000000000000000000000000..0f8cb71ed624d96b35cadba589f41ea534ccec9d --- /dev/null +++ b/src/assets/svgs/dark_user.svg @@ -0,0 +1,29 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/svgs/defaultIcon.webp b/src/assets/svgs/defaultIcon.webp new file mode 100644 index 0000000000000000000000000000000000000000..01ca01700c532fc6f244c3e8fefb2b78ed857bd0 Binary files /dev/null and b/src/assets/svgs/defaultIcon.webp differ diff --git a/src/assets/svgs/empty.svg b/src/assets/svgs/empty.svg deleted file mode 100644 index c39894c9be7581fb4daf16bc9275bd66a4f67db2..0000000000000000000000000000000000000000 --- a/src/assets/svgs/empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/svgs/flowEndIcon.svg b/src/assets/svgs/flowEndIcon.svg new file mode 100644 index 0000000000000000000000000000000000000000..43624aee002b78a3cfed3e88ce057f6180dcc42f --- /dev/null +++ b/src/assets/svgs/flowEndIcon.svg @@ -0,0 +1,11 @@ + + + Created with Pixso. + + + + + + + + diff --git a/src/assets/svgs/flowStartIcon.svg b/src/assets/svgs/flowStartIcon.svg new file mode 100644 index 0000000000000000000000000000000000000000..1b0f42a61a8373999c67fcb2eddf66feca68a8b4 --- /dev/null +++ b/src/assets/svgs/flowStartIcon.svg @@ -0,0 +1,11 @@ + + + Created with Pixso. + + + + + + + + diff --git a/src/assets/svgs/gatherMetrics.svg b/src/assets/svgs/gatherMetrics.svg new file mode 100644 index 0000000000000000000000000000000000000000..f7e2148f8120e83062d9d5048fcc768447ef5940 --- /dev/null +++ b/src/assets/svgs/gatherMetrics.svg @@ -0,0 +1,21 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/getCveDetail.svg b/src/assets/svgs/getCveDetail.svg new file mode 100644 index 0000000000000000000000000000000000000000..2ccda435603e57a3f8cb6d4b50ccb7d594a4c896 --- /dev/null +++ b/src/assets/svgs/getCveDetail.svg @@ -0,0 +1,21 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/hiss.svg b/src/assets/svgs/hiss.svg deleted file mode 100644 index 9d5cdd7a645832a44a044da2a8a3e6a9cec038d5..0000000000000000000000000000000000000000 --- a/src/assets/svgs/hiss.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/svgs/knowledgeBase.svg b/src/assets/svgs/knowledgeBase.svg new file mode 100644 index 0000000000000000000000000000000000000000..0fe3efcc203bcc8c441d9154a5a299d0530be110 --- /dev/null +++ b/src/assets/svgs/knowledgeBase.svg @@ -0,0 +1,10 @@ + + + Created with Pixso. + + + + + + + diff --git a/src/assets/svgs/light_against.svg b/src/assets/svgs/light_against.svg index 1f257ac8e47d215b85022c8d96d6c20cec24c050..d16f1b34a1b13b8abe46b2773027ce1b9666ec85 100644 --- a/src/assets/svgs/light_against.svg +++ b/src/assets/svgs/light_against.svg @@ -5,10 +5,10 @@ - - - + + + - + diff --git a/src/assets/svgs/light_background.webp b/src/assets/svgs/light_background.webp new file mode 100644 index 0000000000000000000000000000000000000000..6270db00eb51957b6221d1e950ff3a47bb5470c4 Binary files /dev/null and b/src/assets/svgs/light_background.webp differ diff --git a/src/assets/svgs/light_copy.svg b/src/assets/svgs/light_copy.svg index 41a377ccc9d43f20f0f2298e47766cf16081cac9..dc8a520b8b58d087523148609bf33cdb4086004c 100644 --- a/src/assets/svgs/light_copy.svg +++ b/src/assets/svgs/light_copy.svg @@ -3,9 +3,9 @@ Created with Pixso. - + - + diff --git a/src/assets/svgs/light_debug.svg b/src/assets/svgs/light_debug.svg new file mode 100644 index 0000000000000000000000000000000000000000..53f530d8b145f5cc178cf8fa3edfc330d5b2b36b --- /dev/null +++ b/src/assets/svgs/light_debug.svg @@ -0,0 +1,29 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/light_debug_active.svg b/src/assets/svgs/light_debug_active.svg new file mode 100644 index 0000000000000000000000000000000000000000..850e0315edf43eecbbd488a5f14a46b1baf47569 --- /dev/null +++ b/src/assets/svgs/light_debug_active.svg @@ -0,0 +1,29 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/light_debug_dis.svg b/src/assets/svgs/light_debug_dis.svg new file mode 100644 index 0000000000000000000000000000000000000000..98448a0dcede128342fd8613ff31248dfd00585e --- /dev/null +++ b/src/assets/svgs/light_debug_dis.svg @@ -0,0 +1,29 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/light_debug_hover.svg b/src/assets/svgs/light_debug_hover.svg new file mode 100644 index 0000000000000000000000000000000000000000..e420a6469b1a19f2a593506bc1c9f849c21d4648 --- /dev/null +++ b/src/assets/svgs/light_debug_hover.svg @@ -0,0 +1,29 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/light_expand_fold.svg b/src/assets/svgs/light_expand_fold.svg new file mode 100644 index 0000000000000000000000000000000000000000..534f865de0446ba9b4da26fde4dc33a506f0e415 --- /dev/null +++ b/src/assets/svgs/light_expand_fold.svg @@ -0,0 +1,8 @@ + + + Created with Pixso. + + + + + diff --git a/src/assets/svgs/light_expand_fold_active.svg b/src/assets/svgs/light_expand_fold_active.svg new file mode 100644 index 0000000000000000000000000000000000000000..19f3b0d5d890171f2d2faecd75f79cfab7cb12b3 --- /dev/null +++ b/src/assets/svgs/light_expand_fold_active.svg @@ -0,0 +1,8 @@ + + + Created with Pixso. + + + + + diff --git a/src/assets/svgs/light_expand_fold_hover.svg b/src/assets/svgs/light_expand_fold_hover.svg new file mode 100644 index 0000000000000000000000000000000000000000..0e826f3af7785f70864f81a83750e2679b689347 --- /dev/null +++ b/src/assets/svgs/light_expand_fold_hover.svg @@ -0,0 +1,8 @@ + + + Created with Pixso. + + + + + diff --git a/src/assets/svgs/light_support.svg b/src/assets/svgs/light_support.svg index 38780af188add51af38b616636aaba4b6b243608..aca4cda1fe17577bbd1b4e04897ccfe91b323e3f 100644 --- a/src/assets/svgs/light_support.svg +++ b/src/assets/svgs/light_support.svg @@ -3,9 +3,9 @@ Created with Pixso. - + - + diff --git a/src/assets/svgs/light_user.svg b/src/assets/svgs/light_user.svg new file mode 100644 index 0000000000000000000000000000000000000000..edcafe5de3c015f219245bfc6d881669262feb35 --- /dev/null +++ b/src/assets/svgs/light_user.svg @@ -0,0 +1,29 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/svgs/loop.svg b/src/assets/svgs/loop.svg new file mode 100644 index 0000000000000000000000000000000000000000..0323f5b644bd37ed37510e962dc362452be7db0b --- /dev/null +++ b/src/assets/svgs/loop.svg @@ -0,0 +1,13 @@ + + + Created with Pixso. + + + + + + + + + + diff --git a/src/assets/svgs/myApp.svg b/src/assets/svgs/myApp.svg new file mode 100644 index 0000000000000000000000000000000000000000..f081e67fed3701cc78851f160d135f3d33639415 --- /dev/null +++ b/src/assets/svgs/myApp.svg @@ -0,0 +1,25 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/null.svg b/src/assets/svgs/null.svg deleted file mode 100644 index 3b14e240da8ee3de5cd1fee14f923098b984afb5..0000000000000000000000000000000000000000 --- a/src/assets/svgs/null.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/svgs/oepkg.svg b/src/assets/svgs/oepkg.svg deleted file mode 100644 index 64eb2a6aff88b898957c556a02b09c1888eeec31..0000000000000000000000000000000000000000 --- a/src/assets/svgs/oepkg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/svgs/optimize.svg b/src/assets/svgs/optimize.svg new file mode 100644 index 0000000000000000000000000000000000000000..7192c0a408b46743bb1f0329ecb68086ed89088c --- /dev/null +++ b/src/assets/svgs/optimize.svg @@ -0,0 +1,8 @@ + + + Created with Pixso. + + + + + diff --git a/src/assets/svgs/pkgship.svg b/src/assets/svgs/pkgship.svg deleted file mode 100644 index d71e678ce81c2519aba5ff05a1d46a138b44f702..0000000000000000000000000000000000000000 --- a/src/assets/svgs/pkgship.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/svgs/query.svg b/src/assets/svgs/query.svg new file mode 100644 index 0000000000000000000000000000000000000000..69cf6faff3f63bf2cf2c2a7a35d7cc06bcade1c3 --- /dev/null +++ b/src/assets/svgs/query.svg @@ -0,0 +1,16 @@ + + + Created with Pixso. + + + + + + + + + + + + + diff --git a/src/assets/svgs/robot.svg b/src/assets/svgs/robot.svg new file mode 100644 index 0000000000000000000000000000000000000000..44149ad0d600dad7db7752a7c9ef1c452cd9ad1c --- /dev/null +++ b/src/assets/svgs/robot.svg @@ -0,0 +1,71 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/robot_icon.svg b/src/assets/svgs/robot_icon.svg deleted file mode 100644 index 80fc1924a9e606d6cc7a4f6f2fafab53c376972b..0000000000000000000000000000000000000000 --- a/src/assets/svgs/robot_icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/svgs/routerApi.svg b/src/assets/svgs/routerApi.svg new file mode 100644 index 0000000000000000000000000000000000000000..992d8acb77358cac941dfca62a2243c6124b4fce --- /dev/null +++ b/src/assets/svgs/routerApi.svg @@ -0,0 +1,16 @@ + + + Created with Pixso. + + + + + + + + + + + + + diff --git a/src/assets/svgs/routerApiSelected.svg b/src/assets/svgs/routerApiSelected.svg new file mode 100644 index 0000000000000000000000000000000000000000..4beb45578cfec7cb81d13f81a6ad4c2ecb981b8b --- /dev/null +++ b/src/assets/svgs/routerApiSelected.svg @@ -0,0 +1,21 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/routerApp.svg b/src/assets/svgs/routerApp.svg new file mode 100644 index 0000000000000000000000000000000000000000..fa1a35cae8823f5a66d0cbb77139aa2d7e739bd3 --- /dev/null +++ b/src/assets/svgs/routerApp.svg @@ -0,0 +1,14 @@ + + + Created with Pixso. + + + + + + + + + + + diff --git a/src/assets/svgs/routerAppSelected.svg b/src/assets/svgs/routerAppSelected.svg new file mode 100644 index 0000000000000000000000000000000000000000..d0eda062a60f37f70b0de6a612d0d5e19d14eb45 --- /dev/null +++ b/src/assets/svgs/routerAppSelected.svg @@ -0,0 +1,18 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/routerCopilot.svg b/src/assets/svgs/routerCopilot.svg new file mode 100644 index 0000000000000000000000000000000000000000..9daebc8f6ee86d4a26b6dd8ed279a2f86cc65560 --- /dev/null +++ b/src/assets/svgs/routerCopilot.svg @@ -0,0 +1,11 @@ + + + Created with Pixso. + + + + + + + + diff --git a/src/assets/svgs/routerCopilotSelected.svg b/src/assets/svgs/routerCopilotSelected.svg new file mode 100644 index 0000000000000000000000000000000000000000..d63f9dade5c01b3d97a2166d4fbca6074ce26088 --- /dev/null +++ b/src/assets/svgs/routerCopilotSelected.svg @@ -0,0 +1,25 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/send_disabled.svg b/src/assets/svgs/send_disabled.svg new file mode 100644 index 0000000000000000000000000000000000000000..87c7979c16d5aa847c8d881fb1a1abf2befd2afa --- /dev/null +++ b/src/assets/svgs/send_disabled.svg @@ -0,0 +1,26 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/svgs/send_enabled.svg b/src/assets/svgs/send_enabled.svg new file mode 100644 index 0000000000000000000000000000000000000000..910cf8ff7843ad3e9c29ce9353ce048a009651ae --- /dev/null +++ b/src/assets/svgs/send_enabled.svg @@ -0,0 +1,24 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/svgs/support_active.svg b/src/assets/svgs/support_active.svg index d7d13d7e7f58b1b844e521d27e9953b783fe0120..581e2f4f001118d863cc6b3f29efe51746c175ae 100644 --- a/src/assets/svgs/support_active.svg +++ b/src/assets/svgs/support_active.svg @@ -3,11 +3,9 @@ Created with Pixso. - - - + + - - - + + diff --git a/src/assets/svgs/taskChoice.svg b/src/assets/svgs/taskChoice.svg new file mode 100644 index 0000000000000000000000000000000000000000..ebace828de164ed949e86d75dfc9aeed628d5b75 --- /dev/null +++ b/src/assets/svgs/taskChoice.svg @@ -0,0 +1,22 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/templateConversion.svg b/src/assets/svgs/templateConversion.svg new file mode 100644 index 0000000000000000000000000000000000000000..ec805f2025b9eea8d63a847996e5d3e4cc0e0369 --- /dev/null +++ b/src/assets/svgs/templateConversion.svg @@ -0,0 +1,16 @@ + + + Created with Pixso. + + + + + + + + + + + + + diff --git a/src/assets/svgs/upload_icon.svg b/src/assets/svgs/upload_icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..7dbc7e276801d65958d3e2b3136dc44e72aa87b7 --- /dev/null +++ b/src/assets/svgs/upload_icon.svg @@ -0,0 +1,19 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + diff --git a/src/assets/svgs/userCode.svg b/src/assets/svgs/userCode.svg new file mode 100644 index 0000000000000000000000000000000000000000..dde8da5bc93842ad493cdd5d07a414b65a242ac7 --- /dev/null +++ b/src/assets/svgs/userCode.svg @@ -0,0 +1,11 @@ + + + Created with Pixso. + + + + + + + + diff --git a/src/assets/svgs/userDatabaseClass.svg b/src/assets/svgs/userDatabaseClass.svg new file mode 100644 index 0000000000000000000000000000000000000000..626acea120a900aa3ca196eeb0a75d79cf31bc57 --- /dev/null +++ b/src/assets/svgs/userDatabaseClass.svg @@ -0,0 +1,17 @@ + + + Created with Pixso. + + + + + + + + + + + + + + diff --git a/src/assets/svgs/userDocumentClass.svg b/src/assets/svgs/userDocumentClass.svg new file mode 100644 index 0000000000000000000000000000000000000000..35fe668dd7d75ab7ac0b72ebed31d8acffe1909d --- /dev/null +++ b/src/assets/svgs/userDocumentClass.svg @@ -0,0 +1,17 @@ + + + Created with Pixso. + + + + + + + + + + + + + + diff --git a/src/assets/svgs/user_icon.png b/src/assets/svgs/user_icon.png deleted file mode 100644 index f2a462180ad60b1f34e68b25b5a1436f2e225211..0000000000000000000000000000000000000000 Binary files a/src/assets/svgs/user_icon.png and /dev/null differ diff --git a/src/assets/svgs/witChainD.svg b/src/assets/svgs/witChainD.svg new file mode 100644 index 0000000000000000000000000000000000000000..2c7766c44dc2fb93e437ab4cc4e400810f34cdbe --- /dev/null +++ b/src/assets/svgs/witChainD.svg @@ -0,0 +1,15 @@ + + + Created with Pixso. + + + + + + + + + + + + diff --git a/src/assets/svgs/witChainDSelected.svg b/src/assets/svgs/witChainDSelected.svg new file mode 100644 index 0000000000000000000000000000000000000000..1b20a6d1711e583bb2dae13709cc26688a86f90a --- /dev/null +++ b/src/assets/svgs/witChainDSelected.svg @@ -0,0 +1,19 @@ + + + Created with Pixso. + + + + + + + + + + + + + + + + diff --git a/src/auto-imports.d.ts b/src/auto-imports.d.ts index 1d89ee8c4833d5972293125ae111ea45d41f2e83..fb10b91f058b463ca8a3e0b48465a59a9f49e077 100644 --- a/src/auto-imports.d.ts +++ b/src/auto-imports.d.ts @@ -4,6 +4,4 @@ // noinspection JSUnusedGlobalSymbols // Generated by unplugin-auto-import export {} -declare global { - -} +declare global {} diff --git a/src/bus/index.ts b/src/bus/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..3dbb7fda2b9d233753c7ed36903f2f9f64d4f836 --- /dev/null +++ b/src/bus/index.ts @@ -0,0 +1,4 @@ +// 引入mitt +import mitt from 'mitt'; +const bus = mitt(); +export default bus; diff --git a/src/components.d.ts b/src/components.d.ts index 3919a57d3ab685800884869e26bbeb4a10515de4..fec5155c61b8f394ddb536bb75e2018f188e470a 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -7,28 +7,28 @@ export {} declare module 'vue' { export interface GlobalComponents { - CommonFooter: typeof import('./components/commonFooter/CommonFooter.vue')['default'] - DialoguePanel: typeof import('./components/dialoguePanel/DialoguePanel.vue')['default'] - ElButton: typeof import('element-plus/es')['ElButton'] - ElCheckbox: typeof import('element-plus/es')['ElCheckbox'] - ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup'] - ElDialog: typeof import('element-plus/es')['ElDialog'] - ElForm: typeof import('element-plus/es')['ElForm'] - ElFormItem: typeof import('element-plus/es')['ElFormItem'] - ElInput: typeof import('element-plus/es')['ElInput'] - ElPopover: typeof import('element-plus/es')['ElPopover'] - ElRadioButton: typeof import('element-plus/es')['ElRadioButton'] - ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup'] - ElScrollbar: typeof import('element-plus/es')['ElScrollbar'] - ElTooltip: typeof import('element-plus/es')['ElTooltip'] - EulerDialog: typeof import('./components/EulerDialog.vue')['default'] - PrivacyText: typeof import('./components/commonFooter/PrivacyText.vue')['default'] - RouterLink: typeof import('vue-router')['RouterLink'] - RouterView: typeof import('vue-router')['RouterView'] - SessionCard: typeof import('./components/sessionCard/SessionCard.vue')['default'] - SvgIcon: typeof import('./components/SvgIcon.vue')['default'] + CommonFooter: (typeof import('./components/commonFooter/CommonFooter.vue'))['default']; + DialoguePanel: (typeof import('./components/dialoguePanel/DialoguePanel.vue'))['default']; + ElButton: (typeof import('element-plus/es'))['ElButton']; + ElCheckbox: (typeof import('element-plus/es'))['ElCheckbox']; + ElCheckboxGroup: (typeof import('element-plus/es'))['ElCheckboxGroup']; + ElDialog: (typeof import('element-plus/es'))['ElDialog']; + ElForm: (typeof import('element-plus/es'))['ElForm']; + ElFormItem: (typeof import('element-plus/es'))['ElFormItem']; + ElInput: (typeof import('element-plus/es'))['ElInput']; + ElPopover: (typeof import('element-plus/es'))['ElPopover']; + ElRadioButton: (typeof import('element-plus/es'))['ElRadioButton']; + ElRadioGroup: (typeof import('element-plus/es'))['ElRadioGroup']; + ElScrollbar: (typeof import('element-plus/es'))['ElScrollbar']; + ElTooltip: (typeof import('element-plus/es'))['ElTooltip']; + EulerDialog: (typeof import('./components/EulerDialog.vue'))['default']; + PrivacyText: (typeof import('./components/commonFooter/PrivacyText.vue'))['default']; + RouterLink: (typeof import('vue-router'))['RouterLink']; + RouterView: (typeof import('vue-router'))['RouterView']; + SessionCard: (typeof import('./components/sessionCard/SessionCard.vue'))['default']; + SvgIcon: (typeof import('./components/SvgIcon.vue'))['default']; } export interface ComponentCustomProperties { - vLoading: typeof import('element-plus/es')['ElLoadingDirective'] + vLoading: (typeof import('element-plus/es'))['ElLoadingDirective']; } } diff --git a/src/components/EulerDialog.vue b/src/components/EulerDialog.vue index 5852a4f1a883524af84075d2ec3b4e66144525e7..39d473654fcfc66238a0d51b5e9ae50e26307bdf 100644 --- a/src/components/EulerDialog.vue +++ b/src/components/EulerDialog.vue @@ -3,7 +3,7 @@ :model-value="visible" :show-close="false" width="50%" - :title="props.agreementName" + :title="props.agreementName" :close-on-press-escape="false" :close-on-click-modal="false" align-center @@ -14,7 +14,12 @@ @@ -45,7 +52,7 @@ const props = withDefaults( }>(), { needCheck: true, - } + }, ); const emits = defineEmits<{ @@ -88,7 +95,6 @@ const submitForm = async (formEl: FormInstance | undefined) => { diff --git a/src/components/Message.ts b/src/components/Message.ts index 421170f8f8792bb51495f11d393bf974e263275d..8224124d88e4865d71d3a63516d1b0941d85b702 100644 --- a/src/components/Message.ts +++ b/src/components/Message.ts @@ -1,38 +1,37 @@ -import { ElMessage } from "element-plus"; +import { ElMessage } from 'element-plus'; -export const infoMsg = (msgInfo:string) => { - ElMessage({ - type:"info", - showClose:true, - dangerouslyUseHTMLString:true, - message:msgInfo, - }) -} +export const infoMsg = (msgInfo: string) => { + ElMessage({ + type: 'info', + // showClose:true, + dangerouslyUseHTMLString: true, + message: msgInfo, + }); +}; -export const successMsg = (msgInfo:string) => { - ElMessage({ - customClass:"el-message--success", - type:"success", - showClose:true, - class:"el-message--success", - message:msgInfo, - }) -} -export const warningMsg = (msgInfo:string) => { - ElMessage({ - type:"warning", - showClose:true, - class:"el-message--warning", - message:msgInfo, - }) -} - -export const errorMsg = (msgInfo:string) => { - ElMessage({ - type:"error", - showClose:true, - class:"el-message--error", - message:msgInfo, - }) -} +export const successMsg = (msgInfo: string) => { + ElMessage({ + // customClass:"el-message--success", + type: 'success', + // showClose:true, + // class: 'el-message--success', + message: msgInfo, + }); +}; +export const warningMsg = (msgInfo: string) => { + ElMessage({ + type: 'warning', + // showClose:true, + // class: 'el-message--warning', + message: msgInfo, + }); +}; +export const errorMsg = (msgInfo: string) => { + ElMessage({ + type: 'error', + // showClose:true, + // class: 'el-message--error', + message: msgInfo, + }); +}; diff --git a/src/components/SvgIcon.vue b/src/components/SvgIcon.vue index f83ae329ff94b701a0574bd673c6e18e09c3dbb1..d29161acb40948b38265542a8380549e037a45ed 100644 --- a/src/components/SvgIcon.vue +++ b/src/components/SvgIcon.vue @@ -44,7 +44,7 @@ withDefaults( { dir: 'right', fill: '#8D98AA', - } + }, ); diff --git a/src/components/commonFooter/CommonFooter.vue b/src/components/commonFooter/CommonFooter.vue index 47bc21a6c0d6fbc7e2891232567da6d5574201f7..a02803d46760a9573594a2377db3aa29998b95ca 100644 --- a/src/components/commonFooter/CommonFooter.vue +++ b/src/components/commonFooter/CommonFooter.vue @@ -1,6 +1,5 @@