From c9748af04f9ee258ecde9da960f82c7d5fe9ca9c Mon Sep 17 00:00:00 2001 From: Henry Whitaker Date: Mon, 15 Nov 2021 22:00:35 +0000 Subject: [PATCH] Remove all react things --- package-lock.json | 1303 +---------------- package.json | 13 +- resources/js/app.js | 15 - resources/js/bootstrap.js | 41 - .../Authentication/Authentication.js | 70 - .../Authentication/ResetPassword.js | 111 -- .../Authentication/SessionsTable.js | 67 - resources/js/components/Data/Backup.js | 42 - resources/js/components/Data/Changelog.js | 140 -- resources/js/components/Data/DataRow.js | 37 - resources/js/components/Data/Restore.js | 209 --- resources/js/components/ErrorPage.js | 89 -- resources/js/components/Example.js | 23 - .../js/components/Graphics/HistoryGraph.js | 392 ----- .../js/components/Graphics/LatestResults.js | 164 --- resources/js/components/Graphics/TableRow.js | 162 -- .../js/components/Graphics/TestsTable.js | 189 --- resources/js/components/Graphics/Widget.js | 150 -- resources/js/components/Home/Footer.js | 24 - resources/js/components/Home/HomePage.js | 84 -- resources/js/components/Home/Version.js | 152 -- resources/js/components/Loader.js | 54 - resources/js/components/Login.js | 97 -- resources/js/components/Navbar.js | 81 - .../js/components/Settings/SettingsIndex.js | 320 ---- .../js/components/Settings/SettingsInput.js | 202 --- .../js/components/Settings/SettingsTabs.js | 192 --- .../Settings/tabs/BackupSettings.js | 26 - .../Settings/tabs/GeneralSettings.js | 46 - .../Settings/tabs/GraphsSettings.js | 48 - .../Settings/tabs/HealthchecksSettings.js | 48 - .../Settings/tabs/InfluxDBSettings.js | 50 - .../Settings/tabs/NotificationsSettings.js | 46 - .../components/Settings/tabs/ResetSettings.js | 48 - .../components/Settings/tabs/TableSettings.js | 123 -- resources/js/components/SpeedtestsPage.js | 29 - resources/js/index.js | 125 -- 37 files changed, 11 insertions(+), 5001 deletions(-) delete mode 100644 resources/js/app.js delete mode 100644 resources/js/bootstrap.js delete mode 100644 resources/js/components/Authentication/Authentication.js delete mode 100644 resources/js/components/Authentication/ResetPassword.js delete mode 100644 resources/js/components/Authentication/SessionsTable.js delete mode 100644 resources/js/components/Data/Backup.js delete mode 100644 resources/js/components/Data/Changelog.js delete mode 100644 resources/js/components/Data/DataRow.js delete mode 100644 resources/js/components/Data/Restore.js delete mode 100644 resources/js/components/ErrorPage.js delete mode 100644 resources/js/components/Example.js delete mode 100644 resources/js/components/Graphics/HistoryGraph.js delete mode 100644 resources/js/components/Graphics/LatestResults.js delete mode 100644 resources/js/components/Graphics/TableRow.js delete mode 100644 resources/js/components/Graphics/TestsTable.js delete mode 100644 resources/js/components/Graphics/Widget.js delete mode 100644 resources/js/components/Home/Footer.js delete mode 100644 resources/js/components/Home/HomePage.js delete mode 100644 resources/js/components/Home/Version.js delete mode 100644 resources/js/components/Loader.js delete mode 100644 resources/js/components/Login.js delete mode 100644 resources/js/components/Navbar.js delete mode 100644 resources/js/components/Settings/SettingsIndex.js delete mode 100644 resources/js/components/Settings/SettingsInput.js delete mode 100644 resources/js/components/Settings/SettingsTabs.js delete mode 100644 resources/js/components/Settings/tabs/BackupSettings.js delete mode 100644 resources/js/components/Settings/tabs/GeneralSettings.js delete mode 100644 resources/js/components/Settings/tabs/GraphsSettings.js delete mode 100644 resources/js/components/Settings/tabs/HealthchecksSettings.js delete mode 100644 resources/js/components/Settings/tabs/InfluxDBSettings.js delete mode 100644 resources/js/components/Settings/tabs/NotificationsSettings.js delete mode 100644 resources/js/components/Settings/tabs/ResetSettings.js delete mode 100644 resources/js/components/Settings/tabs/TableSettings.js delete mode 100644 resources/js/components/SpeedtestsPage.js delete mode 100644 resources/js/index.js diff --git a/package-lock.json b/package-lock.json index f35db760..3102464c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,25 +8,14 @@ "@babel/plugin-proposal-class-properties": "^7.13.0", "chart.js": "^2.9.4", "csv-file-validator": "^1.10.1", - "js-cookie": "^2.2.1", - "react-beautiful-dnd": "^13.1.0", - "react-bootstrap": "^1.5.1", - "react-chartjs-2": "^2.11.1", - "react-router": "^5.2.0", - "react-router-dom": "^5.2.0", - "react-toastify": "^7.0.3" + "js-cookie": "^2.2.1" }, "devDependencies": { - "@babel/preset-react": "^7.12.13", "axios": "^0.21", - "bootstrap": "^4.6.0", "cross-env": "^7.0", - "jquery": "^3.5", "laravel-mix": "^5.0.9", "lodash": "^4.17.21", "popper.js": "^1.12", - "react": "^17.0.1", - "react-dom": "^17.0.1", "resolve-url-loader": "^3.1.2", "sass": "^1.32.8", "sass-loader": "^10.1.1" @@ -686,21 +675,6 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", - "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "node_modules/@babel/plugin-syntax-jsx/node_modules/@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true - }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -994,94 +968,6 @@ "@babel/helper-plugin-utils": "^7.10.4" } }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz", - "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "node_modules/@babel/plugin-transform-react-display-name/node_modules/@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.13.tgz", - "integrity": "sha512-hhXZMYR8t9RvduN2uW4sjl6MRtUhzNE726JvoJhpjhxKgRUVkZqTsA0xc49ALZxQM7H26pZ/lLvB2Yrea9dllA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.12.tgz", - "integrity": "sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg==", - "dev": true, - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.12.12" - } - }, - "node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.13" - } - }, - "node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true - }, - "node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "node_modules/@babel/plugin-transform-react-jsx/node_modules/@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz", - "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.12.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", @@ -1288,29 +1174,11 @@ "esutils": "^2.0.2" } }, - "node_modules/@babel/preset-react": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.13.tgz", - "integrity": "sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-transform-react-display-name": "^7.12.13", - "@babel/plugin-transform-react-jsx": "^7.12.13", - "@babel/plugin-transform-react-jsx-development": "^7.12.12", - "@babel/plugin-transform-react-pure-annotations": "^7.12.1" - } - }, - "node_modules/@babel/preset-react/node_modules/@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true - }, "node_modules/@babel/runtime": { "version": "7.13.10", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "dev": true, "dependencies": { "regenerator-runtime": "^0.13.4" } @@ -1376,30 +1244,6 @@ "node": ">= 6" } }, - "node_modules/@popperjs/core": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.0.tgz", - "integrity": "sha512-wjtKehFAIARq2OxK8j3JrggNlEslJfNuSm2ArteIbKyRMts2g0a7KzTxfRVNUM+O0gnBJ2hNV8nWPOYBgI1sew==" - }, - "node_modules/@restart/context": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", - "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==" - }, - "node_modules/@restart/hooks": { - "version": "0.3.26", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.26.tgz", - "integrity": "sha512-7Hwk2ZMYm+JLWcb7R9qIXk1OoUg1Z+saKWqZXlrvFwT3w6UArVNWgxYOzf+PJoK9zZejp8okPAKTctthhXLt5g==", - "dependencies": { - "lodash": "^4.17.20", - "lodash-es": "^4.17.20" - } - }, - "node_modules/@types/classnames": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.11.tgz", - "integrity": "sha512-2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw==" - }, "node_modules/@types/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", @@ -1410,20 +1254,6 @@ "@types/node": "*" } }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/invariant": { - "version": "2.2.34", - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.34.tgz", - "integrity": "sha512-lYUtmJ9BqUN688fGY1U1HZoWT1/Jrmgigx2loq4ZcJpICECm/Om3V314BxdzypO0u5PORKGMM6x0OXaljV1YFg==" - }, "node_modules/@types/json-schema": { "version": "7.0.5", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", @@ -1442,55 +1272,12 @@ "integrity": "sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw==", "dev": true }, - "node_modules/@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" - }, "node_modules/@types/q": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", "dev": true }, - "node_modules/@types/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.2.tgz", - "integrity": "sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA==", - "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-redux": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.16.tgz", - "integrity": "sha512-f/FKzIrZwZk7YEO9E1yoxIuDNRiDducxkFlkw/GNMGEnK9n4K8wJzlJBghpSuOVDgEUHoDkDF7Gi9lHNQR4siw==", - "dependencies": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, - "node_modules/@types/react-transition-group": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.1.tgz", - "integrity": "sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ==", - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/react/node_modules/csstype": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz", - "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==" - }, - "node_modules/@types/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=" - }, "node_modules/@vue/component-compiler-utils": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz", @@ -2366,12 +2153,6 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, - "node_modules/bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", - "dev": true - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2851,11 +2632,6 @@ "node": ">=0.10.0" } }, - "node_modules/classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, "node_modules/clean-css": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", @@ -2932,14 +2708,6 @@ "node": ">=6" } }, - "node_modules/clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", - "engines": { - "node": ">=6" - } - }, "node_modules/coa": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", @@ -3373,14 +3141,6 @@ "urix": "^0.1.0" } }, - "node_modules/css-box-model": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", - "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", - "dependencies": { - "tiny-invariant": "^1.0.6" - } - }, "node_modules/css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", @@ -3670,11 +3430,6 @@ "node": ">=0.10.0" } }, - "node_modules/csstype": { - "version": "2.6.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz", - "integrity": "sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==" - }, "node_modules/csv-file-validator": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/csv-file-validator/-/csv-file-validator-1.10.1.tgz", @@ -3981,15 +3736,6 @@ "buffer-indexof": "^1.0.0" } }, - "node_modules/dom-helpers": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.4.tgz", - "integrity": "sha512-TjMyeVUvNEnOnhzs6uAn9Ya47GmMo3qq7m+Lr/3ON0Rs5kHvb8I+SQYjLUSYn7qhEm0QjW0yrBkvz9yOrwwz1A==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^2.6.7" - } - }, "node_modules/dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -6267,19 +6013,6 @@ "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", "dev": true }, - "node_modules/history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "dependencies": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -6291,14 +6024,6 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, "node_modules/homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -6692,14 +6417,6 @@ "node": ">= 0.10" } }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -7140,12 +6857,6 @@ "node": ">=8" } }, - "node_modules/jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==", - "dev": true - }, "node_modules/js-cookie": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", @@ -7371,11 +7082,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -7397,17 +7103,6 @@ "node": ">= 0.6.0" } }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, "node_modules/lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", @@ -7500,11 +7195,6 @@ "node": ">= 0.6" } }, - "node_modules/memoize-one": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", - "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==" - }, "node_modules/memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -7639,15 +7329,6 @@ "node": ">= 0.6" } }, - "node_modules/mini-create-react-context": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz", - "integrity": "sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "tiny-warning": "^1.0.3" - } - }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -8028,6 +7709,7 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -9403,25 +9085,6 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, - "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/prop-types-extra": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", - "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", - "dependencies": { - "react-is": "^16.3.2", - "warning": "^4.0.0" - } - }, "node_modules/proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", @@ -9550,11 +9213,6 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, - "node_modules/raf-schd": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.2.tgz", - "integrity": "sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ==" - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -9607,246 +9265,6 @@ "node": ">= 0.8" } }, - "node_modules/react": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", - "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-beautiful-dnd": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.0.tgz", - "integrity": "sha512-aGvblPZTJowOWUNiwd6tNfEpgkX5OxmpqxHKNW/4VmvZTNTbeiq7bA3bn5T+QSF2uibXB0D1DmJsb1aC/+3cUA==", - "dependencies": { - "@babel/runtime": "^7.9.2", - "css-box-model": "^1.2.0", - "memoize-one": "^5.1.1", - "raf-schd": "^4.0.2", - "react-redux": "^7.2.0", - "redux": "^4.0.4", - "use-memo-one": "^1.1.1" - }, - "peerDependencies": { - "react": "^16.8.5 || ^17.0.0", - "react-dom": "^16.8.5 || ^17.0.0" - } - }, - "node_modules/react-bootstrap": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.5.1.tgz", - "integrity": "sha512-jbJNGx9n4JvKgxlvT8DLKSeF3VcqnPJXS9LFdzoZusiZCCGoYecZ9qSCBH5n2A+kjmuura9JkvxI9l7HD+bIdQ==", - "dependencies": { - "@babel/runtime": "^7.4.2", - "@restart/context": "^2.1.4", - "@restart/hooks": "^0.3.21", - "@types/classnames": "^2.2.10", - "@types/invariant": "^2.2.33", - "@types/prop-types": "^15.7.3", - "@types/react": ">=16.9.35", - "@types/react-transition-group": "^4.4.0", - "@types/warning": "^3.0.0", - "classnames": "^2.2.6", - "dom-helpers": "^5.1.2", - "invariant": "^2.2.4", - "prop-types": "^15.7.2", - "prop-types-extra": "^1.1.0", - "react-overlays": "^5.0.0", - "react-transition-group": "^4.4.1", - "uncontrollable": "^7.0.0", - "warning": "^4.0.3" - } - }, - "node_modules/react-chartjs-2": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-2.11.1.tgz", - "integrity": "sha512-G7cNq/n2Bkh/v4vcI+GKx7Q1xwZexKYhOSj2HmrFXlvNeaURWXun6KlOUpEQwi1cv9Tgs4H3kGywDWMrX2kxfA==", - "dependencies": { - "lodash": "^4.17.19", - "prop-types": "^15.7.2" - } - }, - "node_modules/react-dom": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz", - "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.1" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "node_modules/react-overlays": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.0.0.tgz", - "integrity": "sha512-TKbqfAv23TFtCJ2lzISdx76p97G/DP8Rp4TOFdqM9n8GTruVYgE3jX7Zgb8+w7YJ18slTVcDTQ1/tFzdCqjVhA==", - "dependencies": { - "@babel/runtime": "^7.12.1", - "@popperjs/core": "^2.5.3", - "@restart/hooks": "^0.3.25", - "@types/warning": "^3.0.0", - "dom-helpers": "^5.2.0", - "prop-types": "^15.7.2", - "uncontrollable": "^7.0.0", - "warning": "^4.0.3" - } - }, - "node_modules/react-overlays/node_modules/csstype": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz", - "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==" - }, - "node_modules/react-overlays/node_modules/dom-helpers": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", - "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "node_modules/react-redux": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.3.tgz", - "integrity": "sha512-ZhAmQ1lrK+Pyi0ZXNMUZuYxYAZd59wFuVDGUt536kSGdD0ya9Q7BfsE95E3TsFLE3kOSFp5m6G5qbatE+Ic1+w==", - "dependencies": { - "@babel/runtime": "^7.12.1", - "@types/react-redux": "^7.1.16", - "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^16.13.1" - }, - "peerDependencies": { - "react": "^16.8.3 || ^17", - "redux": "^2.0.0 || ^3.0.0 || ^4.0.0-0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/react-router": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", - "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", - "dependencies": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "node_modules/react-router-dom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", - "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", - "dependencies": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.2.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "node_modules/react-router-dom/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/react-router-dom/node_modules/mini-create-react-context": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz", - "integrity": "sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "tiny-warning": "^1.0.3" - } - }, - "node_modules/react-router-dom/node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/react-router-dom/node_modules/react-router": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", - "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", - "dependencies": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - }, - "node_modules/react-router/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/react-router/node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/react-toastify": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-7.0.3.tgz", - "integrity": "sha512-cxZ5rfurC8LzcZQMTYc8RHIkQTs+BFur18Pzk6Loz6uS8OXUWm6nXVlH/wqglz4Z7UAE8xxcF5mRjfE13487uQ==", - "dependencies": { - "clsx": "^1.1.1" - } - }, - "node_modules/react-transition-group": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", - "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", - "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -9891,15 +9309,6 @@ "node": ">= 0.8" } }, - "node_modules/redux": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", - "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", - "dependencies": { - "loose-envify": "^1.4.0", - "symbol-observable": "^1.2.0" - } - }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -9921,7 +9330,8 @@ "node_modules/regenerator-runtime": { "version": "0.13.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true }, "node_modules/regenerator-transform": { "version": "0.14.5", @@ -10129,11 +9539,6 @@ "node": ">=4" } }, - "node_modules/resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -10445,15 +9850,6 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, - "node_modules/scheduler": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz", - "integrity": "sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, "node_modules/schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", @@ -11375,14 +10771,6 @@ "node": ">=4.0.0" } }, - "node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", @@ -11597,16 +10985,6 @@ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "dev": true }, - "node_modules/tiny-invariant": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", - "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" - }, - "node_modules/tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, "node_modules/to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -11750,17 +11128,6 @@ "node": ">=0.10.0" } }, - "node_modules/uncontrollable": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", - "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", - "dependencies": { - "@babel/runtime": "^7.6.3", - "@types/react": ">=16.9.11", - "invariant": "^2.2.4", - "react-lifecycles-compat": "^3.0.4" - } - }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -11993,14 +11360,6 @@ "node": ">=0.10.0" } }, - "node_modules/use-memo-one": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.2.tgz", - "integrity": "sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0" - } - }, "node_modules/util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -12058,11 +11417,6 @@ "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, - "node_modules/value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -12119,14 +11473,6 @@ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "dev": true }, - "node_modules/warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "dependencies": { - "loose-envify": "^1.0.0" - } - }, "node_modules/watchpack": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", @@ -13785,23 +13131,6 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, - "@babel/plugin-syntax-jsx": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", - "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true - } - } - }, "@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -14095,98 +13424,6 @@ "@babel/helper-plugin-utils": "^7.10.4" } }, - "@babel/plugin-transform-react-display-name": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz", - "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true - } - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.13.tgz", - "integrity": "sha512-hhXZMYR8t9RvduN2uW4sjl6MRtUhzNE726JvoJhpjhxKgRUVkZqTsA0xc49ALZxQM7H26pZ/lLvB2Yrea9dllA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.12.13", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/types": "^7.12.13" - }, - "dependencies": { - "@babel/helper-annotate-as-pure": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", - "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", - "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.13" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/types": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", - "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.12.tgz", - "integrity": "sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg==", - "dev": true, - "requires": { - "@babel/plugin-transform-react-jsx": "^7.12.12" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz", - "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, "@babel/plugin-transform-regenerator": { "version": "7.12.1", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", @@ -14395,31 +13632,11 @@ "esutils": "^2.0.2" } }, - "@babel/preset-react": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.13.tgz", - "integrity": "sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13", - "@babel/plugin-transform-react-display-name": "^7.12.13", - "@babel/plugin-transform-react-jsx": "^7.12.13", - "@babel/plugin-transform-react-jsx-development": "^7.12.12", - "@babel/plugin-transform-react-pure-annotations": "^7.12.1" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true - } - } - }, "@babel/runtime": { "version": "7.13.10", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } @@ -14479,30 +13696,6 @@ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, - "@popperjs/core": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.9.0.tgz", - "integrity": "sha512-wjtKehFAIARq2OxK8j3JrggNlEslJfNuSm2ArteIbKyRMts2g0a7KzTxfRVNUM+O0gnBJ2hNV8nWPOYBgI1sew==" - }, - "@restart/context": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz", - "integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==" - }, - "@restart/hooks": { - "version": "0.3.26", - "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.26.tgz", - "integrity": "sha512-7Hwk2ZMYm+JLWcb7R9qIXk1OoUg1Z+saKWqZXlrvFwT3w6UArVNWgxYOzf+PJoK9zZejp8okPAKTctthhXLt5g==", - "requires": { - "lodash": "^4.17.20", - "lodash-es": "^4.17.20" - } - }, - "@types/classnames": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.11.tgz", - "integrity": "sha512-2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw==" - }, "@types/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", @@ -14513,20 +13706,6 @@ "@types/node": "*" } }, - "@types/hoist-non-react-statics": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", - "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", - "requires": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "@types/invariant": { - "version": "2.2.34", - "resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.34.tgz", - "integrity": "sha512-lYUtmJ9BqUN688fGY1U1HZoWT1/Jrmgigx2loq4ZcJpICECm/Om3V314BxdzypO0u5PORKGMM6x0OXaljV1YFg==" - }, "@types/json-schema": { "version": "7.0.5", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", @@ -14545,57 +13724,12 @@ "integrity": "sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw==", "dev": true }, - "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" - }, "@types/q": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", "dev": true }, - "@types/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.2.tgz", - "integrity": "sha512-Xt40xQsrkdvjn1EyWe1Bc0dJLcil/9x2vAuW7ya+PuQip4UYUaXyhzWmAbwRsdMgwOFHpfp7/FFZebDU6Y8VHA==", - "requires": { - "@types/prop-types": "*", - "csstype": "^3.0.2" - }, - "dependencies": { - "csstype": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz", - "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==" - } - } - }, - "@types/react-redux": { - "version": "7.1.16", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.16.tgz", - "integrity": "sha512-f/FKzIrZwZk7YEO9E1yoxIuDNRiDducxkFlkw/GNMGEnK9n4K8wJzlJBghpSuOVDgEUHoDkDF7Gi9lHNQR4siw==", - "requires": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" - } - }, - "@types/react-transition-group": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.1.tgz", - "integrity": "sha512-vIo69qKKcYoJ8wKCJjwSgCTM+z3chw3g18dkrDfVX665tMH7tmbDxEAnPdey4gTlwZz5QuHGzd+hul0OVZDqqQ==", - "requires": { - "@types/react": "*" - } - }, - "@types/warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=" - }, "@vue/component-compiler-utils": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz", @@ -15371,12 +14505,6 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, - "bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==", - "dev": true - }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -15808,11 +14936,6 @@ } } }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, "clean-css": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", @@ -15875,11 +14998,6 @@ } } }, - "clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" - }, "coa": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", @@ -16264,14 +15382,6 @@ } } }, - "css-box-model": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz", - "integrity": "sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw==", - "requires": { - "tiny-invariant": "^1.0.6" - } - }, "css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", @@ -16501,11 +15611,6 @@ } } }, - "csstype": { - "version": "2.6.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz", - "integrity": "sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==" - }, "csv-file-validator": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/csv-file-validator/-/csv-file-validator-1.10.1.tgz", @@ -16771,15 +15876,6 @@ "buffer-indexof": "^1.0.0" } }, - "dom-helpers": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.4.tgz", - "integrity": "sha512-TjMyeVUvNEnOnhzs6uAn9Ya47GmMo3qq7m+Lr/3ON0Rs5kHvb8I+SQYjLUSYn7qhEm0QjW0yrBkvz9yOrwwz1A==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^2.6.7" - } - }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -18601,19 +17697,6 @@ "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", "dev": true }, - "history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "requires": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - } - }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -18625,14 +17708,6 @@ "minimalistic-crypto-utils": "^1.0.1" } }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, "homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -18973,14 +18048,6 @@ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -19323,12 +18390,6 @@ } } }, - "jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==", - "dev": true - }, "js-cookie": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", @@ -19515,11 +18576,6 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -19538,14 +18594,6 @@ "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==", "dev": true }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, "lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", @@ -19628,11 +18676,6 @@ "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, - "memoize-one": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz", - "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==" - }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -19744,15 +18787,6 @@ "mime-db": "1.44.0" } }, - "mini-create-react-context": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz", - "integrity": "sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA==", - "requires": { - "@babel/runtime": "^7.5.5", - "tiny-warning": "^1.0.3" - } - }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -20081,7 +19115,8 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true }, "object-copy": { "version": "0.1.0", @@ -21254,25 +20289,6 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "prop-types-extra": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", - "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", - "requires": { - "react-is": "^16.3.2", - "warning": "^4.0.0" - } - }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", @@ -21386,11 +20402,6 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, - "raf-schd": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.2.tgz", - "integrity": "sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ==" - }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -21436,233 +20447,6 @@ } } }, - "react": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", - "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-beautiful-dnd": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.0.tgz", - "integrity": "sha512-aGvblPZTJowOWUNiwd6tNfEpgkX5OxmpqxHKNW/4VmvZTNTbeiq7bA3bn5T+QSF2uibXB0D1DmJsb1aC/+3cUA==", - "requires": { - "@babel/runtime": "^7.9.2", - "css-box-model": "^1.2.0", - "memoize-one": "^5.1.1", - "raf-schd": "^4.0.2", - "react-redux": "^7.2.0", - "redux": "^4.0.4", - "use-memo-one": "^1.1.1" - } - }, - "react-bootstrap": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.5.1.tgz", - "integrity": "sha512-jbJNGx9n4JvKgxlvT8DLKSeF3VcqnPJXS9LFdzoZusiZCCGoYecZ9qSCBH5n2A+kjmuura9JkvxI9l7HD+bIdQ==", - "requires": { - "@babel/runtime": "^7.4.2", - "@restart/context": "^2.1.4", - "@restart/hooks": "^0.3.21", - "@types/classnames": "^2.2.10", - "@types/invariant": "^2.2.33", - "@types/prop-types": "^15.7.3", - "@types/react": ">=16.9.35", - "@types/react-transition-group": "^4.4.0", - "@types/warning": "^3.0.0", - "classnames": "^2.2.6", - "dom-helpers": "^5.1.2", - "invariant": "^2.2.4", - "prop-types": "^15.7.2", - "prop-types-extra": "^1.1.0", - "react-overlays": "^5.0.0", - "react-transition-group": "^4.4.1", - "uncontrollable": "^7.0.0", - "warning": "^4.0.3" - } - }, - "react-chartjs-2": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-2.11.1.tgz", - "integrity": "sha512-G7cNq/n2Bkh/v4vcI+GKx7Q1xwZexKYhOSj2HmrFXlvNeaURWXun6KlOUpEQwi1cv9Tgs4H3kGywDWMrX2kxfA==", - "requires": { - "lodash": "^4.17.19", - "prop-types": "^15.7.2" - } - }, - "react-dom": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz", - "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.1" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-overlays": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-5.0.0.tgz", - "integrity": "sha512-TKbqfAv23TFtCJ2lzISdx76p97G/DP8Rp4TOFdqM9n8GTruVYgE3jX7Zgb8+w7YJ18slTVcDTQ1/tFzdCqjVhA==", - "requires": { - "@babel/runtime": "^7.12.1", - "@popperjs/core": "^2.5.3", - "@restart/hooks": "^0.3.25", - "@types/warning": "^3.0.0", - "dom-helpers": "^5.2.0", - "prop-types": "^15.7.2", - "uncontrollable": "^7.0.0", - "warning": "^4.0.3" - }, - "dependencies": { - "csstype": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.7.tgz", - "integrity": "sha512-KxnUB0ZMlnUWCsx2Z8MUsr6qV6ja1w9ArPErJaJaF8a5SOWoHLIszeCTKGRGRgtLgYrs1E8CHkNSP1VZTTPc9g==" - }, - "dom-helpers": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz", - "integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - } - } - }, - "react-redux": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.3.tgz", - "integrity": "sha512-ZhAmQ1lrK+Pyi0ZXNMUZuYxYAZd59wFuVDGUt536kSGdD0ya9Q7BfsE95E3TsFLE3kOSFp5m6G5qbatE+Ic1+w==", - "requires": { - "@babel/runtime": "^7.12.1", - "@types/react-redux": "^7.1.16", - "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^16.13.1" - } - }, - "react-router": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", - "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", - "requires": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "requires": { - "isarray": "0.0.1" - } - } - } - }, - "react-router-dom": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", - "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", - "requires": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.2.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "mini-create-react-context": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz", - "integrity": "sha512-b0TytUgFSbgFJGzJqXPKCFCBWigAjpjo+Fl7Vf7ZbKRDptszpppKxXH6DRXEABZ/gcEQczeb0iZ7JvL8e8jjCA==", - "requires": { - "@babel/runtime": "^7.5.5", - "tiny-warning": "^1.0.3" - } - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "requires": { - "isarray": "0.0.1" - } - }, - "react-router": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", - "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", - "requires": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - } - } - } - }, - "react-toastify": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-7.0.3.tgz", - "integrity": "sha512-cxZ5rfurC8LzcZQMTYc8RHIkQTs+BFur18Pzk6Loz6uS8OXUWm6nXVlH/wqglz4Z7UAE8xxcF5mRjfE13487uQ==", - "requires": { - "clsx": "^1.1.1" - } - }, - "react-transition-group": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", - "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -21701,15 +20485,6 @@ "source-map": "~0.5.0" } }, - "redux": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", - "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", - "requires": { - "loose-envify": "^1.4.0", - "symbol-observable": "^1.2.0" - } - }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -21728,7 +20503,8 @@ "regenerator-runtime": { "version": "0.13.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" + "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", + "dev": true }, "regenerator-transform": { "version": "0.14.5", @@ -21898,11 +20674,6 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, - "resolve-pathname": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" - }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -22166,15 +20937,6 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, - "scheduler": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz", - "integrity": "sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, "schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", @@ -22986,11 +21748,6 @@ "util.promisify": "~1.0.0" } }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - }, "tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", @@ -23158,16 +21915,6 @@ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "dev": true }, - "tiny-invariant": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", - "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" - }, - "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", @@ -23285,17 +22032,6 @@ } } }, - "uncontrollable": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.2.1.tgz", - "integrity": "sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==", - "requires": { - "@babel/runtime": "^7.6.3", - "@types/react": ">=16.9.11", - "invariant": "^2.2.4", - "react-lifecycles-compat": "^3.0.4" - } - }, "unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", @@ -23493,12 +22229,6 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, - "use-memo-one": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.2.tgz", - "integrity": "sha512-u2qFKtxLsia/r8qG0ZKkbytbztzRb317XCkT7yP8wxL0tZ/CzK2G+WWie5vWvpyeP7+YoPIwbJoIHJ4Ba4k0oQ==", - "requires": {} - }, "util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", @@ -23552,11 +22282,6 @@ "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", "dev": true }, - "value-equal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -23610,14 +22335,6 @@ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "dev": true }, - "warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "requires": { - "loose-envify": "^1.0.0" - } - }, "watchpack": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", diff --git a/package.json b/package.json index bc6e9638..9432ab42 100644 --- a/package.json +++ b/package.json @@ -10,16 +10,11 @@ "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" }, "devDependencies": { - "@babel/preset-react": "^7.12.13", "axios": "^0.21", - "bootstrap": "^4.6.0", "cross-env": "^7.0", - "jquery": "^3.5", "laravel-mix": "^5.0.9", "lodash": "^4.17.21", "popper.js": "^1.12", - "react": "^17.0.1", - "react-dom": "^17.0.1", "resolve-url-loader": "^3.1.2", "sass": "^1.32.8", "sass-loader": "^10.1.1" @@ -28,12 +23,6 @@ "@babel/plugin-proposal-class-properties": "^7.13.0", "chart.js": "^2.9.4", "csv-file-validator": "^1.10.1", - "js-cookie": "^2.2.1", - "react-beautiful-dnd": "^13.1.0", - "react-bootstrap": "^1.5.1", - "react-chartjs-2": "^2.11.1", - "react-router": "^5.2.0", - "react-router-dom": "^5.2.0", - "react-toastify": "^7.0.3" + "js-cookie": "^2.2.1" } } diff --git a/resources/js/app.js b/resources/js/app.js deleted file mode 100644 index 30d9c8f3..00000000 --- a/resources/js/app.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * First we will load all of this project's JavaScript dependencies which - * includes React and other helpers. It's a great starting point while - * building robust, powerful web applications using React + Laravel. - */ - -require('./bootstrap'); - -/** - * Next, we will create a fresh React component instance and attach it to - * the page. Then, you may begin adding components to this application - * or customize the JavaScript scaffolding to fit your unique needs. - */ - -require('./index'); diff --git a/resources/js/bootstrap.js b/resources/js/bootstrap.js deleted file mode 100644 index 8eaba1b9..00000000 --- a/resources/js/bootstrap.js +++ /dev/null @@ -1,41 +0,0 @@ -window._ = require('lodash'); - -/** - * We'll load jQuery and the Bootstrap jQuery plugin which provides support - * for JavaScript based Bootstrap features such as modals and tabs. This - * code may be modified to fit the specific needs of your application. - */ - -try { - window.Popper = require('popper.js').default; - window.$ = window.jQuery = require('jquery'); - - require('bootstrap'); -} catch (e) {} - -/** - * We'll load the axios HTTP library which allows us to easily issue requests - * to our Laravel back-end. This library automatically handles sending the - * CSRF token as a header based on the value of the "XSRF" token cookie. - */ - -window.axios = require('axios'); - -window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; - -/** - * Echo exposes an expressive API for subscribing to channels and listening - * for events that are broadcast by Laravel. Echo and event broadcasting - * allows your team to easily build robust real-time web applications. - */ - -// import Echo from 'laravel-echo'; - -// window.Pusher = require('pusher-js'); - -// window.Echo = new Echo({ -// broadcaster: 'pusher', -// key: process.env.MIX_PUSHER_APP_KEY, -// cluster: process.env.MIX_PUSHER_APP_CLUSTER, -// encrypted: true -// }); diff --git a/resources/js/components/Authentication/Authentication.js b/resources/js/components/Authentication/Authentication.js deleted file mode 100644 index d0dd92ab..00000000 --- a/resources/js/components/Authentication/Authentication.js +++ /dev/null @@ -1,70 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; -import { Row, Col} from 'react-bootstrap'; -import SessionsTable from './SessionsTable'; -import ResetPassword from './ResetPassword'; - -export default class Authentication extends Component { - constructor(props) { - super(props) - - this.state = { - showCollapse: false, - showModal: false - } - } - - toggleCollapse = () => { - if(this.state.showCollapse) { - this.setState({ - showCollapse: false - }); - } else { - this.setState({ - showCollapse: true - }); - } - } - - toggleModal = () => { - if(this.state.showModal) { - this.setState({ - showModal: false - }); - } else { - this.setState({ - showModal: true - }); - } - } - - render() { - var showCollapse = this.state.showCollapse; - var showModal = this.state.showModal; - - if( (window.config.auth == true && window.authenticated == true)) { - return ( -
- - - - - - - - - - -
- ); - } else { - return ( - <> - ); - } - } -} - -if (document.getElementById('Authentication')) { - ReactDOM.render(, document.getElementById('Authentication')); -} diff --git a/resources/js/components/Authentication/ResetPassword.js b/resources/js/components/Authentication/ResetPassword.js deleted file mode 100644 index d04b222a..00000000 --- a/resources/js/components/Authentication/ResetPassword.js +++ /dev/null @@ -1,111 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; -import { Container, Row, Col, Collapse, Button, Modal, Form } from 'react-bootstrap'; -import SessionsTable from './SessionsTable'; -import Axios from 'axios'; -import { toast } from 'react-toastify'; - -export default class ResetPassword extends Component { - constructor(props) { - super(props) - - this.state = { - showModal: false, - currentPassword: '', - newPassword: '', - newPasswordConfirmation: '', - logoutDevices: false - } - } - - toggleModal = () => { - if(this.state.showModal) { - this.setState({ - showModal: false - }); - } else { - this.setState({ - showModal: true - }); - } - } - - updateTextField = (e) => { - this.setState({ - [e.target.id]: e.target.value - }) - } - - updateCheckbox = (e) => { - this.setState({ - [e.target.id]: e.target.checked - }); - } - - changePassword = (e) => { - e.preventDefault(); - - var data = { - currentPassword: this.state.currentPassword, - newPassword: this.state.newPassword, - newPassword_confirmation: this.state.newPasswordConfirmation, - logoutDevices: this.state.logoutDevices - } - - var url = 'api/auth/change-password?token=' + window.token; - Axios.post(url, data) - .then((resp) => { - toast.success('Password updated'); - this.toggleModal(); - if(this.state.logoutDevices == true) { - location.reload(true); - } - }) - .catch((err) => { - if(err.response) { - for(var key in err.response.data.error) { - toast.error(err.response.data.error[key][0]); - } - } - }) - } - - render() { - var showModal = this.state.showModal; - - return ( -
- - - - Change password - - -
- - Current password - - - - New Password - - - - Confirm New Password - - - - - - -
-
-
-
- ); - } -} - -if (document.getElementById('ResetPassword')) { - ReactDOM.render(, document.getElementById('ResetPassword')); -} diff --git a/resources/js/components/Authentication/SessionsTable.js b/resources/js/components/Authentication/SessionsTable.js deleted file mode 100644 index 02fd3243..00000000 --- a/resources/js/components/Authentication/SessionsTable.js +++ /dev/null @@ -1,67 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; -import { Container, Row, Col, Table } from 'react-bootstrap'; -import Axios from 'axios'; - -export default class SessionsTable extends Component { - constructor(props) { - super(props) - - this.state = { - sessions: [] - } - } - - componentDidMount() { - this.getSessions(); - } - - getSessions = () => { - var url = 'api/auth/sessions?token=' + window.token; - - Axios.get(url) - .then((resp) => { - this.setState({ - sessions: resp.data.response - }) - }) - } - - render() { - var sessions = this.state.sessions; - - return ( - - - -
Login Sessions
- - - - - - - - - - {sessions.map((e,i) => { - return( - - - - - - ) - })} - -
IPExpiresCreated at
{e.ip}{new Date(e.expires * 1000).toLocaleDateString() + ' ' + new Date(e.expires * 1000).toLocaleTimeString()}{e.created_at}
- -
-
- ); - } -} - -if (document.getElementById('SessionsTable')) { - ReactDOM.render(, document.getElementById('SessionsTable')); -} diff --git a/resources/js/components/Data/Backup.js b/resources/js/components/Data/Backup.js deleted file mode 100644 index e984389f..00000000 --- a/resources/js/components/Data/Backup.js +++ /dev/null @@ -1,42 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; -import { Button, Dropdown, DropdownButton } from 'react-bootstrap'; -import { toast } from 'react-toastify'; -import Axios from 'axios'; - -export default class Backup extends Component { - backup = (format) => { - var url = 'api/backup?format=' + format + '&token=' + window.token; - - toast.info('Your backup has started downloading...'); - - Axios.get(url, { - responseType: 'blob' - }) - .then((resp) => { - var a = document.createElement('a'); - a.href = url; - a.download = ""; - document.body.appendChild(a); - a.click(); - a.remove(); - toast.success('Backup downloaded'); - }) - .catch((err) => { - console.log(err); - }) - } - - render() { - return ( - - { this.backup('json') }}>JSON - { this.backup('csv') }}>CSV - - ); - } -} - -if (document.getElementById('Backup')) { - ReactDOM.render(, document.getElementById('Backup')); -} diff --git a/resources/js/components/Data/Changelog.js b/resources/js/components/Data/Changelog.js deleted file mode 100644 index 3f363cd8..00000000 --- a/resources/js/components/Data/Changelog.js +++ /dev/null @@ -1,140 +0,0 @@ -import React, { Component, version } from 'react'; -import ReactDOM from 'react-dom'; -import Axios from 'axios'; -import { Modal, Collapse, Button } from 'react-bootstrap'; - -export default class Changelog extends Component { - constructor(props) { - super(props) - - this.state = { - changelog: {}, - modal: false, - loading: true, - hidden: false, - } - } - - componentDidMount = () => { - if( (window.config.auth == true && window.authenticated == true) || window.config.auth == false) { - this.getChangelog(); - } - } - - getChangelog = () => { - Axios.get('api/update/changelog?token=' + window.token) - .then((resp) => { - this.setState({ - changelog: resp.data.data, - loading: false - }); - }) - } - - showModal = () => { - this.setState({ - modal: true, - }); - } - - hideModal = () => { - this.setState({ - modal: false, - }); - } - - toggleHidden = () => { - var hidden = this.state.hidden; - if(hidden) { - this.setState({ - hidden: false - }); - } else { - this.setState({ - hidden: true - }); - } - } - - versionList = (key, data) => { - return ( -
-
Version: {key}
-
    - {data.map((e,i) => { - if(e.link == '') { - return
  • {e.description}
  • - } else { - return
  • {e.description}
  • - } - })} -
-
- ); - } - - makeChangelog() { - var changelog = this.state.changelog; - var versionsVis = []; - var versionsHid = []; - - var i = 0; - for(var key in changelog) { - if(i <= 5) { - versionsVis.push(this.versionList(key, changelog[key])); - } else { - versionsHid.push(this.versionList(key, changelog[key])); - } - i++; - } - - return { - visible: versionsVis, - hidden: versionsHid - }; - } - - render() { - var show = this.state.modal; - var loading = this.state.loading; - var showHidden = this.state.hidden; - - if(loading) { - return <> - } else { - var changelog = this.makeChangelog(); - return ( -
- - - - -

Changelog:

- {changelog.visible} - {changelog.hidden.length > 5 && - <> - -
- {changelog.hidden} -
-
-
- {showHidden ? - - : - - } -
- - } -
-
-
- ); - } - } -} - -if (document.getElementById('Changelog')) { - ReactDOM.render(, document.getElementById('Changelog')); -} diff --git a/resources/js/components/Data/DataRow.js b/resources/js/components/Data/DataRow.js deleted file mode 100644 index fdd8a89a..00000000 --- a/resources/js/components/Data/DataRow.js +++ /dev/null @@ -1,37 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; -import { Container } from 'react-bootstrap'; -import { Row } from 'react-bootstrap'; -import { Col } from 'react-bootstrap'; -import Backup from './Backup'; -import Restore from './Restore'; - -export default class DataRow extends Component { - render() { - if( (window.config.auth == true && window.authenticated == true) || window.config.auth == false) { - return ( - - - -

Use these buttons to backup/restore your data

- -
- - - - - - -
- ); - } else { - return ( - <> - ) - } - } -} - -if (document.getElementById('DataRow')) { - ReactDOM.render(, document.getElementById('DataRow')); -} diff --git a/resources/js/components/Data/Restore.js b/resources/js/components/Data/Restore.js deleted file mode 100644 index b216621d..00000000 --- a/resources/js/components/Data/Restore.js +++ /dev/null @@ -1,209 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; -import { Button, Modal, Form, Tooltip, OverlayTrigger, Dropdown, DropdownButton } from 'react-bootstrap'; -import { toast } from 'react-toastify'; -import Axios from 'axios'; -import CSVFileValidator from 'csv-file-validator'; - -export default class Restore extends Component { - constructor(props) { - super(props); - - this.state = { - show: false, - data: null, - uploadReady: false, - filename: 'Upload your backup', - format: 'json' - }; - } - - showModal = (format) => { - this.setState({ - show: true, - format: format - }); - } - - hideModal = () => { - this.setState({ - show: false - }); - } - - readFile = (e, format) => { - var file = e.target.files[0]; - var reader = new FileReader(); - reader.readAsText(file, 'UTF-8'); - reader.onload = function(evt) { - var data = evt.target.result.trim(); - if(format == 'csv') { - var csv = data.substr(45); - var config = { - headers: [ - { - name: "id", - inputName: 'id', - required: false, - }, - { - name: "ping", - inputName: 'ping', - required: true, - requiredError: function (headerName, rowNumber, columnNumber) { - return `${headerName} is required in the ${rowNumber} row / ${columnNumber} column` - } - }, - { - name: "upload", - inputName: 'upload', - required: true, - requiredError: function (headerName, rowNumber, columnNumber) { - return `${headerName} is required in the ${rowNumber} row / ${columnNumber} column` - } - }, - { - name: "download", - inputName: 'download', - required: true, - requiredError: function (headerName, rowNumber, columnNumber) { - return `${headerName} is required in the ${rowNumber} row / ${columnNumber} column` - } - }, - { - name: "created_at", - inputName: 'created_at', - required: false, - }, - { - name: "server_id", - inputName: 'server_id', - required: false, - }, - { - name: "server_name", - inputName: 'server_name', - required: false, - }, - { - name: "server_host", - inputName: 'server_host', - required: false, - }, - { - name: "url", - inputName: 'url', - required: false, - }, - { - name: "scheduled", - inputName: 'scheduled', - required: false, - }, - { - name: "failed", - inputName: 'failed', - required: false, - }, - { - name: "updated_at", - inputName: 'updated_at', - required: false, - } - ] - }; - CSVFileValidator(csv, config) - .then((e) => { - if(e.inValidMessages.length > 0) { - toast.error('Your upload file is not valid ' + format.toUpperCase()); - } else { - this.setState({ - data: data, - uploadReady: true, - filename: file.name - }); - } - }) - .catch((e) => { - toast.error('Your upload file is not valid ' + format.toUpperCase()); - }) - } else { - try { - var data = JSON.parse(data); - this.setState({ - data: data, - uploadReady: true, - filename: file.name - }); - } catch(e) { - console.log(e); - toast.error('Your upload file is not valid ' + format.toUpperCase()); - } - } - }.bind(this) - reader.onerror = function (evt) { - toast.error('Something went wrong parsing your backup file.'); - } - } - - uploadFile = () => { - var data = { data: this.state.data, format: this.state.format }; - var url = 'api/restore?token=' + window.token; - - Axios.post(url, data) - .then((resp) => { - toast.success('Your data is being restored...'); - this.setState({ - show: false, - data: null, - uploadReady: false, - filename: 'Upload your backup' - }); - }) - .catch((err) => { - console.log(err); - }) - } - - render() { - var show = this.state.show; - var uploadReady = this.state.uploadReady; - var filename = this.state.filename; - - return ( - <> - - { this.showModal('json') }}>JSON - { this.showModal('csv') }}>CSV - - - - - Restore from a backup - - -

Upload your {this.state.format.toUpperCase()} backup file here:

- - { this.readFile(e, this.state.format) }} /> - - {filename} - - - {uploadReady === true && - - } -
-
- - ); - } -} - -if (document.getElementById('Restore')) { - ReactDOM.render(, document.getElementById('Restore')); -} diff --git a/resources/js/components/ErrorPage.js b/resources/js/components/ErrorPage.js deleted file mode 100644 index 8028238f..00000000 --- a/resources/js/components/ErrorPage.js +++ /dev/null @@ -1,89 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; -import { BrowserRouter, Route, Link } from "react-router-dom"; -import { Container } from 'react-bootstrap'; -import { Row } from 'react-bootstrap'; -import { Col } from 'react-bootstrap'; -import { Button } from 'react-bootstrap'; - -export default class ErrorPage extends Component { - constructor(props) { - super(props); - - var colour = ''; - var message = false; - switch(this.props.code.toString()[0]) { - case 2: - case '2': - colour = 'success'; - break; - case 4: - case '4': - colour = 'danger'; - break; - case 5: - case '5': - default: - colour = 'warning'; - break; - } - - switch(this.props.code) { - case '400': - message = 'Bad request' - break; - case '401': - message = 'You aren\'t authenticated'; - break; - case '403': - message = 'You aren\'t authorised to view this page'; - break; - case '404': - message = 'Page not found'; - break; - case '405': - message = 'Method not allowed' - break; - case '413': - message = 'Request too large' - break; - case '422': - message = 'Your request was unprocessable' - break; - } - - this.state = { - code: this.props.code, - colour: colour, - message: message - }; - } - - render() { - const colour = this.state.colour; - const code = this.state.code; - const message = this.state.message; - return ( - - - -

{code}

- {message && -

{message}

- } - - -
-
- ); - } -} - -if (document.getElementById('errorpage')) { - ReactDOM.render(, document.getElementById('errorpage')); -} diff --git a/resources/js/components/Example.js b/resources/js/components/Example.js deleted file mode 100644 index c4224dde..00000000 --- a/resources/js/components/Example.js +++ /dev/null @@ -1,23 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; - -export default class Index extends Component { - constructor(props) { - super(props) - - this.state = { - - } - } - - render() { - return ( -
-
- ); - } -} - -if (document.getElementById('main')) { - ReactDOM.render(, document.getElementById('main')); -} diff --git a/resources/js/components/Graphics/HistoryGraph.js b/resources/js/components/Graphics/HistoryGraph.js deleted file mode 100644 index d1620a9b..00000000 --- a/resources/js/components/Graphics/HistoryGraph.js +++ /dev/null @@ -1,392 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; -import Axios from 'axios'; -import { Spinner, Container, Row, Form, Card } from 'react-bootstrap'; -import { Line, Bar } from 'react-chartjs-2'; -import { Col } from 'react-bootstrap'; -import { toast } from 'react-toastify'; - -export default class HistoryGraph extends Component { - constructor(props) { - super(props) - - this.state = { - days: props.days, - time: props.dlUl, - fail: props.fail, - config: props.config, - duData: {}, - duOptions: {}, - pingData: {}, - pingOptions: {}, - failData: {}, - failOptions: {}, - loading: true, - interval: null, - graph_ul_dl_enabled: true, - graph_ul_dl_width: 6, - graph_failure_enabled: true, - graph_failure_width: 6, - graph_ping_enabled: true, - graph_ping_width: 6, - firstUpdate: false, - } - } - - componentDidMount = () => { - } - - componentDidUpdate() { - if( - this.state.time != this.props.dlUl || - this.state.fail != this.props.fail || - this.state.config != this.props.config || - this.state.days != this.props.days - ) { - this.setState({ - time: this.props.dlUl, - fail: this.props.fail, - config: this.props.config, - days: this.props.days - }); - - if(this.state.config !== null) { - this.processData(); - } - } - - if( - !this.state.firstUpdate && - this.state.config !== null - ) { - this.processData(); - this.setState({ - firstUpdate: true, - }); - } - } - - processData() { - this.processConfig(); - this.processDlUlPing(); - this.processFailure(); - } - - processConfig() { - this.setState({ - graph_ul_dl_enabled: Boolean(Number(this.state.config.graphs.download_upload_graph_enabled.value)), - graph_ul_dl_width: this.state.config.graphs.download_upload_graph_width.value, - graph_ping_enabled: Boolean(Number(this.state.config.graphs.ping_graph_enabled.value)), - graph_ping_width: this.state.config.graphs.ping_graph_width.value, - graph_failure_enabled: Boolean(Number(this.state.config.graphs.failure_graph_enabled.value)), - graph_failure_width: this.state.config.graphs.failure_graph_width.value, - }); - } - - processDlUlPing() { - let days = this.state.days; - - var duData = { - labels: [], - datasets:[ - { - data: [], - label: 'Download', - borderColor: "#fca503", - fill: false, - }, - { - data: [], - label: 'Upload', - borderColor: "#3e95cd", - fill: false, - } - ], - }; - var duOptions = { - maintainAspectRatio: false, - responsive: true, - tooltips: { - callbacks: { - label: (item) => `${item.yLabel} Mbit/s`, - }, - }, - title: { - display: false, - text: 'Speedtests results for the last ' + days + ' days', - }, - scales: { - xAxes: [{ - display: false, - scaleLabel: { - display: true, - labelString: 'DateTime' - } - }], - }, - elements: { - point:{ - radius: 0, - hitRadius: 8 - } - } - }; - - var pingData = { - labels: [], - datasets:[ - { - data: [], - label: 'Ping', - borderColor: "#07db71", - fill: false, - }, - ], - }; - var pingOptions = { - maintainAspectRatio: false, - responsive: true, - tooltips: { - callbacks: { - label: (item) => `${item.yLabel} ms`, - }, - }, - title: { - display: false, - text: 'Ping results for the last ' + days + ' days', - }, - scales: { - xAxes: [{ - display: false, - scaleLabel: { - display: true, - labelString: 'DateTime' - } - }], - }, - elements: { - point:{ - radius: 0, - hitRadius: 8 - } - } - } - - this.state.time.forEach(e => { - var download = { - t: new Date(e.created_at), - y: e.download, - }; - var upload = { - t: new Date(e.created_at), - y: e.upload, - }; - var ping = { - t: new Date(e.created_at), - y: parseFloat(e.ping) - } - duData.datasets[0].data.push(download); - duData.datasets[1].data.push(upload); - pingData.datasets[0].data.push(ping); - duData.labels.push(new Date(e.created_at).toLocaleString()); - pingData.labels.push(new Date(e.created_at).toLocaleString()); - }); - - this.setState({ - duData: duData, - duOptions: duOptions, - pingData: pingData, - pingOptions: pingOptions, - loading: false, - }); - } - - processFailure() { - let days = this.state.days; - - var failData = { - labels: [], - datasets: [ - { - data: [], - label: 'Successful', - backgroundColor: '#07db71' - }, - { - data: [], - label: 'Failed', - backgroundColor: '#E74C3C' - }, - ], - }; - var failOptions = { - maintainAspectRatio: false, - responsive: true, - tooltips: { - callbacks: { - label: (item) => `${item.yLabel} speedtests`, - }, - }, - scales: { - xAxes: [{ - stacked: true - }], - yAxes: [{ - stacked: true - }] - } - }; - - this.state.fail.forEach(e => { - var success = {x: e.date, y: e.success}; - var fail = {x: e.date, y: e.failure}; - failData.datasets[0].data.push(success); - failData.datasets[1].data.push(fail); - failData.labels.push(new Date(e.date).toLocaleString([], {year: '2-digit', month:'2-digit', day:'2-digit'})); - }) - - this.setState({ - failData: failData, - failOptions: failOptions - }); - } - - updateDays = (e) => { - var days = e.target.value; - if(days) { - toast.info('Showing results for the last ' + days + ' days'); - this.props.updateDays(days); - } - } - - render() { - var loading = this.state.loading; - var duData = this.state.duData; - var duOptions = this.state.duOptions; - var pingData = this.state.pingData; - var pingOptions = this.state.pingOptions; - var failData = this.state.failData; - var failOptions = { - maintainAspectRatio: false, - responsive: true, - tooltips: { - callbacks: { - label: (item) => `${item.yLabel} speedtests`, - }, - }, - scales: { - xAxes: [{ - stacked: true, - gridLines: { - display: false - } - }], - yAxes: [{ - stacked: true, - ticks: { - stepSize: 1 - } - }] - } - }; - var days = this.state.days; - - var graph_ul_dl_enabled = this.state.graph_ul_dl_enabled; - var graph_ul_dl_width = this.state.graph_ul_dl_width; - var graph_ping_enabled = this.state.graph_ping_enabled; - var graph_ping_width = this.state.graph_ping_width; - var graph_failure_enabled = this.state.graph_failure_enabled; - var graph_failure_width = this.state.graph_failure_width; - - var dlClasses = 'my-2 home-graph '; - var pingClasses = 'my-2 home-graph '; - var failureClasses = 'my-2 home-graph '; - - if(graph_ul_dl_enabled == true) { - // - } else { - dlClasses += 'd-none '; - } - - if(graph_ping_enabled == true) { - // - } else { - pingClasses += 'd-none '; - } - - if(graph_failure_enabled == true) { - // - } else { - failureClasses += 'd-none '; - } - - if(loading) { - return ( -
- -
- ) - } else { - return ( - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-

Show results for the last

- -

days

-
-
- -
-
- ); - } - } -} - -if (document.getElementById('HistoryGraph')) { - ReactDOM.render(, document.getElementById('HistoryGraph')); -} diff --git a/resources/js/components/Graphics/LatestResults.js b/resources/js/components/Graphics/LatestResults.js deleted file mode 100644 index c2a4fe01..00000000 --- a/resources/js/components/Graphics/LatestResults.js +++ /dev/null @@ -1,164 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; -import Axios from 'axios'; -import Widget from './Widget'; -import { Container, Row, Spinner } from 'react-bootstrap'; -import { Col } from 'react-bootstrap'; -import { Button } from 'react-bootstrap'; -import { toast } from 'react-toastify'; - -export default class LatestResults extends Component { - constructor(props) { - super(props) - - this.state = { - data: props.data, - interval: null, - loading: true, - } - } - - componentDidUpdate() { - if(this.state.data !== this.props.data) { - this.setState({ - data: this.props.data, - loading: false, - }); - } - } - - componentWillUnmount() { - clearInterval(this.state.interval); - } - - newScan = () => { - var url = 'api/speedtest/run?token=' + window.token; - - Axios.get(url) - .then((resp) => { - toast.info('A test has been queued. This page will refresh when the test has finished.'); - }) - .catch((err) => { - if(err.response) { - if(err.response.status == 429) { - toast.error('You are doing that too much. Try again later.'); - } - console.log(err.response); - } else { - console.log(err.data); - } - }) - } - - render() { - var loading = this.state.loading; - var data = this.state.data; - - if(loading && data !== false) { - return ( - - - - - - - - ); - } else if(data === false) { - if( (window.config.auth == true && window.authenticated == true) || window.config.auth == false) { - return ( - - - -
- -
- -
-
- ); - } else if(window.config.auth == true && window.authenticated == false) { - return ( - - - -
-

Please login to run the first test

-
- -
-
- ); - } - } else { - return ( - - - -
- {(window.config.auth == true && window.authenticated == true) || window.config.auth == false ? -
- -

Last test performed at: {new Date(data.data.created_at).toLocaleString()}

-
- : -
-

Last test performed at: {new Date(data.data.created_at).toLocaleString()}

-
- } -
- -
- - - - - - - - - - - -
- ); - } - } -} - -if (document.getElementById('LatestResults')) { - ReactDOM.render(, document.getElementById('LatestResults')); -} diff --git a/resources/js/components/Graphics/TableRow.js b/resources/js/components/Graphics/TableRow.js deleted file mode 100644 index 1b172d8e..00000000 --- a/resources/js/components/Graphics/TableRow.js +++ /dev/null @@ -1,162 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; -import { Modal, Button } from 'react-bootstrap'; -import Axios from 'axios'; -import { toast } from 'react-toastify'; - -export default class TableRow extends Component { - constructor(props) { - super(props) - - this.state = { - data: this.props.data, - show: false, - } - } - - toggleShow = () => { - var show = this.state.show; - if(show) { - this.setState({ - show: false - }); - } else { - this.setState({ - show: true - }); - } - } - - delete = (id) => { - var url = 'api/speedtest/delete/' + id + '?token=' + window.token; - - Axios.delete(url) - .then((resp) => { - console.log(resp); - toast.success('Speedtest deleted'); - }) - .catch((err) => { - if(err.response.status == 404) { - toast.warning('Speedtest not found'); - } else { - toast.error('Something went wrong'); - } - }) - - this.props.refresh(); - this.toggleShow(); - } - - getDataFields = () => { - let allFields = this.props.allFields; - let data = this.state.data; - let processedFields = []; - - for(var key in allFields) { - let field = allFields[key]; - - let value = data[key]; - - if(field.type === 'date') { - value = new Date(value).toLocaleString(); - } else if(field.type === 'bool') { - value = Boolean(value) ? field.if_true : field.if_false - } - - let final = { - name: key, - key: field.alias, - value: value, - type: field.type - }; - - processedFields.push(final); - } - - let visible = []; - let inModal = []; - - window.config.tables.visible_columns.forEach(column => { - visible.push(processedFields.find(x => x.name == column)); - }); - - inModal = processedFields.filter(el => { - return !visible.includes(el); - }); - - return { - visible: visible, - modal: inModal - }; - } - - render() { - var e = this.state.data; - var show = this.state.show; - var fields = this.getDataFields(); - - if(e.failed != true) { - return ( - - {fields.visible.map((e, i) => { - return ( - {e.value} - ); - })} - {e.server_host != null ? - - - - - More info - - - {fields.modal.map((e, i) => { - if(e.type === 'url') { - return ( -

{e.key}: Speedtest.net

- ); - } else { - return ( -

{e.key}: {e.value}

- ); - } - })} - -
-
- - : - - } - - ); - } else { - return ( - - {fields.visible.map((e, i) => { - console.log(e); - if(e.name === 'created_at') { - return {new Date(e.value).toLocaleString()} - } else if (e.name === 'id') { - return {e.value} - } - - return ( - - ); - })} - {(window.config.auth && window.authenticated) || !window.config.auth ? - - : - - } - - ); - } - } -} - -if (document.getElementById('tableRow')) { - ReactDOM.render(, document.getElementById('tableRow')); -} diff --git a/resources/js/components/Graphics/TestsTable.js b/resources/js/components/Graphics/TestsTable.js deleted file mode 100644 index 9b137eb3..00000000 --- a/resources/js/components/Graphics/TestsTable.js +++ /dev/null @@ -1,189 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; -import Axios from 'axios'; -import { Container, Row, Table, Col, Collapse, Button } from 'react-bootstrap'; -import TableRow from './TableRow'; - -export default class TestsTable extends Component { - constructor(props) { - super(props) - - this.state = { - page: 1, - lastPage: 1, - data: [], - showTable: false, - refresh: true, - interval: null, - allFields: { - id: { - type: 'int', - alias: 'ID' - }, - created_at: { - type: 'date', - alias: 'Time' - }, - download: { - type: 'float', - alias: 'Download (Mbit/s)' - }, - upload: { - type: 'float', - alias: 'Upload (Mbit/s)' - }, - ping: { - type: 'float', - alias: 'Ping (ms)' - }, - server_id: { - type: 'int', - alias: 'Server ID' - }, - server_name: { - type: 'string', - alias: 'Name' - }, - server_host: { - type: 'string', - alias: 'Host' - }, - url: { - type: 'url', - alias: 'URL' - }, - scheduled: { - type: 'bool', - alias: 'Type', - if_true: 'scheduled', - if_false: 'manual' - } - } - } - } - - componentDidMount() { - this.getData(); - var int = setInterval(this.getData, 10000); - this.setState({ - interval: int - }); - } - - componentWillUnmount() { - clearInterval(this.state.interval); - } - - getData = (page = this.state.page, refresh = true) => { - var url = 'api/speedtest/?page=' + page; - - Axios.get(url) - .then((resp) => { - var data = resp.data.data.data; - if(!refresh) { - data = this.state.data.concat(data); - } - var page = resp.data.data.current_page; - var lastPage = resp.data.data.last_page; - this.setState({ - data: data, - page: page, - lastPage: lastPage, - refresh: refresh - }); - }) - .catch((err) => { - console.log(err); - }) - } - - getMoreData = () => { - var page = this.state.page; - page = page + 1; - - if(this.state.refresh) { - clearInterval(this.state.interval); - } - - this.getData(page, false); - } - - toggleCollapse = () => { - var show = this.state.showTable; - - if(show) { - this.setState({ - showTable: false - }); - } else { - this.setState({ - showTable: true - }); - } - } - - render() { - var page = this.state.page; - var lastPage = this.state.lastPage; - var data = this.state.data; - var show = this.state.showTable; - var refresh = this.state.refresh; - let allFields = this.state.allFields; - - if(data.length > 0) { - return ( -
- - - -
-

All tests

- Auto refresh: {(refresh) ? 'On' : 'Off'} -
- -
- - - - - - {window.config.tables.visible_columns.map((e, i) => { - return ( - - ); - })} - - - - - {data.map((e,i) => { - return ( - - ); - })} - -
{allFields[e].alias}More
- -
- {page < lastPage && - - - - - - } -
-
- ); - } else { - return ( - <> - - ) - } - } -} - -if (document.getElementById('TestsTable')) { - ReactDOM.render(, document.getElementById('TestsTable')); -} diff --git a/resources/js/components/Graphics/Widget.js b/resources/js/components/Graphics/Widget.js deleted file mode 100644 index 83a349f2..00000000 --- a/resources/js/components/Graphics/Widget.js +++ /dev/null @@ -1,150 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; -import { Card } from 'react-bootstrap'; - -export default class Widget extends Component { - constructor(props) { - super(props) - - this.state = { - title: this.props.title, - unit: this.props.unit, - icon: this.props.icon, - failed: this.props.failed, - data: this.props.data - } - } - - parseData(title, data) { - var returnData = {}; - - - if(title == 'Ping') { - returnData.value = parseFloat(data.data.ping).toFixed(1); - - if(window.config.widgets.show_average) { - returnData.avg = parseFloat(data.average.ping).toFixed(1); - } - - if(window.config.widgets.show_max) { - returnData.max = parseFloat(data.maximum.ping).toFixed(1); - } - - if(window.config.widgets.show_min) { - returnData.min = parseFloat(data.minimum.ping).toFixed(1); - } - } - - if(title == 'Upload') { - returnData.value = parseFloat(data.data.upload).toFixed(1); - - if(window.config.widgets.show_average) { - returnData.avg = parseFloat(data.average.upload).toFixed(1); - } - - if(window.config.widgets.show_max) { - returnData.max = parseFloat(data.maximum.upload).toFixed(1); - } - - if(window.config.widgets.show_min) { - returnData.min = parseFloat(data.minimum.upload).toFixed(1); - } - } - - if(title == 'Download') { - returnData.value = parseFloat(data.data.download).toFixed(1); - - if(window.config.widgets.show_average) { - returnData.avg = parseFloat(data.average.download).toFixed(1); - } - - if(window.config.widgets.show_max) { - returnData.max = parseFloat(data.maximum.download).toFixed(1); - } - - if(window.config.widgets.show_min) { - returnData.min = parseFloat(data.minimum.download).toFixed(1); - } - } - - return returnData; - } - - componentDidUpdate = () => { - if(this.props.title != this.state.title || this.props.data != this.state.data || this.props.unit != this.state.unit || this.props.icon != this.state.icon || this.props.failed != this.state.failed) { - this.setState({ - title: this.props.title, - unit: this.props.unit, - icon: this.props.icon, - failed: this.props.failed, - data: this.props.data - }); - } - } - - render() { - var title = this.state.title; - var unit = this.state.unit; - var icon = this.state.icon; - var failed = Boolean(Number(this.state.failed)); - - var data = this.parseData(title, this.state.data); - - switch(icon) { - case 'ping': - icon = ; - break; - case 'dl': - icon = ; - break; - case 'ul': - icon = ; - break; - } - - return ( - - -
-
-
-

{title}

- {icon} -
- -
-

{(!failed) ? data.value : }

-

{unit} (current)

-
- - {window.config.widgets.show_average && -
-
{data.avg}
-

{unit} (average)

-
- } - - {window.config.widgets.show_max && -
-
{data.max}
-

{unit} (maximum)

-
- } - - {window.config.widgets.show_min && -
-
{data.min}
-

{unit} (minimum)

-
- } -
-
-
-
- ); - } -} - -if (document.getElementById('Widget')) { - ReactDOM.render(, document.getElementById('Widget')); -} diff --git a/resources/js/components/Home/Footer.js b/resources/js/components/Home/Footer.js deleted file mode 100644 index 19592489..00000000 --- a/resources/js/components/Home/Footer.js +++ /dev/null @@ -1,24 +0,0 @@ -import React, { Component } from 'react'; -import ReactDOM from 'react-dom'; -import { Container, Row } from 'react-bootstrap'; -import { Col } from 'react-bootstrap'; -import Version from './Version'; - -export default class Footer extends Component { - render() { - return ( - - - - -

See the code on GitHub

- -
-
- ); - } -} - -if (document.getElementById('Footer')) { - ReactDOM.render(