add react and vue
Browse files- demo.ipynb +0 -548
- jsfiles/data_nivo.js +272 -0
- jsfiles/index.html +44 -0
- jsfiles/index.js +143 -0
- jsfiles/js_script.js +2 -1
- jsfiles/jslearn.html +0 -21
- jsfiles/jslearn.md +0 -49
- jsfiles/main.css +51 -0
- jsfiles/nivo.js +76 -0
- my-app/.gitignore +23 -0
- my-app/README.md +70 -0
- my-app/package-lock.json +0 -0
- my-app/package.json +38 -0
- my-app/public/favicon.ico +0 -0
- my-app/public/index.html +43 -0
- my-app/public/manifest.json +25 -0
- my-app/public/robots.txt +3 -0
- my-app/src/App.css +38 -0
- my-app/src/App.js +25 -0
- my-app/src/App.test.js +8 -0
- my-app/src/index.css +13 -0
- my-app/src/index.js +17 -0
- my-app/src/logo.svg +1 -0
- my-app/src/reportWebVitals.js +13 -0
- my-app/src/setupTests.js +5 -0
- notebook_for_knit.html +0 -0
- notebook_for_knit.ipynb +0 -0
- vue-project/.gitignore +28 -0
- vue-project/.vscode/extensions.json +3 -0
- vue-project/README.md +29 -0
- vue-project/index.html +13 -0
- vue-project/package-lock.json +435 -0
- vue-project/package.json +16 -0
- vue-project/public/favicon.ico +0 -0
- vue-project/src/App.vue +47 -0
- vue-project/src/assets/base.css +74 -0
- vue-project/src/assets/logo.svg +1 -0
- vue-project/src/assets/main.css +35 -0
- vue-project/src/components/HelloWorld.vue +43 -0
- vue-project/src/components/TheWelcome.vue +84 -0
- vue-project/src/components/WelcomeItem.vue +86 -0
- vue-project/src/components/icons/IconCommunity.vue +7 -0
- vue-project/src/components/icons/IconDocumentation.vue +7 -0
- vue-project/src/components/icons/IconEcosystem.vue +7 -0
- vue-project/src/components/icons/IconSupport.vue +7 -0
- vue-project/src/components/icons/IconTooling.vue +19 -0
- vue-project/src/main.js +6 -0
- vue-project/vite.config.js +14 -0
demo.ipynb
DELETED
@@ -1,548 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"cells": [
|
3 |
-
{
|
4 |
-
"cell_type": "code",
|
5 |
-
"execution_count": 1,
|
6 |
-
"metadata": {},
|
7 |
-
"outputs": [],
|
8 |
-
"source": [
|
9 |
-
"%load_ext pretty_jupyter\n",
|
10 |
-
"\n",
|
11 |
-
"import pandas as pd\n",
|
12 |
-
"import matplotlib.pyplot as plt\n",
|
13 |
-
"import seaborn as sns"
|
14 |
-
]
|
15 |
-
},
|
16 |
-
{
|
17 |
-
"cell_type": "code",
|
18 |
-
"execution_count": 2,
|
19 |
-
"metadata": {},
|
20 |
-
"outputs": [],
|
21 |
-
"source": [
|
22 |
-
"# set theming to \"seaborn\" (instead of matplotlib) and set background to white so it works with both normal and darkmode\n",
|
23 |
-
"plt.plot([0, 1], [0, 1])\n",
|
24 |
-
"plt.close()\n",
|
25 |
-
"sns.set(rc={'figure.facecolor':'white'})\n",
|
26 |
-
"sns.set_style()\n",
|
27 |
-
"\n",
|
28 |
-
"\n",
|
29 |
-
"blue_color = sns.color_palette()[0]"
|
30 |
-
]
|
31 |
-
},
|
32 |
-
{
|
33 |
-
"cell_type": "code",
|
34 |
-
"execution_count": 3,
|
35 |
-
"metadata": {},
|
36 |
-
"outputs": [
|
37 |
-
{
|
38 |
-
"data": {
|
39 |
-
"text/markdown": [
|
40 |
-
"\n",
|
41 |
-
"## Motivation\n",
|
42 |
-
"The goal of this file is to demonstrate the capabilities of Pretty Jupyter package."
|
43 |
-
],
|
44 |
-
"text/plain": [
|
45 |
-
"<IPython.core.display.Markdown object>"
|
46 |
-
]
|
47 |
-
},
|
48 |
-
"execution_count": 3,
|
49 |
-
"metadata": {},
|
50 |
-
"output_type": "execute_result"
|
51 |
-
}
|
52 |
-
],
|
53 |
-
"source": [
|
54 |
-
"%%jinja markdown\n",
|
55 |
-
"\n",
|
56 |
-
"## Motivation\n",
|
57 |
-
"The goal of this file is to demonstrate the capabilities of Pretty Jupyter package."
|
58 |
-
]
|
59 |
-
},
|
60 |
-
{
|
61 |
-
"cell_type": "code",
|
62 |
-
"execution_count": 4,
|
63 |
-
"metadata": {},
|
64 |
-
"outputs": [
|
65 |
-
{
|
66 |
-
"data": {
|
67 |
-
"text/markdown": [
|
68 |
-
"\n",
|
69 |
-
"## Input Data\n",
|
70 |
-
"<span class='pj-token tabset tabset-pills' style='display: none;'></span>\n",
|
71 |
-
"\n",
|
72 |
-
"In this section, we inspect the input data."
|
73 |
-
],
|
74 |
-
"text/plain": [
|
75 |
-
"<IPython.core.display.Markdown object>"
|
76 |
-
]
|
77 |
-
},
|
78 |
-
"execution_count": 4,
|
79 |
-
"metadata": {},
|
80 |
-
"output_type": "execute_result"
|
81 |
-
}
|
82 |
-
],
|
83 |
-
"source": [
|
84 |
-
"%%jinja markdown\n",
|
85 |
-
"\n",
|
86 |
-
"## Input Data\n",
|
87 |
-
"[//]: <> (-.- tabset tabset-pills)\n",
|
88 |
-
"\n",
|
89 |
-
"In this section, we inspect the input data."
|
90 |
-
]
|
91 |
-
},
|
92 |
-
{
|
93 |
-
"cell_type": "code",
|
94 |
-
"execution_count": 5,
|
95 |
-
"metadata": {},
|
96 |
-
"outputs": [
|
97 |
-
{
|
98 |
-
"data": {
|
99 |
-
"text/html": [
|
100 |
-
"<div>\n",
|
101 |
-
"<style scoped>\n",
|
102 |
-
" .dataframe tbody tr th:only-of-type {\n",
|
103 |
-
" vertical-align: middle;\n",
|
104 |
-
" }\n",
|
105 |
-
"\n",
|
106 |
-
" .dataframe tbody tr th {\n",
|
107 |
-
" vertical-align: top;\n",
|
108 |
-
" }\n",
|
109 |
-
"\n",
|
110 |
-
" .dataframe thead th {\n",
|
111 |
-
" text-align: right;\n",
|
112 |
-
" }\n",
|
113 |
-
"</style>\n",
|
114 |
-
"<table border=\"1\" class=\"dataframe\">\n",
|
115 |
-
" <thead>\n",
|
116 |
-
" <tr style=\"text-align: right;\">\n",
|
117 |
-
" <th></th>\n",
|
118 |
-
" <th>money</th>\n",
|
119 |
-
" <th>weight</th>\n",
|
120 |
-
" <th>gender</th>\n",
|
121 |
-
" </tr>\n",
|
122 |
-
" </thead>\n",
|
123 |
-
" <tbody>\n",
|
124 |
-
" <tr>\n",
|
125 |
-
" <th>0</th>\n",
|
126 |
-
" <td>30000</td>\n",
|
127 |
-
" <td>80</td>\n",
|
128 |
-
" <td>Male</td>\n",
|
129 |
-
" </tr>\n",
|
130 |
-
" <tr>\n",
|
131 |
-
" <th>1</th>\n",
|
132 |
-
" <td>40000</td>\n",
|
133 |
-
" <td>50</td>\n",
|
134 |
-
" <td>Female</td>\n",
|
135 |
-
" </tr>\n",
|
136 |
-
" <tr>\n",
|
137 |
-
" <th>2</th>\n",
|
138 |
-
" <td>70000</td>\n",
|
139 |
-
" <td>80</td>\n",
|
140 |
-
" <td>Male</td>\n",
|
141 |
-
" </tr>\n",
|
142 |
-
" <tr>\n",
|
143 |
-
" <th>3</th>\n",
|
144 |
-
" <td>65000</td>\n",
|
145 |
-
" <td>70</td>\n",
|
146 |
-
" <td>Male</td>\n",
|
147 |
-
" </tr>\n",
|
148 |
-
" <tr>\n",
|
149 |
-
" <th>4</th>\n",
|
150 |
-
" <td>25000</td>\n",
|
151 |
-
" <td>54</td>\n",
|
152 |
-
" <td>Female</td>\n",
|
153 |
-
" </tr>\n",
|
154 |
-
" </tbody>\n",
|
155 |
-
"</table>\n",
|
156 |
-
"</div>"
|
157 |
-
],
|
158 |
-
"text/plain": [
|
159 |
-
" money weight gender\n",
|
160 |
-
"0 30000 80 Male\n",
|
161 |
-
"1 40000 50 Female\n",
|
162 |
-
"2 70000 80 Male\n",
|
163 |
-
"3 65000 70 Male\n",
|
164 |
-
"4 25000 54 Female"
|
165 |
-
]
|
166 |
-
},
|
167 |
-
"execution_count": 5,
|
168 |
-
"metadata": {},
|
169 |
-
"output_type": "execute_result"
|
170 |
-
}
|
171 |
-
],
|
172 |
-
"source": [
|
173 |
-
"data = pd.DataFrame({\n",
|
174 |
-
" \"money\": [30000, 40000, 70000, 65000, 25000],\n",
|
175 |
-
" \"weight\": [80, 50, 80, 70, 54],\n",
|
176 |
-
" \"gender\": [\"Male\", \"Female\", \"Male\", \"Male\", \"Female\"]\n",
|
177 |
-
"})\n",
|
178 |
-
"data.head()"
|
179 |
-
]
|
180 |
-
},
|
181 |
-
{
|
182 |
-
"cell_type": "code",
|
183 |
-
"execution_count": 6,
|
184 |
-
"metadata": {},
|
185 |
-
"outputs": [
|
186 |
-
{
|
187 |
-
"data": {
|
188 |
-
"text/markdown": [
|
189 |
-
"\n",
|
190 |
-
"The input dataset has:\n",
|
191 |
-
"- 5 rows,\n",
|
192 |
-
"- 3 columns.\n",
|
193 |
-
"\n",
|
194 |
-
"The columns and their dtypes are the following:"
|
195 |
-
],
|
196 |
-
"text/plain": [
|
197 |
-
"<IPython.core.display.Markdown object>"
|
198 |
-
]
|
199 |
-
},
|
200 |
-
"execution_count": 6,
|
201 |
-
"metadata": {},
|
202 |
-
"output_type": "execute_result"
|
203 |
-
}
|
204 |
-
],
|
205 |
-
"source": [
|
206 |
-
"%%jinja markdown\n",
|
207 |
-
"\n",
|
208 |
-
"The input dataset has:\n",
|
209 |
-
"- {{ data.shape[0] }} rows,\n",
|
210 |
-
"- {{ data.columns.shape[0]}} columns.\n",
|
211 |
-
"\n",
|
212 |
-
"The columns and their dtypes are the following:"
|
213 |
-
]
|
214 |
-
},
|
215 |
-
{
|
216 |
-
"cell_type": "code",
|
217 |
-
"execution_count": 7,
|
218 |
-
"metadata": {},
|
219 |
-
"outputs": [
|
220 |
-
{
|
221 |
-
"data": {
|
222 |
-
"text/html": [
|
223 |
-
"<div>\n",
|
224 |
-
"<style scoped>\n",
|
225 |
-
" .dataframe tbody tr th:only-of-type {\n",
|
226 |
-
" vertical-align: middle;\n",
|
227 |
-
" }\n",
|
228 |
-
"\n",
|
229 |
-
" .dataframe tbody tr th {\n",
|
230 |
-
" vertical-align: top;\n",
|
231 |
-
" }\n",
|
232 |
-
"\n",
|
233 |
-
" .dataframe thead th {\n",
|
234 |
-
" text-align: right;\n",
|
235 |
-
" }\n",
|
236 |
-
"</style>\n",
|
237 |
-
"<table border=\"1\" class=\"dataframe\">\n",
|
238 |
-
" <thead>\n",
|
239 |
-
" <tr style=\"text-align: right;\">\n",
|
240 |
-
" <th></th>\n",
|
241 |
-
" <th>col_name</th>\n",
|
242 |
-
" <th>dtype</th>\n",
|
243 |
-
" </tr>\n",
|
244 |
-
" </thead>\n",
|
245 |
-
" <tbody>\n",
|
246 |
-
" <tr>\n",
|
247 |
-
" <th>0</th>\n",
|
248 |
-
" <td>money</td>\n",
|
249 |
-
" <td>int64</td>\n",
|
250 |
-
" </tr>\n",
|
251 |
-
" <tr>\n",
|
252 |
-
" <th>1</th>\n",
|
253 |
-
" <td>weight</td>\n",
|
254 |
-
" <td>int64</td>\n",
|
255 |
-
" </tr>\n",
|
256 |
-
" <tr>\n",
|
257 |
-
" <th>2</th>\n",
|
258 |
-
" <td>gender</td>\n",
|
259 |
-
" <td>object</td>\n",
|
260 |
-
" </tr>\n",
|
261 |
-
" </tbody>\n",
|
262 |
-
"</table>\n",
|
263 |
-
"</div>"
|
264 |
-
],
|
265 |
-
"text/plain": [
|
266 |
-
" col_name dtype\n",
|
267 |
-
"0 money int64\n",
|
268 |
-
"1 weight int64\n",
|
269 |
-
"2 gender object"
|
270 |
-
]
|
271 |
-
},
|
272 |
-
"execution_count": 7,
|
273 |
-
"metadata": {},
|
274 |
-
"output_type": "execute_result"
|
275 |
-
}
|
276 |
-
],
|
277 |
-
"source": [
|
278 |
-
"data.dtypes.reset_index().rename(columns={\"index\": \"col_name\", 0: \"dtype\"})"
|
279 |
-
]
|
280 |
-
},
|
281 |
-
{
|
282 |
-
"cell_type": "code",
|
283 |
-
"execution_count": 8,
|
284 |
-
"metadata": {},
|
285 |
-
"outputs": [
|
286 |
-
{
|
287 |
-
"data": {
|
288 |
-
"text/markdown": [
|
289 |
-
"\n",
|
290 |
-
"### Money"
|
291 |
-
],
|
292 |
-
"text/plain": [
|
293 |
-
"<IPython.core.display.Markdown object>"
|
294 |
-
]
|
295 |
-
},
|
296 |
-
"execution_count": 8,
|
297 |
-
"metadata": {},
|
298 |
-
"output_type": "execute_result"
|
299 |
-
}
|
300 |
-
],
|
301 |
-
"source": [
|
302 |
-
"%%jinja markdown\n",
|
303 |
-
"\n",
|
304 |
-
"### Money"
|
305 |
-
]
|
306 |
-
},
|
307 |
-
{
|
308 |
-
"cell_type": "code",
|
309 |
-
"execution_count": 9,
|
310 |
-
"metadata": {},
|
311 |
-
"outputs": [
|
312 |
-
{
|
313 |
-
"data": {
|
314 |
-
"image/png": "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",
|
315 |
-
"text/plain": [
|
316 |
-
"<Figure size 432x288 with 1 Axes>"
|
317 |
-
]
|
318 |
-
},
|
319 |
-
"metadata": {},
|
320 |
-
"output_type": "display_data"
|
321 |
-
}
|
322 |
-
],
|
323 |
-
"source": [
|
324 |
-
"fig, ax = plt.subplots()\n",
|
325 |
-
"bins = data[\"money\"].sort_values().pipe(pd.cut,\n",
|
326 |
-
" [0, 20000, 30000, 50000, 100000, 1000000000000],\n",
|
327 |
-
" labels=[\"0-20000\", \"20000-30000\", \"30000-50000\", \"50000-100000\", \">100000\"]).value_counts()\n",
|
328 |
-
"sns.barplot(x=bins.index, y=bins.values, color=blue_color)\n",
|
329 |
-
"ax.set(title=\"Histogram of money\", xlabel=\"Money category\", ylabel=\"Count\")\n",
|
330 |
-
"ax.set_xticklabels(ax.get_xticklabels(), rotation=45)\n",
|
331 |
-
"plt.show()"
|
332 |
-
]
|
333 |
-
},
|
334 |
-
{
|
335 |
-
"cell_type": "code",
|
336 |
-
"execution_count": 10,
|
337 |
-
"metadata": {},
|
338 |
-
"outputs": [
|
339 |
-
{
|
340 |
-
"data": {
|
341 |
-
"text/markdown": [
|
342 |
-
"### Gender"
|
343 |
-
],
|
344 |
-
"text/plain": [
|
345 |
-
"<IPython.core.display.Markdown object>"
|
346 |
-
]
|
347 |
-
},
|
348 |
-
"execution_count": 10,
|
349 |
-
"metadata": {},
|
350 |
-
"output_type": "execute_result"
|
351 |
-
}
|
352 |
-
],
|
353 |
-
"source": [
|
354 |
-
"%%jinja markdown\n",
|
355 |
-
"### Gender"
|
356 |
-
]
|
357 |
-
},
|
358 |
-
{
|
359 |
-
"cell_type": "code",
|
360 |
-
"execution_count": 11,
|
361 |
-
"metadata": {},
|
362 |
-
"outputs": [
|
363 |
-
{
|
364 |
-
"name": "stderr",
|
365 |
-
"output_type": "stream",
|
366 |
-
"text": [
|
367 |
-
"C:\\Users\\janpa\\AppData\\Local\\Temp\\ipykernel_12236\\2606098142.py:3: UserWarning: Matplotlib is currently using module://matplotlib_inline.backend_inline, which is a non-GUI backend, so cannot show the figure.\n",
|
368 |
-
" ax.figure.show()\n"
|
369 |
-
]
|
370 |
-
},
|
371 |
-
{
|
372 |
-
"data": {
|
373 |
-
"image/png": "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",
|
374 |
-
"text/plain": [
|
375 |
-
"<Figure size 432x288 with 1 Axes>"
|
376 |
-
]
|
377 |
-
},
|
378 |
-
"metadata": {},
|
379 |
-
"output_type": "display_data"
|
380 |
-
}
|
381 |
-
],
|
382 |
-
"source": [
|
383 |
-
"ax = sns.barplot(data=data[\"gender\"].value_counts().reset_index(), x=\"index\", y=\"gender\", color=blue_color)\n",
|
384 |
-
"ax.set(title=\"Gender countplot\", xlabel=\"Gender\", ylabel=\"Count\")\n",
|
385 |
-
"ax.figure.show()"
|
386 |
-
]
|
387 |
-
},
|
388 |
-
{
|
389 |
-
"cell_type": "code",
|
390 |
-
"execution_count": 12,
|
391 |
-
"metadata": {},
|
392 |
-
"outputs": [
|
393 |
-
{
|
394 |
-
"data": {
|
395 |
-
"text/markdown": [
|
396 |
-
"\n",
|
397 |
-
"### Weight\n",
|
398 |
-
"Weight is a continuous variable."
|
399 |
-
],
|
400 |
-
"text/plain": [
|
401 |
-
"<IPython.core.display.Markdown object>"
|
402 |
-
]
|
403 |
-
},
|
404 |
-
"execution_count": 12,
|
405 |
-
"metadata": {},
|
406 |
-
"output_type": "execute_result"
|
407 |
-
}
|
408 |
-
],
|
409 |
-
"source": [
|
410 |
-
"%%jinja markdown\n",
|
411 |
-
"\n",
|
412 |
-
"### Weight\n",
|
413 |
-
"Weight is a continuous variable."
|
414 |
-
]
|
415 |
-
},
|
416 |
-
{
|
417 |
-
"cell_type": "code",
|
418 |
-
"execution_count": 13,
|
419 |
-
"metadata": {},
|
420 |
-
"outputs": [
|
421 |
-
{
|
422 |
-
"data": {
|
423 |
-
"image/png": "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",
|
424 |
-
"text/plain": [
|
425 |
-
"<Figure size 432x288 with 1 Axes>"
|
426 |
-
]
|
427 |
-
},
|
428 |
-
"metadata": {},
|
429 |
-
"output_type": "display_data"
|
430 |
-
}
|
431 |
-
],
|
432 |
-
"source": [
|
433 |
-
"ax = sns.kdeplot(data[\"weight\"])\n",
|
434 |
-
"ax.set(title=\"Weight KDE\", xlabel=\"Weight\")\n",
|
435 |
-
"plt.show()"
|
436 |
-
]
|
437 |
-
},
|
438 |
-
{
|
439 |
-
"cell_type": "code",
|
440 |
-
"execution_count": 14,
|
441 |
-
"metadata": {},
|
442 |
-
"outputs": [
|
443 |
-
{
|
444 |
-
"data": {
|
445 |
-
"text/markdown": [
|
446 |
-
"### Correlations\n",
|
447 |
-
"\n",
|
448 |
-
"Correlation between the money and weight seems to be rather weak. The gender is not analyzed because it's a categorical variable."
|
449 |
-
],
|
450 |
-
"text/plain": [
|
451 |
-
"<IPython.core.display.Markdown object>"
|
452 |
-
]
|
453 |
-
},
|
454 |
-
"execution_count": 14,
|
455 |
-
"metadata": {},
|
456 |
-
"output_type": "execute_result"
|
457 |
-
}
|
458 |
-
],
|
459 |
-
"source": [
|
460 |
-
"%%jinja markdown\n",
|
461 |
-
"### Correlations\n",
|
462 |
-
"\n",
|
463 |
-
"Correlation between the money and weight seems to be rather weak. The gender is not analyzed because it's a categorical variable.\n"
|
464 |
-
]
|
465 |
-
},
|
466 |
-
{
|
467 |
-
"cell_type": "code",
|
468 |
-
"execution_count": 15,
|
469 |
-
"metadata": {},
|
470 |
-
"outputs": [
|
471 |
-
{
|
472 |
-
"data": {
|
473 |
-
"image/png": "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",
|
474 |
-
"text/plain": [
|
475 |
-
"<Figure size 432x288 with 2 Axes>"
|
476 |
-
]
|
477 |
-
},
|
478 |
-
"metadata": {},
|
479 |
-
"output_type": "display_data"
|
480 |
-
}
|
481 |
-
],
|
482 |
-
"source": [
|
483 |
-
"sns.heatmap(data.corr().abs(), cmap=\"Blues\", vmin=0, vmax=1)\n",
|
484 |
-
"plt.show()"
|
485 |
-
]
|
486 |
-
},
|
487 |
-
{
|
488 |
-
"cell_type": "code",
|
489 |
-
"execution_count": 16,
|
490 |
-
"metadata": {},
|
491 |
-
"outputs": [
|
492 |
-
{
|
493 |
-
"data": {
|
494 |
-
"text/markdown": [
|
495 |
-
"\n",
|
496 |
-
"## Conclusion\n",
|
497 |
-
"\n",
|
498 |
-
"**Pretty Jupyter is awesome and I'm definitely installing it ;).**"
|
499 |
-
],
|
500 |
-
"text/plain": [
|
501 |
-
"<IPython.core.display.Markdown object>"
|
502 |
-
]
|
503 |
-
},
|
504 |
-
"execution_count": 16,
|
505 |
-
"metadata": {},
|
506 |
-
"output_type": "execute_result"
|
507 |
-
}
|
508 |
-
],
|
509 |
-
"source": [
|
510 |
-
"%%jinja markdown\n",
|
511 |
-
"\n",
|
512 |
-
"## Conclusion\n",
|
513 |
-
"\n",
|
514 |
-
"**Pretty Jupyter is awesome and I'm definitely installing it ;).**"
|
515 |
-
]
|
516 |
-
}
|
517 |
-
],
|
518 |
-
"metadata": {
|
519 |
-
"code_folding": "hide",
|
520 |
-
"kernelspec": {
|
521 |
-
"display_name": "Python 3.8.8 ('siming')",
|
522 |
-
"language": "python",
|
523 |
-
"name": "python3"
|
524 |
-
},
|
525 |
-
"language_info": {
|
526 |
-
"codemirror_mode": {
|
527 |
-
"name": "ipython",
|
528 |
-
"version": 3
|
529 |
-
},
|
530 |
-
"file_extension": ".py",
|
531 |
-
"mimetype": "text/x-python",
|
532 |
-
"name": "python",
|
533 |
-
"nbconvert_exporter": "python",
|
534 |
-
"pygments_lexer": "ipython3",
|
535 |
-
"version": "3.8.8"
|
536 |
-
},
|
537 |
-
"orig_nbformat": 4,
|
538 |
-
"title": "Pretty Jupyter Demo",
|
539 |
-
"toc": true,
|
540 |
-
"vscode": {
|
541 |
-
"interpreter": {
|
542 |
-
"hash": "2537094cdaaf8cbca77398104c426db43a9f1c17b808f90867ef58a7e69b756d"
|
543 |
-
}
|
544 |
-
}
|
545 |
-
},
|
546 |
-
"nbformat": 4,
|
547 |
-
"nbformat_minor": 2
|
548 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jsfiles/data_nivo.js
ADDED
@@ -0,0 +1,272 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[
|
2 |
+
{
|
3 |
+
"id": "japan",
|
4 |
+
"color": "hsl(174, 70%, 50%)",
|
5 |
+
"data": [
|
6 |
+
{
|
7 |
+
"x": "plane",
|
8 |
+
"y": 258
|
9 |
+
},
|
10 |
+
{
|
11 |
+
"x": "helicopter",
|
12 |
+
"y": 88
|
13 |
+
},
|
14 |
+
{
|
15 |
+
"x": "boat",
|
16 |
+
"y": 160
|
17 |
+
},
|
18 |
+
{
|
19 |
+
"x": "train",
|
20 |
+
"y": 45
|
21 |
+
},
|
22 |
+
{
|
23 |
+
"x": "subway",
|
24 |
+
"y": 27
|
25 |
+
},
|
26 |
+
{
|
27 |
+
"x": "bus",
|
28 |
+
"y": 89
|
29 |
+
},
|
30 |
+
{
|
31 |
+
"x": "car",
|
32 |
+
"y": 211
|
33 |
+
},
|
34 |
+
{
|
35 |
+
"x": "moto",
|
36 |
+
"y": 147
|
37 |
+
},
|
38 |
+
{
|
39 |
+
"x": "bicycle",
|
40 |
+
"y": 269
|
41 |
+
},
|
42 |
+
{
|
43 |
+
"x": "horse",
|
44 |
+
"y": 108
|
45 |
+
},
|
46 |
+
{
|
47 |
+
"x": "skateboard",
|
48 |
+
"y": 238
|
49 |
+
},
|
50 |
+
{
|
51 |
+
"x": "others",
|
52 |
+
"y": 37
|
53 |
+
}
|
54 |
+
]
|
55 |
+
},
|
56 |
+
{
|
57 |
+
"id": "france",
|
58 |
+
"color": "hsl(159, 70%, 50%)",
|
59 |
+
"data": [
|
60 |
+
{
|
61 |
+
"x": "plane",
|
62 |
+
"y": 153
|
63 |
+
},
|
64 |
+
{
|
65 |
+
"x": "helicopter",
|
66 |
+
"y": 90
|
67 |
+
},
|
68 |
+
{
|
69 |
+
"x": "boat",
|
70 |
+
"y": 216
|
71 |
+
},
|
72 |
+
{
|
73 |
+
"x": "train",
|
74 |
+
"y": 48
|
75 |
+
},
|
76 |
+
{
|
77 |
+
"x": "subway",
|
78 |
+
"y": 116
|
79 |
+
},
|
80 |
+
{
|
81 |
+
"x": "bus",
|
82 |
+
"y": 283
|
83 |
+
},
|
84 |
+
{
|
85 |
+
"x": "car",
|
86 |
+
"y": 213
|
87 |
+
},
|
88 |
+
{
|
89 |
+
"x": "moto",
|
90 |
+
"y": 206
|
91 |
+
},
|
92 |
+
{
|
93 |
+
"x": "bicycle",
|
94 |
+
"y": 171
|
95 |
+
},
|
96 |
+
{
|
97 |
+
"x": "horse",
|
98 |
+
"y": 33
|
99 |
+
},
|
100 |
+
{
|
101 |
+
"x": "skateboard",
|
102 |
+
"y": 272
|
103 |
+
},
|
104 |
+
{
|
105 |
+
"x": "others",
|
106 |
+
"y": 294
|
107 |
+
}
|
108 |
+
]
|
109 |
+
},
|
110 |
+
{
|
111 |
+
"id": "us",
|
112 |
+
"color": "hsl(108, 70%, 50%)",
|
113 |
+
"data": [
|
114 |
+
{
|
115 |
+
"x": "plane",
|
116 |
+
"y": 279
|
117 |
+
},
|
118 |
+
{
|
119 |
+
"x": "helicopter",
|
120 |
+
"y": 12
|
121 |
+
},
|
122 |
+
{
|
123 |
+
"x": "boat",
|
124 |
+
"y": 207
|
125 |
+
},
|
126 |
+
{
|
127 |
+
"x": "train",
|
128 |
+
"y": 246
|
129 |
+
},
|
130 |
+
{
|
131 |
+
"x": "subway",
|
132 |
+
"y": 132
|
133 |
+
},
|
134 |
+
{
|
135 |
+
"x": "bus",
|
136 |
+
"y": 259
|
137 |
+
},
|
138 |
+
{
|
139 |
+
"x": "car",
|
140 |
+
"y": 272
|
141 |
+
},
|
142 |
+
{
|
143 |
+
"x": "moto",
|
144 |
+
"y": 120
|
145 |
+
},
|
146 |
+
{
|
147 |
+
"x": "bicycle",
|
148 |
+
"y": 6
|
149 |
+
},
|
150 |
+
{
|
151 |
+
"x": "horse",
|
152 |
+
"y": 296
|
153 |
+
},
|
154 |
+
{
|
155 |
+
"x": "skateboard",
|
156 |
+
"y": 108
|
157 |
+
},
|
158 |
+
{
|
159 |
+
"x": "others",
|
160 |
+
"y": 34
|
161 |
+
}
|
162 |
+
]
|
163 |
+
},
|
164 |
+
{
|
165 |
+
"id": "germany",
|
166 |
+
"color": "hsl(283, 70%, 50%)",
|
167 |
+
"data": [
|
168 |
+
{
|
169 |
+
"x": "plane",
|
170 |
+
"y": 141
|
171 |
+
},
|
172 |
+
{
|
173 |
+
"x": "helicopter",
|
174 |
+
"y": 145
|
175 |
+
},
|
176 |
+
{
|
177 |
+
"x": "boat",
|
178 |
+
"y": 16
|
179 |
+
},
|
180 |
+
{
|
181 |
+
"x": "train",
|
182 |
+
"y": 60
|
183 |
+
},
|
184 |
+
{
|
185 |
+
"x": "subway",
|
186 |
+
"y": 68
|
187 |
+
},
|
188 |
+
{
|
189 |
+
"x": "bus",
|
190 |
+
"y": 191
|
191 |
+
},
|
192 |
+
{
|
193 |
+
"x": "car",
|
194 |
+
"y": 108
|
195 |
+
},
|
196 |
+
{
|
197 |
+
"x": "moto",
|
198 |
+
"y": 74
|
199 |
+
},
|
200 |
+
{
|
201 |
+
"x": "bicycle",
|
202 |
+
"y": 280
|
203 |
+
},
|
204 |
+
{
|
205 |
+
"x": "horse",
|
206 |
+
"y": 94
|
207 |
+
},
|
208 |
+
{
|
209 |
+
"x": "skateboard",
|
210 |
+
"y": 167
|
211 |
+
},
|
212 |
+
{
|
213 |
+
"x": "others",
|
214 |
+
"y": 88
|
215 |
+
}
|
216 |
+
]
|
217 |
+
},
|
218 |
+
{
|
219 |
+
"id": "norway",
|
220 |
+
"color": "hsl(2, 70%, 50%)",
|
221 |
+
"data": [
|
222 |
+
{
|
223 |
+
"x": "plane",
|
224 |
+
"y": 18
|
225 |
+
},
|
226 |
+
{
|
227 |
+
"x": "helicopter",
|
228 |
+
"y": 146
|
229 |
+
},
|
230 |
+
{
|
231 |
+
"x": "boat",
|
232 |
+
"y": 153
|
233 |
+
},
|
234 |
+
{
|
235 |
+
"x": "train",
|
236 |
+
"y": 17
|
237 |
+
},
|
238 |
+
{
|
239 |
+
"x": "subway",
|
240 |
+
"y": 134
|
241 |
+
},
|
242 |
+
{
|
243 |
+
"x": "bus",
|
244 |
+
"y": 98
|
245 |
+
},
|
246 |
+
{
|
247 |
+
"x": "car",
|
248 |
+
"y": 213
|
249 |
+
},
|
250 |
+
{
|
251 |
+
"x": "moto",
|
252 |
+
"y": 60
|
253 |
+
},
|
254 |
+
{
|
255 |
+
"x": "bicycle",
|
256 |
+
"y": 242
|
257 |
+
},
|
258 |
+
{
|
259 |
+
"x": "horse",
|
260 |
+
"y": 23
|
261 |
+
},
|
262 |
+
{
|
263 |
+
"x": "skateboard",
|
264 |
+
"y": 224
|
265 |
+
},
|
266 |
+
{
|
267 |
+
"x": "others",
|
268 |
+
"y": 209
|
269 |
+
}
|
270 |
+
]
|
271 |
+
}
|
272 |
+
]
|
jsfiles/index.html
ADDED
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div
|
2 |
+
id="errors"
|
3 |
+
style="
|
4 |
+
background: #c00;
|
5 |
+
color: #fff;
|
6 |
+
display: none;
|
7 |
+
margin: -20px -20px 20px;
|
8 |
+
padding: 20px;
|
9 |
+
white-space: pre-wrap;
|
10 |
+
"
|
11 |
+
></div>
|
12 |
+
<div id="root"></div>
|
13 |
+
<script>
|
14 |
+
window.addEventListener("mousedown", function (e) {
|
15 |
+
document.body.classList.add("mouse-navigation");
|
16 |
+
document.body.classList.remove("kbd-navigation");
|
17 |
+
});
|
18 |
+
window.addEventListener("keydown", function (e) {
|
19 |
+
if (e.keyCode === 9) {
|
20 |
+
document.body.classList.add("kbd-navigation");
|
21 |
+
document.body.classList.remove("mouse-navigation");
|
22 |
+
}
|
23 |
+
});
|
24 |
+
window.addEventListener("click", function (e) {
|
25 |
+
if (e.target.tagName === "A" && e.target.getAttribute("href") === "#") {
|
26 |
+
e.preventDefault();
|
27 |
+
}
|
28 |
+
});
|
29 |
+
window.onerror = function (message, source, line, col, error) {
|
30 |
+
var text = error
|
31 |
+
? error.stack || error
|
32 |
+
: message + " (at " + source + ":" + line + ":" + col + ")";
|
33 |
+
errors.textContent += text + "\n";
|
34 |
+
errors.style.display = "";
|
35 |
+
};
|
36 |
+
console.error = (function (old) {
|
37 |
+
return function error() {
|
38 |
+
errors.textContent +=
|
39 |
+
Array.prototype.slice.call(arguments).join(" ") + "\n";
|
40 |
+
errors.style.display = "";
|
41 |
+
old.apply(this, arguments);
|
42 |
+
};
|
43 |
+
})(console.error);
|
44 |
+
</script>
|
jsfiles/index.js
ADDED
@@ -0,0 +1,143 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
function Square(props) {
|
2 |
+
return (
|
3 |
+
<button className="square" onClick={props.onClick}>
|
4 |
+
{props.value}
|
5 |
+
</button>
|
6 |
+
);
|
7 |
+
}
|
8 |
+
|
9 |
+
class Board extends React.Component {
|
10 |
+
renderSquare(i) {
|
11 |
+
return (
|
12 |
+
<Square
|
13 |
+
value={this.props.squares[i]}
|
14 |
+
onClick={() => this.props.onClick(i)}
|
15 |
+
/>
|
16 |
+
);
|
17 |
+
}
|
18 |
+
|
19 |
+
render() {
|
20 |
+
return (
|
21 |
+
<div>
|
22 |
+
<div className="board-row">
|
23 |
+
{this.renderSquare(0)}
|
24 |
+
{this.renderSquare(1)}
|
25 |
+
{this.renderSquare(2)}
|
26 |
+
</div>
|
27 |
+
<div className="board-row">
|
28 |
+
{this.renderSquare(3)}
|
29 |
+
{this.renderSquare(4)}
|
30 |
+
{this.renderSquare(5)}
|
31 |
+
</div>
|
32 |
+
<div className="board-row">
|
33 |
+
{this.renderSquare(6)}
|
34 |
+
{this.renderSquare(7)}
|
35 |
+
{this.renderSquare(8)}
|
36 |
+
</div>
|
37 |
+
</div>
|
38 |
+
);
|
39 |
+
}
|
40 |
+
}
|
41 |
+
|
42 |
+
class Game extends React.Component {
|
43 |
+
constructor(props) {
|
44 |
+
super(props);
|
45 |
+
this.state = {
|
46 |
+
history: [
|
47 |
+
{
|
48 |
+
squares: Array(9).fill(null),
|
49 |
+
},
|
50 |
+
],
|
51 |
+
stepNumber: 0,
|
52 |
+
xIsNext: true,
|
53 |
+
};
|
54 |
+
}
|
55 |
+
|
56 |
+
handleClick(i) {
|
57 |
+
const history = this.state.history.slice(0, this.state.stepNumber + 1);
|
58 |
+
const current = history[history.length - 1];
|
59 |
+
const squares = current.squares.slice();
|
60 |
+
if (calculateWinner(squares) || squares[i]) {
|
61 |
+
return;
|
62 |
+
}
|
63 |
+
squares[i] = this.state.xIsNext ? "X" : "O";
|
64 |
+
this.setState({
|
65 |
+
history: history.concat([
|
66 |
+
{
|
67 |
+
squares: squares,
|
68 |
+
},
|
69 |
+
]),
|
70 |
+
stepNumber: history.length,
|
71 |
+
xIsNext: !this.state.xIsNext,
|
72 |
+
});
|
73 |
+
}
|
74 |
+
|
75 |
+
jumpTo(step) {
|
76 |
+
this.setState({
|
77 |
+
stepNumber: step,
|
78 |
+
xIsNext: step % 2 === 0,
|
79 |
+
});
|
80 |
+
}
|
81 |
+
|
82 |
+
render() {
|
83 |
+
const history = this.state.history;
|
84 |
+
const current = history[this.state.stepNumber];
|
85 |
+
const winner = calculateWinner(current.squares);
|
86 |
+
|
87 |
+
const moves = history.map((step, move) => {
|
88 |
+
const desc = move ? "Go to move #" + move : "Go to game start";
|
89 |
+
return (
|
90 |
+
<li key={move}>
|
91 |
+
<button onClick={() => this.jumpTo(move)}>{desc}</button>
|
92 |
+
</li>
|
93 |
+
);
|
94 |
+
});
|
95 |
+
|
96 |
+
let status;
|
97 |
+
if (winner) {
|
98 |
+
status = "Winner: " + winner;
|
99 |
+
} else {
|
100 |
+
status = "Next player: " + (this.state.xIsNext ? "X" : "O");
|
101 |
+
}
|
102 |
+
|
103 |
+
return (
|
104 |
+
<div className="game">
|
105 |
+
<div className="game-board">
|
106 |
+
<Board
|
107 |
+
squares={current.squares}
|
108 |
+
onClick={(i) => this.handleClick(i)}
|
109 |
+
/>
|
110 |
+
</div>
|
111 |
+
<div className="game-info">
|
112 |
+
<div>{status}</div>
|
113 |
+
<ol>{moves}</ol>
|
114 |
+
</div>
|
115 |
+
</div>
|
116 |
+
);
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
// ========================================
|
121 |
+
|
122 |
+
const root = ReactDOM.createRoot(document.getElementById("root"));
|
123 |
+
root.render(<Game />);
|
124 |
+
|
125 |
+
function calculateWinner(squares) {
|
126 |
+
const lines = [
|
127 |
+
[0, 1, 2],
|
128 |
+
[3, 4, 5],
|
129 |
+
[6, 7, 8],
|
130 |
+
[0, 3, 6],
|
131 |
+
[1, 4, 7],
|
132 |
+
[2, 5, 8],
|
133 |
+
[0, 4, 8],
|
134 |
+
[2, 4, 6],
|
135 |
+
];
|
136 |
+
for (let i = 0; i < lines.length; i++) {
|
137 |
+
const [a, b, c] = lines[i];
|
138 |
+
if (squares[a] && squares[a] === squares[b] && squares[a] === squares[c]) {
|
139 |
+
return squares[a];
|
140 |
+
}
|
141 |
+
}
|
142 |
+
return null;
|
143 |
+
}
|
jsfiles/js_script.js
CHANGED
@@ -216,9 +216,10 @@ var arr = [2, 7, 0, 6, 1, 4, 8, 3]
|
|
216 |
console.log((arr) instanceof Array, typeof arr)
|
217 |
console.log(arr.sort())
|
218 |
console.log(arr.sort().reverse())
|
219 |
-
|
220 |
console.log(arr.sort((a, b) => a - b)) // 递增
|
221 |
console.log(arr.sort((a, b) => b - a)) // 递减
|
|
|
222 |
|
223 |
|
224 |
/* ========================================================================== */
|
|
|
216 |
console.log((arr) instanceof Array, typeof arr)
|
217 |
console.log(arr.sort())
|
218 |
console.log(arr.sort().reverse())
|
219 |
+
console.log("==========================================================================")
|
220 |
console.log(arr.sort((a, b) => a - b)) // 递增
|
221 |
console.log(arr.sort((a, b) => b - a)) // 递减
|
222 |
+
console.log(arr.sort((a, b) => b - a > 0)) // 递减 这个hide了一个条件.
|
223 |
|
224 |
|
225 |
/* ========================================================================== */
|
jsfiles/jslearn.html
DELETED
@@ -1,21 +0,0 @@
|
|
1 |
-
<!DOCTYPE html>
|
2 |
-
<!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.7.7/dist/vue.js"></script> -->
|
3 |
-
<html>
|
4 |
-
<body>
|
5 |
-
<p>Before the script...</p>
|
6 |
-
|
7 |
-
<script>
|
8 |
-
var main = function() {
|
9 |
-
var fahr;
|
10 |
-
fahr = prompt("Enter the temperature in F: ");
|
11 |
-
const ratio = 5.0/9.0;
|
12 |
-
let cel = (fahr - 32) * ratio;
|
13 |
-
alert("The temperature in C is: " + cel);
|
14 |
-
}
|
15 |
-
main()
|
16 |
-
|
17 |
-
</script>
|
18 |
-
|
19 |
-
<p>...After the script.</p>
|
20 |
-
</body>
|
21 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jsfiles/jslearn.md
DELETED
@@ -1,49 +0,0 @@
|
|
1 |
-
```yaml
|
2 |
-
author: Siming Yan
|
3 |
-
title: jslearning
|
4 |
-
url: https://runestone.academy/ns/books/published/JS4Python/TheBasics/loops.html
|
5 |
-
```
|
6 |
-
|
7 |
-
---
|
8 |
-
|
9 |
-
```javascript
|
10 |
-
|
11 |
-
|
12 |
-
function main() {
|
13 |
-
console.log("Hello World!");
|
14 |
-
}
|
15 |
-
main()
|
16 |
-
var main = function() {
|
17 |
-
console.log("Hello World!2");
|
18 |
-
}
|
19 |
-
main()
|
20 |
-
let a = 5 > 4 ? 'yes' : 'no';
|
21 |
-
let b = 10 == '100' ? 'yes': 'no';
|
22 |
-
console.log(a,'haha',b)
|
23 |
-
```
|
24 |
-
|
25 |
-
```javascript
|
26 |
-
main(85)
|
27 |
-
main(44)
|
28 |
-
main(98)
|
29 |
-
|
30 |
-
function main(grade) {
|
31 |
-
if (grade < 60) {
|
32 |
-
console.log('F');
|
33 |
-
} else if (grade < 70) {
|
34 |
-
console.log('D');
|
35 |
-
} else if (grade < 80) {
|
36 |
-
console.log('C');
|
37 |
-
} else if (grade < 90) {
|
38 |
-
console.log('B');
|
39 |
-
} else console.log('A');
|
40 |
-
}
|
41 |
-
|
42 |
-
|
43 |
-
```
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jsfiles/main.css
ADDED
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
body {
|
2 |
+
font: 14px "Century Gothic", Futura, sans-serif;
|
3 |
+
margin: 20px;
|
4 |
+
}
|
5 |
+
|
6 |
+
ol,
|
7 |
+
ul {
|
8 |
+
padding-left: 30px;
|
9 |
+
}
|
10 |
+
|
11 |
+
.board-row:after {
|
12 |
+
clear: both;
|
13 |
+
content: "";
|
14 |
+
display: table;
|
15 |
+
}
|
16 |
+
|
17 |
+
.status {
|
18 |
+
margin-bottom: 10px;
|
19 |
+
}
|
20 |
+
|
21 |
+
.square {
|
22 |
+
background: #fff;
|
23 |
+
border: 1px solid #999;
|
24 |
+
float: left;
|
25 |
+
font-size: 24px;
|
26 |
+
font-weight: bold;
|
27 |
+
line-height: 34px;
|
28 |
+
height: 34px;
|
29 |
+
margin-right: -1px;
|
30 |
+
margin-top: -1px;
|
31 |
+
padding: 0;
|
32 |
+
text-align: center;
|
33 |
+
width: 34px;
|
34 |
+
}
|
35 |
+
|
36 |
+
.square:focus {
|
37 |
+
outline: none;
|
38 |
+
}
|
39 |
+
|
40 |
+
.kbd-navigation .square:focus {
|
41 |
+
background: #ddd;
|
42 |
+
}
|
43 |
+
|
44 |
+
.game {
|
45 |
+
display: flex;
|
46 |
+
flex-direction: row;
|
47 |
+
}
|
48 |
+
|
49 |
+
.game-info {
|
50 |
+
margin-left: 20px;
|
51 |
+
}
|
jsfiles/nivo.js
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// install (please make sure versions match peerDependencies)
|
2 |
+
// yarn add @nivo/core @nivo/line
|
3 |
+
import { ResponsiveLine } from '@nivo/line'
|
4 |
+
|
5 |
+
// make sure parent container have a defined height when using
|
6 |
+
// responsive component, otherwise height will be 0 and
|
7 |
+
// no chart will be rendered.
|
8 |
+
// website examples showcase many properties,
|
9 |
+
// you'll often use just a few of them.
|
10 |
+
const MyResponsiveLine = ({ /* see data tab */ }) => (
|
11 |
+
<ResponsiveLine
|
12 |
+
data={data_nivo}
|
13 |
+
margin={{ top: 50, right: 110, bottom: 50, left: 60 }}
|
14 |
+
xScale={{ type: 'point' }}
|
15 |
+
yScale={{
|
16 |
+
type: 'linear',
|
17 |
+
min: 'auto',
|
18 |
+
max: 'auto',
|
19 |
+
stacked: true,
|
20 |
+
reverse: false
|
21 |
+
}}
|
22 |
+
yFormat=" >-.2f"
|
23 |
+
axisTop={null}
|
24 |
+
axisRight={null}
|
25 |
+
axisBottom={{
|
26 |
+
orient: 'bottom',
|
27 |
+
tickSize: 5,
|
28 |
+
tickPadding: 5,
|
29 |
+
tickRotation: 0,
|
30 |
+
legend: 'transportation',
|
31 |
+
legendOffset: 36,
|
32 |
+
legendPosition: 'middle'
|
33 |
+
}}
|
34 |
+
axisLeft={{
|
35 |
+
orient: 'left',
|
36 |
+
tickSize: 5,
|
37 |
+
tickPadding: 5,
|
38 |
+
tickRotation: 0,
|
39 |
+
legend: 'count',
|
40 |
+
legendOffset: -40,
|
41 |
+
legendPosition: 'middle'
|
42 |
+
}}
|
43 |
+
pointSize={10}
|
44 |
+
pointColor={{ theme: 'background' }}
|
45 |
+
pointBorderWidth={2}
|
46 |
+
pointBorderColor={{ from: 'serieColor' }}
|
47 |
+
pointLabelYOffset={-12}
|
48 |
+
useMesh={true}
|
49 |
+
legends={[
|
50 |
+
{
|
51 |
+
anchor: 'bottom-right',
|
52 |
+
direction: 'column',
|
53 |
+
justify: false,
|
54 |
+
translateX: 100,
|
55 |
+
translateY: 0,
|
56 |
+
itemsSpacing: 0,
|
57 |
+
itemDirection: 'left-to-right',
|
58 |
+
itemWidth: 80,
|
59 |
+
itemHeight: 20,
|
60 |
+
itemOpacity: 0.75,
|
61 |
+
symbolSize: 12,
|
62 |
+
symbolShape: 'circle',
|
63 |
+
symbolBorderColor: 'rgba(0, 0, 0, .5)',
|
64 |
+
effects: [
|
65 |
+
{
|
66 |
+
on: 'hover',
|
67 |
+
style: {
|
68 |
+
itemBackground: 'rgba(0, 0, 0, .03)',
|
69 |
+
itemOpacity: 1
|
70 |
+
}
|
71 |
+
}
|
72 |
+
]
|
73 |
+
}
|
74 |
+
]}
|
75 |
+
/>
|
76 |
+
)
|
my-app/.gitignore
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
2 |
+
|
3 |
+
# dependencies
|
4 |
+
/node_modules
|
5 |
+
/.pnp
|
6 |
+
.pnp.js
|
7 |
+
|
8 |
+
# testing
|
9 |
+
/coverage
|
10 |
+
|
11 |
+
# production
|
12 |
+
/build
|
13 |
+
|
14 |
+
# misc
|
15 |
+
.DS_Store
|
16 |
+
.env.local
|
17 |
+
.env.development.local
|
18 |
+
.env.test.local
|
19 |
+
.env.production.local
|
20 |
+
|
21 |
+
npm-debug.log*
|
22 |
+
yarn-debug.log*
|
23 |
+
yarn-error.log*
|
my-app/README.md
ADDED
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Getting Started with Create React App
|
2 |
+
|
3 |
+
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
|
4 |
+
|
5 |
+
## Available Scripts
|
6 |
+
|
7 |
+
In the project directory, you can run:
|
8 |
+
|
9 |
+
### `npm start`
|
10 |
+
|
11 |
+
Runs the app in the development mode.\
|
12 |
+
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
|
13 |
+
|
14 |
+
The page will reload when you make changes.\
|
15 |
+
You may also see any lint errors in the console.
|
16 |
+
|
17 |
+
### `npm test`
|
18 |
+
|
19 |
+
Launches the test runner in the interactive watch mode.\
|
20 |
+
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
|
21 |
+
|
22 |
+
### `npm run build`
|
23 |
+
|
24 |
+
Builds the app for production to the `build` folder.\
|
25 |
+
It correctly bundles React in production mode and optimizes the build for the best performance.
|
26 |
+
|
27 |
+
The build is minified and the filenames include the hashes.\
|
28 |
+
Your app is ready to be deployed!
|
29 |
+
|
30 |
+
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
|
31 |
+
|
32 |
+
### `npm run eject`
|
33 |
+
|
34 |
+
**Note: this is a one-way operation. Once you `eject`, you can't go back!**
|
35 |
+
|
36 |
+
If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
|
37 |
+
|
38 |
+
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
|
39 |
+
|
40 |
+
You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
|
41 |
+
|
42 |
+
## Learn More
|
43 |
+
|
44 |
+
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
|
45 |
+
|
46 |
+
To learn React, check out the [React documentation](https://reactjs.org/).
|
47 |
+
|
48 |
+
### Code Splitting
|
49 |
+
|
50 |
+
This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
|
51 |
+
|
52 |
+
### Analyzing the Bundle Size
|
53 |
+
|
54 |
+
This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
|
55 |
+
|
56 |
+
### Making a Progressive Web App
|
57 |
+
|
58 |
+
This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
|
59 |
+
|
60 |
+
### Advanced Configuration
|
61 |
+
|
62 |
+
This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
|
63 |
+
|
64 |
+
### Deployment
|
65 |
+
|
66 |
+
This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
|
67 |
+
|
68 |
+
### `npm run build` fails to minify
|
69 |
+
|
70 |
+
This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
|
my-app/package-lock.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
my-app/package.json
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "my-app",
|
3 |
+
"version": "0.1.0",
|
4 |
+
"private": true,
|
5 |
+
"dependencies": {
|
6 |
+
"@testing-library/jest-dom": "^5.16.5",
|
7 |
+
"@testing-library/react": "^13.3.0",
|
8 |
+
"@testing-library/user-event": "^13.5.0",
|
9 |
+
"react": "^18.2.0",
|
10 |
+
"react-dom": "^18.2.0",
|
11 |
+
"react-scripts": "5.0.1",
|
12 |
+
"web-vitals": "^2.1.4"
|
13 |
+
},
|
14 |
+
"scripts": {
|
15 |
+
"start": "react-scripts start",
|
16 |
+
"build": "react-scripts build",
|
17 |
+
"test": "react-scripts test",
|
18 |
+
"eject": "react-scripts eject"
|
19 |
+
},
|
20 |
+
"eslintConfig": {
|
21 |
+
"extends": [
|
22 |
+
"react-app",
|
23 |
+
"react-app/jest"
|
24 |
+
]
|
25 |
+
},
|
26 |
+
"browserslist": {
|
27 |
+
"production": [
|
28 |
+
">0.2%",
|
29 |
+
"not dead",
|
30 |
+
"not op_mini all"
|
31 |
+
],
|
32 |
+
"development": [
|
33 |
+
"last 1 chrome version",
|
34 |
+
"last 1 firefox version",
|
35 |
+
"last 1 safari version"
|
36 |
+
]
|
37 |
+
}
|
38 |
+
}
|
my-app/public/favicon.ico
ADDED
my-app/public/index.html
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="utf-8" />
|
5 |
+
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
|
6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
7 |
+
<meta name="theme-color" content="#000000" />
|
8 |
+
<meta
|
9 |
+
name="description"
|
10 |
+
content="Web site created using create-react-app"
|
11 |
+
/>
|
12 |
+
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
|
13 |
+
<!--
|
14 |
+
manifest.json provides metadata used when your web app is installed on a
|
15 |
+
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
|
16 |
+
-->
|
17 |
+
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
18 |
+
<!--
|
19 |
+
Notice the use of %PUBLIC_URL% in the tags above.
|
20 |
+
It will be replaced with the URL of the `public` folder during the build.
|
21 |
+
Only files inside the `public` folder can be referenced from the HTML.
|
22 |
+
|
23 |
+
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
|
24 |
+
work correctly both with client-side routing and a non-root public URL.
|
25 |
+
Learn how to configure a non-root public URL by running `npm run build`.
|
26 |
+
-->
|
27 |
+
<title>React App</title>
|
28 |
+
</head>
|
29 |
+
<body>
|
30 |
+
<noscript>You need to enable JavaScript to run this app.</noscript>
|
31 |
+
<div id="root"></div>
|
32 |
+
<!--
|
33 |
+
This HTML file is a template.
|
34 |
+
If you open it directly in the browser, you will see an empty page.
|
35 |
+
|
36 |
+
You can add webfonts, meta tags, or analytics to this file.
|
37 |
+
The build step will place the bundled scripts into the <body> tag.
|
38 |
+
|
39 |
+
To begin the development, run `npm start` or `yarn start`.
|
40 |
+
To create a production bundle, use `npm run build` or `yarn build`.
|
41 |
+
-->
|
42 |
+
</body>
|
43 |
+
</html>
|
my-app/public/manifest.json
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"short_name": "React App",
|
3 |
+
"name": "Create React App Sample",
|
4 |
+
"icons": [
|
5 |
+
{
|
6 |
+
"src": "favicon.ico",
|
7 |
+
"sizes": "64x64 32x32 24x24 16x16",
|
8 |
+
"type": "image/x-icon"
|
9 |
+
},
|
10 |
+
{
|
11 |
+
"src": "logo192.png",
|
12 |
+
"type": "image/png",
|
13 |
+
"sizes": "192x192"
|
14 |
+
},
|
15 |
+
{
|
16 |
+
"src": "logo512.png",
|
17 |
+
"type": "image/png",
|
18 |
+
"sizes": "512x512"
|
19 |
+
}
|
20 |
+
],
|
21 |
+
"start_url": ".",
|
22 |
+
"display": "standalone",
|
23 |
+
"theme_color": "#000000",
|
24 |
+
"background_color": "#ffffff"
|
25 |
+
}
|
my-app/public/robots.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
# https://www.robotstxt.org/robotstxt.html
|
2 |
+
User-agent: *
|
3 |
+
Disallow:
|
my-app/src/App.css
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.App {
|
2 |
+
text-align: center;
|
3 |
+
}
|
4 |
+
|
5 |
+
.App-logo {
|
6 |
+
height: 40vmin;
|
7 |
+
pointer-events: none;
|
8 |
+
}
|
9 |
+
|
10 |
+
@media (prefers-reduced-motion: no-preference) {
|
11 |
+
.App-logo {
|
12 |
+
animation: App-logo-spin infinite 20s linear;
|
13 |
+
}
|
14 |
+
}
|
15 |
+
|
16 |
+
.App-header {
|
17 |
+
background-color: #282c34;
|
18 |
+
min-height: 100vh;
|
19 |
+
display: flex;
|
20 |
+
flex-direction: column;
|
21 |
+
align-items: center;
|
22 |
+
justify-content: center;
|
23 |
+
font-size: calc(10px + 2vmin);
|
24 |
+
color: white;
|
25 |
+
}
|
26 |
+
|
27 |
+
.App-link {
|
28 |
+
color: #61dafb;
|
29 |
+
}
|
30 |
+
|
31 |
+
@keyframes App-logo-spin {
|
32 |
+
from {
|
33 |
+
transform: rotate(0deg);
|
34 |
+
}
|
35 |
+
to {
|
36 |
+
transform: rotate(360deg);
|
37 |
+
}
|
38 |
+
}
|
my-app/src/App.js
ADDED
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import logo from './logo.svg';
|
2 |
+
import './App.css';
|
3 |
+
|
4 |
+
function App() {
|
5 |
+
return (
|
6 |
+
<div className="App">
|
7 |
+
<header className="App-header">
|
8 |
+
<img src={logo} className="App-logo" alt="logo" />
|
9 |
+
<p>
|
10 |
+
Edit <code>src/App.js</code> and save to reload.
|
11 |
+
</p>
|
12 |
+
<a
|
13 |
+
className="App-link"
|
14 |
+
href="https://reactjs.org"
|
15 |
+
target="_blank"
|
16 |
+
rel="noopener noreferrer"
|
17 |
+
>
|
18 |
+
Learn React
|
19 |
+
</a>
|
20 |
+
</header>
|
21 |
+
</div>
|
22 |
+
);
|
23 |
+
}
|
24 |
+
|
25 |
+
export default App;
|
my-app/src/App.test.js
ADDED
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { render, screen } from '@testing-library/react';
|
2 |
+
import App from './App';
|
3 |
+
|
4 |
+
test('renders learn react link', () => {
|
5 |
+
render(<App />);
|
6 |
+
const linkElement = screen.getByText(/learn react/i);
|
7 |
+
expect(linkElement).toBeInTheDocument();
|
8 |
+
});
|
my-app/src/index.css
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
body {
|
2 |
+
margin: 0;
|
3 |
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
4 |
+
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
5 |
+
sans-serif;
|
6 |
+
-webkit-font-smoothing: antialiased;
|
7 |
+
-moz-osx-font-smoothing: grayscale;
|
8 |
+
}
|
9 |
+
|
10 |
+
code {
|
11 |
+
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
|
12 |
+
monospace;
|
13 |
+
}
|
my-app/src/index.js
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import React from 'react';
|
2 |
+
import ReactDOM from 'react-dom/client';
|
3 |
+
import './index.css';
|
4 |
+
import App from './App';
|
5 |
+
import reportWebVitals from './reportWebVitals';
|
6 |
+
|
7 |
+
const root = ReactDOM.createRoot(document.getElementById('root'));
|
8 |
+
root.render(
|
9 |
+
<React.StrictMode>
|
10 |
+
<App />
|
11 |
+
</React.StrictMode>
|
12 |
+
);
|
13 |
+
|
14 |
+
// If you want to start measuring performance in your app, pass a function
|
15 |
+
// to log results (for example: reportWebVitals(console.log))
|
16 |
+
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
|
17 |
+
reportWebVitals();
|
my-app/src/logo.svg
ADDED
my-app/src/reportWebVitals.js
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const reportWebVitals = onPerfEntry => {
|
2 |
+
if (onPerfEntry && onPerfEntry instanceof Function) {
|
3 |
+
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
|
4 |
+
getCLS(onPerfEntry);
|
5 |
+
getFID(onPerfEntry);
|
6 |
+
getFCP(onPerfEntry);
|
7 |
+
getLCP(onPerfEntry);
|
8 |
+
getTTFB(onPerfEntry);
|
9 |
+
});
|
10 |
+
}
|
11 |
+
};
|
12 |
+
|
13 |
+
export default reportWebVitals;
|
my-app/src/setupTests.js
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
2 |
+
// allows you to do things like:
|
3 |
+
// expect(element).toHaveTextContent(/react/i)
|
4 |
+
// learn more: https://github.com/testing-library/jest-dom
|
5 |
+
import '@testing-library/jest-dom';
|
notebook_for_knit.html
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
notebook_for_knit.ipynb
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
vue-project/.gitignore
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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?
|
vue-project/.vscode/extensions.json
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
|
3 |
+
}
|
vue-project/README.md
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# vue-project
|
2 |
+
|
3 |
+
This template should help get you started developing with Vue 3 in Vite.
|
4 |
+
|
5 |
+
## Recommended IDE Setup
|
6 |
+
|
7 |
+
[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).
|
8 |
+
|
9 |
+
## Customize configuration
|
10 |
+
|
11 |
+
See [Vite Configuration Reference](https://vitejs.dev/config/).
|
12 |
+
|
13 |
+
## Project Setup
|
14 |
+
|
15 |
+
```sh
|
16 |
+
npm install
|
17 |
+
```
|
18 |
+
|
19 |
+
### Compile and Hot-Reload for Development
|
20 |
+
|
21 |
+
```sh
|
22 |
+
npm run dev
|
23 |
+
```
|
24 |
+
|
25 |
+
### Compile and Minify for Production
|
26 |
+
|
27 |
+
```sh
|
28 |
+
npm run build
|
29 |
+
```
|
vue-project/index.html
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8" />
|
5 |
+
<link rel="icon" href="/favicon.ico" />
|
6 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
7 |
+
<title>Vite App</title>
|
8 |
+
</head>
|
9 |
+
<body>
|
10 |
+
<div id="app"></div>
|
11 |
+
<script type="module" src="/src/main.js"></script>
|
12 |
+
</body>
|
13 |
+
</html>
|
vue-project/package-lock.json
ADDED
@@ -0,0 +1,435 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "vue-project",
|
3 |
+
"version": "0.0.0",
|
4 |
+
"lockfileVersion": 1,
|
5 |
+
"requires": true,
|
6 |
+
"dependencies": {
|
7 |
+
"@babel/parser": {
|
8 |
+
"version": "7.18.11",
|
9 |
+
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz",
|
10 |
+
"integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ=="
|
11 |
+
},
|
12 |
+
"@esbuild/linux-loong64": {
|
13 |
+
"version": "0.14.53",
|
14 |
+
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.53.tgz",
|
15 |
+
"integrity": "sha512-W2dAL6Bnyn4xa/QRSU3ilIK4EzD5wgYXKXJiS1HDF5vU3675qc2bvFyLwbUcdmssDveyndy7FbitrCoiV/eMLg==",
|
16 |
+
"dev": true,
|
17 |
+
"optional": true
|
18 |
+
},
|
19 |
+
"@vitejs/plugin-vue": {
|
20 |
+
"version": "3.0.1",
|
21 |
+
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-3.0.1.tgz",
|
22 |
+
"integrity": "sha512-Ll9JgxG7ONIz/XZv3dssfoMUDu9qAnlJ+km+pBA0teYSXzwPCIzS/e1bmwNYl5dcQGs677D21amgfYAnzMl17A==",
|
23 |
+
"dev": true
|
24 |
+
},
|
25 |
+
"@vue/compiler-core": {
|
26 |
+
"version": "3.2.37",
|
27 |
+
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.37.tgz",
|
28 |
+
"integrity": "sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==",
|
29 |
+
"requires": {
|
30 |
+
"@babel/parser": "^7.16.4",
|
31 |
+
"@vue/shared": "3.2.37",
|
32 |
+
"estree-walker": "^2.0.2",
|
33 |
+
"source-map": "^0.6.1"
|
34 |
+
}
|
35 |
+
},
|
36 |
+
"@vue/compiler-dom": {
|
37 |
+
"version": "3.2.37",
|
38 |
+
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.37.tgz",
|
39 |
+
"integrity": "sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==",
|
40 |
+
"requires": {
|
41 |
+
"@vue/compiler-core": "3.2.37",
|
42 |
+
"@vue/shared": "3.2.37"
|
43 |
+
}
|
44 |
+
},
|
45 |
+
"@vue/compiler-sfc": {
|
46 |
+
"version": "3.2.37",
|
47 |
+
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.37.tgz",
|
48 |
+
"integrity": "sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==",
|
49 |
+
"requires": {
|
50 |
+
"@babel/parser": "^7.16.4",
|
51 |
+
"@vue/compiler-core": "3.2.37",
|
52 |
+
"@vue/compiler-dom": "3.2.37",
|
53 |
+
"@vue/compiler-ssr": "3.2.37",
|
54 |
+
"@vue/reactivity-transform": "3.2.37",
|
55 |
+
"@vue/shared": "3.2.37",
|
56 |
+
"estree-walker": "^2.0.2",
|
57 |
+
"magic-string": "^0.25.7",
|
58 |
+
"postcss": "^8.1.10",
|
59 |
+
"source-map": "^0.6.1"
|
60 |
+
}
|
61 |
+
},
|
62 |
+
"@vue/compiler-ssr": {
|
63 |
+
"version": "3.2.37",
|
64 |
+
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.37.tgz",
|
65 |
+
"integrity": "sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==",
|
66 |
+
"requires": {
|
67 |
+
"@vue/compiler-dom": "3.2.37",
|
68 |
+
"@vue/shared": "3.2.37"
|
69 |
+
}
|
70 |
+
},
|
71 |
+
"@vue/reactivity": {
|
72 |
+
"version": "3.2.37",
|
73 |
+
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.37.tgz",
|
74 |
+
"integrity": "sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==",
|
75 |
+
"requires": {
|
76 |
+
"@vue/shared": "3.2.37"
|
77 |
+
}
|
78 |
+
},
|
79 |
+
"@vue/reactivity-transform": {
|
80 |
+
"version": "3.2.37",
|
81 |
+
"resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.37.tgz",
|
82 |
+
"integrity": "sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==",
|
83 |
+
"requires": {
|
84 |
+
"@babel/parser": "^7.16.4",
|
85 |
+
"@vue/compiler-core": "3.2.37",
|
86 |
+
"@vue/shared": "3.2.37",
|
87 |
+
"estree-walker": "^2.0.2",
|
88 |
+
"magic-string": "^0.25.7"
|
89 |
+
}
|
90 |
+
},
|
91 |
+
"@vue/runtime-core": {
|
92 |
+
"version": "3.2.37",
|
93 |
+
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.37.tgz",
|
94 |
+
"integrity": "sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==",
|
95 |
+
"requires": {
|
96 |
+
"@vue/reactivity": "3.2.37",
|
97 |
+
"@vue/shared": "3.2.37"
|
98 |
+
}
|
99 |
+
},
|
100 |
+
"@vue/runtime-dom": {
|
101 |
+
"version": "3.2.37",
|
102 |
+
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.37.tgz",
|
103 |
+
"integrity": "sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==",
|
104 |
+
"requires": {
|
105 |
+
"@vue/runtime-core": "3.2.37",
|
106 |
+
"@vue/shared": "3.2.37",
|
107 |
+
"csstype": "^2.6.8"
|
108 |
+
}
|
109 |
+
},
|
110 |
+
"@vue/server-renderer": {
|
111 |
+
"version": "3.2.37",
|
112 |
+
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.37.tgz",
|
113 |
+
"integrity": "sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==",
|
114 |
+
"requires": {
|
115 |
+
"@vue/compiler-ssr": "3.2.37",
|
116 |
+
"@vue/shared": "3.2.37"
|
117 |
+
}
|
118 |
+
},
|
119 |
+
"@vue/shared": {
|
120 |
+
"version": "3.2.37",
|
121 |
+
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.37.tgz",
|
122 |
+
"integrity": "sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw=="
|
123 |
+
},
|
124 |
+
"csstype": {
|
125 |
+
"version": "2.6.20",
|
126 |
+
"resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz",
|
127 |
+
"integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA=="
|
128 |
+
},
|
129 |
+
"esbuild": {
|
130 |
+
"version": "0.14.53",
|
131 |
+
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.53.tgz",
|
132 |
+
"integrity": "sha512-ohO33pUBQ64q6mmheX1mZ8mIXj8ivQY/L4oVuAshr+aJI+zLl+amrp3EodrUNDNYVrKJXGPfIHFGhO8slGRjuw==",
|
133 |
+
"dev": true,
|
134 |
+
"requires": {
|
135 |
+
"@esbuild/linux-loong64": "0.14.53",
|
136 |
+
"esbuild-android-64": "0.14.53",
|
137 |
+
"esbuild-android-arm64": "0.14.53",
|
138 |
+
"esbuild-darwin-64": "0.14.53",
|
139 |
+
"esbuild-darwin-arm64": "0.14.53",
|
140 |
+
"esbuild-freebsd-64": "0.14.53",
|
141 |
+
"esbuild-freebsd-arm64": "0.14.53",
|
142 |
+
"esbuild-linux-32": "0.14.53",
|
143 |
+
"esbuild-linux-64": "0.14.53",
|
144 |
+
"esbuild-linux-arm": "0.14.53",
|
145 |
+
"esbuild-linux-arm64": "0.14.53",
|
146 |
+
"esbuild-linux-mips64le": "0.14.53",
|
147 |
+
"esbuild-linux-ppc64le": "0.14.53",
|
148 |
+
"esbuild-linux-riscv64": "0.14.53",
|
149 |
+
"esbuild-linux-s390x": "0.14.53",
|
150 |
+
"esbuild-netbsd-64": "0.14.53",
|
151 |
+
"esbuild-openbsd-64": "0.14.53",
|
152 |
+
"esbuild-sunos-64": "0.14.53",
|
153 |
+
"esbuild-windows-32": "0.14.53",
|
154 |
+
"esbuild-windows-64": "0.14.53",
|
155 |
+
"esbuild-windows-arm64": "0.14.53"
|
156 |
+
}
|
157 |
+
},
|
158 |
+
"esbuild-android-64": {
|
159 |
+
"version": "0.14.53",
|
160 |
+
"resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.53.tgz",
|
161 |
+
"integrity": "sha512-fIL93sOTnEU+NrTAVMIKiAw0YH22HWCAgg4N4Z6zov2t0kY9RAJ50zY9ZMCQ+RT6bnOfDt8gCTnt/RaSNA2yRA==",
|
162 |
+
"dev": true,
|
163 |
+
"optional": true
|
164 |
+
},
|
165 |
+
"esbuild-android-arm64": {
|
166 |
+
"version": "0.14.53",
|
167 |
+
"resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.53.tgz",
|
168 |
+
"integrity": "sha512-PC7KaF1v0h/nWpvlU1UMN7dzB54cBH8qSsm7S9mkwFA1BXpaEOufCg8hdoEI1jep0KeO/rjZVWrsH8+q28T77A==",
|
169 |
+
"dev": true,
|
170 |
+
"optional": true
|
171 |
+
},
|
172 |
+
"esbuild-darwin-64": {
|
173 |
+
"version": "0.14.53",
|
174 |
+
"resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.53.tgz",
|
175 |
+
"integrity": "sha512-gE7P5wlnkX4d4PKvLBUgmhZXvL7lzGRLri17/+CmmCzfncIgq8lOBvxGMiQ4xazplhxq+72TEohyFMZLFxuWvg==",
|
176 |
+
"dev": true,
|
177 |
+
"optional": true
|
178 |
+
},
|
179 |
+
"esbuild-darwin-arm64": {
|
180 |
+
"version": "0.14.53",
|
181 |
+
"resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.53.tgz",
|
182 |
+
"integrity": "sha512-otJwDU3hnI15Q98PX4MJbknSZ/WSR1I45il7gcxcECXzfN4Mrpft5hBDHXNRnCh+5858uPXBXA1Vaz2jVWLaIA==",
|
183 |
+
"dev": true,
|
184 |
+
"optional": true
|
185 |
+
},
|
186 |
+
"esbuild-freebsd-64": {
|
187 |
+
"version": "0.14.53",
|
188 |
+
"resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.53.tgz",
|
189 |
+
"integrity": "sha512-WkdJa8iyrGHyKiPF4lk0MiOF87Q2SkE+i+8D4Cazq3/iqmGPJ6u49je300MFi5I2eUsQCkaOWhpCVQMTKGww2w==",
|
190 |
+
"dev": true,
|
191 |
+
"optional": true
|
192 |
+
},
|
193 |
+
"esbuild-freebsd-arm64": {
|
194 |
+
"version": "0.14.53",
|
195 |
+
"resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.53.tgz",
|
196 |
+
"integrity": "sha512-9T7WwCuV30NAx0SyQpw8edbKvbKELnnm1FHg7gbSYaatH+c8WJW10g/OdM7JYnv7qkimw2ZTtSA+NokOLd2ydQ==",
|
197 |
+
"dev": true,
|
198 |
+
"optional": true
|
199 |
+
},
|
200 |
+
"esbuild-linux-32": {
|
201 |
+
"version": "0.14.53",
|
202 |
+
"resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.53.tgz",
|
203 |
+
"integrity": "sha512-VGanLBg5en2LfGDgLEUxQko2lqsOS7MTEWUi8x91YmsHNyzJVT/WApbFFx3MQGhkf+XdimVhpyo5/G0PBY91zg==",
|
204 |
+
"dev": true,
|
205 |
+
"optional": true
|
206 |
+
},
|
207 |
+
"esbuild-linux-64": {
|
208 |
+
"version": "0.14.53",
|
209 |
+
"resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.53.tgz",
|
210 |
+
"integrity": "sha512-pP/FA55j/fzAV7N9DF31meAyjOH6Bjuo3aSKPh26+RW85ZEtbJv9nhoxmGTd9FOqjx59Tc1ZbrJabuiXlMwuZQ==",
|
211 |
+
"dev": true,
|
212 |
+
"optional": true
|
213 |
+
},
|
214 |
+
"esbuild-linux-arm": {
|
215 |
+
"version": "0.14.53",
|
216 |
+
"resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.53.tgz",
|
217 |
+
"integrity": "sha512-/u81NGAVZMopbmzd21Nu/wvnKQK3pT4CrvQ8BTje1STXcQAGnfyKgQlj3m0j2BzYbvQxSy+TMck4TNV2onvoPA==",
|
218 |
+
"dev": true,
|
219 |
+
"optional": true
|
220 |
+
},
|
221 |
+
"esbuild-linux-arm64": {
|
222 |
+
"version": "0.14.53",
|
223 |
+
"resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.53.tgz",
|
224 |
+
"integrity": "sha512-GDmWITT+PMsjCA6/lByYk7NyFssW4Q6in32iPkpjZ/ytSyH+xeEx8q7HG3AhWH6heemEYEWpTll/eui3jwlSnw==",
|
225 |
+
"dev": true,
|
226 |
+
"optional": true
|
227 |
+
},
|
228 |
+
"esbuild-linux-mips64le": {
|
229 |
+
"version": "0.14.53",
|
230 |
+
"resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.53.tgz",
|
231 |
+
"integrity": "sha512-d6/XHIQW714gSSp6tOOX2UscedVobELvQlPMkInhx1NPz4ThZI9uNLQ4qQJHGBGKGfu+rtJsxM4NVHLhnNRdWQ==",
|
232 |
+
"dev": true,
|
233 |
+
"optional": true
|
234 |
+
},
|
235 |
+
"esbuild-linux-ppc64le": {
|
236 |
+
"version": "0.14.53",
|
237 |
+
"resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.53.tgz",
|
238 |
+
"integrity": "sha512-ndnJmniKPCB52m+r6BtHHLAOXw+xBCWIxNnedbIpuREOcbSU/AlyM/2dA3BmUQhsHdb4w3amD5U2s91TJ3MzzA==",
|
239 |
+
"dev": true,
|
240 |
+
"optional": true
|
241 |
+
},
|
242 |
+
"esbuild-linux-riscv64": {
|
243 |
+
"version": "0.14.53",
|
244 |
+
"resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.53.tgz",
|
245 |
+
"integrity": "sha512-yG2sVH+QSix6ct4lIzJj329iJF3MhloLE6/vKMQAAd26UVPVkhMFqFopY+9kCgYsdeWvXdPgmyOuKa48Y7+/EQ==",
|
246 |
+
"dev": true,
|
247 |
+
"optional": true
|
248 |
+
},
|
249 |
+
"esbuild-linux-s390x": {
|
250 |
+
"version": "0.14.53",
|
251 |
+
"resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.53.tgz",
|
252 |
+
"integrity": "sha512-OCJlgdkB+XPYndHmw6uZT7jcYgzmx9K+28PVdOa/eLjdoYkeAFvH5hTwX4AXGLZLH09tpl4bVsEtvuyUldaNCg==",
|
253 |
+
"dev": true,
|
254 |
+
"optional": true
|
255 |
+
},
|
256 |
+
"esbuild-netbsd-64": {
|
257 |
+
"version": "0.14.53",
|
258 |
+
"resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.53.tgz",
|
259 |
+
"integrity": "sha512-gp2SB+Efc7MhMdWV2+pmIs/Ja/Mi5rjw+wlDmmbIn68VGXBleNgiEZG+eV2SRS0kJEUyHNedDtwRIMzaohWedQ==",
|
260 |
+
"dev": true,
|
261 |
+
"optional": true
|
262 |
+
},
|
263 |
+
"esbuild-openbsd-64": {
|
264 |
+
"version": "0.14.53",
|
265 |
+
"resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.53.tgz",
|
266 |
+
"integrity": "sha512-eKQ30ZWe+WTZmteDYg8S+YjHV5s4iTxeSGhJKJajFfQx9TLZJvsJX0/paqwP51GicOUruFpSUAs2NCc0a4ivQQ==",
|
267 |
+
"dev": true,
|
268 |
+
"optional": true
|
269 |
+
},
|
270 |
+
"esbuild-sunos-64": {
|
271 |
+
"version": "0.14.53",
|
272 |
+
"resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.53.tgz",
|
273 |
+
"integrity": "sha512-OWLpS7a2FrIRukQqcgQqR1XKn0jSJoOdT+RlhAxUoEQM/IpytS3FXzCJM6xjUYtpO5GMY0EdZJp+ur2pYdm39g==",
|
274 |
+
"dev": true,
|
275 |
+
"optional": true
|
276 |
+
},
|
277 |
+
"esbuild-windows-32": {
|
278 |
+
"version": "0.14.53",
|
279 |
+
"resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.53.tgz",
|
280 |
+
"integrity": "sha512-m14XyWQP5rwGW0tbEfp95U6A0wY0DYPInWBB7D69FAXUpBpBObRoGTKRv36lf2RWOdE4YO3TNvj37zhXjVL5xg==",
|
281 |
+
"dev": true,
|
282 |
+
"optional": true
|
283 |
+
},
|
284 |
+
"esbuild-windows-64": {
|
285 |
+
"version": "0.14.53",
|
286 |
+
"resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.53.tgz",
|
287 |
+
"integrity": "sha512-s9skQFF0I7zqnQ2K8S1xdLSfZFsPLuOGmSx57h2btSEswv0N0YodYvqLcJMrNMXh6EynOmWD7rz+0rWWbFpIHQ==",
|
288 |
+
"dev": true,
|
289 |
+
"optional": true
|
290 |
+
},
|
291 |
+
"esbuild-windows-arm64": {
|
292 |
+
"version": "0.14.53",
|
293 |
+
"resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.53.tgz",
|
294 |
+
"integrity": "sha512-E+5Gvb+ZWts+00T9II6wp2L3KG2r3iGxByqd/a1RmLmYWVsSVUjkvIxZuJ3hYTIbhLkH5PRwpldGTKYqVz0nzQ==",
|
295 |
+
"dev": true,
|
296 |
+
"optional": true
|
297 |
+
},
|
298 |
+
"estree-walker": {
|
299 |
+
"version": "2.0.2",
|
300 |
+
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
|
301 |
+
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
|
302 |
+
},
|
303 |
+
"fsevents": {
|
304 |
+
"version": "2.3.2",
|
305 |
+
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
306 |
+
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
307 |
+
"dev": true,
|
308 |
+
"optional": true
|
309 |
+
},
|
310 |
+
"function-bind": {
|
311 |
+
"version": "1.1.1",
|
312 |
+
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
313 |
+
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
|
314 |
+
"dev": true
|
315 |
+
},
|
316 |
+
"has": {
|
317 |
+
"version": "1.0.3",
|
318 |
+
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
319 |
+
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
|
320 |
+
"dev": true,
|
321 |
+
"requires": {
|
322 |
+
"function-bind": "^1.1.1"
|
323 |
+
}
|
324 |
+
},
|
325 |
+
"is-core-module": {
|
326 |
+
"version": "2.10.0",
|
327 |
+
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
|
328 |
+
"integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
|
329 |
+
"dev": true,
|
330 |
+
"requires": {
|
331 |
+
"has": "^1.0.3"
|
332 |
+
}
|
333 |
+
},
|
334 |
+
"magic-string": {
|
335 |
+
"version": "0.25.9",
|
336 |
+
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
|
337 |
+
"integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
|
338 |
+
"requires": {
|
339 |
+
"sourcemap-codec": "^1.4.8"
|
340 |
+
}
|
341 |
+
},
|
342 |
+
"nanoid": {
|
343 |
+
"version": "3.3.4",
|
344 |
+
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
|
345 |
+
"integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
|
346 |
+
},
|
347 |
+
"path-parse": {
|
348 |
+
"version": "1.0.7",
|
349 |
+
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
|
350 |
+
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
|
351 |
+
"dev": true
|
352 |
+
},
|
353 |
+
"picocolors": {
|
354 |
+
"version": "1.0.0",
|
355 |
+
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
356 |
+
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
|
357 |
+
},
|
358 |
+
"postcss": {
|
359 |
+
"version": "8.4.14",
|
360 |
+
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
|
361 |
+
"integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
|
362 |
+
"requires": {
|
363 |
+
"nanoid": "^3.3.4",
|
364 |
+
"picocolors": "^1.0.0",
|
365 |
+
"source-map-js": "^1.0.2"
|
366 |
+
}
|
367 |
+
},
|
368 |
+
"resolve": {
|
369 |
+
"version": "1.22.1",
|
370 |
+
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
|
371 |
+
"integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
|
372 |
+
"dev": true,
|
373 |
+
"requires": {
|
374 |
+
"is-core-module": "^2.9.0",
|
375 |
+
"path-parse": "^1.0.7",
|
376 |
+
"supports-preserve-symlinks-flag": "^1.0.0"
|
377 |
+
}
|
378 |
+
},
|
379 |
+
"rollup": {
|
380 |
+
"version": "2.77.2",
|
381 |
+
"resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.2.tgz",
|
382 |
+
"integrity": "sha512-m/4YzYgLcpMQbxX3NmAqDvwLATZzxt8bIegO78FZLl+lAgKJBd1DRAOeEiZcKOIOPjxE6ewHWHNgGEalFXuz1g==",
|
383 |
+
"dev": true,
|
384 |
+
"requires": {
|
385 |
+
"fsevents": "~2.3.2"
|
386 |
+
}
|
387 |
+
},
|
388 |
+
"source-map": {
|
389 |
+
"version": "0.6.1",
|
390 |
+
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
391 |
+
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
|
392 |
+
},
|
393 |
+
"source-map-js": {
|
394 |
+
"version": "1.0.2",
|
395 |
+
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
|
396 |
+
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
|
397 |
+
},
|
398 |
+
"sourcemap-codec": {
|
399 |
+
"version": "1.4.8",
|
400 |
+
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
|
401 |
+
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA=="
|
402 |
+
},
|
403 |
+
"supports-preserve-symlinks-flag": {
|
404 |
+
"version": "1.0.0",
|
405 |
+
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
|
406 |
+
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
|
407 |
+
"dev": true
|
408 |
+
},
|
409 |
+
"vite": {
|
410 |
+
"version": "3.0.4",
|
411 |
+
"resolved": "https://registry.npmjs.org/vite/-/vite-3.0.4.tgz",
|
412 |
+
"integrity": "sha512-NU304nqnBeOx2MkQnskBQxVsa0pRAH5FphokTGmyy8M3oxbvw7qAXts2GORxs+h/2vKsD+osMhZ7An6yK6F1dA==",
|
413 |
+
"dev": true,
|
414 |
+
"requires": {
|
415 |
+
"esbuild": "^0.14.47",
|
416 |
+
"fsevents": "~2.3.2",
|
417 |
+
"postcss": "^8.4.14",
|
418 |
+
"resolve": "^1.22.1",
|
419 |
+
"rollup": "^2.75.6"
|
420 |
+
}
|
421 |
+
},
|
422 |
+
"vue": {
|
423 |
+
"version": "3.2.37",
|
424 |
+
"resolved": "https://registry.npmjs.org/vue/-/vue-3.2.37.tgz",
|
425 |
+
"integrity": "sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==",
|
426 |
+
"requires": {
|
427 |
+
"@vue/compiler-dom": "3.2.37",
|
428 |
+
"@vue/compiler-sfc": "3.2.37",
|
429 |
+
"@vue/runtime-dom": "3.2.37",
|
430 |
+
"@vue/server-renderer": "3.2.37",
|
431 |
+
"@vue/shared": "3.2.37"
|
432 |
+
}
|
433 |
+
}
|
434 |
+
}
|
435 |
+
}
|
vue-project/package.json
ADDED
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "vue-project",
|
3 |
+
"version": "0.0.0",
|
4 |
+
"scripts": {
|
5 |
+
"dev": "vite",
|
6 |
+
"build": "vite build",
|
7 |
+
"preview": "vite preview --port 4173"
|
8 |
+
},
|
9 |
+
"dependencies": {
|
10 |
+
"vue": "^3.2.37"
|
11 |
+
},
|
12 |
+
"devDependencies": {
|
13 |
+
"@vitejs/plugin-vue": "^3.0.1",
|
14 |
+
"vite": "^3.0.1"
|
15 |
+
}
|
16 |
+
}
|
vue-project/public/favicon.ico
ADDED
vue-project/src/App.vue
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script setup>
|
2 |
+
import HelloWorld from './components/HelloWorld.vue'
|
3 |
+
import TheWelcome from './components/TheWelcome.vue'
|
4 |
+
</script>
|
5 |
+
|
6 |
+
<template>
|
7 |
+
<header>
|
8 |
+
<img alt="Vue logo" class="logo" src="./assets/logo.svg" width="125" height="125" />
|
9 |
+
|
10 |
+
<div class="wrapper">
|
11 |
+
<HelloWorld msg="You did it!" />
|
12 |
+
</div>
|
13 |
+
</header>
|
14 |
+
|
15 |
+
<main>
|
16 |
+
<TheWelcome />
|
17 |
+
</main>
|
18 |
+
</template>
|
19 |
+
|
20 |
+
<style scoped>
|
21 |
+
header {
|
22 |
+
line-height: 1.5;
|
23 |
+
}
|
24 |
+
|
25 |
+
.logo {
|
26 |
+
display: block;
|
27 |
+
margin: 0 auto 2rem;
|
28 |
+
}
|
29 |
+
|
30 |
+
@media (min-width: 1024px) {
|
31 |
+
header {
|
32 |
+
display: flex;
|
33 |
+
place-items: center;
|
34 |
+
padding-right: calc(var(--section-gap) / 2);
|
35 |
+
}
|
36 |
+
|
37 |
+
.logo {
|
38 |
+
margin: 0 2rem 0 0;
|
39 |
+
}
|
40 |
+
|
41 |
+
header .wrapper {
|
42 |
+
display: flex;
|
43 |
+
place-items: flex-start;
|
44 |
+
flex-wrap: wrap;
|
45 |
+
}
|
46 |
+
}
|
47 |
+
</style>
|
vue-project/src/assets/base.css
ADDED
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* color palette from <https://github.com/vuejs/theme> */
|
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 |
+
}
|
vue-project/src/assets/logo.svg
ADDED
vue-project/src/assets/main.css
ADDED
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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: hsla(160, 100%, 37%, 1);
|
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 |
+
@media (min-width: 1024px) {
|
25 |
+
body {
|
26 |
+
display: flex;
|
27 |
+
place-items: center;
|
28 |
+
}
|
29 |
+
|
30 |
+
#app {
|
31 |
+
display: grid;
|
32 |
+
grid-template-columns: 1fr 1fr;
|
33 |
+
padding: 0 2rem;
|
34 |
+
}
|
35 |
+
}
|
vue-project/src/components/HelloWorld.vue
ADDED
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script setup>
|
2 |
+
defineProps({
|
3 |
+
msg: {
|
4 |
+
type: String,
|
5 |
+
required: true
|
6 |
+
}
|
7 |
+
})
|
8 |
+
</script>
|
9 |
+
|
10 |
+
<template>
|
11 |
+
<div class="greetings">
|
12 |
+
<h1 class="green">{{ msg }}</h1>
|
13 |
+
<h3>
|
14 |
+
You’ve successfully created a project with
|
15 |
+
<a target="_blank" href="https://vitejs.dev/">Vite</a> +
|
16 |
+
<a target="_blank" href="https://vuejs.org/">Vue 3</a>.
|
17 |
+
</h3>
|
18 |
+
</div>
|
19 |
+
</template>
|
20 |
+
|
21 |
+
<style scoped>
|
22 |
+
h1 {
|
23 |
+
font-weight: 500;
|
24 |
+
font-size: 2.6rem;
|
25 |
+
top: -10px;
|
26 |
+
}
|
27 |
+
|
28 |
+
h3 {
|
29 |
+
font-size: 1.2rem;
|
30 |
+
}
|
31 |
+
|
32 |
+
.greetings h1,
|
33 |
+
.greetings h3 {
|
34 |
+
text-align: center;
|
35 |
+
}
|
36 |
+
|
37 |
+
@media (min-width: 1024px) {
|
38 |
+
.greetings h1,
|
39 |
+
.greetings h3 {
|
40 |
+
text-align: left;
|
41 |
+
}
|
42 |
+
}
|
43 |
+
</style>
|
vue-project/src/components/TheWelcome.vue
ADDED
@@ -0,0 +1,84 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<script setup>
|
2 |
+
import WelcomeItem from './WelcomeItem.vue'
|
3 |
+
import DocumentationIcon from './icons/IconDocumentation.vue'
|
4 |
+
import ToolingIcon from './icons/IconTooling.vue'
|
5 |
+
import EcosystemIcon from './icons/IconEcosystem.vue'
|
6 |
+
import CommunityIcon from './icons/IconCommunity.vue'
|
7 |
+
import SupportIcon from './icons/IconSupport.vue'
|
8 |
+
</script>
|
9 |
+
|
10 |
+
<template>
|
11 |
+
<WelcomeItem>
|
12 |
+
<template #icon>
|
13 |
+
<DocumentationIcon />
|
14 |
+
</template>
|
15 |
+
<template #heading>Documentation</template>
|
16 |
+
|
17 |
+
Vue’s
|
18 |
+
<a target="_blank" href="https://vuejs.org/">official documentation</a>
|
19 |
+
provides you with all information you need to get started.
|
20 |
+
</WelcomeItem>
|
21 |
+
|
22 |
+
<WelcomeItem>
|
23 |
+
<template #icon>
|
24 |
+
<ToolingIcon />
|
25 |
+
</template>
|
26 |
+
<template #heading>Tooling</template>
|
27 |
+
|
28 |
+
This project is served and bundled with
|
29 |
+
<a href="https://vitejs.dev/guide/features.html" target="_blank">Vite</a>. The recommended IDE
|
30 |
+
setup is <a href="https://code.visualstudio.com/" target="_blank">VSCode</a> +
|
31 |
+
<a href="https://github.com/johnsoncodehk/volar" target="_blank">Volar</a>. If you need to test
|
32 |
+
your components and web pages, check out
|
33 |
+
<a href="https://www.cypress.io/" target="_blank">Cypress</a> and
|
34 |
+
<a href="https://on.cypress.io/component" target="_blank"
|
35 |
+
>Cypress Component Testing</a
|
36 |
+
>.
|
37 |
+
|
38 |
+
<br />
|
39 |
+
|
40 |
+
More instructions are available in <code>README.md</code>.
|
41 |
+
</WelcomeItem>
|
42 |
+
|
43 |
+
<WelcomeItem>
|
44 |
+
<template #icon>
|
45 |
+
<EcosystemIcon />
|
46 |
+
</template>
|
47 |
+
<template #heading>Ecosystem</template>
|
48 |
+
|
49 |
+
Get official tools and libraries for your project:
|
50 |
+
<a target="_blank" href="https://pinia.vuejs.org/">Pinia</a>,
|
51 |
+
<a target="_blank" href="https://router.vuejs.org/">Vue Router</a>,
|
52 |
+
<a target="_blank" href="https://test-utils.vuejs.org/">Vue Test Utils</a>, and
|
53 |
+
<a target="_blank" href="https://github.com/vuejs/devtools">Vue Dev Tools</a>. If you need more
|
54 |
+
resources, we suggest paying
|
55 |
+
<a target="_blank" href="https://github.com/vuejs/awesome-vue">Awesome Vue</a>
|
56 |
+
a visit.
|
57 |
+
</WelcomeItem>
|
58 |
+
|
59 |
+
<WelcomeItem>
|
60 |
+
<template #icon>
|
61 |
+
<CommunityIcon />
|
62 |
+
</template>
|
63 |
+
<template #heading>Community</template>
|
64 |
+
|
65 |
+
Got stuck? Ask your question on
|
66 |
+
<a target="_blank" href="https://chat.vuejs.org">Vue Land</a>, our official Discord server, or
|
67 |
+
<a target="_blank" href="https://stackoverflow.com/questions/tagged/vue.js">StackOverflow</a>.
|
68 |
+
You should also subscribe to
|
69 |
+
<a target="_blank" href="https://news.vuejs.org">our mailing list</a> and follow the official
|
70 |
+
<a target="_blank" href="https://twitter.com/vuejs">@vuejs</a>
|
71 |
+
twitter account for latest news in the Vue world.
|
72 |
+
</WelcomeItem>
|
73 |
+
|
74 |
+
<WelcomeItem>
|
75 |
+
<template #icon>
|
76 |
+
<SupportIcon />
|
77 |
+
</template>
|
78 |
+
<template #heading>Support Vue</template>
|
79 |
+
|
80 |
+
As an independent project, Vue relies on community backing for its sustainability. You can help
|
81 |
+
us by
|
82 |
+
<a target="_blank" href="https://vuejs.org/sponsor/">becoming a sponsor</a>.
|
83 |
+
</WelcomeItem>
|
84 |
+
</template>
|
vue-project/src/components/WelcomeItem.vue
ADDED
@@ -0,0 +1,86 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<template>
|
2 |
+
<div class="item">
|
3 |
+
<i>
|
4 |
+
<slot name="icon"></slot>
|
5 |
+
</i>
|
6 |
+
<div class="details">
|
7 |
+
<h3>
|
8 |
+
<slot name="heading"></slot>
|
9 |
+
</h3>
|
10 |
+
<slot></slot>
|
11 |
+
</div>
|
12 |
+
</div>
|
13 |
+
</template>
|
14 |
+
|
15 |
+
<style scoped>
|
16 |
+
.item {
|
17 |
+
margin-top: 2rem;
|
18 |
+
display: flex;
|
19 |
+
}
|
20 |
+
|
21 |
+
.details {
|
22 |
+
flex: 1;
|
23 |
+
margin-left: 1rem;
|
24 |
+
}
|
25 |
+
|
26 |
+
i {
|
27 |
+
display: flex;
|
28 |
+
place-items: center;
|
29 |
+
place-content: center;
|
30 |
+
width: 32px;
|
31 |
+
height: 32px;
|
32 |
+
|
33 |
+
color: var(--color-text);
|
34 |
+
}
|
35 |
+
|
36 |
+
h3 {
|
37 |
+
font-size: 1.2rem;
|
38 |
+
font-weight: 500;
|
39 |
+
margin-bottom: 0.4rem;
|
40 |
+
color: var(--color-heading);
|
41 |
+
}
|
42 |
+
|
43 |
+
@media (min-width: 1024px) {
|
44 |
+
.item {
|
45 |
+
margin-top: 0;
|
46 |
+
padding: 0.4rem 0 1rem calc(var(--section-gap) / 2);
|
47 |
+
}
|
48 |
+
|
49 |
+
i {
|
50 |
+
top: calc(50% - 25px);
|
51 |
+
left: -26px;
|
52 |
+
position: absolute;
|
53 |
+
border: 1px solid var(--color-border);
|
54 |
+
background: var(--color-background);
|
55 |
+
border-radius: 8px;
|
56 |
+
width: 50px;
|
57 |
+
height: 50px;
|
58 |
+
}
|
59 |
+
|
60 |
+
.item:before {
|
61 |
+
content: ' ';
|
62 |
+
border-left: 1px solid var(--color-border);
|
63 |
+
position: absolute;
|
64 |
+
left: 0;
|
65 |
+
bottom: calc(50% + 25px);
|
66 |
+
height: calc(50% - 25px);
|
67 |
+
}
|
68 |
+
|
69 |
+
.item:after {
|
70 |
+
content: ' ';
|
71 |
+
border-left: 1px solid var(--color-border);
|
72 |
+
position: absolute;
|
73 |
+
left: 0;
|
74 |
+
top: calc(50% + 25px);
|
75 |
+
height: calc(50% - 25px);
|
76 |
+
}
|
77 |
+
|
78 |
+
.item:first-of-type:before {
|
79 |
+
display: none;
|
80 |
+
}
|
81 |
+
|
82 |
+
.item:last-of-type:after {
|
83 |
+
display: none;
|
84 |
+
}
|
85 |
+
}
|
86 |
+
</style>
|
vue-project/src/components/icons/IconCommunity.vue
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<template>
|
2 |
+
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor">
|
3 |
+
<path
|
4 |
+
d="M15 4a1 1 0 1 0 0 2V4zm0 11v-1a1 1 0 0 0-1 1h1zm0 4l-.707.707A1 1 0 0 0 16 19h-1zm-4-4l.707-.707A1 1 0 0 0 11 14v1zm-4.707-1.293a1 1 0 0 0-1.414 1.414l1.414-1.414zm-.707.707l-.707-.707.707.707zM9 11v-1a1 1 0 0 0-.707.293L9 11zm-4 0h1a1 1 0 0 0-1-1v1zm0 4H4a1 1 0 0 0 1.707.707L5 15zm10-9h2V4h-2v2zm2 0a1 1 0 0 1 1 1h2a3 3 0 0 0-3-3v2zm1 1v6h2V7h-2zm0 6a1 1 0 0 1-1 1v2a3 3 0 0 0 3-3h-2zm-1 1h-2v2h2v-2zm-3 1v4h2v-4h-2zm1.707 3.293l-4-4-1.414 1.414 4 4 1.414-1.414zM11 14H7v2h4v-2zm-4 0c-.276 0-.525-.111-.707-.293l-1.414 1.414C5.42 15.663 6.172 16 7 16v-2zm-.707 1.121l3.414-3.414-1.414-1.414-3.414 3.414 1.414 1.414zM9 12h4v-2H9v2zm4 0a3 3 0 0 0 3-3h-2a1 1 0 0 1-1 1v2zm3-3V3h-2v6h2zm0-6a3 3 0 0 0-3-3v2a1 1 0 0 1 1 1h2zm-3-3H3v2h10V0zM3 0a3 3 0 0 0-3 3h2a1 1 0 0 1 1-1V0zM0 3v6h2V3H0zm0 6a3 3 0 0 0 3 3v-2a1 1 0 0 1-1-1H0zm3 3h2v-2H3v2zm1-1v4h2v-4H4zm1.707 4.707l.586-.586-1.414-1.414-.586.586 1.414 1.414z"
|
5 |
+
/>
|
6 |
+
</svg>
|
7 |
+
</template>
|
vue-project/src/components/icons/IconDocumentation.vue
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<template>
|
2 |
+
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="17" fill="currentColor">
|
3 |
+
<path
|
4 |
+
d="M11 2.253a1 1 0 1 0-2 0h2zm-2 13a1 1 0 1 0 2 0H9zm.447-12.167a1 1 0 1 0 1.107-1.666L9.447 3.086zM1 2.253L.447 1.42A1 1 0 0 0 0 2.253h1zm0 13H0a1 1 0 0 0 1.553.833L1 15.253zm8.447.833a1 1 0 1 0 1.107-1.666l-1.107 1.666zm0-14.666a1 1 0 1 0 1.107 1.666L9.447 1.42zM19 2.253h1a1 1 0 0 0-.447-.833L19 2.253zm0 13l-.553.833A1 1 0 0 0 20 15.253h-1zm-9.553-.833a1 1 0 1 0 1.107 1.666L9.447 14.42zM9 2.253v13h2v-13H9zm1.553-.833C9.203.523 7.42 0 5.5 0v2c1.572 0 2.961.431 3.947 1.086l1.107-1.666zM5.5 0C3.58 0 1.797.523.447 1.42l1.107 1.666C2.539 2.431 3.928 2 5.5 2V0zM0 2.253v13h2v-13H0zm1.553 13.833C2.539 15.431 3.928 15 5.5 15v-2c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM5.5 15c1.572 0 2.961.431 3.947 1.086l1.107-1.666C9.203 13.523 7.42 13 5.5 13v2zm5.053-11.914C11.539 2.431 12.928 2 14.5 2V0c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM14.5 2c1.573 0 2.961.431 3.947 1.086l1.107-1.666C18.203.523 16.421 0 14.5 0v2zm3.5.253v13h2v-13h-2zm1.553 12.167C18.203 13.523 16.421 13 14.5 13v2c1.573 0 2.961.431 3.947 1.086l1.107-1.666zM14.5 13c-1.92 0-3.703.523-5.053 1.42l1.107 1.666C11.539 15.431 12.928 15 14.5 15v-2z"
|
5 |
+
/>
|
6 |
+
</svg>
|
7 |
+
</template>
|
vue-project/src/components/icons/IconEcosystem.vue
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<template>
|
2 |
+
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="20" fill="currentColor">
|
3 |
+
<path
|
4 |
+
d="M11.447 8.894a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm0 1.789a1 1 0 1 0 .894-1.789l-.894 1.789zM7.447 7.106a1 1 0 1 0-.894 1.789l.894-1.789zM10 9a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0H8zm9.447-5.606a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm2 .789a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zM18 5a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0h-2zm-5.447-4.606a1 1 0 1 0 .894-1.789l-.894 1.789zM9 1l.447-.894a1 1 0 0 0-.894 0L9 1zm-2.447.106a1 1 0 1 0 .894 1.789l-.894-1.789zm-6 3a1 1 0 1 0 .894 1.789L.553 4.106zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zm-2-.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 2.789a1 1 0 1 0 .894-1.789l-.894 1.789zM2 5a1 1 0 1 0-2 0h2zM0 7.5a1 1 0 1 0 2 0H0zm8.553 12.394a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 1a1 1 0 1 0 .894 1.789l-.894-1.789zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zM8 19a1 1 0 1 0 2 0H8zm2-2.5a1 1 0 1 0-2 0h2zm-7.447.394a1 1 0 1 0 .894-1.789l-.894 1.789zM1 15H0a1 1 0 0 0 .553.894L1 15zm1-2.5a1 1 0 1 0-2 0h2zm12.553 2.606a1 1 0 1 0 .894 1.789l-.894-1.789zM17 15l.447.894A1 1 0 0 0 18 15h-1zm1-2.5a1 1 0 1 0-2 0h2zm-7.447-5.394l-2 1 .894 1.789 2-1-.894-1.789zm-1.106 1l-2-1-.894 1.789 2 1 .894-1.789zM8 9v2.5h2V9H8zm8.553-4.894l-2 1 .894 1.789 2-1-.894-1.789zm.894 0l-2-1-.894 1.789 2 1 .894-1.789zM16 5v2.5h2V5h-2zm-4.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zm-2.894-1l-2 1 .894 1.789 2-1L8.553.106zM1.447 5.894l2-1-.894-1.789-2 1 .894 1.789zm-.894 0l2 1 .894-1.789-2-1-.894 1.789zM0 5v2.5h2V5H0zm9.447 13.106l-2-1-.894 1.789 2 1 .894-1.789zm0 1.789l2-1-.894-1.789-2 1 .894 1.789zM10 19v-2.5H8V19h2zm-6.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zM2 15v-2.5H0V15h2zm13.447 1.894l2-1-.894-1.789-2 1 .894 1.789zM18 15v-2.5h-2V15h2z"
|
5 |
+
/>
|
6 |
+
</svg>
|
7 |
+
</template>
|
vue-project/src/components/icons/IconSupport.vue
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<template>
|
2 |
+
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor">
|
3 |
+
<path
|
4 |
+
d="M10 3.22l-.61-.6a5.5 5.5 0 0 0-7.666.105 5.5 5.5 0 0 0-.114 7.665L10 18.78l8.39-8.4a5.5 5.5 0 0 0-.114-7.665 5.5 5.5 0 0 0-7.666-.105l-.61.61z"
|
5 |
+
/>
|
6 |
+
</svg>
|
7 |
+
</template>
|
vue-project/src/components/icons/IconTooling.vue
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!-- This icon is from <https://github.com/Templarian/MaterialDesign>, distributed under Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0) license-->
|
2 |
+
<template>
|
3 |
+
<svg
|
4 |
+
xmlns="http://www.w3.org/2000/svg"
|
5 |
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
6 |
+
aria-hidden="true"
|
7 |
+
role="img"
|
8 |
+
class="iconify iconify--mdi"
|
9 |
+
width="24"
|
10 |
+
height="24"
|
11 |
+
preserveAspectRatio="xMidYMid meet"
|
12 |
+
viewBox="0 0 24 24"
|
13 |
+
>
|
14 |
+
<path
|
15 |
+
d="M20 18v-4h-3v1h-2v-1H9v1H7v-1H4v4h16M6.33 8l-1.74 4H7v-1h2v1h6v-1h2v1h2.41l-1.74-4H6.33M9 5v1h6V5H9m12.84 7.61c.1.22.16.48.16.8V18c0 .53-.21 1-.6 1.41c-.4.4-.85.59-1.4.59H4c-.55 0-1-.19-1.4-.59C2.21 19 2 18.53 2 18v-4.59c0-.32.06-.58.16-.8L4.5 7.22C4.84 6.41 5.45 6 6.33 6H7V5c0-.55.18-1 .57-1.41C7.96 3.2 8.44 3 9 3h6c.56 0 1.04.2 1.43.59c.39.41.57.86.57 1.41v1h.67c.88 0 1.49.41 1.83 1.22l2.34 5.39z"
|
16 |
+
fill="currentColor"
|
17 |
+
></path>
|
18 |
+
</svg>
|
19 |
+
</template>
|
vue-project/src/main.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { createApp } from 'vue'
|
2 |
+
import App from './App.vue'
|
3 |
+
|
4 |
+
import './assets/main.css'
|
5 |
+
|
6 |
+
createApp(App).mount('#app')
|
vue-project/vite.config.js
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
})
|