├── .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 | 7 | 8 | 9 | 15 | 21 | 27 | 28 | 29 |
10 | 11 | 12 |

Ant Design Vue 13 | 14 |

16 | 17 | 18 |

Vue 3

19 |
20 |
22 | 23 | 24 |

Vite

25 |
26 |
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 | 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 | 4 | 5 | 26 | 27 | -------------------------------------------------------------------------------- /src/components/DynamicInput.vue: -------------------------------------------------------------------------------- 1 | 18 | 67 | 84 | -------------------------------------------------------------------------------- /src/components/EmptyComp.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 11 | 12 | -------------------------------------------------------------------------------- /src/components/Loading.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 22 | 23 | -------------------------------------------------------------------------------- /src/components/NavigationBar.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 42 | 43 | -------------------------------------------------------------------------------- /src/core/DynamicEngine.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/core/renderer/FormRender.vue: -------------------------------------------------------------------------------- 1 | 46 | 80 | 81 | 86 | -------------------------------------------------------------------------------- /src/core/renderer/ViewRender.vue: -------------------------------------------------------------------------------- 1 | 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 | 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 | 23 | 24 | 44 | 45 | -------------------------------------------------------------------------------- /src/materials/base/Coupon/components/Coupon2/index.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 44 | 45 | -------------------------------------------------------------------------------- /src/materials/base/Coupon/index.vue: -------------------------------------------------------------------------------- 1 | 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 | 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 | 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 | 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 | 11 | 12 | 18 | 19 | -------------------------------------------------------------------------------- /src/pages/Editor/components/Header/components/SaveOrPubilcBtn/index.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 56 | 57 | 65 | -------------------------------------------------------------------------------- /src/pages/Editor/components/Header/index.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 19 | 20 | 82 | -------------------------------------------------------------------------------- /src/pages/Editor/components/Left/components/CompList/index.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 64 | 65 | 158 | -------------------------------------------------------------------------------- /src/pages/Editor/components/Left/components/CompMap/index.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | 24 | -------------------------------------------------------------------------------- /src/pages/Editor/components/Left/index.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 20 | 21 | 37 | -------------------------------------------------------------------------------- /src/pages/Editor/components/Middle/components/CompControl.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 76 | 77 | -------------------------------------------------------------------------------- /src/pages/Editor/components/Middle/index.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 15 | 16 | 30 | -------------------------------------------------------------------------------- /src/pages/Editor/components/Right/components/SettingDrawer.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 55 | 56 | -------------------------------------------------------------------------------- /src/pages/Editor/components/Right/index.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 59 | 60 | 91 | -------------------------------------------------------------------------------- /src/pages/Editor/index.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /src/pages/Preview/index.vue: -------------------------------------------------------------------------------- 1 | 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 | --------------------------------------------------------------------------------