diff --git a/README.md b/README.md
index 657a682..7656719 100644
--- a/README.md
+++ b/README.md
@@ -58,6 +58,14 @@ MIT 开源协议 可商用(自带的`svg`文件除外)
其实和自定义`svg`相似,都是`vue`的`template`代码片段,但是`svg`标签里面无法渲染`html`的代码,所以在最外层用了`foreignObject`进行了包裹,同样支持缩放旋转等操作。参考`src\config-center\vue`
+## 如何添加图形库
+
+1. 将下载好的svg文件放到`src\assets\svgs`目录下
+2. 修改下载好的svg文件代码片段,删除想动态修改的属性。例如你想动态修改svg的填充颜色,要删掉代码片段的`fill`属性
+3. 添加配置文件,文件目录为`src\config-center`
+
+需要注意配置文件的`name`属性要和`svg`文件名保持一致,如果是自定义组件需要按需导入一下,参考`src\config-center\index.ts`,这么做的目的是当你把编辑器构建成插件引入到其它项目的时候,其它项目使用编辑器无需注册你的自定义组件
+
## 操作说明
### 绘画
@@ -86,6 +94,8 @@ MIT 开源协议 可商用(自带的`svg`文件除外)
## 集成到已有项目
+### 脚手架项目
+
```
# 创建项目(已有项目跳过此步骤)
npm init vite@latest
@@ -109,8 +119,64 @@ app.mount('#app')
import { WebtopoSvgEdit,WebtopoSvgPreview } from 'webtopo-svg-edit';
import 'webtopo-svg-edit/dist/style.css'
```
+### umd方式集成
+```html
+
+
+
+ webtopo-svg-edit Example
+
+
+
+
+
+
+
+
+
+
+
-如果集成有问题请参考示例项目[vue-webtopo-svgeditor-example](https://github.com/yaolunmao/vue-webtopo-svgeditor-example)
+```
+### es module方式集成
+```html
+
+
+
+ webtopo-svg-edit Example
+
+
+
+
+
+
+
+
+
+```
+如果集成有问题请参考示例项目[demo](/demo)
**请注意:插件方式引入会导致左侧工具栏的 icon 图标无法正确显示,请自行寻找您项目构建工具的 svg 加载器,将 icon 图标转换成 symbol,并将名字命名为‘svg-xxx’即可正常显示**
@@ -137,8 +203,11 @@ import 'webtopo-svg-edit/dist/style.css'
### vue2怎么集成,有vue2的版本吗?
-vue2建议使用iframe集成,目前没有vue2的版本,如果您接受不了vue2方式集成,也可参考2.1分支进行改造。
-
+vue2建议使用iframe、cdn集成,目前没有vue2的版本,如果您接受不了vue2方式集成,也可参考2.1分支进行改造。
+### 项目启动不起来怎么办?
+请使用`pnpm`安装依赖
+### 随便改哪里的代码eslint都报错怎么办?
+vscode安装eslint插件
## 鸣谢
吉林省格尺科技有限公司促进该项目诞生
diff --git a/demo/cdn/demo-module.html b/demo/cdn/demo-module.html
new file mode 100644
index 0000000..d9d468a
--- /dev/null
+++ b/demo/cdn/demo-module.html
@@ -0,0 +1,29 @@
+
+
+
+ webtopo-svg-edit Example
+
+
+
+
+
+
+
+
diff --git a/demo/cdn/demo.html b/demo/cdn/demo.html
new file mode 100644
index 0000000..58b6959
--- /dev/null
+++ b/demo/cdn/demo.html
@@ -0,0 +1,20 @@
+
+
+
+ webtopo-svg-edit Example
+
+
+
+
+
+
+
+
+
+
+
diff --git a/demo/vue-webtopo-svgeditor-example/.gitignore b/demo/vue-webtopo-svgeditor-example/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/demo/vue-webtopo-svgeditor-example/.vscode/extensions.json b/demo/vue-webtopo-svgeditor-example/.vscode/extensions.json
new file mode 100644
index 0000000..c0a6e5a
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
+}
diff --git a/demo/vue-webtopo-svgeditor-example/README.md b/demo/vue-webtopo-svgeditor-example/README.md
new file mode 100644
index 0000000..b97106d
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/README.md
@@ -0,0 +1,2 @@
+# 说明
+此项目为开源项目[vue-webtopo-svgeditor](https://github.com/yaolunmao/vue-webtopo-svgeditor)的集成示例
\ No newline at end of file
diff --git a/demo/vue-webtopo-svgeditor-example/index.html b/demo/vue-webtopo-svgeditor-example/index.html
new file mode 100644
index 0000000..143557b
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + Vue + TS
+
+
+
+
+
+
diff --git a/demo/vue-webtopo-svgeditor-example/package.json b/demo/vue-webtopo-svgeditor-example/package.json
new file mode 100644
index 0000000..4e92b40
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "vue-webtopo-svgeditor-example",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vue-tsc && vite build",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "pinia": "^2.0.29",
+ "vue": "^3.2.45",
+ "webtopo-svg-edit": "^0.0.2"
+ },
+ "devDependencies": {
+ "@vitejs/plugin-vue": "^4.0.0",
+ "typescript": "^4.9.3",
+ "vite": "^4.0.0",
+ "vue-tsc": "^1.0.11"
+ }
+}
\ No newline at end of file
diff --git a/demo/vue-webtopo-svgeditor-example/pnpm-lock.yaml b/demo/vue-webtopo-svgeditor-example/pnpm-lock.yaml
new file mode 100644
index 0000000..f3b36e2
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/pnpm-lock.yaml
@@ -0,0 +1,834 @@
+lockfileVersion: 5.4
+
+specifiers:
+ '@vitejs/plugin-vue': ^4.0.0
+ pinia: ^2.0.29
+ typescript: ^4.9.3
+ vite: ^4.0.0
+ vue: ^3.2.45
+ vue-tsc: ^1.0.11
+ webtopo-svg-edit: ^0.0.2
+
+dependencies:
+ pinia: 2.0.29_prq2uz4lho2pwp6irk4cfkrxwu
+ vue: 3.2.45
+ webtopo-svg-edit: 0.0.2_typescript@4.9.4
+
+devDependencies:
+ '@vitejs/plugin-vue': 4.0.0_vite@4.0.4+vue@3.2.45
+ typescript: 4.9.4
+ vite: 4.0.4
+ vue-tsc: 1.0.24_typescript@4.9.4
+
+packages:
+
+ /@babel/helper-string-parser/7.19.4:
+ resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-validator-identifier/7.19.1:
+ resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/parser/7.20.7:
+ resolution: {integrity: sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.20.7
+
+ /@babel/types/7.20.7:
+ resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.19.4
+ '@babel/helper-validator-identifier': 7.19.1
+ to-fast-properties: 2.0.0
+
+ /@ctrl/tinycolor/3.5.0:
+ resolution: {integrity: sha512-tlJpwF40DEQcfR/QF+wNMVyGMaO9FQp6Z1Wahj4Gk3CJQYHwA2xVG7iKDFdW6zuxZY9XWOpGcfNCTsX4McOsOg==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /@element-plus/icons-vue/2.0.10_vue@3.2.45:
+ resolution: {integrity: sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ==}
+ peerDependencies:
+ vue: ^3.2.0
+ dependencies:
+ vue: 3.2.45
+ dev: false
+
+ /@esbuild/android-arm/0.16.17:
+ resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm64/0.16.17:
+ resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-x64/0.16.17:
+ resolution: {integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-arm64/0.16.17:
+ resolution: {integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-x64/0.16.17:
+ resolution: {integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-arm64/0.16.17:
+ resolution: {integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-x64/0.16.17:
+ resolution: {integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm/0.16.17:
+ resolution: {integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm64/0.16.17:
+ resolution: {integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ia32/0.16.17:
+ resolution: {integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-loong64/0.16.17:
+ resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-mips64el/0.16.17:
+ resolution: {integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ppc64/0.16.17:
+ resolution: {integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-riscv64/0.16.17:
+ resolution: {integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-s390x/0.16.17:
+ resolution: {integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-x64/0.16.17:
+ resolution: {integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/netbsd-x64/0.16.17:
+ resolution: {integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openbsd-x64/0.16.17:
+ resolution: {integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/sunos-x64/0.16.17:
+ resolution: {integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-arm64/0.16.17:
+ resolution: {integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-ia32/0.16.17:
+ resolution: {integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-x64/0.16.17:
+ resolution: {integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@floating-ui/core/1.1.0:
+ resolution: {integrity: sha512-zbsLwtnHo84w1Kc8rScAo5GMk1GdecSlrflIbfnEBJwvTSj1SL6kkOYV+nHraMCPEy+RNZZUaZyL8JosDGCtGQ==}
+ dev: false
+
+ /@floating-ui/dom/1.1.0:
+ resolution: {integrity: sha512-TSogMPVxbRe77QCj1dt8NmRiJasPvuc+eT5jnJ6YpLqgOD2zXc5UA3S1qwybN+GVCDNdKfpKy1oj8RpzLJvh6A==}
+ dependencies:
+ '@floating-ui/core': 1.1.0
+ dev: false
+
+ /@sxzz/popperjs-es/2.11.7:
+ resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
+ dev: false
+
+ /@types/lodash-es/4.17.6:
+ resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==}
+ dependencies:
+ '@types/lodash': 4.14.191
+ dev: false
+
+ /@types/lodash/4.14.191:
+ resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==}
+ dev: false
+
+ /@types/web-bluetooth/0.0.16:
+ resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
+ dev: false
+
+ /@vitejs/plugin-vue/4.0.0_vite@4.0.4+vue@3.2.45:
+ resolution: {integrity: sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ vite: ^4.0.0
+ vue: ^3.2.25
+ dependencies:
+ vite: 4.0.4
+ vue: 3.2.45
+ dev: true
+
+ /@volar/language-core/1.0.24:
+ resolution: {integrity: sha512-vTN+alJiWwK0Pax6POqrmevbtFW2dXhjwWiW/MW4f48eDYPLdyURWcr8TixO7EN/nHsUBj2udT7igFKPtjyAKg==}
+ dependencies:
+ '@volar/source-map': 1.0.24
+ muggle-string: 0.1.0
+ dev: true
+
+ /@volar/source-map/1.0.24:
+ resolution: {integrity: sha512-Qsv/tkplx18pgBr8lKAbM1vcDqgkGKQzbChg6NW+v0CZc3G7FLmK+WrqEPzKlN7Cwdc6XVL559Nod8WKAfKr4A==}
+ dependencies:
+ muggle-string: 0.1.0
+ dev: true
+
+ /@volar/typescript/1.0.24:
+ resolution: {integrity: sha512-f8hCSk+PfKR1/RQHxZ79V1NpDImHoivqoizK+mstphm25tn/YJ/JnKNjZHB+o21fuW0yKlI26NV3jkVb2Cc/7A==}
+ dependencies:
+ '@volar/language-core': 1.0.24
+ dev: true
+
+ /@volar/vue-language-core/1.0.24:
+ resolution: {integrity: sha512-2NTJzSgrwKu6uYwPqLiTMuAzi7fAY3yFy5PJ255bGJc82If0Xr+cW8pC80vpjG0D/aVLmlwAdO4+Ya2BI8GdDg==}
+ dependencies:
+ '@volar/language-core': 1.0.24
+ '@volar/source-map': 1.0.24
+ '@vue/compiler-dom': 3.2.45
+ '@vue/compiler-sfc': 3.2.45
+ '@vue/reactivity': 3.2.45
+ '@vue/shared': 3.2.45
+ minimatch: 5.1.6
+ vue-template-compiler: 2.7.14
+ dev: true
+
+ /@volar/vue-typescript/1.0.24:
+ resolution: {integrity: sha512-9a25oHDvGaNC0okRS47uqJI6FxY4hUQZUsxeOUFHcqVxZEv8s17LPuP/pMMXyz7jPygrZubB/qXqHY5jEu/akA==}
+ dependencies:
+ '@volar/typescript': 1.0.24
+ '@volar/vue-language-core': 1.0.24
+ dev: true
+
+ /@vue/compiler-core/3.2.45:
+ resolution: {integrity: sha512-rcMj7H+PYe5wBV3iYeUgbCglC+pbpN8hBLTJvRiK2eKQiWqu+fG9F+8sW99JdL4LQi7Re178UOxn09puSXvn4A==}
+ dependencies:
+ '@babel/parser': 7.20.7
+ '@vue/shared': 3.2.45
+ estree-walker: 2.0.2
+ source-map: 0.6.1
+
+ /@vue/compiler-dom/3.2.45:
+ resolution: {integrity: sha512-tyYeUEuKqqZO137WrZkpwfPCdiiIeXYCcJ8L4gWz9vqaxzIQRccTSwSWZ/Axx5YR2z+LvpUbmPNXxuBU45lyRw==}
+ dependencies:
+ '@vue/compiler-core': 3.2.45
+ '@vue/shared': 3.2.45
+
+ /@vue/compiler-sfc/3.2.45:
+ resolution: {integrity: sha512-1jXDuWah1ggsnSAOGsec8cFjT/K6TMZ0sPL3o3d84Ft2AYZi2jWJgRMjw4iaK0rBfA89L5gw427H4n1RZQBu6Q==}
+ dependencies:
+ '@babel/parser': 7.20.7
+ '@vue/compiler-core': 3.2.45
+ '@vue/compiler-dom': 3.2.45
+ '@vue/compiler-ssr': 3.2.45
+ '@vue/reactivity-transform': 3.2.45
+ '@vue/shared': 3.2.45
+ estree-walker: 2.0.2
+ magic-string: 0.25.9
+ postcss: 8.4.21
+ source-map: 0.6.1
+
+ /@vue/compiler-ssr/3.2.45:
+ resolution: {integrity: sha512-6BRaggEGqhWht3lt24CrIbQSRD5O07MTmd+LjAn5fJj568+R9eUD2F7wMQJjX859seSlrYog7sUtrZSd7feqrQ==}
+ dependencies:
+ '@vue/compiler-dom': 3.2.45
+ '@vue/shared': 3.2.45
+
+ /@vue/devtools-api/6.4.5:
+ resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==}
+ dev: false
+
+ /@vue/reactivity-transform/3.2.45:
+ resolution: {integrity: sha512-BHVmzYAvM7vcU5WmuYqXpwaBHjsS8T63jlKGWVtHxAHIoMIlmaMyurUSEs1Zcg46M4AYT5MtB1U274/2aNzjJQ==}
+ dependencies:
+ '@babel/parser': 7.20.7
+ '@vue/compiler-core': 3.2.45
+ '@vue/shared': 3.2.45
+ estree-walker: 2.0.2
+ magic-string: 0.25.9
+
+ /@vue/reactivity/3.2.45:
+ resolution: {integrity: sha512-PRvhCcQcyEVohW0P8iQ7HDcIOXRjZfAsOds3N99X/Dzewy8TVhTCT4uXpAHfoKjVTJRA0O0K+6QNkDIZAxNi3A==}
+ dependencies:
+ '@vue/shared': 3.2.45
+
+ /@vue/runtime-core/3.2.45:
+ resolution: {integrity: sha512-gzJiTA3f74cgARptqzYswmoQx0fIA+gGYBfokYVhF8YSXjWTUA2SngRzZRku2HbGbjzB6LBYSbKGIaK8IW+s0A==}
+ dependencies:
+ '@vue/reactivity': 3.2.45
+ '@vue/shared': 3.2.45
+
+ /@vue/runtime-dom/3.2.45:
+ resolution: {integrity: sha512-cy88YpfP5Ue2bDBbj75Cb4bIEZUMM/mAkDMfqDTpUYVgTf/kuQ2VQ8LebuZ8k6EudgH8pYhsGWHlY0lcxlvTwA==}
+ dependencies:
+ '@vue/runtime-core': 3.2.45
+ '@vue/shared': 3.2.45
+ csstype: 2.6.21
+
+ /@vue/server-renderer/3.2.45_vue@3.2.45:
+ resolution: {integrity: sha512-ebiMq7q24WBU1D6uhPK//2OTR1iRIyxjF5iVq/1a5I1SDMDyDu4Ts6fJaMnjrvD3MqnaiFkKQj+LKAgz5WIK3g==}
+ peerDependencies:
+ vue: 3.2.45
+ dependencies:
+ '@vue/compiler-ssr': 3.2.45
+ '@vue/shared': 3.2.45
+ vue: 3.2.45
+
+ /@vue/shared/3.2.45:
+ resolution: {integrity: sha512-Ewzq5Yhimg7pSztDV+RH1UDKBzmtqieXQlpTVm2AwraoRL/Rks96mvd8Vgi7Lj+h+TH8dv7mXD3FRZR3TUvbSg==}
+
+ /@vueuse/core/9.11.0_vue@3.2.45:
+ resolution: {integrity: sha512-7yZJ8LNOssA8ZmeSjd4F+wbFBA4csiP4TiaXgruqg1H4PAtzSkv93PPwFLvQkSnfo3Bar+e+6QoRvWjhz7l2Xg==}
+ dependencies:
+ '@types/web-bluetooth': 0.0.16
+ '@vueuse/metadata': 9.11.0
+ '@vueuse/shared': 9.11.0_vue@3.2.45
+ vue-demi: 0.13.11_vue@3.2.45
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+ dev: false
+
+ /@vueuse/metadata/9.11.0:
+ resolution: {integrity: sha512-HhtG2SWkcfZBLbamHdvLn7jKOCFpw/ifXjVTd5ilFkj98WVUk/3UTQ03wF1XIkuhSO4+b45hD2lfG9/GdKCF7w==}
+ dev: false
+
+ /@vueuse/shared/9.11.0_vue@3.2.45:
+ resolution: {integrity: sha512-8lO7wD5abYxupKy2KynH1pSgP715ky6iCrWYb8aX2AuAVi9uHXj7qE1dw6BnmArSaLHci4x9iuzWPCpAzUkC/A==}
+ dependencies:
+ vue-demi: 0.13.11_vue@3.2.45
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+ dev: false
+
+ /ace-builds/1.14.0:
+ resolution: {integrity: sha512-3q8LvawomApRCt4cC0OzxVjDsZ609lDbm8l0Xl9uqG06dKEq4RT0YXLUyk7J2SxmqIp5YXzZNw767Dr8GKUruw==}
+ dev: false
+
+ /async-validator/4.2.5:
+ resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
+ dev: false
+
+ /balanced-match/1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ dev: true
+
+ /brace-expansion/2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ dependencies:
+ balanced-match: 1.0.2
+ dev: true
+
+ /csstype/2.6.21:
+ resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==}
+
+ /dayjs/1.11.7:
+ resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==}
+ dev: false
+
+ /de-indent/1.0.2:
+ resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==}
+ dev: true
+
+ /echarts/5.4.1:
+ resolution: {integrity: sha512-9ltS3M2JB0w2EhcYjCdmtrJ+6haZcW6acBolMGIuf01Hql1yrIV01L1aRj7jsaaIULJslEP9Z3vKlEmnJaWJVQ==}
+ dependencies:
+ tslib: 2.3.0
+ zrender: 5.4.1
+ dev: false
+
+ /element-plus/2.2.28_vue@3.2.45:
+ resolution: {integrity: sha512-BsxF7iEaBydmRfw1Tt++EO9jRBjbtJr7ZRIrnEwz4J3Cwa1IzHCNCcx3ZwcYTlJq9CYFxv94JnbNr1EbkTou3A==}
+ peerDependencies:
+ vue: ^3.2.0
+ dependencies:
+ '@ctrl/tinycolor': 3.5.0
+ '@element-plus/icons-vue': 2.0.10_vue@3.2.45
+ '@floating-ui/dom': 1.1.0
+ '@popperjs/core': /@sxzz/popperjs-es/2.11.7
+ '@types/lodash': 4.14.191
+ '@types/lodash-es': 4.17.6
+ '@vueuse/core': 9.11.0_vue@3.2.45
+ async-validator: 4.2.5
+ dayjs: 1.11.7
+ escape-html: 1.0.3
+ lodash: 4.17.21
+ lodash-es: 4.17.21
+ lodash-unified: 1.0.3_3ib2ivapxullxkx3xftsimdk7u
+ memoize-one: 6.0.0
+ normalize-wheel-es: 1.2.0
+ vue: 3.2.45
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ dev: false
+
+ /esbuild/0.16.17:
+ resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/android-arm': 0.16.17
+ '@esbuild/android-arm64': 0.16.17
+ '@esbuild/android-x64': 0.16.17
+ '@esbuild/darwin-arm64': 0.16.17
+ '@esbuild/darwin-x64': 0.16.17
+ '@esbuild/freebsd-arm64': 0.16.17
+ '@esbuild/freebsd-x64': 0.16.17
+ '@esbuild/linux-arm': 0.16.17
+ '@esbuild/linux-arm64': 0.16.17
+ '@esbuild/linux-ia32': 0.16.17
+ '@esbuild/linux-loong64': 0.16.17
+ '@esbuild/linux-mips64el': 0.16.17
+ '@esbuild/linux-ppc64': 0.16.17
+ '@esbuild/linux-riscv64': 0.16.17
+ '@esbuild/linux-s390x': 0.16.17
+ '@esbuild/linux-x64': 0.16.17
+ '@esbuild/netbsd-x64': 0.16.17
+ '@esbuild/openbsd-x64': 0.16.17
+ '@esbuild/sunos-x64': 0.16.17
+ '@esbuild/win32-arm64': 0.16.17
+ '@esbuild/win32-ia32': 0.16.17
+ '@esbuild/win32-x64': 0.16.17
+ dev: true
+
+ /escape-html/1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+ dev: false
+
+ /estree-walker/2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ /fsevents/2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /function-bind/1.1.1:
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+ dev: true
+
+ /has/1.0.3:
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
+ engines: {node: '>= 0.4.0'}
+ dependencies:
+ function-bind: 1.1.1
+ dev: true
+
+ /he/1.2.0:
+ resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
+ hasBin: true
+ dev: true
+
+ /is-core-module/2.11.0:
+ resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
+ dependencies:
+ has: 1.0.3
+ dev: true
+
+ /lodash-es/4.17.21:
+ resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
+ dev: false
+
+ /lodash-unified/1.0.3_3ib2ivapxullxkx3xftsimdk7u:
+ resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==}
+ peerDependencies:
+ '@types/lodash-es': '*'
+ lodash: '*'
+ lodash-es: '*'
+ dependencies:
+ '@types/lodash-es': 4.17.6
+ lodash: 4.17.21
+ lodash-es: 4.17.21
+ dev: false
+
+ /lodash/4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ dev: false
+
+ /magic-string/0.25.9:
+ resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
+ dependencies:
+ sourcemap-codec: 1.4.8
+
+ /memoize-one/6.0.0:
+ resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
+ dev: false
+
+ /minimatch/5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ engines: {node: '>=10'}
+ dependencies:
+ brace-expansion: 2.0.1
+ dev: true
+
+ /muggle-string/0.1.0:
+ resolution: {integrity: sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==}
+ dev: true
+
+ /nanoid/3.3.4:
+ resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ /normalize-wheel-es/1.2.0:
+ resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
+ dev: false
+
+ /path-parse/1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ dev: true
+
+ /picocolors/1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+
+ /pinia/2.0.29_prq2uz4lho2pwp6irk4cfkrxwu:
+ resolution: {integrity: sha512-5z/KpFecq/cIgfeTnulJXldiLcTITRkTe3N58RKYSj0Pc1EdR6oyCdnf5A9jLoVwBqX5LtHhd0kGlpzWvk9oiQ==}
+ peerDependencies:
+ '@vue/composition-api': ^1.4.0
+ typescript: '>=4.4.4'
+ vue: ^2.6.14 || ^3.2.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+ typescript:
+ optional: true
+ dependencies:
+ '@vue/devtools-api': 6.4.5
+ typescript: 4.9.4
+ vue: 3.2.45
+ vue-demi: 0.13.11_vue@3.2.45
+ dev: false
+
+ /postcss/8.4.21:
+ resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.4
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+
+ /resize-detector/0.3.0:
+ resolution: {integrity: sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ==}
+ dev: false
+
+ /resize-observer-polyfill/1.5.1:
+ resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
+ dev: false
+
+ /resolve/1.22.1:
+ resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.11.0
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
+ /rollup/3.10.0:
+ resolution: {integrity: sha512-JmRYz44NjC1MjVF2VKxc0M1a97vn+cDxeqWmnwyAF4FvpjK8YFdHpaqvQB+3IxCvX05vJxKZkoMDU8TShhmJVA==}
+ engines: {node: '>=14.18.0', npm: '>=8.0.0'}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+
+ /source-map-js/1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+
+ /source-map/0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+
+ /sourcemap-codec/1.4.8:
+ resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
+ deprecated: Please use @jridgewell/sourcemap-codec instead
+
+ /supports-preserve-symlinks-flag/1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /to-fast-properties/2.0.0:
+ resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
+ engines: {node: '>=4'}
+
+ /tslib/2.3.0:
+ resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
+ dev: false
+
+ /typescript/4.9.4:
+ resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+
+ /vite/4.0.4:
+ resolution: {integrity: sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': '>= 14'
+ less: '*'
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ dependencies:
+ esbuild: 0.16.17
+ postcss: 8.4.21
+ resolve: 1.22.1
+ rollup: 3.10.0
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+
+ /vue-demi/0.13.11_vue@3.2.45:
+ resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ peerDependencies:
+ '@vue/composition-api': ^1.0.0-rc.1
+ vue: ^3.0.0-0 || ^2.6.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+ dependencies:
+ vue: 3.2.45
+ dev: false
+
+ /vue-echarts/6.5.1_echarts@5.4.1+vue@3.2.45:
+ resolution: {integrity: sha512-vlCX65ITq83xkOljip3juL8LyMd4cHOE6Zmp+9u1nPxPrar0irEtTwV80lkFm5yQM4Ef9X9fNdMa6gmsj75xYw==}
+ requiresBuild: true
+ peerDependencies:
+ '@vue/composition-api': ^1.0.5
+ echarts: ^5.4.1
+ vue: ^2.6.12 || ^3.1.1
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+ dependencies:
+ echarts: 5.4.1
+ resize-detector: 0.3.0
+ vue: 3.2.45
+ vue-demi: 0.13.11_vue@3.2.45
+ dev: false
+
+ /vue-router/4.1.6_vue@3.2.45:
+ resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==}
+ peerDependencies:
+ vue: ^3.2.0
+ dependencies:
+ '@vue/devtools-api': 6.4.5
+ vue: 3.2.45
+ dev: false
+
+ /vue-template-compiler/2.7.14:
+ resolution: {integrity: sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==}
+ dependencies:
+ de-indent: 1.0.2
+ he: 1.2.0
+ dev: true
+
+ /vue-tsc/1.0.24_typescript@4.9.4:
+ resolution: {integrity: sha512-mmU1s5SAqE1nByQAiQnao9oU4vX+mSdsgI8H57SfKH6UVzq/jP9+Dbi2GaV+0b4Cn361d2ln8m6xeU60ApiEXg==}
+ hasBin: true
+ peerDependencies:
+ typescript: '*'
+ dependencies:
+ '@volar/vue-language-core': 1.0.24
+ '@volar/vue-typescript': 1.0.24
+ typescript: 4.9.4
+ dev: true
+
+ /vue/3.2.45:
+ resolution: {integrity: sha512-9Nx/Mg2b2xWlXykmCwiTUCWHbWIj53bnkizBxKai1g61f2Xit700A1ljowpTIM11e3uipOeiPcSqnmBg6gyiaA==}
+ dependencies:
+ '@vue/compiler-dom': 3.2.45
+ '@vue/compiler-sfc': 3.2.45
+ '@vue/runtime-dom': 3.2.45
+ '@vue/server-renderer': 3.2.45_vue@3.2.45
+ '@vue/shared': 3.2.45
+
+ /vue3-ace-editor/2.2.2:
+ resolution: {integrity: sha512-fZ6OWosbU+odLrtrcGC/536QjCigujYJB0Hf6/tBp+ef/ohTadwQAqyBlVzOmvrmzZyubphpV9zkaZcx5Fuivw==}
+ dependencies:
+ ace-builds: 1.14.0
+ resize-observer-polyfill: 1.5.1
+ vue: 3.2.45
+ dev: false
+
+ /webtopo-svg-edit/0.0.2_typescript@4.9.4:
+ resolution: {integrity: sha512-u+6a6vdOONV9Gb0Xj11OdGcAJxMKUD3hLplfZFbIivESlhCOoHBwTu2UCTRbbLf821KXyANgZsRpaiU7pbNW8w==}
+ requiresBuild: true
+ dependencies:
+ ace-builds: 1.14.0
+ echarts: 5.4.1
+ element-plus: 2.2.28_vue@3.2.45
+ pinia: 2.0.29_prq2uz4lho2pwp6irk4cfkrxwu
+ vue: 3.2.45
+ vue-echarts: 6.5.1_echarts@5.4.1+vue@3.2.45
+ vue-router: 4.1.6_vue@3.2.45
+ vue3-ace-editor: 2.2.2
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - typescript
+ dev: false
+
+ /zrender/5.4.1:
+ resolution: {integrity: sha512-M4Z05BHWtajY2241EmMPHglDQAJ1UyHQcYsxDNzD9XLSkPDqMq4bB28v9Pb4mvHnVQ0GxyTklZ/69xCFP6RXBA==}
+ dependencies:
+ tslib: 2.3.0
+ dev: false
diff --git a/demo/vue-webtopo-svgeditor-example/public/vite.svg b/demo/vue-webtopo-svgeditor-example/public/vite.svg
new file mode 100644
index 0000000..e7b8dfb
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/public/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/demo/vue-webtopo-svgeditor-example/src/App.vue b/demo/vue-webtopo-svgeditor-example/src/App.vue
new file mode 100644
index 0000000..a0b930e
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/src/App.vue
@@ -0,0 +1,277 @@
+
+
+
+
+
+
+
+
+
diff --git a/demo/vue-webtopo-svgeditor-example/src/assets/vue.svg b/demo/vue-webtopo-svgeditor-example/src/assets/vue.svg
new file mode 100644
index 0000000..770e9d3
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/src/assets/vue.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/demo/vue-webtopo-svgeditor-example/src/components/HelloWorld.vue b/demo/vue-webtopo-svgeditor-example/src/components/HelloWorld.vue
new file mode 100644
index 0000000..45ee51d
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/src/components/HelloWorld.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
{{ msg }}
+
+
+
+
+ Edit
+ components/HelloWorld.vue
to test HMR
+
+
+
+
+
+
diff --git a/demo/vue-webtopo-svgeditor-example/src/main.ts b/demo/vue-webtopo-svgeditor-example/src/main.ts
new file mode 100644
index 0000000..044da95
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/src/main.ts
@@ -0,0 +1,9 @@
+import { createApp } from 'vue';
+import App from './App.vue';
+import { createPinia } from 'pinia';
+import HelloWorld from './components/HelloWorld.vue';
+
+const app = createApp(App);
+app.use(createPinia());
+app.component('HelloWorld', HelloWorld);
+app.mount('#app');
diff --git a/demo/vue-webtopo-svgeditor-example/src/style.css b/demo/vue-webtopo-svgeditor-example/src/style.css
new file mode 100644
index 0000000..0192f9a
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/src/style.css
@@ -0,0 +1,81 @@
+:root {
+ font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
+ font-size: 16px;
+ line-height: 24px;
+ font-weight: 400;
+
+ color-scheme: light dark;
+ color: rgba(255, 255, 255, 0.87);
+ background-color: #242424;
+
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-text-size-adjust: 100%;
+}
+
+a {
+ font-weight: 500;
+ color: #646cff;
+ text-decoration: inherit;
+}
+a:hover {
+ color: #535bf2;
+}
+
+body {
+ margin: 0;
+ display: flex;
+ place-items: center;
+ min-width: 320px;
+ min-height: 100vh;
+}
+
+h1 {
+ font-size: 3.2em;
+ line-height: 1.1;
+}
+
+button {
+ border-radius: 8px;
+ border: 1px solid transparent;
+ padding: 0.6em 1.2em;
+ font-size: 1em;
+ font-weight: 500;
+ font-family: inherit;
+ background-color: #1a1a1a;
+ cursor: pointer;
+ transition: border-color 0.25s;
+}
+button:hover {
+ border-color: #646cff;
+}
+button:focus,
+button:focus-visible {
+ outline: 4px auto -webkit-focus-ring-color;
+}
+
+.card {
+ padding: 2em;
+}
+
+#app {
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 2rem;
+ text-align: center;
+}
+
+@media (prefers-color-scheme: light) {
+ :root {
+ color: #213547;
+ background-color: #ffffff;
+ }
+ a:hover {
+ color: #747bff;
+ }
+ button {
+ background-color: #f9f9f9;
+ }
+}
diff --git a/demo/vue-webtopo-svgeditor-example/src/vite-env.d.ts b/demo/vue-webtopo-svgeditor-example/src/vite-env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/src/vite-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/demo/vue-webtopo-svgeditor-example/tsconfig.json b/demo/vue-webtopo-svgeditor-example/tsconfig.json
new file mode 100644
index 0000000..b557c40
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/tsconfig.json
@@ -0,0 +1,18 @@
+{
+ "compilerOptions": {
+ "target": "ESNext",
+ "useDefineForClassFields": true,
+ "module": "ESNext",
+ "moduleResolution": "Node",
+ "strict": true,
+ "jsx": "preserve",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "esModuleInterop": true,
+ "lib": ["ESNext", "DOM"],
+ "skipLibCheck": true,
+ "noEmit": true
+ },
+ "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
+ "references": [{ "path": "./tsconfig.node.json" }]
+}
diff --git a/demo/vue-webtopo-svgeditor-example/tsconfig.node.json b/demo/vue-webtopo-svgeditor-example/tsconfig.node.json
new file mode 100644
index 0000000..9d31e2a
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/tsconfig.node.json
@@ -0,0 +1,9 @@
+{
+ "compilerOptions": {
+ "composite": true,
+ "module": "ESNext",
+ "moduleResolution": "Node",
+ "allowSyntheticDefaultImports": true
+ },
+ "include": ["vite.config.ts"]
+}
diff --git a/demo/vue-webtopo-svgeditor-example/vite.config.ts b/demo/vue-webtopo-svgeditor-example/vite.config.ts
new file mode 100644
index 0000000..f92047d
--- /dev/null
+++ b/demo/vue-webtopo-svgeditor-example/vite.config.ts
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite';
+import vue from '@vitejs/plugin-vue';
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [vue()]
+});
diff --git a/package.json b/package.json
index 2dc6a29..1530696 100644
--- a/package.json
+++ b/package.json
@@ -1,17 +1,17 @@
{
"name": "webtopo-svg-edit",
- "version": "0.0.2",
+ "version": "0.0.8",
"description": "基于vue3.2+ts实现的svg可视化web组态编辑器。",
"author": "咬轮猫 <10928033@qq.com>",
"files": [
"dist"
],
- "module": "./dist/webtopo-svg-edit.es.ts",
- "main": "./dist/webtopo-svg-edit.umd.ts",
+ "module": "./dist/webtopo-svg-edit.es.js",
+ "main": "./dist/webtopo-svg-edit.umd.cjs",
"exports": {
".": {
- "import": "./dist/webtopo-svg-edit.es.ts",
- "require": "./dist/webtopo-svg-edit.umd.ts"
+ "import": "./dist/webtopo-svg-edit.es.js",
+ "require": "./dist/webtopo-svg-edit.umd.cjs"
},
"./dist/style.css": {
"import": "./dist/style.css",
diff --git a/vite.config.ts b/vite.config.ts
index 4f253cb..140dabf 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -40,8 +40,8 @@ export default defineConfig(({ mode }) => {
build: {
lib: {
entry: resolve(__dirname, 'src/export.ts'),
- name: 'webtopo-svg-edit',
- fileName: (format) => `webtopo-svg-edit.${format}.ts`
+ name: 'WebtopoYLM',
+ fileName: `webtopo-svg-edit`
},
rollupOptions: {
// 确保外部化处理那些你不想打包进库的依赖