diff options
author | Zach Berwaldt <zberwaldt@tutamail.com> | 2024-03-01 18:50:51 -0500 |
---|---|---|
committer | Zach Berwaldt <zberwaldt@tutamail.com> | 2024-03-01 18:50:51 -0500 |
commit | 74ec025991f6acde6383e448974738e857758ebb (patch) | |
tree | 0fea392bf88c6f244b09c83d18672d9af8fbd5e8 | |
parent | afeffe31bd7d0f8333627a972e1d32e64a325b5b (diff) |
Add dependencies, refine dataview
-rw-r--r-- | fe/package-lock.json | 58 | ||||
-rw-r--r-- | fe/package.json | 4 | ||||
-rw-r--r-- | fe/src/lib/DataView.svelte | 27 |
3 files changed, 63 insertions, 26 deletions
diff --git a/fe/package-lock.json b/fe/package-lock.json index 2c4146a..f74bf6c 100644 --- a/fe/package-lock.json +++ b/fe/package-lock.json | |||
@@ -7,6 +7,10 @@ | |||
7 | "": { | 7 | "": { |
8 | "name": "fe", | 8 | "name": "fe", |
9 | "version": "0.0.0", | 9 | "version": "0.0.0", |
10 | "dependencies": { | ||
11 | "chart.js": "^4.4.2", | ||
12 | "svelte-chartjs": "^3.1.5" | ||
13 | }, | ||
10 | "devDependencies": { | 14 | "devDependencies": { |
11 | "@sveltejs/vite-plugin-svelte": "^3.0.2", | 15 | "@sveltejs/vite-plugin-svelte": "^3.0.2", |
12 | "@tsconfig/svelte": "^5.0.2", | 16 | "@tsconfig/svelte": "^5.0.2", |
@@ -21,7 +25,6 @@ | |||
21 | "version": "2.2.1", | 25 | "version": "2.2.1", |
22 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", | 26 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", |
23 | "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", | 27 | "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", |
24 | "dev": true, | ||
25 | "dependencies": { | 28 | "dependencies": { |
26 | "@jridgewell/gen-mapping": "^0.3.0", | 29 | "@jridgewell/gen-mapping": "^0.3.0", |
27 | "@jridgewell/trace-mapping": "^0.3.9" | 30 | "@jridgewell/trace-mapping": "^0.3.9" |
@@ -402,7 +405,6 @@ | |||
402 | "version": "0.3.3", | 405 | "version": "0.3.3", |
403 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", | 406 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", |
404 | "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", | 407 | "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", |
405 | "dev": true, | ||
406 | "dependencies": { | 408 | "dependencies": { |
407 | "@jridgewell/set-array": "^1.0.1", | 409 | "@jridgewell/set-array": "^1.0.1", |
408 | "@jridgewell/sourcemap-codec": "^1.4.10", | 410 | "@jridgewell/sourcemap-codec": "^1.4.10", |
@@ -416,7 +418,6 @@ | |||
416 | "version": "3.1.2", | 418 | "version": "3.1.2", |
417 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", | 419 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", |
418 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", | 420 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", |
419 | "dev": true, | ||
420 | "engines": { | 421 | "engines": { |
421 | "node": ">=6.0.0" | 422 | "node": ">=6.0.0" |
422 | } | 423 | } |
@@ -425,7 +426,6 @@ | |||
425 | "version": "1.1.2", | 426 | "version": "1.1.2", |
426 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", | 427 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", |
427 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", | 428 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", |
428 | "dev": true, | ||
429 | "engines": { | 429 | "engines": { |
430 | "node": ">=6.0.0" | 430 | "node": ">=6.0.0" |
431 | } | 431 | } |
@@ -433,19 +433,22 @@ | |||
433 | "node_modules/@jridgewell/sourcemap-codec": { | 433 | "node_modules/@jridgewell/sourcemap-codec": { |
434 | "version": "1.4.15", | 434 | "version": "1.4.15", |
435 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", | 435 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", |
436 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", | 436 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" |
437 | "dev": true | ||
438 | }, | 437 | }, |
439 | "node_modules/@jridgewell/trace-mapping": { | 438 | "node_modules/@jridgewell/trace-mapping": { |
440 | "version": "0.3.22", | 439 | "version": "0.3.22", |
441 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", | 440 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", |
442 | "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", | 441 | "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", |
443 | "dev": true, | ||
444 | "dependencies": { | 442 | "dependencies": { |
445 | "@jridgewell/resolve-uri": "^3.1.0", | 443 | "@jridgewell/resolve-uri": "^3.1.0", |
446 | "@jridgewell/sourcemap-codec": "^1.4.14" | 444 | "@jridgewell/sourcemap-codec": "^1.4.14" |
447 | } | 445 | } |
448 | }, | 446 | }, |
447 | "node_modules/@kurkle/color": { | ||
448 | "version": "0.3.2", | ||
449 | "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", | ||
450 | "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" | ||
451 | }, | ||
449 | "node_modules/@nodelib/fs.scandir": { | 452 | "node_modules/@nodelib/fs.scandir": { |
450 | "version": "2.1.5", | 453 | "version": "2.1.5", |
451 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", | 454 | "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", |
@@ -698,8 +701,7 @@ | |||
698 | "node_modules/@types/estree": { | 701 | "node_modules/@types/estree": { |
699 | "version": "1.0.5", | 702 | "version": "1.0.5", |
700 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", | 703 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", |
701 | "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", | 704 | "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" |
702 | "dev": true | ||
703 | }, | 705 | }, |
704 | "node_modules/@types/pug": { | 706 | "node_modules/@types/pug": { |
705 | "version": "2.0.10", | 707 | "version": "2.0.10", |
@@ -711,7 +713,6 @@ | |||
711 | "version": "8.11.3", | 713 | "version": "8.11.3", |
712 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", | 714 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", |
713 | "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", | 715 | "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", |
714 | "dev": true, | ||
715 | "bin": { | 716 | "bin": { |
716 | "acorn": "bin/acorn" | 717 | "acorn": "bin/acorn" |
717 | }, | 718 | }, |
@@ -736,7 +737,6 @@ | |||
736 | "version": "5.3.0", | 737 | "version": "5.3.0", |
737 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", | 738 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", |
738 | "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", | 739 | "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", |
739 | "dev": true, | ||
740 | "dependencies": { | 740 | "dependencies": { |
741 | "dequal": "^2.0.3" | 741 | "dequal": "^2.0.3" |
742 | } | 742 | } |
@@ -745,7 +745,6 @@ | |||
745 | "version": "4.0.0", | 745 | "version": "4.0.0", |
746 | "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", | 746 | "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz", |
747 | "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", | 747 | "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==", |
748 | "dev": true, | ||
749 | "dependencies": { | 748 | "dependencies": { |
750 | "dequal": "^2.0.3" | 749 | "dequal": "^2.0.3" |
751 | } | 750 | } |
@@ -805,6 +804,17 @@ | |||
805 | "node": ">=6" | 804 | "node": ">=6" |
806 | } | 805 | } |
807 | }, | 806 | }, |
807 | "node_modules/chart.js": { | ||
808 | "version": "4.4.2", | ||
809 | "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.2.tgz", | ||
810 | "integrity": "sha512-6GD7iKwFpP5kbSD4MeRRRlTnQvxfQREy36uEtm1hzHzcOqwWx0YEHuspuoNlslu+nciLIB7fjjsHkUv/FzFcOg==", | ||
811 | "dependencies": { | ||
812 | "@kurkle/color": "^0.3.0" | ||
813 | }, | ||
814 | "engines": { | ||
815 | "pnpm": ">=8" | ||
816 | } | ||
817 | }, | ||
808 | "node_modules/chokidar": { | 818 | "node_modules/chokidar": { |
809 | "version": "3.6.0", | 819 | "version": "3.6.0", |
810 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", | 820 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", |
@@ -833,7 +843,6 @@ | |||
833 | "version": "1.0.4", | 843 | "version": "1.0.4", |
834 | "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", | 844 | "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz", |
835 | "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", | 845 | "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==", |
836 | "dev": true, | ||
837 | "dependencies": { | 846 | "dependencies": { |
838 | "@jridgewell/sourcemap-codec": "^1.4.15", | 847 | "@jridgewell/sourcemap-codec": "^1.4.15", |
839 | "@types/estree": "^1.0.1", | 848 | "@types/estree": "^1.0.1", |
@@ -852,7 +861,6 @@ | |||
852 | "version": "2.3.1", | 861 | "version": "2.3.1", |
853 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", | 862 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", |
854 | "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", | 863 | "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", |
855 | "dev": true, | ||
856 | "dependencies": { | 864 | "dependencies": { |
857 | "mdn-data": "2.0.30", | 865 | "mdn-data": "2.0.30", |
858 | "source-map-js": "^1.0.1" | 866 | "source-map-js": "^1.0.1" |
@@ -891,7 +899,6 @@ | |||
891 | "version": "2.0.3", | 899 | "version": "2.0.3", |
892 | "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", | 900 | "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", |
893 | "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", | 901 | "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", |
894 | "dev": true, | ||
895 | "engines": { | 902 | "engines": { |
896 | "node": ">=6" | 903 | "node": ">=6" |
897 | } | 904 | } |
@@ -953,7 +960,6 @@ | |||
953 | "version": "3.0.3", | 960 | "version": "3.0.3", |
954 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", | 961 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", |
955 | "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", | 962 | "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", |
956 | "dev": true, | ||
957 | "dependencies": { | 963 | "dependencies": { |
958 | "@types/estree": "^1.0.0" | 964 | "@types/estree": "^1.0.0" |
959 | } | 965 | } |
@@ -1131,7 +1137,6 @@ | |||
1131 | "version": "3.0.2", | 1137 | "version": "3.0.2", |
1132 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", | 1138 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", |
1133 | "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", | 1139 | "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", |
1134 | "dev": true, | ||
1135 | "dependencies": { | 1140 | "dependencies": { |
1136 | "@types/estree": "*" | 1141 | "@types/estree": "*" |
1137 | } | 1142 | } |
@@ -1148,14 +1153,12 @@ | |||
1148 | "node_modules/locate-character": { | 1153 | "node_modules/locate-character": { |
1149 | "version": "3.0.0", | 1154 | "version": "3.0.0", |
1150 | "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", | 1155 | "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", |
1151 | "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", | 1156 | "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==" |
1152 | "dev": true | ||
1153 | }, | 1157 | }, |
1154 | "node_modules/magic-string": { | 1158 | "node_modules/magic-string": { |
1155 | "version": "0.30.7", | 1159 | "version": "0.30.7", |
1156 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", | 1160 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.7.tgz", |
1157 | "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", | 1161 | "integrity": "sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==", |
1158 | "dev": true, | ||
1159 | "dependencies": { | 1162 | "dependencies": { |
1160 | "@jridgewell/sourcemap-codec": "^1.4.15" | 1163 | "@jridgewell/sourcemap-codec": "^1.4.15" |
1161 | }, | 1164 | }, |
@@ -1166,8 +1169,7 @@ | |||
1166 | "node_modules/mdn-data": { | 1169 | "node_modules/mdn-data": { |
1167 | "version": "2.0.30", | 1170 | "version": "2.0.30", |
1168 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", | 1171 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", |
1169 | "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", | 1172 | "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" |
1170 | "dev": true | ||
1171 | }, | 1173 | }, |
1172 | "node_modules/merge2": { | 1174 | "node_modules/merge2": { |
1173 | "version": "1.4.1", | 1175 | "version": "1.4.1", |
@@ -1309,7 +1311,6 @@ | |||
1309 | "version": "3.1.0", | 1311 | "version": "3.1.0", |
1310 | "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", | 1312 | "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", |
1311 | "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", | 1313 | "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", |
1312 | "dev": true, | ||
1313 | "dependencies": { | 1314 | "dependencies": { |
1314 | "@types/estree": "^1.0.0", | 1315 | "@types/estree": "^1.0.0", |
1315 | "estree-walker": "^3.0.0", | 1316 | "estree-walker": "^3.0.0", |
@@ -1523,7 +1524,6 @@ | |||
1523 | "version": "1.0.2", | 1524 | "version": "1.0.2", |
1524 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", | 1525 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", |
1525 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", | 1526 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", |
1526 | "dev": true, | ||
1527 | "engines": { | 1527 | "engines": { |
1528 | "node": ">=0.10.0" | 1528 | "node": ">=0.10.0" |
1529 | } | 1529 | } |
@@ -1544,7 +1544,6 @@ | |||
1544 | "version": "4.2.11", | 1544 | "version": "4.2.11", |
1545 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.11.tgz", | 1545 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.11.tgz", |
1546 | "integrity": "sha512-YIQk3J4X89wOLhjsqIW8tqY3JHPuBdtdOIkASP2PZeAMcSW9RsIjQzMesCrxOF3gdWYC0mKknlKF7OqmLM+Zqg==", | 1546 | "integrity": "sha512-YIQk3J4X89wOLhjsqIW8tqY3JHPuBdtdOIkASP2PZeAMcSW9RsIjQzMesCrxOF3gdWYC0mKknlKF7OqmLM+Zqg==", |
1547 | "dev": true, | ||
1548 | "dependencies": { | 1547 | "dependencies": { |
1549 | "@ampproject/remapping": "^2.2.1", | 1548 | "@ampproject/remapping": "^2.2.1", |
1550 | "@jridgewell/sourcemap-codec": "^1.4.15", | 1549 | "@jridgewell/sourcemap-codec": "^1.4.15", |
@@ -1565,6 +1564,15 @@ | |||
1565 | "node": ">=16" | 1564 | "node": ">=16" |
1566 | } | 1565 | } |
1567 | }, | 1566 | }, |
1567 | "node_modules/svelte-chartjs": { | ||
1568 | "version": "3.1.5", | ||
1569 | "resolved": "https://registry.npmjs.org/svelte-chartjs/-/svelte-chartjs-3.1.5.tgz", | ||
1570 | "integrity": "sha512-ka2zh7v5FiwfAX1oMflZ0HkNkgjHjFqANgRyC+vNYXfxtx2ku68Zo+2KgbKeBH2nS1ThDqkIACPzGxy4T0UaoA==", | ||
1571 | "peerDependencies": { | ||
1572 | "chart.js": "^3.5.0 || ^4.0.0", | ||
1573 | "svelte": "^4.0.0" | ||
1574 | } | ||
1575 | }, | ||
1568 | "node_modules/svelte-check": { | 1576 | "node_modules/svelte-check": { |
1569 | "version": "3.6.4", | 1577 | "version": "3.6.4", |
1570 | "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.4.tgz", | 1578 | "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.4.tgz", |
diff --git a/fe/package.json b/fe/package.json index 6bc8619..9c75965 100644 --- a/fe/package.json +++ b/fe/package.json | |||
@@ -17,5 +17,9 @@ | |||
17 | "tslib": "^2.6.2", | 17 | "tslib": "^2.6.2", |
18 | "typescript": "^5.2.2", | 18 | "typescript": "^5.2.2", |
19 | "vite": "^5.1.0" | 19 | "vite": "^5.1.0" |
20 | }, | ||
21 | "dependencies": { | ||
22 | "chart.js": "^4.4.2", | ||
23 | "svelte-chartjs": "^3.1.5" | ||
20 | } | 24 | } |
21 | } | 25 | } |
diff --git a/fe/src/lib/DataView.svelte b/fe/src/lib/DataView.svelte index 1458c9a..00ee21a 100644 --- a/fe/src/lib/DataView.svelte +++ b/fe/src/lib/DataView.svelte | |||
@@ -1,12 +1,16 @@ | |||
1 | <script lang="ts"> | 1 | <script lang="ts"> |
2 | import { onMount } from "svelte"; | 2 | import { onDestroy, onMount } from "svelte"; |
3 | import type { Statistic } from "../types"; | 3 | import type { Statistic } from "../types"; |
4 | import { token, user } from "../stores/auth"; | 4 | import { token, user } from "../stores/auth"; |
5 | import Table from "./Table.svelte"; | 5 | import Table from "./Table.svelte"; |
6 | import Chart from 'chart.js/auto'; | ||
6 | 7 | ||
7 | let json: Promise<any>; | 8 | let json: Promise<any>; |
8 | let showAddForm: boolean = false; | 9 | let showAddForm: boolean = false; |
9 | 10 | ||
11 | let canvasRef: HTMLCanvasElement; | ||
12 | let chart: any; | ||
13 | |||
10 | let statistic: Statistic = newStatistic(); | 14 | let statistic: Statistic = newStatistic(); |
11 | 15 | ||
12 | async function fetchData() { | 16 | async function fetchData() { |
@@ -74,6 +78,26 @@ | |||
74 | 78 | ||
75 | onMount(() => { | 79 | onMount(() => { |
76 | fetchData(); | 80 | fetchData(); |
81 | chart = new Chart(canvasRef, { | ||
82 | type: 'bar', | ||
83 | data: { | ||
84 | labels: ['one', 'two'], | ||
85 | datasets: [ | ||
86 | { | ||
87 | label: 'Water', | ||
88 | data: [1, 2], | ||
89 | backgroundColor: 'rgba(75, 192, 192, 0.2)', | ||
90 | borderColor: 'rgba(75, 192, 192, 1)', | ||
91 | borderWidth: 1 | ||
92 | } | ||
93 | ] | ||
94 | } | ||
95 | }); | ||
96 | }); | ||
97 | |||
98 | onDestroy(() => { | ||
99 | if (chart) chart.destroy(); | ||
100 | chart = null; | ||
77 | }); | 101 | }); |
78 | </script> | 102 | </script> |
79 | 103 | ||
@@ -102,6 +126,7 @@ | |||
102 | </form> | 126 | </form> |
103 | </dialog> | 127 | </dialog> |
104 | <button on:click={handleClick}>Add</button> | 128 | <button on:click={handleClick}>Add</button> |
129 | <canvas bind:this={canvasRef} /> | ||
105 | {#await json then data} | 130 | {#await json then data} |
106 | <Table {data} nofooter /> | 131 | <Table {data} nofooter /> |
107 | {:catch error} | 132 | {:catch error} |