├── .eslintrc.js
├── .gitignore
├── LICENSE
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── public
└── favicon.ico
├── src
├── App.vue
├── assets
│ └── logo.png
├── components
│ ├── ColorPicker.vue
│ ├── DynamicInput.vue
│ ├── EmptyComp.vue
│ ├── Loading.vue
│ └── NavigationBar.vue
├── core
│ ├── DynamicEngine.vue
│ └── renderer
│ │ ├── FormRender.vue
│ │ └── ViewRender.vue
├── env.d.ts
├── index.less
├── main.ts
├── materials
│ ├── base
│ │ ├── Button
│ │ │ ├── index.vue
│ │ │ ├── schema.ts
│ │ │ └── template.ts
│ │ ├── Coupon
│ │ │ ├── components
│ │ │ │ ├── Coupon1
│ │ │ │ │ └── index.vue
│ │ │ │ └── Coupon2
│ │ │ │ │ └── index.vue
│ │ │ ├── index.vue
│ │ │ ├── schema.ts
│ │ │ └── template.ts
│ │ ├── ImageRange
│ │ │ ├── index.vue
│ │ │ ├── schema.ts
│ │ │ └── template.ts
│ │ ├── Swiper
│ │ │ ├── index.vue
│ │ │ ├── schema.ts
│ │ │ └── template.ts
│ │ ├── Text
│ │ │ ├── index.vue
│ │ │ ├── schema.ts
│ │ │ └── template.ts
│ │ ├── schema.ts
│ │ └── template.ts
│ └── schema.ts
├── models
│ ├── db.d.ts
│ └── db.ts
├── pages
│ ├── Editor
│ │ ├── Container.vue
│ │ ├── components
│ │ │ ├── Header
│ │ │ │ ├── components
│ │ │ │ │ └── SaveOrPubilcBtn
│ │ │ │ │ │ └── index.vue
│ │ │ │ └── index.vue
│ │ │ ├── Left
│ │ │ │ ├── components
│ │ │ │ │ ├── CompList
│ │ │ │ │ │ └── index.vue
│ │ │ │ │ └── CompMap
│ │ │ │ │ │ └── index.vue
│ │ │ │ └── index.vue
│ │ │ ├── Middle
│ │ │ │ ├── components
│ │ │ │ │ └── CompControl.vue
│ │ │ │ └── index.vue
│ │ │ └── Right
│ │ │ │ ├── components
│ │ │ │ └── SettingDrawer.vue
│ │ │ │ └── index.vue
│ │ └── index.vue
│ └── Preview
│ │ └── index.vue
├── reset.css
├── router
│ └── index.ts
├── store
│ ├── index.ts
│ └── typing.ts
└── utlis
│ └── index.ts
├── tsconfig.json
└── vite.config.ts
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | parserOptions: {
4 | sourceType: 'module'
5 | },
6 | parser: 'vue-eslint-parser',
7 | env: {
8 | browser: true,
9 | node: true,
10 | es6: true
11 | },
12 | rules: {
13 | 'import/no-unresolved': 'off',
14 | 'import/extensions': 'off',
15 | 'import/no-absolute-path': 'off',
16 | 'import/no-extraneous-dependencies': 'off',
17 | }
18 | };
19 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | .DS_Store
3 | dist
4 | dist-ssr
5 | *.local
6 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Ryzen
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 智搭 Vue3 低代码可视化搭建基座
2 |
3 |
4 | 基于以下技术构建:
5 |
6 |
30 |
31 |
32 | **项目已处于可用状态,更多的功能会持续增加,直到与云货优选鲁班搭建式系统同步!大家也可以提提意见~**
33 |
34 |
35 |
36 |
37 | ## 功能特点
38 |
39 | 智搭可视化搭建是基于Vue3编写的低代码平台,配置端使用Ant design Vue编写配置表单表格,项目提供基础的搭建系统结构,开发者可通过二次开发,根据自身企业业务需求,增加组件和其他功能。
40 |
41 | 🎉 **可扩展,** 智搭使用主流前端框架Vue开发,配合Ant Design Vue组件库和vuedraggable拖拽库开发,编辑器支持对接不同的服务端语言,实现标准化接口(自带后台服务使用nodeJS驱动)。此外提供组件开发指南和最佳实践,以满足不同企业的业务需求。
42 |
43 | 📦 **开箱即用,** 智搭内置了**表单渲染器(FormRender)、页面渲染器(ViewRender)、动态加载内核(Dynamic)**等,提供完善的前端基座功能。企业拿到手即可安排中级/初级工程师进行组件开发,无需耗费时间和精力在基础架构上。
44 |
45 | 🚀 **大量自研,** 包含整个编辑器架构、组件设计、文档、请求库封装,后台管理系统等,满足日常项目的周边需求。
46 |
47 | 📱 **多端扩展**,项目能提供H5页面的渲染能力,生成的页面可以用在浏览器/webView,同时开发者也可以通过生成的JSON Schema在小程序端/客户端中编写原生组件,实现端渲染能力
48 |
49 | 🖥 **质量保证**,项目基于云货优选低代码平台鲁班(React)进行重写,鲁班经历1年多迭代,为云货生成了超过1000页的活动页面,累计访问UV超过20亿,开源版本使用Vue重写,让中小企业更易接入,降低开发门槛
50 |
51 | 🚄 **与时俱进,** 我们将不断更新智搭平台,提供后续的更新服务,同时接纳企业意见,不断迭代。
52 |
53 |
54 |
55 |
56 | ## 项目准备
57 |
58 | 你需要先安装 [node](https://nodejs.org/) 和 [Git](https://git-scm.com/) 工具,项目依赖有[vue](https://cn.vuejs.org)、[vue-router](https://router.vuejs.org/zh-cn/)、[vuex](https://vuex.vuejs.org/zh-cn/)、[vite](https://github.com/vitejs/vite)等
59 |
60 |
61 |
62 | ## 项目架构
63 |
64 |
65 |
67 |
68 |
69 |
70 | ## 项目截图
71 |
72 |
73 |
75 |
76 |
77 |
78 |
79 | ## 开始
80 |
81 | ```bash
82 | # clone the project
83 | git clone https://github.com/RyzenPan/smart-block
84 |
85 | # enter the project directory
86 | cd smart-block
87 |
88 | # install dependency
89 | npm install
90 |
91 | # develop
92 | npm run dev
93 | ```
94 |
95 | This will automatically open http://localhost:3000
96 |
97 |
98 |
99 | ## 构建
100 |
101 | ```bash
102 | npm run build
103 | ```
104 |
105 |
106 |
107 | ## 在线Demo
108 |
109 | 稍后部署
110 |
111 |
112 |
113 | ## 支持我
114 |
115 | 如果项目对你有帮助,麻烦帮我点个Star就好了,哈哈哈~~~
116 |
117 |
118 |
119 | ## 鸣谢
120 |
121 |
122 |
124 |
125 |
126 | 云货优选正在招聘高级 / 资深Web前端开发,欢迎大佬们投递简历 -
127 |
128 | ## License
129 |
130 | [MIT]()
131 |
132 | Copyright (c) 2021-Present Ryzen
133 |
134 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | 智搭H5搭建式服务
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "smart-block",
3 | "version": "0.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@aesoper/normal-utils": {
8 | "version": "0.1.5",
9 | "resolved": "https://registry.npm.taobao.org/@aesoper/normal-utils/download/@aesoper/normal-utils-0.1.5.tgz",
10 | "integrity": "sha1-grfImauWcMVVFflJo3ZtJCYLgDk="
11 | },
12 | "@ant-design/colors": {
13 | "version": "5.1.1",
14 | "resolved": "https://registry.npm.taobao.org/@ant-design/colors/download/@ant-design/colors-5.1.1.tgz?cache=0&sync_timestamp=1612935637470&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40ant-design%2Fcolors%2Fdownload%2F%40ant-design%2Fcolors-5.1.1.tgz",
15 | "integrity": "sha1-gAshhrHifmZDLmfQPtlq8+IdiUA=",
16 | "requires": {
17 | "@ctrl/tinycolor": "^3.3.1"
18 | }
19 | },
20 | "@ant-design/icons-svg": {
21 | "version": "4.2.1",
22 | "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/download/@ant-design/icons-svg-4.2.1.tgz?cache=0&sync_timestamp=1632478211055&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40ant-design%2Ficons-svg%2Fdownload%2F%40ant-design%2Ficons-svg-4.2.1.tgz",
23 | "integrity": "sha1-hjDajrRHGkqr2u19H/apfcss8Fo="
24 | },
25 | "@ant-design/icons-vue": {
26 | "version": "6.0.1",
27 | "resolved": "https://registry.npm.taobao.org/@ant-design/icons-vue/download/@ant-design/icons-vue-6.0.1.tgz",
28 | "integrity": "sha1-nYBMPHTSz6+XyxjlgtO5QAk09f0=",
29 | "requires": {
30 | "@ant-design/colors": "^5.0.0",
31 | "@ant-design/icons-svg": "^4.0.0",
32 | "@types/lodash": "^4.14.165",
33 | "lodash": "^4.17.15"
34 | }
35 | },
36 | "@babel/helper-module-imports": {
37 | "version": "7.16.0",
38 | "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/download/@babel/helper-module-imports-7.16.0.tgz?cache=0&sync_timestamp=1635560941965&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fhelper-module-imports%2Fdownload%2F%40babel%2Fhelper-module-imports-7.16.0.tgz",
39 | "integrity": "sha1-kFOOYLZy7PG0SPX09UM9N+eaPsM=",
40 | "requires": {
41 | "@babel/types": "^7.16.0"
42 | }
43 | },
44 | "@babel/helper-plugin-utils": {
45 | "version": "7.14.5",
46 | "resolved": "https://registry.nlark.com/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.14.5.tgz",
47 | "integrity": "sha1-WsgizpfuxGdBq3ClF5ceRDpwxak="
48 | },
49 | "@babel/helper-validator-identifier": {
50 | "version": "7.15.7",
51 | "resolved": "https://registry.nlark.com/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.15.7.tgz?cache=0&sync_timestamp=1631920110587&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.15.7.tgz",
52 | "integrity": "sha1-Ig35k7/pBKSmsCq08zhaXr9uI4k="
53 | },
54 | "@babel/parser": {
55 | "version": "7.16.3",
56 | "resolved": "https://registry.npmmirror.com/@babel/parser/download/@babel/parser-7.16.3.tgz?cache=0&sync_timestamp=1636494820549&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.16.3.tgz",
57 | "integrity": "sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw=="
58 | },
59 | "@babel/plugin-syntax-jsx": {
60 | "version": "7.16.0",
61 | "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.16.0.tgz?cache=0&sync_timestamp=1635578642050&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fplugin-syntax-jsx%2Fdownload%2F%40babel%2Fplugin-syntax-jsx-7.16.0.tgz",
62 | "integrity": "sha1-+WJDlDFzZamojII1jT+EcRVGmPE=",
63 | "requires": {
64 | "@babel/helper-plugin-utils": "^7.14.5"
65 | }
66 | },
67 | "@babel/runtime": {
68 | "version": "7.16.3",
69 | "resolved": "https://registry.npmmirror.com/@babel/runtime/download/@babel/runtime-7.16.3.tgz?cache=0&sync_timestamp=1636494819594&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.16.3.tgz",
70 | "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==",
71 | "requires": {
72 | "regenerator-runtime": "^0.13.4"
73 | }
74 | },
75 | "@babel/types": {
76 | "version": "7.16.0",
77 | "resolved": "https://registry.npmmirror.com/@babel/types/download/@babel/types-7.16.0.tgz?cache=0&sync_timestamp=1635560908248&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.16.0.tgz",
78 | "integrity": "sha1-2zsxOAT5aq3Qt3bEgj4SetZyibo=",
79 | "requires": {
80 | "@babel/helper-validator-identifier": "^7.15.7",
81 | "to-fast-properties": "^2.0.0"
82 | }
83 | },
84 | "@ctrl/tinycolor": {
85 | "version": "3.4.0",
86 | "resolved": "https://registry.nlark.com/@ctrl/tinycolor/download/@ctrl/tinycolor-3.4.0.tgz",
87 | "integrity": "sha1-w8WuVDyJfKqcKmhjC+01W+X5mQ8="
88 | },
89 | "@emmetio/abbreviation": {
90 | "version": "2.2.2",
91 | "resolved": "https://registry.nlark.com/@emmetio/abbreviation/download/@emmetio/abbreviation-2.2.2.tgz",
92 | "integrity": "sha1-dGdi/Z56jC6mBPWAxi48/iUOaYk=",
93 | "dev": true,
94 | "requires": {
95 | "@emmetio/scanner": "^1.0.0"
96 | }
97 | },
98 | "@emmetio/css-abbreviation": {
99 | "version": "2.1.4",
100 | "resolved": "https://registry.nlark.com/@emmetio/css-abbreviation/download/@emmetio/css-abbreviation-2.1.4.tgz",
101 | "integrity": "sha1-kDYuihEizjt29sMVeQfTAYL1P1Q=",
102 | "dev": true,
103 | "requires": {
104 | "@emmetio/scanner": "^1.0.0"
105 | }
106 | },
107 | "@emmetio/scanner": {
108 | "version": "1.0.0",
109 | "resolved": "https://registry.npm.taobao.org/@emmetio/scanner/download/@emmetio/scanner-1.0.0.tgz",
110 | "integrity": "sha1-Blsq9iM/50dNRII+PeuJckr0K18=",
111 | "dev": true
112 | },
113 | "@eslint/eslintrc": {
114 | "version": "1.0.4",
115 | "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/download/@eslint/eslintrc-1.0.4.tgz?cache=0&sync_timestamp=1636146895324&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40eslint%2Feslintrc%2Fdownload%2F%40eslint%2Feslintrc-1.0.4.tgz",
116 | "integrity": "sha1-3+D/e6JwhI0Qxa3QcV4ElkwDSzE=",
117 | "dev": true,
118 | "requires": {
119 | "ajv": "^6.12.4",
120 | "debug": "^4.3.2",
121 | "espree": "^9.0.0",
122 | "globals": "^13.9.0",
123 | "ignore": "^4.0.6",
124 | "import-fresh": "^3.2.1",
125 | "js-yaml": "^4.1.0",
126 | "minimatch": "^3.0.4",
127 | "strip-json-comments": "^3.1.1"
128 | }
129 | },
130 | "@humanwhocodes/config-array": {
131 | "version": "0.6.0",
132 | "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/download/@humanwhocodes/config-array-0.6.0.tgz?cache=0&sync_timestamp=1635880461804&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40humanwhocodes%2Fconfig-array%2Fdownload%2F%40humanwhocodes%2Fconfig-array-0.6.0.tgz",
133 | "integrity": "sha1-tWIf2zsyMJ0tFldUVsvCd/qPAho=",
134 | "dev": true,
135 | "requires": {
136 | "@humanwhocodes/object-schema": "^1.2.0",
137 | "debug": "^4.1.1",
138 | "minimatch": "^3.0.4"
139 | }
140 | },
141 | "@humanwhocodes/object-schema": {
142 | "version": "1.2.1",
143 | "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/download/@humanwhocodes/object-schema-1.2.1.tgz",
144 | "integrity": "sha1-tSBSnsIdjllFoYUd/Rwy6U45/0U=",
145 | "dev": true
146 | },
147 | "@nodelib/fs.scandir": {
148 | "version": "2.1.5",
149 | "resolved": "https://registry.nlark.com/@nodelib/fs.scandir/download/@nodelib/fs.scandir-2.1.5.tgz",
150 | "integrity": "sha1-dhnC6yGyVIP20WdUi0z9WnSIw9U=",
151 | "dev": true,
152 | "requires": {
153 | "@nodelib/fs.stat": "2.0.5",
154 | "run-parallel": "^1.1.9"
155 | }
156 | },
157 | "@nodelib/fs.stat": {
158 | "version": "2.0.5",
159 | "resolved": "https://registry.nlark.com/@nodelib/fs.stat/download/@nodelib/fs.stat-2.0.5.tgz?cache=0&sync_timestamp=1622792655362&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.stat%2Fdownload%2F%40nodelib%2Ffs.stat-2.0.5.tgz",
160 | "integrity": "sha1-W9Jir5Tp0lvR5xsF3u1Eh2oiLos=",
161 | "dev": true
162 | },
163 | "@nodelib/fs.walk": {
164 | "version": "1.2.8",
165 | "resolved": "https://registry.nlark.com/@nodelib/fs.walk/download/@nodelib/fs.walk-1.2.8.tgz?cache=0&sync_timestamp=1625769815389&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40nodelib%2Ffs.walk%2Fdownload%2F%40nodelib%2Ffs.walk-1.2.8.tgz",
166 | "integrity": "sha1-6Vc36LtnRt3t9pxVaVNJTxlv5po=",
167 | "dev": true,
168 | "requires": {
169 | "@nodelib/fs.scandir": "2.1.5",
170 | "fastq": "^1.6.0"
171 | }
172 | },
173 | "@popperjs/core": {
174 | "version": "2.11.0",
175 | "resolved": "https://registry.npmmirror.com/@popperjs/core/download/@popperjs/core-2.11.0.tgz",
176 | "integrity": "sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ=="
177 | },
178 | "@rollup/plugin-alias": {
179 | "version": "3.1.8",
180 | "resolved": "https://registry.npmmirror.com/@rollup/plugin-alias/download/@rollup/plugin-alias-3.1.8.tgz",
181 | "integrity": "sha1-ZF/YRlngjT0bBZQI/N9pwd1DWms=",
182 | "requires": {
183 | "slash": "^3.0.0"
184 | }
185 | },
186 | "@simonwep/pickr": {
187 | "version": "1.8.2",
188 | "resolved": "https://registry.nlark.com/@simonwep/pickr/download/@simonwep/pickr-1.8.2.tgz?cache=0&sync_timestamp=1631637056668&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40simonwep%2Fpickr%2Fdownload%2F%40simonwep%2Fpickr-1.8.2.tgz",
189 | "integrity": "sha1-ltyGZ1lA18rWPWnCIIPdHLuXl8s=",
190 | "requires": {
191 | "core-js": "^3.15.1",
192 | "nanopop": "^2.1.0"
193 | }
194 | },
195 | "@types/lodash": {
196 | "version": "4.14.176",
197 | "resolved": "https://registry.npmmirror.com/@types/lodash/download/@types/lodash-4.14.176.tgz?cache=0&sync_timestamp=1634769451849&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Flodash%2Fdownload%2F%40types%2Flodash-4.14.176.tgz",
198 | "integrity": "sha1-ZBFQ/BzaNvv6Mp3mA7uxddfuIMA="
199 | },
200 | "@types/node": {
201 | "version": "16.11.7",
202 | "resolved": "https://registry.npmmirror.com/@types/node/download/@types/node-16.11.7.tgz?cache=0&sync_timestamp=1636407250305&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-16.11.7.tgz",
203 | "integrity": "sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==",
204 | "dev": true
205 | },
206 | "@vitejs/plugin-vue": {
207 | "version": "1.9.4",
208 | "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/download/@vitejs/plugin-vue-1.9.4.tgz",
209 | "integrity": "sha1-T0hIVDLLuYap+50lTcM84w3cy/o=",
210 | "dev": true
211 | },
212 | "@volar/code-gen": {
213 | "version": "0.27.24",
214 | "resolved": "https://registry.npmmirror.com/@volar/code-gen/download/@volar/code-gen-0.27.24.tgz",
215 | "integrity": "sha1-zNvoWJUcHuTgw5eSMtUkEtxGdWo=",
216 | "dev": true,
217 | "requires": {
218 | "@volar/shared": "^0.27.24",
219 | "@volar/source-map": "^0.27.24"
220 | }
221 | },
222 | "@volar/html2pug": {
223 | "version": "0.27.13",
224 | "resolved": "https://registry.npmmirror.com/@volar/html2pug/download/@volar/html2pug-0.27.13.tgz",
225 | "integrity": "sha1-SN+nPs8e8ZVaAqBG0MiIRZUPrIU=",
226 | "dev": true,
227 | "requires": {
228 | "domelementtype": "^2.2.0",
229 | "domhandler": "^4.2.0",
230 | "htmlparser2": "^6.1.0",
231 | "pug": "^3.0.2"
232 | }
233 | },
234 | "@volar/shared": {
235 | "version": "0.27.24",
236 | "resolved": "https://registry.npmmirror.com/@volar/shared/download/@volar/shared-0.27.24.tgz",
237 | "integrity": "sha1-ozRX7IrAsNNn7VTJ4hkTpfjC1sI=",
238 | "dev": true,
239 | "requires": {
240 | "upath": "^2.0.1",
241 | "vscode-jsonrpc": "^8.0.0-next.2",
242 | "vscode-uri": "^3.0.2"
243 | }
244 | },
245 | "@volar/source-map": {
246 | "version": "0.27.24",
247 | "resolved": "https://registry.npmmirror.com/@volar/source-map/download/@volar/source-map-0.27.24.tgz",
248 | "integrity": "sha1-YPLgcMFpvoLL9/+ilqMMKCPFIF8=",
249 | "dev": true,
250 | "requires": {
251 | "@volar/shared": "^0.27.24"
252 | }
253 | },
254 | "@volar/transforms": {
255 | "version": "0.27.24",
256 | "resolved": "https://registry.npmmirror.com/@volar/transforms/download/@volar/transforms-0.27.24.tgz",
257 | "integrity": "sha1-aOvFPcouNohOJHwIZuw9JO2BV4Q=",
258 | "dev": true,
259 | "requires": {
260 | "@volar/shared": "^0.27.24",
261 | "vscode-languageserver": "^8.0.0-next.2"
262 | }
263 | },
264 | "@vscode/emmet-helper": {
265 | "version": "2.8.2",
266 | "resolved": "https://registry.npmmirror.com/@vscode/emmet-helper/download/@vscode/emmet-helper-2.8.2.tgz?cache=0&sync_timestamp=1634318724263&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40vscode%2Femmet-helper%2Fdownload%2F%40vscode%2Femmet-helper-2.8.2.tgz",
267 | "integrity": "sha1-myzk/dYs8/2kXPivZ8ASz85V7ck=",
268 | "dev": true,
269 | "requires": {
270 | "emmet": "^2.3.0",
271 | "jsonc-parser": "^2.3.0",
272 | "vscode-languageserver-textdocument": "^1.0.1",
273 | "vscode-languageserver-types": "^3.15.1",
274 | "vscode-nls": "^5.0.0",
275 | "vscode-uri": "^2.1.2"
276 | },
277 | "dependencies": {
278 | "vscode-languageserver-types": {
279 | "version": "3.16.0",
280 | "resolved": "https://registry.npmmirror.com/vscode-languageserver-types/download/vscode-languageserver-types-3.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fvscode-languageserver-types%2Fdownload%2Fvscode-languageserver-types-3.16.0.tgz",
281 | "integrity": "sha1-7POT/BIexpdLLaPvsxVWRMUU4kc=",
282 | "dev": true
283 | },
284 | "vscode-uri": {
285 | "version": "2.1.2",
286 | "resolved": "https://registry.npm.taobao.org/vscode-uri/download/vscode-uri-2.1.2.tgz",
287 | "integrity": "sha1-yNQN6T61evMfPHFd1lDiyiwJbxw=",
288 | "dev": true
289 | }
290 | }
291 | },
292 | "@vue/babel-helper-vue-jsx-merge-props": {
293 | "version": "1.2.1",
294 | "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.2.1.tgz?cache=0&sync_timestamp=1602851122331&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-helper-vue-jsx-merge-props%2Fdownload%2F%40vue%2Fbabel-helper-vue-jsx-merge-props-1.2.1.tgz",
295 | "integrity": "sha1-MWJKelBfsU2h1YAjclpMXycOaoE="
296 | },
297 | "@vue/babel-plugin-transform-vue-jsx": {
298 | "version": "1.2.1",
299 | "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.2.1.tgz?cache=0&sync_timestamp=1602851121024&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fbabel-plugin-transform-vue-jsx%2Fdownload%2F%40vue%2Fbabel-plugin-transform-vue-jsx-1.2.1.tgz",
300 | "integrity": "sha1-ZGBGxlLC8CQnJ/NFGdkXsGQEHtc=",
301 | "requires": {
302 | "@babel/helper-module-imports": "^7.0.0",
303 | "@babel/plugin-syntax-jsx": "^7.2.0",
304 | "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1",
305 | "html-tags": "^2.0.0",
306 | "lodash.kebabcase": "^4.1.1",
307 | "svg-tags": "^1.0.0"
308 | }
309 | },
310 | "@vue/babel-preset-jsx": {
311 | "version": "1.2.4",
312 | "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.2.4.tgz",
313 | "integrity": "sha1-kv6nnbbxOwHoDToAmeKSS9y+Toc=",
314 | "requires": {
315 | "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1",
316 | "@vue/babel-plugin-transform-vue-jsx": "^1.2.1",
317 | "@vue/babel-sugar-composition-api-inject-h": "^1.2.1",
318 | "@vue/babel-sugar-composition-api-render-instance": "^1.2.4",
319 | "@vue/babel-sugar-functional-vue": "^1.2.2",
320 | "@vue/babel-sugar-inject-h": "^1.2.2",
321 | "@vue/babel-sugar-v-model": "^1.2.3",
322 | "@vue/babel-sugar-v-on": "^1.2.3"
323 | }
324 | },
325 | "@vue/babel-sugar-composition-api-inject-h": {
326 | "version": "1.2.1",
327 | "resolved": "https://registry.nlark.com/@vue/babel-sugar-composition-api-inject-h/download/@vue/babel-sugar-composition-api-inject-h-1.2.1.tgz",
328 | "integrity": "sha1-BdbgxDJxDjdYKyvppgSbaJtvA+s=",
329 | "requires": {
330 | "@babel/plugin-syntax-jsx": "^7.2.0"
331 | }
332 | },
333 | "@vue/babel-sugar-composition-api-render-instance": {
334 | "version": "1.2.4",
335 | "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-composition-api-render-instance/download/@vue/babel-sugar-composition-api-render-instance-1.2.4.tgz",
336 | "integrity": "sha1-5MvGmXw0T6wnF4WteikyXFHWjRk=",
337 | "requires": {
338 | "@babel/plugin-syntax-jsx": "^7.2.0"
339 | }
340 | },
341 | "@vue/babel-sugar-functional-vue": {
342 | "version": "1.2.2",
343 | "resolved": "https://registry.nlark.com/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.2.2.tgz",
344 | "integrity": "sha1-JnqayNeHyW7b8Dzj85LEnam9Jlg=",
345 | "requires": {
346 | "@babel/plugin-syntax-jsx": "^7.2.0"
347 | }
348 | },
349 | "@vue/babel-sugar-inject-h": {
350 | "version": "1.2.2",
351 | "resolved": "https://registry.nlark.com/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.2.2.tgz",
352 | "integrity": "sha1-1zjTyJM2fshJHcu2abAAkZKT46o=",
353 | "requires": {
354 | "@babel/plugin-syntax-jsx": "^7.2.0"
355 | }
356 | },
357 | "@vue/babel-sugar-v-model": {
358 | "version": "1.2.3",
359 | "resolved": "https://registry.nlark.com/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.2.3.tgz",
360 | "integrity": "sha1-+h8pulHr8KoabDX6ZtU5vEWaGPI=",
361 | "requires": {
362 | "@babel/plugin-syntax-jsx": "^7.2.0",
363 | "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1",
364 | "@vue/babel-plugin-transform-vue-jsx": "^1.2.1",
365 | "camelcase": "^5.0.0",
366 | "html-tags": "^2.0.0",
367 | "svg-tags": "^1.0.0"
368 | }
369 | },
370 | "@vue/babel-sugar-v-on": {
371 | "version": "1.2.3",
372 | "resolved": "https://registry.nlark.com/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.2.3.tgz",
373 | "integrity": "sha1-NCNnF4WGpp85LwS/ujICHQKROto=",
374 | "requires": {
375 | "@babel/plugin-syntax-jsx": "^7.2.0",
376 | "@vue/babel-plugin-transform-vue-jsx": "^1.2.1",
377 | "camelcase": "^5.0.0"
378 | }
379 | },
380 | "@vue/compiler-core": {
381 | "version": "3.2.21",
382 | "resolved": "https://registry.npmmirror.com/@vue/compiler-core/download/@vue/compiler-core-3.2.21.tgz",
383 | "integrity": "sha1-JlZsMrKtg4GZ1HHvXfYgqDhG8k4=",
384 | "requires": {
385 | "@babel/parser": "^7.15.0",
386 | "@vue/shared": "3.2.21",
387 | "estree-walker": "^2.0.2",
388 | "source-map": "^0.6.1"
389 | }
390 | },
391 | "@vue/compiler-dom": {
392 | "version": "3.2.21",
393 | "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/download/@vue/compiler-dom-3.2.21.tgz",
394 | "integrity": "sha1-1vbIU2TviIj5xOkSK/uhHnj7OYw=",
395 | "requires": {
396 | "@vue/compiler-core": "3.2.21",
397 | "@vue/shared": "3.2.21"
398 | }
399 | },
400 | "@vue/compiler-sfc": {
401 | "version": "3.2.21",
402 | "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/download/@vue/compiler-sfc-3.2.21.tgz",
403 | "integrity": "sha1-QmOe5J5yWvt9jx0ZQOddwXpWACw=",
404 | "requires": {
405 | "@babel/parser": "^7.15.0",
406 | "@vue/compiler-core": "3.2.21",
407 | "@vue/compiler-dom": "3.2.21",
408 | "@vue/compiler-ssr": "3.2.21",
409 | "@vue/ref-transform": "3.2.21",
410 | "@vue/shared": "3.2.21",
411 | "estree-walker": "^2.0.2",
412 | "magic-string": "^0.25.7",
413 | "postcss": "^8.1.10",
414 | "source-map": "^0.6.1"
415 | }
416 | },
417 | "@vue/compiler-ssr": {
418 | "version": "3.2.21",
419 | "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/download/@vue/compiler-ssr-3.2.21.tgz?cache=0&sync_timestamp=1635836341195&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40vue%2Fcompiler-ssr%2Fdownload%2F%40vue%2Fcompiler-ssr-3.2.21.tgz",
420 | "integrity": "sha1-N9Ek+J6K3vn9VrhXdd5LUxCgQ24=",
421 | "requires": {
422 | "@vue/compiler-dom": "3.2.21",
423 | "@vue/shared": "3.2.21"
424 | }
425 | },
426 | "@vue/devtools-api": {
427 | "version": "6.0.0-beta.20.1",
428 | "resolved": "https://registry.npmmirror.com/@vue/devtools-api/download/@vue/devtools-api-6.0.0-beta.20.1.tgz",
429 | "integrity": "sha512-R2rfiRY+kZugzWh9ZyITaovx+jpU4vgivAEAiz80kvh3yviiTU3CBuGuyWpSwGz9/C7TkSWVM/FtQRGlZ16n8Q=="
430 | },
431 | "@vue/reactivity": {
432 | "version": "3.2.21",
433 | "resolved": "https://registry.npmmirror.com/@vue/reactivity/download/@vue/reactivity-3.2.21.tgz?cache=0&sync_timestamp=1635836342408&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40vue%2Freactivity%2Fdownload%2F%40vue%2Freactivity-3.2.21.tgz",
434 | "integrity": "sha1-BzrRRBku14oH4VHpWjuqUV5AmaI=",
435 | "requires": {
436 | "@vue/shared": "3.2.21"
437 | }
438 | },
439 | "@vue/ref-transform": {
440 | "version": "3.2.21",
441 | "resolved": "https://registry.npmmirror.com/@vue/ref-transform/download/@vue/ref-transform-3.2.21.tgz?cache=0&sync_timestamp=1635836341560&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40vue%2Fref-transform%2Fdownload%2F%40vue%2Fref-transform-3.2.21.tgz",
442 | "integrity": "sha1-sMVUyfZAw/AF935nYGaqD6upCYQ=",
443 | "requires": {
444 | "@babel/parser": "^7.15.0",
445 | "@vue/compiler-core": "3.2.21",
446 | "@vue/shared": "3.2.21",
447 | "estree-walker": "^2.0.2",
448 | "magic-string": "^0.25.7"
449 | }
450 | },
451 | "@vue/runtime-core": {
452 | "version": "3.2.21",
453 | "resolved": "https://registry.npmmirror.com/@vue/runtime-core/download/@vue/runtime-core-3.2.21.tgz?cache=0&sync_timestamp=1635836340681&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40vue%2Fruntime-core%2Fdownload%2F%40vue%2Fruntime-core-3.2.21.tgz",
454 | "integrity": "sha1-4S2sjDiTt66/w34yBmcY2KpoasU=",
455 | "requires": {
456 | "@vue/reactivity": "3.2.21",
457 | "@vue/shared": "3.2.21"
458 | }
459 | },
460 | "@vue/runtime-dom": {
461 | "version": "3.2.21",
462 | "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/download/@vue/runtime-dom-3.2.21.tgz",
463 | "integrity": "sha1-M90VvIUoHncxd6MNxpMcKUvXeqE=",
464 | "requires": {
465 | "@vue/runtime-core": "3.2.21",
466 | "@vue/shared": "3.2.21",
467 | "csstype": "^2.6.8"
468 | }
469 | },
470 | "@vue/server-renderer": {
471 | "version": "3.2.21",
472 | "resolved": "https://registry.npmmirror.com/@vue/server-renderer/download/@vue/server-renderer-3.2.21.tgz?cache=0&sync_timestamp=1635836339682&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40vue%2Fserver-renderer%2Fdownload%2F%40vue%2Fserver-renderer-3.2.21.tgz",
473 | "integrity": "sha1-iH0KRN529yMTz/JoaiTAMVIx1jQ=",
474 | "requires": {
475 | "@vue/compiler-ssr": "3.2.21",
476 | "@vue/shared": "3.2.21"
477 | }
478 | },
479 | "@vue/shared": {
480 | "version": "3.2.21",
481 | "resolved": "https://registry.npmmirror.com/@vue/shared/download/@vue/shared-3.2.21.tgz?cache=0&sync_timestamp=1635836337223&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2F%40vue%2Fshared%2Fdownload%2F%40vue%2Fshared-3.2.21.tgz",
482 | "integrity": "sha1-TNgMDmLPZaetqyRJ6GtvDLM6Ews="
483 | },
484 | "@vueuse/core": {
485 | "version": "6.9.2",
486 | "resolved": "https://registry.npmmirror.com/@vueuse/core/download/@vueuse/core-6.9.2.tgz",
487 | "integrity": "sha512-FRwl4ccSFuHZBHLGgS9TMv/+Dd6XFaL4o9nph2qtgQIV+z29RBFokw08XjHfykiENRzB01MjYHJ7iRUnsIFQXg==",
488 | "requires": {
489 | "@vueuse/shared": "6.9.2",
490 | "vue-demi": "*"
491 | }
492 | },
493 | "@vueuse/shared": {
494 | "version": "6.9.2",
495 | "resolved": "https://registry.npmmirror.com/@vueuse/shared/download/@vueuse/shared-6.9.2.tgz",
496 | "integrity": "sha512-lAiMh6XROs0kSKVd0Yb/6GKoQMxC1fYrFDi6opvQWISPtcqRNluRrQxLUZ3WTI78ovtoKRLktjhkFAtydcfFDg==",
497 | "requires": {
498 | "vue-demi": "*"
499 | }
500 | },
501 | "acorn": {
502 | "version": "7.4.1",
503 | "resolved": "https://registry.nlark.com/acorn/download/acorn-7.4.1.tgz",
504 | "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
505 | "dev": true
506 | },
507 | "acorn-jsx": {
508 | "version": "5.3.2",
509 | "resolved": "https://registry.nlark.com/acorn-jsx/download/acorn-jsx-5.3.2.tgz",
510 | "integrity": "sha1-ftW7VZCLOy8bxVxq8WU7rafweTc=",
511 | "dev": true
512 | },
513 | "ajv": {
514 | "version": "6.12.6",
515 | "resolved": "https://registry.npmmirror.com/ajv/download/ajv-6.12.6.tgz",
516 | "integrity": "sha1-uvWmLoArB9l3A0WG+MO69a3ybfQ=",
517 | "dev": true,
518 | "requires": {
519 | "fast-deep-equal": "^3.1.1",
520 | "fast-json-stable-stringify": "^2.0.0",
521 | "json-schema-traverse": "^0.4.1",
522 | "uri-js": "^4.2.2"
523 | }
524 | },
525 | "ansi-colors": {
526 | "version": "4.1.1",
527 | "resolved": "https://registry.nlark.com/ansi-colors/download/ansi-colors-4.1.1.tgz",
528 | "integrity": "sha1-y7muJWv3UK8eqzRPIpqif+lLo0g=",
529 | "dev": true
530 | },
531 | "ansi-regex": {
532 | "version": "5.0.1",
533 | "resolved": "https://registry.nlark.com/ansi-regex/download/ansi-regex-5.0.1.tgz?cache=0&sync_timestamp=1631634988487&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-regex%2Fdownload%2Fansi-regex-5.0.1.tgz",
534 | "integrity": "sha1-CCyyyJyf6GWaMRpTvWpNxTAdswQ=",
535 | "dev": true
536 | },
537 | "ansi-styles": {
538 | "version": "4.3.0",
539 | "resolved": "https://registry.nlark.com/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1618995547052&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
540 | "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
541 | "dev": true,
542 | "requires": {
543 | "color-convert": "^2.0.1"
544 | }
545 | },
546 | "ant-design-vue": {
547 | "version": "2.2.8",
548 | "resolved": "https://registry.npmmirror.com/ant-design-vue/download/ant-design-vue-2.2.8.tgz",
549 | "integrity": "sha1-+ofPaELY7poNivOT/0CZ7MQHLys=",
550 | "requires": {
551 | "@ant-design/icons-vue": "^6.0.0",
552 | "@babel/runtime": "^7.10.5",
553 | "@simonwep/pickr": "~1.8.0",
554 | "array-tree-filter": "^2.1.0",
555 | "async-validator": "^3.3.0",
556 | "dom-align": "^1.12.1",
557 | "dom-scroll-into-view": "^2.0.0",
558 | "lodash": "^4.17.21",
559 | "lodash-es": "^4.17.15",
560 | "moment": "^2.27.0",
561 | "omit.js": "^2.0.0",
562 | "resize-observer-polyfill": "^1.5.1",
563 | "scroll-into-view-if-needed": "^2.2.25",
564 | "shallow-equal": "^1.0.0",
565 | "vue-types": "^3.0.0",
566 | "warning": "^4.0.0"
567 | }
568 | },
569 | "argparse": {
570 | "version": "2.0.1",
571 | "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-2.0.1.tgz",
572 | "integrity": "sha1-JG9Q88p4oyQPbJl+ipvR6sSeSzg=",
573 | "dev": true
574 | },
575 | "array-tree-filter": {
576 | "version": "2.1.0",
577 | "resolved": "https://registry.nlark.com/array-tree-filter/download/array-tree-filter-2.1.0.tgz",
578 | "integrity": "sha1-hzrAD+yDdJ8lWsjdCDgUtPYykZA="
579 | },
580 | "asap": {
581 | "version": "2.0.6",
582 | "resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz",
583 | "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
584 | "dev": true
585 | },
586 | "assert-never": {
587 | "version": "1.2.1",
588 | "resolved": "https://registry.npm.taobao.org/assert-never/download/assert-never-1.2.1.tgz",
589 | "integrity": "sha1-EfDjY78UYgX7CBk7XHuQ9NHPRP4=",
590 | "dev": true
591 | },
592 | "async-validator": {
593 | "version": "3.5.2",
594 | "resolved": "https://registry.npmmirror.com/async-validator/download/async-validator-3.5.2.tgz?cache=0&sync_timestamp=1634529574100&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fasync-validator%2Fdownload%2Fasync-validator-3.5.2.tgz",
595 | "integrity": "sha1-aOhmqWgk6LJpT/eoMcGiXETV5QA="
596 | },
597 | "babel-walk": {
598 | "version": "3.0.0-canary-5",
599 | "resolved": "https://registry.npm.taobao.org/babel-walk/download/babel-walk-3.0.0-canary-5.tgz",
600 | "integrity": "sha1-9m7Ncpg1eu5ElV8jWm71QhkQSxE=",
601 | "dev": true,
602 | "requires": {
603 | "@babel/types": "^7.9.6"
604 | }
605 | },
606 | "balanced-match": {
607 | "version": "1.0.2",
608 | "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbalanced-match%2Fdownload%2Fbalanced-match-1.0.2.tgz",
609 | "integrity": "sha1-6D46fj8wCzTLnYf2FfoMvzV2kO4=",
610 | "dev": true
611 | },
612 | "brace-expansion": {
613 | "version": "1.1.11",
614 | "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz?cache=0&sync_timestamp=1614010713935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrace-expansion%2Fdownload%2Fbrace-expansion-1.1.11.tgz",
615 | "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=",
616 | "dev": true,
617 | "requires": {
618 | "balanced-match": "^1.0.0",
619 | "concat-map": "0.0.1"
620 | }
621 | },
622 | "braces": {
623 | "version": "3.0.2",
624 | "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz",
625 | "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
626 | "dev": true,
627 | "requires": {
628 | "fill-range": "^7.0.1"
629 | }
630 | },
631 | "call-bind": {
632 | "version": "1.0.2",
633 | "resolved": "https://registry.nlark.com/call-bind/download/call-bind-1.0.2.tgz",
634 | "integrity": "sha1-sdTonmiBGcPJqQOtMKuy9qkZvjw=",
635 | "dev": true,
636 | "requires": {
637 | "function-bind": "^1.1.1",
638 | "get-intrinsic": "^1.0.2"
639 | }
640 | },
641 | "callsites": {
642 | "version": "3.1.0",
643 | "resolved": "https://registry.nlark.com/callsites/download/callsites-3.1.0.tgz?cache=0&sync_timestamp=1628464722297&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcallsites%2Fdownload%2Fcallsites-3.1.0.tgz",
644 | "integrity": "sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M=",
645 | "dev": true
646 | },
647 | "camelcase": {
648 | "version": "5.3.1",
649 | "resolved": "https://registry.nlark.com/camelcase/download/camelcase-5.3.1.tgz",
650 | "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA="
651 | },
652 | "chalk": {
653 | "version": "4.1.2",
654 | "resolved": "https://registry.npmmirror.com/chalk/download/chalk-4.1.2.tgz",
655 | "integrity": "sha1-qsTit3NKdAhnrrFr8CqtVWoeegE=",
656 | "dev": true,
657 | "requires": {
658 | "ansi-styles": "^4.1.0",
659 | "supports-color": "^7.1.0"
660 | }
661 | },
662 | "character-parser": {
663 | "version": "2.2.0",
664 | "resolved": "https://registry.npm.taobao.org/character-parser/download/character-parser-2.2.0.tgz",
665 | "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
666 | "dev": true,
667 | "requires": {
668 | "is-regex": "^1.0.3"
669 | }
670 | },
671 | "color-convert": {
672 | "version": "2.0.1",
673 | "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
674 | "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
675 | "dev": true,
676 | "requires": {
677 | "color-name": "~1.1.4"
678 | }
679 | },
680 | "color-name": {
681 | "version": "1.1.4",
682 | "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
683 | "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
684 | "dev": true
685 | },
686 | "compute-scroll-into-view": {
687 | "version": "1.0.17",
688 | "resolved": "https://registry.npm.taobao.org/compute-scroll-into-view/download/compute-scroll-into-view-1.0.17.tgz?cache=0&sync_timestamp=1614042283471&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompute-scroll-into-view%2Fdownload%2Fcompute-scroll-into-view-1.0.17.tgz",
689 | "integrity": "sha1-aojxis2dQunPS6pr7H4FImB6t6s="
690 | },
691 | "concat-map": {
692 | "version": "0.0.1",
693 | "resolved": "https://registry.nlark.com/concat-map/download/concat-map-0.0.1.tgz",
694 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
695 | "dev": true
696 | },
697 | "constantinople": {
698 | "version": "4.0.1",
699 | "resolved": "https://registry.npm.taobao.org/constantinople/download/constantinople-4.0.1.tgz",
700 | "integrity": "sha1-De8RP6Dk3I3oMzGlz3nIsyUhMVE=",
701 | "dev": true,
702 | "requires": {
703 | "@babel/parser": "^7.6.0",
704 | "@babel/types": "^7.6.1"
705 | }
706 | },
707 | "copy-anything": {
708 | "version": "2.0.3",
709 | "resolved": "https://registry.nlark.com/copy-anything/download/copy-anything-2.0.3.tgz",
710 | "integrity": "sha1-hCQHugJGaw34RIGbvjuuu+XUXYc=",
711 | "dev": true,
712 | "requires": {
713 | "is-what": "^3.12.0"
714 | }
715 | },
716 | "core-js": {
717 | "version": "3.19.1",
718 | "resolved": "https://registry.npmmirror.com/core-js/download/core-js-3.19.1.tgz",
719 | "integrity": "sha1-9vFzyuI+c6fYj6I7bp2jKSdsZkE="
720 | },
721 | "cross-spawn": {
722 | "version": "7.0.3",
723 | "resolved": "https://registry.nlark.com/cross-spawn/download/cross-spawn-7.0.3.tgz",
724 | "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=",
725 | "dev": true,
726 | "requires": {
727 | "path-key": "^3.1.0",
728 | "shebang-command": "^2.0.0",
729 | "which": "^2.0.1"
730 | }
731 | },
732 | "csstype": {
733 | "version": "2.6.18",
734 | "resolved": "https://registry.nlark.com/csstype/download/csstype-2.6.18.tgz",
735 | "integrity": "sha1-mAqLUwhfNK8xNBCvBk8r0kF4Qhg="
736 | },
737 | "debug": {
738 | "version": "4.3.2",
739 | "resolved": "https://registry.npmmirror.com/debug/download/debug-4.3.2.tgz?cache=0&sync_timestamp=1636300872595&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fdebug%2Fdownload%2Fdebug-4.3.2.tgz",
740 | "integrity": "sha1-8KScGKyHeeMdSgxgKd+3aHPHQos=",
741 | "dev": true,
742 | "requires": {
743 | "ms": "2.1.2"
744 | }
745 | },
746 | "deep-is": {
747 | "version": "0.1.4",
748 | "resolved": "https://registry.nlark.com/deep-is/download/deep-is-0.1.4.tgz",
749 | "integrity": "sha1-pvLc5hL63S7x9Rm3NVHxfoUZmDE=",
750 | "dev": true
751 | },
752 | "doctrine": {
753 | "version": "3.0.0",
754 | "resolved": "https://registry.nlark.com/doctrine/download/doctrine-3.0.0.tgz",
755 | "integrity": "sha1-rd6+rXKmV023g2OdyHoSF3OXOWE=",
756 | "dev": true,
757 | "requires": {
758 | "esutils": "^2.0.2"
759 | }
760 | },
761 | "doctypes": {
762 | "version": "1.1.0",
763 | "resolved": "https://registry.nlark.com/doctypes/download/doctypes-1.1.0.tgz",
764 | "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=",
765 | "dev": true
766 | },
767 | "dom-align": {
768 | "version": "1.12.2",
769 | "resolved": "https://registry.nlark.com/dom-align/download/dom-align-1.12.2.tgz",
770 | "integrity": "sha1-D4Fk69DJwhsMeQMQSTzYVYkqzUs="
771 | },
772 | "dom-scroll-into-view": {
773 | "version": "2.0.1",
774 | "resolved": "https://registry.nlark.com/dom-scroll-into-view/download/dom-scroll-into-view-2.0.1.tgz",
775 | "integrity": "sha1-DezIUigB/Y0/HGujVadNOCxfmJs="
776 | },
777 | "dom-serializer": {
778 | "version": "1.3.2",
779 | "resolved": "https://registry.nlark.com/dom-serializer/download/dom-serializer-1.3.2.tgz?cache=0&sync_timestamp=1621256830355&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdom-serializer%2Fdownload%2Fdom-serializer-1.3.2.tgz",
780 | "integrity": "sha1-YgZDfTLO767HFhgDIwx6ILwbTZE=",
781 | "dev": true,
782 | "requires": {
783 | "domelementtype": "^2.0.1",
784 | "domhandler": "^4.2.0",
785 | "entities": "^2.0.0"
786 | }
787 | },
788 | "dom7": {
789 | "version": "4.0.1",
790 | "resolved": "https://registry.npmmirror.com/dom7/download/dom7-4.0.1.tgz",
791 | "integrity": "sha1-ghIJ3xv9+X3YK1FW5Q98tms/Fmw=",
792 | "requires": {
793 | "ssr-window": "^4.0.0"
794 | }
795 | },
796 | "domelementtype": {
797 | "version": "2.2.0",
798 | "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.2.0.tgz?cache=0&sync_timestamp=1617298545989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomelementtype%2Fdownload%2Fdomelementtype-2.2.0.tgz",
799 | "integrity": "sha1-mgtsJ4LtahxzI9QiZxg9+b2LHVc=",
800 | "dev": true
801 | },
802 | "domhandler": {
803 | "version": "4.2.2",
804 | "resolved": "https://registry.nlark.com/domhandler/download/domhandler-4.2.2.tgz?cache=0&sync_timestamp=1630246778110&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomhandler%2Fdownload%2Fdomhandler-4.2.2.tgz",
805 | "integrity": "sha1-6CXXIdGahrjCAaNSZOImxnjudV8=",
806 | "dev": true,
807 | "requires": {
808 | "domelementtype": "^2.2.0"
809 | }
810 | },
811 | "domutils": {
812 | "version": "2.8.0",
813 | "resolved": "https://registry.nlark.com/domutils/download/domutils-2.8.0.tgz?cache=0&sync_timestamp=1630106606599&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fdomutils%2Fdownload%2Fdomutils-2.8.0.tgz",
814 | "integrity": "sha1-RDfe9dtuLR9dbuhZvZXKfQIEgTU=",
815 | "dev": true,
816 | "requires": {
817 | "dom-serializer": "^1.0.1",
818 | "domelementtype": "^2.2.0",
819 | "domhandler": "^4.2.0"
820 | }
821 | },
822 | "emmet": {
823 | "version": "2.3.4",
824 | "resolved": "https://registry.npm.taobao.org/emmet/download/emmet-2.3.4.tgz",
825 | "integrity": "sha1-W6DXpVaaaMdpffqJDHcuTzF50SM=",
826 | "dev": true,
827 | "requires": {
828 | "@emmetio/abbreviation": "^2.2.2",
829 | "@emmetio/css-abbreviation": "^2.1.4"
830 | }
831 | },
832 | "enquirer": {
833 | "version": "2.3.6",
834 | "resolved": "https://registry.nlark.com/enquirer/download/enquirer-2.3.6.tgz",
835 | "integrity": "sha1-Kn/l3WNKHkElqXXsmU/1RW3Dc00=",
836 | "dev": true,
837 | "requires": {
838 | "ansi-colors": "^4.1.1"
839 | }
840 | },
841 | "entities": {
842 | "version": "2.2.0",
843 | "resolved": "https://registry.nlark.com/entities/download/entities-2.2.0.tgz?cache=0&sync_timestamp=1628508189267&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fentities%2Fdownload%2Fentities-2.2.0.tgz",
844 | "integrity": "sha1-CY3JDruD2N/6CJ1VJWs1HTTE2lU=",
845 | "dev": true
846 | },
847 | "errno": {
848 | "version": "0.1.8",
849 | "resolved": "https://registry.nlark.com/errno/download/errno-0.1.8.tgz",
850 | "integrity": "sha1-i7Ppx9Rjvkl2/4iPdrSAnrwugR8=",
851 | "dev": true,
852 | "optional": true,
853 | "requires": {
854 | "prr": "~1.0.1"
855 | }
856 | },
857 | "esbuild": {
858 | "version": "0.13.13",
859 | "resolved": "https://registry.npmmirror.com/esbuild/download/esbuild-0.13.13.tgz?cache=0&sync_timestamp=1636440130458&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild%2Fdownload%2Fesbuild-0.13.13.tgz",
860 | "integrity": "sha512-Z17A/R6D0b4s3MousytQ/5i7mTCbaF+Ua/yPfoe71vdTv4KBvVAvQ/6ytMngM2DwGJosl8WxaD75NOQl2QF26Q==",
861 | "dev": true,
862 | "requires": {
863 | "esbuild-android-arm64": "0.13.13",
864 | "esbuild-darwin-64": "0.13.13",
865 | "esbuild-darwin-arm64": "0.13.13",
866 | "esbuild-freebsd-64": "0.13.13",
867 | "esbuild-freebsd-arm64": "0.13.13",
868 | "esbuild-linux-32": "0.13.13",
869 | "esbuild-linux-64": "0.13.13",
870 | "esbuild-linux-arm": "0.13.13",
871 | "esbuild-linux-arm64": "0.13.13",
872 | "esbuild-linux-mips64le": "0.13.13",
873 | "esbuild-linux-ppc64le": "0.13.13",
874 | "esbuild-netbsd-64": "0.13.13",
875 | "esbuild-openbsd-64": "0.13.13",
876 | "esbuild-sunos-64": "0.13.13",
877 | "esbuild-windows-32": "0.13.13",
878 | "esbuild-windows-64": "0.13.13",
879 | "esbuild-windows-arm64": "0.13.13"
880 | }
881 | },
882 | "esbuild-android-arm64": {
883 | "version": "0.13.13",
884 | "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/download/esbuild-android-arm64-0.13.13.tgz?cache=0&sync_timestamp=1636440066523&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-android-arm64%2Fdownload%2Fesbuild-android-arm64-0.13.13.tgz",
885 | "integrity": "sha512-T02aneWWguJrF082jZworjU6vm8f4UQ+IH2K3HREtlqoY9voiJUwHLRL6khRlsNLzVglqgqb7a3HfGx7hAADCQ==",
886 | "dev": true,
887 | "optional": true
888 | },
889 | "esbuild-darwin-64": {
890 | "version": "0.13.13",
891 | "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/download/esbuild-darwin-64-0.13.13.tgz?cache=0&sync_timestamp=1636440068510&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-darwin-64%2Fdownload%2Fesbuild-darwin-64-0.13.13.tgz",
892 | "integrity": "sha512-wkaiGAsN/09X9kDlkxFfbbIgR78SNjMOfUhoel3CqKBDsi9uZhw7HBNHNxTzYUK8X8LAKFpbODgcRB3b/I8gHA==",
893 | "dev": true,
894 | "optional": true
895 | },
896 | "esbuild-darwin-arm64": {
897 | "version": "0.13.13",
898 | "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/download/esbuild-darwin-arm64-0.13.13.tgz?cache=0&sync_timestamp=1636440064856&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-darwin-arm64%2Fdownload%2Fesbuild-darwin-arm64-0.13.13.tgz",
899 | "integrity": "sha512-b02/nNKGSV85Gw9pUCI5B48AYjk0vFggDeom0S6QMP/cEDtjSh1WVfoIFNAaLA0MHWfue8KBwoGVsN7rBshs4g==",
900 | "dev": true,
901 | "optional": true
902 | },
903 | "esbuild-freebsd-64": {
904 | "version": "0.13.13",
905 | "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/download/esbuild-freebsd-64-0.13.13.tgz",
906 | "integrity": "sha512-ALgXYNYDzk9YPVk80A+G4vz2D22Gv4j4y25exDBGgqTcwrVQP8rf/rjwUjHoh9apP76oLbUZTmUmvCMuTI1V9A==",
907 | "dev": true,
908 | "optional": true
909 | },
910 | "esbuild-freebsd-arm64": {
911 | "version": "0.13.13",
912 | "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/download/esbuild-freebsd-arm64-0.13.13.tgz?cache=0&sync_timestamp=1636439938914&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-freebsd-arm64%2Fdownload%2Fesbuild-freebsd-arm64-0.13.13.tgz",
913 | "integrity": "sha512-uFvkCpsZ1yqWQuonw5T1WZ4j59xP/PCvtu6I4pbLejhNo4nwjW6YalqnBvBSORq5/Ifo9S/wsIlVHzkzEwdtlw==",
914 | "dev": true,
915 | "optional": true
916 | },
917 | "esbuild-linux-32": {
918 | "version": "0.13.13",
919 | "resolved": "https://registry.npmmirror.com/esbuild-linux-32/download/esbuild-linux-32-0.13.13.tgz?cache=0&sync_timestamp=1636440081715&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-linux-32%2Fdownload%2Fesbuild-linux-32-0.13.13.tgz",
920 | "integrity": "sha512-yxR9BBwEPs9acVEwTrEE2JJNHYVuPQC9YGjRfbNqtyfK/vVBQYuw8JaeRFAvFs3pVJdQD0C2BNP4q9d62SCP4w==",
921 | "dev": true,
922 | "optional": true
923 | },
924 | "esbuild-linux-64": {
925 | "version": "0.13.13",
926 | "resolved": "https://registry.npmmirror.com/esbuild-linux-64/download/esbuild-linux-64-0.13.13.tgz?cache=0&sync_timestamp=1636440041227&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-linux-64%2Fdownload%2Fesbuild-linux-64-0.13.13.tgz",
927 | "integrity": "sha512-kzhjlrlJ+6ESRB/n12WTGll94+y+HFeyoWsOrLo/Si0s0f+Vip4b8vlnG0GSiS6JTsWYAtGHReGczFOaETlKIw==",
928 | "dev": true,
929 | "optional": true
930 | },
931 | "esbuild-linux-arm": {
932 | "version": "0.13.13",
933 | "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/download/esbuild-linux-arm-0.13.13.tgz?cache=0&sync_timestamp=1636440069621&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-linux-arm%2Fdownload%2Fesbuild-linux-arm-0.13.13.tgz",
934 | "integrity": "sha512-hXub4pcEds+U1TfvLp1maJ+GHRw7oizvzbGRdUvVDwtITtjq8qpHV5Q5hWNNn6Q+b3b2UxF03JcgnpzCw96nUQ==",
935 | "dev": true,
936 | "optional": true
937 | },
938 | "esbuild-linux-arm64": {
939 | "version": "0.13.13",
940 | "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/download/esbuild-linux-arm64-0.13.13.tgz?cache=0&sync_timestamp=1636440070074&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-linux-arm64%2Fdownload%2Fesbuild-linux-arm64-0.13.13.tgz",
941 | "integrity": "sha512-KMrEfnVbmmJxT3vfTnPv/AiXpBFbbyExH13BsUGy1HZRPFMi5Gev5gk8kJIZCQSRfNR17aqq8sO5Crm2KpZkng==",
942 | "dev": true,
943 | "optional": true
944 | },
945 | "esbuild-linux-mips64le": {
946 | "version": "0.13.13",
947 | "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/download/esbuild-linux-mips64le-0.13.13.tgz?cache=0&sync_timestamp=1636440070426&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-linux-mips64le%2Fdownload%2Fesbuild-linux-mips64le-0.13.13.tgz",
948 | "integrity": "sha512-cJT9O1LYljqnnqlHaS0hdG73t7hHzF3zcN0BPsjvBq+5Ad47VJun+/IG4inPhk8ta0aEDK6LdP+F9299xa483w==",
949 | "dev": true,
950 | "optional": true
951 | },
952 | "esbuild-linux-ppc64le": {
953 | "version": "0.13.13",
954 | "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/download/esbuild-linux-ppc64le-0.13.13.tgz?cache=0&sync_timestamp=1636440070027&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-linux-ppc64le%2Fdownload%2Fesbuild-linux-ppc64le-0.13.13.tgz",
955 | "integrity": "sha512-+rghW8st6/7O6QJqAjVK3eXzKkZqYAw6LgHv7yTMiJ6ASnNvghSeOcIvXFep3W2oaJc35SgSPf21Ugh0o777qQ==",
956 | "dev": true,
957 | "optional": true
958 | },
959 | "esbuild-netbsd-64": {
960 | "version": "0.13.13",
961 | "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/download/esbuild-netbsd-64-0.13.13.tgz?cache=0&sync_timestamp=1636439938172&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-netbsd-64%2Fdownload%2Fesbuild-netbsd-64-0.13.13.tgz",
962 | "integrity": "sha512-A/B7rwmzPdzF8c3mht5TukbnNwY5qMJqes09ou0RSzA5/jm7Jwl/8z853ofujTFOLhkNHUf002EAgokzSgEMpQ==",
963 | "dev": true,
964 | "optional": true
965 | },
966 | "esbuild-openbsd-64": {
967 | "version": "0.13.13",
968 | "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/download/esbuild-openbsd-64-0.13.13.tgz?cache=0&sync_timestamp=1636439937478&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-openbsd-64%2Fdownload%2Fesbuild-openbsd-64-0.13.13.tgz",
969 | "integrity": "sha512-szwtuRA4rXKT3BbwoGpsff6G7nGxdKgUbW9LQo6nm0TVCCjDNDC/LXxT994duIW8Tyq04xZzzZSW7x7ttDiw1w==",
970 | "dev": true,
971 | "optional": true
972 | },
973 | "esbuild-sunos-64": {
974 | "version": "0.13.13",
975 | "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/download/esbuild-sunos-64-0.13.13.tgz?cache=0&sync_timestamp=1636439945353&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-sunos-64%2Fdownload%2Fesbuild-sunos-64-0.13.13.tgz",
976 | "integrity": "sha512-ihyds9O48tVOYF48iaHYUK/boU5zRaLOXFS+OOL3ceD39AyHo46HVmsJLc7A2ez0AxNZCxuhu+P9OxfPfycTYQ==",
977 | "dev": true,
978 | "optional": true
979 | },
980 | "esbuild-windows-32": {
981 | "version": "0.13.13",
982 | "resolved": "https://registry.npmmirror.com/esbuild-windows-32/download/esbuild-windows-32-0.13.13.tgz?cache=0&sync_timestamp=1636439939703&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-windows-32%2Fdownload%2Fesbuild-windows-32-0.13.13.tgz",
983 | "integrity": "sha512-h2RTYwpG4ldGVJlbmORObmilzL8EECy8BFiF8trWE1ZPHLpECE9//J3Bi+W3eDUuv/TqUbiNpGrq4t/odbayUw==",
984 | "dev": true,
985 | "optional": true
986 | },
987 | "esbuild-windows-64": {
988 | "version": "0.13.13",
989 | "resolved": "https://registry.npmmirror.com/esbuild-windows-64/download/esbuild-windows-64-0.13.13.tgz",
990 | "integrity": "sha512-oMrgjP4CjONvDHe7IZXHrMk3wX5Lof/IwFEIbwbhgbXGBaN2dke9PkViTiXC3zGJSGpMvATXVplEhlInJ0drHA==",
991 | "dev": true,
992 | "optional": true
993 | },
994 | "esbuild-windows-arm64": {
995 | "version": "0.13.13",
996 | "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/download/esbuild-windows-arm64-0.13.13.tgz?cache=0&sync_timestamp=1636439936785&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fesbuild-windows-arm64%2Fdownload%2Fesbuild-windows-arm64-0.13.13.tgz",
997 | "integrity": "sha512-6fsDfTuTvltYB5k+QPah/x7LrI2+OLAJLE3bWLDiZI6E8wXMQU+wLqtEO/U/RvJgVY1loPs5eMpUBpVajczh1A==",
998 | "dev": true,
999 | "optional": true
1000 | },
1001 | "escape-string-regexp": {
1002 | "version": "4.0.0",
1003 | "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-4.0.0.tgz",
1004 | "integrity": "sha1-FLqDpdNz49MR5a/KKc9b+tllvzQ=",
1005 | "dev": true
1006 | },
1007 | "eslint": {
1008 | "version": "8.3.0",
1009 | "resolved": "https://registry.npmmirror.com/eslint/download/eslint-8.3.0.tgz?cache=0&sync_timestamp=1637475730061&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint%2Fdownload%2Feslint-8.3.0.tgz",
1010 | "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==",
1011 | "dev": true,
1012 | "requires": {
1013 | "@eslint/eslintrc": "^1.0.4",
1014 | "@humanwhocodes/config-array": "^0.6.0",
1015 | "ajv": "^6.10.0",
1016 | "chalk": "^4.0.0",
1017 | "cross-spawn": "^7.0.2",
1018 | "debug": "^4.3.2",
1019 | "doctrine": "^3.0.0",
1020 | "enquirer": "^2.3.5",
1021 | "escape-string-regexp": "^4.0.0",
1022 | "eslint-scope": "^7.1.0",
1023 | "eslint-utils": "^3.0.0",
1024 | "eslint-visitor-keys": "^3.1.0",
1025 | "espree": "^9.1.0",
1026 | "esquery": "^1.4.0",
1027 | "esutils": "^2.0.2",
1028 | "fast-deep-equal": "^3.1.3",
1029 | "file-entry-cache": "^6.0.1",
1030 | "functional-red-black-tree": "^1.0.1",
1031 | "glob-parent": "^6.0.1",
1032 | "globals": "^13.6.0",
1033 | "ignore": "^4.0.6",
1034 | "import-fresh": "^3.0.0",
1035 | "imurmurhash": "^0.1.4",
1036 | "is-glob": "^4.0.0",
1037 | "js-yaml": "^4.1.0",
1038 | "json-stable-stringify-without-jsonify": "^1.0.1",
1039 | "levn": "^0.4.1",
1040 | "lodash.merge": "^4.6.2",
1041 | "minimatch": "^3.0.4",
1042 | "natural-compare": "^1.4.0",
1043 | "optionator": "^0.9.1",
1044 | "progress": "^2.0.0",
1045 | "regexpp": "^3.2.0",
1046 | "semver": "^7.2.1",
1047 | "strip-ansi": "^6.0.1",
1048 | "strip-json-comments": "^3.1.0",
1049 | "text-table": "^0.2.0",
1050 | "v8-compile-cache": "^2.0.3"
1051 | },
1052 | "dependencies": {
1053 | "glob-parent": {
1054 | "version": "6.0.2",
1055 | "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-6.0.2.tgz?cache=0&sync_timestamp=1632953697891&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-6.0.2.tgz",
1056 | "integrity": "sha1-bSN9mQg5UMeSkPJMdkKj3poo+eM=",
1057 | "dev": true,
1058 | "requires": {
1059 | "is-glob": "^4.0.3"
1060 | }
1061 | }
1062 | }
1063 | },
1064 | "eslint-plugin-vue": {
1065 | "version": "8.1.1",
1066 | "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/download/eslint-plugin-vue-8.1.1.tgz",
1067 | "integrity": "sha512-rx64IrlhdfPya6u2V5ukOGiLCTgaCBdMSpczLVqyo8A0l+Vbo+lzvIfEUfAQ2auj+MF6y0TwxLorzdCIzHunnw==",
1068 | "dev": true,
1069 | "requires": {
1070 | "eslint-utils": "^3.0.0",
1071 | "natural-compare": "^1.4.0",
1072 | "semver": "^7.3.5",
1073 | "vue-eslint-parser": "^8.0.1"
1074 | }
1075 | },
1076 | "eslint-scope": {
1077 | "version": "7.1.0",
1078 | "resolved": "https://registry.npmmirror.com/eslint-scope/download/eslint-scope-7.1.0.tgz?cache=0&sync_timestamp=1637466831846&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-scope%2Fdownload%2Feslint-scope-7.1.0.tgz",
1079 | "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==",
1080 | "dev": true,
1081 | "requires": {
1082 | "esrecurse": "^4.3.0",
1083 | "estraverse": "^5.2.0"
1084 | }
1085 | },
1086 | "eslint-utils": {
1087 | "version": "3.0.0",
1088 | "resolved": "https://registry.nlark.com/eslint-utils/download/eslint-utils-3.0.0.tgz",
1089 | "integrity": "sha1-iuuvrOc0W7M1WdsKHxOh0tSMNnI=",
1090 | "dev": true,
1091 | "requires": {
1092 | "eslint-visitor-keys": "^2.0.0"
1093 | },
1094 | "dependencies": {
1095 | "eslint-visitor-keys": {
1096 | "version": "2.1.0",
1097 | "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-2.1.0.tgz",
1098 | "integrity": "sha1-9lMoJZMFknOSyTjtROsKXJsr0wM=",
1099 | "dev": true
1100 | }
1101 | }
1102 | },
1103 | "eslint-visitor-keys": {
1104 | "version": "3.1.0",
1105 | "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/download/eslint-visitor-keys-3.1.0.tgz",
1106 | "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==",
1107 | "dev": true
1108 | },
1109 | "espree": {
1110 | "version": "9.1.0",
1111 | "resolved": "https://registry.npmmirror.com/espree/download/espree-9.1.0.tgz?cache=0&sync_timestamp=1637466526998&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fespree%2Fdownload%2Fespree-9.1.0.tgz",
1112 | "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==",
1113 | "dev": true,
1114 | "requires": {
1115 | "acorn": "^8.6.0",
1116 | "acorn-jsx": "^5.3.1",
1117 | "eslint-visitor-keys": "^3.1.0"
1118 | },
1119 | "dependencies": {
1120 | "acorn": {
1121 | "version": "8.6.0",
1122 | "resolved": "https://registry.npmmirror.com/acorn/download/acorn-8.6.0.tgz?cache=0&sync_timestamp=1637225522161&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Facorn%2Fdownload%2Facorn-8.6.0.tgz",
1123 | "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==",
1124 | "dev": true
1125 | }
1126 | }
1127 | },
1128 | "esquery": {
1129 | "version": "1.4.0",
1130 | "resolved": "https://registry.nlark.com/esquery/download/esquery-1.4.0.tgz",
1131 | "integrity": "sha1-IUj/w4uC6McFff7UhCWz5h8PJKU=",
1132 | "dev": true,
1133 | "requires": {
1134 | "estraverse": "^5.1.0"
1135 | }
1136 | },
1137 | "esrecurse": {
1138 | "version": "4.3.0",
1139 | "resolved": "https://registry.nlark.com/esrecurse/download/esrecurse-4.3.0.tgz",
1140 | "integrity": "sha1-eteWTWeauyi+5yzsY3WLHF0smSE=",
1141 | "dev": true,
1142 | "requires": {
1143 | "estraverse": "^5.2.0"
1144 | }
1145 | },
1146 | "estraverse": {
1147 | "version": "5.3.0",
1148 | "resolved": "https://registry.npmmirror.com/estraverse/download/estraverse-5.3.0.tgz?cache=0&sync_timestamp=1635237706876&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Festraverse%2Fdownload%2Festraverse-5.3.0.tgz",
1149 | "integrity": "sha1-LupSkHAvJquP5TcDcP+GyWXSESM=",
1150 | "dev": true
1151 | },
1152 | "estree-walker": {
1153 | "version": "2.0.2",
1154 | "resolved": "https://registry.npm.taobao.org/estree-walker/download/estree-walker-2.0.2.tgz?cache=0&sync_timestamp=1611956983677&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festree-walker%2Fdownload%2Festree-walker-2.0.2.tgz",
1155 | "integrity": "sha1-UvAQF4wqTBF6d1fP6UKtt9LaTKw="
1156 | },
1157 | "esutils": {
1158 | "version": "2.0.3",
1159 | "resolved": "https://registry.nlark.com/esutils/download/esutils-2.0.3.tgz",
1160 | "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=",
1161 | "dev": true
1162 | },
1163 | "fast-deep-equal": {
1164 | "version": "3.1.3",
1165 | "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz",
1166 | "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=",
1167 | "dev": true
1168 | },
1169 | "fast-glob": {
1170 | "version": "3.2.7",
1171 | "resolved": "https://registry.nlark.com/fast-glob/download/fast-glob-3.2.7.tgz",
1172 | "integrity": "sha1-/Wy3otfpqnp4RhEehaGW1rL3ZqE=",
1173 | "dev": true,
1174 | "requires": {
1175 | "@nodelib/fs.stat": "^2.0.2",
1176 | "@nodelib/fs.walk": "^1.2.3",
1177 | "glob-parent": "^5.1.2",
1178 | "merge2": "^1.3.0",
1179 | "micromatch": "^4.0.4"
1180 | }
1181 | },
1182 | "fast-json-stable-stringify": {
1183 | "version": "2.1.0",
1184 | "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz",
1185 | "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=",
1186 | "dev": true
1187 | },
1188 | "fast-levenshtein": {
1189 | "version": "2.0.6",
1190 | "resolved": "https://registry.nlark.com/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz",
1191 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
1192 | "dev": true
1193 | },
1194 | "fastq": {
1195 | "version": "1.13.0",
1196 | "resolved": "https://registry.nlark.com/fastq/download/fastq-1.13.0.tgz",
1197 | "integrity": "sha1-YWdg+Ip1Jr38WWt8q4wYk4w2uYw=",
1198 | "dev": true,
1199 | "requires": {
1200 | "reusify": "^1.0.4"
1201 | }
1202 | },
1203 | "file-entry-cache": {
1204 | "version": "6.0.1",
1205 | "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-6.0.1.tgz?cache=0&sync_timestamp=1613794357372&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-entry-cache%2Fdownload%2Ffile-entry-cache-6.0.1.tgz",
1206 | "integrity": "sha1-IRst2WWcsDlLBz5zI6w8kz1SICc=",
1207 | "dev": true,
1208 | "requires": {
1209 | "flat-cache": "^3.0.4"
1210 | }
1211 | },
1212 | "fill-range": {
1213 | "version": "7.0.1",
1214 | "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz",
1215 | "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
1216 | "dev": true,
1217 | "requires": {
1218 | "to-regex-range": "^5.0.1"
1219 | }
1220 | },
1221 | "flat-cache": {
1222 | "version": "3.0.4",
1223 | "resolved": "https://registry.nlark.com/flat-cache/download/flat-cache-3.0.4.tgz",
1224 | "integrity": "sha1-YbAzgwKy/p+Vfcwy/CqH8cMEixE=",
1225 | "dev": true,
1226 | "requires": {
1227 | "flatted": "^3.1.0",
1228 | "rimraf": "^3.0.2"
1229 | }
1230 | },
1231 | "flatted": {
1232 | "version": "3.2.4",
1233 | "resolved": "https://registry.npmmirror.com/flatted/download/flatted-3.2.4.tgz?cache=0&sync_timestamp=1636473847692&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fflatted%2Fdownload%2Fflatted-3.2.4.tgz",
1234 | "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==",
1235 | "dev": true
1236 | },
1237 | "fs.realpath": {
1238 | "version": "1.0.0",
1239 | "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz",
1240 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
1241 | "dev": true
1242 | },
1243 | "fsevents": {
1244 | "version": "2.3.2",
1245 | "resolved": "https://registry.npmmirror.com/fsevents/download/fsevents-2.3.2.tgz",
1246 | "integrity": "sha1-ilJveLj99GI7cJ4Ll1xSwkwC/Ro=",
1247 | "dev": true,
1248 | "optional": true
1249 | },
1250 | "function-bind": {
1251 | "version": "1.1.1",
1252 | "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz",
1253 | "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=",
1254 | "dev": true
1255 | },
1256 | "functional-red-black-tree": {
1257 | "version": "1.0.1",
1258 | "resolved": "https://registry.nlark.com/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz",
1259 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=",
1260 | "dev": true
1261 | },
1262 | "get-intrinsic": {
1263 | "version": "1.1.1",
1264 | "resolved": "https://registry.nlark.com/get-intrinsic/download/get-intrinsic-1.1.1.tgz",
1265 | "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y=",
1266 | "dev": true,
1267 | "requires": {
1268 | "function-bind": "^1.1.1",
1269 | "has": "^1.0.3",
1270 | "has-symbols": "^1.0.1"
1271 | }
1272 | },
1273 | "glob": {
1274 | "version": "7.2.0",
1275 | "resolved": "https://registry.npmmirror.com/glob/download/glob-7.2.0.tgz",
1276 | "integrity": "sha1-0VU1r3cy4C6Uj0xBYovZECk/YCM=",
1277 | "dev": true,
1278 | "requires": {
1279 | "fs.realpath": "^1.0.0",
1280 | "inflight": "^1.0.4",
1281 | "inherits": "2",
1282 | "minimatch": "^3.0.4",
1283 | "once": "^1.3.0",
1284 | "path-is-absolute": "^1.0.0"
1285 | }
1286 | },
1287 | "glob-parent": {
1288 | "version": "5.1.2",
1289 | "resolved": "https://registry.npmmirror.com/glob-parent/download/glob-parent-5.1.2.tgz?cache=0&sync_timestamp=1632953697891&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglob-parent%2Fdownload%2Fglob-parent-5.1.2.tgz",
1290 | "integrity": "sha1-hpgyxYA0/mikCTwX3BXoNA2EAcQ=",
1291 | "dev": true,
1292 | "requires": {
1293 | "is-glob": "^4.0.1"
1294 | }
1295 | },
1296 | "globals": {
1297 | "version": "13.12.0",
1298 | "resolved": "https://registry.npmmirror.com/globals/download/globals-13.12.0.tgz?cache=0&sync_timestamp=1635390798667&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fglobals%2Fdownload%2Fglobals-13.12.0.tgz",
1299 | "integrity": "sha1-TXM3YDBCMKAILtluIeXFZfiYCJ4=",
1300 | "dev": true,
1301 | "requires": {
1302 | "type-fest": "^0.20.2"
1303 | }
1304 | },
1305 | "graceful-fs": {
1306 | "version": "4.2.8",
1307 | "resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.8.tgz",
1308 | "integrity": "sha1-5BK40z9eAGWTy9PO5t+fLOu+gCo=",
1309 | "dev": true,
1310 | "optional": true
1311 | },
1312 | "gradient-parser": {
1313 | "version": "1.0.2",
1314 | "resolved": "https://registry.nlark.com/gradient-parser/download/gradient-parser-1.0.2.tgz",
1315 | "integrity": "sha1-0oO4A5A4biYTyZK7Dlq7JZrt8l8="
1316 | },
1317 | "has": {
1318 | "version": "1.0.3",
1319 | "resolved": "https://registry.nlark.com/has/download/has-1.0.3.tgz",
1320 | "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=",
1321 | "dev": true,
1322 | "requires": {
1323 | "function-bind": "^1.1.1"
1324 | }
1325 | },
1326 | "has-flag": {
1327 | "version": "4.0.0",
1328 | "resolved": "https://registry.nlark.com/has-flag/download/has-flag-4.0.0.tgz",
1329 | "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
1330 | "dev": true
1331 | },
1332 | "has-symbols": {
1333 | "version": "1.0.2",
1334 | "resolved": "https://registry.nlark.com/has-symbols/download/has-symbols-1.0.2.tgz",
1335 | "integrity": "sha1-Fl0wcMADCXUqEjakeTMeOsVvFCM=",
1336 | "dev": true
1337 | },
1338 | "has-tostringtag": {
1339 | "version": "1.0.0",
1340 | "resolved": "https://registry.nlark.com/has-tostringtag/download/has-tostringtag-1.0.0.tgz?cache=0&sync_timestamp=1628196402801&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fhas-tostringtag%2Fdownload%2Fhas-tostringtag-1.0.0.tgz",
1341 | "integrity": "sha1-fhM4GKfTlHNPlB5zw9P5KR5liyU=",
1342 | "dev": true,
1343 | "requires": {
1344 | "has-symbols": "^1.0.2"
1345 | }
1346 | },
1347 | "html-tags": {
1348 | "version": "2.0.0",
1349 | "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz",
1350 | "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos="
1351 | },
1352 | "htmlparser2": {
1353 | "version": "6.1.0",
1354 | "resolved": "https://registry.npmmirror.com/htmlparser2/download/htmlparser2-6.1.0.tgz?cache=0&sync_timestamp=1636640940074&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-6.1.0.tgz",
1355 | "integrity": "sha1-xNditsM3GgXb5l6UrkOp+EX7j7c=",
1356 | "dev": true,
1357 | "requires": {
1358 | "domelementtype": "^2.0.1",
1359 | "domhandler": "^4.0.0",
1360 | "domutils": "^2.5.2",
1361 | "entities": "^2.0.0"
1362 | }
1363 | },
1364 | "iconv-lite": {
1365 | "version": "0.4.24",
1366 | "resolved": "https://registry.nlark.com/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1621826271136&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz",
1367 | "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=",
1368 | "dev": true,
1369 | "optional": true,
1370 | "requires": {
1371 | "safer-buffer": ">= 2.1.2 < 3"
1372 | }
1373 | },
1374 | "ignore": {
1375 | "version": "4.0.6",
1376 | "resolved": "https://registry.npmmirror.com/ignore/download/ignore-4.0.6.tgz?cache=0&sync_timestamp=1635926632542&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fignore%2Fdownload%2Fignore-4.0.6.tgz",
1377 | "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=",
1378 | "dev": true
1379 | },
1380 | "image-size": {
1381 | "version": "0.5.5",
1382 | "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz?cache=0&sync_timestamp=1618422657851&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimage-size%2Fdownload%2Fimage-size-0.5.5.tgz",
1383 | "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
1384 | "dev": true,
1385 | "optional": true
1386 | },
1387 | "import-fresh": {
1388 | "version": "3.3.0",
1389 | "resolved": "https://registry.nlark.com/import-fresh/download/import-fresh-3.3.0.tgz",
1390 | "integrity": "sha1-NxYsJfy566oublPVtNiM4X2eDCs=",
1391 | "dev": true,
1392 | "requires": {
1393 | "parent-module": "^1.0.0",
1394 | "resolve-from": "^4.0.0"
1395 | }
1396 | },
1397 | "imurmurhash": {
1398 | "version": "0.1.4",
1399 | "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz",
1400 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
1401 | "dev": true
1402 | },
1403 | "inflight": {
1404 | "version": "1.0.6",
1405 | "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz",
1406 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
1407 | "dev": true,
1408 | "requires": {
1409 | "once": "^1.3.0",
1410 | "wrappy": "1"
1411 | }
1412 | },
1413 | "inherits": {
1414 | "version": "2.0.4",
1415 | "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz",
1416 | "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=",
1417 | "dev": true
1418 | },
1419 | "is-core-module": {
1420 | "version": "2.8.0",
1421 | "resolved": "https://registry.npmmirror.com/is-core-module/download/is-core-module-2.8.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-core-module%2Fdownload%2Fis-core-module-2.8.0.tgz",
1422 | "integrity": "sha1-AyEzbD0JJeSX/Zf12VyxFKXM1Ug=",
1423 | "dev": true,
1424 | "requires": {
1425 | "has": "^1.0.3"
1426 | }
1427 | },
1428 | "is-expression": {
1429 | "version": "4.0.0",
1430 | "resolved": "https://registry.npm.taobao.org/is-expression/download/is-expression-4.0.0.tgz",
1431 | "integrity": "sha1-wzFVliq/IdCv0lUlFNZ9LsFv0qs=",
1432 | "dev": true,
1433 | "requires": {
1434 | "acorn": "^7.1.1",
1435 | "object-assign": "^4.1.1"
1436 | }
1437 | },
1438 | "is-extglob": {
1439 | "version": "2.1.1",
1440 | "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz",
1441 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
1442 | "dev": true
1443 | },
1444 | "is-glob": {
1445 | "version": "4.0.3",
1446 | "resolved": "https://registry.npmmirror.com/is-glob/download/is-glob-4.0.3.tgz",
1447 | "integrity": "sha1-ZPYeQsu7LuwgcanawLKLoeZdUIQ=",
1448 | "dev": true,
1449 | "requires": {
1450 | "is-extglob": "^2.1.1"
1451 | }
1452 | },
1453 | "is-number": {
1454 | "version": "7.0.0",
1455 | "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz",
1456 | "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
1457 | "dev": true
1458 | },
1459 | "is-plain-object": {
1460 | "version": "3.0.1",
1461 | "resolved": "https://registry.nlark.com/is-plain-object/download/is-plain-object-3.0.1.tgz",
1462 | "integrity": "sha1-Zi2S0kwKpDAkB7DUXSHyJRyF+Fs="
1463 | },
1464 | "is-promise": {
1465 | "version": "2.2.2",
1466 | "resolved": "https://registry.nlark.com/is-promise/download/is-promise-2.2.2.tgz",
1467 | "integrity": "sha1-OauVnMv5p3TPB597QMeib3YxNfE=",
1468 | "dev": true
1469 | },
1470 | "is-regex": {
1471 | "version": "1.1.4",
1472 | "resolved": "https://registry.nlark.com/is-regex/download/is-regex-1.1.4.tgz?cache=0&sync_timestamp=1628221905423&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fis-regex%2Fdownload%2Fis-regex-1.1.4.tgz",
1473 | "integrity": "sha1-7vVmPNWfpMCuM5UFMj32hUuxWVg=",
1474 | "dev": true,
1475 | "requires": {
1476 | "call-bind": "^1.0.2",
1477 | "has-tostringtag": "^1.0.0"
1478 | }
1479 | },
1480 | "is-what": {
1481 | "version": "3.14.1",
1482 | "resolved": "https://registry.npmmirror.com/is-what/download/is-what-3.14.1.tgz?cache=0&sync_timestamp=1634283360064&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fis-what%2Fdownload%2Fis-what-3.14.1.tgz",
1483 | "integrity": "sha1-4SIvRt3ahd6tD9HJ3xMXYOd3VcE=",
1484 | "dev": true
1485 | },
1486 | "isexe": {
1487 | "version": "2.0.0",
1488 | "resolved": "https://registry.nlark.com/isexe/download/isexe-2.0.0.tgz?cache=0&sync_timestamp=1618847054312&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fisexe%2Fdownload%2Fisexe-2.0.0.tgz",
1489 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
1490 | "dev": true
1491 | },
1492 | "js-stringify": {
1493 | "version": "1.0.2",
1494 | "resolved": "https://registry.npm.taobao.org/js-stringify/download/js-stringify-1.0.2.tgz",
1495 | "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=",
1496 | "dev": true
1497 | },
1498 | "js-tokens": {
1499 | "version": "4.0.0",
1500 | "resolved": "https://registry.nlark.com/js-tokens/download/js-tokens-4.0.0.tgz?cache=0&sync_timestamp=1619345098261&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz",
1501 | "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk="
1502 | },
1503 | "js-yaml": {
1504 | "version": "4.1.0",
1505 | "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-4.1.0.tgz?cache=0&sync_timestamp=1618435004368&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-4.1.0.tgz",
1506 | "integrity": "sha1-wftl+PUBeQHN0slRhkuhhFihBgI=",
1507 | "dev": true,
1508 | "requires": {
1509 | "argparse": "^2.0.1"
1510 | }
1511 | },
1512 | "json-schema-traverse": {
1513 | "version": "0.4.1",
1514 | "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz?cache=0&sync_timestamp=1607999852153&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson-schema-traverse%2Fdownload%2Fjson-schema-traverse-0.4.1.tgz",
1515 | "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=",
1516 | "dev": true
1517 | },
1518 | "json-stable-stringify-without-jsonify": {
1519 | "version": "1.0.1",
1520 | "resolved": "https://registry.nlark.com/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz",
1521 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=",
1522 | "dev": true
1523 | },
1524 | "jsonc-parser": {
1525 | "version": "2.3.1",
1526 | "resolved": "https://registry.npm.taobao.org/jsonc-parser/download/jsonc-parser-2.3.1.tgz?cache=0&sync_timestamp=1605281904422&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonc-parser%2Fdownload%2Fjsonc-parser-2.3.1.tgz",
1527 | "integrity": "sha1-WVSRULEz8u+sykj+nOHsBlmvI0I=",
1528 | "dev": true
1529 | },
1530 | "jstransformer": {
1531 | "version": "1.0.0",
1532 | "resolved": "https://registry.npm.taobao.org/jstransformer/download/jstransformer-1.0.0.tgz",
1533 | "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
1534 | "dev": true,
1535 | "requires": {
1536 | "is-promise": "^2.0.0",
1537 | "promise": "^7.0.1"
1538 | }
1539 | },
1540 | "less": {
1541 | "version": "4.1.2",
1542 | "resolved": "https://registry.npmmirror.com/less/download/less-4.1.2.tgz?cache=0&sync_timestamp=1633303651089&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fless%2Fdownload%2Fless-4.1.2.tgz",
1543 | "integrity": "sha1-YJnuWEmZdQwmJLZfgBRfhnTktLA=",
1544 | "dev": true,
1545 | "requires": {
1546 | "copy-anything": "^2.0.1",
1547 | "errno": "^0.1.1",
1548 | "graceful-fs": "^4.1.2",
1549 | "image-size": "~0.5.0",
1550 | "make-dir": "^2.1.0",
1551 | "mime": "^1.4.1",
1552 | "needle": "^2.5.2",
1553 | "parse-node-version": "^1.0.1",
1554 | "source-map": "~0.6.0",
1555 | "tslib": "^2.3.0"
1556 | }
1557 | },
1558 | "levn": {
1559 | "version": "0.4.1",
1560 | "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.4.1.tgz",
1561 | "integrity": "sha1-rkViwAdHO5MqYgDUAyaN0v/8at4=",
1562 | "dev": true,
1563 | "requires": {
1564 | "prelude-ls": "^1.2.1",
1565 | "type-check": "~0.4.0"
1566 | }
1567 | },
1568 | "lodash": {
1569 | "version": "4.17.21",
1570 | "resolved": "https://registry.nlark.com/lodash/download/lodash-4.17.21.tgz?cache=0&sync_timestamp=1624543041613&other_urls=https%3A%2F%2Fregistry.nlark.com%2Flodash%2Fdownload%2Flodash-4.17.21.tgz",
1571 | "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw="
1572 | },
1573 | "lodash-es": {
1574 | "version": "4.17.21",
1575 | "resolved": "https://registry.npm.taobao.org/lodash-es/download/lodash-es-4.17.21.tgz?cache=0&sync_timestamp=1613835893273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash-es%2Fdownload%2Flodash-es-4.17.21.tgz",
1576 | "integrity": "sha1-Q+YmxG5lkbd1C+srUBFzkMYJ4+4="
1577 | },
1578 | "lodash.kebabcase": {
1579 | "version": "4.1.1",
1580 | "resolved": "https://registry.nlark.com/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz",
1581 | "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY="
1582 | },
1583 | "lodash.merge": {
1584 | "version": "4.6.2",
1585 | "resolved": "https://registry.npm.taobao.org/lodash.merge/download/lodash.merge-4.6.2.tgz",
1586 | "integrity": "sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=",
1587 | "dev": true
1588 | },
1589 | "loose-envify": {
1590 | "version": "1.4.0",
1591 | "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz",
1592 | "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=",
1593 | "requires": {
1594 | "js-tokens": "^3.0.0 || ^4.0.0"
1595 | }
1596 | },
1597 | "lru-cache": {
1598 | "version": "6.0.0",
1599 | "resolved": "https://registry.nlark.com/lru-cache/download/lru-cache-6.0.0.tgz",
1600 | "integrity": "sha1-bW/mVw69lqr5D8rR2vo7JWbbOpQ=",
1601 | "dev": true,
1602 | "requires": {
1603 | "yallist": "^4.0.0"
1604 | }
1605 | },
1606 | "magic-string": {
1607 | "version": "0.25.7",
1608 | "resolved": "https://registry.nlark.com/magic-string/download/magic-string-0.25.7.tgz?cache=0&sync_timestamp=1618847046304&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.7.tgz",
1609 | "integrity": "sha1-P0l9b9NMZpxnmNy4IfLvMfVEUFE=",
1610 | "requires": {
1611 | "sourcemap-codec": "^1.4.4"
1612 | }
1613 | },
1614 | "make-dir": {
1615 | "version": "2.1.0",
1616 | "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz",
1617 | "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=",
1618 | "dev": true,
1619 | "optional": true,
1620 | "requires": {
1621 | "pify": "^4.0.1",
1622 | "semver": "^5.6.0"
1623 | },
1624 | "dependencies": {
1625 | "semver": {
1626 | "version": "5.7.1",
1627 | "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz",
1628 | "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
1629 | "dev": true,
1630 | "optional": true
1631 | }
1632 | }
1633 | },
1634 | "merge2": {
1635 | "version": "1.4.1",
1636 | "resolved": "https://registry.nlark.com/merge2/download/merge2-1.4.1.tgz",
1637 | "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=",
1638 | "dev": true
1639 | },
1640 | "micromatch": {
1641 | "version": "4.0.4",
1642 | "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-4.0.4.tgz?cache=0&sync_timestamp=1618054740956&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmicromatch%2Fdownload%2Fmicromatch-4.0.4.tgz",
1643 | "integrity": "sha1-iW1Rnf6dsl/OlM63pQCRm/iB6/k=",
1644 | "dev": true,
1645 | "requires": {
1646 | "braces": "^3.0.1",
1647 | "picomatch": "^2.2.3"
1648 | }
1649 | },
1650 | "mime": {
1651 | "version": "1.6.0",
1652 | "resolved": "https://registry.npmmirror.com/mime/download/mime-1.6.0.tgz",
1653 | "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=",
1654 | "dev": true,
1655 | "optional": true
1656 | },
1657 | "minimatch": {
1658 | "version": "3.0.4",
1659 | "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz",
1660 | "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
1661 | "dev": true,
1662 | "requires": {
1663 | "brace-expansion": "^1.1.7"
1664 | }
1665 | },
1666 | "moment": {
1667 | "version": "2.29.1",
1668 | "resolved": "https://registry.nlark.com/moment/download/moment-2.29.1.tgz",
1669 | "integrity": "sha1-sr52n6MZQL6e7qZGnAdeNQBvo9M="
1670 | },
1671 | "ms": {
1672 | "version": "2.1.2",
1673 | "resolved": "https://registry.npmmirror.com/ms/download/ms-2.1.2.tgz",
1674 | "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=",
1675 | "dev": true
1676 | },
1677 | "nanoid": {
1678 | "version": "3.1.30",
1679 | "resolved": "https://registry.npmmirror.com/nanoid/download/nanoid-3.1.30.tgz?cache=0&sync_timestamp=1634166192601&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnanoid%2Fdownload%2Fnanoid-3.1.30.tgz",
1680 | "integrity": "sha1-Y/k8xUjSoRPcXfvGO/oJ4rm2Q2I="
1681 | },
1682 | "nanopop": {
1683 | "version": "2.1.0",
1684 | "resolved": "https://registry.npm.taobao.org/nanopop/download/nanopop-2.1.0.tgz",
1685 | "integrity": "sha1-I0dlE87iQFiIr9LopLVAZrcLnmA="
1686 | },
1687 | "natural-compare": {
1688 | "version": "1.4.0",
1689 | "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz",
1690 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
1691 | "dev": true
1692 | },
1693 | "needle": {
1694 | "version": "2.9.1",
1695 | "resolved": "https://registry.nlark.com/needle/download/needle-2.9.1.tgz?cache=0&sync_timestamp=1630674995929&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fneedle%2Fdownload%2Fneedle-2.9.1.tgz",
1696 | "integrity": "sha1-ItHf++NJDCuD4wH3cJtnNs2PJoQ=",
1697 | "dev": true,
1698 | "optional": true,
1699 | "requires": {
1700 | "debug": "^3.2.6",
1701 | "iconv-lite": "^0.4.4",
1702 | "sax": "^1.2.4"
1703 | },
1704 | "dependencies": {
1705 | "debug": {
1706 | "version": "3.2.7",
1707 | "resolved": "https://registry.npmmirror.com/debug/download/debug-3.2.7.tgz?cache=0&sync_timestamp=1636300872595&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fdebug%2Fdownload%2Fdebug-3.2.7.tgz",
1708 | "integrity": "sha1-clgLfpFF+zm2Z2+cXl+xALk0F5o=",
1709 | "dev": true,
1710 | "optional": true,
1711 | "requires": {
1712 | "ms": "^2.1.1"
1713 | }
1714 | }
1715 | }
1716 | },
1717 | "object-assign": {
1718 | "version": "4.1.1",
1719 | "resolved": "https://registry.nlark.com/object-assign/download/object-assign-4.1.1.tgz?cache=0&sync_timestamp=1618847043548&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz",
1720 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1721 | "dev": true
1722 | },
1723 | "omit.js": {
1724 | "version": "2.0.2",
1725 | "resolved": "https://registry.npm.taobao.org/omit.js/download/omit.js-2.0.2.tgz",
1726 | "integrity": "sha1-3ZuENvq5R6Xz/yFMslOGMeMT7C8="
1727 | },
1728 | "once": {
1729 | "version": "1.4.0",
1730 | "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz",
1731 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1732 | "dev": true,
1733 | "requires": {
1734 | "wrappy": "1"
1735 | }
1736 | },
1737 | "optionator": {
1738 | "version": "0.9.1",
1739 | "resolved": "https://registry.nlark.com/optionator/download/optionator-0.9.1.tgz",
1740 | "integrity": "sha1-TyNqY3Pa4FZqbUPhMmZ09QwpFJk=",
1741 | "dev": true,
1742 | "requires": {
1743 | "deep-is": "^0.1.3",
1744 | "fast-levenshtein": "^2.0.6",
1745 | "levn": "^0.4.1",
1746 | "prelude-ls": "^1.2.1",
1747 | "type-check": "^0.4.0",
1748 | "word-wrap": "^1.2.3"
1749 | }
1750 | },
1751 | "parent-module": {
1752 | "version": "1.0.1",
1753 | "resolved": "https://registry.npmmirror.com/parent-module/download/parent-module-1.0.1.tgz?cache=0&sync_timestamp=1633337513286&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fparent-module%2Fdownload%2Fparent-module-1.0.1.tgz",
1754 | "integrity": "sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI=",
1755 | "dev": true,
1756 | "requires": {
1757 | "callsites": "^3.0.0"
1758 | }
1759 | },
1760 | "parse-node-version": {
1761 | "version": "1.0.1",
1762 | "resolved": "https://registry.npm.taobao.org/parse-node-version/download/parse-node-version-1.0.1.tgz",
1763 | "integrity": "sha1-4rXb7eAOf6m8NjYH9TMn6LBzGJs=",
1764 | "dev": true
1765 | },
1766 | "path-is-absolute": {
1767 | "version": "1.0.1",
1768 | "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz",
1769 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1770 | "dev": true
1771 | },
1772 | "path-key": {
1773 | "version": "3.1.1",
1774 | "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1617971695678&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz",
1775 | "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=",
1776 | "dev": true
1777 | },
1778 | "path-parse": {
1779 | "version": "1.0.7",
1780 | "resolved": "https://registry.nlark.com/path-parse/download/path-parse-1.0.7.tgz",
1781 | "integrity": "sha1-+8EUtgykKzDZ2vWFjkvWi77bZzU=",
1782 | "dev": true
1783 | },
1784 | "performance-now": {
1785 | "version": "2.1.0",
1786 | "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz",
1787 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
1788 | },
1789 | "picocolors": {
1790 | "version": "1.0.0",
1791 | "resolved": "https://registry.npmmirror.com/picocolors/download/picocolors-1.0.0.tgz?cache=0&sync_timestamp=1634093442271&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fpicocolors%2Fdownload%2Fpicocolors-1.0.0.tgz",
1792 | "integrity": "sha1-y1vcdP8/UYkiNur3nWi8RFZKuBw="
1793 | },
1794 | "picomatch": {
1795 | "version": "2.3.0",
1796 | "resolved": "https://registry.nlark.com/picomatch/download/picomatch-2.3.0.tgz",
1797 | "integrity": "sha1-8fBh3o9qS/AiiS4tEoI0+5gwKXI=",
1798 | "dev": true
1799 | },
1800 | "pify": {
1801 | "version": "4.0.1",
1802 | "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz",
1803 | "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=",
1804 | "dev": true,
1805 | "optional": true
1806 | },
1807 | "postcss": {
1808 | "version": "8.3.11",
1809 | "resolved": "https://registry.npmmirror.com/postcss/download/postcss-8.3.11.tgz",
1810 | "integrity": "sha1-w77KfqgRzV4cSj7G0udZnvH4+Fg=",
1811 | "requires": {
1812 | "nanoid": "^3.1.30",
1813 | "picocolors": "^1.0.0",
1814 | "source-map-js": "^0.6.2"
1815 | }
1816 | },
1817 | "prelude-ls": {
1818 | "version": "1.2.1",
1819 | "resolved": "https://registry.nlark.com/prelude-ls/download/prelude-ls-1.2.1.tgz",
1820 | "integrity": "sha1-3rxkidem5rDnYRiIzsiAM30xY5Y=",
1821 | "dev": true
1822 | },
1823 | "progress": {
1824 | "version": "2.0.3",
1825 | "resolved": "https://registry.nlark.com/progress/download/progress-2.0.3.tgz",
1826 | "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=",
1827 | "dev": true
1828 | },
1829 | "promise": {
1830 | "version": "7.3.1",
1831 | "resolved": "https://registry.nlark.com/promise/download/promise-7.3.1.tgz",
1832 | "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=",
1833 | "dev": true,
1834 | "requires": {
1835 | "asap": "~2.0.3"
1836 | }
1837 | },
1838 | "prr": {
1839 | "version": "1.0.1",
1840 | "resolved": "https://registry.nlark.com/prr/download/prr-1.0.1.tgz",
1841 | "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
1842 | "dev": true,
1843 | "optional": true
1844 | },
1845 | "pug": {
1846 | "version": "3.0.2",
1847 | "resolved": "https://registry.npm.taobao.org/pug/download/pug-3.0.2.tgz",
1848 | "integrity": "sha1-81xxBzQ0VOQ7wnrg/3bHMbeOpTU=",
1849 | "dev": true,
1850 | "requires": {
1851 | "pug-code-gen": "^3.0.2",
1852 | "pug-filters": "^4.0.0",
1853 | "pug-lexer": "^5.0.1",
1854 | "pug-linker": "^4.0.0",
1855 | "pug-load": "^3.0.0",
1856 | "pug-parser": "^6.0.0",
1857 | "pug-runtime": "^3.0.1",
1858 | "pug-strip-comments": "^2.0.0"
1859 | }
1860 | },
1861 | "pug-attrs": {
1862 | "version": "3.0.0",
1863 | "resolved": "https://registry.npm.taobao.org/pug-attrs/download/pug-attrs-3.0.0.tgz",
1864 | "integrity": "sha1-sQRR4DSBZeMfrRzCPr3dncc0fEE=",
1865 | "dev": true,
1866 | "requires": {
1867 | "constantinople": "^4.0.1",
1868 | "js-stringify": "^1.0.2",
1869 | "pug-runtime": "^3.0.0"
1870 | }
1871 | },
1872 | "pug-code-gen": {
1873 | "version": "3.0.2",
1874 | "resolved": "https://registry.npm.taobao.org/pug-code-gen/download/pug-code-gen-3.0.2.tgz",
1875 | "integrity": "sha1-rRkPSUMTO/GGtguA3kgxAOEy4s4=",
1876 | "dev": true,
1877 | "requires": {
1878 | "constantinople": "^4.0.1",
1879 | "doctypes": "^1.1.0",
1880 | "js-stringify": "^1.0.2",
1881 | "pug-attrs": "^3.0.0",
1882 | "pug-error": "^2.0.0",
1883 | "pug-runtime": "^3.0.0",
1884 | "void-elements": "^3.1.0",
1885 | "with": "^7.0.0"
1886 | }
1887 | },
1888 | "pug-error": {
1889 | "version": "2.0.0",
1890 | "resolved": "https://registry.npm.taobao.org/pug-error/download/pug-error-2.0.0.tgz",
1891 | "integrity": "sha1-XGIXPLCcNN4qLOBPF7it/sdNjKU=",
1892 | "dev": true
1893 | },
1894 | "pug-filters": {
1895 | "version": "4.0.0",
1896 | "resolved": "https://registry.npm.taobao.org/pug-filters/download/pug-filters-4.0.0.tgz",
1897 | "integrity": "sha1-0+Sa9bqEcum3pm2YDnB86dLMm14=",
1898 | "dev": true,
1899 | "requires": {
1900 | "constantinople": "^4.0.1",
1901 | "jstransformer": "1.0.0",
1902 | "pug-error": "^2.0.0",
1903 | "pug-walk": "^2.0.0",
1904 | "resolve": "^1.15.1"
1905 | }
1906 | },
1907 | "pug-lexer": {
1908 | "version": "5.0.1",
1909 | "resolved": "https://registry.npm.taobao.org/pug-lexer/download/pug-lexer-5.0.1.tgz",
1910 | "integrity": "sha1-rkRijFvvmxkLZlaDsojKkCS4sNU=",
1911 | "dev": true,
1912 | "requires": {
1913 | "character-parser": "^2.2.0",
1914 | "is-expression": "^4.0.0",
1915 | "pug-error": "^2.0.0"
1916 | }
1917 | },
1918 | "pug-linker": {
1919 | "version": "4.0.0",
1920 | "resolved": "https://registry.npm.taobao.org/pug-linker/download/pug-linker-4.0.0.tgz",
1921 | "integrity": "sha1-EsvAWU/Fo+Brn8Web5PBRpYqdwg=",
1922 | "dev": true,
1923 | "requires": {
1924 | "pug-error": "^2.0.0",
1925 | "pug-walk": "^2.0.0"
1926 | }
1927 | },
1928 | "pug-load": {
1929 | "version": "3.0.0",
1930 | "resolved": "https://registry.npm.taobao.org/pug-load/download/pug-load-3.0.0.tgz",
1931 | "integrity": "sha1-n9nNpSICsIrbEdJWgfufNL1BtmI=",
1932 | "dev": true,
1933 | "requires": {
1934 | "object-assign": "^4.1.1",
1935 | "pug-walk": "^2.0.0"
1936 | }
1937 | },
1938 | "pug-parser": {
1939 | "version": "6.0.0",
1940 | "resolved": "https://registry.npm.taobao.org/pug-parser/download/pug-parser-6.0.0.tgz",
1941 | "integrity": "sha1-qP3ANYY6lbLB3F6/Ts+AtOdqEmA=",
1942 | "dev": true,
1943 | "requires": {
1944 | "pug-error": "^2.0.0",
1945 | "token-stream": "1.0.0"
1946 | }
1947 | },
1948 | "pug-runtime": {
1949 | "version": "3.0.1",
1950 | "resolved": "https://registry.npm.taobao.org/pug-runtime/download/pug-runtime-3.0.1.tgz",
1951 | "integrity": "sha1-9jaXYgRyPzWoxfb61qzaKhkbg9c=",
1952 | "dev": true
1953 | },
1954 | "pug-strip-comments": {
1955 | "version": "2.0.0",
1956 | "resolved": "https://registry.npm.taobao.org/pug-strip-comments/download/pug-strip-comments-2.0.0.tgz",
1957 | "integrity": "sha1-+UsH/WtJVSMzD0kKf1VLT/h2MD4=",
1958 | "dev": true,
1959 | "requires": {
1960 | "pug-error": "^2.0.0"
1961 | }
1962 | },
1963 | "pug-walk": {
1964 | "version": "2.0.0",
1965 | "resolved": "https://registry.npm.taobao.org/pug-walk/download/pug-walk-2.0.0.tgz",
1966 | "integrity": "sha1-QXqrwpIyu0SZtbUGmistKiTV9f4=",
1967 | "dev": true
1968 | },
1969 | "punycode": {
1970 | "version": "2.1.1",
1971 | "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz",
1972 | "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=",
1973 | "dev": true
1974 | },
1975 | "queue-microtask": {
1976 | "version": "1.2.3",
1977 | "resolved": "https://registry.nlark.com/queue-microtask/download/queue-microtask-1.2.3.tgz",
1978 | "integrity": "sha1-SSkii7xyTfrEPg77BYyve2z7YkM=",
1979 | "dev": true
1980 | },
1981 | "raf": {
1982 | "version": "3.4.1",
1983 | "resolved": "https://registry.npm.taobao.org/raf/download/raf-3.4.1.tgz",
1984 | "integrity": "sha1-B0LpmkplUvRF1z4+4DKK8P8e3jk=",
1985 | "requires": {
1986 | "performance-now": "^2.1.0"
1987 | }
1988 | },
1989 | "regenerator-runtime": {
1990 | "version": "0.13.9",
1991 | "resolved": "https://registry.nlark.com/regenerator-runtime/download/regenerator-runtime-0.13.9.tgz?cache=0&sync_timestamp=1626993001371&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.9.tgz",
1992 | "integrity": "sha1-iSV0Kpj/2QgUmI11Zq0wyjsmO1I="
1993 | },
1994 | "regexpp": {
1995 | "version": "3.2.0",
1996 | "resolved": "https://registry.nlark.com/regexpp/download/regexpp-3.2.0.tgz",
1997 | "integrity": "sha1-BCWido2PI7rXDKS5BGH6LxIT4bI=",
1998 | "dev": true
1999 | },
2000 | "request-light": {
2001 | "version": "0.5.4",
2002 | "resolved": "https://registry.nlark.com/request-light/download/request-light-0.5.4.tgz",
2003 | "integrity": "sha1-SXqYxtiuSVNkF6Xi1/ODuTTz44w=",
2004 | "dev": true
2005 | },
2006 | "resize-observer-polyfill": {
2007 | "version": "1.5.1",
2008 | "resolved": "https://registry.nlark.com/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz",
2009 | "integrity": "sha1-DpAg3T0hAkRY1OvSfiPkAmmBBGQ="
2010 | },
2011 | "resolve": {
2012 | "version": "1.20.0",
2013 | "resolved": "https://registry.nlark.com/resolve/download/resolve-1.20.0.tgz",
2014 | "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=",
2015 | "dev": true,
2016 | "requires": {
2017 | "is-core-module": "^2.2.0",
2018 | "path-parse": "^1.0.6"
2019 | }
2020 | },
2021 | "resolve-from": {
2022 | "version": "4.0.0",
2023 | "resolved": "https://registry.nlark.com/resolve-from/download/resolve-from-4.0.0.tgz",
2024 | "integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=",
2025 | "dev": true
2026 | },
2027 | "reusify": {
2028 | "version": "1.0.4",
2029 | "resolved": "https://registry.nlark.com/reusify/download/reusify-1.0.4.tgz",
2030 | "integrity": "sha1-kNo4Kx4SbvwCFG6QhFqI2xKSXXY=",
2031 | "dev": true
2032 | },
2033 | "rimraf": {
2034 | "version": "3.0.2",
2035 | "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-3.0.2.tgz",
2036 | "integrity": "sha1-8aVAK6YiCtUswSgrrBrjqkn9Bho=",
2037 | "dev": true,
2038 | "requires": {
2039 | "glob": "^7.1.3"
2040 | }
2041 | },
2042 | "rollup": {
2043 | "version": "2.60.0",
2044 | "resolved": "https://registry.npmmirror.com/rollup/download/rollup-2.60.0.tgz?cache=0&sync_timestamp=1636694241707&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Frollup%2Fdownload%2Frollup-2.60.0.tgz",
2045 | "integrity": "sha512-cHdv9GWd58v58rdseC8e8XIaPUo8a9cgZpnCMMDGZFDZKEODOiPPEQFXLriWr/TjXzhPPmG5bkAztPsOARIcGQ==",
2046 | "dev": true,
2047 | "requires": {
2048 | "fsevents": "~2.3.2"
2049 | }
2050 | },
2051 | "run-parallel": {
2052 | "version": "1.2.0",
2053 | "resolved": "https://registry.npm.taobao.org/run-parallel/download/run-parallel-1.2.0.tgz?cache=0&sync_timestamp=1612925943325&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-parallel%2Fdownload%2Frun-parallel-1.2.0.tgz",
2054 | "integrity": "sha1-ZtE2jae9+SHrnZW9GpIp5/IaQ+4=",
2055 | "dev": true,
2056 | "requires": {
2057 | "queue-microtask": "^1.2.2"
2058 | }
2059 | },
2060 | "safer-buffer": {
2061 | "version": "2.1.2",
2062 | "resolved": "https://registry.nlark.com/safer-buffer/download/safer-buffer-2.1.2.tgz",
2063 | "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=",
2064 | "dev": true,
2065 | "optional": true
2066 | },
2067 | "sax": {
2068 | "version": "1.2.4",
2069 | "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz",
2070 | "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=",
2071 | "dev": true,
2072 | "optional": true
2073 | },
2074 | "scroll-into-view-if-needed": {
2075 | "version": "2.2.28",
2076 | "resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/download/scroll-into-view-if-needed-2.2.28.tgz",
2077 | "integrity": "sha1-WhWy9YpSZCyIyOylhGROAXA9ZFo=",
2078 | "requires": {
2079 | "compute-scroll-into-view": "^1.0.17"
2080 | }
2081 | },
2082 | "semver": {
2083 | "version": "7.3.5",
2084 | "resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.5.tgz",
2085 | "integrity": "sha1-C2Ich5NI2JmOSw5L6Us/EuYBjvc=",
2086 | "dev": true,
2087 | "requires": {
2088 | "lru-cache": "^6.0.0"
2089 | }
2090 | },
2091 | "shallow-equal": {
2092 | "version": "1.2.1",
2093 | "resolved": "https://registry.npm.taobao.org/shallow-equal/download/shallow-equal-1.2.1.tgz",
2094 | "integrity": "sha1-TBar+lYEOqINBQMk76aJQLDaedo="
2095 | },
2096 | "shebang-command": {
2097 | "version": "2.0.0",
2098 | "resolved": "https://registry.nlark.com/shebang-command/download/shebang-command-2.0.0.tgz",
2099 | "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=",
2100 | "dev": true,
2101 | "requires": {
2102 | "shebang-regex": "^3.0.0"
2103 | }
2104 | },
2105 | "shebang-regex": {
2106 | "version": "3.0.0",
2107 | "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz?cache=0&sync_timestamp=1628896299850&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fshebang-regex%2Fdownload%2Fshebang-regex-3.0.0.tgz",
2108 | "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=",
2109 | "dev": true
2110 | },
2111 | "slash": {
2112 | "version": "3.0.0",
2113 | "resolved": "https://registry.npm.taobao.org/slash/download/slash-3.0.0.tgz?cache=0&sync_timestamp=1618384496016&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fslash%2Fdownload%2Fslash-3.0.0.tgz",
2114 | "integrity": "sha1-ZTm+hwwWWtvVJAIg2+Nh8bxNRjQ="
2115 | },
2116 | "sortablejs": {
2117 | "version": "1.14.0",
2118 | "resolved": "https://registry.nlark.com/sortablejs/download/sortablejs-1.14.0.tgz",
2119 | "integrity": "sha1-bS4XzL2yX0ZHNN9iHU811Ks1s9g="
2120 | },
2121 | "source-map": {
2122 | "version": "0.6.1",
2123 | "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz",
2124 | "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM="
2125 | },
2126 | "source-map-js": {
2127 | "version": "0.6.2",
2128 | "resolved": "https://registry.npmmirror.com/source-map-js/download/source-map-js-0.6.2.tgz?cache=0&sync_timestamp=1636400772640&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fsource-map-js%2Fdownload%2Fsource-map-js-0.6.2.tgz",
2129 | "integrity": "sha1-C7XeYxtBz72mz7qL0FqA79/SOF4="
2130 | },
2131 | "sourcemap-codec": {
2132 | "version": "1.4.8",
2133 | "resolved": "https://registry.nlark.com/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz",
2134 | "integrity": "sha1-6oBL2UhXQC5pktBaOO8a41qatMQ="
2135 | },
2136 | "ssr-window": {
2137 | "version": "4.0.1",
2138 | "resolved": "https://registry.npmmirror.com/ssr-window/download/ssr-window-4.0.1.tgz",
2139 | "integrity": "sha1-UUvyyoGVL2P+iOiwxiOiP5D3/rM="
2140 | },
2141 | "strip-ansi": {
2142 | "version": "6.0.1",
2143 | "resolved": "https://registry.npmmirror.com/strip-ansi/download/strip-ansi-6.0.1.tgz",
2144 | "integrity": "sha1-nibGPTD1NEPpSJSVshBdN7Z6hdk=",
2145 | "dev": true,
2146 | "requires": {
2147 | "ansi-regex": "^5.0.1"
2148 | }
2149 | },
2150 | "strip-json-comments": {
2151 | "version": "3.1.1",
2152 | "resolved": "https://registry.nlark.com/strip-json-comments/download/strip-json-comments-3.1.1.tgz",
2153 | "integrity": "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY=",
2154 | "dev": true
2155 | },
2156 | "supports-color": {
2157 | "version": "7.2.0",
2158 | "resolved": "https://registry.npmmirror.com/supports-color/download/supports-color-7.2.0.tgz",
2159 | "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
2160 | "dev": true,
2161 | "requires": {
2162 | "has-flag": "^4.0.0"
2163 | }
2164 | },
2165 | "svg-tags": {
2166 | "version": "1.0.0",
2167 | "resolved": "https://registry.nlark.com/svg-tags/download/svg-tags-1.0.0.tgz",
2168 | "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q="
2169 | },
2170 | "swiper": {
2171 | "version": "7.3.1",
2172 | "resolved": "https://registry.npmmirror.com/swiper/download/swiper-7.3.1.tgz",
2173 | "integrity": "sha512-YHa8uI22UwF9Q6F9tCDSai7/BJo8uVHKampKYAIShlFrWoHfM+sCCn24Yeq3oqIKZv2bfSULzXKsXmh0VpCNeQ==",
2174 | "requires": {
2175 | "dom7": "^4.0.1",
2176 | "ssr-window": "^4.0.1"
2177 | }
2178 | },
2179 | "text-table": {
2180 | "version": "0.2.0",
2181 | "resolved": "https://registry.nlark.com/text-table/download/text-table-0.2.0.tgz?cache=0&sync_timestamp=1618847142316&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftext-table%2Fdownload%2Ftext-table-0.2.0.tgz",
2182 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
2183 | "dev": true
2184 | },
2185 | "tinycolor2": {
2186 | "version": "1.4.2",
2187 | "resolved": "https://registry.nlark.com/tinycolor2/download/tinycolor2-1.4.2.tgz",
2188 | "integrity": "sha1-P2pNEHGtB2dtf6Ry4frECnGdiAM="
2189 | },
2190 | "to-fast-properties": {
2191 | "version": "2.0.0",
2192 | "resolved": "https://registry.nlark.com/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1628418855671&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz",
2193 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
2194 | },
2195 | "to-regex-range": {
2196 | "version": "5.0.1",
2197 | "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz",
2198 | "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
2199 | "dev": true,
2200 | "requires": {
2201 | "is-number": "^7.0.0"
2202 | }
2203 | },
2204 | "token-stream": {
2205 | "version": "1.0.0",
2206 | "resolved": "https://registry.npm.taobao.org/token-stream/download/token-stream-1.0.0.tgz",
2207 | "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=",
2208 | "dev": true
2209 | },
2210 | "tslib": {
2211 | "version": "2.3.1",
2212 | "resolved": "https://registry.nlark.com/tslib/download/tslib-2.3.1.tgz?cache=0&sync_timestamp=1628722556410&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftslib%2Fdownload%2Ftslib-2.3.1.tgz",
2213 | "integrity": "sha1-6KM1rdXOrlGqJh0ypJAVjvBC7wE=",
2214 | "dev": true
2215 | },
2216 | "type-check": {
2217 | "version": "0.4.0",
2218 | "resolved": "https://registry.nlark.com/type-check/download/type-check-0.4.0.tgz",
2219 | "integrity": "sha1-B7ggO/pwVsBlcFDjzNLDdzC6uPE=",
2220 | "dev": true,
2221 | "requires": {
2222 | "prelude-ls": "^1.2.1"
2223 | }
2224 | },
2225 | "type-fest": {
2226 | "version": "0.20.2",
2227 | "resolved": "https://registry.npmmirror.com/type-fest/download/type-fest-0.20.2.tgz",
2228 | "integrity": "sha1-G/IH9LKPkVg2ZstfvTJ4hzAc1fQ=",
2229 | "dev": true
2230 | },
2231 | "typescript": {
2232 | "version": "4.4.4",
2233 | "resolved": "https://registry.npmmirror.com/typescript/download/typescript-4.4.4.tgz?cache=0&sync_timestamp=1636787920585&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Ftypescript%2Fdownload%2Ftypescript-4.4.4.tgz",
2234 | "integrity": "sha1-LNAaGh8WBwTTEB/VpY/w+fy4Aww=",
2235 | "dev": true
2236 | },
2237 | "upath": {
2238 | "version": "2.0.1",
2239 | "resolved": "https://registry.npm.taobao.org/upath/download/upath-2.0.1.tgz",
2240 | "integrity": "sha1-UMc96mjW9rmQ9R0nnOYIFmXWGos=",
2241 | "dev": true
2242 | },
2243 | "uri-js": {
2244 | "version": "4.4.1",
2245 | "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.4.1.tgz?cache=0&sync_timestamp=1610237624359&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Furi-js%2Fdownload%2Furi-js-4.4.1.tgz",
2246 | "integrity": "sha1-mxpSWVIlhZ5V9mnZKPiMbFfyp34=",
2247 | "dev": true,
2248 | "requires": {
2249 | "punycode": "^2.1.0"
2250 | }
2251 | },
2252 | "v8-compile-cache": {
2253 | "version": "2.3.0",
2254 | "resolved": "https://registry.nlark.com/v8-compile-cache/download/v8-compile-cache-2.3.0.tgz",
2255 | "integrity": "sha1-LeGWGMZtwkfc+2+ZM4A12CRaLO4=",
2256 | "dev": true
2257 | },
2258 | "vite": {
2259 | "version": "2.6.14",
2260 | "resolved": "https://registry.npmmirror.com/vite/download/vite-2.6.14.tgz?cache=0&sync_timestamp=1636722204859&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fvite%2Fdownload%2Fvite-2.6.14.tgz",
2261 | "integrity": "sha512-2HA9xGyi+EhY2MXo0+A2dRsqsAG3eFNEVIo12olkWhOmc8LfiM+eMdrXf+Ruje9gdXgvSqjLI9freec1RUM5EA==",
2262 | "dev": true,
2263 | "requires": {
2264 | "esbuild": "^0.13.2",
2265 | "fsevents": "~2.3.2",
2266 | "postcss": "^8.3.8",
2267 | "resolve": "^1.20.0",
2268 | "rollup": "^2.57.0"
2269 | }
2270 | },
2271 | "vite-plugin-components": {
2272 | "version": "0.13.3",
2273 | "resolved": "https://registry.npmmirror.com/vite-plugin-components/download/vite-plugin-components-0.13.3.tgz",
2274 | "integrity": "sha1-i9oPUI7pAkmgZrpj1ZhXmOXKn+0=",
2275 | "dev": true,
2276 | "requires": {
2277 | "debug": "^4.3.2",
2278 | "fast-glob": "^3.2.7",
2279 | "magic-string": "^0.25.7",
2280 | "minimatch": "^3.0.4"
2281 | }
2282 | },
2283 | "void-elements": {
2284 | "version": "3.1.0",
2285 | "resolved": "https://registry.npm.taobao.org/void-elements/download/void-elements-3.1.0.tgz",
2286 | "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=",
2287 | "dev": true
2288 | },
2289 | "vscode-css-languageservice": {
2290 | "version": "5.1.8",
2291 | "resolved": "https://registry.npmmirror.com/vscode-css-languageservice/download/vscode-css-languageservice-5.1.8.tgz?cache=0&sync_timestamp=1635297350573&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fvscode-css-languageservice%2Fdownload%2Fvscode-css-languageservice-5.1.8.tgz",
2292 | "integrity": "sha1-Nss4l4j/wtXmYw/8hOVe44+KIzg=",
2293 | "dev": true,
2294 | "requires": {
2295 | "vscode-languageserver-textdocument": "^1.0.1",
2296 | "vscode-languageserver-types": "^3.16.0",
2297 | "vscode-nls": "^5.0.0",
2298 | "vscode-uri": "^3.0.2"
2299 | },
2300 | "dependencies": {
2301 | "vscode-languageserver-types": {
2302 | "version": "3.16.0",
2303 | "resolved": "https://registry.npmmirror.com/vscode-languageserver-types/download/vscode-languageserver-types-3.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fvscode-languageserver-types%2Fdownload%2Fvscode-languageserver-types-3.16.0.tgz",
2304 | "integrity": "sha1-7POT/BIexpdLLaPvsxVWRMUU4kc=",
2305 | "dev": true
2306 | }
2307 | }
2308 | },
2309 | "vscode-html-languageservice": {
2310 | "version": "4.1.1",
2311 | "resolved": "https://registry.npmmirror.com/vscode-html-languageservice/download/vscode-html-languageservice-4.1.1.tgz?cache=0&sync_timestamp=1635297350982&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fvscode-html-languageservice%2Fdownload%2Fvscode-html-languageservice-4.1.1.tgz",
2312 | "integrity": "sha1-k3Ocnz0MEsgkm60j9QBYUMKJ7Dg=",
2313 | "dev": true,
2314 | "requires": {
2315 | "vscode-languageserver-textdocument": "^1.0.1",
2316 | "vscode-languageserver-types": "^3.16.0",
2317 | "vscode-nls": "^5.0.0",
2318 | "vscode-uri": "^3.0.2"
2319 | },
2320 | "dependencies": {
2321 | "vscode-languageserver-types": {
2322 | "version": "3.16.0",
2323 | "resolved": "https://registry.npmmirror.com/vscode-languageserver-types/download/vscode-languageserver-types-3.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fvscode-languageserver-types%2Fdownload%2Fvscode-languageserver-types-3.16.0.tgz",
2324 | "integrity": "sha1-7POT/BIexpdLLaPvsxVWRMUU4kc=",
2325 | "dev": true
2326 | }
2327 | }
2328 | },
2329 | "vscode-json-languageservice": {
2330 | "version": "4.1.10",
2331 | "resolved": "https://registry.npmmirror.com/vscode-json-languageservice/download/vscode-json-languageservice-4.1.10.tgz",
2332 | "integrity": "sha512-IHliMEEYSY0tJjJt0ECb8ESx/nRXpoy9kN42WVQXgaqGyizFAf3jibSiezDQTrrY7f3kywXggCU+kkJEM+OLZQ==",
2333 | "dev": true,
2334 | "requires": {
2335 | "jsonc-parser": "^3.0.0",
2336 | "vscode-languageserver-textdocument": "^1.0.1",
2337 | "vscode-languageserver-types": "^3.16.0",
2338 | "vscode-nls": "^5.0.0",
2339 | "vscode-uri": "^3.0.2"
2340 | },
2341 | "dependencies": {
2342 | "jsonc-parser": {
2343 | "version": "3.0.0",
2344 | "resolved": "https://registry.npm.taobao.org/jsonc-parser/download/jsonc-parser-3.0.0.tgz?cache=0&sync_timestamp=1605281904422&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsonc-parser%2Fdownload%2Fjsonc-parser-3.0.0.tgz",
2345 | "integrity": "sha1-q914VwHH5+rKip7IzwcMpRp0WiI=",
2346 | "dev": true
2347 | },
2348 | "vscode-languageserver-types": {
2349 | "version": "3.16.0",
2350 | "resolved": "https://registry.npmmirror.com/vscode-languageserver-types/download/vscode-languageserver-types-3.16.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fvscode-languageserver-types%2Fdownload%2Fvscode-languageserver-types-3.16.0.tgz",
2351 | "integrity": "sha1-7POT/BIexpdLLaPvsxVWRMUU4kc=",
2352 | "dev": true
2353 | }
2354 | }
2355 | },
2356 | "vscode-jsonrpc": {
2357 | "version": "8.0.0-next.3",
2358 | "resolved": "https://registry.npmmirror.com/vscode-jsonrpc/download/vscode-jsonrpc-8.0.0-next.3.tgz",
2359 | "integrity": "sha1-tV7f8OVQsD84BKreRKyiaZryclU=",
2360 | "dev": true
2361 | },
2362 | "vscode-languageserver": {
2363 | "version": "8.0.0-next.3",
2364 | "resolved": "https://registry.npmmirror.com/vscode-languageserver/download/vscode-languageserver-8.0.0-next.3.tgz?cache=0&sync_timestamp=1633678367501&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fvscode-languageserver%2Fdownload%2Fvscode-languageserver-8.0.0-next.3.tgz",
2365 | "integrity": "sha1-NscBpoROwmlQVTnjuEo3aTdgpS8=",
2366 | "dev": true,
2367 | "requires": {
2368 | "vscode-languageserver-protocol": "3.17.0-next.9"
2369 | }
2370 | },
2371 | "vscode-languageserver-protocol": {
2372 | "version": "3.17.0-next.9",
2373 | "resolved": "https://registry.npmmirror.com/vscode-languageserver-protocol/download/vscode-languageserver-protocol-3.17.0-next.9.tgz",
2374 | "integrity": "sha1-D9StQ2EclqzYPY2Zjb52Zo9g5gQ=",
2375 | "dev": true,
2376 | "requires": {
2377 | "vscode-jsonrpc": "8.0.0-next.3",
2378 | "vscode-languageserver-types": "3.17.0-next.4"
2379 | }
2380 | },
2381 | "vscode-languageserver-textdocument": {
2382 | "version": "1.0.2",
2383 | "resolved": "https://registry.npmmirror.com/vscode-languageserver-textdocument/download/vscode-languageserver-textdocument-1.0.2.tgz",
2384 | "integrity": "sha1-L59r1bXrPY4hQkwMNnAJIW8BYjY=",
2385 | "dev": true
2386 | },
2387 | "vscode-languageserver-types": {
2388 | "version": "3.17.0-next.4",
2389 | "resolved": "https://registry.npmmirror.com/vscode-languageserver-types/download/vscode-languageserver-types-3.17.0-next.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fvscode-languageserver-types%2Fdownload%2Fvscode-languageserver-types-3.17.0-next.4.tgz",
2390 | "integrity": "sha1-9niLN17BY9qLOB8vPj9UfLx/vuw=",
2391 | "dev": true
2392 | },
2393 | "vscode-nls": {
2394 | "version": "5.0.0",
2395 | "resolved": "https://registry.npm.taobao.org/vscode-nls/download/vscode-nls-5.0.0.tgz",
2396 | "integrity": "sha1-mfDaC9nqfNpE5WWnTFSx8rwleEA=",
2397 | "dev": true
2398 | },
2399 | "vscode-pug-languageservice": {
2400 | "version": "0.27.24",
2401 | "resolved": "https://registry.npmmirror.com/vscode-pug-languageservice/download/vscode-pug-languageservice-0.27.24.tgz",
2402 | "integrity": "sha1-+oBcTT4z3uNoHmYKB2cTZzjmg3A=",
2403 | "dev": true,
2404 | "requires": {
2405 | "@volar/code-gen": "^0.27.24",
2406 | "@volar/shared": "^0.27.24",
2407 | "@volar/source-map": "^0.27.24",
2408 | "@volar/transforms": "^0.27.24",
2409 | "pug-lexer": "^5.0.1",
2410 | "pug-parser": "^6.0.0",
2411 | "vscode-languageserver": "^8.0.0-next.2"
2412 | }
2413 | },
2414 | "vscode-typescript-languageservice": {
2415 | "version": "0.27.25",
2416 | "resolved": "https://registry.npmmirror.com/vscode-typescript-languageservice/download/vscode-typescript-languageservice-0.27.25.tgz",
2417 | "integrity": "sha1-rNIRcjtgAQjCVRU4i3XVXOFbsFY=",
2418 | "dev": true,
2419 | "requires": {
2420 | "@volar/shared": "^0.27.24",
2421 | "semver": "^7.3.5",
2422 | "upath": "^2.0.1",
2423 | "vscode-languageserver": "^8.0.0-next.2",
2424 | "vscode-languageserver-textdocument": "^1.0.1"
2425 | }
2426 | },
2427 | "vscode-uri": {
2428 | "version": "3.0.2",
2429 | "resolved": "https://registry.npm.taobao.org/vscode-uri/download/vscode-uri-3.0.2.tgz",
2430 | "integrity": "sha1-7P0dBmy470w6II3s26uajCPQVdA=",
2431 | "dev": true
2432 | },
2433 | "vscode-vue-languageservice": {
2434 | "version": "0.27.30",
2435 | "resolved": "https://registry.npmmirror.com/vscode-vue-languageservice/download/vscode-vue-languageservice-0.27.30.tgz",
2436 | "integrity": "sha1-HzKwID3SM1gvdKRXQoUZpjGPA54=",
2437 | "dev": true,
2438 | "requires": {
2439 | "@volar/code-gen": "^0.27.24",
2440 | "@volar/html2pug": "^0.27.13",
2441 | "@volar/shared": "^0.27.24",
2442 | "@volar/source-map": "^0.27.24",
2443 | "@volar/transforms": "^0.27.24",
2444 | "@vscode/emmet-helper": "^2.7.0",
2445 | "@vue/compiler-dom": "^3.2.19",
2446 | "@vue/reactivity": "^3.2.19",
2447 | "@vue/shared": "^3.2.19",
2448 | "request-light": "^0.5.4",
2449 | "upath": "^2.0.1",
2450 | "vscode-css-languageservice": "^5.1.4",
2451 | "vscode-html-languageservice": "^4.0.7",
2452 | "vscode-json-languageservice": "^4.1.7",
2453 | "vscode-languageserver": "^8.0.0-next.2",
2454 | "vscode-languageserver-textdocument": "^1.0.1",
2455 | "vscode-pug-languageservice": "^0.27.24",
2456 | "vscode-typescript-languageservice": "^0.27.25"
2457 | }
2458 | },
2459 | "vue": {
2460 | "version": "3.2.21",
2461 | "resolved": "https://registry.npmmirror.com/vue/download/vue-3.2.21.tgz",
2462 | "integrity": "sha1-VfVmUXLZXPl+gGuarQo3UYC+I6E=",
2463 | "requires": {
2464 | "@vue/compiler-dom": "3.2.21",
2465 | "@vue/compiler-sfc": "3.2.21",
2466 | "@vue/runtime-dom": "3.2.21",
2467 | "@vue/server-renderer": "3.2.21",
2468 | "@vue/shared": "3.2.21"
2469 | }
2470 | },
2471 | "vue-demi": {
2472 | "version": "0.12.1",
2473 | "resolved": "https://registry.npmmirror.com/vue-demi/download/vue-demi-0.12.1.tgz",
2474 | "integrity": "sha1-9+GO++z/0RqwadFHLXoG4xm0F0w="
2475 | },
2476 | "vue-eslint-parser": {
2477 | "version": "8.0.1",
2478 | "resolved": "https://registry.npmmirror.com/vue-eslint-parser/download/vue-eslint-parser-8.0.1.tgz",
2479 | "integrity": "sha1-JeCLIKQUVRUx8+GfmZkC4ez0XxM=",
2480 | "dev": true,
2481 | "requires": {
2482 | "debug": "^4.3.2",
2483 | "eslint-scope": "^6.0.0",
2484 | "eslint-visitor-keys": "^3.0.0",
2485 | "espree": "^9.0.0",
2486 | "esquery": "^1.4.0",
2487 | "lodash": "^4.17.21",
2488 | "semver": "^7.3.5"
2489 | },
2490 | "dependencies": {
2491 | "eslint-scope": {
2492 | "version": "6.0.0",
2493 | "resolved": "https://registry.npmmirror.com/eslint-scope/download/eslint-scope-6.0.0.tgz?cache=0&sync_timestamp=1637466831846&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Feslint-scope%2Fdownload%2Feslint-scope-6.0.0.tgz",
2494 | "integrity": "sha1-nPRbE8Wsjz1MUPRqUSH2Gz4xiXg=",
2495 | "dev": true,
2496 | "requires": {
2497 | "esrecurse": "^4.3.0",
2498 | "estraverse": "^5.2.0"
2499 | }
2500 | }
2501 | }
2502 | },
2503 | "vue-router": {
2504 | "version": "4.0.12",
2505 | "resolved": "https://registry.npmmirror.com/vue-router/download/vue-router-4.0.12.tgz",
2506 | "integrity": "sha1-jceSzd9bsavMOQj5BkE23n4TxGA=",
2507 | "requires": {
2508 | "@vue/devtools-api": "^6.0.0-beta.18"
2509 | }
2510 | },
2511 | "vue-tsc": {
2512 | "version": "0.3.0",
2513 | "resolved": "https://registry.npmmirror.com/vue-tsc/download/vue-tsc-0.3.0.tgz",
2514 | "integrity": "sha1-Ozhyv08dLkQJtXrb2CYDLiU9tAY=",
2515 | "dev": true,
2516 | "requires": {
2517 | "vscode-vue-languageservice": "^0.27.0"
2518 | }
2519 | },
2520 | "vue-types": {
2521 | "version": "3.0.2",
2522 | "resolved": "https://registry.npmmirror.com/vue-types/download/vue-types-3.0.2.tgz",
2523 | "integrity": "sha1-7BbgXUEsA4Ji/B76TOuWR+f7YB0=",
2524 | "requires": {
2525 | "is-plain-object": "3.0.1"
2526 | }
2527 | },
2528 | "vue3-angle": {
2529 | "version": "0.1.6",
2530 | "resolved": "https://registry.npmmirror.com/vue3-angle/download/vue3-angle-0.1.6.tgz",
2531 | "integrity": "sha1-zZns7NsXVUNTfVsFgxk0ciWUnKs="
2532 | },
2533 | "vue3-colorpicker": {
2534 | "version": "2.0.3",
2535 | "resolved": "https://registry.npmmirror.com/vue3-colorpicker/download/vue3-colorpicker-2.0.3.tgz",
2536 | "integrity": "sha512-c2z5FsZANR5V2Dn2KWXLAsRUN8qjqGGaLE5R1EWyLREKkLby5rp3m536ZbcGgd2aSqXsZvbMLiXf/GEjpSzCHQ==",
2537 | "requires": {
2538 | "@aesoper/normal-utils": "^0.1.5",
2539 | "@popperjs/core": "^2.10.1",
2540 | "@vueuse/core": "^6.5.3",
2541 | "gradient-parser": "^1.0.2",
2542 | "lodash-es": "^4.17.21",
2543 | "tinycolor2": "^1.4.2",
2544 | "vue-types": "^4.1.0",
2545 | "vue3-angle": "^0.1.6",
2546 | "vue3-normal-library": "^0.1.6"
2547 | },
2548 | "dependencies": {
2549 | "is-plain-object": {
2550 | "version": "5.0.0",
2551 | "resolved": "https://registry.nlark.com/is-plain-object/download/is-plain-object-5.0.0.tgz",
2552 | "integrity": "sha1-RCf1CrNCnpAl6n1S6QQ6nvQVk0Q="
2553 | },
2554 | "vue-types": {
2555 | "version": "4.1.1",
2556 | "resolved": "https://registry.npmmirror.com/vue-types/download/vue-types-4.1.1.tgz",
2557 | "integrity": "sha1-fXpOSgEkmlG22j+qMBJIwupfW5c=",
2558 | "requires": {
2559 | "is-plain-object": "5.0.0"
2560 | }
2561 | }
2562 | }
2563 | },
2564 | "vue3-normal-library": {
2565 | "version": "0.1.6",
2566 | "resolved": "https://registry.npmmirror.com/vue3-normal-library/download/vue3-normal-library-0.1.6.tgz",
2567 | "integrity": "sha1-+HMfhh4yXr45qz31r5NNdraZj+c=",
2568 | "requires": {
2569 | "lodash-es": "^4.17.21",
2570 | "raf": "^3.4.1",
2571 | "vue": "^3.2.6",
2572 | "vue-types": "^4.1.0"
2573 | },
2574 | "dependencies": {
2575 | "is-plain-object": {
2576 | "version": "5.0.0",
2577 | "resolved": "https://registry.nlark.com/is-plain-object/download/is-plain-object-5.0.0.tgz",
2578 | "integrity": "sha1-RCf1CrNCnpAl6n1S6QQ6nvQVk0Q="
2579 | },
2580 | "vue-types": {
2581 | "version": "4.1.1",
2582 | "resolved": "https://registry.npmmirror.com/vue-types/download/vue-types-4.1.1.tgz",
2583 | "integrity": "sha1-fXpOSgEkmlG22j+qMBJIwupfW5c=",
2584 | "requires": {
2585 | "is-plain-object": "5.0.0"
2586 | }
2587 | }
2588 | }
2589 | },
2590 | "vuedraggable": {
2591 | "version": "4.1.0",
2592 | "resolved": "https://registry.nlark.com/vuedraggable/download/vuedraggable-4.1.0.tgz?cache=0&sync_timestamp=1629673069618&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvuedraggable%2Fdownload%2Fvuedraggable-4.1.0.tgz",
2593 | "integrity": "sha1-7ezmituKTZ4GrM/538kEDmaFInA=",
2594 | "requires": {
2595 | "sortablejs": "1.14.0"
2596 | }
2597 | },
2598 | "vuex": {
2599 | "version": "4.0.2",
2600 | "resolved": "https://registry.nlark.com/vuex/download/vuex-4.0.2.tgz?cache=0&sync_timestamp=1623945218026&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fvuex%2Fdownload%2Fvuex-4.0.2.tgz",
2601 | "integrity": "sha1-+Jbb1b8qDpY/AMZ+m2EN50nMrMk=",
2602 | "requires": {
2603 | "@vue/devtools-api": "^6.0.0-beta.11"
2604 | }
2605 | },
2606 | "warning": {
2607 | "version": "4.0.3",
2608 | "resolved": "https://registry.nlark.com/warning/download/warning-4.0.3.tgz",
2609 | "integrity": "sha1-Fungd+uKhtavfWSqHgX9hbRnjKM=",
2610 | "requires": {
2611 | "loose-envify": "^1.0.0"
2612 | }
2613 | },
2614 | "which": {
2615 | "version": "2.0.2",
2616 | "resolved": "https://registry.nlark.com/which/download/which-2.0.2.tgz",
2617 | "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=",
2618 | "dev": true,
2619 | "requires": {
2620 | "isexe": "^2.0.0"
2621 | }
2622 | },
2623 | "with": {
2624 | "version": "7.0.2",
2625 | "resolved": "https://registry.npm.taobao.org/with/download/with-7.0.2.tgz",
2626 | "integrity": "sha1-zO461ULSVTinp6gKrSErmChJW6w=",
2627 | "dev": true,
2628 | "requires": {
2629 | "@babel/parser": "^7.9.6",
2630 | "@babel/types": "^7.9.6",
2631 | "assert-never": "^1.2.1",
2632 | "babel-walk": "3.0.0-canary-5"
2633 | }
2634 | },
2635 | "word-wrap": {
2636 | "version": "1.2.3",
2637 | "resolved": "https://registry.nlark.com/word-wrap/download/word-wrap-1.2.3.tgz",
2638 | "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=",
2639 | "dev": true
2640 | },
2641 | "wrappy": {
2642 | "version": "1.0.2",
2643 | "resolved": "https://registry.nlark.com/wrappy/download/wrappy-1.0.2.tgz",
2644 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
2645 | "dev": true
2646 | },
2647 | "yallist": {
2648 | "version": "4.0.0",
2649 | "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz",
2650 | "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=",
2651 | "dev": true
2652 | }
2653 | }
2654 | }
2655 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "smart-block",
3 | "version": "0.0.0",
4 | "scripts": {
5 | "dev": "vite",
6 | "build": "vue-tsc --noEmit && vite build",
7 | "serve": "vite preview"
8 | },
9 | "dependencies": {
10 | "@ant-design/icons-vue": "^6.0.1",
11 | "@rollup/plugin-alias": "^3.1.8",
12 | "@vue/babel-helper-vue-jsx-merge-props": "^1.2.1",
13 | "@vue/babel-preset-jsx": "^1.2.4",
14 | "ant-design-vue": "^2.2.8",
15 | "lodash": "^4.17.21",
16 | "swiper": "^7.3.1",
17 | "vue": "^3.2.16",
18 | "vue-router": "^4.0.12",
19 | "vue3-colorpicker": "^2.0.3",
20 | "vuedraggable": "^4.1.0",
21 | "vuex": "^4.0.2"
22 | },
23 | "devDependencies": {
24 | "@types/node": "^16.11.7",
25 | "@vitejs/plugin-vue": "^1.9.3",
26 | "eslint": "^8.3.0",
27 | "eslint-plugin-vue": "^8.1.1",
28 | "less": "^4.1.2",
29 | "typescript": "^4.4.3",
30 | "vite": "^2.6.4",
31 | "vite-plugin-components": "^0.13.3",
32 | "vue-tsc": "^0.3.0"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyzenPan/smart-block-editor/30bc6d31aca5ab34d11b4fdee3ff73e7f080c54c/public/favicon.ico
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RyzenPan/smart-block-editor/30bc6d31aca5ab34d11b4fdee3ff73e7f080c54c/src/assets/logo.png
--------------------------------------------------------------------------------
/src/components/ColorPicker.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
26 |
27 |
--------------------------------------------------------------------------------
/src/components/DynamicInput.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
13 | 增加
14 |
15 |
16 |
17 |
18 |
67 |
84 |
--------------------------------------------------------------------------------
/src/components/EmptyComp.vue:
--------------------------------------------------------------------------------
1 |
2 | - {{ props.compName }} -
3 |
4 |
5 |
11 |
12 |
--------------------------------------------------------------------------------
/src/components/Loading.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
17 |
18 |
19 |
20 |
22 |
23 |
--------------------------------------------------------------------------------
/src/components/NavigationBar.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
![]()
4 |
{{navigationData.title || '标题'}}
5 |
6 |
7 |
8 |
42 |
43 |
--------------------------------------------------------------------------------
/src/core/DynamicEngine.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/src/core/renderer/FormRender.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | {{formItem.label ? optionsItem[formItem.label] : optionsItem[formItem.dataIndex]}}
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | {{op[formItem.label]}}
26 |
27 |
28 |
29 |
30 |
31 | {{op[formItem.label]}}
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | 提交
43 |
44 |
45 |
46 |
80 |
81 |
86 |
--------------------------------------------------------------------------------
/src/core/renderer/ViewRender.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
15 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
53 |
54 |
102 |
--------------------------------------------------------------------------------
/src/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | declare module '*.vue' {
4 | import { DefineComponent } from 'vue'
5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
6 | const component: DefineComponent<{}, {}, any>
7 | export default component
8 | }
9 |
--------------------------------------------------------------------------------
/src/index.less:
--------------------------------------------------------------------------------
1 | .upShowAnimation {
2 | animation: upShow 0.4s ease-in-out;
3 | @keyframes upShow {
4 | 0% {
5 | opacity: 0;
6 | transform: scale(0.6);
7 | }
8 | 100% {
9 | opacity: 1;
10 | transform: scale(1);
11 | }
12 | }
13 | }
14 |
15 | .leftShowAnimation {
16 | animation: leftShow 0.4s ease-in-out;
17 | @keyframes leftShow {
18 | 0% {
19 | opacity: 0;
20 | transform: translateX(-350px);
21 | }
22 | 100% {
23 | opacity: 1;
24 | transform: translateX(0);
25 | }
26 | }
27 | }
28 |
29 | .topShowAnimation {
30 | animation: topShow 0.4s ease-in-out;
31 | @keyframes topShow {
32 | 0% {
33 | opacity: 0;
34 | transform: translateY(-56px);
35 | }
36 | 100% {
37 | opacity: 1;
38 | transform: translateY(0);
39 | }
40 | }
41 | }
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 | import router from './router'
4 | import store from './store'
5 | import Antd from 'ant-design-vue';
6 | import 'ant-design-vue/dist/antd.less';
7 | import './index.less'
8 | import './reset.css'
9 |
10 | createApp(App).use(store).use(router).use(Antd).mount('#app')
11 |
--------------------------------------------------------------------------------
/src/materials/base/Button/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
34 |
35 |
41 |
--------------------------------------------------------------------------------
/src/materials/base/Button/schema.ts:
--------------------------------------------------------------------------------
1 | import template from './template'
2 | import { uuid } from '../../../utlis/index'
3 |
4 | const Button = {
5 | config: {
6 | ...template,
7 | id: uuid(6, 10),
8 | data: {
9 | title: '',
10 | buttonType: 'primary',
11 | size: 'middle',
12 | linkUrl: '',
13 | space: '0'
14 | },
15 | },
16 | editData: [
17 | {
18 | type: 'input',
19 | dataIndex: 'title',
20 | title: '按钮内容',
21 | },
22 | {
23 | type: 'switch',
24 | dataIndex: 'isDanger',
25 | title: '危险按钮',
26 | },
27 | {
28 | type: 'radio',
29 | dataIndex: 'buttonType',
30 | title: '按钮类型',
31 | label: 'value',
32 | options: [
33 | {
34 | value: '主按钮',
35 | buttonType: 'primary'
36 | },
37 | {
38 | value: '次按钮',
39 | buttonType: ''
40 | },
41 | {
42 | value: '虚线按钮',
43 | buttonType: 'dashed'
44 | },
45 | {
46 | value: '文本按钮',
47 | buttonType: 'text'
48 | },
49 | {
50 | value: '链接按钮',
51 | buttonType: 'link'
52 | },
53 | ],
54 | },
55 | {
56 | type: 'radio',
57 | dataIndex: 'size',
58 | title: '按钮大小',
59 | label: 'value',
60 | options: [
61 | {
62 | value: '大',
63 | size: 'large'
64 | },
65 | {
66 | value: '中',
67 | size: 'middle'
68 | },
69 | {
70 | value: '小',
71 | size: 'small'
72 | },
73 | ],
74 | },
75 | {
76 | type: 'input',
77 | dataIndex: 'linkUrl',
78 | title: '跳转地址',
79 | },
80 | {
81 | type: 'input',
82 | dataIndex: 'space',
83 | title: '内边距',
84 | placeholder: '可用空格隔开表示上下和左右边距'
85 | },
86 | ],
87 | }
88 |
89 | export default Button
90 |
--------------------------------------------------------------------------------
/src/materials/base/Button/template.ts:
--------------------------------------------------------------------------------
1 | const template = {
2 | type: 'Button',
3 | displayName: '按钮',
4 | };
5 | export default template;
6 |
--------------------------------------------------------------------------------
/src/materials/base/Coupon/components/Coupon1/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | ¥
7 | {{item.amount}}
8 |
9 |
10 |
使用门槛
11 |
{{item.rangeExtInfo || '优惠券使用范围'}}
12 |
13 |
14 |
15 | 已领取
16 |
17 |
18 | {{item.showType === 0 ? '立即领取' : '已抢光'}}
19 |
20 |
21 |
22 |
23 |
24 |
44 |
45 |
--------------------------------------------------------------------------------
/src/materials/base/Coupon/components/Coupon2/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | ¥
7 | {{item.amount}}
8 |
9 |
10 |
使用门槛
11 |
{{item.rangeExtInfo || '优惠券使用范围'}}
12 |
13 |
14 |
15 | 已领取
16 |
17 |
18 | {{item.showType === 0 ? '立即领取' : '已抢光'}}
19 |
20 |
21 |
22 |
23 |
24 |
44 |
45 |
--------------------------------------------------------------------------------
/src/materials/base/Coupon/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
73 |
74 |
76 |
--------------------------------------------------------------------------------
/src/materials/base/Coupon/schema.ts:
--------------------------------------------------------------------------------
1 | import template from './template'
2 | import { uuid } from '../../../utlis/index'
3 |
4 | const Coupon = {
5 | config: {
6 | ...template,
7 | id: uuid(6, 10),
8 | data: {
9 | column: 1,
10 | couponBgMode: 0,
11 | },
12 | },
13 | editData: [
14 | {
15 | type: 'radio',
16 | dataIndex: 'column',
17 | title: '优惠券样式',
18 | label: 'value',
19 | options: [
20 | {
21 | value: '竖排',
22 | column: 1
23 | },
24 | {
25 | value: '横排2',
26 | column: 2
27 | },
28 | ],
29 | },
30 | {
31 | type: 'radio',
32 | dataIndex: 'couponBgMode',
33 | title: '预置背景',
34 | label: 'value',
35 | options: [
36 | {
37 | value: '预设1',
38 | couponBgMode: 0
39 | },
40 | {
41 | value: '预设2',
42 | couponBgMode: 1
43 | },
44 | ],
45 | },
46 | {
47 | type: 'switch',
48 | dataIndex: 'isMock',
49 | title: '模拟数据',
50 | },
51 | ],
52 | }
53 |
54 | export default Coupon
55 |
--------------------------------------------------------------------------------
/src/materials/base/Coupon/template.ts:
--------------------------------------------------------------------------------
1 | const template = {
2 | type: 'Coupon',
3 | displayName: '优惠券',
4 | };
5 | export default template;
6 |
--------------------------------------------------------------------------------
/src/materials/base/ImageRange/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
![]()
11 |
12 |
13 |
14 |
15 |
40 |
41 |
49 |
--------------------------------------------------------------------------------
/src/materials/base/ImageRange/schema.ts:
--------------------------------------------------------------------------------
1 | import template from './template'
2 | import { uuid } from '../../../utlis/index'
3 |
4 | const ImageRange = {
5 | config: {
6 | ...template,
7 | id: uuid(6, 10),
8 | data: {
9 | imageSrc: '',
10 | linkUrl: '',
11 | },
12 | },
13 | editData: [
14 | {
15 | type: 'input',
16 | dataIndex: 'imageSrc',
17 | title: '图片路径',
18 | },
19 | {
20 | type: 'input',
21 | dataIndex: 'linkUrl',
22 | title: '跳转地址',
23 | },
24 | ],
25 | }
26 |
27 | export default ImageRange
28 |
--------------------------------------------------------------------------------
/src/materials/base/ImageRange/template.ts:
--------------------------------------------------------------------------------
1 | const template = {
2 | type: 'ImageRange',
3 | displayName: '图片',
4 | };
5 | export default template;
6 |
--------------------------------------------------------------------------------
/src/materials/base/Swiper/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
46 |
47 |
56 |
--------------------------------------------------------------------------------
/src/materials/base/Swiper/schema.ts:
--------------------------------------------------------------------------------
1 | import template from './template'
2 | import { uuid } from '../../../utlis/index'
3 |
4 | const Swiper = {
5 | config: {
6 | ...template,
7 | id: uuid(6, 10),
8 | data: {
9 | imageSrcs: [],
10 | isAutoplay: false,
11 | },
12 | },
13 | editData: [
14 | {
15 | type: 'dynamicInput',
16 | dataIndex: 'imageSrcs',
17 | title: '轮播图片',
18 | },
19 | {
20 | type: 'switch',
21 | dataIndex: 'isAutoplay',
22 | title: '自动播放',
23 | },
24 | ],
25 | }
26 |
27 | export default Swiper
28 |
--------------------------------------------------------------------------------
/src/materials/base/Swiper/template.ts:
--------------------------------------------------------------------------------
1 | const template = {
2 | type: 'Swiper',
3 | displayName: '轮播',
4 | };
5 | export default template;
6 |
--------------------------------------------------------------------------------
/src/materials/base/Text/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{{ textData.title }}
4 |
5 |
6 |
7 |
8 |
9 |
27 |
28 |
35 |
--------------------------------------------------------------------------------
/src/materials/base/Text/schema.ts:
--------------------------------------------------------------------------------
1 | import template from './template'
2 | import { uuid } from '../../../utlis/index'
3 |
4 | const Text = {
5 | config: {
6 | ...template,
7 | id: uuid(6, 10),
8 | data: {
9 | title: '',
10 | textColor: '#000',
11 | fontSize: '16',
12 | textAlign: 'center',
13 | lineHeight: '',
14 | fontWeight: 'normal',
15 | bgColor: '#FFF',
16 | bgRadius: 0,
17 | space: '0',
18 | startTime: '',
19 | endTime: ''
20 | },
21 | },
22 | editData: [
23 | {
24 | type: 'input',
25 | dataIndex: 'title',
26 | title: '文字',
27 | },
28 | {
29 | type: 'colorPicker',
30 | dataIndex: 'textColor',
31 | title: '文字颜色',
32 | },
33 | {
34 | type: 'input',
35 | dataIndex: 'fontSize',
36 | title: '字体大小',
37 | },
38 | {
39 | type: 'radio',
40 | dataIndex: 'textAlign',
41 | title: '对齐方式',
42 | label: 'value',
43 | options: [
44 | {
45 | value: '居左',
46 | textAlign: 'left'
47 | },
48 | {
49 | value: '居中',
50 | textAlign: 'center'
51 | },
52 | {
53 | value: '居右',
54 | textAlign: 'right'
55 | }
56 | ],
57 | },
58 | {
59 | type: 'input',
60 | dataIndex: 'lineHeight',
61 | title: '行高',
62 | },
63 | {
64 | type: 'radio',
65 | dataIndex: 'fontWeight',
66 | title: '文字粗细',
67 | label: 'value',
68 | options: [
69 | {
70 | value: '细',
71 | fontWeight: 'lighter'
72 | },
73 | {
74 | value: '正常',
75 | fontWeight: 'normal'
76 | },
77 | {
78 | value: '粗',
79 | fontWeight: 'bold'
80 | }
81 | ],
82 | },
83 | {
84 | type: 'colorPicker',
85 | dataIndex: 'bgColor',
86 | title: '背景颜色',
87 | },
88 | {
89 | type: 'input',
90 | dataIndex: 'bgRadius',
91 | title: '背景圆角',
92 | },
93 | {
94 | type: 'input',
95 | dataIndex: 'space',
96 | title: '内边距',
97 | },
98 | {
99 | title: '开始时间',
100 | type: 'datetime',
101 | dataIndex: 'startTime',
102 | },
103 | {
104 | title: '结束时间',
105 | type: 'datetime',
106 | dataIndex: 'endTime',
107 | },
108 | ],
109 | // 支持的表单配置
110 | // editData: [
111 | // {
112 | // type: 'input',
113 | // dataIndex: 'title',
114 | // title: '文字标题',
115 | // },
116 | // {
117 | // type: 'select',
118 | // dataIndex: 'jumpType',
119 | // title: '跳转类型',
120 | // label: 'value',
121 | // options: [
122 | // {
123 | // value: '小程序',
124 | // jumpType: '1'
125 | // },
126 | // {
127 | // value: 'APP',
128 | // jumpType: '2'
129 | // }
130 | // ],
131 | // },
132 | // {
133 | // title: '创建时间',
134 | // type: 'datetime',
135 | // dataIndex: 'startTime',
136 | // },
137 | // {
138 | // title: '开关',
139 | // type: 'switch',
140 | // dataIndex: 'isOpen',
141 | // },
142 | // {
143 | // type: 'checkbox',
144 | // dataIndex: 'checkboxKey',
145 | // title: '复选',
146 | // label: 'value',
147 | // options: [
148 | // {
149 | // value: '小程序',
150 | // checkboxKey: '1'
151 | // },
152 | // {
153 | // value: 'APP',
154 | // checkboxKey: '2'
155 | // }
156 | // ],
157 | // },
158 | // {
159 | // title: '单选',
160 | // type: 'radio',
161 | // dataIndex: 'arrivalType',
162 | // label: 'value',
163 | // options: [
164 | // {
165 | // value: '选项1',
166 | // arrivalType: 0,
167 | // },
168 | // {
169 | // arrivalType: 1,
170 | // value: '选项2',
171 | // },
172 | // ],
173 | // },
174 | // ],
175 | }
176 |
177 | export default Text
178 |
--------------------------------------------------------------------------------
/src/materials/base/Text/template.ts:
--------------------------------------------------------------------------------
1 | const template = {
2 | type: 'Text',
3 | displayName: '文字',
4 | };
5 | export default template;
6 |
--------------------------------------------------------------------------------
/src/materials/base/schema.ts:
--------------------------------------------------------------------------------
1 | import ImageRange from './ImageRange/schema'
2 | import Text from './Text/schema'
3 | import Swiper from './Swiper/schema'
4 | import Button from './Button/schema'
5 | import Coupon from './Coupon/schema'
6 |
7 | export const BasicSchema: any = {
8 | ImageRange,
9 | Text,
10 | Swiper,
11 | Button,
12 | Coupon
13 | }
14 |
--------------------------------------------------------------------------------
/src/materials/base/template.ts:
--------------------------------------------------------------------------------
1 | import ImageRange from './ImageRange/template';
2 | import Text from './Text/template';
3 | import Swiper from './Swiper/template';
4 | import Button from './Button/template';
5 | import Coupon from './Coupon/template';
6 |
7 | const basicTemplate = [ImageRange, Text, Swiper, Button, Coupon];
8 | const BasicTemplate = basicTemplate.map((v) => {
9 | return { ...v, category: 'base' };
10 | });
11 |
12 | export default BasicTemplate;
--------------------------------------------------------------------------------
/src/materials/schema.ts:
--------------------------------------------------------------------------------
1 | import { BasicSchema } from './base/schema';
2 |
3 | const schema: any = {
4 | ...BasicSchema,
5 | };
6 |
7 | export default schema;
8 |
--------------------------------------------------------------------------------
/src/models/db.d.ts:
--------------------------------------------------------------------------------
1 | export enum DB_NAME_ENUM {
2 | PAGE_LIST = 'page_list',
3 | CDN = 'cdn_cos'
4 | }
5 |
6 | export type TGetPageListParams = {
7 | pageId: string;
8 | pageName: string;
9 | }
10 |
11 | export type TGetPageInfoParams = {
12 | pageId: string;
13 | }
14 |
15 | export type TGetPageJsonParams = {
16 | pageUrl: string;
17 | }
18 |
19 | export type TSavePageParams = {
20 | pageData: any;
21 | pageJson: any[];
22 | }
--------------------------------------------------------------------------------
/src/models/db.ts:
--------------------------------------------------------------------------------
1 | import { uuid } from '../utlis';
2 | import { DB_NAME_ENUM, TGetPageListParams, TGetPageInfoParams, TGetPageJsonParams, TSavePageParams } from './db.d';
3 |
4 | // 写入
5 | function setData(key: string, val: any) {
6 | localStorage.setItem(key, JSON.stringify(val));
7 | }
8 |
9 | // 读取
10 | function getData(key: string) {
11 | return JSON.parse(localStorage.getItem(key) || '[]');
12 | }
13 |
14 | // 初始化数据库
15 | export function initDBStroage() {
16 | if (!localStorage.getItem(DB_NAME_ENUM.PAGE_LIST)) {
17 | localStorage.setItem(DB_NAME_ENUM.PAGE_LIST, '[]');
18 | }
19 | if (!localStorage.getItem(DB_NAME_ENUM.CDN)) {
20 | localStorage.setItem(DB_NAME_ENUM.CDN, '{}');
21 | }
22 | }
23 |
24 | // 获取页面列表
25 | export function getPageList({ pageId, pageName }: TGetPageListParams) {
26 | const pageList = getData(DB_NAME_ENUM.PAGE_LIST) || [];
27 | if (pageId) {
28 | const target = pageList.find((item: any) => item.pageId === pageId);
29 | if (target) {
30 | return [target];
31 | }
32 | }
33 | if (pageName) {
34 | return pageList.filter((item: any) => !item.pageName.includes(pageName));
35 | }
36 | return pageList;
37 | }
38 |
39 | // 获取页面信息
40 | export function getPageInfo({ pageId }: TGetPageInfoParams) {
41 | const pageList = getData(DB_NAME_ENUM.PAGE_LIST) || [];
42 | if (pageId) {
43 | return pageList.find((item: any) => item.pageId === pageId) || {};
44 | }
45 | return {};
46 | }
47 |
48 | // 获取JSON数据
49 | export function getPageJson({ pageUrl }: TGetPageJsonParams) {
50 | const cdnCos = getData(DB_NAME_ENUM.CDN) || {};
51 | if (pageUrl) {
52 | const keyName = Object.keys(cdnCos).find((key) => key === pageUrl);
53 | if (keyName) {
54 | return cdnCos[keyName];
55 | }
56 | }
57 | return {};
58 | }
59 |
60 | // 保存页面
61 | export function savePage({ pageData, pageJson }: TSavePageParams) {
62 | const pageList = getData(DB_NAME_ENUM.PAGE_LIST) || [];
63 | const cdnCos = getData(DB_NAME_ENUM.CDN) || {}; const newPageId = uuid(8, 12);
64 | if (pageData.pageId) {
65 | const target = pageList.find((item: any) => item.pageId === pageData.pageId) || {};
66 | if (target) {
67 | cdnCos[target.saveUrl] = pageJson;
68 | }
69 | } else {
70 | const newPageUrl = uuid(8, 20);
71 | pageList.push({
72 | ...pageData,
73 | pageId: newPageId,
74 | saveUrl: newPageUrl
75 | });
76 | cdnCos[newPageUrl] = pageJson;
77 | }
78 | setData(DB_NAME_ENUM.PAGE_LIST, pageList);
79 | setData(DB_NAME_ENUM.CDN, cdnCos);
80 |
81 | return pageData.pageId || newPageId;
82 | }
83 |
84 | // 发布页面
85 | export function publishPage({ pageData, pageJson }: TSavePageParams) {
86 | const pageList = getData(DB_NAME_ENUM.PAGE_LIST) || [];
87 | const cdnCos = getData(DB_NAME_ENUM.CDN) || {};
88 |
89 | if (pageData.pageId) {
90 | const target = pageList.find((item: any) => item.pageId === pageData.pageId) || {};
91 | if (target) {
92 | cdnCos[target.publishUrl] = pageJson;
93 | }
94 | } else {
95 | const newPageId = uuid(8, 12);
96 | const newPageUrl = uuid(8, 20);
97 | pageList.push({
98 | ...pageData,
99 | pageId: newPageId,
100 | publishUrl: newPageUrl,
101 | saveUrl: newPageUrl
102 | });
103 | cdnCos[newPageUrl] = pageJson;
104 | }
105 |
106 | setData(DB_NAME_ENUM.PAGE_LIST, pageList);
107 | setData(DB_NAME_ENUM.CDN, cdnCos);
108 |
109 | return true;
110 | }
--------------------------------------------------------------------------------
/src/pages/Editor/Container.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
18 |
19 |
--------------------------------------------------------------------------------
/src/pages/Editor/components/Header/components/SaveOrPubilcBtn/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
清空
4 |
预览
5 |
保存
6 |
发布
7 |
8 |
9 |
10 |
11 |
56 |
57 |
65 |
--------------------------------------------------------------------------------
/src/pages/Editor/components/Header/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
19 |
20 |
82 |
--------------------------------------------------------------------------------
/src/pages/Editor/components/Left/components/CompList/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 组件列表
5 | {{list.length}}
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
{{ element.displayName }}
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
64 |
65 |
158 |
--------------------------------------------------------------------------------
/src/pages/Editor/components/Left/components/CompMap/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
15 |
16 |
17 |
23 |
24 |
--------------------------------------------------------------------------------
/src/pages/Editor/components/Left/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
20 |
21 |
37 |
--------------------------------------------------------------------------------
/src/pages/Editor/components/Middle/components/CompControl.vue:
--------------------------------------------------------------------------------
1 |
2 |
32 |
33 |
34 |
76 |
77 |
--------------------------------------------------------------------------------
/src/pages/Editor/components/Middle/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
15 |
16 |
30 |
--------------------------------------------------------------------------------
/src/pages/Editor/components/Right/components/SettingDrawer.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
55 |
56 |
--------------------------------------------------------------------------------
/src/pages/Editor/components/Right/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
属性面板
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
23 |
24 |
25 |
26 |
27 |
59 |
60 |
91 |
--------------------------------------------------------------------------------
/src/pages/Editor/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/src/pages/Preview/index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
16 |
17 |
--------------------------------------------------------------------------------
/src/reset.css:
--------------------------------------------------------------------------------
1 | @charset "utf-8";
2 | html{background-color:#fff;color:#000;font-size:12px}
3 | body,ul,ol,dl,dd,h1,h2,h3,h4,h5,h6,figure,form,fieldset,legend,input,textarea,button,p,blockquote,th,td,pre,xmp{margin:0;padding:0}
4 | h1,h2,h3,h4,h5,h6,small,big,input,textarea,button,select{font-size:100%}
5 | h1,h2,h3,h4,h5,h6,b,strong{font-weight:normal}
6 | address,cite,dfn,em,i,optgroup,var{font-style:normal}
7 | table{border-collapse:collapse;border-spacing:0;text-align:left}
8 | caption,th{text-align:inherit}
9 | ul,ol,menu{list-style:none}
10 | fieldset,img{border:0}
11 | img,object,input,textarea,button,select{vertical-align:middle}
12 | article,aside,footer,header,section,nav,figure,figcaption,hgroup,details,menu{display:block}
13 | audio,canvas,video{display:inline-block;*display:inline;*zoom:1}
14 | blockquote:before,blockquote:after,q:before,q:after{content:"\0020"}
15 | textarea{overflow:auto;resize:vertical}
16 | input,textarea,button,select,a{outline:0 none;border: none;}
17 | button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}
18 | mark{background-color:transparent}
19 | a,ins,s,u,del{text-decoration:none}
20 | sup,sub{vertical-align:baseline}
21 | html {overflow-x: hidden;height: 100%;font-size: 50px;-webkit-tap-highlight-color: transparent;}
22 | body {color: #333;font-size: .28em;line-height: 1;-webkit-text-size-adjust: none;}
23 | hr {height: .02rem;margin: .1rem 0;border: medium none;border-top: .02rem solid #cacaca;}
24 | a {color: #25a4bb;text-decoration: none;}
--------------------------------------------------------------------------------
/src/router/index.ts:
--------------------------------------------------------------------------------
1 | import { createRouter, createWebHistory } from 'vue-router'
2 | import Editor from '../pages/Editor/index.vue'
3 |
4 | const routes = [
5 | {
6 | path: '/',
7 | redirect: '/editor',
8 | },
9 | {
10 | path: '/editor',
11 | name: 'Editor',
12 | meta: {
13 | title: '页面编辑器',
14 | },
15 | component: Editor,
16 | },
17 | {
18 | path: '/preview',
19 | name: 'Preview',
20 | meta: {
21 | title: '预览',
22 | },
23 | component: () => import('../pages/Preview/index.vue'),
24 | },
25 | ]
26 |
27 | const router = createRouter({
28 | history: createWebHistory(''),
29 | routes,
30 | })
31 |
32 | router.beforeEach((to, from, next) => {
33 | document.title = `${to.meta.title} | 智搭`
34 | next()
35 | })
36 |
37 | export default router
38 |
--------------------------------------------------------------------------------
/src/store/index.ts:
--------------------------------------------------------------------------------
1 | import _ from 'lodash'
2 | import { createStore } from 'vuex'
3 | import { TNewData, TPageData } from './typing'
4 | import schemaMap from '../materials/schema'
5 | import { uuid } from '../utlis'
6 | import { message } from 'ant-design-vue'
7 |
8 | const getPointData = () => {
9 | return JSON.parse(
10 | localStorage.getItem('comp_list') || '[]'
11 | )
12 | }
13 |
14 | const setPointData = (data: TNewData[]) => {
15 | localStorage.setItem('comp_list', JSON.stringify(data))
16 | }
17 |
18 | const getPageInfo = () => {
19 | const pageInfo = JSON.parse(
20 | localStorage.getItem('page_info') || '[]'
21 | )
22 | if (Object.keys(pageInfo).length) {
23 | return pageInfo
24 | } else {
25 | return {
26 | naviBgColor: '#fff',
27 | naviBarTextStyle: 'black',
28 | title: '标题',
29 | }
30 | }
31 | }
32 |
33 | const setPageInfo = (data: TPageData) => {
34 | localStorage.setItem('page_info', JSON.stringify(data))
35 | }
36 |
37 | export default createStore({
38 | state: {
39 | componentArray: getPointData(),
40 | currentCompontent: {} as TNewData | {},
41 | pageData: getPageInfo() as TPageData | {},
42 | settingDrawerVisible: false,
43 | },
44 | mutations: {
45 | // 新增组件
46 | addPointData(state, item: TNewData) {
47 | const commonConfig = _.cloneDeep(schemaMap[item.type]?.config)
48 | commonConfig.id = uuid(6, 10)
49 | state.componentArray.push(commonConfig)
50 | setPointData(state.componentArray)
51 | state.currentCompontent = commonConfig;
52 | message.success(`新增${commonConfig.displayName}组件成功`);
53 | },
54 | // 更新画板组件列表
55 | setPointData(state, newCompArray) {
56 | state.componentArray = newCompArray
57 | setPointData(newCompArray)
58 | },
59 | // 清除所有画板数据
60 | clearPointData(state) {
61 | state.componentArray = [];
62 | setPointData(state.componentArray)
63 | state.currentCompontent = {};
64 | message.success(`清除成功`);
65 | },
66 | // 选中当前组件
67 | modCurrPointData(state, currentId) {
68 | if (!currentId) return;
69 | const currentItem = state.componentArray.find(
70 | (i: TNewData) => i.id === currentId
71 | );
72 | state.currentCompontent = currentItem;
73 | },
74 | // 更新选中的组件的配置信息
75 | updateCurrPointData(state: any, data) {
76 | if (!data) return;
77 | const currentIndex = state.componentArray.findIndex(
78 | (i: TNewData) => i.id === state.currentCompontent.id
79 | );
80 | const componentArray = _.cloneDeep(state.componentArray);
81 | componentArray[currentIndex].data = data;
82 | state.componentArray = componentArray;
83 | setPointData(componentArray)
84 | },
85 | // 清除选中的当前组件
86 | clearCurrPointData(state) {
87 | state.currentCompontent = {};
88 | },
89 | // 复制组件
90 | copyPointData(state, newItem) {
91 | const currentIndex = state.componentArray.findIndex((i: TNewData) => i.id === newItem.id);
92 | state.componentArray.splice(currentIndex, 0, { ...newItem, id: uuid(6, 10) });
93 | setPointData(state.componentArray);
94 | message.success(`复制成功`);
95 | },
96 | // 删除组件
97 | delPointData(state, id) {
98 | const currentIndex = state.componentArray.findIndex((i: TNewData) => i.id === id)
99 | state.componentArray.splice(currentIndex, 1)
100 | setPointData(state.componentArray)
101 | state.currentCompontent = {}
102 | message.success(`删除成功`);
103 | },
104 | // 调整组件上下顺序
105 | upDownComp(state, { id, type }) {
106 | const currentIndex = state.componentArray.findIndex((i: TNewData) => i.id === id)
107 |
108 | if (type === 'up' && currentIndex > 0) {
109 | upDownHandle(state.componentArray, currentIndex, type);
110 | } else if (type === 'down' && currentIndex < state.componentArray.length - 1) {
111 | upDownHandle(state.componentArray, currentIndex, type);
112 | }
113 |
114 | // 处理调整上下组件功能函数
115 | function upDownHandle(list: TNewData[], index: number, type: string) {
116 | const currItem = list.splice(index, 1);
117 | const sourceIndex = type === 'down' ? index + 1 : index - 1;
118 | list.splice(sourceIndex, 0, currItem[0]);
119 | state.currentCompontent = currItem[0]
120 | setPointData(state.componentArray)
121 | }
122 | },
123 | // 控制设置抽屉显示隐藏
124 | updateSettingDrawerVisible(state, flag) {
125 | state.settingDrawerVisible = flag;
126 | },
127 | // 更新页面设置数据
128 | updatePageData(state, data: any) {
129 | state.pageData = data;
130 | setPageInfo(data)
131 | },
132 | },
133 | actions: {},
134 | modules: {},
135 | })
136 |
--------------------------------------------------------------------------------
/src/store/typing.ts:
--------------------------------------------------------------------------------
1 | export type TNewData = {
2 | data: any;
3 | displayName: string;
4 | id: string;
5 | type: string;
6 | }
7 |
8 | export type TPageData = {
9 | title: string;
10 | naviBarTextStyle: string;
11 | naviBgColor: string;
12 | }
--------------------------------------------------------------------------------
/src/utlis/index.ts:
--------------------------------------------------------------------------------
1 |
2 | // 生成uuid
3 | export function uuid(len: number, radix: number) {
4 | const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
5 | // eslint-disable-next-line @typescript-eslint/no-shadow
6 | const uuid = [];
7 | let i;
8 | radix = radix || chars.length;
9 |
10 | if (len) {
11 | for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)];
12 | } else {
13 | let r;
14 | uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
15 | uuid[14] = '4';
16 |
17 | for (i = 0; i < 36; i++) {
18 | if (!uuid[i]) {
19 | // eslint-disable-next-line no-bitwise
20 | r = 0 | (Math.random() * 16);
21 | // eslint-disable-next-line no-bitwise
22 | uuid[i] = chars[i === 19 ? (r & 0x3) | 0x8 : r];
23 | }
24 | }
25 | }
26 |
27 | return uuid.join('');
28 | }
29 |
30 | // 是否处在编辑器中
31 | export const isEditorMode = () => {
32 | const query = window?.location?.href;
33 | if (typeof query === 'string' && query.indexOf('editor') !== -1) {
34 | return true;
35 | }
36 | return false;
37 | };
38 |
39 | // 转换内联样式像素
40 | const vw = window.innerWidth;
41 | export const pxTransform = (size: number, designWidth = 375) => {
42 | const multiply = designWidth / vw;
43 | return isEditorMode() ? size : `${(size / multiply).toFixed(2)}`;
44 | };
45 |
46 | // 获取用户自定义样式
47 | export const getCustomStyle = (data: any) => {
48 | let customStyleStr = ''
49 | Object.keys(data).forEach((key: string) => {
50 | const value = data[key];
51 | switch (key) {
52 | case 'textColor':
53 | customStyleStr += `color: ${value};`;
54 | break;
55 | case 'fontSize':
56 | customStyleStr += `font-size: ${pxTransform(value)}px;`;
57 | break;
58 | case 'textAlign':
59 | customStyleStr += `text-align: ${value};`;
60 | break;
61 | case 'lineHeight':
62 | customStyleStr += value > 0 ? `line-height: ${pxTransform(value)}px;` : '';
63 | break;
64 | case 'fontWeight':
65 | customStyleStr += `font-weight: ${value};`;
66 | break;
67 | case 'bgColor':
68 | customStyleStr += `background: ${value};`;
69 | break;
70 | case 'bgRadius':
71 | customStyleStr += `border-radius: ${value}px;`;
72 | break;
73 | case 'space':
74 | const valueArr = value.split(' ');
75 | customStyleStr += valueArr.length >= 2 ? `padding: ${valueArr[0]}px ${valueArr[1]}px;` : `padding: ${valueArr[0]}px;`;
76 | break;
77 | default:
78 | break;
79 | }
80 | })
81 | return customStyleStr;
82 | }
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "esnext",
4 | "useDefineForClassFields": true,
5 | "module": "esnext",
6 | "moduleResolution": "node",
7 | "strict": true,
8 | "jsx": "preserve",
9 | "sourceMap": true,
10 | "resolveJsonModule": true,
11 | "esModuleInterop": true,
12 | "lib": ["esnext", "dom"]
13 | },
14 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
15 | }
16 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import vue from '@vitejs/plugin-vue'
3 | import ViteComponents, { AntDesignVueResolver } from 'vite-plugin-components'
4 | const path = require('path');
5 |
6 | // https://vitejs.dev/config/
7 | export default defineConfig({
8 | base: 'http://106.53.240.107/',
9 | plugins: [
10 | vue(),
11 | ViteComponents({
12 | customComponentResolvers: [AntDesignVueResolver()],
13 | }),
14 | ],
15 | resolve: {
16 | alias: {
17 | '@': path.resolve(__dirname, './src'),
18 | },
19 | },
20 | esbuild: {
21 | jsxFactory: 'h',
22 | jsxFragment: 'Fragment'
23 | },
24 | css: {
25 | preprocessorOptions: {
26 | less: {
27 | modifyVars: {
28 | 'primary-color': '#4ea997',
29 | 'border-radius-base': '2px',
30 | },
31 | javascriptEnabled: true,
32 | }
33 | }
34 | }
35 | })
36 |
--------------------------------------------------------------------------------