├── .eslintrc.js
├── .gitignore
├── .vscode
└── extensions.json
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── public
└── favicon.ico
├── src
├── App.vue
├── assets
│ ├── images
│ │ ├── 0.png
│ │ ├── 1.png
│ │ ├── 2.png
│ │ ├── 3.png
│ │ ├── 4.png
│ │ ├── 5.png
│ │ ├── 6.png
│ │ ├── bg.jpg
│ │ └── text.png
│ └── logo.png
├── components
│ └── HelloWorld.vue
├── env.d.ts
├── main.ts
├── permission.ts
├── router
│ └── index.ts
├── style
│ ├── index.scss
│ └── stage.scss
├── utils
│ ├── stage.ts
│ └── utils.ts
└── views
│ └── stage
│ ├── mobile.vue
│ └── pc.vue
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.export = {
2 | root: true,
3 | parserOptions: {
4 | sourceType: "module",
5 | },
6 | parser: "vue-eslint-parser",
7 | extends: [
8 | "plugin:vue/vue3-essential",
9 | "plugin:vue/vue3-strongly-recommended",
10 | "plugin:vue/vue3-recommended",
11 | ],
12 | env: {
13 | browser: true,
14 | node: true,
15 | es6: true,
16 | },
17 | rules: {
18 | "no-console": "off",
19 | "comma-dangle": [2, "never"], // 禁止使用拖尾逗号
20 | },
21 | }
22 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["Vue.volar"]
3 | }
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Vue 3 + TypeScript + Vite
2 |
3 | 这是一个消消乐小游戏
4 |
5 | 游戏体验地址(pc/手机皆可):https://wmuhua.com/games/xxl
6 |
7 | 更多详细代码注释请移步:https://juejin.cn/post/7101954563015458846
8 |
9 | 感谢点赞 👍🏻
10 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite App
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "xxl",
3 | "version": "0.0.0",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@babel/parser": {
8 | "version": "7.18.0",
9 | "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.18.0.tgz",
10 | "integrity": "sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg=="
11 | },
12 | "@ctrl/tinycolor": {
13 | "version": "3.4.1",
14 | "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz",
15 | "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw=="
16 | },
17 | "@element-plus/icons-vue": {
18 | "version": "1.1.4",
19 | "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-1.1.4.tgz",
20 | "integrity": "sha512-Iz/nHqdp1sFPmdzRwHkEQQA3lKvoObk8azgABZ81QUOpW9s/lUyQVUSh0tNtEPZXQlKwlSh7SPgoVxzrE0uuVQ=="
21 | },
22 | "@eslint/eslintrc": {
23 | "version": "1.3.0",
24 | "resolved": "https://registry.npmmirror.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz",
25 | "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==",
26 | "dev": true,
27 | "requires": {
28 | "ajv": "^6.12.4",
29 | "debug": "^4.3.2",
30 | "espree": "^9.3.2",
31 | "globals": "^13.15.0",
32 | "ignore": "^5.2.0",
33 | "import-fresh": "^3.2.1",
34 | "js-yaml": "^4.1.0",
35 | "minimatch": "^3.1.2",
36 | "strip-json-comments": "^3.1.1"
37 | }
38 | },
39 | "@floating-ui/core": {
40 | "version": "0.7.1",
41 | "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-0.7.1.tgz",
42 | "integrity": "sha512-grcqEmI8DTIolufpxhJagVeJmvloxBXE6xxSrVnSXz/Wz1uUIsC85ad+UNBqAoBOvzLxE42wvDj3YkmSGqWRxA=="
43 | },
44 | "@floating-ui/dom": {
45 | "version": "0.5.1",
46 | "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-0.5.1.tgz",
47 | "integrity": "sha512-dkPSy5JPiQEtljc3VpG9lauYctxfLlqj/8N9f+lmsR92gQaSVMAWuBbFBH2keY5DmdQn3p4Dv1dQd+e8osH+/g==",
48 | "requires": {
49 | "@floating-ui/core": "^0.7.1"
50 | }
51 | },
52 | "@humanwhocodes/config-array": {
53 | "version": "0.9.5",
54 | "resolved": "https://registry.npmmirror.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz",
55 | "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==",
56 | "dev": true,
57 | "requires": {
58 | "@humanwhocodes/object-schema": "^1.2.1",
59 | "debug": "^4.1.1",
60 | "minimatch": "^3.0.4"
61 | }
62 | },
63 | "@humanwhocodes/object-schema": {
64 | "version": "1.2.1",
65 | "resolved": "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
66 | "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
67 | "dev": true
68 | },
69 | "@types/lodash": {
70 | "version": "4.14.182",
71 | "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.182.tgz",
72 | "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q=="
73 | },
74 | "@types/lodash-es": {
75 | "version": "4.17.6",
76 | "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.6.tgz",
77 | "integrity": "sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==",
78 | "requires": {
79 | "@types/lodash": "*"
80 | }
81 | },
82 | "@types/node": {
83 | "version": "17.0.35",
84 | "resolved": "https://registry.npmmirror.com/@types/node/-/node-17.0.35.tgz",
85 | "integrity": "sha512-vu1SrqBjbbZ3J6vwY17jBs8Sr/BKA+/a/WtjRG+whKg1iuLFOosq872EXS0eXWILdO36DHQQeku/ZcL6hz2fpg==",
86 | "dev": true
87 | },
88 | "@vitejs/plugin-vue": {
89 | "version": "2.3.3",
90 | "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-2.3.3.tgz",
91 | "integrity": "sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==",
92 | "dev": true
93 | },
94 | "@volar/code-gen": {
95 | "version": "0.34.15",
96 | "resolved": "https://registry.npmmirror.com/@volar/code-gen/-/code-gen-0.34.15.tgz",
97 | "integrity": "sha512-g30glPo5N9bJocf1NBt802UcmqgZ3UtPst9b/Tangj+zR+K2RV5S2Un/suR6ZRiETXtg3nmrUcCgsTSJ6PC29A==",
98 | "dev": true,
99 | "requires": {
100 | "@volar/source-map": "0.34.15"
101 | }
102 | },
103 | "@volar/source-map": {
104 | "version": "0.34.15",
105 | "resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-0.34.15.tgz",
106 | "integrity": "sha512-Y3sENK/kqsgD7Vtve6gq6/Dor6JuoJWR+s9iwHcHTcA4VDkJnJRGHcvP8S3SVBsWl7T9qtlnvH3WCbFj7WlXrw==",
107 | "dev": true
108 | },
109 | "@volar/vue-code-gen": {
110 | "version": "0.34.15",
111 | "resolved": "https://registry.npmmirror.com/@volar/vue-code-gen/-/vue-code-gen-0.34.15.tgz",
112 | "integrity": "sha512-GglGsHxPPb7mW2v//5MUrkzxAO68YEIL5bRwpZD0Cp9np34keQdd1SHB5DXdoyU38cnfHJWjBlqCYpTnz2CR/w==",
113 | "dev": true,
114 | "requires": {
115 | "@volar/code-gen": "0.34.15",
116 | "@volar/source-map": "0.34.15",
117 | "@vue/compiler-core": "^3.2.31",
118 | "@vue/compiler-dom": "^3.2.31",
119 | "@vue/shared": "^3.2.31"
120 | }
121 | },
122 | "@volar/vue-typescript": {
123 | "version": "0.34.15",
124 | "resolved": "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-0.34.15.tgz",
125 | "integrity": "sha512-7jwhYl1NQB0uYgTO74x+OBSD4SPF7bI3m1KFQ98Wt/NOTXr57YcUyOkDBImcTKRLX3PHG9ex6OfT7u3jiZ2Zzg==",
126 | "dev": true,
127 | "requires": {
128 | "@volar/code-gen": "0.34.15",
129 | "@volar/source-map": "0.34.15",
130 | "@volar/vue-code-gen": "0.34.15",
131 | "@vue/compiler-sfc": "^3.2.31",
132 | "@vue/reactivity": "^3.2.31"
133 | }
134 | },
135 | "@vue/compiler-core": {
136 | "version": "3.2.35",
137 | "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.2.35.tgz",
138 | "integrity": "sha512-1Mtmh8ceVUoUsn/PME5oM+Dus648rCeV/fBaZ4ERLFbTHBJXj6QmDPrSn9mfEyPDXE0RYIwyJNn884NdWK+Yiw==",
139 | "requires": {
140 | "@babel/parser": "^7.16.4",
141 | "@vue/shared": "3.2.35",
142 | "estree-walker": "^2.0.2",
143 | "source-map": "^0.6.1"
144 | }
145 | },
146 | "@vue/compiler-dom": {
147 | "version": "3.2.35",
148 | "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.2.35.tgz",
149 | "integrity": "sha512-I4bXB9MkRSTJ3gVXRQ4iaYJgABZGew+K/CCBoAh9fdLaeY7A7uUlS5nWGOlICSVfOH0/xk4QlcXeGZYCJkEleA==",
150 | "requires": {
151 | "@vue/compiler-core": "3.2.35",
152 | "@vue/shared": "3.2.35"
153 | }
154 | },
155 | "@vue/compiler-sfc": {
156 | "version": "3.2.35",
157 | "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.2.35.tgz",
158 | "integrity": "sha512-2wKQtnuHfwBFc7uV2Cmtms3Cc7u/u6kKJI3F+i0A+9xnuahK39cCMNJKHzI9x93Xai+uft64fDc5JSh8zDQBQA==",
159 | "requires": {
160 | "@babel/parser": "^7.16.4",
161 | "@vue/compiler-core": "3.2.35",
162 | "@vue/compiler-dom": "3.2.35",
163 | "@vue/compiler-ssr": "3.2.35",
164 | "@vue/reactivity-transform": "3.2.35",
165 | "@vue/shared": "3.2.35",
166 | "estree-walker": "^2.0.2",
167 | "magic-string": "^0.25.7",
168 | "postcss": "^8.1.10",
169 | "source-map": "^0.6.1"
170 | }
171 | },
172 | "@vue/compiler-ssr": {
173 | "version": "3.2.35",
174 | "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.2.35.tgz",
175 | "integrity": "sha512-dJyqB8fZbvVQEnWl5VGxkWHTqx0ERnZXXqInFzyOX8FpTEidmQbUSmDrXidea7bZTdeg6ly94kZFGPYXT29mgQ==",
176 | "requires": {
177 | "@vue/compiler-dom": "3.2.35",
178 | "@vue/shared": "3.2.35"
179 | }
180 | },
181 | "@vue/devtools-api": {
182 | "version": "6.1.4",
183 | "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.1.4.tgz",
184 | "integrity": "sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ=="
185 | },
186 | "@vue/reactivity": {
187 | "version": "3.2.35",
188 | "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.2.35.tgz",
189 | "integrity": "sha512-6j9N9R1SwHVcJas4YqAzwdRS/cgmj3Z9aUert5Mv1jk5B9H9ivN/zot/fgMUbseWXigkkmX60OsfRbz49o8kCw==",
190 | "requires": {
191 | "@vue/shared": "3.2.35"
192 | }
193 | },
194 | "@vue/reactivity-transform": {
195 | "version": "3.2.35",
196 | "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.2.35.tgz",
197 | "integrity": "sha512-VjdQU4nIrgsh1iPqAdYZufWgFqdH9fIl6ttO2PCFlLsrQl7b8BcuawM6moSBLF8damBzSNcqvbvQDBhsI3fyVQ==",
198 | "requires": {
199 | "@babel/parser": "^7.16.4",
200 | "@vue/compiler-core": "3.2.35",
201 | "@vue/shared": "3.2.35",
202 | "estree-walker": "^2.0.2",
203 | "magic-string": "^0.25.7"
204 | }
205 | },
206 | "@vue/runtime-core": {
207 | "version": "3.2.35",
208 | "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.2.35.tgz",
209 | "integrity": "sha512-P8AeGPRGyIiYdOdvLc/7KR8VSdbUGG8Jxdx6Xlj5okEjyV9IYxeHRIQIoye85K0lZXBH4zuh1syD1mX+oZ0KqQ==",
210 | "requires": {
211 | "@vue/reactivity": "3.2.35",
212 | "@vue/shared": "3.2.35"
213 | }
214 | },
215 | "@vue/runtime-dom": {
216 | "version": "3.2.35",
217 | "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.2.35.tgz",
218 | "integrity": "sha512-M5xrVJ/b0KqssjPQMdpwLp3KwzG1Tn2w/IrOptVqGY5c9fEBluIbm18AeO4Fr3YxfeyaPWm1rY8POrEso0UE3w==",
219 | "requires": {
220 | "@vue/runtime-core": "3.2.35",
221 | "@vue/shared": "3.2.35",
222 | "csstype": "^2.6.8"
223 | }
224 | },
225 | "@vue/server-renderer": {
226 | "version": "3.2.35",
227 | "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.2.35.tgz",
228 | "integrity": "sha512-ZMF8V+bZ0EIjSB7yzPEmDlxRDOIXj04iqG4Rw/H5rIuBCf0b7rNTleiOldlX5haG++zUq6uiL2AVp/A9uyz+cw==",
229 | "requires": {
230 | "@vue/compiler-ssr": "3.2.35",
231 | "@vue/shared": "3.2.35"
232 | }
233 | },
234 | "@vue/shared": {
235 | "version": "3.2.35",
236 | "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.2.35.tgz",
237 | "integrity": "sha512-/sxDqMcy0MsfQ3LQixKYDxIinDYNy1dXTsF2Am0pv0toImWabymFQ8cFmPJnPt+gh5ElKwwn7KzQcDbLHar60A=="
238 | },
239 | "@vueuse/core": {
240 | "version": "8.5.0",
241 | "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-8.5.0.tgz",
242 | "integrity": "sha512-VEJ6sGNsPlUp0o9BGda2YISvDZbhWJSOJu5zlp2TufRGVrLcYUKr31jyFEOj6RXzG3k/H4aCYeZyjpItfU8glw==",
243 | "requires": {
244 | "@vueuse/metadata": "8.5.0",
245 | "@vueuse/shared": "8.5.0",
246 | "vue-demi": "*"
247 | }
248 | },
249 | "@vueuse/metadata": {
250 | "version": "8.5.0",
251 | "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-8.5.0.tgz",
252 | "integrity": "sha512-WxsD+Cd+bn+HcjpY6Dl9FJ8ywTRTT9pTwk3bCQpzEhXVYAyNczKDSahk50fCfIJKeWHhyI4B2+/ZEOxQAkUr0g=="
253 | },
254 | "@vueuse/shared": {
255 | "version": "8.5.0",
256 | "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-8.5.0.tgz",
257 | "integrity": "sha512-qKG+SZb44VvGD4dU5cQ63z4JE2Yk39hQUecR0a9sEdJA01cx+XrxAvFKJfPooxwoiqalAVw/ktWK6xbyc/jS3g==",
258 | "requires": {
259 | "vue-demi": "*"
260 | }
261 | },
262 | "acorn": {
263 | "version": "8.7.1",
264 | "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.7.1.tgz",
265 | "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
266 | "dev": true
267 | },
268 | "acorn-jsx": {
269 | "version": "5.3.2",
270 | "resolved": "https://registry.npmmirror.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
271 | "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
272 | "dev": true
273 | },
274 | "ajv": {
275 | "version": "6.12.6",
276 | "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
277 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
278 | "dev": true,
279 | "requires": {
280 | "fast-deep-equal": "^3.1.1",
281 | "fast-json-stable-stringify": "^2.0.0",
282 | "json-schema-traverse": "^0.4.1",
283 | "uri-js": "^4.2.2"
284 | }
285 | },
286 | "ansi-regex": {
287 | "version": "5.0.1",
288 | "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
289 | "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
290 | "dev": true
291 | },
292 | "ansi-styles": {
293 | "version": "4.3.0",
294 | "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
295 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
296 | "dev": true,
297 | "requires": {
298 | "color-convert": "^2.0.1"
299 | }
300 | },
301 | "anymatch": {
302 | "version": "3.1.2",
303 | "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz",
304 | "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
305 | "dev": true,
306 | "requires": {
307 | "normalize-path": "^3.0.0",
308 | "picomatch": "^2.0.4"
309 | }
310 | },
311 | "argparse": {
312 | "version": "2.0.1",
313 | "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz",
314 | "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
315 | "dev": true
316 | },
317 | "async-validator": {
318 | "version": "4.1.1",
319 | "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.1.1.tgz",
320 | "integrity": "sha512-p4DO/JXwjs8klJyJL8Q2oM4ks5fUTze/h5k10oPPKMiLe1fj3G1QMzPHNmN1Py4ycOk7WlO2DcGXv1qiESJCZA=="
321 | },
322 | "balanced-match": {
323 | "version": "1.0.2",
324 | "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
325 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
326 | "dev": true
327 | },
328 | "binary-extensions": {
329 | "version": "2.2.0",
330 | "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
331 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
332 | "dev": true
333 | },
334 | "boolbase": {
335 | "version": "1.0.0",
336 | "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz",
337 | "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
338 | "dev": true
339 | },
340 | "brace-expansion": {
341 | "version": "1.1.11",
342 | "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
343 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
344 | "dev": true,
345 | "requires": {
346 | "balanced-match": "^1.0.0",
347 | "concat-map": "0.0.1"
348 | }
349 | },
350 | "braces": {
351 | "version": "3.0.2",
352 | "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz",
353 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
354 | "dev": true,
355 | "requires": {
356 | "fill-range": "^7.0.1"
357 | }
358 | },
359 | "callsites": {
360 | "version": "3.1.0",
361 | "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz",
362 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
363 | "dev": true
364 | },
365 | "chalk": {
366 | "version": "4.1.2",
367 | "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
368 | "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
369 | "dev": true,
370 | "requires": {
371 | "ansi-styles": "^4.1.0",
372 | "supports-color": "^7.1.0"
373 | }
374 | },
375 | "chokidar": {
376 | "version": "3.5.3",
377 | "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz",
378 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
379 | "dev": true,
380 | "requires": {
381 | "anymatch": "~3.1.2",
382 | "braces": "~3.0.2",
383 | "fsevents": "~2.3.2",
384 | "glob-parent": "~5.1.2",
385 | "is-binary-path": "~2.1.0",
386 | "is-glob": "~4.0.1",
387 | "normalize-path": "~3.0.0",
388 | "readdirp": "~3.6.0"
389 | },
390 | "dependencies": {
391 | "glob-parent": {
392 | "version": "5.1.2",
393 | "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
394 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
395 | "dev": true,
396 | "requires": {
397 | "is-glob": "^4.0.1"
398 | }
399 | }
400 | }
401 | },
402 | "color-convert": {
403 | "version": "2.0.1",
404 | "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
405 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
406 | "dev": true,
407 | "requires": {
408 | "color-name": "~1.1.4"
409 | }
410 | },
411 | "color-name": {
412 | "version": "1.1.4",
413 | "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
414 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
415 | "dev": true
416 | },
417 | "concat-map": {
418 | "version": "0.0.1",
419 | "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
420 | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
421 | "dev": true
422 | },
423 | "cross-spawn": {
424 | "version": "7.0.3",
425 | "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz",
426 | "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
427 | "dev": true,
428 | "requires": {
429 | "path-key": "^3.1.0",
430 | "shebang-command": "^2.0.0",
431 | "which": "^2.0.1"
432 | }
433 | },
434 | "cssesc": {
435 | "version": "3.0.0",
436 | "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz",
437 | "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
438 | "dev": true
439 | },
440 | "csstype": {
441 | "version": "2.6.20",
442 | "resolved": "https://registry.npmmirror.com/csstype/-/csstype-2.6.20.tgz",
443 | "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA=="
444 | },
445 | "dayjs": {
446 | "version": "1.11.2",
447 | "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.2.tgz",
448 | "integrity": "sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw=="
449 | },
450 | "debug": {
451 | "version": "4.3.4",
452 | "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
453 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
454 | "dev": true,
455 | "requires": {
456 | "ms": "2.1.2"
457 | }
458 | },
459 | "deep-is": {
460 | "version": "0.1.4",
461 | "resolved": "https://registry.npmmirror.com/deep-is/-/deep-is-0.1.4.tgz",
462 | "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
463 | "dev": true
464 | },
465 | "doctrine": {
466 | "version": "3.0.0",
467 | "resolved": "https://registry.npmmirror.com/doctrine/-/doctrine-3.0.0.tgz",
468 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
469 | "dev": true,
470 | "requires": {
471 | "esutils": "^2.0.2"
472 | }
473 | },
474 | "element-plus": {
475 | "version": "2.2.1",
476 | "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.1.tgz",
477 | "integrity": "sha512-+U3Rq6S2lrzgFWlO1IvqBRtWuOGfyA84OSJOTDC8DHG6XkbNE507Thueb+9Ghk8eIqjGtpvje5hEQRWOJ85+pA==",
478 | "requires": {
479 | "@ctrl/tinycolor": "^3.4.1",
480 | "@element-plus/icons-vue": "^1.1.4",
481 | "@floating-ui/dom": "^0.5.0",
482 | "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7",
483 | "@types/lodash": "^4.14.182",
484 | "@types/lodash-es": "^4.17.6",
485 | "@vueuse/core": "^8.5.0",
486 | "async-validator": "^4.1.1",
487 | "dayjs": "^1.11.2",
488 | "escape-html": "^1.0.3",
489 | "lodash": "^4.17.21",
490 | "lodash-es": "^4.17.21",
491 | "lodash-unified": "^1.0.2",
492 | "memoize-one": "^6.0.0",
493 | "normalize-wheel-es": "^1.1.2"
494 | },
495 | "dependencies": {
496 | "@popperjs/core": {
497 | "version": "npm:@sxzz/popperjs-es@2.11.7",
498 | "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
499 | "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
500 | }
501 | }
502 | },
503 | "esbuild": {
504 | "version": "0.14.39",
505 | "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.14.39.tgz",
506 | "integrity": "sha512-2kKujuzvRWYtwvNjYDY444LQIA3TyJhJIX3Yo4+qkFlDDtGlSicWgeHVJqMUP/2sSfH10PGwfsj+O2ro1m10xQ==",
507 | "dev": true,
508 | "requires": {
509 | "esbuild-android-64": "0.14.39",
510 | "esbuild-android-arm64": "0.14.39",
511 | "esbuild-darwin-64": "0.14.39",
512 | "esbuild-darwin-arm64": "0.14.39",
513 | "esbuild-freebsd-64": "0.14.39",
514 | "esbuild-freebsd-arm64": "0.14.39",
515 | "esbuild-linux-32": "0.14.39",
516 | "esbuild-linux-64": "0.14.39",
517 | "esbuild-linux-arm": "0.14.39",
518 | "esbuild-linux-arm64": "0.14.39",
519 | "esbuild-linux-mips64le": "0.14.39",
520 | "esbuild-linux-ppc64le": "0.14.39",
521 | "esbuild-linux-riscv64": "0.14.39",
522 | "esbuild-linux-s390x": "0.14.39",
523 | "esbuild-netbsd-64": "0.14.39",
524 | "esbuild-openbsd-64": "0.14.39",
525 | "esbuild-sunos-64": "0.14.39",
526 | "esbuild-windows-32": "0.14.39",
527 | "esbuild-windows-64": "0.14.39",
528 | "esbuild-windows-arm64": "0.14.39"
529 | }
530 | },
531 | "esbuild-android-64": {
532 | "version": "0.14.39",
533 | "resolved": "https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.39.tgz",
534 | "integrity": "sha512-EJOu04p9WgZk0UoKTqLId9VnIsotmI/Z98EXrKURGb3LPNunkeffqQIkjS2cAvidh+OK5uVrXaIP229zK6GvhQ==",
535 | "dev": true,
536 | "optional": true
537 | },
538 | "esbuild-android-arm64": {
539 | "version": "0.14.39",
540 | "resolved": "https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.39.tgz",
541 | "integrity": "sha512-+twajJqO7n3MrCz9e+2lVOnFplRsaGRwsq1KL/uOy7xK7QdRSprRQcObGDeDZUZsacD5gUkk6OiHiYp6RzU3CA==",
542 | "dev": true,
543 | "optional": true
544 | },
545 | "esbuild-darwin-64": {
546 | "version": "0.14.39",
547 | "resolved": "https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.39.tgz",
548 | "integrity": "sha512-ImT6eUw3kcGcHoUxEcdBpi6LfTRWaV6+qf32iYYAfwOeV+XaQ/Xp5XQIBiijLeo+LpGci9M0FVec09nUw41a5g==",
549 | "dev": true,
550 | "optional": true
551 | },
552 | "esbuild-darwin-arm64": {
553 | "version": "0.14.39",
554 | "resolved": "https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.39.tgz",
555 | "integrity": "sha512-/fcQ5UhE05OiT+bW5v7/up1bDsnvaRZPJxXwzXsMRrr7rZqPa85vayrD723oWMT64dhrgWeA3FIneF8yER0XTw==",
556 | "dev": true,
557 | "optional": true
558 | },
559 | "esbuild-freebsd-64": {
560 | "version": "0.14.39",
561 | "resolved": "https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.39.tgz",
562 | "integrity": "sha512-oMNH8lJI4wtgN5oxuFP7BQ22vgB/e3Tl5Woehcd6i2r6F3TszpCnNl8wo2d/KvyQ4zvLvCWAlRciumhQg88+kQ==",
563 | "dev": true,
564 | "optional": true
565 | },
566 | "esbuild-freebsd-arm64": {
567 | "version": "0.14.39",
568 | "resolved": "https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.39.tgz",
569 | "integrity": "sha512-1GHK7kwk57ukY2yI4ILWKJXaxfr+8HcM/r/JKCGCPziIVlL+Wi7RbJ2OzMcTKZ1HpvEqCTBT/J6cO4ZEwW4Ypg==",
570 | "dev": true,
571 | "optional": true
572 | },
573 | "esbuild-linux-32": {
574 | "version": "0.14.39",
575 | "resolved": "https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.39.tgz",
576 | "integrity": "sha512-g97Sbb6g4zfRLIxHgW2pc393DjnkTRMeq3N1rmjDUABxpx8SjocK4jLen+/mq55G46eE2TA0MkJ4R3SpKMu7dg==",
577 | "dev": true,
578 | "optional": true
579 | },
580 | "esbuild-linux-64": {
581 | "version": "0.14.39",
582 | "resolved": "https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.39.tgz",
583 | "integrity": "sha512-4tcgFDYWdI+UbNMGlua9u1Zhu0N5R6u9tl5WOM8aVnNX143JZoBZLpCuUr5lCKhnD0SCO+5gUyMfupGrHtfggQ==",
584 | "dev": true,
585 | "optional": true
586 | },
587 | "esbuild-linux-arm": {
588 | "version": "0.14.39",
589 | "resolved": "https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.39.tgz",
590 | "integrity": "sha512-t0Hn1kWVx5UpCzAJkKRfHeYOLyFnXwYynIkK54/h3tbMweGI7dj400D1k0Vvtj2u1P+JTRT9tx3AjtLEMmfVBQ==",
591 | "dev": true,
592 | "optional": true
593 | },
594 | "esbuild-linux-arm64": {
595 | "version": "0.14.39",
596 | "resolved": "https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.39.tgz",
597 | "integrity": "sha512-23pc8MlD2D6Px1mV8GMglZlKgwgNKAO8gsgsLLcXWSs9lQsCYkIlMo/2Ycfo5JrDIbLdwgP8D2vpfH2KcBqrDQ==",
598 | "dev": true,
599 | "optional": true
600 | },
601 | "esbuild-linux-mips64le": {
602 | "version": "0.14.39",
603 | "resolved": "https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.39.tgz",
604 | "integrity": "sha512-epwlYgVdbmkuRr5n4es3B+yDI0I2e/nxhKejT9H0OLxFAlMkeQZxSpxATpDc9m8NqRci6Kwyb/SfmD1koG2Zuw==",
605 | "dev": true,
606 | "optional": true
607 | },
608 | "esbuild-linux-ppc64le": {
609 | "version": "0.14.39",
610 | "resolved": "https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.39.tgz",
611 | "integrity": "sha512-W/5ezaq+rQiQBThIjLMNjsuhPHg+ApVAdTz2LvcuesZFMsJoQAW2hutoyg47XxpWi7aEjJGrkS26qCJKhRn3QQ==",
612 | "dev": true,
613 | "optional": true
614 | },
615 | "esbuild-linux-riscv64": {
616 | "version": "0.14.39",
617 | "resolved": "https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.39.tgz",
618 | "integrity": "sha512-IS48xeokcCTKeQIOke2O0t9t14HPvwnZcy+5baG13Z1wxs9ZrC5ig5ypEQQh4QMKxURD5TpCLHw2W42CLuVZaA==",
619 | "dev": true,
620 | "optional": true
621 | },
622 | "esbuild-linux-s390x": {
623 | "version": "0.14.39",
624 | "resolved": "https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.39.tgz",
625 | "integrity": "sha512-zEfunpqR8sMomqXhNTFEKDs+ik7HC01m3M60MsEjZOqaywHu5e5682fMsqOlZbesEAAaO9aAtRBsU7CHnSZWyA==",
626 | "dev": true,
627 | "optional": true
628 | },
629 | "esbuild-netbsd-64": {
630 | "version": "0.14.39",
631 | "resolved": "https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.39.tgz",
632 | "integrity": "sha512-Uo2suJBSIlrZCe4E0k75VDIFJWfZy+bOV6ih3T4MVMRJh1lHJ2UyGoaX4bOxomYN3t+IakHPyEoln1+qJ1qYaA==",
633 | "dev": true,
634 | "optional": true
635 | },
636 | "esbuild-openbsd-64": {
637 | "version": "0.14.39",
638 | "resolved": "https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.39.tgz",
639 | "integrity": "sha512-secQU+EpgUPpYjJe3OecoeGKVvRMLeKUxSMGHnK+aK5uQM3n1FPXNJzyz1LHFOo0WOyw+uoCxBYdM4O10oaCAA==",
640 | "dev": true,
641 | "optional": true
642 | },
643 | "esbuild-sunos-64": {
644 | "version": "0.14.39",
645 | "resolved": "https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.39.tgz",
646 | "integrity": "sha512-qHq0t5gePEDm2nqZLb+35p/qkaXVS7oIe32R0ECh2HOdiXXkj/1uQI9IRogGqKkK+QjDG+DhwiUw7QoHur/Rwg==",
647 | "dev": true,
648 | "optional": true
649 | },
650 | "esbuild-windows-32": {
651 | "version": "0.14.39",
652 | "resolved": "https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.39.tgz",
653 | "integrity": "sha512-XPjwp2OgtEX0JnOlTgT6E5txbRp6Uw54Isorm3CwOtloJazeIWXuiwK0ONJBVb/CGbiCpS7iP2UahGgd2p1x+Q==",
654 | "dev": true,
655 | "optional": true
656 | },
657 | "esbuild-windows-64": {
658 | "version": "0.14.39",
659 | "resolved": "https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.39.tgz",
660 | "integrity": "sha512-E2wm+5FwCcLpKsBHRw28bSYQw0Ikxb7zIMxw3OPAkiaQhLVr3dnVO8DofmbWhhf6b97bWzg37iSZ45ZDpLw7Ow==",
661 | "dev": true,
662 | "optional": true
663 | },
664 | "esbuild-windows-arm64": {
665 | "version": "0.14.39",
666 | "resolved": "https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.39.tgz",
667 | "integrity": "sha512-sBZQz5D+Gd0EQ09tZRnz/PpVdLwvp/ufMtJ1iDFYddDaPpZXKqPyaxfYBLs3ueiaksQ26GGa7sci0OqFzNs7KA==",
668 | "dev": true,
669 | "optional": true
670 | },
671 | "escape-html": {
672 | "version": "1.0.3",
673 | "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
674 | "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
675 | },
676 | "escape-string-regexp": {
677 | "version": "4.0.0",
678 | "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
679 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
680 | "dev": true
681 | },
682 | "eslint": {
683 | "version": "8.16.0",
684 | "resolved": "https://registry.npmmirror.com/eslint/-/eslint-8.16.0.tgz",
685 | "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==",
686 | "dev": true,
687 | "requires": {
688 | "@eslint/eslintrc": "^1.3.0",
689 | "@humanwhocodes/config-array": "^0.9.2",
690 | "ajv": "^6.10.0",
691 | "chalk": "^4.0.0",
692 | "cross-spawn": "^7.0.2",
693 | "debug": "^4.3.2",
694 | "doctrine": "^3.0.0",
695 | "escape-string-regexp": "^4.0.0",
696 | "eslint-scope": "^7.1.1",
697 | "eslint-utils": "^3.0.0",
698 | "eslint-visitor-keys": "^3.3.0",
699 | "espree": "^9.3.2",
700 | "esquery": "^1.4.0",
701 | "esutils": "^2.0.2",
702 | "fast-deep-equal": "^3.1.3",
703 | "file-entry-cache": "^6.0.1",
704 | "functional-red-black-tree": "^1.0.1",
705 | "glob-parent": "^6.0.1",
706 | "globals": "^13.15.0",
707 | "ignore": "^5.2.0",
708 | "import-fresh": "^3.0.0",
709 | "imurmurhash": "^0.1.4",
710 | "is-glob": "^4.0.0",
711 | "js-yaml": "^4.1.0",
712 | "json-stable-stringify-without-jsonify": "^1.0.1",
713 | "levn": "^0.4.1",
714 | "lodash.merge": "^4.6.2",
715 | "minimatch": "^3.1.2",
716 | "natural-compare": "^1.4.0",
717 | "optionator": "^0.9.1",
718 | "regexpp": "^3.2.0",
719 | "strip-ansi": "^6.0.1",
720 | "strip-json-comments": "^3.1.0",
721 | "text-table": "^0.2.0",
722 | "v8-compile-cache": "^2.0.3"
723 | }
724 | },
725 | "eslint-plugin-vue": {
726 | "version": "9.0.1",
727 | "resolved": "https://registry.npmmirror.com/eslint-plugin-vue/-/eslint-plugin-vue-9.0.1.tgz",
728 | "integrity": "sha512-/w/9/vzz+4bSYtp5UqXgJ0CfycXTMtpp6lkz7/fMp0CcJxPWyRP6Pr88ihhrsNEcVt2ZweMupWRNYa+5Md41LQ==",
729 | "dev": true,
730 | "requires": {
731 | "eslint-utils": "^3.0.0",
732 | "natural-compare": "^1.4.0",
733 | "nth-check": "^2.0.1",
734 | "postcss-selector-parser": "^6.0.9",
735 | "semver": "^7.3.5",
736 | "vue-eslint-parser": "^9.0.1",
737 | "xml-name-validator": "^4.0.0"
738 | }
739 | },
740 | "eslint-scope": {
741 | "version": "7.1.1",
742 | "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-7.1.1.tgz",
743 | "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
744 | "dev": true,
745 | "requires": {
746 | "esrecurse": "^4.3.0",
747 | "estraverse": "^5.2.0"
748 | }
749 | },
750 | "eslint-utils": {
751 | "version": "3.0.0",
752 | "resolved": "https://registry.npmmirror.com/eslint-utils/-/eslint-utils-3.0.0.tgz",
753 | "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
754 | "dev": true,
755 | "requires": {
756 | "eslint-visitor-keys": "^2.0.0"
757 | },
758 | "dependencies": {
759 | "eslint-visitor-keys": {
760 | "version": "2.1.0",
761 | "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
762 | "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
763 | "dev": true
764 | }
765 | }
766 | },
767 | "eslint-visitor-keys": {
768 | "version": "3.3.0",
769 | "resolved": "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
770 | "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
771 | "dev": true
772 | },
773 | "espree": {
774 | "version": "9.3.2",
775 | "resolved": "https://registry.npmmirror.com/espree/-/espree-9.3.2.tgz",
776 | "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==",
777 | "dev": true,
778 | "requires": {
779 | "acorn": "^8.7.1",
780 | "acorn-jsx": "^5.3.2",
781 | "eslint-visitor-keys": "^3.3.0"
782 | }
783 | },
784 | "esquery": {
785 | "version": "1.4.0",
786 | "resolved": "https://registry.npmmirror.com/esquery/-/esquery-1.4.0.tgz",
787 | "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
788 | "dev": true,
789 | "requires": {
790 | "estraverse": "^5.1.0"
791 | }
792 | },
793 | "esrecurse": {
794 | "version": "4.3.0",
795 | "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz",
796 | "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
797 | "dev": true,
798 | "requires": {
799 | "estraverse": "^5.2.0"
800 | }
801 | },
802 | "estraverse": {
803 | "version": "5.3.0",
804 | "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
805 | "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
806 | "dev": true
807 | },
808 | "estree-walker": {
809 | "version": "2.0.2",
810 | "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
811 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
812 | },
813 | "esutils": {
814 | "version": "2.0.3",
815 | "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz",
816 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
817 | "dev": true
818 | },
819 | "fast-deep-equal": {
820 | "version": "3.1.3",
821 | "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
822 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
823 | "dev": true
824 | },
825 | "fast-json-stable-stringify": {
826 | "version": "2.1.0",
827 | "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
828 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
829 | "dev": true
830 | },
831 | "fast-levenshtein": {
832 | "version": "2.0.6",
833 | "resolved": "https://registry.npmmirror.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
834 | "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
835 | "dev": true
836 | },
837 | "file-entry-cache": {
838 | "version": "6.0.1",
839 | "resolved": "https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
840 | "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
841 | "dev": true,
842 | "requires": {
843 | "flat-cache": "^3.0.4"
844 | }
845 | },
846 | "fill-range": {
847 | "version": "7.0.1",
848 | "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
849 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
850 | "dev": true,
851 | "requires": {
852 | "to-regex-range": "^5.0.1"
853 | }
854 | },
855 | "flat-cache": {
856 | "version": "3.0.4",
857 | "resolved": "https://registry.npmmirror.com/flat-cache/-/flat-cache-3.0.4.tgz",
858 | "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
859 | "dev": true,
860 | "requires": {
861 | "flatted": "^3.1.0",
862 | "rimraf": "^3.0.2"
863 | }
864 | },
865 | "flatted": {
866 | "version": "3.2.5",
867 | "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.2.5.tgz",
868 | "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
869 | "dev": true
870 | },
871 | "fs.realpath": {
872 | "version": "1.0.0",
873 | "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
874 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
875 | "dev": true
876 | },
877 | "fsevents": {
878 | "version": "2.3.2",
879 | "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
880 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
881 | "dev": true,
882 | "optional": true
883 | },
884 | "function-bind": {
885 | "version": "1.1.1",
886 | "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz",
887 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
888 | "dev": true
889 | },
890 | "functional-red-black-tree": {
891 | "version": "1.0.1",
892 | "resolved": "https://registry.npmmirror.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
893 | "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
894 | "dev": true
895 | },
896 | "glob": {
897 | "version": "7.2.3",
898 | "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
899 | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
900 | "dev": true,
901 | "requires": {
902 | "fs.realpath": "^1.0.0",
903 | "inflight": "^1.0.4",
904 | "inherits": "2",
905 | "minimatch": "^3.1.1",
906 | "once": "^1.3.0",
907 | "path-is-absolute": "^1.0.0"
908 | }
909 | },
910 | "glob-parent": {
911 | "version": "6.0.2",
912 | "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz",
913 | "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
914 | "dev": true,
915 | "requires": {
916 | "is-glob": "^4.0.3"
917 | }
918 | },
919 | "globals": {
920 | "version": "13.15.0",
921 | "resolved": "https://registry.npmmirror.com/globals/-/globals-13.15.0.tgz",
922 | "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
923 | "dev": true,
924 | "requires": {
925 | "type-fest": "^0.20.2"
926 | }
927 | },
928 | "has": {
929 | "version": "1.0.3",
930 | "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz",
931 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
932 | "dev": true,
933 | "requires": {
934 | "function-bind": "^1.1.1"
935 | }
936 | },
937 | "has-flag": {
938 | "version": "4.0.0",
939 | "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
940 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
941 | "dev": true
942 | },
943 | "ignore": {
944 | "version": "5.2.0",
945 | "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz",
946 | "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
947 | "dev": true
948 | },
949 | "immutable": {
950 | "version": "4.0.0",
951 | "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.0.0.tgz",
952 | "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==",
953 | "dev": true
954 | },
955 | "import-fresh": {
956 | "version": "3.3.0",
957 | "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz",
958 | "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
959 | "dev": true,
960 | "requires": {
961 | "parent-module": "^1.0.0",
962 | "resolve-from": "^4.0.0"
963 | }
964 | },
965 | "imurmurhash": {
966 | "version": "0.1.4",
967 | "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz",
968 | "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
969 | "dev": true
970 | },
971 | "inflight": {
972 | "version": "1.0.6",
973 | "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
974 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
975 | "dev": true,
976 | "requires": {
977 | "once": "^1.3.0",
978 | "wrappy": "1"
979 | }
980 | },
981 | "inherits": {
982 | "version": "2.0.4",
983 | "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
984 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
985 | "dev": true
986 | },
987 | "is-binary-path": {
988 | "version": "2.1.0",
989 | "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
990 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
991 | "dev": true,
992 | "requires": {
993 | "binary-extensions": "^2.0.0"
994 | }
995 | },
996 | "is-core-module": {
997 | "version": "2.9.0",
998 | "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.9.0.tgz",
999 | "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
1000 | "dev": true,
1001 | "requires": {
1002 | "has": "^1.0.3"
1003 | }
1004 | },
1005 | "is-extglob": {
1006 | "version": "2.1.1",
1007 | "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
1008 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1009 | "dev": true
1010 | },
1011 | "is-glob": {
1012 | "version": "4.0.3",
1013 | "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
1014 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1015 | "dev": true,
1016 | "requires": {
1017 | "is-extglob": "^2.1.1"
1018 | }
1019 | },
1020 | "is-number": {
1021 | "version": "7.0.0",
1022 | "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
1023 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1024 | "dev": true
1025 | },
1026 | "isexe": {
1027 | "version": "2.0.0",
1028 | "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
1029 | "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
1030 | "dev": true
1031 | },
1032 | "js-yaml": {
1033 | "version": "4.1.0",
1034 | "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.0.tgz",
1035 | "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
1036 | "dev": true,
1037 | "requires": {
1038 | "argparse": "^2.0.1"
1039 | }
1040 | },
1041 | "json-schema-traverse": {
1042 | "version": "0.4.1",
1043 | "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
1044 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
1045 | "dev": true
1046 | },
1047 | "json-stable-stringify-without-jsonify": {
1048 | "version": "1.0.1",
1049 | "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
1050 | "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
1051 | "dev": true
1052 | },
1053 | "klona": {
1054 | "version": "2.0.5",
1055 | "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.5.tgz",
1056 | "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==",
1057 | "dev": true
1058 | },
1059 | "levn": {
1060 | "version": "0.4.1",
1061 | "resolved": "https://registry.npmmirror.com/levn/-/levn-0.4.1.tgz",
1062 | "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
1063 | "dev": true,
1064 | "requires": {
1065 | "prelude-ls": "^1.2.1",
1066 | "type-check": "~0.4.0"
1067 | }
1068 | },
1069 | "lodash": {
1070 | "version": "4.17.21",
1071 | "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
1072 | "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
1073 | },
1074 | "lodash-es": {
1075 | "version": "4.17.21",
1076 | "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz",
1077 | "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
1078 | },
1079 | "lodash-unified": {
1080 | "version": "1.0.2",
1081 | "resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.2.tgz",
1082 | "integrity": "sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g=="
1083 | },
1084 | "lodash.merge": {
1085 | "version": "4.6.2",
1086 | "resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
1087 | "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
1088 | "dev": true
1089 | },
1090 | "lru-cache": {
1091 | "version": "6.0.0",
1092 | "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
1093 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1094 | "dev": true,
1095 | "requires": {
1096 | "yallist": "^4.0.0"
1097 | }
1098 | },
1099 | "magic-string": {
1100 | "version": "0.25.9",
1101 | "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.25.9.tgz",
1102 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
1103 | "requires": {
1104 | "sourcemap-codec": "^1.4.8"
1105 | }
1106 | },
1107 | "memoize-one": {
1108 | "version": "6.0.0",
1109 | "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz",
1110 | "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
1111 | },
1112 | "minimatch": {
1113 | "version": "3.1.2",
1114 | "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
1115 | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1116 | "dev": true,
1117 | "requires": {
1118 | "brace-expansion": "^1.1.7"
1119 | }
1120 | },
1121 | "ms": {
1122 | "version": "2.1.2",
1123 | "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
1124 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1125 | "dev": true
1126 | },
1127 | "nanoid": {
1128 | "version": "3.3.4",
1129 | "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz",
1130 | "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
1131 | },
1132 | "natural-compare": {
1133 | "version": "1.4.0",
1134 | "resolved": "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz",
1135 | "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
1136 | "dev": true
1137 | },
1138 | "neo-async": {
1139 | "version": "2.6.2",
1140 | "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
1141 | "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
1142 | "dev": true
1143 | },
1144 | "normalize-path": {
1145 | "version": "3.0.0",
1146 | "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
1147 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1148 | "dev": true
1149 | },
1150 | "normalize-wheel-es": {
1151 | "version": "1.1.2",
1152 | "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz",
1153 | "integrity": "sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png=="
1154 | },
1155 | "nth-check": {
1156 | "version": "2.0.1",
1157 | "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.0.1.tgz",
1158 | "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==",
1159 | "dev": true,
1160 | "requires": {
1161 | "boolbase": "^1.0.0"
1162 | }
1163 | },
1164 | "once": {
1165 | "version": "1.4.0",
1166 | "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
1167 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1168 | "dev": true,
1169 | "requires": {
1170 | "wrappy": "1"
1171 | }
1172 | },
1173 | "optionator": {
1174 | "version": "0.9.1",
1175 | "resolved": "https://registry.npmmirror.com/optionator/-/optionator-0.9.1.tgz",
1176 | "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
1177 | "dev": true,
1178 | "requires": {
1179 | "deep-is": "^0.1.3",
1180 | "fast-levenshtein": "^2.0.6",
1181 | "levn": "^0.4.1",
1182 | "prelude-ls": "^1.2.1",
1183 | "type-check": "^0.4.0",
1184 | "word-wrap": "^1.2.3"
1185 | }
1186 | },
1187 | "parent-module": {
1188 | "version": "1.0.1",
1189 | "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
1190 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1191 | "dev": true,
1192 | "requires": {
1193 | "callsites": "^3.0.0"
1194 | }
1195 | },
1196 | "path-is-absolute": {
1197 | "version": "1.0.1",
1198 | "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1199 | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1200 | "dev": true
1201 | },
1202 | "path-key": {
1203 | "version": "3.1.1",
1204 | "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz",
1205 | "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1206 | "dev": true
1207 | },
1208 | "path-parse": {
1209 | "version": "1.0.7",
1210 | "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz",
1211 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1212 | "dev": true
1213 | },
1214 | "picocolors": {
1215 | "version": "1.0.0",
1216 | "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
1217 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
1218 | },
1219 | "picomatch": {
1220 | "version": "2.3.1",
1221 | "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
1222 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1223 | "dev": true
1224 | },
1225 | "postcss": {
1226 | "version": "8.4.14",
1227 | "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.14.tgz",
1228 | "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
1229 | "requires": {
1230 | "nanoid": "^3.3.4",
1231 | "picocolors": "^1.0.0",
1232 | "source-map-js": "^1.0.2"
1233 | }
1234 | },
1235 | "postcss-selector-parser": {
1236 | "version": "6.0.10",
1237 | "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
1238 | "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
1239 | "dev": true,
1240 | "requires": {
1241 | "cssesc": "^3.0.0",
1242 | "util-deprecate": "^1.0.2"
1243 | }
1244 | },
1245 | "prelude-ls": {
1246 | "version": "1.2.1",
1247 | "resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz",
1248 | "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
1249 | "dev": true
1250 | },
1251 | "punycode": {
1252 | "version": "2.1.1",
1253 | "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz",
1254 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
1255 | "dev": true
1256 | },
1257 | "readdirp": {
1258 | "version": "3.6.0",
1259 | "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
1260 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1261 | "dev": true,
1262 | "requires": {
1263 | "picomatch": "^2.2.1"
1264 | }
1265 | },
1266 | "regexpp": {
1267 | "version": "3.2.0",
1268 | "resolved": "https://registry.npmmirror.com/regexpp/-/regexpp-3.2.0.tgz",
1269 | "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
1270 | "dev": true
1271 | },
1272 | "resolve": {
1273 | "version": "1.22.0",
1274 | "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz",
1275 | "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
1276 | "dev": true,
1277 | "requires": {
1278 | "is-core-module": "^2.8.1",
1279 | "path-parse": "^1.0.7",
1280 | "supports-preserve-symlinks-flag": "^1.0.0"
1281 | }
1282 | },
1283 | "resolve-from": {
1284 | "version": "4.0.0",
1285 | "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz",
1286 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
1287 | "dev": true
1288 | },
1289 | "rimraf": {
1290 | "version": "3.0.2",
1291 | "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
1292 | "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
1293 | "dev": true,
1294 | "requires": {
1295 | "glob": "^7.1.3"
1296 | }
1297 | },
1298 | "rollup": {
1299 | "version": "2.74.1",
1300 | "resolved": "https://registry.npmmirror.com/rollup/-/rollup-2.74.1.tgz",
1301 | "integrity": "sha512-K2zW7kV8Voua5eGkbnBtWYfMIhYhT9Pel2uhBk2WO5eMee161nPze/XRfvEQPFYz7KgrCCnmh2Wy0AMFLGGmMA==",
1302 | "dev": true,
1303 | "requires": {
1304 | "fsevents": "~2.3.2"
1305 | }
1306 | },
1307 | "sass": {
1308 | "version": "1.52.1",
1309 | "resolved": "https://registry.npmmirror.com/sass/-/sass-1.52.1.tgz",
1310 | "integrity": "sha512-fSzYTbr7z8oQnVJ3Acp9hV80dM1fkMN7mSD/25mpcct9F7FPBMOI8krEYALgU1aZoqGhQNhTPsuSmxjnIvAm4Q==",
1311 | "dev": true,
1312 | "requires": {
1313 | "chokidar": ">=3.0.0 <4.0.0",
1314 | "immutable": "^4.0.0",
1315 | "source-map-js": ">=0.6.2 <2.0.0"
1316 | }
1317 | },
1318 | "sass-loader": {
1319 | "version": "13.0.0",
1320 | "resolved": "https://registry.npmmirror.com/sass-loader/-/sass-loader-13.0.0.tgz",
1321 | "integrity": "sha512-IHCFecI+rbPvXE2zO/mqdVFe8MU7ElGrwga9hh2H65Ru4iaBJAMRteum1c4Gsxi9Cq1FOtTEDd6+/AEYuQDM4Q==",
1322 | "dev": true,
1323 | "requires": {
1324 | "klona": "^2.0.4",
1325 | "neo-async": "^2.6.2"
1326 | }
1327 | },
1328 | "semver": {
1329 | "version": "7.3.7",
1330 | "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz",
1331 | "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
1332 | "dev": true,
1333 | "requires": {
1334 | "lru-cache": "^6.0.0"
1335 | }
1336 | },
1337 | "shebang-command": {
1338 | "version": "2.0.0",
1339 | "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
1340 | "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
1341 | "dev": true,
1342 | "requires": {
1343 | "shebang-regex": "^3.0.0"
1344 | }
1345 | },
1346 | "shebang-regex": {
1347 | "version": "3.0.0",
1348 | "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz",
1349 | "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
1350 | "dev": true
1351 | },
1352 | "source-map": {
1353 | "version": "0.6.1",
1354 | "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
1355 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
1356 | },
1357 | "source-map-js": {
1358 | "version": "1.0.2",
1359 | "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
1360 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
1361 | },
1362 | "sourcemap-codec": {
1363 | "version": "1.4.8",
1364 | "resolved": "https://registry.npmmirror.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
1365 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
1366 | },
1367 | "strip-ansi": {
1368 | "version": "6.0.1",
1369 | "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
1370 | "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
1371 | "dev": true,
1372 | "requires": {
1373 | "ansi-regex": "^5.0.1"
1374 | }
1375 | },
1376 | "strip-json-comments": {
1377 | "version": "3.1.1",
1378 | "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
1379 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
1380 | "dev": true
1381 | },
1382 | "supports-color": {
1383 | "version": "7.2.0",
1384 | "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
1385 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1386 | "dev": true,
1387 | "requires": {
1388 | "has-flag": "^4.0.0"
1389 | }
1390 | },
1391 | "supports-preserve-symlinks-flag": {
1392 | "version": "1.0.0",
1393 | "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1394 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1395 | "dev": true
1396 | },
1397 | "text-table": {
1398 | "version": "0.2.0",
1399 | "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
1400 | "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
1401 | "dev": true
1402 | },
1403 | "to-regex-range": {
1404 | "version": "5.0.1",
1405 | "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
1406 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1407 | "dev": true,
1408 | "requires": {
1409 | "is-number": "^7.0.0"
1410 | }
1411 | },
1412 | "type-check": {
1413 | "version": "0.4.0",
1414 | "resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz",
1415 | "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
1416 | "dev": true,
1417 | "requires": {
1418 | "prelude-ls": "^1.2.1"
1419 | }
1420 | },
1421 | "type-fest": {
1422 | "version": "0.20.2",
1423 | "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz",
1424 | "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
1425 | "dev": true
1426 | },
1427 | "typescript": {
1428 | "version": "4.6.4",
1429 | "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.6.4.tgz",
1430 | "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==",
1431 | "dev": true
1432 | },
1433 | "uri-js": {
1434 | "version": "4.4.1",
1435 | "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
1436 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
1437 | "dev": true,
1438 | "requires": {
1439 | "punycode": "^2.1.0"
1440 | }
1441 | },
1442 | "util-deprecate": {
1443 | "version": "1.0.2",
1444 | "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
1445 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
1446 | "dev": true
1447 | },
1448 | "v8-compile-cache": {
1449 | "version": "2.3.0",
1450 | "resolved": "https://registry.npmmirror.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
1451 | "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
1452 | "dev": true
1453 | },
1454 | "vite": {
1455 | "version": "2.9.9",
1456 | "resolved": "https://registry.npmmirror.com/vite/-/vite-2.9.9.tgz",
1457 | "integrity": "sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==",
1458 | "dev": true,
1459 | "requires": {
1460 | "esbuild": "^0.14.27",
1461 | "fsevents": "~2.3.2",
1462 | "postcss": "^8.4.13",
1463 | "resolve": "^1.22.0",
1464 | "rollup": "^2.59.0"
1465 | }
1466 | },
1467 | "vue": {
1468 | "version": "3.2.35",
1469 | "resolved": "https://registry.npmmirror.com/vue/-/vue-3.2.35.tgz",
1470 | "integrity": "sha512-mc/15B0Wjd/4JMMGOcXUQAeXfjyg8MImA2EVZucNdyDPJe1nXhMNbYXOEVPEGfk/mCeyszCzl44dSAhHhQVH8g==",
1471 | "requires": {
1472 | "@vue/compiler-dom": "3.2.35",
1473 | "@vue/compiler-sfc": "3.2.35",
1474 | "@vue/runtime-dom": "3.2.35",
1475 | "@vue/server-renderer": "3.2.35",
1476 | "@vue/shared": "3.2.35"
1477 | }
1478 | },
1479 | "vue-demi": {
1480 | "version": "0.12.5",
1481 | "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.12.5.tgz",
1482 | "integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q=="
1483 | },
1484 | "vue-eslint-parser": {
1485 | "version": "9.0.2",
1486 | "resolved": "https://registry.npmmirror.com/vue-eslint-parser/-/vue-eslint-parser-9.0.2.tgz",
1487 | "integrity": "sha512-uCPQwTGjOtAYrwnU+76pYxalhjsh7iFBsHwBqDHiOPTxtICDaraO4Szw54WFTNZTAEsgHHzqFOu1mmnBOBRzDA==",
1488 | "dev": true,
1489 | "requires": {
1490 | "debug": "^4.3.4",
1491 | "eslint-scope": "^7.1.1",
1492 | "eslint-visitor-keys": "^3.3.0",
1493 | "espree": "^9.3.1",
1494 | "esquery": "^1.4.0",
1495 | "lodash": "^4.17.21",
1496 | "semver": "^7.3.6"
1497 | }
1498 | },
1499 | "vue-router": {
1500 | "version": "4.0.15",
1501 | "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.0.15.tgz",
1502 | "integrity": "sha512-xa+pIN9ZqORdIW1MkN2+d9Ui2pCM1b/UMgwYUCZOiFYHAvz/slKKBDha8DLrh5aCG/RibtrpyhKjKOZ85tYyWg==",
1503 | "requires": {
1504 | "@vue/devtools-api": "^6.0.0"
1505 | }
1506 | },
1507 | "vue-tsc": {
1508 | "version": "0.34.15",
1509 | "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-0.34.15.tgz",
1510 | "integrity": "sha512-xRNaOpg/UCHnRcz9vOdbIjB7uCQ0mifHpqNaejAho7em4WLOzNdJx4R9HMJrqWek44keg7AblIiwM+86QfXx9g==",
1511 | "dev": true,
1512 | "requires": {
1513 | "@volar/vue-typescript": "0.34.15"
1514 | }
1515 | },
1516 | "which": {
1517 | "version": "2.0.2",
1518 | "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz",
1519 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1520 | "dev": true,
1521 | "requires": {
1522 | "isexe": "^2.0.0"
1523 | }
1524 | },
1525 | "word-wrap": {
1526 | "version": "1.2.3",
1527 | "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz",
1528 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
1529 | "dev": true
1530 | },
1531 | "wrappy": {
1532 | "version": "1.0.2",
1533 | "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
1534 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
1535 | "dev": true
1536 | },
1537 | "xml-name-validator": {
1538 | "version": "4.0.0",
1539 | "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
1540 | "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
1541 | "dev": true
1542 | },
1543 | "yallist": {
1544 | "version": "4.0.0",
1545 | "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
1546 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
1547 | "dev": true
1548 | }
1549 | }
1550 | }
1551 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "xxl",
3 | "private": true,
4 | "version": "0.0.0",
5 | "scripts": {
6 | "dev": "vite",
7 | "build": "vue-tsc --noEmit && vite build",
8 | "preview": "vite preview"
9 | },
10 | "dependencies": {
11 | "element-plus": "^2.2.1",
12 | "vue": "^3.2.25",
13 | "vue-router": "^4.0.15"
14 | },
15 | "devDependencies": {
16 | "@types/node": "^17.0.35",
17 | "@vitejs/plugin-vue": "^2.3.3",
18 | "eslint": "^8.16.0",
19 | "eslint-plugin-vue": "^9.0.1",
20 | "sass": "^1.52.1",
21 | "sass-loader": "^13.0.0",
22 | "typescript": "^4.5.4",
23 | "vite": "^2.9.9",
24 | "vue-tsc": "^0.34.7"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wmuhua/vue3-xxl/41be141462606a7533eb7af25e286835392a6af1/public/favicon.ico
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/assets/images/0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wmuhua/vue3-xxl/41be141462606a7533eb7af25e286835392a6af1/src/assets/images/0.png
--------------------------------------------------------------------------------
/src/assets/images/1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wmuhua/vue3-xxl/41be141462606a7533eb7af25e286835392a6af1/src/assets/images/1.png
--------------------------------------------------------------------------------
/src/assets/images/2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wmuhua/vue3-xxl/41be141462606a7533eb7af25e286835392a6af1/src/assets/images/2.png
--------------------------------------------------------------------------------
/src/assets/images/3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wmuhua/vue3-xxl/41be141462606a7533eb7af25e286835392a6af1/src/assets/images/3.png
--------------------------------------------------------------------------------
/src/assets/images/4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wmuhua/vue3-xxl/41be141462606a7533eb7af25e286835392a6af1/src/assets/images/4.png
--------------------------------------------------------------------------------
/src/assets/images/5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wmuhua/vue3-xxl/41be141462606a7533eb7af25e286835392a6af1/src/assets/images/5.png
--------------------------------------------------------------------------------
/src/assets/images/6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wmuhua/vue3-xxl/41be141462606a7533eb7af25e286835392a6af1/src/assets/images/6.png
--------------------------------------------------------------------------------
/src/assets/images/bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wmuhua/vue3-xxl/41be141462606a7533eb7af25e286835392a6af1/src/assets/images/bg.jpg
--------------------------------------------------------------------------------
/src/assets/images/text.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wmuhua/vue3-xxl/41be141462606a7533eb7af25e286835392a6af1/src/assets/images/text.png
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wmuhua/vue3-xxl/41be141462606a7533eb7af25e286835392a6af1/src/assets/logo.png
--------------------------------------------------------------------------------
/src/components/HelloWorld.vue:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 | {{ msg }}
11 |
12 |
13 | Recommended IDE setup:
14 | VS Code
15 | +
16 | Volar
17 |
18 |
19 | See README.md
for more information.
20 |
21 |
22 |
23 | Vite Docs
24 |
25 | |
26 | Vue 3 Docs
27 |
28 |
29 |
30 |
31 | Edit
32 | components/HelloWorld.vue
to test hot module replacement.
33 |
34 |
35 |
36 |
53 |
--------------------------------------------------------------------------------
/src/env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | declare module '*.vue' {
4 | import type { 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/main.ts:
--------------------------------------------------------------------------------
1 | import { createApp } from "vue"
2 | import App from "./App.vue"
3 | import ElementPlus from "element-plus"
4 | import router from "@/router/index"
5 | import "element-plus/dist/index.css"
6 | import "./style/index"
7 | import "./permission"
8 | createApp(App).use(ElementPlus).use(router).mount("#app")
9 |
--------------------------------------------------------------------------------
/src/permission.ts:
--------------------------------------------------------------------------------
1 | import router from "@/router/index"
2 | import { _isMobile } from "./utils/utils"
3 |
4 | router.beforeEach((to, from, next) => {
5 | if (_isMobile()) {
6 | if (to.path == "/mobile") next()
7 | else next({ path: "/mobile" })
8 | } else {
9 | if (to.path == "/" || to.path == "/pc") next()
10 | else next({ path: "/pc" })
11 | }
12 | })
13 |
--------------------------------------------------------------------------------
/src/router/index.ts:
--------------------------------------------------------------------------------
1 | import { createRouter, createWebHashHistory, RouteRecordRaw } from "vue-router"
2 | const routes: Array = [
3 | {
4 | path: "/",
5 | name: "home",
6 | redirect: { name: "pc" },
7 | },
8 | {
9 | path: "/pc",
10 | name: "pc",
11 | component: () => import("@/views/stage/pc.vue"),
12 | },
13 | {
14 | path: "/mobile",
15 | name: "mobile",
16 | component: () => import("@/views/stage/mobile.vue"),
17 | },
18 | ]
19 | const router = createRouter({
20 | history: createWebHashHistory(),
21 | routes,
22 | })
23 | export default router
24 |
--------------------------------------------------------------------------------
/src/style/index.scss:
--------------------------------------------------------------------------------
1 | @import "./stage.scss";
2 |
3 | // 全局样式
4 | html,
5 | body {
6 | width: 100%;
7 | height: 100%;
8 | -moz-osx-font-smoothing: grayscale;
9 | -webkit-font-smoothing: antialiased;
10 | text-rendering: optimizeLegibility;
11 | font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB,
12 | Microsoft YaHei, Arial, sans-serif;
13 | box-sizing: border-box;
14 | }
15 | * {
16 | margin: 0;
17 | padding: 0;
18 | }
19 |
20 | label {
21 | font-weight: 700;
22 | }
23 |
24 | #app {
25 | // height: 100%;
26 | font-family: Avenir, Helvetica, Arial, sans-serif;
27 | -webkit-font-smoothing: antialiased;
28 | -moz-osx-font-smoothing: grayscale;
29 | color: #2c3e50;
30 | }
31 |
32 | *,
33 | *:before,
34 | *:after {
35 | box-sizing: inherit;
36 | }
37 |
38 | a:focus,
39 | a:active {
40 | outline: none;
41 | }
42 |
43 | a,
44 | a:focus,
45 | a:hover {
46 | cursor: pointer;
47 | color: inherit;
48 | text-decoration: none;
49 | }
50 |
51 | div:focus {
52 | outline: none;
53 | }
54 |
55 | .clearfix {
56 | &:after {
57 | visibility: hidden;
58 | display: block;
59 | font-size: 0;
60 | content: " ";
61 | clear: both;
62 | height: 0;
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/style/stage.scss:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wmuhua/vue3-xxl/41be141462606a7533eb7af25e286835392a6af1/src/style/stage.scss
--------------------------------------------------------------------------------
/src/utils/stage.ts:
--------------------------------------------------------------------------------
1 | interface IXXL {
2 | x: number // 游戏舞台行列方块个数
3 | y: number
4 | size: number // 方块大小
5 | typeCount: number // 方块内容种类个数
6 | matrix: Array // 方块矩阵,用于每次消除之后根据矩阵规则生成新的游戏棋盘
7 | data: Array // 用于渲染页面
8 | score: number // 分数
9 | isHandle: boolean // 游戏是否正在消除/下落/添加处理中
10 | isSelect: boolean // 是否有选择
11 | target1: any // 选择的目标
12 | target2: any
13 | }
14 | export default class Stage implements IXXL {
15 | x: number
16 | y: number
17 | size: number
18 | typeCount = 7
19 | matrix: Array = []
20 | data: Array = []
21 | isHandle = false
22 | isSelect = false
23 | score = 0
24 | target1: any = { active: false }
25 | target2: any = {}
26 | constructor(x: number, y: number, size: number) {
27 | this.x = x
28 | this.y = y
29 | this.size = size
30 | this.getMatrix()
31 | this.init(true)
32 | }
33 | // 点击小方块
34 | click(target: any) {
35 | if (this.isHandle) return
36 | // console.log(target)
37 | const { isSelect } = this
38 | if (!isSelect) {
39 | // 选择第一个
40 | target.active = true
41 | this.target1 = target
42 | this.isSelect = true
43 | } else {
44 | // 选择第二个
45 | if (this.target1 === target) return
46 | this.target1.active = false
47 | // 如果是相邻的
48 | if (
49 | ["left", "top", "bottom", "right"].some(
50 | (item) => this.target1[item] == target
51 | )
52 | ) {
53 | this.target2 = target
54 | ;(async () => {
55 | // 调换位置
56 | await this.swap()
57 | let res = await this.gameLoop()
58 | // 还原
59 | if (!res) {
60 | await this.swap()
61 | }
62 | })()
63 | this.isSelect = false
64 | } else {
65 | // 如果不是相邻的
66 | target.active = true
67 | this.target1 = target
68 | this.isSelect = true
69 | }
70 | }
71 | }
72 | // 换位置
73 | swap() {
74 | return new Promise((resolve, reject) => {
75 | const { target1, target2, data } = this
76 | const { positionLeft: pl1, positionTop: pt1, x: x1, y: y1 } = target1
77 | const { positionLeft: pl2, positionTop: pt2, x: x2, y: y2 } = target2
78 | setTimeout(() => {
79 | target1.positionLeft = pl2
80 | target1.positionTop = pt2
81 | target1.x = x2
82 | target1.y = y2
83 | target2.positionLeft = pl1
84 | target2.positionTop = pt1
85 | target2.x = x1
86 | target2.y = y1
87 | data.forEach((square) => {
88 | square.left = data.find(
89 | (item) => item.x == square.x - 1 && item.y == square.y
90 | )
91 | square.right = data.find(
92 | (item) => item.x == square.x + 1 && item.y == square.y
93 | )
94 | square.top = data.find(
95 | (item) => item.x == square.x && item.y == square.y - 1
96 | )
97 | square.bottom = data.find(
98 | (item) => item.x == square.x && item.y == square.y + 1
99 | )
100 | })
101 | }, 0)
102 | setTimeout(() => {
103 | resolve(true)
104 | }, 500)
105 | })
106 | }
107 | // 游戏开始
108 | async gameLoop(bool: boolean = false) {
109 | if (bool) this.score = 0
110 | this.isHandle = true
111 | // 要等清除动画执行完,所以用await
112 | await this.remove()
113 | let status = this.data.some((item) => item.status === "remove")
114 | while (this.data.some((item) => item.status === "remove")) {
115 | await this.down()
116 | await this.add()
117 | await this.remove()
118 | }
119 | this.isHandle = false
120 | return status
121 | }
122 | // 清除
123 | remove() {
124 | return new Promise((resolve, reject) => {
125 | const { data } = this
126 | data.forEach((item) => {
127 | const { left, right, top, bottom, type } = item
128 | if (left?.type == type && right?.type == type) {
129 | left.status = "remove"
130 | item.status = "remove"
131 | right.status = "remove"
132 | }
133 | if (top?.type == type && bottom?.type == type) {
134 | top.status = "remove"
135 | item.status = "remove"
136 | bottom.status = "remove"
137 | }
138 | })
139 | setTimeout(() => {
140 | data.forEach((item, index) => {
141 | if (item.status === "remove") {
142 | item.scale = 0
143 | this.score += 1
144 | }
145 | })
146 | }, 100)
147 | setTimeout(() => {
148 | resolve(true)
149 | }, 500)
150 | })
151 | }
152 | // 下落
153 | down() {
154 | return new Promise((resolve, reject) => {
155 | const { data, size, x, y } = this
156 | data.forEach((item, index) => {
157 | let distance = 0 // 移动格数
158 | if (item.status === "remove") {
159 | // 删除的位置上移,调整新增格子的位置
160 | let top = item.top
161 | while (top) {
162 | if (top.status !== "remove") {
163 | distance += 1
164 | }
165 | top = top.top
166 | }
167 | // 上移
168 | if (distance) {
169 | item.y -= distance
170 | item.positionTop = item.positionTop - size * distance
171 | }
172 | } else {
173 | let bottom = item.bottom
174 | while (bottom) {
175 | if (bottom.status === "remove") {
176 | distance += 1
177 | }
178 | bottom = bottom.bottom
179 | }
180 | // 下落
181 | if (distance) {
182 | item.y += distance
183 | item.positionTop = item.positionTop + size * distance
184 | }
185 | }
186 | })
187 | setTimeout(() => {
188 | resolve(true)
189 | }, 500)
190 | })
191 | }
192 | // 添加
193 | add() {
194 | return new Promise((resolve, reject) => {
195 | const { size, matrix } = this
196 | // 重置矩阵
197 | this.getMatrix()
198 | this.matrix = matrix.map((row, rowIndex) =>
199 | row.map((col: any, colIndex: number) => {
200 | return this.data.find((item) => {
201 | return colIndex == item.x && rowIndex == item.y
202 | })
203 | })
204 | )
205 | // 根据矩阵需要清除的位置替换新方块
206 | this.init()
207 | setTimeout(() => {
208 | this.data.forEach((item) => {
209 | if (item.status === "add") {
210 | item.scale = 1
211 | item.status = "normal"
212 | }
213 | })
214 | }, 100)
215 | setTimeout(() => {
216 | resolve(true)
217 | }, 500)
218 | })
219 | }
220 | // 获取矩阵
221 | getMatrix() {
222 | const { x, y } = this
223 | const row = new Array(x).fill(undefined)
224 | const matrix = new Array(y).fill(undefined).map((item) => row)
225 | this.matrix = matrix
226 | }
227 | // 生成小方块
228 | init(bool: boolean = false) {
229 | const { x, y, typeCount, matrix, size } = this
230 | const data: Array = []
231 | let _x = 0
232 | let _y = 0
233 | for (let i = 0, len = Math.pow(x, 2); i < len; i++) {
234 | let item
235 | try {
236 | item = matrix[_y][_x]
237 | } catch (e) {}
238 | let flag: boolean = item && item.status !== "remove"
239 | let obj = {
240 | type: flag ? item.type : Math.floor(Math.random() * typeCount),
241 | x: _x,
242 | y: _y,
243 | status: bool ? "normal" : flag ? "normal" : "add",
244 | positionLeft: flag ? item.positionLeft : size * _x,
245 | positionTop: flag ? item.positionTop : size * _y,
246 | left: undefined,
247 | top: undefined,
248 | bottom: undefined,
249 | right: undefined,
250 | scale: bool ? 1 : flag ? 1 : 0,
251 | key: item ? item.key + i : `${_x}${_y}`,
252 | active: false,
253 | }
254 | data.push(obj)
255 | _x++
256 | if (_x == x) {
257 | _x = 0
258 | _y++
259 | }
260 | }
261 | data.forEach((square) => {
262 | square.left = data.find(
263 | (item) => item.x == square.x - 1 && item.y == square.y
264 | )
265 | square.right = data.find(
266 | (item) => item.x == square.x + 1 && item.y == square.y
267 | )
268 | square.top = data.find(
269 | (item) => item.x == square.x && item.y == square.y - 1
270 | )
271 | square.bottom = data.find(
272 | (item) => item.x == square.x && item.y == square.y + 1
273 | )
274 | })
275 | this.data = data
276 | }
277 | }
278 |
--------------------------------------------------------------------------------
/src/utils/utils.ts:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | * @returns 是否是移动端
4 | */
5 | export function _isMobile() {
6 | let flag = navigator.userAgent.match(
7 | /(phone|pad|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows phone)/i
8 | )
9 | return flag
10 | }
11 |
--------------------------------------------------------------------------------
/src/views/stage/mobile.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |

5 |
开始游戏
8 |
9 |
{{ score }}分
10 |
27 |
结束游戏
30 |
31 |
32 |
62 |
156 |
--------------------------------------------------------------------------------
/src/views/stage/pc.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |

5 |
开始游戏
8 |
9 |
{{ score }}分
10 |
27 |
结束游戏
30 |
31 |
32 |
57 |
155 |
--------------------------------------------------------------------------------
/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 | "isolatedModules": true,
12 | "esModuleInterop": true,
13 | "lib": ["esnext", "dom"],
14 | "skipLibCheck": true,
15 | "baseUrl": ".",
16 | "paths": {
17 | "@/*": ["src/*"]
18 | }
19 | },
20 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
21 | "references": [{ "path": "./tsconfig.node.json" }]
22 | }
23 |
--------------------------------------------------------------------------------
/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "module": "esnext",
5 | "moduleResolution": "node"
6 | },
7 | "include": ["vite.config.ts"]
8 | }
9 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "vite"
2 | import vue from "@vitejs/plugin-vue"
3 | import { resolve } from "path"
4 |
5 | // https://vitejs.dev/config/
6 | export default defineConfig({
7 | base: "./",
8 | plugins: [vue()],
9 | resolve: {
10 | extensions: [".js", ".vue", ".scss", ".ts"],
11 | alias: [{ find: "@", replacement: resolve(__dirname, "src") }],
12 | },
13 | })
14 |
--------------------------------------------------------------------------------