├── .gitignore
├── .vscode
└── extensions.json
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── public
└── favicon.ico
├── src
├── App.vue
├── assets
│ ├── base.css
│ └── main.css
├── components
│ ├── CustomMinMaxSlider.vue
│ └── CustomSlider.vue
├── composables
│ └── custom-slider.js
└── main.js
└── vite.config.js
/.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 | .DS_Store
12 | dist
13 | dist-ssr
14 | coverage
15 | *.local
16 |
17 | /cypress/videos/
18 | /cypress/screenshots/
19 |
20 | # Editor directories and files
21 | .vscode/*
22 | !.vscode/extensions.json
23 | .idea
24 | *.suo
25 | *.ntvs*
26 | *.njsproj
27 | *.sln
28 | *.sw?
29 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
3 | }
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # custom-slider-vue
2 |
3 | [
](https://api.gitsponsors.com/api/badge/link?p=Cz1o6DLjMOMLbh+xPnqUpShxxiRHovhrdPlW9W/xh72SNmtus1h3qMP0rSbyNTU1lOEQOfs9Dt+1UieSr3c/g+deuR7Yc7+htl0/sTG0RqrevMfRBMAK1EGDSWdvN+Oqp4SCeb2SfLCdDxvPLlfihg==)
4 |
5 | This template should help get you started developing with Vue 3 in Vite.
6 |
7 | ## Recommended IDE Setup
8 |
9 | [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
10 |
11 | ## Customize configuration
12 |
13 | See [Vite Configuration Reference](https://vitejs.dev/config/).
14 |
15 | ## Project Setup
16 |
17 | ```sh
18 | npm install
19 | ```
20 |
21 | ### Compile and Hot-Reload for Development
22 |
23 | ```sh
24 | npm run dev
25 | ```
26 |
27 | ### Compile and Minify for Production
28 |
29 | ```sh
30 | npm run build
31 | ```
32 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite App
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "custom-slider-vue",
3 | "version": "0.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "custom-slider-vue",
9 | "version": "0.0.0",
10 | "dependencies": {
11 | "vue": "^3.2.45"
12 | },
13 | "devDependencies": {
14 | "@vitejs/plugin-vue": "^4.0.0",
15 | "vite": "^4.0.0"
16 | }
17 | },
18 | "node_modules/@babel/parser": {
19 | "version": "7.20.15",
20 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz",
21 | "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==",
22 | "bin": {
23 | "parser": "bin/babel-parser.js"
24 | },
25 | "engines": {
26 | "node": ">=6.0.0"
27 | }
28 | },
29 | "node_modules/@esbuild/android-arm": {
30 | "version": "0.17.19",
31 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz",
32 | "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==",
33 | "cpu": [
34 | "arm"
35 | ],
36 | "dev": true,
37 | "optional": true,
38 | "os": [
39 | "android"
40 | ],
41 | "engines": {
42 | "node": ">=12"
43 | }
44 | },
45 | "node_modules/@esbuild/android-arm64": {
46 | "version": "0.17.19",
47 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz",
48 | "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==",
49 | "cpu": [
50 | "arm64"
51 | ],
52 | "dev": true,
53 | "optional": true,
54 | "os": [
55 | "android"
56 | ],
57 | "engines": {
58 | "node": ">=12"
59 | }
60 | },
61 | "node_modules/@esbuild/android-x64": {
62 | "version": "0.17.19",
63 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz",
64 | "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==",
65 | "cpu": [
66 | "x64"
67 | ],
68 | "dev": true,
69 | "optional": true,
70 | "os": [
71 | "android"
72 | ],
73 | "engines": {
74 | "node": ">=12"
75 | }
76 | },
77 | "node_modules/@esbuild/darwin-arm64": {
78 | "version": "0.17.19",
79 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz",
80 | "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==",
81 | "cpu": [
82 | "arm64"
83 | ],
84 | "dev": true,
85 | "optional": true,
86 | "os": [
87 | "darwin"
88 | ],
89 | "engines": {
90 | "node": ">=12"
91 | }
92 | },
93 | "node_modules/@esbuild/darwin-x64": {
94 | "version": "0.17.19",
95 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz",
96 | "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==",
97 | "cpu": [
98 | "x64"
99 | ],
100 | "dev": true,
101 | "optional": true,
102 | "os": [
103 | "darwin"
104 | ],
105 | "engines": {
106 | "node": ">=12"
107 | }
108 | },
109 | "node_modules/@esbuild/freebsd-arm64": {
110 | "version": "0.17.19",
111 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz",
112 | "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==",
113 | "cpu": [
114 | "arm64"
115 | ],
116 | "dev": true,
117 | "optional": true,
118 | "os": [
119 | "freebsd"
120 | ],
121 | "engines": {
122 | "node": ">=12"
123 | }
124 | },
125 | "node_modules/@esbuild/freebsd-x64": {
126 | "version": "0.17.19",
127 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz",
128 | "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==",
129 | "cpu": [
130 | "x64"
131 | ],
132 | "dev": true,
133 | "optional": true,
134 | "os": [
135 | "freebsd"
136 | ],
137 | "engines": {
138 | "node": ">=12"
139 | }
140 | },
141 | "node_modules/@esbuild/linux-arm": {
142 | "version": "0.17.19",
143 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz",
144 | "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==",
145 | "cpu": [
146 | "arm"
147 | ],
148 | "dev": true,
149 | "optional": true,
150 | "os": [
151 | "linux"
152 | ],
153 | "engines": {
154 | "node": ">=12"
155 | }
156 | },
157 | "node_modules/@esbuild/linux-arm64": {
158 | "version": "0.17.19",
159 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz",
160 | "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==",
161 | "cpu": [
162 | "arm64"
163 | ],
164 | "dev": true,
165 | "optional": true,
166 | "os": [
167 | "linux"
168 | ],
169 | "engines": {
170 | "node": ">=12"
171 | }
172 | },
173 | "node_modules/@esbuild/linux-ia32": {
174 | "version": "0.17.19",
175 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz",
176 | "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==",
177 | "cpu": [
178 | "ia32"
179 | ],
180 | "dev": true,
181 | "optional": true,
182 | "os": [
183 | "linux"
184 | ],
185 | "engines": {
186 | "node": ">=12"
187 | }
188 | },
189 | "node_modules/@esbuild/linux-loong64": {
190 | "version": "0.17.19",
191 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz",
192 | "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==",
193 | "cpu": [
194 | "loong64"
195 | ],
196 | "dev": true,
197 | "optional": true,
198 | "os": [
199 | "linux"
200 | ],
201 | "engines": {
202 | "node": ">=12"
203 | }
204 | },
205 | "node_modules/@esbuild/linux-mips64el": {
206 | "version": "0.17.19",
207 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz",
208 | "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==",
209 | "cpu": [
210 | "mips64el"
211 | ],
212 | "dev": true,
213 | "optional": true,
214 | "os": [
215 | "linux"
216 | ],
217 | "engines": {
218 | "node": ">=12"
219 | }
220 | },
221 | "node_modules/@esbuild/linux-ppc64": {
222 | "version": "0.17.19",
223 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz",
224 | "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==",
225 | "cpu": [
226 | "ppc64"
227 | ],
228 | "dev": true,
229 | "optional": true,
230 | "os": [
231 | "linux"
232 | ],
233 | "engines": {
234 | "node": ">=12"
235 | }
236 | },
237 | "node_modules/@esbuild/linux-riscv64": {
238 | "version": "0.17.19",
239 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz",
240 | "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==",
241 | "cpu": [
242 | "riscv64"
243 | ],
244 | "dev": true,
245 | "optional": true,
246 | "os": [
247 | "linux"
248 | ],
249 | "engines": {
250 | "node": ">=12"
251 | }
252 | },
253 | "node_modules/@esbuild/linux-s390x": {
254 | "version": "0.17.19",
255 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz",
256 | "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==",
257 | "cpu": [
258 | "s390x"
259 | ],
260 | "dev": true,
261 | "optional": true,
262 | "os": [
263 | "linux"
264 | ],
265 | "engines": {
266 | "node": ">=12"
267 | }
268 | },
269 | "node_modules/@esbuild/linux-x64": {
270 | "version": "0.17.19",
271 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz",
272 | "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==",
273 | "cpu": [
274 | "x64"
275 | ],
276 | "dev": true,
277 | "optional": true,
278 | "os": [
279 | "linux"
280 | ],
281 | "engines": {
282 | "node": ">=12"
283 | }
284 | },
285 | "node_modules/@esbuild/netbsd-x64": {
286 | "version": "0.17.19",
287 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz",
288 | "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==",
289 | "cpu": [
290 | "x64"
291 | ],
292 | "dev": true,
293 | "optional": true,
294 | "os": [
295 | "netbsd"
296 | ],
297 | "engines": {
298 | "node": ">=12"
299 | }
300 | },
301 | "node_modules/@esbuild/openbsd-x64": {
302 | "version": "0.17.19",
303 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz",
304 | "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==",
305 | "cpu": [
306 | "x64"
307 | ],
308 | "dev": true,
309 | "optional": true,
310 | "os": [
311 | "openbsd"
312 | ],
313 | "engines": {
314 | "node": ">=12"
315 | }
316 | },
317 | "node_modules/@esbuild/sunos-x64": {
318 | "version": "0.17.19",
319 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz",
320 | "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==",
321 | "cpu": [
322 | "x64"
323 | ],
324 | "dev": true,
325 | "optional": true,
326 | "os": [
327 | "sunos"
328 | ],
329 | "engines": {
330 | "node": ">=12"
331 | }
332 | },
333 | "node_modules/@esbuild/win32-arm64": {
334 | "version": "0.17.19",
335 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz",
336 | "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==",
337 | "cpu": [
338 | "arm64"
339 | ],
340 | "dev": true,
341 | "optional": true,
342 | "os": [
343 | "win32"
344 | ],
345 | "engines": {
346 | "node": ">=12"
347 | }
348 | },
349 | "node_modules/@esbuild/win32-ia32": {
350 | "version": "0.17.19",
351 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz",
352 | "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==",
353 | "cpu": [
354 | "ia32"
355 | ],
356 | "dev": true,
357 | "optional": true,
358 | "os": [
359 | "win32"
360 | ],
361 | "engines": {
362 | "node": ">=12"
363 | }
364 | },
365 | "node_modules/@esbuild/win32-x64": {
366 | "version": "0.17.19",
367 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz",
368 | "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==",
369 | "cpu": [
370 | "x64"
371 | ],
372 | "dev": true,
373 | "optional": true,
374 | "os": [
375 | "win32"
376 | ],
377 | "engines": {
378 | "node": ">=12"
379 | }
380 | },
381 | "node_modules/@vitejs/plugin-vue": {
382 | "version": "4.0.0",
383 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz",
384 | "integrity": "sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==",
385 | "dev": true,
386 | "engines": {
387 | "node": "^14.18.0 || >=16.0.0"
388 | },
389 | "peerDependencies": {
390 | "vite": "^4.0.0",
391 | "vue": "^3.2.25"
392 | }
393 | },
394 | "node_modules/@vue/compiler-core": {
395 | "version": "3.2.47",
396 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz",
397 | "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==",
398 | "dependencies": {
399 | "@babel/parser": "^7.16.4",
400 | "@vue/shared": "3.2.47",
401 | "estree-walker": "^2.0.2",
402 | "source-map": "^0.6.1"
403 | }
404 | },
405 | "node_modules/@vue/compiler-dom": {
406 | "version": "3.2.47",
407 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz",
408 | "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==",
409 | "dependencies": {
410 | "@vue/compiler-core": "3.2.47",
411 | "@vue/shared": "3.2.47"
412 | }
413 | },
414 | "node_modules/@vue/compiler-sfc": {
415 | "version": "3.2.47",
416 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz",
417 | "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==",
418 | "dependencies": {
419 | "@babel/parser": "^7.16.4",
420 | "@vue/compiler-core": "3.2.47",
421 | "@vue/compiler-dom": "3.2.47",
422 | "@vue/compiler-ssr": "3.2.47",
423 | "@vue/reactivity-transform": "3.2.47",
424 | "@vue/shared": "3.2.47",
425 | "estree-walker": "^2.0.2",
426 | "magic-string": "^0.25.7",
427 | "postcss": "^8.1.10",
428 | "source-map": "^0.6.1"
429 | }
430 | },
431 | "node_modules/@vue/compiler-ssr": {
432 | "version": "3.2.47",
433 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz",
434 | "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==",
435 | "dependencies": {
436 | "@vue/compiler-dom": "3.2.47",
437 | "@vue/shared": "3.2.47"
438 | }
439 | },
440 | "node_modules/@vue/reactivity": {
441 | "version": "3.2.47",
442 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz",
443 | "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
444 | "dependencies": {
445 | "@vue/shared": "3.2.47"
446 | }
447 | },
448 | "node_modules/@vue/reactivity-transform": {
449 | "version": "3.2.47",
450 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz",
451 | "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==",
452 | "dependencies": {
453 | "@babel/parser": "^7.16.4",
454 | "@vue/compiler-core": "3.2.47",
455 | "@vue/shared": "3.2.47",
456 | "estree-walker": "^2.0.2",
457 | "magic-string": "^0.25.7"
458 | }
459 | },
460 | "node_modules/@vue/runtime-core": {
461 | "version": "3.2.47",
462 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
463 | "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
464 | "dependencies": {
465 | "@vue/reactivity": "3.2.47",
466 | "@vue/shared": "3.2.47"
467 | }
468 | },
469 | "node_modules/@vue/runtime-dom": {
470 | "version": "3.2.47",
471 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
472 | "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
473 | "dependencies": {
474 | "@vue/runtime-core": "3.2.47",
475 | "@vue/shared": "3.2.47",
476 | "csstype": "^2.6.8"
477 | }
478 | },
479 | "node_modules/@vue/server-renderer": {
480 | "version": "3.2.47",
481 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
482 | "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
483 | "dependencies": {
484 | "@vue/compiler-ssr": "3.2.47",
485 | "@vue/shared": "3.2.47"
486 | },
487 | "peerDependencies": {
488 | "vue": "3.2.47"
489 | }
490 | },
491 | "node_modules/@vue/shared": {
492 | "version": "3.2.47",
493 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz",
494 | "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ=="
495 | },
496 | "node_modules/csstype": {
497 | "version": "2.6.21",
498 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
499 | "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
500 | },
501 | "node_modules/esbuild": {
502 | "version": "0.17.19",
503 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz",
504 | "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==",
505 | "dev": true,
506 | "hasInstallScript": true,
507 | "bin": {
508 | "esbuild": "bin/esbuild"
509 | },
510 | "engines": {
511 | "node": ">=12"
512 | },
513 | "optionalDependencies": {
514 | "@esbuild/android-arm": "0.17.19",
515 | "@esbuild/android-arm64": "0.17.19",
516 | "@esbuild/android-x64": "0.17.19",
517 | "@esbuild/darwin-arm64": "0.17.19",
518 | "@esbuild/darwin-x64": "0.17.19",
519 | "@esbuild/freebsd-arm64": "0.17.19",
520 | "@esbuild/freebsd-x64": "0.17.19",
521 | "@esbuild/linux-arm": "0.17.19",
522 | "@esbuild/linux-arm64": "0.17.19",
523 | "@esbuild/linux-ia32": "0.17.19",
524 | "@esbuild/linux-loong64": "0.17.19",
525 | "@esbuild/linux-mips64el": "0.17.19",
526 | "@esbuild/linux-ppc64": "0.17.19",
527 | "@esbuild/linux-riscv64": "0.17.19",
528 | "@esbuild/linux-s390x": "0.17.19",
529 | "@esbuild/linux-x64": "0.17.19",
530 | "@esbuild/netbsd-x64": "0.17.19",
531 | "@esbuild/openbsd-x64": "0.17.19",
532 | "@esbuild/sunos-x64": "0.17.19",
533 | "@esbuild/win32-arm64": "0.17.19",
534 | "@esbuild/win32-ia32": "0.17.19",
535 | "@esbuild/win32-x64": "0.17.19"
536 | }
537 | },
538 | "node_modules/estree-walker": {
539 | "version": "2.0.2",
540 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
541 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
542 | },
543 | "node_modules/fsevents": {
544 | "version": "2.3.2",
545 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
546 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
547 | "dev": true,
548 | "hasInstallScript": true,
549 | "optional": true,
550 | "os": [
551 | "darwin"
552 | ],
553 | "engines": {
554 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
555 | }
556 | },
557 | "node_modules/magic-string": {
558 | "version": "0.25.9",
559 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
560 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
561 | "dependencies": {
562 | "sourcemap-codec": "^1.4.8"
563 | }
564 | },
565 | "node_modules/nanoid": {
566 | "version": "3.3.6",
567 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
568 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
569 | "funding": [
570 | {
571 | "type": "github",
572 | "url": "https://github.com/sponsors/ai"
573 | }
574 | ],
575 | "bin": {
576 | "nanoid": "bin/nanoid.cjs"
577 | },
578 | "engines": {
579 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
580 | }
581 | },
582 | "node_modules/picocolors": {
583 | "version": "1.0.0",
584 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
585 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
586 | },
587 | "node_modules/postcss": {
588 | "version": "8.4.24",
589 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz",
590 | "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==",
591 | "funding": [
592 | {
593 | "type": "opencollective",
594 | "url": "https://opencollective.com/postcss/"
595 | },
596 | {
597 | "type": "tidelift",
598 | "url": "https://tidelift.com/funding/github/npm/postcss"
599 | },
600 | {
601 | "type": "github",
602 | "url": "https://github.com/sponsors/ai"
603 | }
604 | ],
605 | "dependencies": {
606 | "nanoid": "^3.3.6",
607 | "picocolors": "^1.0.0",
608 | "source-map-js": "^1.0.2"
609 | },
610 | "engines": {
611 | "node": "^10 || ^12 || >=14"
612 | }
613 | },
614 | "node_modules/rollup": {
615 | "version": "3.25.2",
616 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.2.tgz",
617 | "integrity": "sha512-VLnkxZMDr3jpxgtmS8pQZ0UvhslmF4ADq/9w4erkctbgjCqLW9oa89fJuXEs4ZmgyoF7Dm8rMDKSS5b5u2hHUg==",
618 | "dev": true,
619 | "bin": {
620 | "rollup": "dist/bin/rollup"
621 | },
622 | "engines": {
623 | "node": ">=14.18.0",
624 | "npm": ">=8.0.0"
625 | },
626 | "optionalDependencies": {
627 | "fsevents": "~2.3.2"
628 | }
629 | },
630 | "node_modules/source-map": {
631 | "version": "0.6.1",
632 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
633 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
634 | "engines": {
635 | "node": ">=0.10.0"
636 | }
637 | },
638 | "node_modules/source-map-js": {
639 | "version": "1.0.2",
640 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
641 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
642 | "engines": {
643 | "node": ">=0.10.0"
644 | }
645 | },
646 | "node_modules/sourcemap-codec": {
647 | "version": "1.4.8",
648 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
649 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
650 | "deprecated": "Please use @jridgewell/sourcemap-codec instead"
651 | },
652 | "node_modules/vite": {
653 | "version": "4.3.9",
654 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz",
655 | "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==",
656 | "dev": true,
657 | "dependencies": {
658 | "esbuild": "^0.17.5",
659 | "postcss": "^8.4.23",
660 | "rollup": "^3.21.0"
661 | },
662 | "bin": {
663 | "vite": "bin/vite.js"
664 | },
665 | "engines": {
666 | "node": "^14.18.0 || >=16.0.0"
667 | },
668 | "optionalDependencies": {
669 | "fsevents": "~2.3.2"
670 | },
671 | "peerDependencies": {
672 | "@types/node": ">= 14",
673 | "less": "*",
674 | "sass": "*",
675 | "stylus": "*",
676 | "sugarss": "*",
677 | "terser": "^5.4.0"
678 | },
679 | "peerDependenciesMeta": {
680 | "@types/node": {
681 | "optional": true
682 | },
683 | "less": {
684 | "optional": true
685 | },
686 | "sass": {
687 | "optional": true
688 | },
689 | "stylus": {
690 | "optional": true
691 | },
692 | "sugarss": {
693 | "optional": true
694 | },
695 | "terser": {
696 | "optional": true
697 | }
698 | }
699 | },
700 | "node_modules/vue": {
701 | "version": "3.2.47",
702 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz",
703 | "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
704 | "dependencies": {
705 | "@vue/compiler-dom": "3.2.47",
706 | "@vue/compiler-sfc": "3.2.47",
707 | "@vue/runtime-dom": "3.2.47",
708 | "@vue/server-renderer": "3.2.47",
709 | "@vue/shared": "3.2.47"
710 | }
711 | }
712 | },
713 | "dependencies": {
714 | "@babel/parser": {
715 | "version": "7.20.15",
716 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.15.tgz",
717 | "integrity": "sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg=="
718 | },
719 | "@esbuild/android-arm": {
720 | "version": "0.17.19",
721 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz",
722 | "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==",
723 | "dev": true,
724 | "optional": true
725 | },
726 | "@esbuild/android-arm64": {
727 | "version": "0.17.19",
728 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz",
729 | "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==",
730 | "dev": true,
731 | "optional": true
732 | },
733 | "@esbuild/android-x64": {
734 | "version": "0.17.19",
735 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz",
736 | "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==",
737 | "dev": true,
738 | "optional": true
739 | },
740 | "@esbuild/darwin-arm64": {
741 | "version": "0.17.19",
742 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz",
743 | "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==",
744 | "dev": true,
745 | "optional": true
746 | },
747 | "@esbuild/darwin-x64": {
748 | "version": "0.17.19",
749 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz",
750 | "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==",
751 | "dev": true,
752 | "optional": true
753 | },
754 | "@esbuild/freebsd-arm64": {
755 | "version": "0.17.19",
756 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz",
757 | "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==",
758 | "dev": true,
759 | "optional": true
760 | },
761 | "@esbuild/freebsd-x64": {
762 | "version": "0.17.19",
763 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz",
764 | "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==",
765 | "dev": true,
766 | "optional": true
767 | },
768 | "@esbuild/linux-arm": {
769 | "version": "0.17.19",
770 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz",
771 | "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==",
772 | "dev": true,
773 | "optional": true
774 | },
775 | "@esbuild/linux-arm64": {
776 | "version": "0.17.19",
777 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz",
778 | "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==",
779 | "dev": true,
780 | "optional": true
781 | },
782 | "@esbuild/linux-ia32": {
783 | "version": "0.17.19",
784 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz",
785 | "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==",
786 | "dev": true,
787 | "optional": true
788 | },
789 | "@esbuild/linux-loong64": {
790 | "version": "0.17.19",
791 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz",
792 | "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==",
793 | "dev": true,
794 | "optional": true
795 | },
796 | "@esbuild/linux-mips64el": {
797 | "version": "0.17.19",
798 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz",
799 | "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==",
800 | "dev": true,
801 | "optional": true
802 | },
803 | "@esbuild/linux-ppc64": {
804 | "version": "0.17.19",
805 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz",
806 | "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==",
807 | "dev": true,
808 | "optional": true
809 | },
810 | "@esbuild/linux-riscv64": {
811 | "version": "0.17.19",
812 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz",
813 | "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==",
814 | "dev": true,
815 | "optional": true
816 | },
817 | "@esbuild/linux-s390x": {
818 | "version": "0.17.19",
819 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz",
820 | "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==",
821 | "dev": true,
822 | "optional": true
823 | },
824 | "@esbuild/linux-x64": {
825 | "version": "0.17.19",
826 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz",
827 | "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==",
828 | "dev": true,
829 | "optional": true
830 | },
831 | "@esbuild/netbsd-x64": {
832 | "version": "0.17.19",
833 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz",
834 | "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==",
835 | "dev": true,
836 | "optional": true
837 | },
838 | "@esbuild/openbsd-x64": {
839 | "version": "0.17.19",
840 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz",
841 | "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==",
842 | "dev": true,
843 | "optional": true
844 | },
845 | "@esbuild/sunos-x64": {
846 | "version": "0.17.19",
847 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz",
848 | "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==",
849 | "dev": true,
850 | "optional": true
851 | },
852 | "@esbuild/win32-arm64": {
853 | "version": "0.17.19",
854 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz",
855 | "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==",
856 | "dev": true,
857 | "optional": true
858 | },
859 | "@esbuild/win32-ia32": {
860 | "version": "0.17.19",
861 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz",
862 | "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==",
863 | "dev": true,
864 | "optional": true
865 | },
866 | "@esbuild/win32-x64": {
867 | "version": "0.17.19",
868 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz",
869 | "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==",
870 | "dev": true,
871 | "optional": true
872 | },
873 | "@vitejs/plugin-vue": {
874 | "version": "4.0.0",
875 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz",
876 | "integrity": "sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==",
877 | "dev": true,
878 | "requires": {}
879 | },
880 | "@vue/compiler-core": {
881 | "version": "3.2.47",
882 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz",
883 | "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==",
884 | "requires": {
885 | "@babel/parser": "^7.16.4",
886 | "@vue/shared": "3.2.47",
887 | "estree-walker": "^2.0.2",
888 | "source-map": "^0.6.1"
889 | }
890 | },
891 | "@vue/compiler-dom": {
892 | "version": "3.2.47",
893 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz",
894 | "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==",
895 | "requires": {
896 | "@vue/compiler-core": "3.2.47",
897 | "@vue/shared": "3.2.47"
898 | }
899 | },
900 | "@vue/compiler-sfc": {
901 | "version": "3.2.47",
902 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz",
903 | "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==",
904 | "requires": {
905 | "@babel/parser": "^7.16.4",
906 | "@vue/compiler-core": "3.2.47",
907 | "@vue/compiler-dom": "3.2.47",
908 | "@vue/compiler-ssr": "3.2.47",
909 | "@vue/reactivity-transform": "3.2.47",
910 | "@vue/shared": "3.2.47",
911 | "estree-walker": "^2.0.2",
912 | "magic-string": "^0.25.7",
913 | "postcss": "^8.1.10",
914 | "source-map": "^0.6.1"
915 | }
916 | },
917 | "@vue/compiler-ssr": {
918 | "version": "3.2.47",
919 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz",
920 | "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==",
921 | "requires": {
922 | "@vue/compiler-dom": "3.2.47",
923 | "@vue/shared": "3.2.47"
924 | }
925 | },
926 | "@vue/reactivity": {
927 | "version": "3.2.47",
928 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz",
929 | "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==",
930 | "requires": {
931 | "@vue/shared": "3.2.47"
932 | }
933 | },
934 | "@vue/reactivity-transform": {
935 | "version": "3.2.47",
936 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz",
937 | "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==",
938 | "requires": {
939 | "@babel/parser": "^7.16.4",
940 | "@vue/compiler-core": "3.2.47",
941 | "@vue/shared": "3.2.47",
942 | "estree-walker": "^2.0.2",
943 | "magic-string": "^0.25.7"
944 | }
945 | },
946 | "@vue/runtime-core": {
947 | "version": "3.2.47",
948 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz",
949 | "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==",
950 | "requires": {
951 | "@vue/reactivity": "3.2.47",
952 | "@vue/shared": "3.2.47"
953 | }
954 | },
955 | "@vue/runtime-dom": {
956 | "version": "3.2.47",
957 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz",
958 | "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==",
959 | "requires": {
960 | "@vue/runtime-core": "3.2.47",
961 | "@vue/shared": "3.2.47",
962 | "csstype": "^2.6.8"
963 | }
964 | },
965 | "@vue/server-renderer": {
966 | "version": "3.2.47",
967 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz",
968 | "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==",
969 | "requires": {
970 | "@vue/compiler-ssr": "3.2.47",
971 | "@vue/shared": "3.2.47"
972 | }
973 | },
974 | "@vue/shared": {
975 | "version": "3.2.47",
976 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz",
977 | "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ=="
978 | },
979 | "csstype": {
980 | "version": "2.6.21",
981 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz",
982 | "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w=="
983 | },
984 | "esbuild": {
985 | "version": "0.17.19",
986 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz",
987 | "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==",
988 | "dev": true,
989 | "requires": {
990 | "@esbuild/android-arm": "0.17.19",
991 | "@esbuild/android-arm64": "0.17.19",
992 | "@esbuild/android-x64": "0.17.19",
993 | "@esbuild/darwin-arm64": "0.17.19",
994 | "@esbuild/darwin-x64": "0.17.19",
995 | "@esbuild/freebsd-arm64": "0.17.19",
996 | "@esbuild/freebsd-x64": "0.17.19",
997 | "@esbuild/linux-arm": "0.17.19",
998 | "@esbuild/linux-arm64": "0.17.19",
999 | "@esbuild/linux-ia32": "0.17.19",
1000 | "@esbuild/linux-loong64": "0.17.19",
1001 | "@esbuild/linux-mips64el": "0.17.19",
1002 | "@esbuild/linux-ppc64": "0.17.19",
1003 | "@esbuild/linux-riscv64": "0.17.19",
1004 | "@esbuild/linux-s390x": "0.17.19",
1005 | "@esbuild/linux-x64": "0.17.19",
1006 | "@esbuild/netbsd-x64": "0.17.19",
1007 | "@esbuild/openbsd-x64": "0.17.19",
1008 | "@esbuild/sunos-x64": "0.17.19",
1009 | "@esbuild/win32-arm64": "0.17.19",
1010 | "@esbuild/win32-ia32": "0.17.19",
1011 | "@esbuild/win32-x64": "0.17.19"
1012 | }
1013 | },
1014 | "estree-walker": {
1015 | "version": "2.0.2",
1016 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
1017 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
1018 | },
1019 | "fsevents": {
1020 | "version": "2.3.2",
1021 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1022 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1023 | "dev": true,
1024 | "optional": true
1025 | },
1026 | "magic-string": {
1027 | "version": "0.25.9",
1028 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
1029 | "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
1030 | "requires": {
1031 | "sourcemap-codec": "^1.4.8"
1032 | }
1033 | },
1034 | "nanoid": {
1035 | "version": "3.3.6",
1036 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
1037 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
1038 | },
1039 | "picocolors": {
1040 | "version": "1.0.0",
1041 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1042 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
1043 | },
1044 | "postcss": {
1045 | "version": "8.4.24",
1046 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz",
1047 | "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==",
1048 | "requires": {
1049 | "nanoid": "^3.3.6",
1050 | "picocolors": "^1.0.0",
1051 | "source-map-js": "^1.0.2"
1052 | }
1053 | },
1054 | "rollup": {
1055 | "version": "3.25.2",
1056 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.2.tgz",
1057 | "integrity": "sha512-VLnkxZMDr3jpxgtmS8pQZ0UvhslmF4ADq/9w4erkctbgjCqLW9oa89fJuXEs4ZmgyoF7Dm8rMDKSS5b5u2hHUg==",
1058 | "dev": true,
1059 | "requires": {
1060 | "fsevents": "~2.3.2"
1061 | }
1062 | },
1063 | "source-map": {
1064 | "version": "0.6.1",
1065 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1066 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
1067 | },
1068 | "source-map-js": {
1069 | "version": "1.0.2",
1070 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
1071 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
1072 | },
1073 | "sourcemap-codec": {
1074 | "version": "1.4.8",
1075 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
1076 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
1077 | },
1078 | "vite": {
1079 | "version": "4.3.9",
1080 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz",
1081 | "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==",
1082 | "dev": true,
1083 | "requires": {
1084 | "esbuild": "^0.17.5",
1085 | "fsevents": "~2.3.2",
1086 | "postcss": "^8.4.23",
1087 | "rollup": "^3.21.0"
1088 | }
1089 | },
1090 | "vue": {
1091 | "version": "3.2.47",
1092 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz",
1093 | "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==",
1094 | "requires": {
1095 | "@vue/compiler-dom": "3.2.47",
1096 | "@vue/compiler-sfc": "3.2.47",
1097 | "@vue/runtime-dom": "3.2.47",
1098 | "@vue/server-renderer": "3.2.47",
1099 | "@vue/shared": "3.2.47"
1100 | }
1101 | }
1102 | }
1103 | }
1104 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "custom-slider-vue",
3 | "version": "0.0.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "vite",
7 | "build": "vite build",
8 | "preview": "vite preview"
9 | },
10 | "dependencies": {
11 | "vue": "^3.2.45"
12 | },
13 | "devDependencies": {
14 | "@vitejs/plugin-vue": "^4.0.0",
15 | "vite": "^4.0.0"
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/miracleonyenma/custom-vue-range-slider/e3d190833661cd8f27f0e0cb55af472b0400a880/public/favicon.ico
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
Slider One: {{ slider1 }}
16 |
17 |
18 |
19 |
20 |
21 |
22 |
Slider Two: {{ slider2 }}
23 |
24 |
25 |
26 |
27 |
28 |
29 |
Slider 3: {{ sliderMin }} - {{ sliderMax }}
30 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/src/assets/base.css:
--------------------------------------------------------------------------------
1 | /* color palette from */
2 | :root {
3 | --vt-c-white: #ffffff;
4 | --vt-c-white-soft: #f8f8f8;
5 | --vt-c-white-mute: #f2f2f2;
6 |
7 | --vt-c-black: #181818;
8 | --vt-c-black-soft: #222222;
9 | --vt-c-black-mute: #282828;
10 |
11 | --vt-c-indigo: #2c3e50;
12 |
13 | --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
14 | --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
15 | --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
16 | --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
17 |
18 | --vt-c-text-light-1: var(--vt-c-indigo);
19 | --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
20 | --vt-c-text-dark-1: var(--vt-c-white);
21 | --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
22 | }
23 |
24 | /* semantic color variables for this project */
25 | :root {
26 | --color-background: var(--vt-c-white);
27 | --color-background-soft: var(--vt-c-white-soft);
28 | --color-background-mute: var(--vt-c-white-mute);
29 |
30 | --color-border: var(--vt-c-divider-light-2);
31 | --color-border-hover: var(--vt-c-divider-light-1);
32 |
33 | --color-heading: var(--vt-c-text-light-1);
34 | --color-text: var(--vt-c-text-light-1);
35 |
36 | --section-gap: 160px;
37 | }
38 |
39 | @media (prefers-color-scheme: dark) {
40 | :root {
41 | --color-background: var(--vt-c-black);
42 | --color-background-soft: var(--vt-c-black-soft);
43 | --color-background-mute: var(--vt-c-black-mute);
44 |
45 | --color-border: var(--vt-c-divider-dark-2);
46 | --color-border-hover: var(--vt-c-divider-dark-1);
47 |
48 | --color-heading: var(--vt-c-text-dark-1);
49 | --color-text: var(--vt-c-text-dark-2);
50 | }
51 | }
52 |
53 | *,
54 | *::before,
55 | *::after {
56 | box-sizing: border-box;
57 | margin: 0;
58 | position: relative;
59 | font-weight: normal;
60 | }
61 |
62 | body {
63 | min-height: 100vh;
64 | color: var(--color-text);
65 | background: var(--color-background);
66 | transition: color 0.5s, background-color 0.5s;
67 | line-height: 1.6;
68 | font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
69 | Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
70 | font-size: 15px;
71 | text-rendering: optimizeLegibility;
72 | -webkit-font-smoothing: antialiased;
73 | -moz-osx-font-smoothing: grayscale;
74 | }
75 |
--------------------------------------------------------------------------------
/src/assets/main.css:
--------------------------------------------------------------------------------
1 | @import "./base.css";
2 |
3 | #app {
4 | max-width: 1280px;
5 | margin: 0 auto;
6 | padding: 2rem;
7 |
8 | font-weight: normal;
9 | }
10 |
11 | a,
12 | .green {
13 | text-decoration: none;
14 | color: #00bd7e;
15 | transition: 0.4s;
16 | }
17 |
18 | @media (hover: hover) {
19 | a:hover {
20 | background-color: hsla(160, 100%, 37%, 0.2);
21 | }
22 | }
23 |
24 | .slider-cont {
25 | width: 300px;
26 | }
27 |
28 | .custom-slider {
29 | --trackHeight: 0.35rem;
30 | --thumbRadius: 1rem;
31 | }
32 |
33 | /* style the input element with type "range" */
34 | .custom-slider input[type="range"] {
35 | position: relative;
36 | appearance: none;
37 | background: none;
38 | border-radius: 999px;
39 | z-index: 0;
40 | height: 100%;
41 | pointer-events: none;
42 | }
43 |
44 | /* ::before element to replace the slider track */
45 | .custom-slider input[type="range"]::before {
46 | content: "";
47 | display: block;
48 | position: absolute;
49 | width: var(--ProgressPercent, 100%);
50 | height: 100%;
51 | background: #00865a;
52 | border-radius: 999px;
53 | }
54 |
55 | /* `::-webkit-slider-runnable-track` targets the track (background) of a range slider in chrome and safari browsers. */
56 | .custom-slider input[type="range"]::-webkit-slider-runnable-track {
57 | appearance: none;
58 | background: #005a3c;
59 | height: var(--trackHeight);
60 | border-radius: 999px;
61 | }
62 |
63 | .custom-slider input[type="range"]::-webkit-slider-thumb {
64 | position: relative;
65 | width: var(--thumbRadius);
66 | height: var(--thumbRadius);
67 | margin-top: calc((var(--trackHeight) - var(--thumbRadius)) / 2);
68 | background: #005a3c;
69 | border: 1px solid #00865a;
70 | border-radius: 999px;
71 | pointer-events: all;
72 | appearance: none;
73 | z-index: 1;
74 | }
75 |
76 | /* `::-moz-range-track` targets the track (background) of a range slider in Mozilla Firefox. */
77 | .custom-slider.default input[type="range"]::-moz-range-track {
78 | appearance: none;
79 | background: #005a3c;
80 | height: var(--trackHeight);
81 | border-radius: 999px;
82 | }
83 |
84 | .custom-slider input[type="range"]::-moz-range-thumb {
85 | position: relative;
86 | box-sizing: border-box;
87 | width: var(--thumbRadius);
88 | height: var(--thumbRadius);
89 | margin-top: calc((var(--trackHeight) - var(--thumbRadius)) / 2);
90 | background: #005a3c;
91 | border: 1px solid #00865a;
92 | border-radius: 999px;
93 | pointer-events: all;
94 | appearance: none;
95 | z-index: 1;
96 | }
97 |
98 | .custom-slider.minmax {
99 | position: relative;
100 | height: var(--trackHeight);
101 | background: #005a3c;
102 | border-radius: 999px;
103 | margin: 0.5rem 0;
104 | --progressLeft: 0%;
105 | --progressRight: 0%;
106 | }
107 |
108 | .custom-slider .minmax-indicator {
109 | position: absolute;
110 | height: 100%;
111 | pointer-events: none;
112 | left: var(--thumbRadius);
113 | right: var(--thumbRadius);
114 | }
115 |
116 | .custom-slider .minmax-indicator::before {
117 | content: "";
118 | position: absolute;
119 | background: #00865a;
120 | height: 100%;
121 | left: var(--progressLeft);
122 | right: var(--progressRight);
123 | }
124 |
125 | .custom-slider.minmax input[type="range"] {
126 | position: absolute;
127 | width: calc(100% - var(--thumbRadius));
128 | }
129 |
130 | .custom-slider.minmax input[type="range"][name="max"] {
131 | left: var(--thumbRadius);
132 | }
133 |
134 | .custom-slider.minmax input[type="range"]::-webkit-slider-runnable-track {
135 | background: none;
136 | }
137 |
138 | .custom-slider.minmax input[type="range"]::before {
139 | display: none;
140 | }
141 |
142 | .minmax-inputs {
143 | display: flex;
144 | justify-content: space-between;
145 | }
146 |
147 | .minmax-inputs input {
148 | width: 50px;
149 | }
150 |
--------------------------------------------------------------------------------
/src/components/CustomMinMaxSlider.vue:
--------------------------------------------------------------------------------
1 |
87 |
88 |
113 |
114 |
115 |
116 |
117 |
118 |
--------------------------------------------------------------------------------
/src/components/CustomSlider.vue:
--------------------------------------------------------------------------------
1 |
2 |
63 |
64 |
65 | (sliderValue = parseFloat(target.value))"
69 | type="range"
70 | :min="min"
71 | :max="max"
72 | :step="step"
73 | class="slider"
74 | />
75 | (sliderValue = parseFloat(target.value))"
78 | :min="min"
79 | :max="max"
80 | :step="step"
81 | type="number"
82 | class="input"
83 | />
84 |
85 |
86 |
88 |
--------------------------------------------------------------------------------
/src/composables/custom-slider.js:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/miracleonyenma/custom-vue-range-slider/e3d190833661cd8f27f0e0cb55af472b0400a880/src/composables/custom-slider.js
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 |
4 | import './assets/main.css'
5 |
6 | createApp(App).mount('#app')
7 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { fileURLToPath, URL } from 'node:url'
2 |
3 | import { defineConfig } from 'vite'
4 | import vue from '@vitejs/plugin-vue'
5 |
6 | // https://vitejs.dev/config/
7 | export default defineConfig({
8 | plugins: [vue()],
9 | resolve: {
10 | alias: {
11 | '@': fileURLToPath(new URL('./src', import.meta.url))
12 | }
13 | }
14 | })
15 |
--------------------------------------------------------------------------------