├── .gitignore
├── README.md
├── jsconfig.json
├── package-lock.json
├── package.json
├── public
├── favicon.ico
└── index.html
├── src
├── components
│ └── forward-slots.ts
├── index.ts
├── shims-vue.d.ts
└── vue-forward-slots.d.ts
├── tsconfig.json
└── vite.config.js
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 |
6 | # local env files
7 | .env.local
8 | .env.*.local
9 |
10 | # Log files
11 | npm-debug.log*
12 | yarn-debug.log*
13 | yarn-error.log*
14 | pnpm-debug.log*
15 |
16 | # Editor directories and files
17 | .idea
18 | .vscode
19 | *.suo
20 | *.ntvs*
21 | *.njsproj
22 | *.sln
23 | *.sw?
24 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Vue Forward Slots
2 |
3 | Effortlessly forward slots to child components in Vue 3 applications.
4 |
5 | ## Features
6 |
7 | - Easily forward all slots or specific slots to child components
8 | - Simple and declarative syntax
9 |
10 | ## Why Vue Forward Slots?
11 |
12 | In Vue applications, it's common to need to forward slots from a parent component to a child component. However, the
13 | default way of doing this can be verbose and repetitive. Consider the following example:
14 |
15 | ### The Default Way
16 |
17 | ```vue
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | ```
31 |
32 | Verbose and hard to read!
33 |
34 | ### With Vue Forward Slots
35 |
36 | ```vue
37 |
38 |
39 |
40 |
41 |
42 |
43 | ```
44 |
45 | Simple and clean!
46 |
47 | ## Installation
48 |
49 | ```bash
50 | npm install vue-forward-slots
51 | ```
52 |
53 | ### Importing
54 |
55 | You can import it in the component where you want to use it.
56 |
57 | ```vue
58 |
63 | ```
64 |
65 | ## Usage
66 |
67 | ### Example Usage
68 |
69 | A classic example is that of a table component with multiple levels of nested components.
70 | We can easily define and forward slots to nested components using the `ForwardSlots` component.
71 |
72 | #### Root Component
73 |
74 | We define the slots in the root component.
75 |
76 | ```vue
77 |
78 |
79 |
80 |
81 | Name
82 |
83 |
84 |
85 | // We still have access to the slot data like we would normally
86 |
87 |
88 |
89 |
90 |
91 | ```
92 |
93 | #### Table Component
94 |
95 | We forward the slots to the child components.
96 |
97 | ```vue
98 |
99 |
100 | // Notice that we can wrap multiple components in the ForwardSlots component
101 |
102 |
103 |
104 |
105 |
106 |
107 | ```
108 |
109 | #### TableHead Component
110 |
111 | The TableHeadComponent now has access to the slots defined in the root component. If no slot is provided, it will
112 | default to the text in the slot.
113 |
114 | ```vue
115 |
116 |
117 |
118 |
119 |
120 | Some default text
121 |
122 |
123 |
124 |
125 | Some default text
126 |
127 |
128 |
129 |
130 |
131 | ```
132 |
133 | #### TableBody Component
134 |
135 | The TableBodyComponent also has access to the slots defined in the root component. Notice how we also pass the user data.
136 |
137 | ```vue
138 |
139 |
140 |
141 |
142 |
143 | {{ user.name }}
144 |
145 |
146 |
147 |
148 | {{ user.status }}
149 |
150 |
151 |
152 |
153 |
154 | ```
155 |
156 | We could even go a step further and forward the slots to the next level of child components.
157 |
158 | ```vue
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 | ```
171 |
172 | In theory, we could keep forwarding slots to as many levels of child components as we need.
173 |
174 | ### Forwarding Only Specific Slots
175 |
176 | ```vue
177 |
178 | // For a single slot
179 |
180 |
181 |
182 |
183 | // For multiple slots
184 |
185 |
186 |
187 |
188 | ```
189 |
190 | ### Excluding Specific Slots
191 |
192 | ```vue
193 |
194 | // For a single slot
195 |
196 |
197 |
198 |
199 | // For multiple slots
200 |
201 |
202 |
203 |
204 | ```
205 |
206 |
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "module": "esnext",
5 | "baseUrl": "./",
6 | "moduleResolution": "node",
7 | "paths": {
8 | "@/*": [
9 | "src/*"
10 | ]
11 | },
12 | "lib": [
13 | "esnext",
14 | "dom",
15 | "dom.iterable",
16 | "scripthost"
17 | ]
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-forward-slots",
3 | "version": "5.0.4",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "vue-forward-slots",
9 | "version": "5.0.4",
10 | "license": "MIT",
11 | "dependencies": {
12 | "vue": "^3.0.0"
13 | },
14 | "devDependencies": {
15 | "@rollup/plugin-commonjs": "^25.0.4",
16 | "@rollup/plugin-node-resolve": "^15.1.0",
17 | "@vitejs/plugin-vue": "^4.2.3",
18 | "typescript": "^4.9.5",
19 | "vite": "^4.4.9"
20 | }
21 | },
22 | "node_modules/@babel/parser": {
23 | "version": "7.22.10",
24 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz",
25 | "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==",
26 | "bin": {
27 | "parser": "bin/babel-parser.js"
28 | },
29 | "engines": {
30 | "node": ">=6.0.0"
31 | }
32 | },
33 | "node_modules/@esbuild/android-arm": {
34 | "version": "0.18.20",
35 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
36 | "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
37 | "cpu": [
38 | "arm"
39 | ],
40 | "dev": true,
41 | "optional": true,
42 | "os": [
43 | "android"
44 | ],
45 | "engines": {
46 | "node": ">=12"
47 | }
48 | },
49 | "node_modules/@esbuild/android-arm64": {
50 | "version": "0.18.20",
51 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
52 | "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
53 | "cpu": [
54 | "arm64"
55 | ],
56 | "dev": true,
57 | "optional": true,
58 | "os": [
59 | "android"
60 | ],
61 | "engines": {
62 | "node": ">=12"
63 | }
64 | },
65 | "node_modules/@esbuild/android-x64": {
66 | "version": "0.18.20",
67 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
68 | "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
69 | "cpu": [
70 | "x64"
71 | ],
72 | "dev": true,
73 | "optional": true,
74 | "os": [
75 | "android"
76 | ],
77 | "engines": {
78 | "node": ">=12"
79 | }
80 | },
81 | "node_modules/@esbuild/darwin-arm64": {
82 | "version": "0.18.20",
83 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
84 | "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
85 | "cpu": [
86 | "arm64"
87 | ],
88 | "dev": true,
89 | "optional": true,
90 | "os": [
91 | "darwin"
92 | ],
93 | "engines": {
94 | "node": ">=12"
95 | }
96 | },
97 | "node_modules/@esbuild/darwin-x64": {
98 | "version": "0.18.20",
99 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
100 | "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
101 | "cpu": [
102 | "x64"
103 | ],
104 | "dev": true,
105 | "optional": true,
106 | "os": [
107 | "darwin"
108 | ],
109 | "engines": {
110 | "node": ">=12"
111 | }
112 | },
113 | "node_modules/@esbuild/freebsd-arm64": {
114 | "version": "0.18.20",
115 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
116 | "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
117 | "cpu": [
118 | "arm64"
119 | ],
120 | "dev": true,
121 | "optional": true,
122 | "os": [
123 | "freebsd"
124 | ],
125 | "engines": {
126 | "node": ">=12"
127 | }
128 | },
129 | "node_modules/@esbuild/freebsd-x64": {
130 | "version": "0.18.20",
131 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
132 | "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
133 | "cpu": [
134 | "x64"
135 | ],
136 | "dev": true,
137 | "optional": true,
138 | "os": [
139 | "freebsd"
140 | ],
141 | "engines": {
142 | "node": ">=12"
143 | }
144 | },
145 | "node_modules/@esbuild/linux-arm": {
146 | "version": "0.18.20",
147 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
148 | "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
149 | "cpu": [
150 | "arm"
151 | ],
152 | "dev": true,
153 | "optional": true,
154 | "os": [
155 | "linux"
156 | ],
157 | "engines": {
158 | "node": ">=12"
159 | }
160 | },
161 | "node_modules/@esbuild/linux-arm64": {
162 | "version": "0.18.20",
163 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
164 | "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
165 | "cpu": [
166 | "arm64"
167 | ],
168 | "dev": true,
169 | "optional": true,
170 | "os": [
171 | "linux"
172 | ],
173 | "engines": {
174 | "node": ">=12"
175 | }
176 | },
177 | "node_modules/@esbuild/linux-ia32": {
178 | "version": "0.18.20",
179 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
180 | "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
181 | "cpu": [
182 | "ia32"
183 | ],
184 | "dev": true,
185 | "optional": true,
186 | "os": [
187 | "linux"
188 | ],
189 | "engines": {
190 | "node": ">=12"
191 | }
192 | },
193 | "node_modules/@esbuild/linux-loong64": {
194 | "version": "0.18.20",
195 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
196 | "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
197 | "cpu": [
198 | "loong64"
199 | ],
200 | "dev": true,
201 | "optional": true,
202 | "os": [
203 | "linux"
204 | ],
205 | "engines": {
206 | "node": ">=12"
207 | }
208 | },
209 | "node_modules/@esbuild/linux-mips64el": {
210 | "version": "0.18.20",
211 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
212 | "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
213 | "cpu": [
214 | "mips64el"
215 | ],
216 | "dev": true,
217 | "optional": true,
218 | "os": [
219 | "linux"
220 | ],
221 | "engines": {
222 | "node": ">=12"
223 | }
224 | },
225 | "node_modules/@esbuild/linux-ppc64": {
226 | "version": "0.18.20",
227 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
228 | "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
229 | "cpu": [
230 | "ppc64"
231 | ],
232 | "dev": true,
233 | "optional": true,
234 | "os": [
235 | "linux"
236 | ],
237 | "engines": {
238 | "node": ">=12"
239 | }
240 | },
241 | "node_modules/@esbuild/linux-riscv64": {
242 | "version": "0.18.20",
243 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
244 | "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
245 | "cpu": [
246 | "riscv64"
247 | ],
248 | "dev": true,
249 | "optional": true,
250 | "os": [
251 | "linux"
252 | ],
253 | "engines": {
254 | "node": ">=12"
255 | }
256 | },
257 | "node_modules/@esbuild/linux-s390x": {
258 | "version": "0.18.20",
259 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
260 | "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
261 | "cpu": [
262 | "s390x"
263 | ],
264 | "dev": true,
265 | "optional": true,
266 | "os": [
267 | "linux"
268 | ],
269 | "engines": {
270 | "node": ">=12"
271 | }
272 | },
273 | "node_modules/@esbuild/linux-x64": {
274 | "version": "0.18.20",
275 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
276 | "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
277 | "cpu": [
278 | "x64"
279 | ],
280 | "dev": true,
281 | "optional": true,
282 | "os": [
283 | "linux"
284 | ],
285 | "engines": {
286 | "node": ">=12"
287 | }
288 | },
289 | "node_modules/@esbuild/netbsd-x64": {
290 | "version": "0.18.20",
291 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
292 | "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
293 | "cpu": [
294 | "x64"
295 | ],
296 | "dev": true,
297 | "optional": true,
298 | "os": [
299 | "netbsd"
300 | ],
301 | "engines": {
302 | "node": ">=12"
303 | }
304 | },
305 | "node_modules/@esbuild/openbsd-x64": {
306 | "version": "0.18.20",
307 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
308 | "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
309 | "cpu": [
310 | "x64"
311 | ],
312 | "dev": true,
313 | "optional": true,
314 | "os": [
315 | "openbsd"
316 | ],
317 | "engines": {
318 | "node": ">=12"
319 | }
320 | },
321 | "node_modules/@esbuild/sunos-x64": {
322 | "version": "0.18.20",
323 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
324 | "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
325 | "cpu": [
326 | "x64"
327 | ],
328 | "dev": true,
329 | "optional": true,
330 | "os": [
331 | "sunos"
332 | ],
333 | "engines": {
334 | "node": ">=12"
335 | }
336 | },
337 | "node_modules/@esbuild/win32-arm64": {
338 | "version": "0.18.20",
339 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
340 | "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
341 | "cpu": [
342 | "arm64"
343 | ],
344 | "dev": true,
345 | "optional": true,
346 | "os": [
347 | "win32"
348 | ],
349 | "engines": {
350 | "node": ">=12"
351 | }
352 | },
353 | "node_modules/@esbuild/win32-ia32": {
354 | "version": "0.18.20",
355 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
356 | "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
357 | "cpu": [
358 | "ia32"
359 | ],
360 | "dev": true,
361 | "optional": true,
362 | "os": [
363 | "win32"
364 | ],
365 | "engines": {
366 | "node": ">=12"
367 | }
368 | },
369 | "node_modules/@esbuild/win32-x64": {
370 | "version": "0.18.20",
371 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
372 | "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
373 | "cpu": [
374 | "x64"
375 | ],
376 | "dev": true,
377 | "optional": true,
378 | "os": [
379 | "win32"
380 | ],
381 | "engines": {
382 | "node": ">=12"
383 | }
384 | },
385 | "node_modules/@jridgewell/gen-mapping": {
386 | "version": "0.3.3",
387 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
388 | "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
389 | "dev": true,
390 | "optional": true,
391 | "peer": true,
392 | "dependencies": {
393 | "@jridgewell/set-array": "^1.0.1",
394 | "@jridgewell/sourcemap-codec": "^1.4.10",
395 | "@jridgewell/trace-mapping": "^0.3.9"
396 | },
397 | "engines": {
398 | "node": ">=6.0.0"
399 | }
400 | },
401 | "node_modules/@jridgewell/resolve-uri": {
402 | "version": "3.1.1",
403 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
404 | "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
405 | "dev": true,
406 | "optional": true,
407 | "peer": true,
408 | "engines": {
409 | "node": ">=6.0.0"
410 | }
411 | },
412 | "node_modules/@jridgewell/set-array": {
413 | "version": "1.1.2",
414 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
415 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
416 | "dev": true,
417 | "optional": true,
418 | "peer": true,
419 | "engines": {
420 | "node": ">=6.0.0"
421 | }
422 | },
423 | "node_modules/@jridgewell/source-map": {
424 | "version": "0.3.5",
425 | "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
426 | "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
427 | "dev": true,
428 | "optional": true,
429 | "peer": true,
430 | "dependencies": {
431 | "@jridgewell/gen-mapping": "^0.3.0",
432 | "@jridgewell/trace-mapping": "^0.3.9"
433 | }
434 | },
435 | "node_modules/@jridgewell/sourcemap-codec": {
436 | "version": "1.4.15",
437 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
438 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
439 | },
440 | "node_modules/@jridgewell/trace-mapping": {
441 | "version": "0.3.19",
442 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
443 | "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
444 | "dev": true,
445 | "optional": true,
446 | "peer": true,
447 | "dependencies": {
448 | "@jridgewell/resolve-uri": "^3.1.0",
449 | "@jridgewell/sourcemap-codec": "^1.4.14"
450 | }
451 | },
452 | "node_modules/@rollup/plugin-commonjs": {
453 | "version": "25.0.4",
454 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz",
455 | "integrity": "sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==",
456 | "dev": true,
457 | "dependencies": {
458 | "@rollup/pluginutils": "^5.0.1",
459 | "commondir": "^1.0.1",
460 | "estree-walker": "^2.0.2",
461 | "glob": "^8.0.3",
462 | "is-reference": "1.2.1",
463 | "magic-string": "^0.27.0"
464 | },
465 | "engines": {
466 | "node": ">=14.0.0"
467 | },
468 | "peerDependencies": {
469 | "rollup": "^2.68.0||^3.0.0"
470 | },
471 | "peerDependenciesMeta": {
472 | "rollup": {
473 | "optional": true
474 | }
475 | }
476 | },
477 | "node_modules/@rollup/plugin-node-resolve": {
478 | "version": "15.1.0",
479 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.1.0.tgz",
480 | "integrity": "sha512-xeZHCgsiZ9pzYVgAo9580eCGqwh/XCEUM9q6iQfGNocjgkufHAqC3exA+45URvhiYV8sBF9RlBai650eNs7AsA==",
481 | "dev": true,
482 | "dependencies": {
483 | "@rollup/pluginutils": "^5.0.1",
484 | "@types/resolve": "1.20.2",
485 | "deepmerge": "^4.2.2",
486 | "is-builtin-module": "^3.2.1",
487 | "is-module": "^1.0.0",
488 | "resolve": "^1.22.1"
489 | },
490 | "engines": {
491 | "node": ">=14.0.0"
492 | },
493 | "peerDependencies": {
494 | "rollup": "^2.78.0||^3.0.0"
495 | },
496 | "peerDependenciesMeta": {
497 | "rollup": {
498 | "optional": true
499 | }
500 | }
501 | },
502 | "node_modules/@rollup/pluginutils": {
503 | "version": "5.0.3",
504 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.3.tgz",
505 | "integrity": "sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g==",
506 | "dev": true,
507 | "dependencies": {
508 | "@types/estree": "^1.0.0",
509 | "estree-walker": "^2.0.2",
510 | "picomatch": "^2.3.1"
511 | },
512 | "engines": {
513 | "node": ">=14.0.0"
514 | },
515 | "peerDependencies": {
516 | "rollup": "^1.20.0||^2.0.0||^3.0.0"
517 | },
518 | "peerDependenciesMeta": {
519 | "rollup": {
520 | "optional": true
521 | }
522 | }
523 | },
524 | "node_modules/@types/estree": {
525 | "version": "1.0.1",
526 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
527 | "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==",
528 | "dev": true
529 | },
530 | "node_modules/@types/node": {
531 | "version": "20.5.0",
532 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.0.tgz",
533 | "integrity": "sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==",
534 | "dev": true,
535 | "optional": true,
536 | "peer": true
537 | },
538 | "node_modules/@types/resolve": {
539 | "version": "1.20.2",
540 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
541 | "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
542 | "dev": true
543 | },
544 | "node_modules/@vitejs/plugin-vue": {
545 | "version": "4.2.3",
546 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz",
547 | "integrity": "sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==",
548 | "dev": true,
549 | "engines": {
550 | "node": "^14.18.0 || >=16.0.0"
551 | },
552 | "peerDependencies": {
553 | "vite": "^4.0.0",
554 | "vue": "^3.2.25"
555 | }
556 | },
557 | "node_modules/@vue/compiler-core": {
558 | "version": "3.3.4",
559 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
560 | "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
561 | "dependencies": {
562 | "@babel/parser": "^7.21.3",
563 | "@vue/shared": "3.3.4",
564 | "estree-walker": "^2.0.2",
565 | "source-map-js": "^1.0.2"
566 | }
567 | },
568 | "node_modules/@vue/compiler-dom": {
569 | "version": "3.3.4",
570 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
571 | "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
572 | "dependencies": {
573 | "@vue/compiler-core": "3.3.4",
574 | "@vue/shared": "3.3.4"
575 | }
576 | },
577 | "node_modules/@vue/compiler-sfc": {
578 | "version": "3.3.4",
579 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
580 | "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
581 | "dependencies": {
582 | "@babel/parser": "^7.20.15",
583 | "@vue/compiler-core": "3.3.4",
584 | "@vue/compiler-dom": "3.3.4",
585 | "@vue/compiler-ssr": "3.3.4",
586 | "@vue/reactivity-transform": "3.3.4",
587 | "@vue/shared": "3.3.4",
588 | "estree-walker": "^2.0.2",
589 | "magic-string": "^0.30.0",
590 | "postcss": "^8.1.10",
591 | "source-map-js": "^1.0.2"
592 | }
593 | },
594 | "node_modules/@vue/compiler-sfc/node_modules/magic-string": {
595 | "version": "0.30.2",
596 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.2.tgz",
597 | "integrity": "sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==",
598 | "dependencies": {
599 | "@jridgewell/sourcemap-codec": "^1.4.15"
600 | },
601 | "engines": {
602 | "node": ">=12"
603 | }
604 | },
605 | "node_modules/@vue/compiler-ssr": {
606 | "version": "3.3.4",
607 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
608 | "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
609 | "dependencies": {
610 | "@vue/compiler-dom": "3.3.4",
611 | "@vue/shared": "3.3.4"
612 | }
613 | },
614 | "node_modules/@vue/reactivity": {
615 | "version": "3.3.4",
616 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
617 | "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
618 | "dependencies": {
619 | "@vue/shared": "3.3.4"
620 | }
621 | },
622 | "node_modules/@vue/reactivity-transform": {
623 | "version": "3.3.4",
624 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
625 | "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
626 | "dependencies": {
627 | "@babel/parser": "^7.20.15",
628 | "@vue/compiler-core": "3.3.4",
629 | "@vue/shared": "3.3.4",
630 | "estree-walker": "^2.0.2",
631 | "magic-string": "^0.30.0"
632 | }
633 | },
634 | "node_modules/@vue/reactivity-transform/node_modules/magic-string": {
635 | "version": "0.30.2",
636 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.2.tgz",
637 | "integrity": "sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==",
638 | "dependencies": {
639 | "@jridgewell/sourcemap-codec": "^1.4.15"
640 | },
641 | "engines": {
642 | "node": ">=12"
643 | }
644 | },
645 | "node_modules/@vue/runtime-core": {
646 | "version": "3.3.4",
647 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
648 | "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
649 | "dependencies": {
650 | "@vue/reactivity": "3.3.4",
651 | "@vue/shared": "3.3.4"
652 | }
653 | },
654 | "node_modules/@vue/runtime-dom": {
655 | "version": "3.3.4",
656 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
657 | "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
658 | "dependencies": {
659 | "@vue/runtime-core": "3.3.4",
660 | "@vue/shared": "3.3.4",
661 | "csstype": "^3.1.1"
662 | }
663 | },
664 | "node_modules/@vue/server-renderer": {
665 | "version": "3.3.4",
666 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
667 | "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
668 | "dependencies": {
669 | "@vue/compiler-ssr": "3.3.4",
670 | "@vue/shared": "3.3.4"
671 | },
672 | "peerDependencies": {
673 | "vue": "3.3.4"
674 | }
675 | },
676 | "node_modules/@vue/shared": {
677 | "version": "3.3.4",
678 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
679 | "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
680 | },
681 | "node_modules/acorn": {
682 | "version": "8.10.0",
683 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
684 | "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
685 | "dev": true,
686 | "optional": true,
687 | "peer": true,
688 | "bin": {
689 | "acorn": "bin/acorn"
690 | },
691 | "engines": {
692 | "node": ">=0.4.0"
693 | }
694 | },
695 | "node_modules/balanced-match": {
696 | "version": "1.0.2",
697 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
698 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
699 | "dev": true
700 | },
701 | "node_modules/brace-expansion": {
702 | "version": "2.0.1",
703 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
704 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
705 | "dev": true,
706 | "dependencies": {
707 | "balanced-match": "^1.0.0"
708 | }
709 | },
710 | "node_modules/buffer-from": {
711 | "version": "1.1.2",
712 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
713 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
714 | "dev": true,
715 | "optional": true,
716 | "peer": true
717 | },
718 | "node_modules/builtin-modules": {
719 | "version": "3.3.0",
720 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
721 | "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
722 | "dev": true,
723 | "engines": {
724 | "node": ">=6"
725 | },
726 | "funding": {
727 | "url": "https://github.com/sponsors/sindresorhus"
728 | }
729 | },
730 | "node_modules/commondir": {
731 | "version": "1.0.1",
732 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
733 | "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
734 | "dev": true
735 | },
736 | "node_modules/csstype": {
737 | "version": "3.1.2",
738 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
739 | "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
740 | },
741 | "node_modules/deepmerge": {
742 | "version": "4.3.1",
743 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
744 | "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
745 | "dev": true,
746 | "engines": {
747 | "node": ">=0.10.0"
748 | }
749 | },
750 | "node_modules/esbuild": {
751 | "version": "0.18.20",
752 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
753 | "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
754 | "dev": true,
755 | "hasInstallScript": true,
756 | "bin": {
757 | "esbuild": "bin/esbuild"
758 | },
759 | "engines": {
760 | "node": ">=12"
761 | },
762 | "optionalDependencies": {
763 | "@esbuild/android-arm": "0.18.20",
764 | "@esbuild/android-arm64": "0.18.20",
765 | "@esbuild/android-x64": "0.18.20",
766 | "@esbuild/darwin-arm64": "0.18.20",
767 | "@esbuild/darwin-x64": "0.18.20",
768 | "@esbuild/freebsd-arm64": "0.18.20",
769 | "@esbuild/freebsd-x64": "0.18.20",
770 | "@esbuild/linux-arm": "0.18.20",
771 | "@esbuild/linux-arm64": "0.18.20",
772 | "@esbuild/linux-ia32": "0.18.20",
773 | "@esbuild/linux-loong64": "0.18.20",
774 | "@esbuild/linux-mips64el": "0.18.20",
775 | "@esbuild/linux-ppc64": "0.18.20",
776 | "@esbuild/linux-riscv64": "0.18.20",
777 | "@esbuild/linux-s390x": "0.18.20",
778 | "@esbuild/linux-x64": "0.18.20",
779 | "@esbuild/netbsd-x64": "0.18.20",
780 | "@esbuild/openbsd-x64": "0.18.20",
781 | "@esbuild/sunos-x64": "0.18.20",
782 | "@esbuild/win32-arm64": "0.18.20",
783 | "@esbuild/win32-ia32": "0.18.20",
784 | "@esbuild/win32-x64": "0.18.20"
785 | }
786 | },
787 | "node_modules/estree-walker": {
788 | "version": "2.0.2",
789 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
790 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
791 | },
792 | "node_modules/fs.realpath": {
793 | "version": "1.0.0",
794 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
795 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
796 | "dev": true
797 | },
798 | "node_modules/fsevents": {
799 | "version": "2.3.2",
800 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
801 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
802 | "dev": true,
803 | "hasInstallScript": true,
804 | "optional": true,
805 | "os": [
806 | "darwin"
807 | ],
808 | "engines": {
809 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
810 | }
811 | },
812 | "node_modules/function-bind": {
813 | "version": "1.1.1",
814 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
815 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
816 | "dev": true
817 | },
818 | "node_modules/glob": {
819 | "version": "8.1.0",
820 | "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
821 | "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
822 | "dev": true,
823 | "dependencies": {
824 | "fs.realpath": "^1.0.0",
825 | "inflight": "^1.0.4",
826 | "inherits": "2",
827 | "minimatch": "^5.0.1",
828 | "once": "^1.3.0"
829 | },
830 | "engines": {
831 | "node": ">=12"
832 | },
833 | "funding": {
834 | "url": "https://github.com/sponsors/isaacs"
835 | }
836 | },
837 | "node_modules/has": {
838 | "version": "1.0.3",
839 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
840 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
841 | "dev": true,
842 | "dependencies": {
843 | "function-bind": "^1.1.1"
844 | },
845 | "engines": {
846 | "node": ">= 0.4.0"
847 | }
848 | },
849 | "node_modules/inflight": {
850 | "version": "1.0.6",
851 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
852 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
853 | "dev": true,
854 | "dependencies": {
855 | "once": "^1.3.0",
856 | "wrappy": "1"
857 | }
858 | },
859 | "node_modules/inherits": {
860 | "version": "2.0.4",
861 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
862 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
863 | "dev": true
864 | },
865 | "node_modules/is-builtin-module": {
866 | "version": "3.2.1",
867 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
868 | "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
869 | "dev": true,
870 | "dependencies": {
871 | "builtin-modules": "^3.3.0"
872 | },
873 | "engines": {
874 | "node": ">=6"
875 | },
876 | "funding": {
877 | "url": "https://github.com/sponsors/sindresorhus"
878 | }
879 | },
880 | "node_modules/is-core-module": {
881 | "version": "2.13.0",
882 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
883 | "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
884 | "dev": true,
885 | "dependencies": {
886 | "has": "^1.0.3"
887 | },
888 | "funding": {
889 | "url": "https://github.com/sponsors/ljharb"
890 | }
891 | },
892 | "node_modules/is-module": {
893 | "version": "1.0.0",
894 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
895 | "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
896 | "dev": true
897 | },
898 | "node_modules/is-reference": {
899 | "version": "1.2.1",
900 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
901 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
902 | "dev": true,
903 | "dependencies": {
904 | "@types/estree": "*"
905 | }
906 | },
907 | "node_modules/magic-string": {
908 | "version": "0.27.0",
909 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
910 | "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
911 | "dev": true,
912 | "dependencies": {
913 | "@jridgewell/sourcemap-codec": "^1.4.13"
914 | },
915 | "engines": {
916 | "node": ">=12"
917 | }
918 | },
919 | "node_modules/minimatch": {
920 | "version": "5.1.6",
921 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
922 | "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
923 | "dev": true,
924 | "dependencies": {
925 | "brace-expansion": "^2.0.1"
926 | },
927 | "engines": {
928 | "node": ">=10"
929 | }
930 | },
931 | "node_modules/nanoid": {
932 | "version": "3.3.7",
933 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
934 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
935 | "funding": [
936 | {
937 | "type": "github",
938 | "url": "https://github.com/sponsors/ai"
939 | }
940 | ],
941 | "bin": {
942 | "nanoid": "bin/nanoid.cjs"
943 | },
944 | "engines": {
945 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
946 | }
947 | },
948 | "node_modules/once": {
949 | "version": "1.4.0",
950 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
951 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
952 | "dev": true,
953 | "dependencies": {
954 | "wrappy": "1"
955 | }
956 | },
957 | "node_modules/path-parse": {
958 | "version": "1.0.7",
959 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
960 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
961 | "dev": true
962 | },
963 | "node_modules/picocolors": {
964 | "version": "1.0.1",
965 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
966 | "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
967 | },
968 | "node_modules/picomatch": {
969 | "version": "2.3.1",
970 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
971 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
972 | "dev": true,
973 | "engines": {
974 | "node": ">=8.6"
975 | },
976 | "funding": {
977 | "url": "https://github.com/sponsors/jonschlinkert"
978 | }
979 | },
980 | "node_modules/postcss": {
981 | "version": "8.4.40",
982 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz",
983 | "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==",
984 | "funding": [
985 | {
986 | "type": "opencollective",
987 | "url": "https://opencollective.com/postcss/"
988 | },
989 | {
990 | "type": "tidelift",
991 | "url": "https://tidelift.com/funding/github/npm/postcss"
992 | },
993 | {
994 | "type": "github",
995 | "url": "https://github.com/sponsors/ai"
996 | }
997 | ],
998 | "dependencies": {
999 | "nanoid": "^3.3.7",
1000 | "picocolors": "^1.0.1",
1001 | "source-map-js": "^1.2.0"
1002 | },
1003 | "engines": {
1004 | "node": "^10 || ^12 || >=14"
1005 | }
1006 | },
1007 | "node_modules/resolve": {
1008 | "version": "1.22.4",
1009 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz",
1010 | "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==",
1011 | "dev": true,
1012 | "dependencies": {
1013 | "is-core-module": "^2.13.0",
1014 | "path-parse": "^1.0.7",
1015 | "supports-preserve-symlinks-flag": "^1.0.0"
1016 | },
1017 | "bin": {
1018 | "resolve": "bin/resolve"
1019 | },
1020 | "funding": {
1021 | "url": "https://github.com/sponsors/ljharb"
1022 | }
1023 | },
1024 | "node_modules/rollup": {
1025 | "version": "3.28.0",
1026 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.0.tgz",
1027 | "integrity": "sha512-d7zhvo1OUY2SXSM6pfNjgD5+d0Nz87CUp4mt8l/GgVP3oBsPwzNvSzyu1me6BSG9JIgWNTVcafIXBIyM8yQ3yw==",
1028 | "dev": true,
1029 | "bin": {
1030 | "rollup": "dist/bin/rollup"
1031 | },
1032 | "engines": {
1033 | "node": ">=14.18.0",
1034 | "npm": ">=8.0.0"
1035 | },
1036 | "optionalDependencies": {
1037 | "fsevents": "~2.3.2"
1038 | }
1039 | },
1040 | "node_modules/source-map": {
1041 | "version": "0.6.1",
1042 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1043 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1044 | "dev": true,
1045 | "optional": true,
1046 | "peer": true,
1047 | "engines": {
1048 | "node": ">=0.10.0"
1049 | }
1050 | },
1051 | "node_modules/source-map-js": {
1052 | "version": "1.2.0",
1053 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
1054 | "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
1055 | "engines": {
1056 | "node": ">=0.10.0"
1057 | }
1058 | },
1059 | "node_modules/source-map-support": {
1060 | "version": "0.5.21",
1061 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
1062 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
1063 | "dev": true,
1064 | "optional": true,
1065 | "peer": true,
1066 | "dependencies": {
1067 | "buffer-from": "^1.0.0",
1068 | "source-map": "^0.6.0"
1069 | }
1070 | },
1071 | "node_modules/supports-preserve-symlinks-flag": {
1072 | "version": "1.0.0",
1073 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1074 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1075 | "dev": true,
1076 | "engines": {
1077 | "node": ">= 0.4"
1078 | },
1079 | "funding": {
1080 | "url": "https://github.com/sponsors/ljharb"
1081 | }
1082 | },
1083 | "node_modules/terser": {
1084 | "version": "5.19.2",
1085 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz",
1086 | "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==",
1087 | "dev": true,
1088 | "optional": true,
1089 | "peer": true,
1090 | "dependencies": {
1091 | "@jridgewell/source-map": "^0.3.3",
1092 | "acorn": "^8.8.2",
1093 | "commander": "^2.20.0",
1094 | "source-map-support": "~0.5.20"
1095 | },
1096 | "bin": {
1097 | "terser": "bin/terser"
1098 | },
1099 | "engines": {
1100 | "node": ">=10"
1101 | }
1102 | },
1103 | "node_modules/terser/node_modules/commander": {
1104 | "version": "2.20.3",
1105 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
1106 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
1107 | "dev": true,
1108 | "optional": true,
1109 | "peer": true
1110 | },
1111 | "node_modules/typescript": {
1112 | "version": "4.9.5",
1113 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
1114 | "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
1115 | "dev": true,
1116 | "bin": {
1117 | "tsc": "bin/tsc",
1118 | "tsserver": "bin/tsserver"
1119 | },
1120 | "engines": {
1121 | "node": ">=4.2.0"
1122 | }
1123 | },
1124 | "node_modules/vite": {
1125 | "version": "4.5.3",
1126 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz",
1127 | "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==",
1128 | "dev": true,
1129 | "dependencies": {
1130 | "esbuild": "^0.18.10",
1131 | "postcss": "^8.4.27",
1132 | "rollup": "^3.27.1"
1133 | },
1134 | "bin": {
1135 | "vite": "bin/vite.js"
1136 | },
1137 | "engines": {
1138 | "node": "^14.18.0 || >=16.0.0"
1139 | },
1140 | "funding": {
1141 | "url": "https://github.com/vitejs/vite?sponsor=1"
1142 | },
1143 | "optionalDependencies": {
1144 | "fsevents": "~2.3.2"
1145 | },
1146 | "peerDependencies": {
1147 | "@types/node": ">= 14",
1148 | "less": "*",
1149 | "lightningcss": "^1.21.0",
1150 | "sass": "*",
1151 | "stylus": "*",
1152 | "sugarss": "*",
1153 | "terser": "^5.4.0"
1154 | },
1155 | "peerDependenciesMeta": {
1156 | "@types/node": {
1157 | "optional": true
1158 | },
1159 | "less": {
1160 | "optional": true
1161 | },
1162 | "lightningcss": {
1163 | "optional": true
1164 | },
1165 | "sass": {
1166 | "optional": true
1167 | },
1168 | "stylus": {
1169 | "optional": true
1170 | },
1171 | "sugarss": {
1172 | "optional": true
1173 | },
1174 | "terser": {
1175 | "optional": true
1176 | }
1177 | }
1178 | },
1179 | "node_modules/vue": {
1180 | "version": "3.3.4",
1181 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
1182 | "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
1183 | "dependencies": {
1184 | "@vue/compiler-dom": "3.3.4",
1185 | "@vue/compiler-sfc": "3.3.4",
1186 | "@vue/runtime-dom": "3.3.4",
1187 | "@vue/server-renderer": "3.3.4",
1188 | "@vue/shared": "3.3.4"
1189 | }
1190 | },
1191 | "node_modules/wrappy": {
1192 | "version": "1.0.2",
1193 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1194 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
1195 | "dev": true
1196 | }
1197 | },
1198 | "dependencies": {
1199 | "@babel/parser": {
1200 | "version": "7.22.10",
1201 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.10.tgz",
1202 | "integrity": "sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ=="
1203 | },
1204 | "@esbuild/android-arm": {
1205 | "version": "0.18.20",
1206 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
1207 | "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
1208 | "dev": true,
1209 | "optional": true
1210 | },
1211 | "@esbuild/android-arm64": {
1212 | "version": "0.18.20",
1213 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
1214 | "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
1215 | "dev": true,
1216 | "optional": true
1217 | },
1218 | "@esbuild/android-x64": {
1219 | "version": "0.18.20",
1220 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
1221 | "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
1222 | "dev": true,
1223 | "optional": true
1224 | },
1225 | "@esbuild/darwin-arm64": {
1226 | "version": "0.18.20",
1227 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
1228 | "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
1229 | "dev": true,
1230 | "optional": true
1231 | },
1232 | "@esbuild/darwin-x64": {
1233 | "version": "0.18.20",
1234 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
1235 | "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
1236 | "dev": true,
1237 | "optional": true
1238 | },
1239 | "@esbuild/freebsd-arm64": {
1240 | "version": "0.18.20",
1241 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
1242 | "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
1243 | "dev": true,
1244 | "optional": true
1245 | },
1246 | "@esbuild/freebsd-x64": {
1247 | "version": "0.18.20",
1248 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
1249 | "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
1250 | "dev": true,
1251 | "optional": true
1252 | },
1253 | "@esbuild/linux-arm": {
1254 | "version": "0.18.20",
1255 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
1256 | "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
1257 | "dev": true,
1258 | "optional": true
1259 | },
1260 | "@esbuild/linux-arm64": {
1261 | "version": "0.18.20",
1262 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
1263 | "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
1264 | "dev": true,
1265 | "optional": true
1266 | },
1267 | "@esbuild/linux-ia32": {
1268 | "version": "0.18.20",
1269 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
1270 | "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
1271 | "dev": true,
1272 | "optional": true
1273 | },
1274 | "@esbuild/linux-loong64": {
1275 | "version": "0.18.20",
1276 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
1277 | "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
1278 | "dev": true,
1279 | "optional": true
1280 | },
1281 | "@esbuild/linux-mips64el": {
1282 | "version": "0.18.20",
1283 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
1284 | "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
1285 | "dev": true,
1286 | "optional": true
1287 | },
1288 | "@esbuild/linux-ppc64": {
1289 | "version": "0.18.20",
1290 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
1291 | "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
1292 | "dev": true,
1293 | "optional": true
1294 | },
1295 | "@esbuild/linux-riscv64": {
1296 | "version": "0.18.20",
1297 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
1298 | "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
1299 | "dev": true,
1300 | "optional": true
1301 | },
1302 | "@esbuild/linux-s390x": {
1303 | "version": "0.18.20",
1304 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
1305 | "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
1306 | "dev": true,
1307 | "optional": true
1308 | },
1309 | "@esbuild/linux-x64": {
1310 | "version": "0.18.20",
1311 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
1312 | "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
1313 | "dev": true,
1314 | "optional": true
1315 | },
1316 | "@esbuild/netbsd-x64": {
1317 | "version": "0.18.20",
1318 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
1319 | "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
1320 | "dev": true,
1321 | "optional": true
1322 | },
1323 | "@esbuild/openbsd-x64": {
1324 | "version": "0.18.20",
1325 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
1326 | "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
1327 | "dev": true,
1328 | "optional": true
1329 | },
1330 | "@esbuild/sunos-x64": {
1331 | "version": "0.18.20",
1332 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
1333 | "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
1334 | "dev": true,
1335 | "optional": true
1336 | },
1337 | "@esbuild/win32-arm64": {
1338 | "version": "0.18.20",
1339 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
1340 | "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
1341 | "dev": true,
1342 | "optional": true
1343 | },
1344 | "@esbuild/win32-ia32": {
1345 | "version": "0.18.20",
1346 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
1347 | "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
1348 | "dev": true,
1349 | "optional": true
1350 | },
1351 | "@esbuild/win32-x64": {
1352 | "version": "0.18.20",
1353 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
1354 | "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
1355 | "dev": true,
1356 | "optional": true
1357 | },
1358 | "@jridgewell/gen-mapping": {
1359 | "version": "0.3.3",
1360 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
1361 | "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
1362 | "dev": true,
1363 | "optional": true,
1364 | "peer": true,
1365 | "requires": {
1366 | "@jridgewell/set-array": "^1.0.1",
1367 | "@jridgewell/sourcemap-codec": "^1.4.10",
1368 | "@jridgewell/trace-mapping": "^0.3.9"
1369 | }
1370 | },
1371 | "@jridgewell/resolve-uri": {
1372 | "version": "3.1.1",
1373 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
1374 | "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
1375 | "dev": true,
1376 | "optional": true,
1377 | "peer": true
1378 | },
1379 | "@jridgewell/set-array": {
1380 | "version": "1.1.2",
1381 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
1382 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
1383 | "dev": true,
1384 | "optional": true,
1385 | "peer": true
1386 | },
1387 | "@jridgewell/source-map": {
1388 | "version": "0.3.5",
1389 | "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz",
1390 | "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==",
1391 | "dev": true,
1392 | "optional": true,
1393 | "peer": true,
1394 | "requires": {
1395 | "@jridgewell/gen-mapping": "^0.3.0",
1396 | "@jridgewell/trace-mapping": "^0.3.9"
1397 | }
1398 | },
1399 | "@jridgewell/sourcemap-codec": {
1400 | "version": "1.4.15",
1401 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
1402 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
1403 | },
1404 | "@jridgewell/trace-mapping": {
1405 | "version": "0.3.19",
1406 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz",
1407 | "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==",
1408 | "dev": true,
1409 | "optional": true,
1410 | "peer": true,
1411 | "requires": {
1412 | "@jridgewell/resolve-uri": "^3.1.0",
1413 | "@jridgewell/sourcemap-codec": "^1.4.14"
1414 | }
1415 | },
1416 | "@rollup/plugin-commonjs": {
1417 | "version": "25.0.4",
1418 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.4.tgz",
1419 | "integrity": "sha512-L92Vz9WUZXDnlQQl3EwbypJR4+DM2EbsO+/KOcEkP4Mc6Ct453EeDB2uH9lgRwj4w5yflgNpq9pHOiY8aoUXBQ==",
1420 | "dev": true,
1421 | "requires": {
1422 | "@rollup/pluginutils": "^5.0.1",
1423 | "commondir": "^1.0.1",
1424 | "estree-walker": "^2.0.2",
1425 | "glob": "^8.0.3",
1426 | "is-reference": "1.2.1",
1427 | "magic-string": "^0.27.0"
1428 | }
1429 | },
1430 | "@rollup/plugin-node-resolve": {
1431 | "version": "15.1.0",
1432 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.1.0.tgz",
1433 | "integrity": "sha512-xeZHCgsiZ9pzYVgAo9580eCGqwh/XCEUM9q6iQfGNocjgkufHAqC3exA+45URvhiYV8sBF9RlBai650eNs7AsA==",
1434 | "dev": true,
1435 | "requires": {
1436 | "@rollup/pluginutils": "^5.0.1",
1437 | "@types/resolve": "1.20.2",
1438 | "deepmerge": "^4.2.2",
1439 | "is-builtin-module": "^3.2.1",
1440 | "is-module": "^1.0.0",
1441 | "resolve": "^1.22.1"
1442 | }
1443 | },
1444 | "@rollup/pluginutils": {
1445 | "version": "5.0.3",
1446 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.3.tgz",
1447 | "integrity": "sha512-hfllNN4a80rwNQ9QCxhxuHCGHMAvabXqxNdaChUSSadMre7t4iEUI6fFAhBOn/eIYTgYVhBv7vCLsAJ4u3lf3g==",
1448 | "dev": true,
1449 | "requires": {
1450 | "@types/estree": "^1.0.0",
1451 | "estree-walker": "^2.0.2",
1452 | "picomatch": "^2.3.1"
1453 | }
1454 | },
1455 | "@types/estree": {
1456 | "version": "1.0.1",
1457 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
1458 | "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==",
1459 | "dev": true
1460 | },
1461 | "@types/node": {
1462 | "version": "20.5.0",
1463 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.0.tgz",
1464 | "integrity": "sha512-Mgq7eCtoTjT89FqNoTzzXg2XvCi5VMhRV6+I2aYanc6kQCBImeNaAYRs/DyoVqk1YEUJK5gN9VO7HRIdz4Wo3Q==",
1465 | "dev": true,
1466 | "optional": true,
1467 | "peer": true
1468 | },
1469 | "@types/resolve": {
1470 | "version": "1.20.2",
1471 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
1472 | "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
1473 | "dev": true
1474 | },
1475 | "@vitejs/plugin-vue": {
1476 | "version": "4.2.3",
1477 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.2.3.tgz",
1478 | "integrity": "sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==",
1479 | "dev": true,
1480 | "requires": {}
1481 | },
1482 | "@vue/compiler-core": {
1483 | "version": "3.3.4",
1484 | "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
1485 | "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
1486 | "requires": {
1487 | "@babel/parser": "^7.21.3",
1488 | "@vue/shared": "3.3.4",
1489 | "estree-walker": "^2.0.2",
1490 | "source-map-js": "^1.0.2"
1491 | }
1492 | },
1493 | "@vue/compiler-dom": {
1494 | "version": "3.3.4",
1495 | "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
1496 | "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
1497 | "requires": {
1498 | "@vue/compiler-core": "3.3.4",
1499 | "@vue/shared": "3.3.4"
1500 | }
1501 | },
1502 | "@vue/compiler-sfc": {
1503 | "version": "3.3.4",
1504 | "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
1505 | "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
1506 | "requires": {
1507 | "@babel/parser": "^7.20.15",
1508 | "@vue/compiler-core": "3.3.4",
1509 | "@vue/compiler-dom": "3.3.4",
1510 | "@vue/compiler-ssr": "3.3.4",
1511 | "@vue/reactivity-transform": "3.3.4",
1512 | "@vue/shared": "3.3.4",
1513 | "estree-walker": "^2.0.2",
1514 | "magic-string": "^0.30.0",
1515 | "postcss": "^8.1.10",
1516 | "source-map-js": "^1.0.2"
1517 | },
1518 | "dependencies": {
1519 | "magic-string": {
1520 | "version": "0.30.2",
1521 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.2.tgz",
1522 | "integrity": "sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==",
1523 | "requires": {
1524 | "@jridgewell/sourcemap-codec": "^1.4.15"
1525 | }
1526 | }
1527 | }
1528 | },
1529 | "@vue/compiler-ssr": {
1530 | "version": "3.3.4",
1531 | "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
1532 | "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
1533 | "requires": {
1534 | "@vue/compiler-dom": "3.3.4",
1535 | "@vue/shared": "3.3.4"
1536 | }
1537 | },
1538 | "@vue/reactivity": {
1539 | "version": "3.3.4",
1540 | "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz",
1541 | "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
1542 | "requires": {
1543 | "@vue/shared": "3.3.4"
1544 | }
1545 | },
1546 | "@vue/reactivity-transform": {
1547 | "version": "3.3.4",
1548 | "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
1549 | "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
1550 | "requires": {
1551 | "@babel/parser": "^7.20.15",
1552 | "@vue/compiler-core": "3.3.4",
1553 | "@vue/shared": "3.3.4",
1554 | "estree-walker": "^2.0.2",
1555 | "magic-string": "^0.30.0"
1556 | },
1557 | "dependencies": {
1558 | "magic-string": {
1559 | "version": "0.30.2",
1560 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.2.tgz",
1561 | "integrity": "sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==",
1562 | "requires": {
1563 | "@jridgewell/sourcemap-codec": "^1.4.15"
1564 | }
1565 | }
1566 | }
1567 | },
1568 | "@vue/runtime-core": {
1569 | "version": "3.3.4",
1570 | "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
1571 | "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
1572 | "requires": {
1573 | "@vue/reactivity": "3.3.4",
1574 | "@vue/shared": "3.3.4"
1575 | }
1576 | },
1577 | "@vue/runtime-dom": {
1578 | "version": "3.3.4",
1579 | "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
1580 | "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
1581 | "requires": {
1582 | "@vue/runtime-core": "3.3.4",
1583 | "@vue/shared": "3.3.4",
1584 | "csstype": "^3.1.1"
1585 | }
1586 | },
1587 | "@vue/server-renderer": {
1588 | "version": "3.3.4",
1589 | "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
1590 | "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
1591 | "requires": {
1592 | "@vue/compiler-ssr": "3.3.4",
1593 | "@vue/shared": "3.3.4"
1594 | }
1595 | },
1596 | "@vue/shared": {
1597 | "version": "3.3.4",
1598 | "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz",
1599 | "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
1600 | },
1601 | "acorn": {
1602 | "version": "8.10.0",
1603 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
1604 | "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
1605 | "dev": true,
1606 | "optional": true,
1607 | "peer": true
1608 | },
1609 | "balanced-match": {
1610 | "version": "1.0.2",
1611 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
1612 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
1613 | "dev": true
1614 | },
1615 | "brace-expansion": {
1616 | "version": "2.0.1",
1617 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
1618 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
1619 | "dev": true,
1620 | "requires": {
1621 | "balanced-match": "^1.0.0"
1622 | }
1623 | },
1624 | "buffer-from": {
1625 | "version": "1.1.2",
1626 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
1627 | "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
1628 | "dev": true,
1629 | "optional": true,
1630 | "peer": true
1631 | },
1632 | "builtin-modules": {
1633 | "version": "3.3.0",
1634 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
1635 | "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
1636 | "dev": true
1637 | },
1638 | "commondir": {
1639 | "version": "1.0.1",
1640 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
1641 | "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
1642 | "dev": true
1643 | },
1644 | "csstype": {
1645 | "version": "3.1.2",
1646 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
1647 | "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
1648 | },
1649 | "deepmerge": {
1650 | "version": "4.3.1",
1651 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
1652 | "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
1653 | "dev": true
1654 | },
1655 | "esbuild": {
1656 | "version": "0.18.20",
1657 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
1658 | "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
1659 | "dev": true,
1660 | "requires": {
1661 | "@esbuild/android-arm": "0.18.20",
1662 | "@esbuild/android-arm64": "0.18.20",
1663 | "@esbuild/android-x64": "0.18.20",
1664 | "@esbuild/darwin-arm64": "0.18.20",
1665 | "@esbuild/darwin-x64": "0.18.20",
1666 | "@esbuild/freebsd-arm64": "0.18.20",
1667 | "@esbuild/freebsd-x64": "0.18.20",
1668 | "@esbuild/linux-arm": "0.18.20",
1669 | "@esbuild/linux-arm64": "0.18.20",
1670 | "@esbuild/linux-ia32": "0.18.20",
1671 | "@esbuild/linux-loong64": "0.18.20",
1672 | "@esbuild/linux-mips64el": "0.18.20",
1673 | "@esbuild/linux-ppc64": "0.18.20",
1674 | "@esbuild/linux-riscv64": "0.18.20",
1675 | "@esbuild/linux-s390x": "0.18.20",
1676 | "@esbuild/linux-x64": "0.18.20",
1677 | "@esbuild/netbsd-x64": "0.18.20",
1678 | "@esbuild/openbsd-x64": "0.18.20",
1679 | "@esbuild/sunos-x64": "0.18.20",
1680 | "@esbuild/win32-arm64": "0.18.20",
1681 | "@esbuild/win32-ia32": "0.18.20",
1682 | "@esbuild/win32-x64": "0.18.20"
1683 | }
1684 | },
1685 | "estree-walker": {
1686 | "version": "2.0.2",
1687 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
1688 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
1689 | },
1690 | "fs.realpath": {
1691 | "version": "1.0.0",
1692 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
1693 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
1694 | "dev": true
1695 | },
1696 | "fsevents": {
1697 | "version": "2.3.2",
1698 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1699 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1700 | "dev": true,
1701 | "optional": true
1702 | },
1703 | "function-bind": {
1704 | "version": "1.1.1",
1705 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
1706 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
1707 | "dev": true
1708 | },
1709 | "glob": {
1710 | "version": "8.1.0",
1711 | "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
1712 | "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
1713 | "dev": true,
1714 | "requires": {
1715 | "fs.realpath": "^1.0.0",
1716 | "inflight": "^1.0.4",
1717 | "inherits": "2",
1718 | "minimatch": "^5.0.1",
1719 | "once": "^1.3.0"
1720 | }
1721 | },
1722 | "has": {
1723 | "version": "1.0.3",
1724 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1725 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1726 | "dev": true,
1727 | "requires": {
1728 | "function-bind": "^1.1.1"
1729 | }
1730 | },
1731 | "inflight": {
1732 | "version": "1.0.6",
1733 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1734 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1735 | "dev": true,
1736 | "requires": {
1737 | "once": "^1.3.0",
1738 | "wrappy": "1"
1739 | }
1740 | },
1741 | "inherits": {
1742 | "version": "2.0.4",
1743 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1744 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1745 | "dev": true
1746 | },
1747 | "is-builtin-module": {
1748 | "version": "3.2.1",
1749 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
1750 | "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
1751 | "dev": true,
1752 | "requires": {
1753 | "builtin-modules": "^3.3.0"
1754 | }
1755 | },
1756 | "is-core-module": {
1757 | "version": "2.13.0",
1758 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz",
1759 | "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==",
1760 | "dev": true,
1761 | "requires": {
1762 | "has": "^1.0.3"
1763 | }
1764 | },
1765 | "is-module": {
1766 | "version": "1.0.0",
1767 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
1768 | "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
1769 | "dev": true
1770 | },
1771 | "is-reference": {
1772 | "version": "1.2.1",
1773 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
1774 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
1775 | "dev": true,
1776 | "requires": {
1777 | "@types/estree": "*"
1778 | }
1779 | },
1780 | "magic-string": {
1781 | "version": "0.27.0",
1782 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
1783 | "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
1784 | "dev": true,
1785 | "requires": {
1786 | "@jridgewell/sourcemap-codec": "^1.4.13"
1787 | }
1788 | },
1789 | "minimatch": {
1790 | "version": "5.1.6",
1791 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
1792 | "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
1793 | "dev": true,
1794 | "requires": {
1795 | "brace-expansion": "^2.0.1"
1796 | }
1797 | },
1798 | "nanoid": {
1799 | "version": "3.3.7",
1800 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
1801 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g=="
1802 | },
1803 | "once": {
1804 | "version": "1.4.0",
1805 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1806 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1807 | "dev": true,
1808 | "requires": {
1809 | "wrappy": "1"
1810 | }
1811 | },
1812 | "path-parse": {
1813 | "version": "1.0.7",
1814 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1815 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1816 | "dev": true
1817 | },
1818 | "picocolors": {
1819 | "version": "1.0.1",
1820 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
1821 | "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
1822 | },
1823 | "picomatch": {
1824 | "version": "2.3.1",
1825 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1826 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1827 | "dev": true
1828 | },
1829 | "postcss": {
1830 | "version": "8.4.40",
1831 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz",
1832 | "integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==",
1833 | "requires": {
1834 | "nanoid": "^3.3.7",
1835 | "picocolors": "^1.0.1",
1836 | "source-map-js": "^1.2.0"
1837 | }
1838 | },
1839 | "resolve": {
1840 | "version": "1.22.4",
1841 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz",
1842 | "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==",
1843 | "dev": true,
1844 | "requires": {
1845 | "is-core-module": "^2.13.0",
1846 | "path-parse": "^1.0.7",
1847 | "supports-preserve-symlinks-flag": "^1.0.0"
1848 | }
1849 | },
1850 | "rollup": {
1851 | "version": "3.28.0",
1852 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.28.0.tgz",
1853 | "integrity": "sha512-d7zhvo1OUY2SXSM6pfNjgD5+d0Nz87CUp4mt8l/GgVP3oBsPwzNvSzyu1me6BSG9JIgWNTVcafIXBIyM8yQ3yw==",
1854 | "dev": true,
1855 | "requires": {
1856 | "fsevents": "~2.3.2"
1857 | }
1858 | },
1859 | "source-map": {
1860 | "version": "0.6.1",
1861 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
1862 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
1863 | "dev": true,
1864 | "optional": true,
1865 | "peer": true
1866 | },
1867 | "source-map-js": {
1868 | "version": "1.2.0",
1869 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
1870 | "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg=="
1871 | },
1872 | "source-map-support": {
1873 | "version": "0.5.21",
1874 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
1875 | "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
1876 | "dev": true,
1877 | "optional": true,
1878 | "peer": true,
1879 | "requires": {
1880 | "buffer-from": "^1.0.0",
1881 | "source-map": "^0.6.0"
1882 | }
1883 | },
1884 | "supports-preserve-symlinks-flag": {
1885 | "version": "1.0.0",
1886 | "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1887 | "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1888 | "dev": true
1889 | },
1890 | "terser": {
1891 | "version": "5.19.2",
1892 | "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.2.tgz",
1893 | "integrity": "sha512-qC5+dmecKJA4cpYxRa5aVkKehYsQKc+AHeKl0Oe62aYjBL8ZA33tTljktDHJSaxxMnbI5ZYw+o/S2DxxLu8OfA==",
1894 | "dev": true,
1895 | "optional": true,
1896 | "peer": true,
1897 | "requires": {
1898 | "@jridgewell/source-map": "^0.3.3",
1899 | "acorn": "^8.8.2",
1900 | "commander": "^2.20.0",
1901 | "source-map-support": "~0.5.20"
1902 | },
1903 | "dependencies": {
1904 | "commander": {
1905 | "version": "2.20.3",
1906 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
1907 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
1908 | "dev": true,
1909 | "optional": true,
1910 | "peer": true
1911 | }
1912 | }
1913 | },
1914 | "typescript": {
1915 | "version": "4.9.5",
1916 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
1917 | "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
1918 | "dev": true
1919 | },
1920 | "vite": {
1921 | "version": "4.5.3",
1922 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz",
1923 | "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==",
1924 | "dev": true,
1925 | "requires": {
1926 | "esbuild": "^0.18.10",
1927 | "fsevents": "~2.3.2",
1928 | "postcss": "^8.4.27",
1929 | "rollup": "^3.27.1"
1930 | }
1931 | },
1932 | "vue": {
1933 | "version": "3.3.4",
1934 | "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz",
1935 | "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
1936 | "requires": {
1937 | "@vue/compiler-dom": "3.3.4",
1938 | "@vue/compiler-sfc": "3.3.4",
1939 | "@vue/runtime-dom": "3.3.4",
1940 | "@vue/server-renderer": "3.3.4",
1941 | "@vue/shared": "3.3.4"
1942 | }
1943 | },
1944 | "wrappy": {
1945 | "version": "1.0.2",
1946 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1947 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
1948 | "dev": true
1949 | }
1950 | }
1951 | }
1952 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-forward-slots",
3 | "version": "5.0.4",
4 | "description": "Forward slots to child components",
5 | "author": "Jesse Gall",
6 | "scripts": {
7 | "build": "vite build",
8 | "postbuild": "cp ./src/vue-forward-slots.d.ts ./dist/vue-forward-slots.d.ts && rm ./dist/index.html && rm ./dist/favicon.ico"
9 | },
10 | "main": "dist/vue-forward-slots.js",
11 | "module": "dist/vue-forward-slots.mjs",
12 | "types": "dist/vue-forward-slots.d.ts",
13 | "files": [
14 | "dist"
15 | ],
16 | "dependencies": {
17 | "vue": "^3.0.0"
18 | },
19 | "devDependencies": {
20 | "@rollup/plugin-commonjs": "^25.0.4",
21 | "@rollup/plugin-node-resolve": "^15.1.0",
22 | "@vitejs/plugin-vue": "^4.2.3",
23 | "typescript": "^4.9.5",
24 | "vite": "^4.4.9"
25 | },
26 | "homepage": "https://github.com/jessegall/vue-forward-slots",
27 | "keywords": [
28 | "vue",
29 | "vue3",
30 | "forward",
31 | "slots",
32 | "forward-slots"
33 | ],
34 | "license": "MIT",
35 | "repository": {
36 | "type": "git",
37 | "url": "https://github.com/jessegall/vue-forward-slots"
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jessegall/vue-forward-slots/53a84e36c99fe1cc2e97f182aba628f8cbb20717/public/favicon.ico
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | <%= htmlWebpackPlugin.options.title %>
9 |
10 |
11 |
12 | We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/components/forward-slots.ts:
--------------------------------------------------------------------------------
1 | import {
2 | computed,
3 | defineComponent,
4 | h,
5 | PropType,
6 | Slot,
7 | VNode,
8 | } from 'vue';
9 |
10 | type SlotOption = string | string[];
11 |
12 | type Slots = {
13 | [name: string]: Slot | undefined;
14 | };
15 |
16 | interface ForwardSlotsProps {
17 | slots: Slots;
18 | only?: SlotOption;
19 | except?: SlotOption;
20 | }
21 |
22 | function isValidSlotOption(value: any): value is SlotOption {
23 | return typeof value === 'string' || Array.isArray(value);
24 | }
25 |
26 | function wrap(input: any): string[] {
27 | if (! Array.isArray(input)) {
28 | input = [input];
29 | }
30 |
31 | return input.filter(Boolean);
32 | }
33 |
34 | function createSlots(slots: Slots, options: ForwardSlotsProps) {
35 | const include = wrap(options.only);
36 | const exclude = wrap(options.except);
37 |
38 | return Object.entries(slots)
39 | .filter(([slotName]) => shouldIncludeSlot(slotName, include, exclude))
40 | .reduce((result, [slotName, slotFunction]) => {
41 | result[slotName] = (args: any) => slotFunction(args);
42 | return result;
43 | }, {} as Slots);
44 | }
45 |
46 | function shouldIncludeSlot(key: string, include: string[], exclude: string[]): boolean {
47 | if (include.length && ! include.includes(key)) {
48 | return false
49 | }
50 |
51 | return ! exclude.includes(key);
52 | }
53 |
54 | function createComponent(component: VNode | undefined, options: ForwardSlotsProps, slots: Slots): VNode {
55 | return h(component, {}, createSlots(slots, options));
56 | }
57 |
58 | export const ForwardSlots = defineComponent({
59 | name: "ForwardSlots",
60 | props: {
61 | slots: {
62 | type: Object as PropType,
63 | default: () => ({}),
64 | required: true
65 | },
66 | only: {
67 | type: [String, Array] as PropType,
68 | default: () => [] as SlotOption,
69 | validator: isValidSlotOption,
70 | },
71 | except: {
72 | type: [String, Array] as PropType,
73 | default: () => [] as SlotOption,
74 | validator: isValidSlotOption,
75 | }
76 | },
77 | setup(props: ForwardSlotsProps, ctx) {
78 | const children = computed(() => ctx.slots.default?.() || []);
79 |
80 | return () => children.value.map((node: VNode) => {
81 | const slots = Object.assign({}, node.children, props.slots);
82 | return createComponent(node, props, slots)
83 | });
84 | }
85 | })
86 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import { ForwardSlots } from "./components/forward-slots";
2 |
3 | export {
4 | ForwardSlots,
5 | }
--------------------------------------------------------------------------------
/src/shims-vue.d.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | declare module '*.vue' {
3 | import type { DefineComponent } from 'vue'
4 | const component: DefineComponent<{}, {}, any>
5 | export default component
6 | }
7 |
--------------------------------------------------------------------------------
/src/vue-forward-slots.d.ts:
--------------------------------------------------------------------------------
1 | import { DefineComponent, Slot } from 'vue';
2 |
3 | export interface ForwardSlotsProps {
4 | slots: {
5 | [name: string]: Slot | undefined;
6 | };
7 | only?: string | string[];
8 | except?: string | string[];
9 | }
10 |
11 | export const ForwardSlots: DefineComponent;
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "module": "esnext",
5 | "jsx": "preserve",
6 | "importHelpers": true,
7 | "moduleResolution": "node",
8 | "allowJs": true,
9 | "esModuleInterop": true,
10 | "allowSyntheticDefaultImports": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "useDefineForClassFields": true,
13 | "sourceMap": true,
14 | "baseUrl": ".",
15 | "declaration": true,
16 | "outDir": "./dist/",
17 | "paths": {
18 | "@/*": [
19 | "src/*"
20 | ]
21 | },
22 | "lib": [
23 | "esnext",
24 | "dom",
25 | "dom.iterable",
26 | "scripthost"
27 | ]
28 | },
29 | "include": [
30 | "src/**/*.ts",
31 | "src/**/*.tsx",
32 | "src/**/*.vue",
33 | "tests/**/*.ts",
34 | "tests/**/*.tsx"
35 | ],
36 | "exclude": [
37 | "node_modules"
38 | ]
39 | }
40 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import vue from '@vitejs/plugin-vue'
3 | import commonjs from '@rollup/plugin-commonjs';
4 | import { nodeResolve } from '@rollup/plugin-node-resolve';
5 |
6 | export default defineConfig({
7 | plugins: [vue()],
8 | build: {
9 | lib: {
10 | entry: 'src/index.ts',
11 | name: 'ForwardSlots',
12 | formats: ['es', 'cjs'],
13 | },
14 | rollupOptions: {
15 | external: ['vue'],
16 | output: {
17 | globals: {
18 | vue: 'Vue'
19 | }
20 | },
21 | plugins: [nodeResolve(), commonjs()]
22 | }
23 | }
24 | })
25 |
--------------------------------------------------------------------------------