diff options
author | 2023-09-02 16:28:04 +0100 | |
---|---|---|
committer | 2023-09-02 15:28:04 +0000 | |
commit | d1c623f4c3d72c859f9ad9cb985be127d6a3eb62 (patch) | |
tree | e102da856ae328c70e822d60ac53909acd4627b9 | |
parent | Downgrade 'electron' to 25.x (diff) | |
download | ferdium-app-d1c623f4c3d72c859f9ad9cb985be127d6a3eb62.tar.gz ferdium-app-d1c623f4c3d72c859f9ad9cb985be127d6a3eb62.tar.zst ferdium-app-d1c623f4c3d72c859f9ad9cb985be127d6a3eb62.zip |
feat: Add Download Manager (pause, stop, delete) (#1339)
24 files changed, 1250 insertions, 93 deletions
diff --git a/package.json b/package.json index bda85fa1e..8cd3a3c66 100644 --- a/package.json +++ b/package.json | |||
@@ -62,9 +62,13 @@ | |||
62 | "@adonisjs/shield": "1.1.0", | 62 | "@adonisjs/shield": "1.1.0", |
63 | "@adonisjs/validator": "5.1.0", | 63 | "@adonisjs/validator": "5.1.0", |
64 | "@electron/remote": "2.0.10", | 64 | "@electron/remote": "2.0.10", |
65 | "@emotion/react": "11.11.1", | ||
66 | "@emotion/styled": "11.11.0", | ||
65 | "@krisdages/electron-process-manager": "3.0.0", | 67 | "@krisdages/electron-process-manager": "3.0.0", |
66 | "@mdi/js": "7.2.96", | 68 | "@mdi/js": "7.2.96", |
67 | "@mdi/react": "1.6.1", | 69 | "@mdi/react": "1.6.1", |
70 | "@mui/icons-material": "5.14.7", | ||
71 | "@mui/material": "5.14.7", | ||
68 | "@octokit/core": "5.0.0", | 72 | "@octokit/core": "5.0.0", |
69 | "@sentry/electron": "4.1.2", | 73 | "@sentry/electron": "4.1.2", |
70 | "@superwf/mobx-react-router": "7.4.0", | 74 | "@superwf/mobx-react-router": "7.4.0", |
@@ -103,6 +107,7 @@ | |||
103 | "os-name": "4.0.1", | 107 | "os-name": "4.0.1", |
104 | "pretty-bytes": "5.6.0", | 108 | "pretty-bytes": "5.6.0", |
105 | "prop-types": "15.8.1", | 109 | "prop-types": "15.8.1", |
110 | "rc-progress": "3.5.1", | ||
106 | "react": "18.2.0", | 111 | "react": "18.2.0", |
107 | "react-color": "2.19.3", | 112 | "react-color": "2.19.3", |
108 | "react-confetti": "6.1.0", | 113 | "react-confetti": "6.1.0", |
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 725b80aa4..0ae59f33a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml | |||
@@ -47,6 +47,12 @@ dependencies: | |||
47 | '@electron/remote': | 47 | '@electron/remote': |
48 | specifier: 2.0.10 | 48 | specifier: 2.0.10 |
49 | version: 2.0.10(electron@25.5.0) | 49 | version: 2.0.10(electron@25.5.0) |
50 | '@emotion/react': | ||
51 | specifier: 11.11.1 | ||
52 | version: 11.11.1(@types/react@18.2.20)(react@18.2.0) | ||
53 | '@emotion/styled': | ||
54 | specifier: 11.11.0 | ||
55 | version: 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.20)(react@18.2.0) | ||
50 | '@krisdages/electron-process-manager': | 56 | '@krisdages/electron-process-manager': |
51 | specifier: 3.0.0 | 57 | specifier: 3.0.0 |
52 | version: 3.0.0(@electron/remote@2.0.10)(electron@25.5.0)(rxjs@7.8.1) | 58 | version: 3.0.0(@electron/remote@2.0.10)(electron@25.5.0)(rxjs@7.8.1) |
@@ -56,6 +62,12 @@ dependencies: | |||
56 | '@mdi/react': | 62 | '@mdi/react': |
57 | specifier: 1.6.1 | 63 | specifier: 1.6.1 |
58 | version: 1.6.1 | 64 | version: 1.6.1 |
65 | '@mui/icons-material': | ||
66 | specifier: 5.14.7 | ||
67 | version: 5.14.7(@mui/material@5.14.7)(@types/react@18.2.20)(react@18.2.0) | ||
68 | '@mui/material': | ||
69 | specifier: 5.14.7 | ||
70 | version: 5.14.7(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.20)(react-dom@18.2.0)(react@18.2.0) | ||
59 | '@octokit/core': | 71 | '@octokit/core': |
60 | specifier: 5.0.0 | 72 | specifier: 5.0.0 |
61 | version: 5.0.0 | 73 | version: 5.0.0 |
@@ -170,6 +182,9 @@ dependencies: | |||
170 | prop-types: | 182 | prop-types: |
171 | specifier: 15.8.1 | 183 | specifier: 15.8.1 |
172 | version: 15.8.1 | 184 | version: 15.8.1 |
185 | rc-progress: | ||
186 | specifier: 3.5.1 | ||
187 | version: 3.5.1(react-dom@18.2.0)(react@18.2.0) | ||
173 | react: | 188 | react: |
174 | specifier: 18.2.0 | 189 | specifier: 18.2.0 |
175 | version: 18.2.0 | 190 | version: 18.2.0 |
@@ -657,14 +672,6 @@ packages: | |||
657 | dependencies: | 672 | dependencies: |
658 | '@babel/highlight': 7.22.10 | 673 | '@babel/highlight': 7.22.10 |
659 | chalk: 2.4.2 | 674 | chalk: 2.4.2 |
660 | dev: true | ||
661 | |||
662 | /@babel/code-frame@7.22.5: | ||
663 | resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} | ||
664 | engines: {node: '>=6.9.0'} | ||
665 | dependencies: | ||
666 | '@babel/highlight': 7.22.5 | ||
667 | dev: true | ||
668 | 675 | ||
669 | /@babel/compat-data@7.22.9: | 676 | /@babel/compat-data@7.22.9: |
670 | resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} | 677 | resolution: {integrity: sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==} |
@@ -684,7 +691,7 @@ packages: | |||
684 | '@babel/parser': 7.22.10 | 691 | '@babel/parser': 7.22.10 |
685 | '@babel/template': 7.22.5 | 692 | '@babel/template': 7.22.5 |
686 | '@babel/traverse': 7.22.10 | 693 | '@babel/traverse': 7.22.10 |
687 | '@babel/types': 7.22.10 | 694 | '@babel/types': 7.22.11 |
688 | convert-source-map: 1.9.0 | 695 | convert-source-map: 1.9.0 |
689 | debug: 4.3.4 | 696 | debug: 4.3.4 |
690 | gensync: 1.0.0-beta.2 | 697 | gensync: 1.0.0-beta.2 |
@@ -735,7 +742,7 @@ packages: | |||
735 | resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==} | 742 | resolution: {integrity: sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==} |
736 | engines: {node: '>=6.9.0'} | 743 | engines: {node: '>=6.9.0'} |
737 | dependencies: | 744 | dependencies: |
738 | '@babel/types': 7.22.10 | 745 | '@babel/types': 7.22.11 |
739 | '@jridgewell/gen-mapping': 0.3.3 | 746 | '@jridgewell/gen-mapping': 0.3.3 |
740 | '@jridgewell/trace-mapping': 0.3.19 | 747 | '@jridgewell/trace-mapping': 0.3.19 |
741 | jsesc: 2.5.2 | 748 | jsesc: 2.5.2 |
@@ -762,22 +769,21 @@ packages: | |||
762 | engines: {node: '>=6.9.0'} | 769 | engines: {node: '>=6.9.0'} |
763 | dependencies: | 770 | dependencies: |
764 | '@babel/template': 7.22.5 | 771 | '@babel/template': 7.22.5 |
765 | '@babel/types': 7.22.10 | 772 | '@babel/types': 7.22.11 |
766 | dev: true | 773 | dev: true |
767 | 774 | ||
768 | /@babel/helper-hoist-variables@7.22.5: | 775 | /@babel/helper-hoist-variables@7.22.5: |
769 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} | 776 | resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} |
770 | engines: {node: '>=6.9.0'} | 777 | engines: {node: '>=6.9.0'} |
771 | dependencies: | 778 | dependencies: |
772 | '@babel/types': 7.22.10 | 779 | '@babel/types': 7.22.11 |
773 | dev: true | 780 | dev: true |
774 | 781 | ||
775 | /@babel/helper-module-imports@7.22.5: | 782 | /@babel/helper-module-imports@7.22.5: |
776 | resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} | 783 | resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} |
777 | engines: {node: '>=6.9.0'} | 784 | engines: {node: '>=6.9.0'} |
778 | dependencies: | 785 | dependencies: |
779 | '@babel/types': 7.22.10 | 786 | '@babel/types': 7.22.11 |
780 | dev: true | ||
781 | 787 | ||
782 | /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.10): | 788 | /@babel/helper-module-transforms@7.22.9(@babel/core@7.22.10): |
783 | resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} | 789 | resolution: {integrity: sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==} |
@@ -816,25 +822,23 @@ packages: | |||
816 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} | 822 | resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} |
817 | engines: {node: '>=6.9.0'} | 823 | engines: {node: '>=6.9.0'} |
818 | dependencies: | 824 | dependencies: |
819 | '@babel/types': 7.22.10 | 825 | '@babel/types': 7.22.11 |
820 | dev: true | 826 | dev: true |
821 | 827 | ||
822 | /@babel/helper-split-export-declaration@7.22.6: | 828 | /@babel/helper-split-export-declaration@7.22.6: |
823 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} | 829 | resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} |
824 | engines: {node: '>=6.9.0'} | 830 | engines: {node: '>=6.9.0'} |
825 | dependencies: | 831 | dependencies: |
826 | '@babel/types': 7.22.10 | 832 | '@babel/types': 7.22.11 |
827 | dev: true | 833 | dev: true |
828 | 834 | ||
829 | /@babel/helper-string-parser@7.22.5: | 835 | /@babel/helper-string-parser@7.22.5: |
830 | resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} | 836 | resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} |
831 | engines: {node: '>=6.9.0'} | 837 | engines: {node: '>=6.9.0'} |
832 | dev: true | ||
833 | 838 | ||
834 | /@babel/helper-validator-identifier@7.22.5: | 839 | /@babel/helper-validator-identifier@7.22.5: |
835 | resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} | 840 | resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} |
836 | engines: {node: '>=6.9.0'} | 841 | engines: {node: '>=6.9.0'} |
837 | dev: true | ||
838 | 842 | ||
839 | /@babel/helper-validator-option@7.22.5: | 843 | /@babel/helper-validator-option@7.22.5: |
840 | resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} | 844 | resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} |
@@ -847,7 +851,7 @@ packages: | |||
847 | dependencies: | 851 | dependencies: |
848 | '@babel/template': 7.22.5 | 852 | '@babel/template': 7.22.5 |
849 | '@babel/traverse': 7.22.10 | 853 | '@babel/traverse': 7.22.10 |
850 | '@babel/types': 7.22.10 | 854 | '@babel/types': 7.22.11 |
851 | transitivePeerDependencies: | 855 | transitivePeerDependencies: |
852 | - supports-color | 856 | - supports-color |
853 | dev: true | 857 | dev: true |
@@ -870,23 +874,13 @@ packages: | |||
870 | '@babel/helper-validator-identifier': 7.22.5 | 874 | '@babel/helper-validator-identifier': 7.22.5 |
871 | chalk: 2.4.2 | 875 | chalk: 2.4.2 |
872 | js-tokens: 4.0.0 | 876 | js-tokens: 4.0.0 |
873 | dev: true | ||
874 | |||
875 | /@babel/highlight@7.22.5: | ||
876 | resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} | ||
877 | engines: {node: '>=6.9.0'} | ||
878 | dependencies: | ||
879 | '@babel/helper-validator-identifier': 7.22.5 | ||
880 | chalk: 2.4.2 | ||
881 | js-tokens: 4.0.0 | ||
882 | dev: true | ||
883 | 877 | ||
884 | /@babel/parser@7.22.10: | 878 | /@babel/parser@7.22.10: |
885 | resolution: {integrity: sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==} | 879 | resolution: {integrity: sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==} |
886 | engines: {node: '>=6.0.0'} | 880 | engines: {node: '>=6.0.0'} |
887 | hasBin: true | 881 | hasBin: true |
888 | dependencies: | 882 | dependencies: |
889 | '@babel/types': 7.22.10 | 883 | '@babel/types': 7.22.11 |
890 | dev: true | 884 | dev: true |
891 | 885 | ||
892 | /@babel/parser@7.22.11: | 886 | /@babel/parser@7.22.11: |
@@ -1045,13 +1039,19 @@ packages: | |||
1045 | dependencies: | 1039 | dependencies: |
1046 | regenerator-runtime: 0.13.11 | 1040 | regenerator-runtime: 0.13.11 |
1047 | 1041 | ||
1042 | /@babel/runtime@7.22.11: | ||
1043 | resolution: {integrity: sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==} | ||
1044 | engines: {node: '>=6.9.0'} | ||
1045 | dependencies: | ||
1046 | regenerator-runtime: 0.14.0 | ||
1047 | |||
1048 | /@babel/template@7.22.5: | 1048 | /@babel/template@7.22.5: |
1049 | resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} | 1049 | resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} |
1050 | engines: {node: '>=6.9.0'} | 1050 | engines: {node: '>=6.9.0'} |
1051 | dependencies: | 1051 | dependencies: |
1052 | '@babel/code-frame': 7.22.10 | 1052 | '@babel/code-frame': 7.22.10 |
1053 | '@babel/parser': 7.22.10 | 1053 | '@babel/parser': 7.22.10 |
1054 | '@babel/types': 7.22.10 | 1054 | '@babel/types': 7.22.11 |
1055 | dev: true | 1055 | dev: true |
1056 | 1056 | ||
1057 | /@babel/traverse@7.22.10: | 1057 | /@babel/traverse@7.22.10: |
@@ -1065,7 +1065,7 @@ packages: | |||
1065 | '@babel/helper-hoist-variables': 7.22.5 | 1065 | '@babel/helper-hoist-variables': 7.22.5 |
1066 | '@babel/helper-split-export-declaration': 7.22.6 | 1066 | '@babel/helper-split-export-declaration': 7.22.6 |
1067 | '@babel/parser': 7.22.10 | 1067 | '@babel/parser': 7.22.10 |
1068 | '@babel/types': 7.22.10 | 1068 | '@babel/types': 7.22.11 |
1069 | debug: 4.3.4 | 1069 | debug: 4.3.4 |
1070 | globals: 11.12.0 | 1070 | globals: 11.12.0 |
1071 | transitivePeerDependencies: | 1071 | transitivePeerDependencies: |
@@ -1090,15 +1090,6 @@ packages: | |||
1090 | - supports-color | 1090 | - supports-color |
1091 | dev: true | 1091 | dev: true |
1092 | 1092 | ||
1093 | /@babel/types@7.22.10: | ||
1094 | resolution: {integrity: sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==} | ||
1095 | engines: {node: '>=6.9.0'} | ||
1096 | dependencies: | ||
1097 | '@babel/helper-string-parser': 7.22.5 | ||
1098 | '@babel/helper-validator-identifier': 7.22.5 | ||
1099 | to-fast-properties: 2.0.0 | ||
1100 | dev: true | ||
1101 | |||
1102 | /@babel/types@7.22.11: | 1093 | /@babel/types@7.22.11: |
1103 | resolution: {integrity: sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==} | 1094 | resolution: {integrity: sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==} |
1104 | engines: {node: '>=6.9.0'} | 1095 | engines: {node: '>=6.9.0'} |
@@ -1106,7 +1097,6 @@ packages: | |||
1106 | '@babel/helper-string-parser': 7.22.5 | 1097 | '@babel/helper-string-parser': 7.22.5 |
1107 | '@babel/helper-validator-identifier': 7.22.5 | 1098 | '@babel/helper-validator-identifier': 7.22.5 |
1108 | to-fast-properties: 2.0.0 | 1099 | to-fast-properties: 2.0.0 |
1109 | dev: true | ||
1110 | 1100 | ||
1111 | /@bcoe/v8-coverage@0.2.3: | 1101 | /@bcoe/v8-coverage@0.2.3: |
1112 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} | 1102 | resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} |
@@ -1405,16 +1395,132 @@ packages: | |||
1405 | - supports-color | 1395 | - supports-color |
1406 | dev: true | 1396 | dev: true |
1407 | 1397 | ||
1398 | /@emotion/babel-plugin@11.11.0: | ||
1399 | resolution: {integrity: sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==} | ||
1400 | dependencies: | ||
1401 | '@babel/helper-module-imports': 7.22.5 | ||
1402 | '@babel/runtime': 7.22.11 | ||
1403 | '@emotion/hash': 0.9.1 | ||
1404 | '@emotion/memoize': 0.8.1 | ||
1405 | '@emotion/serialize': 1.1.2 | ||
1406 | babel-plugin-macros: 3.1.0 | ||
1407 | convert-source-map: 1.9.0 | ||
1408 | escape-string-regexp: 4.0.0 | ||
1409 | find-root: 1.1.0 | ||
1410 | source-map: 0.5.7 | ||
1411 | stylis: 4.2.0 | ||
1412 | dev: false | ||
1413 | |||
1414 | /@emotion/cache@11.11.0: | ||
1415 | resolution: {integrity: sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==} | ||
1416 | dependencies: | ||
1417 | '@emotion/memoize': 0.8.1 | ||
1418 | '@emotion/sheet': 1.2.2 | ||
1419 | '@emotion/utils': 1.2.1 | ||
1420 | '@emotion/weak-memoize': 0.3.1 | ||
1421 | stylis: 4.2.0 | ||
1422 | dev: false | ||
1423 | |||
1424 | /@emotion/hash@0.9.1: | ||
1425 | resolution: {integrity: sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==} | ||
1426 | dev: false | ||
1427 | |||
1408 | /@emotion/is-prop-valid@0.7.3: | 1428 | /@emotion/is-prop-valid@0.7.3: |
1409 | resolution: {integrity: sha512-uxJqm/sqwXw3YPA5GXX365OBcJGFtxUVkB6WyezqFHlNe9jqUWH5ur2O2M8dGBz61kn1g3ZBlzUunFQXQIClhA==} | 1429 | resolution: {integrity: sha512-uxJqm/sqwXw3YPA5GXX365OBcJGFtxUVkB6WyezqFHlNe9jqUWH5ur2O2M8dGBz61kn1g3ZBlzUunFQXQIClhA==} |
1410 | dependencies: | 1430 | dependencies: |
1411 | '@emotion/memoize': 0.7.1 | 1431 | '@emotion/memoize': 0.7.1 |
1412 | dev: false | 1432 | dev: false |
1413 | 1433 | ||
1434 | /@emotion/is-prop-valid@1.2.1: | ||
1435 | resolution: {integrity: sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==} | ||
1436 | dependencies: | ||
1437 | '@emotion/memoize': 0.8.1 | ||
1438 | dev: false | ||
1439 | |||
1414 | /@emotion/memoize@0.7.1: | 1440 | /@emotion/memoize@0.7.1: |
1415 | resolution: {integrity: sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg==} | 1441 | resolution: {integrity: sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg==} |
1416 | dev: false | 1442 | dev: false |
1417 | 1443 | ||
1444 | /@emotion/memoize@0.8.1: | ||
1445 | resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} | ||
1446 | dev: false | ||
1447 | |||
1448 | /@emotion/react@11.11.1(@types/react@18.2.20)(react@18.2.0): | ||
1449 | resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==} | ||
1450 | peerDependencies: | ||
1451 | '@types/react': '*' | ||
1452 | react: '>=16.8.0' | ||
1453 | peerDependenciesMeta: | ||
1454 | '@types/react': | ||
1455 | optional: true | ||
1456 | dependencies: | ||
1457 | '@babel/runtime': 7.22.11 | ||
1458 | '@emotion/babel-plugin': 11.11.0 | ||
1459 | '@emotion/cache': 11.11.0 | ||
1460 | '@emotion/serialize': 1.1.2 | ||
1461 | '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) | ||
1462 | '@emotion/utils': 1.2.1 | ||
1463 | '@emotion/weak-memoize': 0.3.1 | ||
1464 | '@types/react': 18.2.20 | ||
1465 | hoist-non-react-statics: 3.3.2 | ||
1466 | react: 18.2.0 | ||
1467 | dev: false | ||
1468 | |||
1469 | /@emotion/serialize@1.1.2: | ||
1470 | resolution: {integrity: sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==} | ||
1471 | dependencies: | ||
1472 | '@emotion/hash': 0.9.1 | ||
1473 | '@emotion/memoize': 0.8.1 | ||
1474 | '@emotion/unitless': 0.8.1 | ||
1475 | '@emotion/utils': 1.2.1 | ||
1476 | csstype: 3.1.2 | ||
1477 | dev: false | ||
1478 | |||
1479 | /@emotion/sheet@1.2.2: | ||
1480 | resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} | ||
1481 | dev: false | ||
1482 | |||
1483 | /@emotion/styled@11.11.0(@emotion/react@11.11.1)(@types/react@18.2.20)(react@18.2.0): | ||
1484 | resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} | ||
1485 | peerDependencies: | ||
1486 | '@emotion/react': ^11.0.0-rc.0 | ||
1487 | '@types/react': '*' | ||
1488 | react: '>=16.8.0' | ||
1489 | peerDependenciesMeta: | ||
1490 | '@types/react': | ||
1491 | optional: true | ||
1492 | dependencies: | ||
1493 | '@babel/runtime': 7.22.11 | ||
1494 | '@emotion/babel-plugin': 11.11.0 | ||
1495 | '@emotion/is-prop-valid': 1.2.1 | ||
1496 | '@emotion/react': 11.11.1(@types/react@18.2.20)(react@18.2.0) | ||
1497 | '@emotion/serialize': 1.1.2 | ||
1498 | '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) | ||
1499 | '@emotion/utils': 1.2.1 | ||
1500 | '@types/react': 18.2.20 | ||
1501 | react: 18.2.0 | ||
1502 | dev: false | ||
1503 | |||
1504 | /@emotion/unitless@0.8.1: | ||
1505 | resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} | ||
1506 | dev: false | ||
1507 | |||
1508 | /@emotion/use-insertion-effect-with-fallbacks@1.0.1(react@18.2.0): | ||
1509 | resolution: {integrity: sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==} | ||
1510 | peerDependencies: | ||
1511 | react: '>=16.8.0' | ||
1512 | dependencies: | ||
1513 | react: 18.2.0 | ||
1514 | dev: false | ||
1515 | |||
1516 | /@emotion/utils@1.2.1: | ||
1517 | resolution: {integrity: sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==} | ||
1518 | dev: false | ||
1519 | |||
1520 | /@emotion/weak-memoize@0.3.1: | ||
1521 | resolution: {integrity: sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==} | ||
1522 | dev: false | ||
1523 | |||
1418 | /@esbuild/android-arm64@0.16.17: | 1524 | /@esbuild/android-arm64@0.16.17: |
1419 | resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} | 1525 | resolution: {integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==} |
1420 | engines: {node: '>=12'} | 1526 | engines: {node: '>=12'} |
@@ -1659,12 +1765,40 @@ packages: | |||
1659 | resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==} | 1765 | resolution: {integrity: sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==} |
1660 | dev: false | 1766 | dev: false |
1661 | 1767 | ||
1768 | /@floating-ui/core@1.4.1: | ||
1769 | resolution: {integrity: sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==} | ||
1770 | dependencies: | ||
1771 | '@floating-ui/utils': 0.1.1 | ||
1772 | dev: false | ||
1773 | |||
1662 | /@floating-ui/dom@1.4.5: | 1774 | /@floating-ui/dom@1.4.5: |
1663 | resolution: {integrity: sha512-96KnRWkRnuBSSFbj0sFGwwOUd8EkiecINVl0O9wiZlZ64EkpyAOG3Xc2vKKNJmru0Z7RqWNymA+6b8OZqjgyyw==} | 1775 | resolution: {integrity: sha512-96KnRWkRnuBSSFbj0sFGwwOUd8EkiecINVl0O9wiZlZ64EkpyAOG3Xc2vKKNJmru0Z7RqWNymA+6b8OZqjgyyw==} |
1664 | dependencies: | 1776 | dependencies: |
1665 | '@floating-ui/core': 1.3.1 | 1777 | '@floating-ui/core': 1.3.1 |
1666 | dev: false | 1778 | dev: false |
1667 | 1779 | ||
1780 | /@floating-ui/dom@1.5.1: | ||
1781 | resolution: {integrity: sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==} | ||
1782 | dependencies: | ||
1783 | '@floating-ui/core': 1.4.1 | ||
1784 | '@floating-ui/utils': 0.1.1 | ||
1785 | dev: false | ||
1786 | |||
1787 | /@floating-ui/react-dom@2.0.2(react-dom@18.2.0)(react@18.2.0): | ||
1788 | resolution: {integrity: sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==} | ||
1789 | peerDependencies: | ||
1790 | react: '>=16.8.0' | ||
1791 | react-dom: '>=16.8.0' | ||
1792 | dependencies: | ||
1793 | '@floating-ui/dom': 1.5.1 | ||
1794 | react: 18.2.0 | ||
1795 | react-dom: 18.2.0(react@18.2.0) | ||
1796 | dev: false | ||
1797 | |||
1798 | /@floating-ui/utils@0.1.1: | ||
1799 | resolution: {integrity: sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==} | ||
1800 | dev: false | ||
1801 | |||
1668 | /@formatjs/cli@6.1.3: | 1802 | /@formatjs/cli@6.1.3: |
1669 | resolution: {integrity: sha512-PdTXZTY8LqxwmvFqdifn89gjXnPUpGtGyFs0BnoeLuOuxZFSnBfIs5WQCVMaJnr1+0vNNlXyT0VAIAwjRpf6BA==} | 1803 | resolution: {integrity: sha512-PdTXZTY8LqxwmvFqdifn89gjXnPUpGtGyFs0BnoeLuOuxZFSnBfIs5WQCVMaJnr1+0vNNlXyT0VAIAwjRpf6BA==} |
1670 | engines: {node: '>= 16'} | 1804 | engines: {node: '>= 16'} |
@@ -1746,6 +1880,7 @@ packages: | |||
1746 | 1880 | ||
1747 | /@gar/promisify@1.1.3: | 1881 | /@gar/promisify@1.1.3: |
1748 | resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} | 1882 | resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} |
1883 | requiresBuild: true | ||
1749 | dev: false | 1884 | dev: false |
1750 | optional: true | 1885 | optional: true |
1751 | 1886 | ||
@@ -2170,6 +2305,182 @@ packages: | |||
2170 | prop-types: 15.8.1 | 2305 | prop-types: 15.8.1 |
2171 | dev: false | 2306 | dev: false |
2172 | 2307 | ||
2308 | /@mui/base@5.0.0-beta.13(@types/react@18.2.20)(react-dom@18.2.0)(react@18.2.0): | ||
2309 | resolution: {integrity: sha512-uC0l97pBspfDAp+iz2cJq8YZ8Sd9i73V77+WzUiOAckIVEyCm5dyVDZCCO2/phmzckVEeZCGcytybkjMQuhPQw==} | ||
2310 | engines: {node: '>=12.0.0'} | ||
2311 | peerDependencies: | ||
2312 | '@types/react': ^17.0.0 || ^18.0.0 | ||
2313 | react: ^17.0.0 || ^18.0.0 | ||
2314 | react-dom: ^17.0.0 || ^18.0.0 | ||
2315 | peerDependenciesMeta: | ||
2316 | '@types/react': | ||
2317 | optional: true | ||
2318 | dependencies: | ||
2319 | '@babel/runtime': 7.22.11 | ||
2320 | '@emotion/is-prop-valid': 1.2.1 | ||
2321 | '@floating-ui/react-dom': 2.0.2(react-dom@18.2.0)(react@18.2.0) | ||
2322 | '@mui/types': 7.2.4(@types/react@18.2.20) | ||
2323 | '@mui/utils': 5.14.7(react@18.2.0) | ||
2324 | '@popperjs/core': 2.11.8 | ||
2325 | '@types/react': 18.2.20 | ||
2326 | clsx: 2.0.0 | ||
2327 | prop-types: 15.8.1 | ||
2328 | react: 18.2.0 | ||
2329 | react-dom: 18.2.0(react@18.2.0) | ||
2330 | react-is: 18.2.0 | ||
2331 | dev: false | ||
2332 | |||
2333 | /@mui/core-downloads-tracker@5.14.7: | ||
2334 | resolution: {integrity: sha512-sCWTUNElBPgB30iLvWe3PU7SIlTKZNf6/E/sko85iHVeHCM6WPkDw+y89CrZYjhFNmPqt2fIQM/pZu+rP2lFLA==} | ||
2335 | dev: false | ||
2336 | |||
2337 | /@mui/icons-material@5.14.7(@mui/material@5.14.7)(@types/react@18.2.20)(react@18.2.0): | ||
2338 | resolution: {integrity: sha512-mWp4DwMa8c1Gx9yOEtPgxM4b+e6hAbtZyzfSubdBwrnEE6G5D2rbAJ5MB+If6kfI48JaYaJ5j8+zAdmZLuZc0A==} | ||
2339 | engines: {node: '>=12.0.0'} | ||
2340 | peerDependencies: | ||
2341 | '@mui/material': ^5.0.0 | ||
2342 | '@types/react': ^17.0.0 || ^18.0.0 | ||
2343 | react: ^17.0.0 || ^18.0.0 | ||
2344 | peerDependenciesMeta: | ||
2345 | '@types/react': | ||
2346 | optional: true | ||
2347 | dependencies: | ||
2348 | '@babel/runtime': 7.22.11 | ||
2349 | '@mui/material': 5.14.7(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.20)(react-dom@18.2.0)(react@18.2.0) | ||
2350 | '@types/react': 18.2.20 | ||
2351 | react: 18.2.0 | ||
2352 | dev: false | ||
2353 | |||
2354 | /@mui/material@5.14.7(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.20)(react-dom@18.2.0)(react@18.2.0): | ||
2355 | resolution: {integrity: sha512-jIZj9F7zMv6IlyaYDVv5M2Kp20jIX8c0kzuwteySHS/A0IvPVyomQEPtWc51MCbpDNCqzwoZUp3rQtA2lI8k7A==} | ||
2356 | engines: {node: '>=12.0.0'} | ||
2357 | peerDependencies: | ||
2358 | '@emotion/react': ^11.5.0 | ||
2359 | '@emotion/styled': ^11.3.0 | ||
2360 | '@types/react': ^17.0.0 || ^18.0.0 | ||
2361 | react: ^17.0.0 || ^18.0.0 | ||
2362 | react-dom: ^17.0.0 || ^18.0.0 | ||
2363 | peerDependenciesMeta: | ||
2364 | '@emotion/react': | ||
2365 | optional: true | ||
2366 | '@emotion/styled': | ||
2367 | optional: true | ||
2368 | '@types/react': | ||
2369 | optional: true | ||
2370 | dependencies: | ||
2371 | '@babel/runtime': 7.22.11 | ||
2372 | '@emotion/react': 11.11.1(@types/react@18.2.20)(react@18.2.0) | ||
2373 | '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.20)(react@18.2.0) | ||
2374 | '@mui/base': 5.0.0-beta.13(@types/react@18.2.20)(react-dom@18.2.0)(react@18.2.0) | ||
2375 | '@mui/core-downloads-tracker': 5.14.7 | ||
2376 | '@mui/system': 5.14.7(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.20)(react@18.2.0) | ||
2377 | '@mui/types': 7.2.4(@types/react@18.2.20) | ||
2378 | '@mui/utils': 5.14.7(react@18.2.0) | ||
2379 | '@types/react': 18.2.20 | ||
2380 | '@types/react-transition-group': 4.4.6 | ||
2381 | clsx: 2.0.0 | ||
2382 | csstype: 3.1.2 | ||
2383 | prop-types: 15.8.1 | ||
2384 | react: 18.2.0 | ||
2385 | react-dom: 18.2.0(react@18.2.0) | ||
2386 | react-is: 18.2.0 | ||
2387 | react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) | ||
2388 | dev: false | ||
2389 | |||
2390 | /@mui/private-theming@5.14.7(@types/react@18.2.20)(react@18.2.0): | ||
2391 | resolution: {integrity: sha512-Y86+hmDnJab2Ka42PgxKpK3oL7EiacbeeX3X/lG9LGO0wSc45wZjHeTfIlVSkkUCkexiMKEJp5NlSjZhr27NRQ==} | ||
2392 | engines: {node: '>=12.0.0'} | ||
2393 | peerDependencies: | ||
2394 | '@types/react': ^17.0.0 || ^18.0.0 | ||
2395 | react: ^17.0.0 || ^18.0.0 | ||
2396 | peerDependenciesMeta: | ||
2397 | '@types/react': | ||
2398 | optional: true | ||
2399 | dependencies: | ||
2400 | '@babel/runtime': 7.22.11 | ||
2401 | '@mui/utils': 5.14.7(react@18.2.0) | ||
2402 | '@types/react': 18.2.20 | ||
2403 | prop-types: 15.8.1 | ||
2404 | react: 18.2.0 | ||
2405 | dev: false | ||
2406 | |||
2407 | /@mui/styled-engine@5.14.7(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0): | ||
2408 | resolution: {integrity: sha512-hKBETEDsIAkL8/mBwPiQj/vw28OeIhMXC3Tvj4J2bb9snxAKpiZioR1PwqP+6P41twsC/GKBd0Vr9oaWYaHuMg==} | ||
2409 | engines: {node: '>=12.0.0'} | ||
2410 | peerDependencies: | ||
2411 | '@emotion/react': ^11.4.1 | ||
2412 | '@emotion/styled': ^11.3.0 | ||
2413 | react: ^17.0.0 || ^18.0.0 | ||
2414 | peerDependenciesMeta: | ||
2415 | '@emotion/react': | ||
2416 | optional: true | ||
2417 | '@emotion/styled': | ||
2418 | optional: true | ||
2419 | dependencies: | ||
2420 | '@babel/runtime': 7.22.11 | ||
2421 | '@emotion/cache': 11.11.0 | ||
2422 | '@emotion/react': 11.11.1(@types/react@18.2.20)(react@18.2.0) | ||
2423 | '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.20)(react@18.2.0) | ||
2424 | csstype: 3.1.2 | ||
2425 | prop-types: 15.8.1 | ||
2426 | react: 18.2.0 | ||
2427 | dev: false | ||
2428 | |||
2429 | /@mui/system@5.14.7(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.2.20)(react@18.2.0): | ||
2430 | resolution: {integrity: sha512-jeZtHglc+Pi6qjGoopT6O4RqYXVBMqHVOsjMGP0hxGSSPm1T4gsAu7jU8eqGx9YwwjvvJ0eotTjFqw7iJ6qE2Q==} | ||
2431 | engines: {node: '>=12.0.0'} | ||
2432 | peerDependencies: | ||
2433 | '@emotion/react': ^11.5.0 | ||
2434 | '@emotion/styled': ^11.3.0 | ||
2435 | '@types/react': ^17.0.0 || ^18.0.0 | ||
2436 | react: ^17.0.0 || ^18.0.0 | ||
2437 | peerDependenciesMeta: | ||
2438 | '@emotion/react': | ||
2439 | optional: true | ||
2440 | '@emotion/styled': | ||
2441 | optional: true | ||
2442 | '@types/react': | ||
2443 | optional: true | ||
2444 | dependencies: | ||
2445 | '@babel/runtime': 7.22.11 | ||
2446 | '@emotion/react': 11.11.1(@types/react@18.2.20)(react@18.2.0) | ||
2447 | '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.2.20)(react@18.2.0) | ||
2448 | '@mui/private-theming': 5.14.7(@types/react@18.2.20)(react@18.2.0) | ||
2449 | '@mui/styled-engine': 5.14.7(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) | ||
2450 | '@mui/types': 7.2.4(@types/react@18.2.20) | ||
2451 | '@mui/utils': 5.14.7(react@18.2.0) | ||
2452 | '@types/react': 18.2.20 | ||
2453 | clsx: 2.0.0 | ||
2454 | csstype: 3.1.2 | ||
2455 | prop-types: 15.8.1 | ||
2456 | react: 18.2.0 | ||
2457 | dev: false | ||
2458 | |||
2459 | /@mui/types@7.2.4(@types/react@18.2.20): | ||
2460 | resolution: {integrity: sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==} | ||
2461 | peerDependencies: | ||
2462 | '@types/react': '*' | ||
2463 | peerDependenciesMeta: | ||
2464 | '@types/react': | ||
2465 | optional: true | ||
2466 | dependencies: | ||
2467 | '@types/react': 18.2.20 | ||
2468 | dev: false | ||
2469 | |||
2470 | /@mui/utils@5.14.7(react@18.2.0): | ||
2471 | resolution: {integrity: sha512-RtheP/aBoPogVdi8vj8Vo2IFnRa4mZVmnD0RGlVZ49yF60rZs+xP4/KbpIrTr83xVs34QmHQ2aQ+IX7I0a0dDw==} | ||
2472 | engines: {node: '>=12.0.0'} | ||
2473 | peerDependencies: | ||
2474 | react: ^17.0.0 || ^18.0.0 | ||
2475 | dependencies: | ||
2476 | '@babel/runtime': 7.22.11 | ||
2477 | '@types/prop-types': 15.7.5 | ||
2478 | '@types/react-is': 18.2.1 | ||
2479 | prop-types: 15.8.1 | ||
2480 | react: 18.2.0 | ||
2481 | react-is: 18.2.0 | ||
2482 | dev: false | ||
2483 | |||
2173 | /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: | 2484 | /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1: |
2174 | resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} | 2485 | resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} |
2175 | dependencies: | 2486 | dependencies: |
@@ -2204,6 +2515,7 @@ packages: | |||
2204 | 2515 | ||
2205 | /@npmcli/fs@1.1.1: | 2516 | /@npmcli/fs@1.1.1: |
2206 | resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} | 2517 | resolution: {integrity: sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==} |
2518 | requiresBuild: true | ||
2207 | dependencies: | 2519 | dependencies: |
2208 | '@gar/promisify': 1.1.3 | 2520 | '@gar/promisify': 1.1.3 |
2209 | semver: 7.5.4 | 2521 | semver: 7.5.4 |
@@ -2221,6 +2533,7 @@ packages: | |||
2221 | resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} | 2533 | resolution: {integrity: sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==} |
2222 | engines: {node: '>=10'} | 2534 | engines: {node: '>=10'} |
2223 | deprecated: This functionality has been moved to @npmcli/fs | 2535 | deprecated: This functionality has been moved to @npmcli/fs |
2536 | requiresBuild: true | ||
2224 | dependencies: | 2537 | dependencies: |
2225 | mkdirp: 1.0.4 | 2538 | mkdirp: 1.0.4 |
2226 | rimraf: 3.0.2 | 2539 | rimraf: 3.0.2 |
@@ -2312,6 +2625,10 @@ packages: | |||
2312 | tslib: 2.6.1 | 2625 | tslib: 2.6.1 |
2313 | dev: true | 2626 | dev: true |
2314 | 2627 | ||
2628 | /@popperjs/core@2.11.8: | ||
2629 | resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} | ||
2630 | dev: false | ||
2631 | |||
2315 | /@remix-run/router@1.8.0: | 2632 | /@remix-run/router@1.8.0: |
2316 | resolution: {integrity: sha512-mrfKqIHnSZRyIzBcanNJmVQELTnX+qagEDlcKO90RgRBVOZGSGvZKeDihTRfWcqoDn5N/NkUcwWTccnpN18Tfg==} | 2633 | resolution: {integrity: sha512-mrfKqIHnSZRyIzBcanNJmVQELTnX+qagEDlcKO90RgRBVOZGSGvZKeDihTRfWcqoDn5N/NkUcwWTccnpN18Tfg==} |
2317 | engines: {node: '>=14.0.0'} | 2634 | engines: {node: '>=14.0.0'} |
@@ -2447,6 +2764,7 @@ packages: | |||
2447 | /@tootallnate/once@1.1.2: | 2764 | /@tootallnate/once@1.1.2: |
2448 | resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} | 2765 | resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} |
2449 | engines: {node: '>= 6'} | 2766 | engines: {node: '>= 6'} |
2767 | requiresBuild: true | ||
2450 | dev: false | 2768 | dev: false |
2451 | optional: true | 2769 | optional: true |
2452 | 2770 | ||
@@ -2479,7 +2797,7 @@ packages: | |||
2479 | resolution: {integrity: sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==} | 2797 | resolution: {integrity: sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==} |
2480 | dependencies: | 2798 | dependencies: |
2481 | '@babel/parser': 7.22.10 | 2799 | '@babel/parser': 7.22.10 |
2482 | '@babel/types': 7.22.10 | 2800 | '@babel/types': 7.22.11 |
2483 | '@types/babel__generator': 7.6.4 | 2801 | '@types/babel__generator': 7.6.4 |
2484 | '@types/babel__template': 7.4.1 | 2802 | '@types/babel__template': 7.4.1 |
2485 | '@types/babel__traverse': 7.18.2 | 2803 | '@types/babel__traverse': 7.18.2 |
@@ -2488,20 +2806,20 @@ packages: | |||
2488 | /@types/babel__generator@7.6.4: | 2806 | /@types/babel__generator@7.6.4: |
2489 | resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} | 2807 | resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} |
2490 | dependencies: | 2808 | dependencies: |
2491 | '@babel/types': 7.22.10 | 2809 | '@babel/types': 7.22.11 |
2492 | dev: true | 2810 | dev: true |
2493 | 2811 | ||
2494 | /@types/babel__template@7.4.1: | 2812 | /@types/babel__template@7.4.1: |
2495 | resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} | 2813 | resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} |
2496 | dependencies: | 2814 | dependencies: |
2497 | '@babel/parser': 7.22.10 | 2815 | '@babel/parser': 7.22.10 |
2498 | '@babel/types': 7.22.10 | 2816 | '@babel/types': 7.22.11 |
2499 | dev: true | 2817 | dev: true |
2500 | 2818 | ||
2501 | /@types/babel__traverse@7.18.2: | 2819 | /@types/babel__traverse@7.18.2: |
2502 | resolution: {integrity: sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==} | 2820 | resolution: {integrity: sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==} |
2503 | dependencies: | 2821 | dependencies: |
2504 | '@babel/types': 7.22.10 | 2822 | '@babel/types': 7.22.11 |
2505 | dev: true | 2823 | dev: true |
2506 | 2824 | ||
2507 | /@types/cacheable-request@6.0.3: | 2825 | /@types/cacheable-request@6.0.3: |
@@ -2628,6 +2946,10 @@ packages: | |||
2628 | resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} | 2946 | resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} |
2629 | dev: true | 2947 | dev: true |
2630 | 2948 | ||
2949 | /@types/parse-json@4.0.0: | ||
2950 | resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} | ||
2951 | dev: false | ||
2952 | |||
2631 | /@types/plist@3.0.2: | 2953 | /@types/plist@3.0.2: |
2632 | resolution: {integrity: sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==} | 2954 | resolution: {integrity: sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==} |
2633 | requiresBuild: true | 2955 | requiresBuild: true |
@@ -2653,6 +2975,12 @@ packages: | |||
2653 | '@types/react': 18.2.20 | 2975 | '@types/react': 18.2.20 |
2654 | dev: true | 2976 | dev: true |
2655 | 2977 | ||
2978 | /@types/react-is@18.2.1: | ||
2979 | resolution: {integrity: sha512-wyUkmaaSZEzFZivD8F2ftSyAfk6L+DfFliVj/mYdOXbVjRcS87fQJLTnhk6dRZPuJjI+9g6RZJO4PNCngUrmyw==} | ||
2980 | dependencies: | ||
2981 | '@types/react': 18.2.20 | ||
2982 | dev: false | ||
2983 | |||
2656 | /@types/react-loader@2.4.5: | 2984 | /@types/react-loader@2.4.5: |
2657 | resolution: {integrity: sha512-eBtnKxGx/B+z6kSOMiVBYLPZmXLZDVoChSYk57N91HZKB1wSPICHPrgvlhC5j8Y7MCfoYRt4/emRwh2OQIhFrg==} | 2985 | resolution: {integrity: sha512-eBtnKxGx/B+z6kSOMiVBYLPZmXLZDVoChSYk57N91HZKB1wSPICHPrgvlhC5j8Y7MCfoYRt4/emRwh2OQIhFrg==} |
2658 | dependencies: | 2986 | dependencies: |
@@ -2663,7 +2991,6 @@ packages: | |||
2663 | resolution: {integrity: sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==} | 2991 | resolution: {integrity: sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==} |
2664 | dependencies: | 2992 | dependencies: |
2665 | '@types/react': 18.2.20 | 2993 | '@types/react': 18.2.20 |
2666 | dev: true | ||
2667 | 2994 | ||
2668 | /@types/react@18.2.20: | 2995 | /@types/react@18.2.20: |
2669 | resolution: {integrity: sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw==} | 2996 | resolution: {integrity: sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw==} |
@@ -3135,6 +3462,7 @@ packages: | |||
3135 | /aggregate-error@3.1.0: | 3462 | /aggregate-error@3.1.0: |
3136 | resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} | 3463 | resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} |
3137 | engines: {node: '>=8'} | 3464 | engines: {node: '>=8'} |
3465 | requiresBuild: true | ||
3138 | dependencies: | 3466 | dependencies: |
3139 | clean-stack: 2.2.0 | 3467 | clean-stack: 2.2.0 |
3140 | indent-string: 4.0.0 | 3468 | indent-string: 4.0.0 |
@@ -3411,7 +3739,6 @@ packages: | |||
3411 | engines: {node: '>=4'} | 3739 | engines: {node: '>=4'} |
3412 | dependencies: | 3740 | dependencies: |
3413 | color-convert: 1.9.3 | 3741 | color-convert: 1.9.3 |
3414 | dev: true | ||
3415 | 3742 | ||
3416 | /ansi-styles@4.3.0: | 3743 | /ansi-styles@4.3.0: |
3417 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} | 3744 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} |
@@ -3531,6 +3858,7 @@ packages: | |||
3531 | /are-we-there-yet@3.0.1: | 3858 | /are-we-there-yet@3.0.1: |
3532 | resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} | 3859 | resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} |
3533 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} | 3860 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} |
3861 | requiresBuild: true | ||
3534 | dependencies: | 3862 | dependencies: |
3535 | delegates: 1.0.0 | 3863 | delegates: 1.0.0 |
3536 | readable-stream: 3.6.2 | 3864 | readable-stream: 3.6.2 |
@@ -3808,11 +4136,20 @@ packages: | |||
3808 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} | 4136 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} |
3809 | dependencies: | 4137 | dependencies: |
3810 | '@babel/template': 7.22.5 | 4138 | '@babel/template': 7.22.5 |
3811 | '@babel/types': 7.22.10 | 4139 | '@babel/types': 7.22.11 |
3812 | '@types/babel__core': 7.1.20 | 4140 | '@types/babel__core': 7.1.20 |
3813 | '@types/babel__traverse': 7.18.2 | 4141 | '@types/babel__traverse': 7.18.2 |
3814 | dev: true | 4142 | dev: true |
3815 | 4143 | ||
4144 | /babel-plugin-macros@3.1.0: | ||
4145 | resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} | ||
4146 | engines: {node: '>=10', npm: '>=6'} | ||
4147 | dependencies: | ||
4148 | '@babel/runtime': 7.22.11 | ||
4149 | cosmiconfig: 7.1.0 | ||
4150 | resolve: 1.22.4 | ||
4151 | dev: false | ||
4152 | |||
3816 | /babel-preset-current-node-syntax@1.0.1(@babel/core@7.22.10): | 4153 | /babel-preset-current-node-syntax@1.0.1(@babel/core@7.22.10): |
3817 | resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} | 4154 | resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} |
3818 | peerDependencies: | 4155 | peerDependencies: |
@@ -3897,6 +4234,7 @@ packages: | |||
3897 | 4234 | ||
3898 | /bindings@1.5.0: | 4235 | /bindings@1.5.0: |
3899 | resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} | 4236 | resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} |
4237 | requiresBuild: true | ||
3900 | dependencies: | 4238 | dependencies: |
3901 | file-uri-to-path: 1.0.0 | 4239 | file-uri-to-path: 1.0.0 |
3902 | dev: false | 4240 | dev: false |
@@ -3938,6 +4276,7 @@ packages: | |||
3938 | 4276 | ||
3939 | /boolean@3.2.0: | 4277 | /boolean@3.2.0: |
3940 | resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} | 4278 | resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} |
4279 | requiresBuild: true | ||
3941 | optional: true | 4280 | optional: true |
3942 | 4281 | ||
3943 | /bplist-parser@0.2.0: | 4282 | /bplist-parser@0.2.0: |
@@ -4110,6 +4449,7 @@ packages: | |||
4110 | /cacache@15.3.0: | 4449 | /cacache@15.3.0: |
4111 | resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} | 4450 | resolution: {integrity: sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==} |
4112 | engines: {node: '>= 10'} | 4451 | engines: {node: '>= 10'} |
4452 | requiresBuild: true | ||
4113 | dependencies: | 4453 | dependencies: |
4114 | '@npmcli/fs': 1.1.1 | 4454 | '@npmcli/fs': 1.1.1 |
4115 | '@npmcli/move-file': 1.1.2 | 4455 | '@npmcli/move-file': 1.1.2 |
@@ -4208,7 +4548,6 @@ packages: | |||
4208 | /callsites@3.1.0: | 4548 | /callsites@3.1.0: |
4209 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} | 4549 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} |
4210 | engines: {node: '>=6'} | 4550 | engines: {node: '>=6'} |
4211 | dev: true | ||
4212 | 4551 | ||
4213 | /camelcase-keys@6.2.2: | 4552 | /camelcase-keys@6.2.2: |
4214 | resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} | 4553 | resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} |
@@ -4244,7 +4583,6 @@ packages: | |||
4244 | ansi-styles: 3.2.1 | 4583 | ansi-styles: 3.2.1 |
4245 | escape-string-regexp: 1.0.5 | 4584 | escape-string-regexp: 1.0.5 |
4246 | supports-color: 5.5.0 | 4585 | supports-color: 5.5.0 |
4247 | dev: true | ||
4248 | 4586 | ||
4249 | /chalk@4.1.2: | 4587 | /chalk@4.1.2: |
4250 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} | 4588 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} |
@@ -4344,6 +4682,7 @@ packages: | |||
4344 | /clean-stack@2.2.0: | 4682 | /clean-stack@2.2.0: |
4345 | resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} | 4683 | resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} |
4346 | engines: {node: '>=6'} | 4684 | engines: {node: '>=6'} |
4685 | requiresBuild: true | ||
4347 | 4686 | ||
4348 | /cli-cursor@3.1.0: | 4687 | /cli-cursor@3.1.0: |
4349 | resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} | 4688 | resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} |
@@ -4456,6 +4795,11 @@ packages: | |||
4456 | readable-stream: 2.3.8 | 4795 | readable-stream: 2.3.8 |
4457 | dev: true | 4796 | dev: true |
4458 | 4797 | ||
4798 | /clsx@2.0.0: | ||
4799 | resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} | ||
4800 | engines: {node: '>=6'} | ||
4801 | dev: false | ||
4802 | |||
4459 | /co-body@6.1.0: | 4803 | /co-body@6.1.0: |
4460 | resolution: {integrity: sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==} | 4804 | resolution: {integrity: sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==} |
4461 | dependencies: | 4805 | dependencies: |
@@ -4654,7 +4998,6 @@ packages: | |||
4654 | 4998 | ||
4655 | /convert-source-map@1.9.0: | 4999 | /convert-source-map@1.9.0: |
4656 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} | 5000 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} |
4657 | dev: true | ||
4658 | 5001 | ||
4659 | /convert-source-map@2.0.0: | 5002 | /convert-source-map@2.0.0: |
4660 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} | 5003 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} |
@@ -4696,6 +5039,17 @@ packages: | |||
4696 | typescript: 5.0.4 | 5039 | typescript: 5.0.4 |
4697 | dev: true | 5040 | dev: true |
4698 | 5041 | ||
5042 | /cosmiconfig@7.1.0: | ||
5043 | resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} | ||
5044 | engines: {node: '>=10'} | ||
5045 | dependencies: | ||
5046 | '@types/parse-json': 4.0.0 | ||
5047 | import-fresh: 3.3.0 | ||
5048 | parse-json: 5.2.0 | ||
5049 | path-type: 4.0.0 | ||
5050 | yaml: 1.10.2 | ||
5051 | dev: false | ||
5052 | |||
4699 | /cosmiconfig@8.1.3: | 5053 | /cosmiconfig@8.1.3: |
4700 | resolution: {integrity: sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==} | 5054 | resolution: {integrity: sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==} |
4701 | engines: {node: '>=14'} | 5055 | engines: {node: '>=14'} |
@@ -4778,7 +5132,7 @@ packages: | |||
4778 | /css-jss@10.10.0: | 5132 | /css-jss@10.10.0: |
4779 | resolution: {integrity: sha512-YyMIS/LsSKEGXEaVJdjonWe18p4vXLo8CMA4FrW/kcaEyqdIGKCFXao31gbJddXEdIxSXFFURWrenBJPlKTgAA==} | 5133 | resolution: {integrity: sha512-YyMIS/LsSKEGXEaVJdjonWe18p4vXLo8CMA4FrW/kcaEyqdIGKCFXao31gbJddXEdIxSXFFURWrenBJPlKTgAA==} |
4780 | dependencies: | 5134 | dependencies: |
4781 | '@babel/runtime': 7.21.5 | 5135 | '@babel/runtime': 7.22.11 |
4782 | jss: 10.10.0 | 5136 | jss: 10.10.0 |
4783 | jss-preset-default: 10.10.0 | 5137 | jss-preset-default: 10.10.0 |
4784 | dev: false | 5138 | dev: false |
@@ -4786,7 +5140,7 @@ packages: | |||
4786 | /css-vendor@2.0.8: | 5140 | /css-vendor@2.0.8: |
4787 | resolution: {integrity: sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==} | 5141 | resolution: {integrity: sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==} |
4788 | dependencies: | 5142 | dependencies: |
4789 | '@babel/runtime': 7.21.5 | 5143 | '@babel/runtime': 7.22.11 |
4790 | is-in-browser: 1.1.3 | 5144 | is-in-browser: 1.1.3 |
4791 | dev: false | 5145 | dev: false |
4792 | 5146 | ||
@@ -4824,7 +5178,7 @@ packages: | |||
4824 | resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} | 5178 | resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} |
4825 | engines: {node: '>=0.11'} | 5179 | engines: {node: '>=0.11'} |
4826 | dependencies: | 5180 | dependencies: |
4827 | '@babel/runtime': 7.21.5 | 5181 | '@babel/runtime': 7.22.11 |
4828 | dev: true | 5182 | dev: true |
4829 | 5183 | ||
4830 | /dbus-next@0.10.2: | 5184 | /dbus-next@0.10.2: |
@@ -5106,6 +5460,7 @@ packages: | |||
5106 | 5460 | ||
5107 | /detect-node@2.1.0: | 5461 | /detect-node@2.1.0: |
5108 | resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} | 5462 | resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} |
5463 | requiresBuild: true | ||
5109 | optional: true | 5464 | optional: true |
5110 | 5465 | ||
5111 | /didyoumean@1.2.2: | 5466 | /didyoumean@1.2.2: |
@@ -5186,7 +5541,7 @@ packages: | |||
5186 | /dom-helpers@5.2.1: | 5541 | /dom-helpers@5.2.1: |
5187 | resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} | 5542 | resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} |
5188 | dependencies: | 5543 | dependencies: |
5189 | '@babel/runtime': 7.21.5 | 5544 | '@babel/runtime': 7.22.11 |
5190 | csstype: 3.1.2 | 5545 | csstype: 3.1.2 |
5191 | dev: false | 5546 | dev: false |
5192 | 5547 | ||
@@ -5416,12 +5771,12 @@ packages: | |||
5416 | 5771 | ||
5417 | /err-code@2.0.3: | 5772 | /err-code@2.0.3: |
5418 | resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} | 5773 | resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} |
5774 | requiresBuild: true | ||
5419 | 5775 | ||
5420 | /error-ex@1.3.2: | 5776 | /error-ex@1.3.2: |
5421 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} | 5777 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} |
5422 | dependencies: | 5778 | dependencies: |
5423 | is-arrayish: 0.2.1 | 5779 | is-arrayish: 0.2.1 |
5424 | dev: true | ||
5425 | 5780 | ||
5426 | /error-symbol@0.1.0: | 5781 | /error-symbol@0.1.0: |
5427 | resolution: {integrity: sha512-VyjaKxUmeDX/m2lxm/aknsJ1GWDWUO2Ze2Ad8S1Pb9dykAm9TjSKp5CjrNyltYqZ5W/PO6TInAmO2/BfwMyT1g==} | 5782 | resolution: {integrity: sha512-VyjaKxUmeDX/m2lxm/aknsJ1GWDWUO2Ze2Ad8S1Pb9dykAm9TjSKp5CjrNyltYqZ5W/PO6TInAmO2/BfwMyT1g==} |
@@ -5528,6 +5883,7 @@ packages: | |||
5528 | 5883 | ||
5529 | /es6-error@4.1.1: | 5884 | /es6-error@4.1.1: |
5530 | resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} | 5885 | resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} |
5886 | requiresBuild: true | ||
5531 | optional: true | 5887 | optional: true |
5532 | 5888 | ||
5533 | /es6-iterator@2.0.3: | 5889 | /es6-iterator@2.0.3: |
@@ -5634,7 +5990,6 @@ packages: | |||
5634 | /escape-string-regexp@1.0.5: | 5990 | /escape-string-regexp@1.0.5: |
5635 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} | 5991 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} |
5636 | engines: {node: '>=0.8.0'} | 5992 | engines: {node: '>=0.8.0'} |
5637 | dev: true | ||
5638 | 5993 | ||
5639 | /escape-string-regexp@2.0.0: | 5994 | /escape-string-regexp@2.0.0: |
5640 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} | 5995 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} |
@@ -5708,7 +6063,7 @@ packages: | |||
5708 | resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} | 6063 | resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} |
5709 | dependencies: | 6064 | dependencies: |
5710 | debug: 3.2.7 | 6065 | debug: 3.2.7 |
5711 | is-core-module: 2.12.1 | 6066 | is-core-module: 2.13.0 |
5712 | resolve: 1.22.4 | 6067 | resolve: 1.22.4 |
5713 | transitivePeerDependencies: | 6068 | transitivePeerDependencies: |
5714 | - supports-color | 6069 | - supports-color |
@@ -6406,6 +6761,7 @@ packages: | |||
6406 | 6761 | ||
6407 | /file-uri-to-path@1.0.0: | 6762 | /file-uri-to-path@1.0.0: |
6408 | resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} | 6763 | resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} |
6764 | requiresBuild: true | ||
6409 | dev: false | 6765 | dev: false |
6410 | optional: true | 6766 | optional: true |
6411 | 6767 | ||
@@ -6432,6 +6788,10 @@ packages: | |||
6432 | to-regex-range: 5.0.1 | 6788 | to-regex-range: 5.0.1 |
6433 | dev: true | 6789 | dev: true |
6434 | 6790 | ||
6791 | /find-root@1.1.0: | ||
6792 | resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} | ||
6793 | dev: false | ||
6794 | |||
6435 | /find-up@4.1.0: | 6795 | /find-up@4.1.0: |
6436 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} | 6796 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} |
6437 | engines: {node: '>=8'} | 6797 | engines: {node: '>=8'} |
@@ -6638,6 +6998,7 @@ packages: | |||
6638 | 6998 | ||
6639 | /fs.realpath@1.0.0: | 6999 | /fs.realpath@1.0.0: |
6640 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} | 7000 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} |
7001 | requiresBuild: true | ||
6641 | 7002 | ||
6642 | /fsevents@2.3.3: | 7003 | /fsevents@2.3.3: |
6643 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} | 7004 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} |
@@ -6686,6 +7047,7 @@ packages: | |||
6686 | /gauge@4.0.4: | 7047 | /gauge@4.0.4: |
6687 | resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} | 7048 | resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} |
6688 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} | 7049 | engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} |
7050 | requiresBuild: true | ||
6689 | dependencies: | 7051 | dependencies: |
6690 | aproba: 2.0.0 | 7052 | aproba: 2.0.0 |
6691 | color-support: 1.1.3 | 7053 | color-support: 1.1.3 |
@@ -6961,7 +7323,6 @@ packages: | |||
6961 | /has-flag@3.0.0: | 7323 | /has-flag@3.0.0: |
6962 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} | 7324 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} |
6963 | engines: {node: '>=4'} | 7325 | engines: {node: '>=4'} |
6964 | dev: true | ||
6965 | 7326 | ||
6966 | /has-flag@4.0.0: | 7327 | /has-flag@4.0.0: |
6967 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} | 7328 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} |
@@ -7113,6 +7474,7 @@ packages: | |||
7113 | /http-proxy-agent@4.0.1: | 7474 | /http-proxy-agent@4.0.1: |
7114 | resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} | 7475 | resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} |
7115 | engines: {node: '>= 6'} | 7476 | engines: {node: '>= 6'} |
7477 | requiresBuild: true | ||
7116 | dependencies: | 7478 | dependencies: |
7117 | '@tootallnate/once': 1.1.2 | 7479 | '@tootallnate/once': 1.1.2 |
7118 | agent-base: 6.0.2 | 7480 | agent-base: 6.0.2 |
@@ -7185,6 +7547,7 @@ packages: | |||
7185 | 7547 | ||
7186 | /humanize-ms@1.2.1: | 7548 | /humanize-ms@1.2.1: |
7187 | resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} | 7549 | resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} |
7550 | requiresBuild: true | ||
7188 | dependencies: | 7551 | dependencies: |
7189 | ms: 2.1.3 | 7552 | ms: 2.1.3 |
7190 | 7553 | ||
@@ -7239,7 +7602,6 @@ packages: | |||
7239 | dependencies: | 7602 | dependencies: |
7240 | parent-module: 1.0.1 | 7603 | parent-module: 1.0.1 |
7241 | resolve-from: 4.0.0 | 7604 | resolve-from: 4.0.0 |
7242 | dev: true | ||
7243 | 7605 | ||
7244 | /import-local@3.1.0: | 7606 | /import-local@3.1.0: |
7245 | resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} | 7607 | resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} |
@@ -7269,6 +7631,7 @@ packages: | |||
7269 | 7631 | ||
7270 | /infer-owner@1.0.4: | 7632 | /infer-owner@1.0.4: |
7271 | resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} | 7633 | resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} |
7634 | requiresBuild: true | ||
7272 | dev: false | 7635 | dev: false |
7273 | optional: true | 7636 | optional: true |
7274 | 7637 | ||
@@ -7279,6 +7642,7 @@ packages: | |||
7279 | 7642 | ||
7280 | /inflight@1.0.6: | 7643 | /inflight@1.0.6: |
7281 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} | 7644 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} |
7645 | requiresBuild: true | ||
7282 | dependencies: | 7646 | dependencies: |
7283 | once: 1.4.0 | 7647 | once: 1.4.0 |
7284 | wrappy: 1.0.2 | 7648 | wrappy: 1.0.2 |
@@ -7348,6 +7712,7 @@ packages: | |||
7348 | 7712 | ||
7349 | /ip@2.0.0: | 7713 | /ip@2.0.0: |
7350 | resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} | 7714 | resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} |
7715 | requiresBuild: true | ||
7351 | 7716 | ||
7352 | /ipaddr.js@1.9.1: | 7717 | /ipaddr.js@1.9.1: |
7353 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} | 7718 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} |
@@ -7394,7 +7759,6 @@ packages: | |||
7394 | 7759 | ||
7395 | /is-arrayish@0.2.1: | 7760 | /is-arrayish@0.2.1: |
7396 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} | 7761 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} |
7397 | dev: true | ||
7398 | 7762 | ||
7399 | /is-arrayish@0.3.2: | 7763 | /is-arrayish@0.3.2: |
7400 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} | 7764 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} |
@@ -8062,7 +8426,7 @@ packages: | |||
8062 | resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==} | 8426 | resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==} |
8063 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} | 8427 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} |
8064 | dependencies: | 8428 | dependencies: |
8065 | '@babel/code-frame': 7.22.5 | 8429 | '@babel/code-frame': 7.22.10 |
8066 | '@jest/types': 29.6.1 | 8430 | '@jest/types': 29.6.1 |
8067 | '@types/stack-utils': 2.0.1 | 8431 | '@types/stack-utils': 2.0.1 |
8068 | chalk: 4.1.2 | 8432 | chalk: 4.1.2 |
@@ -8206,7 +8570,7 @@ packages: | |||
8206 | '@babel/generator': 7.22.10 | 8570 | '@babel/generator': 7.22.10 |
8207 | '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.22.10) | 8571 | '@babel/plugin-syntax-jsx': 7.21.4(@babel/core@7.22.10) |
8208 | '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.22.10) | 8572 | '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.22.10) |
8209 | '@babel/types': 7.22.10 | 8573 | '@babel/types': 7.22.11 |
8210 | '@jest/expect-utils': 29.6.2 | 8574 | '@jest/expect-utils': 29.6.2 |
8211 | '@jest/transform': 29.6.2 | 8575 | '@jest/transform': 29.6.2 |
8212 | '@jest/types': 29.6.1 | 8576 | '@jest/types': 29.6.1 |
@@ -8366,14 +8730,13 @@ packages: | |||
8366 | resolution: {integrity: sha512-TuDuZ5KrgyjoCIppdPXBMqiGfota55+odM+j2cQ5rt/XKyKmqGB3Whz1F8SN8+60yYGy/Nu5lbRZ+rx8kBIvBw==} | 8730 | resolution: {integrity: sha512-TuDuZ5KrgyjoCIppdPXBMqiGfota55+odM+j2cQ5rt/XKyKmqGB3Whz1F8SN8+60yYGy/Nu5lbRZ+rx8kBIvBw==} |
8367 | engines: {node: '>=10'} | 8731 | engines: {node: '>=10'} |
8368 | dependencies: | 8732 | dependencies: |
8369 | '@babel/runtime': 7.21.5 | 8733 | '@babel/runtime': 7.22.11 |
8370 | chalk: 4.1.2 | 8734 | chalk: 4.1.2 |
8371 | pegjs: 0.10.0 | 8735 | pegjs: 0.10.0 |
8372 | dev: true | 8736 | dev: true |
8373 | 8737 | ||
8374 | /json-parse-even-better-errors@2.3.1: | 8738 | /json-parse-even-better-errors@2.3.1: |
8375 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} | 8739 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} |
8376 | dev: true | ||
8377 | 8740 | ||
8378 | /json-schema-traverse@0.4.1: | 8741 | /json-schema-traverse@0.4.1: |
8379 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} | 8742 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} |
@@ -8462,7 +8825,7 @@ packages: | |||
8462 | /jss-plugin-camel-case@10.10.0: | 8825 | /jss-plugin-camel-case@10.10.0: |
8463 | resolution: {integrity: sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==} | 8826 | resolution: {integrity: sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==} |
8464 | dependencies: | 8827 | dependencies: |
8465 | '@babel/runtime': 7.21.5 | 8828 | '@babel/runtime': 7.22.11 |
8466 | hyphenate-style-name: 1.0.4 | 8829 | hyphenate-style-name: 1.0.4 |
8467 | jss: 10.10.0 | 8830 | jss: 10.10.0 |
8468 | dev: false | 8831 | dev: false |
@@ -8470,7 +8833,7 @@ packages: | |||
8470 | /jss-plugin-compose@10.10.0: | 8833 | /jss-plugin-compose@10.10.0: |
8471 | resolution: {integrity: sha512-F5kgtWpI2XfZ3Z8eP78tZEYFdgTIbpA/TMuX3a8vwrNolYtN1N4qJR/Ob0LAsqIwCMLojtxN7c7Oo/+Vz6THow==} | 8834 | resolution: {integrity: sha512-F5kgtWpI2XfZ3Z8eP78tZEYFdgTIbpA/TMuX3a8vwrNolYtN1N4qJR/Ob0LAsqIwCMLojtxN7c7Oo/+Vz6THow==} |
8472 | dependencies: | 8835 | dependencies: |
8473 | '@babel/runtime': 7.21.5 | 8836 | '@babel/runtime': 7.22.11 |
8474 | jss: 10.10.0 | 8837 | jss: 10.10.0 |
8475 | tiny-warning: 1.0.3 | 8838 | tiny-warning: 1.0.3 |
8476 | dev: false | 8839 | dev: false |
@@ -8478,21 +8841,21 @@ packages: | |||
8478 | /jss-plugin-default-unit@10.10.0: | 8841 | /jss-plugin-default-unit@10.10.0: |
8479 | resolution: {integrity: sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==} | 8842 | resolution: {integrity: sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==} |
8480 | dependencies: | 8843 | dependencies: |
8481 | '@babel/runtime': 7.21.5 | 8844 | '@babel/runtime': 7.22.11 |
8482 | jss: 10.10.0 | 8845 | jss: 10.10.0 |
8483 | dev: false | 8846 | dev: false |
8484 | 8847 | ||
8485 | /jss-plugin-expand@10.10.0: | 8848 | /jss-plugin-expand@10.10.0: |
8486 | resolution: {integrity: sha512-ymT62W2OyDxBxr7A6JR87vVX9vTq2ep5jZLIdUSusfBIEENLdkkc0lL/Xaq8W9s3opUq7R0sZQpzRWELrfVYzA==} | 8849 | resolution: {integrity: sha512-ymT62W2OyDxBxr7A6JR87vVX9vTq2ep5jZLIdUSusfBIEENLdkkc0lL/Xaq8W9s3opUq7R0sZQpzRWELrfVYzA==} |
8487 | dependencies: | 8850 | dependencies: |
8488 | '@babel/runtime': 7.21.5 | 8851 | '@babel/runtime': 7.22.11 |
8489 | jss: 10.10.0 | 8852 | jss: 10.10.0 |
8490 | dev: false | 8853 | dev: false |
8491 | 8854 | ||
8492 | /jss-plugin-extend@10.10.0: | 8855 | /jss-plugin-extend@10.10.0: |
8493 | resolution: {integrity: sha512-sKYrcMfr4xxigmIwqTjxNcHwXJIfvhvjTNxF+Tbc1NmNdyspGW47Ey6sGH8BcQ4FFQhLXctpWCQSpDwdNmXSwg==} | 8856 | resolution: {integrity: sha512-sKYrcMfr4xxigmIwqTjxNcHwXJIfvhvjTNxF+Tbc1NmNdyspGW47Ey6sGH8BcQ4FFQhLXctpWCQSpDwdNmXSwg==} |
8494 | dependencies: | 8857 | dependencies: |
8495 | '@babel/runtime': 7.21.5 | 8858 | '@babel/runtime': 7.22.11 |
8496 | jss: 10.10.0 | 8859 | jss: 10.10.0 |
8497 | tiny-warning: 1.0.3 | 8860 | tiny-warning: 1.0.3 |
8498 | dev: false | 8861 | dev: false |
@@ -8500,14 +8863,14 @@ packages: | |||
8500 | /jss-plugin-global@10.10.0: | 8863 | /jss-plugin-global@10.10.0: |
8501 | resolution: {integrity: sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==} | 8864 | resolution: {integrity: sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==} |
8502 | dependencies: | 8865 | dependencies: |
8503 | '@babel/runtime': 7.21.5 | 8866 | '@babel/runtime': 7.22.11 |
8504 | jss: 10.10.0 | 8867 | jss: 10.10.0 |
8505 | dev: false | 8868 | dev: false |
8506 | 8869 | ||
8507 | /jss-plugin-nested@10.10.0: | 8870 | /jss-plugin-nested@10.10.0: |
8508 | resolution: {integrity: sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==} | 8871 | resolution: {integrity: sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==} |
8509 | dependencies: | 8872 | dependencies: |
8510 | '@babel/runtime': 7.21.5 | 8873 | '@babel/runtime': 7.22.11 |
8511 | jss: 10.10.0 | 8874 | jss: 10.10.0 |
8512 | tiny-warning: 1.0.3 | 8875 | tiny-warning: 1.0.3 |
8513 | dev: false | 8876 | dev: false |
@@ -8515,14 +8878,14 @@ packages: | |||
8515 | /jss-plugin-props-sort@10.10.0: | 8878 | /jss-plugin-props-sort@10.10.0: |
8516 | resolution: {integrity: sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==} | 8879 | resolution: {integrity: sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==} |
8517 | dependencies: | 8880 | dependencies: |
8518 | '@babel/runtime': 7.21.5 | 8881 | '@babel/runtime': 7.22.11 |
8519 | jss: 10.10.0 | 8882 | jss: 10.10.0 |
8520 | dev: false | 8883 | dev: false |
8521 | 8884 | ||
8522 | /jss-plugin-rule-value-function@10.10.0: | 8885 | /jss-plugin-rule-value-function@10.10.0: |
8523 | resolution: {integrity: sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==} | 8886 | resolution: {integrity: sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==} |
8524 | dependencies: | 8887 | dependencies: |
8525 | '@babel/runtime': 7.21.5 | 8888 | '@babel/runtime': 7.22.11 |
8526 | jss: 10.10.0 | 8889 | jss: 10.10.0 |
8527 | tiny-warning: 1.0.3 | 8890 | tiny-warning: 1.0.3 |
8528 | dev: false | 8891 | dev: false |
@@ -8530,7 +8893,7 @@ packages: | |||
8530 | /jss-plugin-rule-value-observable@10.10.0: | 8893 | /jss-plugin-rule-value-observable@10.10.0: |
8531 | resolution: {integrity: sha512-ZLMaYrR3QE+vD7nl3oNXuj79VZl9Kp8/u6A1IbTPDcuOu8b56cFdWRZNZ0vNr8jHewooEeq2doy8Oxtymr2ZPA==} | 8894 | resolution: {integrity: sha512-ZLMaYrR3QE+vD7nl3oNXuj79VZl9Kp8/u6A1IbTPDcuOu8b56cFdWRZNZ0vNr8jHewooEeq2doy8Oxtymr2ZPA==} |
8532 | dependencies: | 8895 | dependencies: |
8533 | '@babel/runtime': 7.21.5 | 8896 | '@babel/runtime': 7.22.11 |
8534 | jss: 10.10.0 | 8897 | jss: 10.10.0 |
8535 | symbol-observable: 1.2.0 | 8898 | symbol-observable: 1.2.0 |
8536 | dev: false | 8899 | dev: false |
@@ -8538,7 +8901,7 @@ packages: | |||
8538 | /jss-plugin-template@10.10.0: | 8901 | /jss-plugin-template@10.10.0: |
8539 | resolution: {integrity: sha512-ocXZBIOJOA+jISPdsgkTs8wwpK6UbsvtZK5JI7VUggTD6LWKbtoxUzadd2TpfF+lEtlhUmMsCkTRNkITdPKa6w==} | 8902 | resolution: {integrity: sha512-ocXZBIOJOA+jISPdsgkTs8wwpK6UbsvtZK5JI7VUggTD6LWKbtoxUzadd2TpfF+lEtlhUmMsCkTRNkITdPKa6w==} |
8540 | dependencies: | 8903 | dependencies: |
8541 | '@babel/runtime': 7.21.5 | 8904 | '@babel/runtime': 7.22.11 |
8542 | jss: 10.10.0 | 8905 | jss: 10.10.0 |
8543 | tiny-warning: 1.0.3 | 8906 | tiny-warning: 1.0.3 |
8544 | dev: false | 8907 | dev: false |
@@ -8546,7 +8909,7 @@ packages: | |||
8546 | /jss-plugin-vendor-prefixer@10.10.0: | 8909 | /jss-plugin-vendor-prefixer@10.10.0: |
8547 | resolution: {integrity: sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==} | 8910 | resolution: {integrity: sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==} |
8548 | dependencies: | 8911 | dependencies: |
8549 | '@babel/runtime': 7.21.5 | 8912 | '@babel/runtime': 7.22.11 |
8550 | css-vendor: 2.0.8 | 8913 | css-vendor: 2.0.8 |
8551 | jss: 10.10.0 | 8914 | jss: 10.10.0 |
8552 | dev: false | 8915 | dev: false |
@@ -8554,7 +8917,7 @@ packages: | |||
8554 | /jss-preset-default@10.10.0: | 8917 | /jss-preset-default@10.10.0: |
8555 | resolution: {integrity: sha512-GL175Wt2FGhjE+f+Y3aWh+JioL06/QWFgZp53CbNNq6ZkVU0TDplD8Bxm9KnkotAYn3FlplNqoW5CjyLXcoJ7Q==} | 8918 | resolution: {integrity: sha512-GL175Wt2FGhjE+f+Y3aWh+JioL06/QWFgZp53CbNNq6ZkVU0TDplD8Bxm9KnkotAYn3FlplNqoW5CjyLXcoJ7Q==} |
8556 | dependencies: | 8919 | dependencies: |
8557 | '@babel/runtime': 7.21.5 | 8920 | '@babel/runtime': 7.22.11 |
8558 | jss: 10.10.0 | 8921 | jss: 10.10.0 |
8559 | jss-plugin-camel-case: 10.10.0 | 8922 | jss-plugin-camel-case: 10.10.0 |
8560 | jss-plugin-compose: 10.10.0 | 8923 | jss-plugin-compose: 10.10.0 |
@@ -8772,7 +9135,6 @@ packages: | |||
8772 | 9135 | ||
8773 | /lines-and-columns@1.2.4: | 9136 | /lines-and-columns@1.2.4: |
8774 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} | 9137 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} |
8775 | dev: true | ||
8776 | 9138 | ||
8777 | /livereload-js@2.4.0: | 9139 | /livereload-js@2.4.0: |
8778 | resolution: {integrity: sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==} | 9140 | resolution: {integrity: sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==} |
@@ -9026,6 +9388,7 @@ packages: | |||
9026 | /make-fetch-happen@9.1.0: | 9388 | /make-fetch-happen@9.1.0: |
9027 | resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} | 9389 | resolution: {integrity: sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==} |
9028 | engines: {node: '>= 10'} | 9390 | engines: {node: '>= 10'} |
9391 | requiresBuild: true | ||
9029 | dependencies: | 9392 | dependencies: |
9030 | agentkeepalive: 4.2.1 | 9393 | agentkeepalive: 4.2.1 |
9031 | cacache: 15.3.0 | 9394 | cacache: 15.3.0 |
@@ -9100,6 +9463,7 @@ packages: | |||
9100 | /matcher@3.0.0: | 9463 | /matcher@3.0.0: |
9101 | resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} | 9464 | resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} |
9102 | engines: {node: '>=10'} | 9465 | engines: {node: '>=10'} |
9466 | requiresBuild: true | ||
9103 | dependencies: | 9467 | dependencies: |
9104 | escape-string-regexp: 4.0.0 | 9468 | escape-string-regexp: 4.0.0 |
9105 | optional: true | 9469 | optional: true |
@@ -9278,6 +9642,7 @@ packages: | |||
9278 | /minipass-fetch@1.4.1: | 9642 | /minipass-fetch@1.4.1: |
9279 | resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} | 9643 | resolution: {integrity: sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==} |
9280 | engines: {node: '>=8'} | 9644 | engines: {node: '>=8'} |
9645 | requiresBuild: true | ||
9281 | dependencies: | 9646 | dependencies: |
9282 | minipass: 3.3.6 | 9647 | minipass: 3.3.6 |
9283 | minipass-sized: 1.0.3 | 9648 | minipass-sized: 1.0.3 |
@@ -9991,7 +10356,6 @@ packages: | |||
9991 | engines: {node: '>=6'} | 10356 | engines: {node: '>=6'} |
9992 | dependencies: | 10357 | dependencies: |
9993 | callsites: 3.1.0 | 10358 | callsites: 3.1.0 |
9994 | dev: true | ||
9995 | 10359 | ||
9996 | /parse-filepath@1.0.2: | 10360 | /parse-filepath@1.0.2: |
9997 | resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} | 10361 | resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} |
@@ -10010,7 +10374,6 @@ packages: | |||
10010 | error-ex: 1.3.2 | 10374 | error-ex: 1.3.2 |
10011 | json-parse-even-better-errors: 2.3.1 | 10375 | json-parse-even-better-errors: 2.3.1 |
10012 | lines-and-columns: 1.2.4 | 10376 | lines-and-columns: 1.2.4 |
10013 | dev: true | ||
10014 | 10377 | ||
10015 | /parse-node-version@1.0.1: | 10378 | /parse-node-version@1.0.1: |
10016 | resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} | 10379 | resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} |
@@ -10088,7 +10451,6 @@ packages: | |||
10088 | /path-type@4.0.0: | 10451 | /path-type@4.0.0: |
10089 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} | 10452 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} |
10090 | engines: {node: '>=8'} | 10453 | engines: {node: '>=8'} |
10091 | dev: true | ||
10092 | 10454 | ||
10093 | /pause-stream@0.0.11: | 10455 | /pause-stream@0.0.11: |
10094 | resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} | 10456 | resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} |
@@ -10288,6 +10650,7 @@ packages: | |||
10288 | 10650 | ||
10289 | /promise-inflight@1.0.1: | 10651 | /promise-inflight@1.0.1: |
10290 | resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} | 10652 | resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} |
10653 | requiresBuild: true | ||
10291 | peerDependencies: | 10654 | peerDependencies: |
10292 | bluebird: '*' | 10655 | bluebird: '*' |
10293 | peerDependenciesMeta: | 10656 | peerDependenciesMeta: |
@@ -10624,6 +10987,31 @@ packages: | |||
10624 | unpipe: 1.0.0 | 10987 | unpipe: 1.0.0 |
10625 | dev: false | 10988 | dev: false |
10626 | 10989 | ||
10990 | /rc-progress@3.5.1(react-dom@18.2.0)(react@18.2.0): | ||
10991 | resolution: {integrity: sha512-V6Amx6SbLRwPin/oD+k1vbPrO8+9Qf8zW1T8A7o83HdNafEVvAxPV5YsgtKFP+Ud5HghLj33zKOcEHrcrUGkfw==} | ||
10992 | peerDependencies: | ||
10993 | react: '>=16.9.0' | ||
10994 | react-dom: '>=16.9.0' | ||
10995 | dependencies: | ||
10996 | '@babel/runtime': 7.21.5 | ||
10997 | classnames: 2.3.2 | ||
10998 | rc-util: 5.37.0(react-dom@18.2.0)(react@18.2.0) | ||
10999 | react: 18.2.0 | ||
11000 | react-dom: 18.2.0(react@18.2.0) | ||
11001 | dev: false | ||
11002 | |||
11003 | /rc-util@5.37.0(react-dom@18.2.0)(react@18.2.0): | ||
11004 | resolution: {integrity: sha512-cPMV8DzaHI1KDaS7XPRXAf4J7mtBqjvjikLpQieaeOO7+cEbqY2j7Kso/T0R0OiEZTNcLS/8Zl9YrlXiO9UbjQ==} | ||
11005 | peerDependencies: | ||
11006 | react: '>=16.9.0' | ||
11007 | react-dom: '>=16.9.0' | ||
11008 | dependencies: | ||
11009 | '@babel/runtime': 7.22.11 | ||
11010 | react: 18.2.0 | ||
11011 | react-dom: 18.2.0(react@18.2.0) | ||
11012 | react-is: 16.13.1 | ||
11013 | dev: false | ||
11014 | |||
10627 | /react-color@2.19.3(react@18.2.0): | 11015 | /react-color@2.19.3(react@18.2.0): |
10628 | resolution: {integrity: sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA==} | 11016 | resolution: {integrity: sha512-LEeGE/ZzNLIsFWa1TMe8y5VYqr7bibneWmvJwm1pCn/eNmrabWDh659JSPn9BuaMpEfU83WTOJfnCcjDZwNQTA==} |
10629 | peerDependencies: | 11017 | peerDependencies: |
@@ -10714,7 +11102,6 @@ packages: | |||
10714 | 11102 | ||
10715 | /react-is@18.2.0: | 11103 | /react-is@18.2.0: |
10716 | resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} | 11104 | resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} |
10717 | dev: true | ||
10718 | 11105 | ||
10719 | /react-jss@10.10.0(react@18.2.0): | 11106 | /react-jss@10.10.0(react@18.2.0): |
10720 | resolution: {integrity: sha512-WLiq84UYWqNBF6579/uprcIUnM1TSywYq6AIjKTTTG5ziJl9Uy+pwuvpN3apuyVwflMbD60PraeTKT7uWH9XEQ==} | 11107 | resolution: {integrity: sha512-WLiq84UYWqNBF6579/uprcIUnM1TSywYq6AIjKTTTG5ziJl9Uy+pwuvpN3apuyVwflMbD60PraeTKT7uWH9XEQ==} |
@@ -10846,7 +11233,7 @@ packages: | |||
10846 | react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 | 11233 | react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 |
10847 | react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 | 11234 | react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 |
10848 | dependencies: | 11235 | dependencies: |
10849 | '@babel/runtime': 7.21.5 | 11236 | '@babel/runtime': 7.22.11 |
10850 | memoize-one: 5.2.1 | 11237 | memoize-one: 5.2.1 |
10851 | react: 18.2.0 | 11238 | react: 18.2.0 |
10852 | react-dom: 18.2.0(react@18.2.0) | 11239 | react-dom: 18.2.0(react@18.2.0) |
@@ -10990,6 +11377,9 @@ packages: | |||
10990 | /regenerator-runtime@0.13.11: | 11377 | /regenerator-runtime@0.13.11: |
10991 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} | 11378 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} |
10992 | 11379 | ||
11380 | /regenerator-runtime@0.14.0: | ||
11381 | resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} | ||
11382 | |||
10993 | /regex-not@1.0.2: | 11383 | /regex-not@1.0.2: |
10994 | resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} | 11384 | resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} |
10995 | engines: {node: '>=0.10.0'} | 11385 | engines: {node: '>=0.10.0'} |
@@ -11143,7 +11533,6 @@ packages: | |||
11143 | /resolve-from@4.0.0: | 11533 | /resolve-from@4.0.0: |
11144 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} | 11534 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} |
11145 | engines: {node: '>=4'} | 11535 | engines: {node: '>=4'} |
11146 | dev: true | ||
11147 | 11536 | ||
11148 | /resolve-from@5.0.0: | 11537 | /resolve-from@5.0.0: |
11149 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} | 11538 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} |
@@ -11171,7 +11560,7 @@ packages: | |||
11171 | resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} | 11560 | resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} |
11172 | hasBin: true | 11561 | hasBin: true |
11173 | dependencies: | 11562 | dependencies: |
11174 | is-core-module: 2.12.1 | 11563 | is-core-module: 2.13.0 |
11175 | path-parse: 1.0.7 | 11564 | path-parse: 1.0.7 |
11176 | supports-preserve-symlinks-flag: 1.0.0 | 11565 | supports-preserve-symlinks-flag: 1.0.0 |
11177 | dev: true | 11566 | dev: true |
@@ -11188,7 +11577,7 @@ packages: | |||
11188 | resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} | 11577 | resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} |
11189 | hasBin: true | 11578 | hasBin: true |
11190 | dependencies: | 11579 | dependencies: |
11191 | is-core-module: 2.12.1 | 11580 | is-core-module: 2.13.0 |
11192 | path-parse: 1.0.7 | 11581 | path-parse: 1.0.7 |
11193 | supports-preserve-symlinks-flag: 1.0.0 | 11582 | supports-preserve-symlinks-flag: 1.0.0 |
11194 | dev: true | 11583 | dev: true |
@@ -11214,6 +11603,7 @@ packages: | |||
11214 | /retry@0.12.0: | 11603 | /retry@0.12.0: |
11215 | resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} | 11604 | resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} |
11216 | engines: {node: '>= 4'} | 11605 | engines: {node: '>= 4'} |
11606 | requiresBuild: true | ||
11217 | 11607 | ||
11218 | /reusify@1.0.4: | 11608 | /reusify@1.0.4: |
11219 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} | 11609 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} |
@@ -11241,6 +11631,7 @@ packages: | |||
11241 | /roarr@2.15.4: | 11631 | /roarr@2.15.4: |
11242 | resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} | 11632 | resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} |
11243 | engines: {node: '>=8.0'} | 11633 | engines: {node: '>=8.0'} |
11634 | requiresBuild: true | ||
11244 | dependencies: | 11635 | dependencies: |
11245 | boolean: 3.2.0 | 11636 | boolean: 3.2.0 |
11246 | detect-node: 2.1.0 | 11637 | detect-node: 2.1.0 |
@@ -11378,6 +11769,7 @@ packages: | |||
11378 | 11769 | ||
11379 | /semver-compare@1.0.0: | 11770 | /semver-compare@1.0.0: |
11380 | resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} | 11771 | resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} |
11772 | requiresBuild: true | ||
11381 | optional: true | 11773 | optional: true |
11382 | 11774 | ||
11383 | /semver@5.5.1: | 11775 | /semver@5.5.1: |
@@ -11460,6 +11852,7 @@ packages: | |||
11460 | /serialize-error@7.0.1: | 11852 | /serialize-error@7.0.1: |
11461 | resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} | 11853 | resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} |
11462 | engines: {node: '>=10'} | 11854 | engines: {node: '>=10'} |
11855 | requiresBuild: true | ||
11463 | dependencies: | 11856 | dependencies: |
11464 | type-fest: 0.13.1 | 11857 | type-fest: 0.13.1 |
11465 | optional: true | 11858 | optional: true |
@@ -11652,6 +12045,7 @@ packages: | |||
11652 | /smart-buffer@4.2.0: | 12045 | /smart-buffer@4.2.0: |
11653 | resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} | 12046 | resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} |
11654 | engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} | 12047 | engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} |
12048 | requiresBuild: true | ||
11655 | 12049 | ||
11656 | /snapdragon-node@2.1.1: | 12050 | /snapdragon-node@2.1.1: |
11657 | resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} | 12051 | resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} |
@@ -11688,6 +12082,7 @@ packages: | |||
11688 | /socks-proxy-agent@6.2.1: | 12082 | /socks-proxy-agent@6.2.1: |
11689 | resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} | 12083 | resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} |
11690 | engines: {node: '>= 10'} | 12084 | engines: {node: '>= 10'} |
12085 | requiresBuild: true | ||
11691 | dependencies: | 12086 | dependencies: |
11692 | agent-base: 6.0.2 | 12087 | agent-base: 6.0.2 |
11693 | debug: 4.3.4 | 12088 | debug: 4.3.4 |
@@ -11829,6 +12224,7 @@ packages: | |||
11829 | 12224 | ||
11830 | /sprintf-js@1.1.2: | 12225 | /sprintf-js@1.1.2: |
11831 | resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==} | 12226 | resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==} |
12227 | requiresBuild: true | ||
11832 | optional: true | 12228 | optional: true |
11833 | 12229 | ||
11834 | /sqlite3@5.1.6: | 12230 | /sqlite3@5.1.6: |
@@ -11875,6 +12271,7 @@ packages: | |||
11875 | /ssri@8.0.1: | 12271 | /ssri@8.0.1: |
11876 | resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} | 12272 | resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} |
11877 | engines: {node: '>= 8'} | 12273 | engines: {node: '>= 8'} |
12274 | requiresBuild: true | ||
11878 | dependencies: | 12275 | dependencies: |
11879 | minipass: 3.3.6 | 12276 | minipass: 3.3.6 |
11880 | dev: false | 12277 | dev: false |
@@ -12076,6 +12473,10 @@ packages: | |||
12076 | engines: {node: '>=8'} | 12473 | engines: {node: '>=8'} |
12077 | dev: true | 12474 | dev: true |
12078 | 12475 | ||
12476 | /stylis@4.2.0: | ||
12477 | resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} | ||
12478 | dev: false | ||
12479 | |||
12079 | /success-symbol@0.1.0: | 12480 | /success-symbol@0.1.0: |
12080 | resolution: {integrity: sha512-7S6uOTxPklNGxOSbDIg4KlVLBQw1UiGVyfCUYgYxrZUKRblUkmGj7r8xlfQoFudvqLv6Ap5gd76/IIFfI9JG2A==} | 12481 | resolution: {integrity: sha512-7S6uOTxPklNGxOSbDIg4KlVLBQw1UiGVyfCUYgYxrZUKRblUkmGj7r8xlfQoFudvqLv6Ap5gd76/IIFfI9JG2A==} |
12081 | engines: {node: '>=0.10.0'} | 12482 | engines: {node: '>=0.10.0'} |
@@ -12094,7 +12495,6 @@ packages: | |||
12094 | engines: {node: '>=4'} | 12495 | engines: {node: '>=4'} |
12095 | dependencies: | 12496 | dependencies: |
12096 | has-flag: 3.0.0 | 12497 | has-flag: 3.0.0 |
12097 | dev: true | ||
12098 | 12498 | ||
12099 | /supports-color@7.2.0: | 12499 | /supports-color@7.2.0: |
12100 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} | 12500 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} |
@@ -12303,7 +12703,6 @@ packages: | |||
12303 | /to-fast-properties@2.0.0: | 12703 | /to-fast-properties@2.0.0: |
12304 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} | 12704 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} |
12305 | engines: {node: '>=4'} | 12705 | engines: {node: '>=4'} |
12306 | dev: true | ||
12307 | 12706 | ||
12308 | /to-object-path@0.3.0: | 12707 | /to-object-path@0.3.0: |
12309 | resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} | 12708 | resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} |
@@ -12517,6 +12916,7 @@ packages: | |||
12517 | /type-fest@0.13.1: | 12916 | /type-fest@0.13.1: |
12518 | resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} | 12917 | resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} |
12519 | engines: {node: '>=10'} | 12918 | engines: {node: '>=10'} |
12919 | requiresBuild: true | ||
12520 | optional: true | 12920 | optional: true |
12521 | 12921 | ||
12522 | /type-fest@0.18.1: | 12922 | /type-fest@0.18.1: |
@@ -12660,6 +13060,7 @@ packages: | |||
12660 | 13060 | ||
12661 | /unique-filename@1.1.1: | 13061 | /unique-filename@1.1.1: |
12662 | resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} | 13062 | resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} |
13063 | requiresBuild: true | ||
12663 | dependencies: | 13064 | dependencies: |
12664 | unique-slug: 2.0.2 | 13065 | unique-slug: 2.0.2 |
12665 | dev: false | 13066 | dev: false |
@@ -12674,6 +13075,7 @@ packages: | |||
12674 | 13075 | ||
12675 | /unique-slug@2.0.2: | 13076 | /unique-slug@2.0.2: |
12676 | resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} | 13077 | resolution: {integrity: sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==} |
13078 | requiresBuild: true | ||
12677 | dependencies: | 13079 | dependencies: |
12678 | imurmurhash: 0.1.4 | 13080 | imurmurhash: 0.1.4 |
12679 | dev: false | 13081 | dev: false |
@@ -13125,6 +13527,11 @@ packages: | |||
13125 | /yallist@4.0.0: | 13527 | /yallist@4.0.0: |
13126 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} | 13528 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} |
13127 | 13529 | ||
13530 | /yaml@1.10.2: | ||
13531 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} | ||
13532 | engines: {node: '>= 6'} | ||
13533 | dev: false | ||
13534 | |||
13128 | /yamlparser@0.0.2: | 13535 | /yamlparser@0.0.2: |
13129 | resolution: {integrity: sha512-Cou9FCGblEENtn1/8La5wkDM/ISMh2bzu5Wh7dYzCzA0o9jD4YGyLkUJxe84oPBGoB92f+Oy4ZjVhA8S0C2wlQ==} | 13536 | resolution: {integrity: sha512-Cou9FCGblEENtn1/8La5wkDM/ISMh2bzu5Wh7dYzCzA0o9jD4YGyLkUJxe84oPBGoB92f+Oy4ZjVhA8S0C2wlQ==} |
13130 | dev: false | 13537 | dev: false |
diff --git a/src/@types/stores.types.ts b/src/@types/stores.types.ts index dc5da563f..973889802 100644 --- a/src/@types/stores.types.ts +++ b/src/@types/stores.types.ts | |||
@@ -125,6 +125,7 @@ export interface AppStore extends TypedStore { | |||
125 | FAILED: 'FAILED'; | 125 | FAILED: 'FAILED'; |
126 | }; | 126 | }; |
127 | universalDarkMode: boolean; | 127 | universalDarkMode: boolean; |
128 | isDownloading: () => boolean; | ||
128 | cacheSize: () => void; | 129 | cacheSize: () => void; |
129 | debugInfo: () => void; | 130 | debugInfo: () => void; |
130 | enableLongPressServiceHint: boolean; | 131 | enableLongPressServiceHint: boolean; |
diff --git a/src/actions/app.ts b/src/actions/app.ts index 2e60c9327..07cc47078 100644 --- a/src/actions/app.ts +++ b/src/actions/app.ts | |||
@@ -28,4 +28,10 @@ export default <ActionDefinitions>{ | |||
28 | toggleMuteApp: {}, | 28 | toggleMuteApp: {}, |
29 | toggleCollapseMenu: {}, | 29 | toggleCollapseMenu: {}, |
30 | clearAllCache: {}, | 30 | clearAllCache: {}, |
31 | addDownload: {}, | ||
32 | removeDownload: {}, | ||
33 | updateDownload: {}, | ||
34 | endedDownload: {}, | ||
35 | stopDownload: {}, | ||
36 | togglePauseDownload: {}, | ||
31 | }; | 37 | }; |
diff --git a/src/actions/ui.ts b/src/actions/ui.ts index 7d2dbccfa..f496c5c07 100644 --- a/src/actions/ui.ts +++ b/src/actions/ui.ts | |||
@@ -5,6 +5,9 @@ export default <ActionDefinitions>{ | |||
5 | openSettings: { | 5 | openSettings: { |
6 | path: PropTypes.string, | 6 | path: PropTypes.string, |
7 | }, | 7 | }, |
8 | openDownloads: { | ||
9 | path: PropTypes.string, | ||
10 | }, | ||
8 | closeSettings: {}, | 11 | closeSettings: {}, |
9 | toggleServiceUpdatedInfoBar: { | 12 | toggleServiceUpdatedInfoBar: { |
10 | visible: PropTypes.bool, | 13 | visible: PropTypes.bool, |
diff --git a/src/components/downloadManager/DownloadManagerDashboard.tsx b/src/components/downloadManager/DownloadManagerDashboard.tsx new file mode 100644 index 000000000..86facc476 --- /dev/null +++ b/src/components/downloadManager/DownloadManagerDashboard.tsx | |||
@@ -0,0 +1,288 @@ | |||
1 | import { Component } from 'react'; | ||
2 | import { observer } from 'mobx-react'; | ||
3 | import { IntlShape, defineMessages, injectIntl } from 'react-intl'; | ||
4 | import { shell } from 'electron'; | ||
5 | import prettyBytes from 'pretty-bytes'; | ||
6 | import { | ||
7 | Typography, | ||
8 | Card, | ||
9 | CardContent, | ||
10 | LinearProgress, | ||
11 | Box, | ||
12 | IconButton, | ||
13 | ListItemButton, | ||
14 | ListItemIcon, | ||
15 | ListItemText, | ||
16 | } from '@mui/material'; | ||
17 | import { mdiDownload } from '@mdi/js'; | ||
18 | import PlayArrowIcon from '@mui/icons-material/PlayArrow'; | ||
19 | import PauseIcon from '@mui/icons-material/Pause'; | ||
20 | import CancelIcon from '@mui/icons-material/Cancel'; | ||
21 | import FolderIcon from '@mui/icons-material/Folder'; | ||
22 | import DeleteIcon from '@mui/icons-material/Delete'; | ||
23 | import ClearAllIcon from '@mui/icons-material/ClearAll'; | ||
24 | import { round } from 'lodash'; | ||
25 | import { RealStores } from '../../stores'; | ||
26 | import { Actions } from '../../actions/lib/actions'; | ||
27 | import Icon from '../ui/icon'; | ||
28 | |||
29 | const messages = defineMessages({ | ||
30 | headline: { | ||
31 | id: 'downloadManager.headline', | ||
32 | defaultMessage: 'Download Manager', | ||
33 | }, | ||
34 | empty: { | ||
35 | id: 'downloadManager.empty', | ||
36 | defaultMessage: 'Your download list is empty.', | ||
37 | }, | ||
38 | }); | ||
39 | |||
40 | interface IProps { | ||
41 | intl: IntlShape; | ||
42 | stores?: RealStores; | ||
43 | actions?: Actions; | ||
44 | } | ||
45 | |||
46 | interface IState { | ||
47 | data: string; | ||
48 | } | ||
49 | |||
50 | // eslint-disable-next-line react/prefer-stateless-function | ||
51 | class DownloadManagerDashboard extends Component<IProps, IState> { | ||
52 | render() { | ||
53 | const { intl, stores, actions } = this.props; | ||
54 | |||
55 | const downloads = stores?.app.downloads ?? []; | ||
56 | |||
57 | return ( | ||
58 | <div className="settings__main"> | ||
59 | <div className="settings__header"> | ||
60 | <span className="settings__header-item"> | ||
61 | <Box | ||
62 | sx={{ | ||
63 | display: 'flex', | ||
64 | justifyContent: 'center', | ||
65 | alignItems: 'center', | ||
66 | }} | ||
67 | gap={1.5} | ||
68 | > | ||
69 | <Icon icon={mdiDownload} size={1.5} /> | ||
70 | {intl.formatMessage(messages.headline)} | ||
71 | <span className="badge badge--success">beta</span> | ||
72 | </Box> | ||
73 | </span> | ||
74 | </div> | ||
75 | <div className="settings__body"> | ||
76 | {downloads.length === 0 ? ( | ||
77 | <Box | ||
78 | sx={{ | ||
79 | display: 'flex', | ||
80 | flexDirection: 'column', | ||
81 | justifyContent: 'center', | ||
82 | alignItems: 'center', | ||
83 | }} | ||
84 | gap={4} | ||
85 | > | ||
86 | <Icon icon={mdiDownload} size={1.8} /> | ||
87 | <Typography variant="h4"> | ||
88 | {intl.formatMessage(messages.empty)} | ||
89 | </Typography> | ||
90 | </Box> | ||
91 | ) : ( | ||
92 | <Box | ||
93 | sx={{ | ||
94 | display: 'flex', | ||
95 | flexDirection: 'row', | ||
96 | justifyContent: 'flex-end', | ||
97 | height: 'fit-content', | ||
98 | }} | ||
99 | > | ||
100 | <Box | ||
101 | sx={{ | ||
102 | maxWidth: '176px', | ||
103 | }} | ||
104 | > | ||
105 | <ListItemButton | ||
106 | onClick={() => { | ||
107 | actions?.app.removeDownload(null); | ||
108 | }} | ||
109 | > | ||
110 | <ListItemIcon> | ||
111 | <ClearAllIcon /> | ||
112 | </ListItemIcon> | ||
113 | <ListItemText primary="Clear all completed" /> | ||
114 | </ListItemButton> | ||
115 | </Box> | ||
116 | </Box> | ||
117 | )} | ||
118 | {downloads.map(download => { | ||
119 | const { | ||
120 | totalBytes, | ||
121 | receivedBytes, | ||
122 | filename, | ||
123 | url, | ||
124 | savePath, | ||
125 | state, | ||
126 | id, | ||
127 | paused, | ||
128 | } = download; | ||
129 | |||
130 | const downloadPercentage = | ||
131 | receivedBytes !== undefined && totalBytes !== undefined | ||
132 | ? round((receivedBytes / totalBytes) * 100, 2) | ||
133 | : null; | ||
134 | |||
135 | const stateParse = | ||
136 | state === 'progressing' | ||
137 | ? paused === false || paused === undefined | ||
138 | ? null | ||
139 | : 'Paused' | ||
140 | : state === 'cancelled' | ||
141 | ? 'Cancelled' | ||
142 | : state === 'completed' | ||
143 | ? null | ||
144 | : 'Error'; | ||
145 | |||
146 | return ( | ||
147 | <Card | ||
148 | key={id} | ||
149 | style={{ | ||
150 | marginBottom: '16px', | ||
151 | height: 'fit-content', | ||
152 | display: 'flex', | ||
153 | }} | ||
154 | > | ||
155 | <Box | ||
156 | sx={{ display: 'flex', flexDirection: 'column', flexGrow: 1 }} | ||
157 | > | ||
158 | <CardContent> | ||
159 | <Box | ||
160 | sx={{ | ||
161 | display: 'flex', | ||
162 | }} | ||
163 | gap={2} | ||
164 | > | ||
165 | <button | ||
166 | type="button" | ||
167 | disabled={state !== 'completed'} | ||
168 | style={{ | ||
169 | pointerEvents: | ||
170 | state === 'completed' ? undefined : 'none', | ||
171 | }} | ||
172 | onClick={() => { | ||
173 | if (savePath) shell.openPath(savePath); | ||
174 | }} | ||
175 | > | ||
176 | <Typography | ||
177 | variant="h6" | ||
178 | color={state === 'completed' ? 'primary' : undefined} | ||
179 | sx={{ | ||
180 | textDecoration: | ||
181 | stateParse !== null && stateParse !== 'Paused' | ||
182 | ? 'line-through' | ||
183 | : state === 'completed' | ||
184 | ? 'underline' | ||
185 | : null, | ||
186 | }} | ||
187 | > | ||
188 | {filename} | ||
189 | </Typography> | ||
190 | </button> | ||
191 | <Typography | ||
192 | variant="h6" | ||
193 | color={stateParse === 'Paused' ? '#ed6c02' : undefined} | ||
194 | > | ||
195 | {stateParse !== null && stateParse !== 'Paused' | ||
196 | ? stateParse | ||
197 | : stateParse === 'Paused' | ||
198 | ? stateParse | ||
199 | : null} | ||
200 | </Typography> | ||
201 | </Box> | ||
202 | <Typography variant="body2">{url}</Typography> | ||
203 | <LinearProgress | ||
204 | variant="determinate" | ||
205 | value={downloadPercentage || 0} | ||
206 | style={{ marginTop: '8px', marginBottom: '8px' }} | ||
207 | /> | ||
208 | <Typography variant="body2"> | ||
209 | {`${ | ||
210 | downloadPercentage ? `${downloadPercentage}% - ` : '' | ||
211 | }${ | ||
212 | receivedBytes ? `${prettyBytes(receivedBytes)} of ` : '' | ||
213 | }${totalBytes ? prettyBytes(totalBytes) : ''}`} | ||
214 | </Typography> | ||
215 | </CardContent> | ||
216 | </Box> | ||
217 | |||
218 | <Box | ||
219 | sx={{ | ||
220 | display: 'flex', | ||
221 | flexDirection: 'column', | ||
222 | justifyContent: 'center', | ||
223 | alignItems: 'center', | ||
224 | padding: '8px', | ||
225 | }} | ||
226 | > | ||
227 | {state !== 'completed' && state !== 'cancelled' && ( | ||
228 | <IconButton | ||
229 | color="error" | ||
230 | size="small" | ||
231 | onClick={() => { | ||
232 | actions?.app.stopDownload(id); | ||
233 | }} | ||
234 | > | ||
235 | <CancelIcon /> | ||
236 | </IconButton> | ||
237 | )} | ||
238 | {state === 'progressing' && ( | ||
239 | <IconButton | ||
240 | color={ | ||
241 | paused === false || paused === undefined | ||
242 | ? 'warning' | ||
243 | : 'success' | ||
244 | } | ||
245 | size="small" | ||
246 | onClick={() => { | ||
247 | actions?.app.togglePauseDownload(id); | ||
248 | }} | ||
249 | > | ||
250 | {(paused === false || paused === undefined) && ( | ||
251 | <PauseIcon /> | ||
252 | )} | ||
253 | {paused && <PlayArrowIcon />} | ||
254 | </IconButton> | ||
255 | )} | ||
256 | {(state === 'cancelled' || state === 'completed') && ( | ||
257 | <IconButton | ||
258 | color="error" | ||
259 | onClick={() => { | ||
260 | actions?.app.removeDownload(id); | ||
261 | }} | ||
262 | size="small" | ||
263 | > | ||
264 | <DeleteIcon /> | ||
265 | </IconButton> | ||
266 | )} | ||
267 | {state !== 'cancelled' && ( | ||
268 | <IconButton | ||
269 | color="primary" | ||
270 | onClick={() => { | ||
271 | if (savePath) shell.showItemInFolder(savePath); | ||
272 | }} | ||
273 | size="small" | ||
274 | > | ||
275 | <FolderIcon /> | ||
276 | </IconButton> | ||
277 | )} | ||
278 | </Box> | ||
279 | </Card> | ||
280 | ); | ||
281 | })} | ||
282 | </div> | ||
283 | </div> | ||
284 | ); | ||
285 | } | ||
286 | } | ||
287 | |||
288 | export default injectIntl(observer(DownloadManagerDashboard)); | ||
diff --git a/src/components/downloadManager/DownloadManagerLayout.tsx b/src/components/downloadManager/DownloadManagerLayout.tsx new file mode 100644 index 000000000..1e018cfb8 --- /dev/null +++ b/src/components/downloadManager/DownloadManagerLayout.tsx | |||
@@ -0,0 +1,81 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import { inject, observer } from 'mobx-react'; | ||
3 | import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; | ||
4 | |||
5 | import { mdiClose } from '@mdi/js'; | ||
6 | import { Outlet } from 'react-router-dom'; | ||
7 | import { Actions } from '../../actions/lib/actions'; | ||
8 | import { isEscKeyPress } from '../../jsUtils'; | ||
9 | import Appear from '../ui/effects/Appear'; | ||
10 | import ErrorBoundary from '../util/ErrorBoundary'; | ||
11 | import Icon from '../ui/icon'; | ||
12 | |||
13 | const messages = defineMessages({ | ||
14 | closeSettings: { | ||
15 | id: 'settings.app.closeSettings', | ||
16 | defaultMessage: 'Close settings', | ||
17 | }, | ||
18 | }); | ||
19 | |||
20 | interface IProps extends WrappedComponentProps { | ||
21 | actions?: Actions; | ||
22 | // eslint-disable-next-line react/no-unused-prop-types | ||
23 | children?: React.ReactNode; | ||
24 | } | ||
25 | |||
26 | @inject('stores', 'actions') | ||
27 | @observer | ||
28 | class DownloadManagerLayout extends Component<IProps> { | ||
29 | componentDidMount() { | ||
30 | document.addEventListener('keydown', this.handleKeyDown.bind(this), false); | ||
31 | } | ||
32 | |||
33 | componentWillUnmount() { | ||
34 | document.removeEventListener( | ||
35 | 'keydown', | ||
36 | // eslint-disable-next-line unicorn/no-invalid-remove-event-listener | ||
37 | this.handleKeyDown.bind(this), | ||
38 | false, | ||
39 | ); | ||
40 | } | ||
41 | |||
42 | handleKeyDown(e) { | ||
43 | if (isEscKeyPress(e.keyCode)) { | ||
44 | this.props.actions!.ui.closeSettings(); | ||
45 | } | ||
46 | } | ||
47 | |||
48 | render() { | ||
49 | const { closeSettings } = this.props.actions!.ui; | ||
50 | |||
51 | const { intl } = this.props; | ||
52 | |||
53 | return ( | ||
54 | <Appear transitionName="fadeIn-fast"> | ||
55 | <div className="settings-wrapper"> | ||
56 | <ErrorBoundary> | ||
57 | <button | ||
58 | type="button" | ||
59 | className="settings-wrapper__action" | ||
60 | onClick={closeSettings} | ||
61 | aria-label={intl.formatMessage(messages.closeSettings)} | ||
62 | /> | ||
63 | <div className="settings franz-form"> | ||
64 | <Outlet /> | ||
65 | <button | ||
66 | type="button" | ||
67 | className="settings__close" | ||
68 | onClick={closeSettings} | ||
69 | aria-label={intl.formatMessage(messages.closeSettings)} | ||
70 | > | ||
71 | <Icon icon={mdiClose} size={1.35} /> | ||
72 | </button> | ||
73 | </div> | ||
74 | </ErrorBoundary> | ||
75 | </div> | ||
76 | </Appear> | ||
77 | ); | ||
78 | } | ||
79 | } | ||
80 | |||
81 | export default injectIntl<'intl', IProps>(DownloadManagerLayout); | ||
diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx index 6fd911a24..7904d7653 100644 --- a/src/components/layout/Sidebar.tsx +++ b/src/components/layout/Sidebar.tsx | |||
@@ -14,11 +14,12 @@ import { | |||
14 | mdiPlusBox, | 14 | mdiPlusBox, |
15 | mdiViewGrid, | 15 | mdiViewGrid, |
16 | mdiViewSplitVertical, | 16 | mdiViewSplitVertical, |
17 | mdiDownload, | ||
17 | } from '@mdi/js'; | 18 | } from '@mdi/js'; |
18 | |||
19 | import Tabbar from '../services/tabs/Tabbar'; | 19 | import Tabbar from '../services/tabs/Tabbar'; |
20 | import { | 20 | import { |
21 | addNewServiceShortcutKey, | 21 | addNewServiceShortcutKey, |
22 | downloadsShortcutKey, | ||
22 | lockFerdiumShortcutKey, | 23 | lockFerdiumShortcutKey, |
23 | muteFerdiumShortcutKey, | 24 | muteFerdiumShortcutKey, |
24 | settingsShortcutKey, | 25 | settingsShortcutKey, |
@@ -91,6 +92,7 @@ interface IProps extends WrappedComponentProps { | |||
91 | toggleCollapseMenu: () => void; | 92 | toggleCollapseMenu: () => void; |
92 | toggleWorkspaceDrawer: () => void; | 93 | toggleWorkspaceDrawer: () => void; |
93 | openSettings: (args: { path: string }) => void; | 94 | openSettings: (args: { path: string }) => void; |
95 | openDownloads: (args: { path: string }) => void; | ||
94 | // eslint-disable-next-line react/no-unused-prop-types | 96 | // eslint-disable-next-line react/no-unused-prop-types |
95 | closeSettings: () => void; | 97 | closeSettings: () => void; |
96 | setActive: (args: { serviceId: string }) => void; | 98 | setActive: (args: { serviceId: string }) => void; |
@@ -141,6 +143,7 @@ class Sidebar extends Component<IProps, IState> { | |||
141 | render() { | 143 | render() { |
142 | const { | 144 | const { |
143 | openSettings, | 145 | openSettings, |
146 | openDownloads, | ||
144 | toggleMuteApp, | 147 | toggleMuteApp, |
145 | toggleCollapseMenu, | 148 | toggleCollapseMenu, |
146 | isAppMuted, | 149 | isAppMuted, |
@@ -156,6 +159,7 @@ class Sidebar extends Component<IProps, IState> { | |||
156 | hideWorkspacesButton, | 159 | hideWorkspacesButton, |
157 | hideNotificationsButton, | 160 | hideNotificationsButton, |
158 | hideSettingsButton, | 161 | hideSettingsButton, |
162 | hideDownloadButton, | ||
159 | hideSplitModeButton, | 163 | hideSplitModeButton, |
160 | useHorizontalStyle, | 164 | useHorizontalStyle, |
161 | splitMode, | 165 | splitMode, |
@@ -180,6 +184,8 @@ class Sidebar extends Component<IProps, IState> { | |||
180 | 184 | ||
181 | const { isMenuCollapsed } = stores!.settings.all.app; | 185 | const { isMenuCollapsed } = stores!.settings.all.app; |
182 | 186 | ||
187 | const { isDownloading, justFinishedDownloading } = stores!.app; | ||
188 | |||
183 | return ( | 189 | return ( |
184 | <div className="sidebar"> | 190 | <div className="sidebar"> |
185 | <Tabbar | 191 | <Tabbar |
@@ -340,6 +346,25 @@ class Sidebar extends Component<IProps, IState> { | |||
340 | style={{ height: 'auto', overflowY: 'unset' }} | 346 | style={{ height: 'auto', overflowY: 'unset' }} |
341 | /> | 347 | /> |
342 | )} | 348 | )} |
349 | |||
350 | {!hideDownloadButton && !isMenuCollapsed ? ( | ||
351 | <button | ||
352 | type="button" | ||
353 | onClick={() => openDownloads({ path: '/downloadmanager' })} | ||
354 | className={ | ||
355 | 'sidebar__button' + | ||
356 | `${isDownloading ? ' sidebar__button--downloading' : ''}` + | ||
357 | `${justFinishedDownloading ? ' sidebar__button--done' : ''}` | ||
358 | } | ||
359 | data-tooltip-id="tooltip-sidebar-button" | ||
360 | data-tooltip-content={`${intl.formatMessage( | ||
361 | globalMessages.downloads, | ||
362 | )} (${downloadsShortcutKey(false)})`} | ||
363 | > | ||
364 | <Icon icon={mdiDownload} size={1.8} /> | ||
365 | </button> | ||
366 | ) : null} | ||
367 | |||
343 | {!hideSettingsButton && !isMenuCollapsed ? ( | 368 | {!hideSettingsButton && !isMenuCollapsed ? ( |
344 | <button | 369 | <button |
345 | type="button" | 370 | type="button" |
diff --git a/src/components/settings/settings/EditSettingsForm.tsx b/src/components/settings/settings/EditSettingsForm.tsx index 0b5d4374d..210c8d9e9 100644 --- a/src/components/settings/settings/EditSettingsForm.tsx +++ b/src/components/settings/settings/EditSettingsForm.tsx | |||
@@ -794,6 +794,8 @@ class EditSettingsForm extends Component<IProps, IState> { | |||
794 | 794 | ||
795 | <Toggle {...form.$('hideSettingsButton').bind()} /> | 795 | <Toggle {...form.$('hideSettingsButton').bind()} /> |
796 | 796 | ||
797 | <Toggle {...form.$('hideDownloadButton').bind()} /> | ||
798 | |||
797 | <Toggle {...form.$('alwaysShowWorkspaces').bind()} /> | 799 | <Toggle {...form.$('alwaysShowWorkspaces').bind()} /> |
798 | </div> | 800 | </div> |
799 | )} | 801 | )} |
diff --git a/src/config.ts b/src/config.ts index 21a7462b9..d8b028104 100644 --- a/src/config.ts +++ b/src/config.ts | |||
@@ -424,6 +424,7 @@ export const DEFAULT_APP_SETTINGS = { | |||
424 | hideWorkspacesButton: false, | 424 | hideWorkspacesButton: false, |
425 | hideNotificationsButton: false, | 425 | hideNotificationsButton: false, |
426 | hideSettingsButton: false, | 426 | hideSettingsButton: false, |
427 | hideDownloadButton: false, | ||
427 | alwaysShowWorkspaces: false, | 428 | alwaysShowWorkspaces: false, |
428 | liftSingleInstanceLock: false, | 429 | liftSingleInstanceLock: false, |
429 | enableLongPressServiceHint: false, | 430 | enableLongPressServiceHint: false, |
diff --git a/src/containers/download-manager/DownloadManagerScreen.tsx b/src/containers/download-manager/DownloadManagerScreen.tsx new file mode 100644 index 000000000..5d395a180 --- /dev/null +++ b/src/containers/download-manager/DownloadManagerScreen.tsx | |||
@@ -0,0 +1,15 @@ | |||
1 | import { Component, ReactElement } from 'react'; | ||
2 | import ErrorBoundary from '../../components/util/ErrorBoundary'; | ||
3 | import DownloadManager from '../../components/downloadManager/DownloadManagerDashboard'; | ||
4 | |||
5 | class DownloadManagerScreen extends Component { | ||
6 | render(): ReactElement { | ||
7 | return ( | ||
8 | <ErrorBoundary> | ||
9 | <DownloadManager {...this.props} /> | ||
10 | </ErrorBoundary> | ||
11 | ); | ||
12 | } | ||
13 | } | ||
14 | |||
15 | export default DownloadManagerScreen; | ||
diff --git a/src/containers/download-manager/DownloadManagerWindow.tsx b/src/containers/download-manager/DownloadManagerWindow.tsx new file mode 100644 index 000000000..e13e51774 --- /dev/null +++ b/src/containers/download-manager/DownloadManagerWindow.tsx | |||
@@ -0,0 +1,46 @@ | |||
1 | import { inject, observer } from 'mobx-react'; | ||
2 | import { Component, ReactPortal } from 'react'; | ||
3 | import ReactDOM from 'react-dom'; | ||
4 | import { Outlet } from 'react-router-dom'; | ||
5 | |||
6 | import { StoresProps } from '../../@types/ferdium-components.types'; | ||
7 | import Layout from '../../components/downloadManager/DownloadManagerLayout'; | ||
8 | import ErrorBoundary from '../../components/util/ErrorBoundary'; | ||
9 | |||
10 | interface IProps {} | ||
11 | |||
12 | @inject('stores', 'actions') | ||
13 | @observer | ||
14 | class DownloadManagerContainer extends Component<IProps> { | ||
15 | portalRoot: any; | ||
16 | |||
17 | el: HTMLDivElement; | ||
18 | |||
19 | constructor(props: StoresProps) { | ||
20 | super(props); | ||
21 | |||
22 | this.portalRoot = document.querySelector('#portalContainer'); | ||
23 | this.el = document.createElement('div'); | ||
24 | } | ||
25 | |||
26 | componentDidMount(): void { | ||
27 | this.portalRoot.append(this.el); | ||
28 | } | ||
29 | |||
30 | componentWillUnmount(): void { | ||
31 | this.el.remove(); | ||
32 | } | ||
33 | |||
34 | render(): ReactPortal { | ||
35 | return ReactDOM.createPortal( | ||
36 | <ErrorBoundary> | ||
37 | <Layout> | ||
38 | <Outlet /> | ||
39 | </Layout> | ||
40 | </ErrorBoundary>, | ||
41 | this.el, | ||
42 | ); | ||
43 | } | ||
44 | } | ||
45 | |||
46 | export default DownloadManagerContainer; | ||
diff --git a/src/containers/layout/AppLayoutContainer.tsx b/src/containers/layout/AppLayoutContainer.tsx index e30c0e067..8748f1032 100644 --- a/src/containers/layout/AppLayoutContainer.tsx +++ b/src/containers/layout/AppLayoutContainer.tsx | |||
@@ -52,7 +52,8 @@ class AppLayoutContainer extends Component<IProps> { | |||
52 | const { installUpdate, toggleMuteApp, toggleCollapseMenu } = | 52 | const { installUpdate, toggleMuteApp, toggleCollapseMenu } = |
53 | this.props.actions.app; | 53 | this.props.actions.app; |
54 | 54 | ||
55 | const { openSettings, closeSettings } = this.props.actions.ui; | 55 | const { openSettings, closeSettings, openDownloads } = |
56 | this.props.actions.ui; | ||
56 | 57 | ||
57 | const isLoadingFeatures = | 58 | const isLoadingFeatures = |
58 | features.featuresRequest.isExecuting && | 59 | features.featuresRequest.isExecuting && |
@@ -89,6 +90,7 @@ class AppLayoutContainer extends Component<IProps> { | |||
89 | isAppMuted={settings.all.app.isAppMuted} | 90 | isAppMuted={settings.all.app.isAppMuted} |
90 | isMenuCollapsed={settings.all.app.isMenuCollapsed} | 91 | isMenuCollapsed={settings.all.app.isMenuCollapsed} |
91 | openSettings={openSettings} | 92 | openSettings={openSettings} |
93 | openDownloads={openDownloads} | ||
92 | closeSettings={closeSettings} | 94 | closeSettings={closeSettings} |
93 | reorder={reorder} | 95 | reorder={reorder} |
94 | reload={reload} | 96 | reload={reload} |
diff --git a/src/containers/settings/EditSettingsScreen.tsx b/src/containers/settings/EditSettingsScreen.tsx index b9732ead0..8190bef3e 100644 --- a/src/containers/settings/EditSettingsScreen.tsx +++ b/src/containers/settings/EditSettingsScreen.tsx | |||
@@ -255,6 +255,10 @@ const messages = defineMessages({ | |||
255 | id: 'settings.app.form.hideSettingsButton', | 255 | id: 'settings.app.form.hideSettingsButton', |
256 | defaultMessage: 'Hide Settings button', | 256 | defaultMessage: 'Hide Settings button', |
257 | }, | 257 | }, |
258 | hideDownloadButton: { | ||
259 | id: 'settings.app.form.hideDownloadButton', | ||
260 | defaultMessage: 'Hide Downloads button', | ||
261 | }, | ||
258 | alwaysShowWorkspaces: { | 262 | alwaysShowWorkspaces: { |
259 | id: 'settings.app.form.alwaysShowWorkspaces', | 263 | id: 'settings.app.form.alwaysShowWorkspaces', |
260 | defaultMessage: 'Always show workspace drawer', | 264 | defaultMessage: 'Always show workspace drawer', |
@@ -425,6 +429,7 @@ class EditSettingsScreen extends Component< | |||
425 | hideWorkspacesButton: Boolean(settingsData.hideWorkspacesButton), | 429 | hideWorkspacesButton: Boolean(settingsData.hideWorkspacesButton), |
426 | hideNotificationsButton: Boolean(settingsData.hideNotificationsButton), | 430 | hideNotificationsButton: Boolean(settingsData.hideNotificationsButton), |
427 | hideSettingsButton: Boolean(settingsData.hideSettingsButton), | 431 | hideSettingsButton: Boolean(settingsData.hideSettingsButton), |
432 | hideDownloadButton: Boolean(settingsData.hideDownloadButton), | ||
428 | alwaysShowWorkspaces: Boolean(settingsData.alwaysShowWorkspaces), | 433 | alwaysShowWorkspaces: Boolean(settingsData.alwaysShowWorkspaces), |
429 | accentColor: settingsData.accentColor, | 434 | accentColor: settingsData.accentColor, |
430 | progressbarAccentColor: settingsData.progressbarAccentColor, | 435 | progressbarAccentColor: settingsData.progressbarAccentColor, |
@@ -1081,6 +1086,15 @@ class EditSettingsScreen extends Component< | |||
1081 | default: DEFAULT_APP_SETTINGS.hideSettingsButton, | 1086 | default: DEFAULT_APP_SETTINGS.hideSettingsButton, |
1082 | type: 'checkbox', | 1087 | type: 'checkbox', |
1083 | }, | 1088 | }, |
1089 | hideDownloadButton: { | ||
1090 | label: intl.formatMessage(messages.hideDownloadButton), | ||
1091 | value: ifUndefined<boolean>( | ||
1092 | settings.all.app.hideDownloadButton, | ||
1093 | DEFAULT_APP_SETTINGS.hideDownloadButton, | ||
1094 | ), | ||
1095 | default: DEFAULT_APP_SETTINGS.hideDownloadButton, | ||
1096 | type: 'checkbox', | ||
1097 | }, | ||
1084 | alwaysShowWorkspaces: { | 1098 | alwaysShowWorkspaces: { |
1085 | label: intl.formatMessage(messages.alwaysShowWorkspaces), | 1099 | label: intl.formatMessage(messages.alwaysShowWorkspaces), |
1086 | value: ifUndefined<boolean>( | 1100 | value: ifUndefined<boolean>( |
diff --git a/src/environment.ts b/src/environment.ts index c3b9e7e58..87e2f4f66 100644 --- a/src/environment.ts +++ b/src/environment.ts | |||
@@ -42,5 +42,7 @@ export const splitModeToggleShortcutKey = (isAccelerator = true) => | |||
42 | `${cmdOrCtrlShortcutKey(isAccelerator)}+${altKey(isAccelerator)}+S`; | 42 | `${cmdOrCtrlShortcutKey(isAccelerator)}+${altKey(isAccelerator)}+S`; |
43 | export const settingsShortcutKey = (isAccelerator = true) => | 43 | export const settingsShortcutKey = (isAccelerator = true) => |
44 | `${cmdOrCtrlShortcutKey(isAccelerator)}+${isMac ? ',' : 'P'}`; | 44 | `${cmdOrCtrlShortcutKey(isAccelerator)}+${isMac ? ',' : 'P'}`; |
45 | export const downloadsShortcutKey = (isAccelerator = true) => | ||
46 | `${cmdOrCtrlShortcutKey(isAccelerator)}+J`; | ||
45 | export const toggleFullScreenKey = () => | 47 | export const toggleFullScreenKey = () => |
46 | isMac ? `CTRL + ${cmdKey} + F` : 'F11'; | 48 | isMac ? `CTRL + ${cmdKey} + F` : 'F11'; |
diff --git a/src/i18n/globalMessages.ts b/src/i18n/globalMessages.ts index 9f55da57a..1c5e6a4ba 100644 --- a/src/i18n/globalMessages.ts +++ b/src/i18n/globalMessages.ts | |||
@@ -66,6 +66,10 @@ export default defineMessages({ | |||
66 | id: 'global.quitConfirmation', | 66 | id: 'global.quitConfirmation', |
67 | defaultMessage: 'Do you really want to quit Ferdium?', | 67 | defaultMessage: 'Do you really want to quit Ferdium?', |
68 | }, | 68 | }, |
69 | downloads: { | ||
70 | id: 'global.downloads', | ||
71 | defaultMessage: 'Downloads', | ||
72 | }, | ||
69 | settings: { | 73 | settings: { |
70 | id: 'global.settings', | 74 | id: 'global.settings', |
71 | defaultMessage: 'Settings', | 75 | defaultMessage: 'Settings', |
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 82c0f1b02..da6d825b6 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json | |||
@@ -9,6 +9,8 @@ | |||
9 | "connectionLostBanner.cta": "Reload Service", | 9 | "connectionLostBanner.cta": "Reload Service", |
10 | "connectionLostBanner.informationLink": "What happened?", | 10 | "connectionLostBanner.informationLink": "What happened?", |
11 | "connectionLostBanner.message": "Oh no! Ferdium lost the connection to {name}.", | 11 | "connectionLostBanner.message": "Oh no! Ferdium lost the connection to {name}.", |
12 | "downloadManager.empty": "Your download list is empty.", | ||
13 | "downloadManager.headline": "Download Manager", | ||
12 | "feature.basicAuth.signIn": "Sign In", | 14 | "feature.basicAuth.signIn": "Sign In", |
13 | "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.", | 15 | "feature.publishDebugInfo.error": "There was an error while trying to publish the debug information. Please try again later or view the console for more information.", |
14 | "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdium. By publishing your debug information you accept Ferdium Debugger's privacy policy and terms of service", | 16 | "feature.publishDebugInfo.info": "Publishing your debug information helps us find issues and errors in Ferdium. By publishing your debug information you accept Ferdium Debugger's privacy policy and terms of service", |
@@ -23,6 +25,7 @@ | |||
23 | "global.api.unhealthy": "Can't connect to {serverNameParse} online services", | 25 | "global.api.unhealthy": "Can't connect to {serverNameParse} online services", |
24 | "global.cancel": "Cancel", | 26 | "global.cancel": "Cancel", |
25 | "global.clearCache": "Clear cache", | 27 | "global.clearCache": "Clear cache", |
28 | "global.downloads": "Downloads", | ||
26 | "global.edit": "Edit", | 29 | "global.edit": "Edit", |
27 | "global.no": "No", | 30 | "global.no": "No", |
28 | "global.notConnectedToTheInternet": "You are not connected to the internet.", | 31 | "global.notConnectedToTheInternet": "You are not connected to the internet.", |
@@ -219,6 +222,7 @@ | |||
219 | "settings.app.form.hibernateOnStartup": "Keep services in hibernation on startup", | 222 | "settings.app.form.hibernateOnStartup": "Keep services in hibernation on startup", |
220 | "settings.app.form.hibernationStrategy": "Hibernation strategy", | 223 | "settings.app.form.hibernationStrategy": "Hibernation strategy", |
221 | "settings.app.form.hideCollapseButton": "Hide Collapse button", | 224 | "settings.app.form.hideCollapseButton": "Hide Collapse button", |
225 | "settings.app.form.hideDownloadButton": "Hide Downloads button", | ||
222 | "settings.app.form.hideNotificationsButton": "Hide Notifications & Sound button", | 226 | "settings.app.form.hideNotificationsButton": "Hide Notifications & Sound button", |
223 | "settings.app.form.hideRecipesButton": "Hide Recipes button", | 227 | "settings.app.form.hideRecipesButton": "Hide Recipes button", |
224 | "settings.app.form.hideSettingsButton": "Hide Settings button", | 228 | "settings.app.form.hideSettingsButton": "Hide Settings button", |
diff --git a/src/index.ts b/src/index.ts index cbc10bdbe..5accc4570 100644 --- a/src/index.ts +++ b/src/index.ts | |||
@@ -674,6 +674,16 @@ ipcMain.on('window.toolbar-double-clicked', () => { | |||
674 | } | 674 | } |
675 | }); | 675 | }); |
676 | 676 | ||
677 | ipcMain.on('stop-download', (_e, data) => { | ||
678 | debug(`stopping download from main process ${data}`); | ||
679 | mainWindow?.webContents.send('stop-download', data); | ||
680 | }); | ||
681 | |||
682 | ipcMain.on('toggle-pause-download', (_e, data) => { | ||
683 | debug(`stopping download from main process ${data}`); | ||
684 | mainWindow?.webContents.send('toggle-pause-download', data); | ||
685 | }); | ||
686 | |||
677 | // Quit when all windows are closed. | 687 | // Quit when all windows are closed. |
678 | app.on('window-all-closed', () => { | 688 | app.on('window-all-closed', () => { |
679 | // On OS X it is common for applications and their menu bar | 689 | // On OS X it is common for applications and their menu bar |
diff --git a/src/lib/Menu.ts b/src/lib/Menu.ts index a90fd8bea..8ad4441d2 100644 --- a/src/lib/Menu.ts +++ b/src/lib/Menu.ts | |||
@@ -32,6 +32,7 @@ import { | |||
32 | nodeVersion, | 32 | nodeVersion, |
33 | osArch, | 33 | osArch, |
34 | toggleFullScreenKey, | 34 | toggleFullScreenKey, |
35 | downloadsShortcutKey, | ||
35 | } from '../environment'; | 36 | } from '../environment'; |
36 | import { CUSTOM_WEBSITE_RECIPE_ID, LIVE_API_FERDIUM_WEBSITE } from '../config'; | 37 | import { CUSTOM_WEBSITE_RECIPE_ID, LIVE_API_FERDIUM_WEBSITE } from '../config'; |
37 | import { ferdiumVersion } from '../environment-remote'; | 38 | import { ferdiumVersion } from '../environment-remote'; |
@@ -875,6 +876,15 @@ class FranzMenu implements StoresProps { | |||
875 | type: 'separator', | 876 | type: 'separator', |
876 | }, | 877 | }, |
877 | { | 878 | { |
879 | label: intl.formatMessage(globalMessages.downloads), | ||
880 | accelerator: `${downloadsShortcutKey()}`, | ||
881 | click: () => { | ||
882 | this.actions.ui.openDownloads({ path: '/downloadmanager' }); | ||
883 | }, | ||
884 | enabled: this.stores.user.isLoggedIn, | ||
885 | visible: !locked, | ||
886 | }, | ||
887 | { | ||
878 | label: intl.formatMessage(globalMessages.settings), | 888 | label: intl.formatMessage(globalMessages.settings), |
879 | accelerator: `${settingsShortcutKey()}`, | 889 | accelerator: `${settingsShortcutKey()}`, |
880 | click: () => { | 890 | click: () => { |
@@ -991,6 +1001,15 @@ class FranzMenu implements StoresProps { | |||
991 | } else { | 1001 | } else { |
992 | tpl[0].submenu = [ | 1002 | tpl[0].submenu = [ |
993 | { | 1003 | { |
1004 | label: intl.formatMessage(globalMessages.downloads), | ||
1005 | accelerator: `${downloadsShortcutKey()}`, | ||
1006 | click: () => { | ||
1007 | this.actions.ui.openDownloads({ path: '/downloadmanager' }); | ||
1008 | }, | ||
1009 | enabled: this.stores.user.isLoggedIn, | ||
1010 | visible: !locked, | ||
1011 | }, | ||
1012 | { | ||
994 | label: intl.formatMessage(globalMessages.settings), | 1013 | label: intl.formatMessage(globalMessages.settings), |
995 | accelerator: `${settingsShortcutKey()}`, | 1014 | accelerator: `${settingsShortcutKey()}`, |
996 | click: () => { | 1015 | click: () => { |
diff --git a/src/models/Service.ts b/src/models/Service.ts index 265b3e13c..b1f0bc271 100644 --- a/src/models/Service.ts +++ b/src/models/Service.ts | |||
@@ -1,9 +1,10 @@ | |||
1 | import { join } from 'node:path'; | 1 | import { join, basename } from 'node:path'; |
2 | import { autorun, action, computed, makeObservable, observable } from 'mobx'; | 2 | import { autorun, action, computed, makeObservable, observable } from 'mobx'; |
3 | import { ipcRenderer } from 'electron'; | 3 | import { ipcRenderer } from 'electron'; |
4 | import { webContents } from '@electron/remote'; | 4 | import { webContents } from '@electron/remote'; |
5 | import ElectronWebView from 'react-electron-web-view'; | 5 | import ElectronWebView from 'react-electron-web-view'; |
6 | 6 | ||
7 | import { v4 as uuidV4 } from 'uuid'; | ||
7 | import { todosStore } from '../features/todos'; | 8 | import { todosStore } from '../features/todos'; |
8 | import { isValidExternalURL, normalizedUrl } from '../helpers/url-helpers'; | 9 | import { isValidExternalURL, normalizedUrl } from '../helpers/url-helpers'; |
9 | import UserAgent from './UserAgent'; | 10 | import UserAgent from './UserAgent'; |
@@ -523,6 +524,84 @@ export default class Service { | |||
523 | }); | 524 | }); |
524 | 525 | ||
525 | if (webviewWebContents) { | 526 | if (webviewWebContents) { |
527 | webviewWebContents.session.on('will-download', (event, item) => { | ||
528 | event.preventDefault(); | ||
529 | |||
530 | const downloadId = uuidV4(); | ||
531 | |||
532 | window['ferdium'].actions.app.addDownload({ | ||
533 | id: downloadId, | ||
534 | serviceId: this.id, | ||
535 | filename: item.getFilename(), | ||
536 | url: item.getURL(), | ||
537 | savePath: item.getSavePath(), | ||
538 | }); | ||
539 | |||
540 | item.addListener('updated', (event, state) => { | ||
541 | if (state === 'interrupted') { | ||
542 | debug('Download is interrupted but can be resumed'); | ||
543 | } else if (state === 'progressing') { | ||
544 | if (item.isPaused()) { | ||
545 | debug('Download is paused'); | ||
546 | } else { | ||
547 | debug(`Received bytes: ${item.getReceivedBytes()}`); | ||
548 | } | ||
549 | } | ||
550 | window['ferdium'].actions.app.updateDownload({ | ||
551 | id: downloadId, | ||
552 | serviceId: this.id, | ||
553 | filename: basename(item.getSavePath()), | ||
554 | url: item.getURL(), | ||
555 | savePath: item.getSavePath(), | ||
556 | receivedBytes: item.getReceivedBytes(), | ||
557 | totalBytes: item.getTotalBytes(), | ||
558 | state, | ||
559 | }); | ||
560 | debug('download updated', event, state); | ||
561 | }); | ||
562 | item.addListener('done', (event, state) => { | ||
563 | debug('download done', event, state); | ||
564 | if (state === 'completed') { | ||
565 | debug('Download successfully'); | ||
566 | } else { | ||
567 | if (state === 'cancelled' && item.getSavePath() === '') { | ||
568 | window['ferdium'].actions.app.removeDownload(downloadId); | ||
569 | debug('Download is cancelled'); | ||
570 | } | ||
571 | debug(`Download failed: ${state}`); | ||
572 | } | ||
573 | |||
574 | window['ferdium'].actions.app.endedDownload({ | ||
575 | id: downloadId, | ||
576 | serviceId: this.id, | ||
577 | receivedBytes: item.getReceivedBytes(), | ||
578 | totalBytes: item.getTotalBytes(), | ||
579 | state, | ||
580 | }); | ||
581 | }); | ||
582 | |||
583 | ipcRenderer.on('toggle-pause-download', (_, data) => { | ||
584 | debug('toggle-pause-download', item.isPaused(), item.getState()); | ||
585 | if (data.downloadId === downloadId || data.downloadId === undefined) { | ||
586 | if (item.isPaused()) { | ||
587 | item.resume(); | ||
588 | } else { | ||
589 | item.pause(); | ||
590 | } | ||
591 | } | ||
592 | debug('toggle-pause-download', item.isPaused(), item.getState()); | ||
593 | window['ferdium'].actions.app.updateDownload({ | ||
594 | id: downloadId, | ||
595 | paused: item.isPaused(), | ||
596 | }); | ||
597 | }); | ||
598 | |||
599 | ipcRenderer.on('stop-download', (_, data) => { | ||
600 | if (data === undefined || downloadId === data.downloadId) { | ||
601 | item.cancel(); | ||
602 | } | ||
603 | }); | ||
604 | }); | ||
526 | webviewWebContents.on('login', (event, _, authInfo, callback) => { | 605 | webviewWebContents.on('login', (event, _, authInfo, callback) => { |
527 | // const authCallback = callback; | 606 | // const authCallback = callback; |
528 | debug('browser login event', authInfo); | 607 | debug('browser login event', authInfo); |
diff --git a/src/routes.tsx b/src/routes.tsx index 9f81e46d9..436f25ea4 100644 --- a/src/routes.tsx +++ b/src/routes.tsx | |||
@@ -35,6 +35,8 @@ import { WORKSPACES_ROUTES } from './features/workspaces/constants'; | |||
35 | import { StoresProps } from './@types/ferdium-components.types'; | 35 | import { StoresProps } from './@types/ferdium-components.types'; |
36 | import { Actions } from './actions/lib/actions'; | 36 | import { Actions } from './actions/lib/actions'; |
37 | import { RealStores } from './stores'; | 37 | import { RealStores } from './stores'; |
38 | import DownloadManagerScreen from './containers/download-manager/DownloadManagerScreen'; | ||
39 | import DownloadManagerWindow from './containers/download-manager/DownloadManagerWindow'; | ||
38 | 40 | ||
39 | interface IProps { | 41 | interface IProps { |
40 | history: HashHistory; | 42 | history: HashHistory; |
@@ -116,6 +118,15 @@ class FerdiumRoutes extends Component<IProps> { | |||
116 | /> | 118 | /> |
117 | </Route> | 119 | </Route> |
118 | <Route | 120 | <Route |
121 | path="/downloadmanager" | ||
122 | element={<DownloadManagerWindow {...this.props} />} | ||
123 | > | ||
124 | <Route | ||
125 | path="/downloadmanager" | ||
126 | element={<DownloadManagerScreen {...this.props} />} | ||
127 | /> | ||
128 | </Route> | ||
129 | <Route | ||
119 | path="/settings" | 130 | path="/settings" |
120 | element={<SettingsWindow {...this.props} />} | 131 | element={<SettingsWindow {...this.props} />} |
121 | > | 132 | > |
diff --git a/src/stores/AppStore.ts b/src/stores/AppStore.ts index b317d99fc..1c1336819 100644 --- a/src/stores/AppStore.ts +++ b/src/stores/AppStore.ts | |||
@@ -61,6 +61,22 @@ const CATALINA_NOTIFICATION_HACK_KEY = | |||
61 | 61 | ||
62 | const locales = generatedTranslations(); | 62 | const locales = generatedTranslations(); |
63 | 63 | ||
64 | interface Download { | ||
65 | id: string; | ||
66 | serviceId: string; | ||
67 | filename: string; | ||
68 | url: string; | ||
69 | savePath?: string; | ||
70 | state?: 'progressing' | 'interrupted' | 'completed' | 'cancelled'; | ||
71 | paused?: boolean; | ||
72 | canResume?: boolean; | ||
73 | progress?: number; | ||
74 | totalBytes?: number; | ||
75 | receivedBytes?: number; | ||
76 | startTime?: number; | ||
77 | endTime?: number; | ||
78 | } | ||
79 | |||
64 | export default class AppStore extends TypedStore { | 80 | export default class AppStore extends TypedStore { |
65 | updateStatusTypes = { | 81 | updateStatusTypes = { |
66 | CHECKING: 'CHECKING', | 82 | CHECKING: 'CHECKING', |
@@ -114,6 +130,10 @@ export default class AppStore extends TypedStore { | |||
114 | 130 | ||
115 | fetchDataInterval: null | NodeJS.Timer = null; | 131 | fetchDataInterval: null | NodeJS.Timer = null; |
116 | 132 | ||
133 | @observable downloads: Download[] = []; | ||
134 | |||
135 | @observable justFinishedDownloading: boolean = false; | ||
136 | |||
117 | constructor(stores: Stores, api: ApiInterface, actions: Actions) { | 137 | constructor(stores: Stores, api: ApiInterface, actions: Actions) { |
118 | super(stores, api, actions); | 138 | super(stores, api, actions); |
119 | 139 | ||
@@ -136,6 +156,14 @@ export default class AppStore extends TypedStore { | |||
136 | this._toggleCollapseMenu.bind(this), | 156 | this._toggleCollapseMenu.bind(this), |
137 | ); | 157 | ); |
138 | this.actions.app.clearAllCache.listen(this._clearAllCache.bind(this)); | 158 | this.actions.app.clearAllCache.listen(this._clearAllCache.bind(this)); |
159 | this.actions.app.addDownload.listen(this._addDownload.bind(this)); | ||
160 | this.actions.app.removeDownload.listen(this._removeDownload.bind(this)); | ||
161 | this.actions.app.updateDownload.listen(this._updateDownload.bind(this)); | ||
162 | this.actions.app.endedDownload.listen(this._endedDownload.bind(this)); | ||
163 | this.actions.app.stopDownload.listen(this._stopDownload.bind(this)); | ||
164 | this.actions.app.togglePauseDownload.listen( | ||
165 | this._togglePauseDownload.bind(this), | ||
166 | ); | ||
139 | 167 | ||
140 | this.registerReactions([ | 168 | this.registerReactions([ |
141 | this._offlineCheck.bind(this), | 169 | this._offlineCheck.bind(this), |
@@ -300,6 +328,10 @@ export default class AppStore extends TypedStore { | |||
300 | return this.getAppCacheSizeRequest.execute().result; | 328 | return this.getAppCacheSizeRequest.execute().result; |
301 | } | 329 | } |
302 | 330 | ||
331 | @computed get isDownloading() { | ||
332 | return this.downloads.some(download => download.state === 'progressing'); | ||
333 | } | ||
334 | |||
303 | @computed get debugInfo() { | 335 | @computed get debugInfo() { |
304 | const settings = cleanseJSObject(this.stores.settings.app); | 336 | const settings = cleanseJSObject(this.stores.settings.app); |
305 | settings.lockedPassword = '******'; | 337 | settings.lockedPassword = '******'; |
@@ -518,6 +550,78 @@ export default class AppStore extends TypedStore { | |||
518 | this.locale = value; | 550 | this.locale = value; |
519 | } | 551 | } |
520 | 552 | ||
553 | @action _addDownload(download: Download) { | ||
554 | this.downloads.unshift(download); | ||
555 | debug('Download added', this.downloads); | ||
556 | } | ||
557 | |||
558 | @action _removeDownload(id: string | null) { | ||
559 | debug(`Removed download ${id}`); | ||
560 | if (id === null) { | ||
561 | const indexesToRemove: number[] = []; | ||
562 | this.downloads.map(item => { | ||
563 | if (!item.state) return; | ||
564 | if (item.state === 'completed' || item.state === 'cancelled') { | ||
565 | indexesToRemove.push(this.downloads.indexOf(item)); | ||
566 | } | ||
567 | }); | ||
568 | |||
569 | if (indexesToRemove.length === 0) return; | ||
570 | |||
571 | this.downloads = this.downloads.filter( | ||
572 | (_, index) => !indexesToRemove.includes(index), | ||
573 | ); | ||
574 | |||
575 | debug('Removed all completed downloads'); | ||
576 | return; | ||
577 | } | ||
578 | |||
579 | const index = this.downloads.findIndex(item => item.id === id); | ||
580 | if (index !== -1) { | ||
581 | this.downloads.splice(index, 1); | ||
582 | } | ||
583 | |||
584 | debug(`Removed download ${id}`); | ||
585 | } | ||
586 | |||
587 | @action _updateDownload(download: Download) { | ||
588 | const index = this.downloads.findIndex(item => item.id === download.id); | ||
589 | if (index !== -1) { | ||
590 | this.downloads[index] = { ...this.downloads[index], ...download }; | ||
591 | } | ||
592 | |||
593 | debug('Download updated', this.downloads[index]); | ||
594 | } | ||
595 | |||
596 | @action _endedDownload(download: Download) { | ||
597 | const index = this.downloads.findIndex(item => item.id === download.id); | ||
598 | if (index !== -1) { | ||
599 | this.downloads[index] = { ...this.downloads[index], ...download }; | ||
600 | } | ||
601 | |||
602 | debug('Download ended', this.downloads[index]); | ||
603 | |||
604 | if (!this.isDownloading && download.state === 'completed') { | ||
605 | this.justFinishedDownloading = true; | ||
606 | |||
607 | setTimeout(() => { | ||
608 | this.justFinishedDownloading = false; | ||
609 | }, ms('2s')); | ||
610 | } | ||
611 | } | ||
612 | |||
613 | @action _stopDownload(downloadId: string | undefined) { | ||
614 | ipcRenderer.send('stop-download', { | ||
615 | downloadId, | ||
616 | }); | ||
617 | } | ||
618 | |||
619 | @action _togglePauseDownload(downloadId: string | undefined) { | ||
620 | ipcRenderer.send('toggle-pause-download', { | ||
621 | downloadId, | ||
622 | }); | ||
623 | } | ||
624 | |||
521 | _setLocale() { | 625 | _setLocale() { |
522 | if (this.stores.user?.isLoggedIn && this.stores.user?.data.locale) { | 626 | if (this.stores.user?.isLoggedIn && this.stores.user?.data.locale) { |
523 | this._changeLocale(this.stores.user.data.locale); | 627 | this._changeLocale(this.stores.user.data.locale); |
diff --git a/src/stores/UIStore.ts b/src/stores/UIStore.ts index 4ed45fc3b..a3330c2e6 100644 --- a/src/stores/UIStore.ts +++ b/src/stores/UIStore.ts | |||
@@ -18,6 +18,7 @@ export default class UIStore extends TypedStore { | |||
18 | makeObservable(this); | 18 | makeObservable(this); |
19 | 19 | ||
20 | // Register action handlers | 20 | // Register action handlers |
21 | this.actions.ui.openDownloads.listen(this._openDownloads.bind(this)); | ||
21 | this.actions.ui.openSettings.listen(this._openSettings.bind(this)); | 22 | this.actions.ui.openSettings.listen(this._openSettings.bind(this)); |
22 | this.actions.ui.closeSettings.listen(this._closeSettings.bind(this)); | 23 | this.actions.ui.closeSettings.listen(this._closeSettings.bind(this)); |
23 | this.actions.ui.toggleServiceUpdatedInfoBar.listen( | 24 | this.actions.ui.toggleServiceUpdatedInfoBar.listen( |
@@ -97,6 +98,12 @@ export default class UIStore extends TypedStore { | |||
97 | } | 98 | } |
98 | 99 | ||
99 | // Actions | 100 | // Actions |
101 | @action _openDownloads({ path = '/downloadmanager' }): void { | ||
102 | const downloadsPath = | ||
103 | path === '/downloadmanager' ? path : `/downloadmanager/${path}`; | ||
104 | this.stores.router.push(downloadsPath); | ||
105 | } | ||
106 | |||
100 | @action _openSettings({ path = '/settings' }): void { | 107 | @action _openSettings({ path = '/settings' }): void { |
101 | const settingsPath = path === '/settings' ? path : `/settings/${path}`; | 108 | const settingsPath = path === '/settings' ? path : `/settings/${path}`; |
102 | this.stores.router.push(settingsPath); | 109 | this.stores.router.push(settingsPath); |
diff --git a/src/styles/layout.scss b/src/styles/layout.scss index 173ca3184..591f7c54b 100644 --- a/src/styles/layout.scss +++ b/src/styles/layout.scss | |||
@@ -204,6 +204,27 @@ body.win32:not(.isFullScreen) .app .app__content { | |||
204 | } | 204 | } |
205 | } | 205 | } |
206 | 206 | ||
207 | @keyframes isDownloadingFade { | ||
208 | 50% { | ||
209 | color: $theme-brand-primary; | ||
210 | } | ||
211 | } | ||
212 | |||
213 | @keyframes isDownloadingDoneFade { | ||
214 | 50% { | ||
215 | color: green; | ||
216 | } | ||
217 | } | ||
218 | |||
219 | .sidebar__button--downloading { | ||
220 | animation: isDownloadingFade 1s cubic-bezier(0.755, 0.05, 0.855, 0.06) | ||
221 | infinite; | ||
222 | } | ||
223 | |||
224 | .sidebar__button--done { | ||
225 | animation: isDownloadingDoneFade 0.2s linear infinite; | ||
226 | } | ||
227 | |||
207 | .grid .grid__row { | 228 | .grid .grid__row { |
208 | display: flex; | 229 | display: flex; |
209 | flex-direction: row; | 230 | flex-direction: row; |